You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"SELECT GROUP_CONCAT(part, ' UNION ALL ') || ' UNION SELECT value as version FROM cloudsync_settings WHERE key = ''pre_alter_dbversion''' as full_query FROM query_parts"
316
316
") "
317
317
"SELECT 'SELECT max(version) as version FROM (' || full_query || ');' FROM combined_query;";
if (cloudsync_load_siteid(db, data) !=DBRES_OK) returnNULL;
1554
1570
1555
1571
data->db=db;
1556
-
data->schema_hash=dbutils_schema_hash(db);
1572
+
data->schema_hash=database_schema_hash(db);
1557
1573
}
1558
1574
1559
1575
return (constchar*)data->site_id;
@@ -1719,9 +1735,11 @@ int cloudsync_finalize_alter (cloudsync_context *data, cloudsync_table_context *
1719
1735
rc=DBRES_NOMEM;
1720
1736
goto finalize;
1721
1737
}
1722
-
char*pkclause=dbutils_text_select(db, sql);
1723
-
char*pkvalues=(pkclause) ? pkclause : "rowid";
1738
+
char*pkclause=NULL;
1739
+
intrc=database_select_text(db, sql, &pkclause);
1724
1740
cloudsync_memory_free(sql);
1741
+
if (rc!=DBRES_OK) goto finalize;
1742
+
char*pkvalues= (pkclause) ? pkclause : "rowid";
1725
1743
1726
1744
// delete entries related to rows that no longer exist in the original table, but preserve tombstone
1727
1745
sql=cloudsync_memory_mprintf("DELETE FROM \"%w_cloudsync\" WHERE (\"col_name\" != '%s' OR (\"col_name\" = '%s' AND col_version %% 2 != 0)) AND NOT EXISTS (SELECT 1 FROM \"%w\" WHERE \"%w_cloudsync\".pk = cloudsync_pk_encode(%s) LIMIT 1);", table->name, CLOUDSYNC_TOMBSTONE_VALUE, CLOUDSYNC_TOMBSTONE_VALUE, table->name, table->name, pkvalues);
char*sql=cloudsync_memory_mprintf("SELECT group_concat('\"' || format('%%w', name) || '\"', ',') FROM pragma_table_info('%q') WHERE pk>0 ORDER BY pk;", table_name);
sql=cloudsync_memory_mprintf("SELECT group_concat('cloudsync_pk_decode(pk, ' || pk || ') AS ' || '\"' || format('%%w', name) || '\"', ',') FROM pragma_table_info('%q') WHERE pk>0 ORDER BY pk;", table_name);
1812
-
char*pkdecode=dbutils_text_select(db, sql);
1813
-
char*pkdecodeval= (pkdecode) ? pkdecode : "cloudsync_pk_decode(pk, 1) AS rowid";
1833
+
rc=database_select_text(db, sql, &pkdecode);
1814
1834
cloudsync_memory_free(sql);
1835
+
if (rc!=DBRES_OK) goto finalize;
1836
+
char*pkdecodeval= (pkdecode) ? pkdecode : "cloudsync_pk_decode(pk, 1) AS rowid";
1815
1837
1816
1838
sql=cloudsync_memory_mprintf("SELECT cloudsync_insert('%q', %s) FROM (SELECT %s FROM \"%w\" EXCEPT SELECT %s FROM \"%w_cloudsync\");", table_name, pkvalues_identifiers, pkvalues_identifiers, table_name, pkdecodeval, table_name);
0 commit comments