From 25bc1279c25f286a8a48a237361d86d6977ed300 Mon Sep 17 00:00:00 2001 From: Cory McWilliams Date: Tue, 24 Oct 2023 01:27:35 +0000 Subject: [PATCH] This is how we bind sqlite variables by index. git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4576 ed5197a5-7fde-0310-b194-c3ffbd925b24 --- src/database.js.c | 10 +++++----- src/ssb.connections.c | 8 ++++---- src/ssb.db.c | 10 +++++----- src/ssb.export.c | 2 +- src/ssb.import.c | 6 +++--- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/database.js.c b/src/database.js.c index 9b2de0eb..e304b17d 100644 --- a/src/database.js.c +++ b/src/database.js.c @@ -128,7 +128,7 @@ JSValue _database_set(JSContext* context, JSValueConst this_val, int argc, JSVal sqlite3_stmt* statement; tf_ssb_t* ssb = tf_task_get_ssb(database->task); sqlite3* db = tf_ssb_acquire_db_writer(ssb); - if (sqlite3_prepare(db, "INSERT OR REPLACE INTO properties (id, key, value) VALUES ($1, $2, $3)", -1, &statement, NULL) == SQLITE_OK) + if (sqlite3_prepare(db, "INSERT OR REPLACE INTO properties (id, key, value) VALUES (?1, ?2, ?3)", -1, &statement, NULL) == SQLITE_OK) { size_t keyLength; const char* keyString = JS_ToCStringLen(context, &keyLength, argv[0]); @@ -160,7 +160,7 @@ static JSValue _database_exchange(JSContext* context, JSValueConst this_val, int sqlite3* db = tf_ssb_acquire_db_writer(ssb); if (JS_IsNull(argv[1]) || JS_IsUndefined(argv[1])) { - if (sqlite3_prepare(db, "INSERT INTO properties (id, key, value) VALUES ($1, $2, $3) ON CONFLICT DO NOTHING", -1, &statement, NULL) == SQLITE_OK) + if (sqlite3_prepare(db, "INSERT INTO properties (id, key, value) VALUES (?1, ?2, ?3) ON CONFLICT DO NOTHING", -1, &statement, NULL) == SQLITE_OK) { size_t key_length; size_t set_length; @@ -178,7 +178,7 @@ static JSValue _database_exchange(JSContext* context, JSValueConst this_val, int sqlite3_finalize(statement); } } - else if (sqlite3_prepare(db, "UPDATE properties SET value = $1 WHERE id = $2 AND key = $3 AND value = $4", -1, &statement, NULL) == SQLITE_OK) + else if (sqlite3_prepare(db, "UPDATE properties SET value = ?1 WHERE id = ?2 AND key = ?3 AND value = ?4", -1, &statement, NULL) == SQLITE_OK) { size_t key_length; size_t expected_length; @@ -212,7 +212,7 @@ JSValue _database_remove(JSContext* context, JSValueConst this_val, int argc, JS sqlite3_stmt* statement; tf_ssb_t* ssb = tf_task_get_ssb(database->task); sqlite3* db = tf_ssb_acquire_db_writer(ssb); - if (sqlite3_prepare(db, "DELETE FROM properties WHERE id = $1 AND key = $2", -1, &statement, NULL) == SQLITE_OK) + if (sqlite3_prepare(db, "DELETE FROM properties WHERE id = ?1 AND key = ?2", -1, &statement, NULL) == SQLITE_OK) { size_t keyLength; const char* keyString = JS_ToCStringLen(context, &keyLength, argv[0]); @@ -238,7 +238,7 @@ JSValue _database_get_all(JSContext* context, JSValueConst this_val, int argc, J sqlite3_stmt* statement; tf_ssb_t* ssb = tf_task_get_ssb(database->task); sqlite3* db = tf_ssb_acquire_db_reader(ssb); - if (sqlite3_prepare(db, "SELECT key, value FROM properties WHERE id = $1", -1, &statement, NULL) == SQLITE_OK) + if (sqlite3_prepare(db, "SELECT key, value FROM properties WHERE id = ?1", -1, &statement, NULL) == SQLITE_OK) { if (sqlite3_bind_text(statement, 1, database->id, -1, NULL) == SQLITE_OK) { diff --git a/src/ssb.connections.c b/src/ssb.connections.c index 03210ada..d8fdbb6d 100644 --- a/src/ssb.connections.c +++ b/src/ssb.connections.c @@ -55,7 +55,7 @@ static bool _tf_ssb_connections_get_next_connection(tf_ssb_connections_t* connec bool result = false; sqlite3_stmt* statement; sqlite3* db = tf_ssb_acquire_db_reader(connections->ssb); - if (sqlite3_prepare(db, "SELECT host, port, key FROM connections WHERE last_attempt IS NULL OR (strftime('%s', 'now') - last_attempt > $1) ORDER BY last_attempt LIMIT 1", -1, &statement, NULL) == SQLITE_OK) + if (sqlite3_prepare(db, "SELECT host, port, key FROM connections WHERE last_attempt IS NULL OR (strftime('%s', 'now') - last_attempt > ?1) ORDER BY last_attempt LIMIT 1", -1, &statement, NULL) == SQLITE_OK) { if (sqlite3_bind_int(statement, 1, 60000) == SQLITE_OK && sqlite3_step(statement) == SQLITE_ROW) @@ -181,7 +181,7 @@ static void _tf_ssb_connections_update_work(uv_work_t* work) sqlite3* db = tf_ssb_acquire_db_writer(update->ssb); if (update->attempted) { - if (sqlite3_prepare(db, "UPDATE connections SET last_attempt = strftime('%s', 'now') WHERE host = $1 AND port = $2 AND key = $3", -1, &statement, NULL) == SQLITE_OK) + if (sqlite3_prepare(db, "UPDATE connections SET last_attempt = strftime('%s', 'now') WHERE host = ?1 AND port = ?2 AND key = ?3", -1, &statement, NULL) == SQLITE_OK) { if (sqlite3_bind_text(statement, 1, update->host, -1, NULL) == SQLITE_OK && sqlite3_bind_int(statement, 2, update->port) == SQLITE_OK && @@ -197,7 +197,7 @@ static void _tf_ssb_connections_update_work(uv_work_t* work) } else if (update->succeeded) { - if (sqlite3_prepare(db, "UPDATE connections SET last_success = strftime('%s', 'now') WHERE host = $1 AND port = $2 AND key = $3", -1, &statement, NULL) == SQLITE_OK) + if (sqlite3_prepare(db, "UPDATE connections SET last_success = strftime('%s', 'now') WHERE host = ?1 AND port = ?2 AND key = ?3", -1, &statement, NULL) == SQLITE_OK) { if (sqlite3_bind_text(statement, 1, update->host, -1, NULL) == SQLITE_OK && sqlite3_bind_int(statement, 2, update->port) == SQLITE_OK && @@ -213,7 +213,7 @@ static void _tf_ssb_connections_update_work(uv_work_t* work) } else { - if (sqlite3_prepare(db, "INSERT INTO connections (host, port, key) VALUES ($1, $2, $3) ON CONFLICT DO NOTHING", -1, &statement, NULL) == SQLITE_OK) + if (sqlite3_prepare(db, "INSERT INTO connections (host, port, key) VALUES (?1, ?2, ?3) ON CONFLICT DO NOTHING", -1, &statement, NULL) == SQLITE_OK) { if (sqlite3_bind_text(statement, 1, update->host, -1, NULL) == SQLITE_OK && sqlite3_bind_int(statement, 2, update->port) == SQLITE_OK && diff --git a/src/ssb.db.c b/src/ssb.db.c index 2b992875..396bc0c0 100644 --- a/src/ssb.db.c +++ b/src/ssb.db.c @@ -601,7 +601,7 @@ bool tf_ssb_db_blob_has(tf_ssb_t* ssb, const char* id) bool result = false; sqlite3_stmt* statement; sqlite3* db = tf_ssb_acquire_db_reader(ssb); - const char* query = "SELECT COUNT(*) FROM blobs WHERE id = $1"; + const char* query = "SELECT COUNT(*) FROM blobs WHERE id = ?1"; if (sqlite3_prepare(db, query, -1, &statement, NULL) == SQLITE_OK) { if (sqlite3_bind_text(statement, 1, id, -1, NULL) == SQLITE_OK && @@ -620,7 +620,7 @@ bool tf_ssb_db_blob_get(tf_ssb_t* ssb, const char* id, uint8_t** out_blob, size_ bool result = false; sqlite3_stmt* statement; sqlite3* db = tf_ssb_acquire_db_reader(ssb); - const char* query = "SELECT content FROM blobs WHERE id = $1"; + const char* query = "SELECT content FROM blobs WHERE id = ?1"; if (sqlite3_prepare(db, query, -1, &statement, NULL) == SQLITE_OK) { if (sqlite3_bind_text(statement, 1, id, -1, NULL) == SQLITE_OK && @@ -737,7 +737,7 @@ bool tf_ssb_db_blob_store(tf_ssb_t* ssb, const uint8_t* blob, size_t size, char* sqlite3* db = tf_ssb_acquire_db_writer(ssb); sqlite3_stmt* statement; - if (sqlite3_prepare(db, "INSERT INTO blobs (id, content, created) VALUES ($1, $2, CAST(strftime('%s') AS INTEGER)) ON CONFLICT DO NOTHING", -1, &statement, NULL) == SQLITE_OK) + if (sqlite3_prepare(db, "INSERT INTO blobs (id, content, created) VALUES (?1, ?2, CAST(strftime('%s') AS INTEGER)) ON CONFLICT DO NOTHING", -1, &statement, NULL) == SQLITE_OK) { if (sqlite3_bind_text(statement, 1, id, -1, NULL) == SQLITE_OK && sqlite3_bind_blob(statement, 2, blob, size, NULL) == SQLITE_OK) @@ -780,7 +780,7 @@ bool tf_ssb_db_get_message_by_author_and_sequence(tf_ssb_t* ssb, const char* aut { bool found = false; sqlite3_stmt* statement; - const char* query = "SELECT id, timestamp, content FROM messages WHERE author = $1 AND sequence = $2"; + const char* query = "SELECT id, timestamp, content FROM messages WHERE author = ?1 AND sequence = ?2"; sqlite3* db = tf_ssb_acquire_db_reader(ssb); if (sqlite3_prepare(db, query, -1, &statement, NULL) == SQLITE_OK) { @@ -817,7 +817,7 @@ bool tf_ssb_db_get_latest_message_by_author(tf_ssb_t* ssb, const char* author, i bool found = false; sqlite3_stmt* statement; sqlite3* db = tf_ssb_acquire_db_reader(ssb); - const char* query = "SELECT id, sequence FROM messages WHERE author = $1 AND sequence = (SELECT MAX(sequence) FROM messages WHERE author = $1)"; + const char* query = "SELECT id, sequence FROM messages WHERE author = ?1 AND sequence = (SELECT MAX(sequence) FROM messages WHERE author = ?1)"; if (sqlite3_prepare(db, query, -1, &statement, NULL) == SQLITE_OK) { if (sqlite3_bind_text(statement, 1, author, -1, NULL) == SQLITE_OK && diff --git a/src/ssb.export.c b/src/ssb.export.c index 435ea1cb..03835196 100644 --- a/src/ssb.export.c +++ b/src/ssb.export.c @@ -90,7 +90,7 @@ void tf_ssb_export(tf_ssb_t* ssb, const char* key) sqlite3* db = tf_ssb_acquire_db_reader(ssb); sqlite3_busy_timeout(db, 10000); sqlite3_stmt* statement; - if (sqlite3_prepare(db, "SELECT value FROM properties WHERE id = $1 AND key = 'path:' || $2", -1, &statement, NULL) == SQLITE_OK) + if (sqlite3_prepare(db, "SELECT value FROM properties WHERE id = ?1 AND key = 'path:' || ?2", -1, &statement, NULL) == SQLITE_OK) { if (sqlite3_bind_text(statement, 1, user, -1, NULL) == SQLITE_OK && sqlite3_bind_text(statement, 2, path, -1, NULL) == SQLITE_OK && diff --git a/src/ssb.import.c b/src/ssb.import.c index a03edd30..00a9d4a6 100644 --- a/src/ssb.import.c +++ b/src/ssb.import.c @@ -21,7 +21,7 @@ static void _tf_ssb_import_add_app(tf_ssb_t* ssb, const char* user, const char* JSContext* context = tf_ssb_get_context(ssb); JSValue apps = JS_UNDEFINED; sqlite3* db = tf_ssb_acquire_db_writer(ssb); - if (sqlite3_prepare(db, "SELECT value FROM properties WHERE id = $1 AND key = 'apps'", -1, &statement, NULL) == SQLITE_OK) + if (sqlite3_prepare(db, "SELECT value FROM properties WHERE id = ?1 AND key = 'apps'", -1, &statement, NULL) == SQLITE_OK) { if (sqlite3_bind_text(statement, 1, user, -1, NULL) == SQLITE_OK && sqlite3_step(statement) == SQLITE_ROW) @@ -69,7 +69,7 @@ static void _tf_ssb_import_add_app(tf_ssb_t* ssb, const char* user, const char* JSValue json = JS_JSONStringify(context, out_apps, JS_NULL, JS_NULL); const char* text = JS_ToCString(context, json); - if (sqlite3_prepare(db, "INSERT OR REPLACE INTO properties (id, key, value) VALUES ($1, 'apps', $2)", -1, &statement, NULL) == SQLITE_OK) + if (sqlite3_prepare(db, "INSERT OR REPLACE INTO properties (id, key, value) VALUES (?1, 'apps', ?2)", -1, &statement, NULL) == SQLITE_OK) { if (sqlite3_bind_text(statement, 1, user, -1, NULL) == SQLITE_OK && sqlite3_bind_text(statement, 2, text, -1, NULL) == SQLITE_OK && @@ -164,7 +164,7 @@ static bool _tf_ssb_register_app(tf_ssb_t* ssb, const char* user, const char* ap bool result = false; sqlite3_stmt* statement; sqlite3* db = tf_ssb_acquire_db_writer(ssb); - if (sqlite3_prepare(db, "INSERT OR REPLACE INTO properties (id, key, value) VALUES ($1, 'path:' || $2, $3)", -1, &statement, NULL) == SQLITE_OK) + if (sqlite3_prepare(db, "INSERT OR REPLACE INTO properties (id, key, value) VALUES (?1, 'path:' || ?2, ?3)", -1, &statement, NULL) == SQLITE_OK) { if (sqlite3_bind_text(statement, 1, user, -1, NULL) == SQLITE_OK && sqlite3_bind_text(statement, 2, app, -1, NULL) == SQLITE_OK &&