@@ -258,7 +258,7 @@ bool force_uncompressed_blob = false;
258258#endif
259259
260260// Internal prototypes
261- int local_mark_insert_or_update_meta (cloudsync_table_context * table , const char * pk , size_t pklen , const char * col_name , int64_t db_version , int seq );
261+ int local_mark_insert_or_update_meta (cloudsync_table_context * table , const void * pk , size_t pklen , const char * col_name , int64_t db_version , int seq );
262262
263263// MARK: - CRDT algos -
264264
@@ -1472,7 +1472,7 @@ static int merge_flush_pending (cloudsync_context *data) {
14721472 return rc ;
14731473}
14741474
1475- int merge_insert_col (cloudsync_context * data , cloudsync_table_context * table , const char * pk , int pklen , const char * col_name , dbvalue_t * col_value , int64_t col_version , int64_t db_version , const char * site_id , int site_len , int64_t seq , int64_t * rowid ) {
1475+ int merge_insert_col (cloudsync_context * data , cloudsync_table_context * table , const void * pk , int pklen , const char * col_name , dbvalue_t * col_value , int64_t col_version , int64_t db_version , const char * site_id , int site_len , int64_t seq , int64_t * rowid ) {
14761476 int index ;
14771477 dbvm_t * vm = table_column_lookup (table , col_name , true, & index );
14781478 if (vm == NULL ) return cloudsync_set_error (data , "Unable to retrieve column merge precompiled statement in merge_insert_col" , DBRES_MISUSE );
@@ -1655,7 +1655,7 @@ int merge_did_cid_win (cloudsync_context *data, cloudsync_table_context *table,
16551655
16561656 rc = databasevm_step (vm );
16571657 if (rc == DBRES_ROW ) {
1658- const void * local_site_id = database_column_blob (vm , 0 );
1658+ const void * local_site_id = database_column_blob (vm , 0 , NULL );
16591659 if (!local_site_id ) {
16601660 dbvm_reset (vm );
16611661 return cloudsync_set_error (data , "NULL site_id in cloudsync table, table is probably corrupted" , DBRES_ERROR );
@@ -2235,13 +2235,13 @@ int cloudsync_refill_metatable (cloudsync_context *data, const char *table_name)
22352235
22362236 rc = databasevm_bind_text (vm , 1 , col_name , -1 );
22372237 if (rc != DBRES_OK ) goto finalize ;
2238-
2238+
22392239 while (1 ) {
22402240 rc = databasevm_step (vm );
22412241 if (rc == DBRES_ROW ) {
2242- const char * pk = (const char * )database_column_text (vm , 0 );
2242+ size_t pklen = 0 ;
2243+ const void * pk = (const char * )database_column_blob (vm , 0 , & pklen );
22432244 if (!pk ) { rc = DBRES_ERROR ; break ; }
2244- size_t pklen = strlen (pk );
22452245 rc = local_mark_insert_or_update_meta (table , pk , pklen , col_name , db_version , cloudsync_bumpseq (data ));
22462246 } else if (rc == DBRES_DONE ) {
22472247 rc = DBRES_OK ;
@@ -2264,7 +2264,7 @@ int cloudsync_refill_metatable (cloudsync_context *data, const char *table_name)
22642264
22652265// MARK: - Local -
22662266
2267- int local_update_sentinel (cloudsync_table_context * table , const char * pk , size_t pklen , int64_t db_version , int seq ) {
2267+ int local_update_sentinel (cloudsync_table_context * table , const void * pk , size_t pklen , int64_t db_version , int seq ) {
22682268 dbvm_t * vm = table -> meta_sentinel_update_stmt ;
22692269 if (!vm ) return -1 ;
22702270
@@ -2286,7 +2286,7 @@ int local_update_sentinel (cloudsync_table_context *table, const char *pk, size_
22862286 return rc ;
22872287}
22882288
2289- int local_mark_insert_sentinel_meta (cloudsync_table_context * table , const char * pk , size_t pklen , int64_t db_version , int seq ) {
2289+ int local_mark_insert_sentinel_meta (cloudsync_table_context * table , const void * pk , size_t pklen , int64_t db_version , int seq ) {
22902290 dbvm_t * vm = table -> meta_sentinel_insert_stmt ;
22912291 if (!vm ) return -1 ;
22922292
@@ -2314,7 +2314,7 @@ int local_mark_insert_sentinel_meta (cloudsync_table_context *table, const char
23142314 return rc ;
23152315}
23162316
2317- int local_mark_insert_or_update_meta_impl (cloudsync_table_context * table , const char * pk , size_t pklen , const char * col_name , int col_version , int64_t db_version , int seq ) {
2317+ int local_mark_insert_or_update_meta_impl (cloudsync_table_context * table , const void * pk , size_t pklen , const char * col_name , int col_version , int64_t db_version , int seq ) {
23182318
23192319 dbvm_t * vm = table -> meta_row_insert_update_stmt ;
23202320 if (!vm ) return -1 ;
@@ -2349,15 +2349,15 @@ int local_mark_insert_or_update_meta_impl (cloudsync_table_context *table, const
23492349 return rc ;
23502350}
23512351
2352- int local_mark_insert_or_update_meta (cloudsync_table_context * table , const char * pk , size_t pklen , const char * col_name , int64_t db_version , int seq ) {
2352+ int local_mark_insert_or_update_meta (cloudsync_table_context * table , const void * pk , size_t pklen , const char * col_name , int64_t db_version , int seq ) {
23532353 return local_mark_insert_or_update_meta_impl (table , pk , pklen , col_name , 1 , db_version , seq );
23542354}
23552355
2356- int local_mark_delete_meta (cloudsync_table_context * table , const char * pk , size_t pklen , int64_t db_version , int seq ) {
2356+ int local_mark_delete_meta (cloudsync_table_context * table , const void * pk , size_t pklen , int64_t db_version , int seq ) {
23572357 return local_mark_insert_or_update_meta_impl (table , pk , pklen , NULL , 2 , db_version , seq );
23582358}
23592359
2360- int local_drop_meta (cloudsync_table_context * table , const char * pk , size_t pklen ) {
2360+ int local_drop_meta (cloudsync_table_context * table , const void * pk , size_t pklen ) {
23612361 dbvm_t * vm = table -> meta_row_drop_stmt ;
23622362 if (!vm ) return -1 ;
23632363
@@ -2373,7 +2373,7 @@ int local_drop_meta (cloudsync_table_context *table, const char *pk, size_t pkle
23732373 return rc ;
23742374}
23752375
2376- int local_update_move_meta (cloudsync_table_context * table , const char * pk , size_t pklen , const char * pk2 , size_t pklen2 , int64_t db_version ) {
2376+ int local_update_move_meta (cloudsync_table_context * table , const void * pk , size_t pklen , const void * pk2 , size_t pklen2 , int64_t db_version ) {
23772377 /*
23782378 * This function moves non-sentinel metadata entries from an old primary key (OLD.pk)
23792379 * to a new primary key (NEW.pk) when a primary key change occurs.
0 commit comments