From b9d74500fa552e6518bf998ac9d197304c4da319 Mon Sep 17 00:00:00 2001 From: cuihaikuo Date: Wed, 18 Apr 2018 15:07:49 +0800 Subject: [PATCH] Add primary key for mysql table. Add column names in 'INSERT' and 'REPLACE' sql. --- common/branch-mgr.c | 9 ++-- common/config-mgr.c | 3 +- server/gc/repo-mgr.c | 8 +-- server/quota-mgr.c | 32 +++++++----- server/repo-mgr.c | 108 ++++++++++++++++++++++----------------- server/seafile-session.c | 5 +- server/share-mgr.c | 2 +- server/size-sched.c | 2 +- server/virtual-repo.c | 2 +- 9 files changed, 97 insertions(+), 74 deletions(-) diff --git a/common/branch-mgr.c b/common/branch-mgr.c index af110cd..cbd3318 100644 --- a/common/branch-mgr.c +++ b/common/branch-mgr.c @@ -155,8 +155,9 @@ open_db (SeafBranchManager *mgr) switch (seaf_db_type (mgr->seaf->db)) { case SEAF_DB_TYPE_MYSQL: sql = "CREATE TABLE IF NOT EXISTS Branch (" + "id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " "name VARCHAR(10), repo_id CHAR(41), commit_id CHAR(41)," - "PRIMARY KEY (repo_id, name)) ENGINE = INNODB"; + "UNIQUE INDEX(repo_id, name)) ENGINE = INNODB"; if (seaf_db_query (mgr->seaf->db, sql) < 0) return -1; break; @@ -199,7 +200,7 @@ seaf_branch_manager_add_branch (SeafBranchManager *mgr, SeafBranch *branch) branch->commit_id, branch->name, branch->repo_id); else sqlite3_snprintf (sizeof(sql), sql, - "INSERT INTO Branch VALUES (%Q, %Q, %Q)", + "INSERT INTO Branch (name, repo_id, commit_id) VALUES (%Q, %Q, %Q)", branch->name, branch->repo_id, branch->commit_id); sqlite_query_exec (mgr->priv->db, sql); @@ -231,7 +232,7 @@ seaf_branch_manager_add_branch (SeafBranchManager *mgr, SeafBranch *branch) "string", branch->repo_id); else rc = seaf_db_statement_query (db, - "INSERT INTO Branch VALUES (?, ?, ?)", + "INSERT INTO Branch (name, repo_id, commit_id) VALUES (?, ?, ?)", 3, "string", branch->name, "string", branch->repo_id, "string", branch->commit_id); @@ -239,7 +240,7 @@ seaf_branch_manager_add_branch (SeafBranchManager *mgr, SeafBranch *branch) return -1; } else { int rc = seaf_db_statement_query (db, - "REPLACE INTO Branch VALUES (?, ?, ?)", + "REPLACE INTO Branch (name, repo_id, commit_id) VALUES (?, ?, ?)", 3, "string", branch->name, "string", branch->repo_id, "string", branch->commit_id); diff --git a/common/config-mgr.c b/common/config-mgr.c index d402293..771a097 100644 --- a/common/config-mgr.c +++ b/common/config-mgr.c @@ -10,7 +10,8 @@ seaf_cfg_manager_init (SeafCfgManager *mgr) int db_type = seaf_db_type(mgr->db); if (db_type == SEAF_DB_TYPE_MYSQL) - sql = "CREATE TABLE IF NOT EXISTS SeafileConf (cfg_group VARCHAR(255) NOT NULL," + sql = "CREATE TABLE IF NOT EXISTS SeafileConf (" + "id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, cfg_group VARCHAR(255) NOT NULL," "cfg_key VARCHAR(255) NOT NULL, value VARCHAR(255), property INTEGER) ENGINE=INNODB"; else sql = "CREATE TABLE IF NOT EXISTS SeafileConf (cfg_group VARCHAR(255) NOT NULL," diff --git a/server/gc/repo-mgr.c b/server/gc/repo-mgr.c index f47e942..45ebca3 100644 --- a/server/gc/repo-mgr.c +++ b/server/gc/repo-mgr.c @@ -439,14 +439,14 @@ seaf_repo_manager_set_repo_history_limit (SeafRepoManager *mgr, "WHERE repo_id='%s'", days, repo_id); else snprintf(sql, sizeof(sql), - "INSERT INTO RepoHistoryLimit VALUES " + "INSERT INTO RepoHistoryLimit (repo_id, days) VALUES " "('%s', %d)", repo_id, days); if (err) return -1; return seaf_db_query(db, sql); } else { snprintf (sql, sizeof(sql), - "REPLACE INTO RepoHistoryLimit VALUES ('%s', %d)", + "REPLACE INTO RepoHistoryLimit (repo_id, days) VALUES ('%s', %d)", repo_id, days); if (seaf_db_query (db, sql) < 0) return -1; @@ -524,7 +524,7 @@ seaf_repo_manager_set_repo_valid_since (SeafRepoManager *mgr, " WHERE repo_id='%s'", timestamp, repo_id); else snprintf(sql, sizeof(sql), - "INSERT INTO RepoValidSince VALUES " + "INSERT INTO RepoValidSince (repo_id, timestamp) VALUES " "('%s', %"G_GINT64_FORMAT")", repo_id, timestamp); if (err) return -1; @@ -532,7 +532,7 @@ seaf_repo_manager_set_repo_valid_since (SeafRepoManager *mgr, return -1; } else { snprintf (sql, sizeof(sql), - "REPLACE INTO RepoValidSince VALUES ('%s', %"G_GINT64_FORMAT")", + "REPLACE INTO RepoValidSince (repo_id, timestamp) VALUES ('%s', %"G_GINT64_FORMAT")", repo_id, timestamp); if (seaf_db_query (db, sql) < 0) return -1; diff --git a/server/quota-mgr.c b/server/quota-mgr.c index 501194b..3565801 100644 --- a/server/quota-mgr.c +++ b/server/quota-mgr.c @@ -127,23 +127,27 @@ seaf_quota_manager_init (SeafQuotaManager *mgr) break; case SEAF_DB_TYPE_MYSQL: - sql = "CREATE TABLE IF NOT EXISTS UserQuota (user VARCHAR(255) PRIMARY KEY," - "quota BIGINT) ENGINE=INNODB"; + sql = "CREATE TABLE IF NOT EXISTS UserQuota (id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " + "user VARCHAR(255)," + "quota BIGINT, UNIQUE INDEX(user)) ENGINE=INNODB"; if (seaf_db_query (db, sql) < 0) return -1; - sql = "CREATE TABLE IF NOT EXISTS UserShareQuota (user VARCHAR(255) PRIMARY KEY," - "quota BIGINT) ENGINE=INNODB"; + sql = "CREATE TABLE IF NOT EXISTS UserShareQuota (id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " + "user VARCHAR(255)," + "quota BIGINT, UNIQUE INDEX(user)) ENGINE=INNODB"; if (seaf_db_query (db, sql) < 0) return -1; - sql = "CREATE TABLE IF NOT EXISTS OrgQuota (org_id INTEGER PRIMARY KEY," - "quota BIGINT) ENGINE=INNODB"; + sql = "CREATE TABLE IF NOT EXISTS OrgQuota (id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " + "org_id INTEGER," + "quota BIGINT, UNIQUE INDEX(org_id)) ENGINE=INNODB"; if (seaf_db_query (db, sql) < 0) return -1; - sql = "CREATE TABLE IF NOT EXISTS OrgUserQuota (org_id INTEGER," - "user VARCHAR(255), quota BIGINT, PRIMARY KEY (org_id, user))" + sql = "CREATE TABLE IF NOT EXISTS OrgUserQuota (id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " + "org_id INTEGER," + "user VARCHAR(255), quota BIGINT, UNIQUE INDEX(org_id, user))" "ENGINE=INNODB"; if (seaf_db_query (db, sql) < 0) return -1; @@ -177,14 +181,14 @@ seaf_quota_manager_set_user_quota (SeafQuotaManager *mgr, 2, "int64", quota, "string", user); else rc = seaf_db_statement_query (db, - "INSERT INTO UserQuota VALUES " + "INSERT INTO UserQuota (user, quota) VALUES " "(?, ?)", 2, "string", user, "int64", quota); return rc; } else { int rc; rc = seaf_db_statement_query (db, - "REPLACE INTO UserQuota VALUES (?, ?)", + "REPLACE INTO UserQuota (user, quota) VALUES (?, ?)", 2, "string", user, "int64", quota); return rc; } @@ -233,12 +237,12 @@ seaf_quota_manager_set_org_quota (SeafQuotaManager *mgr, 2, "int64", quota, "int", org_id); else rc = seaf_db_statement_query (db, - "INSERT INTO OrgQuota VALUES (?, ?)", + "INSERT INTO OrgQuota (org_id, quota) VALUES (?, ?)", 2, "int", org_id, "int64", quota); return rc; } else { int rc = seaf_db_statement_query (db, - "REPLACE INTO OrgQuota VALUES (?, ?)", + "REPLACE INTO OrgQuota (org_id, quota) VALUES (?, ?)", 2, "int", org_id, "int64", quota); return rc; } @@ -286,14 +290,14 @@ seaf_quota_manager_set_org_user_quota (SeafQuotaManager *mgr, "string", user); else rc = seaf_db_statement_query (db, - "INSERT INTO OrgQuota VALUES " + "INSERT INTO OrgUserQuota (org_id, user, quota) VALUES " "(?, ?, ?)", 3, "int", org_id, "string", user, "int64", quota); return rc; } else { rc = seaf_db_statement_query (db, - "REPLACE INTO OrgUserQuota VALUES (?, ?, ?)", + "REPLACE INTO OrgUserQuota (org_id, user, quota) VALUES (?, ?, ?)", 3, "int", org_id, "string", user, "int64", quota); return rc; } diff --git a/server/repo-mgr.c b/server/repo-mgr.c index b1e7711..1f50d69 100644 --- a/server/repo-mgr.c +++ b/server/repo-mgr.c @@ -352,7 +352,7 @@ seaf_repo_manager_add_repo (SeafRepoManager *manager, { SeafDB *db = manager->seaf->db; - if (seaf_db_statement_query (db, "INSERT INTO Repo VALUES (?)", + if (seaf_db_statement_query (db, "INSERT INTO Repo (repo_id) VALUES (?)", 1, "string", repo->id) < 0) return -1; @@ -376,14 +376,14 @@ add_deleted_repo_record (SeafRepoManager *mgr, const char *repo_id) if (!exists) { return seaf_db_statement_query(seaf->db, - "INSERT INTO GarbageRepos VALUES (?)", + "INSERT INTO GarbageRepos (repo_id) VALUES (?)", 1, "string", repo_id); } return 0; } else { return seaf_db_statement_query (seaf->db, - "REPLACE INTO GarbageRepos VALUES (?)", + "REPLACE INTO GarbageRepos (repo_id) VALUES (?)", 1, "string", repo_id); } } @@ -792,13 +792,13 @@ save_branch_repo_map (SeafRepoManager *manager, SeafBranch *branch) "string", branch->repo_id); else rc = seaf_db_statement_query (seaf->db, - "INSERT INTO RepoHead VALUES (?, ?)", + "INSERT INTO RepoHead (repo_id, branch_name) VALUES (?, ?)", 2, "string", branch->repo_id, "string", branch->name); return rc; } else { return seaf_db_statement_query (seaf->db, - "REPLACE INTO RepoHead VALUES (?, ?)", + "REPLACE INTO RepoHead (repo_id, branch_name) VALUES (?, ?)", 2, "string", branch->repo_id, "string", branch->name); } @@ -933,20 +933,23 @@ create_tables_mysql (SeafRepoManager *mgr) SeafDB *db = mgr->seaf->db; char *sql; - sql = "CREATE TABLE IF NOT EXISTS Repo (repo_id CHAR(37) PRIMARY KEY)" + sql = "CREATE TABLE IF NOT EXISTS Repo (id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " + "repo_id CHAR(37), UNIQUE INDEX (repo_id))" "ENGINE=INNODB"; if (seaf_db_query (db, sql) < 0) return -1; sql = "CREATE TABLE IF NOT EXISTS RepoOwner (" - "repo_id CHAR(37) PRIMARY KEY, " + "id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " + "repo_id CHAR(37), " "owner_id VARCHAR(255)," - "INDEX (owner_id))" + "UNIQUE INDEX (repo_id), INDEX (owner_id))" "ENGINE=INNODB"; if (seaf_db_query (db, sql) < 0) return -1; - sql = "CREATE TABLE IF NOT EXISTS RepoGroup (repo_id CHAR(37), " + sql = "CREATE TABLE IF NOT EXISTS RepoGroup (id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT," + "repo_id CHAR(37), " "group_id INTEGER, user_name VARCHAR(255), permission CHAR(15), " "UNIQUE INDEX (group_id, repo_id), " "INDEX (repo_id), INDEX (user_name))" @@ -955,13 +958,15 @@ create_tables_mysql (SeafRepoManager *mgr) return -1; sql = "CREATE TABLE IF NOT EXISTS InnerPubRepo (" - "repo_id CHAR(37) PRIMARY KEY," - "permission CHAR(15))" + "id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " + "repo_id CHAR(37)," + "permission CHAR(15), UNIQUE INDEX (repo_id))" "ENGINE=INNODB"; if (seaf_db_query (db, sql) < 0) return -1; sql = "CREATE TABLE IF NOT EXISTS RepoUserToken (" + "id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " "repo_id CHAR(37), " "email VARCHAR(255), " "token CHAR(41), " @@ -971,74 +976,85 @@ create_tables_mysql (SeafRepoManager *mgr) return -1; sql = "CREATE TABLE IF NOT EXISTS RepoTokenPeerInfo (" - "token CHAR(41) PRIMARY KEY, " + "id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " + "token CHAR(41), " "peer_id CHAR(41), " "peer_ip VARCHAR(41), " "peer_name VARCHAR(255), " "sync_time BIGINT, " - "client_ver VARCHAR(20))" + "client_ver VARCHAR(20), UNIQUE INDEX(token))" "ENGINE=INNODB"; if (seaf_db_query (db, sql) < 0) return -1; sql = "CREATE TABLE IF NOT EXISTS RepoHead (" - "repo_id CHAR(37) PRIMARY KEY, branch_name VARCHAR(10))" + "id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " + "repo_id CHAR(37), branch_name VARCHAR(10), UNIQUE INDEX(repo_id))" "ENGINE=INNODB"; if (seaf_db_query (db, sql) < 0) return -1; sql = "CREATE TABLE IF NOT EXISTS RepoSize (" - "repo_id CHAR(37) PRIMARY KEY," + "id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " + "repo_id CHAR(37)," "size BIGINT UNSIGNED," - "head_id CHAR(41))" + "head_id CHAR(41), UNIQUE INDEX (repo_id))" "ENGINE=INNODB"; if (seaf_db_query (db, sql) < 0) return -1; sql = "CREATE TABLE IF NOT EXISTS RepoHistoryLimit (" - "repo_id CHAR(37) PRIMARY KEY, days INTEGER)" + "id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " + "repo_id CHAR(37), days INTEGER, UNIQUE INDEX(repo_id))" "ENGINE=INNODB"; if (seaf_db_query (db, sql) < 0) return -1; sql = "CREATE TABLE IF NOT EXISTS RepoValidSince (" - "repo_id CHAR(37) PRIMARY KEY, timestamp BIGINT)" + "id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " + "repo_id CHAR(37), timestamp BIGINT, UNIQUE INDEX(repo_id))" "ENGINE=INNODB"; if (seaf_db_query (db, sql) < 0) return -1; - sql = "CREATE TABLE IF NOT EXISTS WebAP (repo_id CHAR(37) PRIMARY KEY, " - "access_property CHAR(10))" + sql = "CREATE TABLE IF NOT EXISTS WebAP (id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " + "repo_id CHAR(37), " + "access_property CHAR(10), UNIQUE INDEX(repo_id))" "ENGINE=INNODB"; if (seaf_db_query (db, sql) < 0) return -1; - sql = "CREATE TABLE IF NOT EXISTS VirtualRepo (repo_id CHAR(36) PRIMARY KEY," - "origin_repo CHAR(36), path TEXT, base_commit CHAR(40), INDEX(origin_repo))" + sql = "CREATE TABLE IF NOT EXISTS VirtualRepo (id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " + "repo_id CHAR(36)," + "origin_repo CHAR(36), path TEXT, base_commit CHAR(40), UNIQUE INDEX(repo_id), INDEX(origin_repo))" "ENGINE=INNODB"; if (seaf_db_query (db, sql) < 0) return -1; - sql = "CREATE TABLE IF NOT EXISTS GarbageRepos (repo_id CHAR(36) PRIMARY KEY)"; + sql = "CREATE TABLE IF NOT EXISTS GarbageRepos (id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " + "repo_id CHAR(36), UNIQUE INDEX(repo_id))"; if (seaf_db_query (db, sql) < 0) return -1; - sql = "CREATE TABLE IF NOT EXISTS RepoTrash (repo_id CHAR(36) PRIMARY KEY," + sql = "CREATE TABLE IF NOT EXISTS RepoTrash (id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " + "repo_id CHAR(36)," "repo_name VARCHAR(255), head_id CHAR(40), owner_id VARCHAR(255)," "size BIGINT(20), org_id INTEGER, del_time BIGINT, " - "INDEX(owner_id), INDEX(org_id))ENGINE=INNODB"; + "UNIQUE INDEX(repo_id), INDEX(owner_id), INDEX(org_id))ENGINE=INNODB"; if (seaf_db_query (db, sql) < 0) return -1; sql = "CREATE TABLE IF NOT EXISTS RepoFileCount (" - "repo_id CHAR(36) PRIMARY KEY," - "file_count BIGINT UNSIGNED)ENGINE=INNODB"; + "id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " + "repo_id CHAR(36)," + "file_count BIGINT UNSIGNED, UNIQUE INDEX(repo_id))ENGINE=INNODB"; if (seaf_db_query (db, sql) < 0) return -1; - sql = "CREATE TABLE IF NOT EXISTS RepoInfo (repo_id CHAR(36) PRIMARY KEY, " + sql = "CREATE TABLE IF NOT EXISTS RepoInfo (id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " + "repo_id CHAR(36), " "name VARCHAR(255) NOT NULL, update_time BIGINT, version INTEGER, " - "is_encrypted INTEGER, last_modifier VARCHAR(255)) ENGINE=INNODB"; + "is_encrypted INTEGER, last_modifier VARCHAR(255), UNIQUE INDEX(repo_id)) ENGINE=INNODB"; if (seaf_db_query (db, sql) < 0) return -1; @@ -1384,7 +1400,7 @@ add_repo_token (SeafRepoManager *mgr, GError **error) { int rc = seaf_db_statement_query (mgr->seaf->db, - "INSERT INTO RepoUserToken VALUES (?, ?, ?)", + "INSERT INTO RepoUserToken (repo_id, email, token) VALUES (?, ?, ?)", 3, "string", repo_id, "string", email, "string", token); @@ -1425,8 +1441,8 @@ seaf_repo_manager_add_token_peer_info (SeafRepoManager *mgr, int ret = 0; if (seaf_db_statement_query (mgr->seaf->db, - "INSERT INTO RepoTokenPeerInfo VALUES (" - "?, ?, ?, ?, ?, ?)", + "INSERT INTO RepoTokenPeerInfo (token, peer_id, peer_ip, peer_name, sync_time, client_ver)" + "VALUES (?, ?, ?, ?, ?, ?)", 6, "string", token, "string", peer_id, "string", peer_ip, @@ -1886,13 +1902,13 @@ seaf_repo_manager_set_repo_history_limit (SeafRepoManager *mgr, 2, "int", days, "string", repo_id); else rc = seaf_db_statement_query (db, - "INSERT INTO RepoHistoryLimit VALUES " + "INSERT INTO RepoHistoryLimit (repo_id, days) VALUES " "(?, ?)", 2, "string", repo_id, "int", days); return rc; } else { if (seaf_db_statement_query (db, - "REPLACE INTO RepoHistoryLimit VALUES (?, ?)", + "REPLACE INTO RepoHistoryLimit (repo_id, days) VALUES (?, ?)", 2, "string", repo_id, "int", days) < 0) return -1; } @@ -1967,14 +1983,14 @@ seaf_repo_manager_set_repo_valid_since (SeafRepoManager *mgr, 2, "int64", timestamp, "string", repo_id); else rc = seaf_db_statement_query (db, - "INSERT INTO RepoValidSince VALUES " + "INSERT INTO RepoValidSince (repo_id, timestamp) VALUES " "(?, ?)", 2, "string", repo_id, "int64", timestamp); if (rc < 0) return -1; } else { if (seaf_db_statement_query (db, - "REPLACE INTO RepoValidSince VALUES (?, ?)", + "REPLACE INTO RepoValidSince (repo_id, timestamp) VALUES (?, ?)", 2, "string", repo_id, "int64", timestamp) < 0) return -1; } @@ -2043,7 +2059,7 @@ seaf_repo_manager_set_repo_owner (SeafRepoManager *mgr, "repo_id='%s'", email, repo_id); else snprintf(sql, sizeof(sql), - "INSERT INTO RepoOwner VALUES ('%s', '%s')", + "INSERT INTO RepoOwner (repo_id, owner_id) VALUES ('%s', '%s')", repo_id, email); if (err) { ret = -1; @@ -2055,7 +2071,7 @@ seaf_repo_manager_set_repo_owner (SeafRepoManager *mgr, goto out; } } else { - if (seaf_db_statement_query (db, "REPLACE INTO RepoOwner VALUES (?, ?)", + if (seaf_db_statement_query (db, "REPLACE INTO RepoOwner (repo_id, owner_id) VALUES (?, ?)", 2, "string", repo_id, "string", email) < 0) { ret = -1; goto out; @@ -2676,7 +2692,7 @@ seaf_repo_manager_restore_repo_from_trash (SeafRepoManager *mgr, if (!exists) { ret = seaf_db_trans_query (trans, - "INSERT INTO RepoOwner VALUES (?, ?)", + "INSERT INTO RepoOwner (repo_id, owner_id) VALUES (?, ?)", 2, "string", repo_id, "string", seafile_trash_repo_get_owner_id(repo)); if (ret < 0) { @@ -2693,7 +2709,7 @@ seaf_repo_manager_restore_repo_from_trash (SeafRepoManager *mgr, &db_err, 1, "string", repo_id); if (!exists) { ret = seaf_db_trans_query (trans, - "INSERT INTO Branch VALUES ('master', ?, ?)", + "INSERT INTO Branch (name, repo_id, commit_id) VALUES ('master', ?, ?)", 2, "string", repo_id, "string", seafile_trash_repo_get_head_id(repo)); if (ret < 0) { @@ -2710,7 +2726,7 @@ seaf_repo_manager_restore_repo_from_trash (SeafRepoManager *mgr, &db_err, 1, "string", repo_id); if (!exists) { ret = seaf_db_trans_query (trans, - "INSERT INTO RepoHead VALUES (?, 'master')", + "INSERT INTO RepoHead (repo_id, branch_name) VALUES (?, 'master')", 1, "string", repo_id); if (ret < 0) { g_set_error (error, SEAFILE_DOMAIN, SEAF_ERR_GENERAL, @@ -2728,7 +2744,7 @@ seaf_repo_manager_restore_repo_from_trash (SeafRepoManager *mgr, if (!exists) { ret = seaf_db_trans_query (trans, - "INSERT INTO RepoSize VALUES (?, ?, ?)", + "INSERT INTO RepoSize (repo_id, size, head_id) VALUES (?, ?, ?)", 3, "string", repo_id, "int64", seafile_trash_repo_get_size (repo), "string", seafile_trash_repo_get_head_id (repo)); @@ -2776,7 +2792,7 @@ seaf_repo_manager_set_access_property (SeafRepoManager *mgr, const char *repo_id if (seaf_repo_manager_query_access_property (mgr, repo_id) == NULL) { rc = seaf_db_statement_query (mgr->seaf->db, - "INSERT INTO WebAP VALUES (?, ?)", + "INSERT INTO WebAP (repo_id, access_property) VALUES (?, ?)", 2, "string", repo_id, "string", ap); } else { rc = seaf_db_statement_query (mgr->seaf->db, @@ -2831,7 +2847,7 @@ seaf_repo_manager_add_group_repo (SeafRepoManager *mgr, GError **error) { if (seaf_db_statement_query (mgr->seaf->db, - "INSERT INTO RepoGroup VALUES (?, ?, ?, ?)", + "INSERT INTO RepoGroup (repo_id, group_id, user_name, permission) VALUES (?, ?, ?, ?)", 4, "string", repo_id, "int", group_id, "string", owner, "string", permission) < 0) return -1; @@ -3211,14 +3227,14 @@ seaf_repo_manager_set_inner_pub_repo (SeafRepoManager *mgr, "WHERE repo_id='%s'", permission, repo_id); else snprintf(sql, sizeof(sql), - "INSERT INTO InnerPubRepo VALUES " + "INSERT INTO InnerPubRepo (repo_id, permission) VALUES " "('%s', '%s')", repo_id, permission); if (err) return -1; return seaf_db_query (db, sql); } else { return seaf_db_statement_query (db, - "REPLACE INTO InnerPubRepo VALUES (?, ?)", + "REPLACE INTO InnerPubRepo (repo_id, permission) VALUES (?, ?)", 2, "string", repo_id, "string", permission); } diff --git a/server/seafile-session.c b/server/seafile-session.c index 88bb831..76d9c12 100644 --- a/server/seafile-session.c +++ b/server/seafile-session.c @@ -302,7 +302,7 @@ set_system_default_repo_id (SeafileSession *session, const char *repo_id) { char sql[256]; snprintf (sql, sizeof(sql), - "INSERT INTO SystemInfo VALUES ('default_repo_id', '%s')", + "INSERT INTO SystemInfo (info_key, info_value) VALUES ('default_repo_id', '%s')", repo_id); return seaf_db_query (session->db, sql); } @@ -425,7 +425,8 @@ void schedule_create_system_default_repo (SeafileSession *session) { char *sql = "CREATE TABLE IF NOT EXISTS SystemInfo " - "(info_key VARCHAR(256), info_value VARCHAR(1024))"; + "(id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, " + "info_key VARCHAR(256), info_value VARCHAR(1024))"; if (seaf_db_query (session->db, sql) < 0) return; diff --git a/server/share-mgr.c b/server/share-mgr.c index c7da58b..7a59763 100644 --- a/server/share-mgr.c +++ b/server/share-mgr.c @@ -31,7 +31,7 @@ seaf_share_manager_start (SeafShareManager *mgr) int db_type = seaf_db_type (db); if (db_type == SEAF_DB_TYPE_MYSQL) { sql = "CREATE TABLE IF NOT EXISTS SharedRepo " - "(id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT," + "(id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT," "repo_id CHAR(37) , from_email VARCHAR(255), to_email VARCHAR(255), " "permission CHAR(15), INDEX (repo_id), " "INDEX(from_email), INDEX(to_email)) ENGINE=INNODB"; diff --git a/server/size-sched.c b/server/size-sched.c index f635277..0e3f827 100644 --- a/server/size-sched.c +++ b/server/size-sched.c @@ -156,7 +156,7 @@ set_repo_size_and_file_count (SeafDB *db, if (n == 0) { /* Size not set before. */ - sql = "INSERT INTO RepoSize VALUES (?, ?, ?)"; + sql = "INSERT INTO RepoSize (repo_id, size, head_id) VALUES (?, ?, ?)"; if (seaf_db_trans_query (trans, sql, 3, "string", repo_id, "int64", size, "string", new_head_id) < 0) { ret = -1; diff --git a/server/virtual-repo.c b/server/virtual-repo.c index eaa5f03..a0f1b73 100644 --- a/server/virtual-repo.c +++ b/server/virtual-repo.c @@ -54,7 +54,7 @@ save_virtual_repo_info (SeafRepoManager *mgr, int ret = 0; if (seaf_db_statement_query (mgr->seaf->db, - "INSERT INTO VirtualRepo VALUES (?, ?, ?, ?)", + "INSERT INTO VirtualRepo (repo_id, origin_repo, path, base_commit) VALUES (?, ?, ?, ?)", 4, "string", repo_id, "string", origin_repo_id, "string", path, "string", base_commit) < 0) ret = -1;