Skip to content

Commit ab25deb

Browse files
committed
Refactoring PG code
1 parent 8680b28 commit ab25deb

File tree

7 files changed

+577
-461
lines changed

7 files changed

+577
-461
lines changed

src/cloudsync.c

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ int cloudsync_dbversion_rebuild (cloudsync_context *data) {
344344
if (!sql) return DBRES_NOMEM;
345345
DEBUG_SQL("db_version_stmt: %s", sql);
346346

347-
int rc = database_prepare(data, sql, (void **)&data->db_version_stmt, DBFLAG_PERSISTENT);
347+
int rc = databasevm_prepare(data, sql, (void **)&data->db_version_stmt, DBFLAG_PERSISTENT);
348348
DEBUG_STMT("db_version_stmt %p", data->db_version_stmt);
349349
cloudsync_memory_free(sql);
350350
return rc;
@@ -468,14 +468,14 @@ int cloudsync_add_dbvms (cloudsync_context *data) {
468468
DEBUG_DBFUNCTION("cloudsync_add_stmts");
469469

470470
if (data->data_version_stmt == NULL) {
471-
int rc = database_prepare(data, SQL_DATA_VERSION, (void **)&data->data_version_stmt, DBFLAG_PERSISTENT);
471+
int rc = databasevm_prepare(data, SQL_DATA_VERSION, (void **)&data->data_version_stmt, DBFLAG_PERSISTENT);
472472
DEBUG_STMT("data_version_stmt %p", data->data_version_stmt);
473473
if (rc != DBRES_OK) return rc;
474474
DEBUG_SQL("data_version_stmt: %s", SQL_DATA_VERSION);
475475
}
476476

477477
if (data->schema_version_stmt == NULL) {
478-
int rc = database_prepare(data, SQL_SCHEMA_VERSION, (void **)&data->schema_version_stmt, DBFLAG_PERSISTENT);
478+
int rc = databasevm_prepare(data, SQL_SCHEMA_VERSION, (void **)&data->schema_version_stmt, DBFLAG_PERSISTENT);
479479
DEBUG_STMT("schema_version_stmt %p", data->schema_version_stmt);
480480
if (rc != DBRES_OK) return rc;
481481
DEBUG_SQL("schema_version_stmt: %s", SQL_SCHEMA_VERSION);
@@ -485,7 +485,7 @@ int cloudsync_add_dbvms (cloudsync_context *data) {
485485
// get and set index of the site_id
486486
// in SQLite, we can’t directly combine an INSERT and a SELECT to both insert a row and return an identifier (rowid) in a single statement,
487487
// however, we can use a workaround by leveraging the INSERT statement with ON CONFLICT DO UPDATE and then combining it with RETURNING rowid
488-
int rc = database_prepare(data, SQL_SITEID_GETSET_ROWID_BY_SITEID, (void **)&data->getset_siteid_stmt, DBFLAG_PERSISTENT);
488+
int rc = databasevm_prepare(data, SQL_SITEID_GETSET_ROWID_BY_SITEID, (void **)&data->getset_siteid_stmt, DBFLAG_PERSISTENT);
489489
DEBUG_STMT("getset_siteid_stmt %p", data->getset_siteid_stmt);
490490
if (rc != DBRES_OK) return rc;
491491
DEBUG_SQL("getset_siteid_stmt: %s", SQL_SITEID_GETSET_ROWID_BY_SITEID);
@@ -682,7 +682,7 @@ int table_add_stmts (cloudsync_table_context *table, int ncols) {
682682
if (!sql) {rc = DBRES_NOMEM; goto cleanup;}
683683
DEBUG_SQL("meta_pkexists_stmt: %s", sql);
684684

685-
rc = database_prepare(data, sql, (void **)&table->meta_pkexists_stmt, DBFLAG_PERSISTENT);
685+
rc = databasevm_prepare(data, sql, (void **)&table->meta_pkexists_stmt, DBFLAG_PERSISTENT);
686686
cloudsync_memory_free(sql);
687687
if (rc != DBRES_OK) goto cleanup;
688688

@@ -691,7 +691,7 @@ int table_add_stmts (cloudsync_table_context *table, int ncols) {
691691
if (!sql) {rc = DBRES_NOMEM; goto cleanup;}
692692
DEBUG_SQL("meta_sentinel_update_stmt: %s", sql);
693693

694-
rc = database_prepare(data, sql, (void **)&table->meta_sentinel_update_stmt, DBFLAG_PERSISTENT);
694+
rc = databasevm_prepare(data, sql, (void **)&table->meta_sentinel_update_stmt, DBFLAG_PERSISTENT);
695695
cloudsync_memory_free(sql);
696696
if (rc != DBRES_OK) goto cleanup;
697697

@@ -700,7 +700,7 @@ int table_add_stmts (cloudsync_table_context *table, int ncols) {
700700
if (!sql) {rc = DBRES_NOMEM; goto cleanup;}
701701
DEBUG_SQL("meta_sentinel_insert_stmt: %s", sql);
702702

703-
rc = database_prepare(data, sql, (void **)&table->meta_sentinel_insert_stmt, DBFLAG_PERSISTENT);
703+
rc = databasevm_prepare(data, sql, (void **)&table->meta_sentinel_insert_stmt, DBFLAG_PERSISTENT);
704704
cloudsync_memory_free(sql);
705705
if (rc != DBRES_OK) goto cleanup;
706706

@@ -709,7 +709,7 @@ int table_add_stmts (cloudsync_table_context *table, int ncols) {
709709
if (!sql) {rc = DBRES_NOMEM; goto cleanup;}
710710
DEBUG_SQL("meta_row_insert_update_stmt: %s", sql);
711711

712-
rc = database_prepare(data, sql, (void **)&table->meta_row_insert_update_stmt, DBFLAG_PERSISTENT);
712+
rc = databasevm_prepare(data, sql, (void **)&table->meta_row_insert_update_stmt, DBFLAG_PERSISTENT);
713713
cloudsync_memory_free(sql);
714714
if (rc != DBRES_OK) goto cleanup;
715715

@@ -718,7 +718,7 @@ int table_add_stmts (cloudsync_table_context *table, int ncols) {
718718
if (!sql) {rc = DBRES_NOMEM; goto cleanup;}
719719
DEBUG_SQL("meta_row_drop_stmt: %s", sql);
720720

721-
rc = database_prepare(data, sql, (void **)&table->meta_row_drop_stmt, DBFLAG_PERSISTENT);
721+
rc = databasevm_prepare(data, sql, (void **)&table->meta_row_drop_stmt, DBFLAG_PERSISTENT);
722722
cloudsync_memory_free(sql);
723723
if (rc != DBRES_OK) goto cleanup;
724724

@@ -728,7 +728,7 @@ int table_add_stmts (cloudsync_table_context *table, int ncols) {
728728
if (!sql) {rc = DBRES_NOMEM; goto cleanup;}
729729
DEBUG_SQL("meta_update_move_stmt: %s", sql);
730730

731-
rc = database_prepare(data, sql, (void **)&table->meta_update_move_stmt, DBFLAG_PERSISTENT);
731+
rc = databasevm_prepare(data, sql, (void **)&table->meta_update_move_stmt, DBFLAG_PERSISTENT);
732732
cloudsync_memory_free(sql);
733733
if (rc != DBRES_OK) goto cleanup;
734734

@@ -737,7 +737,7 @@ int table_add_stmts (cloudsync_table_context *table, int ncols) {
737737
if (!sql) {rc = DBRES_NOMEM; goto cleanup;}
738738
DEBUG_SQL("meta_local_cl_stmt: %s", sql);
739739

740-
rc = database_prepare(data, sql, (void **)&table->meta_local_cl_stmt, DBFLAG_PERSISTENT);
740+
rc = databasevm_prepare(data, sql, (void **)&table->meta_local_cl_stmt, DBFLAG_PERSISTENT);
741741
cloudsync_memory_free(sql);
742742
if (rc != DBRES_OK) goto cleanup;
743743

@@ -746,15 +746,15 @@ int table_add_stmts (cloudsync_table_context *table, int ncols) {
746746
if (!sql) {rc = DBRES_NOMEM; goto cleanup;}
747747
DEBUG_SQL("meta_winner_clock_stmt: %s", sql);
748748

749-
rc = database_prepare(data, sql, (void **)&table->meta_winner_clock_stmt, DBFLAG_PERSISTENT);
749+
rc = databasevm_prepare(data, sql, (void **)&table->meta_winner_clock_stmt, DBFLAG_PERSISTENT);
750750
cloudsync_memory_free(sql);
751751
if (rc != DBRES_OK) goto cleanup;
752752

753753
sql = cloudsync_memory_mprintf(SQL_CLOUDSYNC_DELETE_PK_EXCEPT_COL, table->name, CLOUDSYNC_TOMBSTONE_VALUE);
754754
if (!sql) {rc = DBRES_NOMEM; goto cleanup;}
755755
DEBUG_SQL("meta_merge_delete_drop: %s", sql);
756756

757-
rc = database_prepare(data, sql, (void **)&table->meta_merge_delete_drop, DBFLAG_PERSISTENT);
757+
rc = databasevm_prepare(data, sql, (void **)&table->meta_merge_delete_drop, DBFLAG_PERSISTENT);
758758
cloudsync_memory_free(sql);
759759
if (rc != DBRES_OK) goto cleanup;
760760

@@ -763,7 +763,7 @@ int table_add_stmts (cloudsync_table_context *table, int ncols) {
763763
if (!sql) {rc = DBRES_NOMEM; goto cleanup;}
764764
DEBUG_SQL("meta_zero_clock_stmt: %s", sql);
765765

766-
rc = database_prepare(data, sql, (void **)&table->meta_zero_clock_stmt, DBFLAG_PERSISTENT);
766+
rc = databasevm_prepare(data, sql, (void **)&table->meta_zero_clock_stmt, DBFLAG_PERSISTENT);
767767
cloudsync_memory_free(sql);
768768
if (rc != DBRES_OK) goto cleanup;
769769

@@ -772,7 +772,7 @@ int table_add_stmts (cloudsync_table_context *table, int ncols) {
772772
if (!sql) {rc = DBRES_NOMEM; goto cleanup;}
773773
DEBUG_SQL("meta_col_version_stmt: %s", sql);
774774

775-
rc = database_prepare(data, sql, (void **)&table->meta_col_version_stmt, DBFLAG_PERSISTENT);
775+
rc = databasevm_prepare(data, sql, (void **)&table->meta_col_version_stmt, DBFLAG_PERSISTENT);
776776
cloudsync_memory_free(sql);
777777
if (rc != DBRES_OK) goto cleanup;
778778

@@ -781,7 +781,7 @@ int table_add_stmts (cloudsync_table_context *table, int ncols) {
781781
if (!sql) {rc = DBRES_NOMEM; goto cleanup;}
782782
DEBUG_SQL("meta_site_id_stmt: %s", sql);
783783

784-
rc = database_prepare(data, sql, (void **)&table->meta_site_id_stmt, DBFLAG_PERSISTENT);
784+
rc = databasevm_prepare(data, sql, (void **)&table->meta_site_id_stmt, DBFLAG_PERSISTENT);
785785
cloudsync_memory_free(sql);
786786
if (rc != DBRES_OK) goto cleanup;
787787

@@ -793,7 +793,7 @@ int table_add_stmts (cloudsync_table_context *table, int ncols) {
793793
if (!sql) {rc = DBRES_NOMEM; goto cleanup;}
794794
DEBUG_SQL("real_col_values_stmt: %s", sql);
795795

796-
rc = database_prepare(data, sql, (void **)&table->real_col_values_stmt, DBFLAG_PERSISTENT);
796+
rc = databasevm_prepare(data, sql, (void **)&table->real_col_values_stmt, DBFLAG_PERSISTENT);
797797
cloudsync_memory_free(sql);
798798
if (rc != DBRES_OK) goto cleanup;
799799
}
@@ -802,15 +802,15 @@ int table_add_stmts (cloudsync_table_context *table, int ncols) {
802802
if (!sql) {rc = DBRES_NOMEM; goto cleanup;}
803803
DEBUG_SQL("real_merge_delete: %s", sql);
804804

805-
rc = database_prepare(data, sql, (void **)&table->real_merge_delete_stmt, DBFLAG_PERSISTENT);
805+
rc = databasevm_prepare(data, sql, (void **)&table->real_merge_delete_stmt, DBFLAG_PERSISTENT);
806806
cloudsync_memory_free(sql);
807807
if (rc != DBRES_OK) goto cleanup;
808808

809809
sql = table_build_mergeinsert_sql(table, NULL);
810810
if (!sql) {rc = DBRES_NOMEM; goto cleanup;}
811811
DEBUG_SQL("real_merge_sentinel: %s", sql);
812812

813-
rc = database_prepare(data, sql, (void **)&table->real_merge_sentinel_stmt, DBFLAG_PERSISTENT);
813+
rc = databasevm_prepare(data, sql, (void **)&table->real_merge_sentinel_stmt, DBFLAG_PERSISTENT);
814814
cloudsync_memory_free(sql);
815815
if (rc != DBRES_OK) goto cleanup;
816816

@@ -880,7 +880,7 @@ int table_add_to_context_cb (void *xdata, int ncols, char **values, char **names
880880
if (!sql) return DBRES_NOMEM;
881881
DEBUG_SQL("col_merge_stmt[%d]: %s", index, sql);
882882

883-
int rc = database_prepare(data, sql, (void **)&table->col_merge_stmt[index], DBFLAG_PERSISTENT);
883+
int rc = databasevm_prepare(data, sql, (void **)&table->col_merge_stmt[index], DBFLAG_PERSISTENT);
884884
cloudsync_memory_free(sql);
885885
if (rc != DBRES_OK) return rc;
886886
if (!table->col_merge_stmt[index]) return DBRES_MISUSE;
@@ -889,7 +889,7 @@ int table_add_to_context_cb (void *xdata, int ncols, char **values, char **names
889889
if (!sql) return DBRES_NOMEM;
890890
DEBUG_SQL("col_value_stmt[%d]: %s", index, sql);
891891

892-
rc = database_prepare(data, sql, (void **)&table->col_value_stmt[index], DBFLAG_PERSISTENT);
892+
rc = databasevm_prepare(data, sql, (void **)&table->col_value_stmt[index], DBFLAG_PERSISTENT);
893893
cloudsync_memory_free(sql);
894894
if (rc != DBRES_OK) return rc;
895895
if (!table->col_value_stmt[index]) return DBRES_MISUSE;
@@ -987,7 +987,7 @@ dbvm_t *cloudsync_colvalue_stmt (cloudsync_context *data, const char *tbl_name,
987987
*persistent = true;
988988
} else {
989989
char *sql = table_build_value_sql(table, "*");
990-
database_prepare(data, sql, (void **)&vm, 0);
990+
databasevm_prepare(data, sql, (void **)&vm, 0);
991991
cloudsync_memory_free(sql);
992992
*persistent = false;
993993
}
@@ -1742,7 +1742,7 @@ int cloudsync_refill_metatable (cloudsync_context *data, const char *table_name)
17421742
// The old plan does many decodes per candidate and can’t use an index to rule out matches quickly—so it burns CPU and I/O.
17431743

17441744
sql = cloudsync_memory_mprintf(SQL_CLOUDSYNC_SELECT_PKS_NOT_IN_SYNC_FOR_COL, pkvalues_identifiers, table_name, table_name);
1745-
rc = database_prepare(data, sql, (void **)&vm, DBFLAG_PERSISTENT);
1745+
rc = databasevm_prepare(data, sql, (void **)&vm, DBFLAG_PERSISTENT);
17461746
cloudsync_memory_free(sql);
17471747
if (rc != DBRES_OK) goto finalize;
17481748

@@ -2158,7 +2158,7 @@ int cloudsync_payload_apply (cloudsync_context *data, const char *payload, int b
21582158

21592159
// precompile the insert statement
21602160
dbvm_t *vm = NULL;
2161-
int rc = database_prepare(data, SQL_CHANGES_INSERT_ROW, &vm, 0);
2161+
int rc = databasevm_prepare(data, SQL_CHANGES_INSERT_ROW, &vm, 0);
21622162
if (rc != DBRES_OK) {
21632163
if (clone) cloudsync_memory_free(clone);
21642164
return cloudsync_set_error(data, "Error on cloudsync_payload_apply: error while compiling SQL statement", rc);

src/database.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ int database_errcode (cloudsync_context *data);
9191
const char *database_errmsg (cloudsync_context *data);
9292

9393
// VM
94-
int database_prepare (cloudsync_context *data, const char *sql, dbvm_t **vm, int flags);
94+
int databasevm_prepare (cloudsync_context *data, const char *sql, dbvm_t **vm, int flags);
9595
int databasevm_step (dbvm_t *vm);
9696
void databasevm_finalize (dbvm_t *vm);
9797
void databasevm_reset (dbvm_t *vm);

src/dbutils.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ char *dbutils_settings_get_value (cloudsync_context *data, const char *key, char
111111
size_t size = 0;
112112

113113
dbvm_t *vm = NULL;
114-
int rc = database_prepare(data, SQL_SETTINGS_GET_VALUE, (void **)&vm, 0);
114+
int rc = databasevm_prepare(data, SQL_SETTINGS_GET_VALUE, (void **)&vm, 0);
115115
if (rc != DBRES_OK) goto finalize_get_value;
116116

117117
rc = databasevm_bind_text(vm, 1, key, -1);
@@ -231,7 +231,7 @@ char *dbutils_table_settings_get_value (cloudsync_context *data, const char *tab
231231
size_t size = 0;
232232

233233
dbvm_t *vm = NULL;
234-
int rc = database_prepare(data, SQL_TABLE_SETTINGS_GET_VALUE, (void **)&vm, 0);
234+
int rc = databasevm_prepare(data, SQL_TABLE_SETTINGS_GET_VALUE, (void **)&vm, 0);
235235
if (rc != DBRES_OK) goto finalize_get_value;
236236

237237
rc = databasevm_bind_text(vm, 1, table, -1);

0 commit comments

Comments
 (0)