1
0
mirror of https://github.com/haiwen/seafile-server.git synced 2025-09-18 16:35:42 +00:00

Add repo sort function

This commit is contained in:
杨赫然
2020-01-08 12:13:59 +08:00
parent 923e1821e2
commit 8a31a344c4
2 changed files with 1 additions and 34 deletions

View File

@@ -509,10 +509,7 @@ seaf_db_trans_foreach_selected_row (SeafDBTrans *trans, const char *sql,
int
seaf_db_row_get_column_count (SeafDBRow *row)
{
#ifdef HAVE_MYSQL
return mysql_db_row_get_column_count (row);
#endif
return sqlite_db_row_get_column_count (row);
return db_ops.row_get_column_count(row);
}
#ifdef HAVE_MYSQL

View File

@@ -2449,21 +2449,6 @@ seaf_repo_manager_get_repo_list (SeafRepoManager *mgr, int start, int limit, con
else
snprintf (sql, sizeof(sql), "%sORDER BY i.update_time DESC, i.repo_id", sql_base);
break;
case SEAF_DB_TYPE_PGSQL:
sql_base = "SELECT i.repo_id, s.\"size\", b.commit_id, i.name, i.update_time, "
"i.version, i.is_encrypted, i.last_modifier, i.status, f.\"file_count\" FROM "
"RepoInfo i LEFT JOIN RepoSize s ON i.repo_id = s.repo_id "
"LEFT JOIN Branch b ON i.repo_id = b.repo_id "
"LEFT JOIN RepoFileCount f ON i.repo_id = f.repo_id "
"WHERE i.repo_id IN (SELECT r.repo_id FROM Repo r) AND "
"i.repo_id NOT IN (SELECT v.repo_id FROM VirtualRepo v) ";
if (g_strcmp0 (order_by, "size") == 0)
snprintf (sql, sizeof(sql), "%sORDER BY s.\"size\", i.repo_id", sql_base);
else if (g_strcmp0 (order_by, "file_count") == 0)
snprintf (sql, sizeof(sql), "%sORDER BY f.\"file_count\", i.repo_id", sql_base);
else
snprintf (sql, sizeof(sql), "%sORDER BY i.update_time DESC, i.repo_id", sql_base);
break;
case SEAF_DB_TYPE_SQLITE:
sql_base= "SELECT i.repo_id, s.size, b.commit_id, i.name, i.update_time, "
"i.version, i.is_encrypted, i.last_modifier, i.status, f.file_count FROM "
@@ -2503,21 +2488,6 @@ seaf_repo_manager_get_repo_list (SeafRepoManager *mgr, int start, int limit, con
else
snprintf (sql, sizeof(sql), "%sORDER BY i.update_time DESC, i.repo_id LIMIT ? OFFSET ?", sql_base);
break;
case SEAF_DB_TYPE_PGSQL:
sql_base = "SELECT i.repo_id, s.\"size\", b.commit_id, i.name, i.update_time, "
"i.version, i.is_encrypted, i.last_modifier, i.status, f.\"file_count\" FROM "
"RepoInfo i LEFT JOIN RepoSize s ON i.repo_id = s.repo_id "
"LEFT JOIN Branch b ON i.repo_id = b.repo_id "
"LEFT JOIN RepoFileCount f ON i.repo_id = f.repo_id "
"WHERE i.repo_id IN (SELECT r.repo_id FROM Repo r) AND "
"i.repo_id NOT IN (SELECT v.repo_id FROM VirtualRepo v) ";
if (g_strcmp0 (order_by, "size") == 0)
snprintf (sql, sizeof(sql), "%sORDER BY s.\"size\", i.repo_id LIMIT ? OFFSET ?", sql_base);
else if (g_strcmp0 (order_by, "file_count") == 0)
snprintf (sql, sizeof(sql), "%sORDER BY f.\"file_count\", i.repo_id LIMIT ? OFFSET ?", sql_base);
else
snprintf (sql, sizeof(sql), "%sORDER BY i.update_time DESC, i.repo_id LIMIT ? OFFSET ?", sql_base);
break;
case SEAF_DB_TYPE_SQLITE:
sql_base = "SELECT i.repo_id, s.size, b.commit_id, i.name, i.update_time, "
"i.version, i.is_encrypted, i.last_modifier, i.status, f.file_count FROM "