Skip to content

Commit b652757

Browse files
committed
fix: add col_name to cloudsync_table_settings primary key in SQLite
The SQLite schema used PRIMARY KEY(tbl_name, key), while PostgreSQL correctly used PRIMARY KEY(tbl_name, col_name, key). The missing col_name caused REPLACE INTO to silently overwrite column-level settings sharing the same (tbl_name, key) pair.
1 parent 7128c16 commit b652757

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/sqlite/sql_sqlite.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ const char * const SQL_INSERT_SITE_ID_ROWID =
5656
"INSERT INTO cloudsync_site_id (rowid, site_id) VALUES (?, ?);";
5757

5858
const char * const SQL_CREATE_TABLE_SETTINGS_TABLE =
59-
"CREATE TABLE IF NOT EXISTS cloudsync_table_settings (tbl_name TEXT NOT NULL COLLATE NOCASE, col_name TEXT NOT NULL COLLATE NOCASE, key TEXT, value TEXT, PRIMARY KEY(tbl_name,key));";
59+
"CREATE TABLE IF NOT EXISTS cloudsync_table_settings (tbl_name TEXT NOT NULL COLLATE NOCASE, col_name TEXT NOT NULL COLLATE NOCASE, key TEXT, value TEXT, PRIMARY KEY(tbl_name,col_name,key));";
6060

6161
const char * const SQL_CREATE_SCHEMA_VERSIONS_TABLE =
6262
"CREATE TABLE IF NOT EXISTS cloudsync_schema_versions (hash INTEGER PRIMARY KEY, seq INTEGER NOT NULL)";

0 commit comments

Comments
 (0)