# HG changeset patch # User Olaf Wintermann # Date 1769013970 -3600 # Node ID deb6c4b8cf9d0606463ba2686790e6b6935f11d6 # Parent e2778a45650178b234833c2bd9aca4732da264f1 rename dbuSqlExec to dbuSqlExecQuery, add new dbuSqlExec diff -r e2778a456501 -r deb6c4b8cf9d dbutils/db.c --- a/dbutils/db.c Sun Jan 11 11:28:53 2026 +0100 +++ b/dbutils/db.c Wed Jan 21 17:46:10 2026 +0100 @@ -34,7 +34,7 @@ int err = 1; if(!dbuQuerySetSQL(q, sql)) { err = dbuQueryExec(q); - } + } dbuQueryFree(q); return err; } @@ -246,7 +246,7 @@ return q; } -DBUResult* dbuSqlExec(DBUConnection *conn, const CxAllocator *a, const char *sql) { +DBUResult* dbuSqlExecQuery(DBUConnection *conn, const CxAllocator *a, const char *sql) { DBUQuery *q = dbuQueryCreate(conn, a, sql); if(!q) { return NULL; @@ -260,7 +260,7 @@ return result; } -DBUResult* dbuSqlExecParamInt32(DBUConnection *conn, const CxAllocator *a, const char *sql, int32_t param) { +DBUResult* dbuSqlExecQueryParamInt32(DBUConnection *conn, const CxAllocator *a, const char *sql, int32_t param) { DBUQuery *q = execInt64ParamQuery(conn, sql, param); if(!q) return NULL; DBUResult *r = dbuQueryGetResult(q); @@ -268,7 +268,7 @@ return r; } -DBUResult* dbuSqlExecParamInt64(DBUConnection *conn, const CxAllocator *a, const char *sql, int64_t param) { +DBUResult* dbuSqlExecQueryParamInt64(DBUConnection *conn, const CxAllocator *a, const char *sql, int64_t param) { DBUQuery *q = execInt64ParamQuery(conn, sql, param); if(!q) return NULL; DBUResult *r = dbuQueryGetResult(q); @@ -276,7 +276,7 @@ return r; } -DBUResult* dbuSqlExecParamUInt32(DBUConnection *conn, const CxAllocator *a, const char *sql, uint32_t param) { +DBUResult* dbuSqlExecQueryParamUInt32(DBUConnection *conn, const CxAllocator *a, const char *sql, uint32_t param) { DBUQuery *q = execInt64ParamQuery(conn, sql, param); if(!q) return NULL; DBUResult *r = dbuQueryGetResult(q); @@ -284,7 +284,7 @@ return r; } -DBUResult* dbuSqlExecParamUInt64(DBUConnection *conn, const CxAllocator *a, const char *sql, uint32_t param) { +DBUResult* dbuSqlExecQueryParamUInt64(DBUConnection *conn, const CxAllocator *a, const char *sql, uint32_t param) { DBUQuery *q = execInt64ParamQuery(conn, sql, param); if(!q) return NULL; DBUResult *r = dbuQueryGetResult(q); @@ -292,7 +292,7 @@ return r; } -DBUResult* dbuSqlExecParamString(DBUConnection *conn, const CxAllocator *a, const char *sql, const char *param) { +DBUResult* dbuSqlExecQueryParamString(DBUConnection *conn, const CxAllocator *a, const char *sql, const char *param) { DBUQuery *q = execStringParamQuery(conn, sql, cx_str(param)); if(!q) return NULL; DBUResult *r = dbuQueryGetResult(q); @@ -300,7 +300,7 @@ return r; } -DBUResult* dbuSqlExecParamCxString(DBUConnection *conn, const CxAllocator *a, const char *sql, cxstring param) { +DBUResult* dbuSqlExecQueryParamCxString(DBUConnection *conn, const CxAllocator *a, const char *sql, cxstring param) { DBUQuery *q = execStringParamQuery(conn, sql, param); if(!q) return NULL; DBUResult *r = dbuQueryGetResult(q); @@ -308,7 +308,7 @@ return r; } -DBUResult* dbuSqlExecParamCxMutStr(DBUConnection *conn, const CxAllocator *a, const char *sql, cxmutstr param) { +DBUResult* dbuSqlExecQueryParamCxMutStr(DBUConnection *conn, const CxAllocator *a, const char *sql, cxmutstr param) { DBUQuery *q = execStringParamQuery(conn, sql, cx_strcast(param)); if(!q) return NULL; DBUResult *r = dbuQueryGetResult(q); @@ -378,3 +378,59 @@ dbuObjectBuilderDestroy(builder); return list; } + +int dbuSqlExec(DBUConnection *conn, const char *sql) { + DBUResult *result = dbuSqlExecQuery(conn, NULL, sql); + int ret = dbuResultIsOk(result); + dbuResultFree(result); + return ret; +} + +int dbuSqlExecParamInt32(DBUConnection *conn, const char *sql, int32_t param) { + DBUResult *result = dbuSqlExecQueryParam(conn, NULL, sql, param); + int ret = dbuResultIsOk(result); + dbuResultFree(result); + return ret; +} + +int dbuSqlExecParamInt64(DBUConnection *conn, const char *sql, int64_t param) { + DBUResult *result = dbuSqlExecQueryParam(conn, NULL, sql, param); + int ret = dbuResultIsOk(result); + dbuResultFree(result); + return ret; +} + +int dbuSqlExecParamUInt32(DBUConnection *conn, const char *sql, uint32_t param) { + DBUResult *result = dbuSqlExecQueryParam(conn, NULL, sql, param); + int ret = dbuResultIsOk(result); + dbuResultFree(result); + return ret; +} + +int dbuSqlExecParamUInt64(DBUConnection *conn, const char *sql, uint32_t param) { + DBUResult *result = dbuSqlExecQueryParam(conn, NULL, sql, param); + int ret = dbuResultIsOk(result); + dbuResultFree(result); + return ret; +} + +int dbuSqlExecParamString(DBUConnection *conn, const char *sql, const char *param) { + DBUResult *result = dbuSqlExecQueryParam(conn, NULL, sql, param); + int ret = dbuResultIsOk(result); + dbuResultFree(result); + return ret; +} + +int dbuSqlExecParamCxString(DBUConnection *conn, const char *sql, cxstring param) { + DBUResult *result = dbuSqlExecQueryParam(conn, NULL, sql, param); + int ret = dbuResultIsOk(result); + dbuResultFree(result); + return ret; +} + +int dbuSqlExecParamCxMutStr(DBUConnection *conn, const char *sql, cxmutstr param) { + DBUResult *result = dbuSqlExecQueryParam(conn, NULL, sql, param); + int ret = dbuResultIsOk(result); + dbuResultFree(result); + return ret; +} diff -r e2778a456501 -r deb6c4b8cf9d dbutils/dbutils/db.h --- a/dbutils/dbutils/db.h Sun Jan 11 11:28:53 2026 +0100 +++ b/dbutils/dbutils/db.h Wed Jan 21 17:46:10 2026 +0100 @@ -152,7 +152,34 @@ // TODO: implement int dbuObjectBuilderAddSubquery(DBUObjectBuilder *builder, DBUClass *type, DBUQuery *subquery); -#define dbuSqlExecParam(conn, a, sql, param) \ +#define dbuSqlExecQueryParam(conn, a, sql, param) \ + _Generic(param, \ + int32_t : dbuSqlExecQueryParamInt32, \ + int64_t : dbuSqlExecQueryParamInt64, \ + uint32_t : dbuSqlExecQueryParamUInt32, \ + uint64_t : dbuSqlExecQueryParamUInt64, \ + char* : dbuSqlExecQueryParamString, \ + const char*: dbuSqlExecQueryParamString, \ + cxstring : dbuSqlExecQueryParamCxString, \ + cxmutstr : dbuSqlExecQueryParamCxMutStr)(conn, a, sql, param) + +DBUResult* dbuSqlExecQuery(DBUConnection *conn, const CxAllocator *a, const char *sql); +DBUResult* dbuSqlExecQueryParamInt32(DBUConnection *conn, const CxAllocator *a, const char *sql, int32_t param); +DBUResult* dbuSqlExecQueryParamInt64(DBUConnection *conn, const CxAllocator *a, const char *sql, int64_t param); +DBUResult* dbuSqlExecQueryParamUInt32(DBUConnection *conn, const CxAllocator *a, const char *sql, uint32_t param); +DBUResult* dbuSqlExecQueryParamUInt64(DBUConnection *conn, const CxAllocator *a, const char *sql, uint32_t param); +DBUResult* dbuSqlExecQueryParamString(DBUConnection *conn, const CxAllocator *a, const char *sql, const char *param); +DBUResult* dbuSqlExecQueryParamCxString(DBUConnection *conn, const CxAllocator *a, const char *sql, cxstring param); +DBUResult* dbuSqlExecQueryParamCxMutStr(DBUConnection *conn, const CxAllocator *a, const char *sql, cxmutstr param); + +int dbuSimpleGetInt64WithIntParam(DBUConnection *conn, const char *sql, int64_t param, int64_t *result); +int dbuSimpleGetInt64WithStringParam(DBUConnection *conn, const char *sql, cxstring param, int64_t *result); +int dbuSimpleGetStringWithIntParam(DBUConnection *conn, const char *sql, int64_t param, const CxAllocator *a, cxmutstr *result); +int dbuSimpleGetStringWithStringParam(DBUConnection *conn, const char *sql, cxstring param, const CxAllocator *a, cxmutstr *result); +CxList* dbuSimpleGetListWithIntParam(DBUConnection *conn, const char *sql, int64_t param, const CxAllocator *a, DBUClass *type); +CxList* dbuSimpleGetListWithStringParam(DBUConnection *conn, const char *sql, cxstring param, const CxAllocator *a, DBUClass *type); + +#define dbuSqlExecParam(conn, sql, param) \ _Generic(param, \ int32_t : dbuSqlExecParamInt32, \ int64_t : dbuSqlExecParamInt64, \ @@ -161,25 +188,16 @@ char* : dbuSqlExecParamString, \ const char*: dbuSqlExecParamString, \ cxstring : dbuSqlExecParamCxString, \ - cxmutstr : dbuSqlExecParamCxMutStr)(conn, a, sql, param) + cxmutstr : dbuSqlExecParamCxMutStr)(conn, sql, param) -DBUResult* dbuSqlExec(DBUConnection *conn, const CxAllocator *a, const char *sql); -DBUResult* dbuSqlExecParamInt32(DBUConnection *conn, const CxAllocator *a, const char *sql, int32_t param); -DBUResult* dbuSqlExecParamInt64(DBUConnection *conn, const CxAllocator *a, const char *sql, int64_t param); -DBUResult* dbuSqlExecParamUInt32(DBUConnection *conn, const CxAllocator *a, const char *sql, uint32_t param); -DBUResult* dbuSqlExecParamUInt64(DBUConnection *conn, const CxAllocator *a, const char *sql, uint32_t param); -DBUResult* dbuSqlExecParamString(DBUConnection *conn, const CxAllocator *a, const char *sql, const char *param); -DBUResult* dbuSqlExecParamCxString(DBUConnection *conn, const CxAllocator *a, const char *sql, cxstring param); -DBUResult* dbuSqlExecParamCxMutStr(DBUConnection *conn, const CxAllocator *a, const char *sql, cxmutstr param); - - - -int dbuSimpleGetInt64WithIntParam(DBUConnection *conn, const char *sql, int64_t param, int64_t *result); -int dbuSimpleGetInt64WithStringParam(DBUConnection *conn, const char *sql, cxstring param, int64_t *result); -int dbuSimpleGetStringWithIntParam(DBUConnection *conn, const char *sql, int64_t param, const CxAllocator *a, cxmutstr *result); -int dbuSimpleGetStringWithStringParam(DBUConnection *conn, const char *sql, cxstring param, const CxAllocator *a, cxmutstr *result); -CxList* dbuSimpleGetListWithIntParam(DBUConnection *conn, const char *sql, int64_t param, const CxAllocator *a, DBUClass *type); -CxList* dbuSimpleGetListWithStringParam(DBUConnection *conn, const char *sql, cxstring param, const CxAllocator *a, DBUClass *type); +int dbuSqlExec(DBUConnection *conn, const char *sql); +int dbuSqlExecParamInt32(DBUConnection *conn, const char *sql, int32_t param); +int dbuSqlExecParamInt64(DBUConnection *conn, const char *sql, int64_t param); +int dbuSqlExecParamUInt32(DBUConnection *conn, const char *sql, uint32_t param); +int dbuSqlExecParamUInt64(DBUConnection *conn, const char *sql, uint32_t param); +int dbuSqlExecParamString(DBUConnection *conn, const char *sql, const char *param); +int dbuSqlExecParamCxString(DBUConnection *conn, const char *sql, cxstring param); +int dbuSqlExecParamCxMutStr(DBUConnection *conn, const char *sql, cxmutstr param); #ifdef __cplusplus } diff -r e2778a456501 -r deb6c4b8cf9d test/database.c --- a/test/database.c Sun Jan 11 11:28:53 2026 +0100 +++ b/test/database.c Wed Jan 21 17:46:10 2026 +0100 @@ -214,11 +214,11 @@ } } -CX_TEST(testSqlExec) { +CX_TEST(testSqlExecQuery) { CX_TEST_DO { CX_TEST_ASSERT(conn); - DBUResult *r = dbuSqlExec(conn, NULL, "select email from person where name = 'alice';"); + DBUResult *r = dbuSqlExecQuery(conn, NULL, "select email from person where name = 'alice';"); CX_TEST_ASSERT(r); cxmutstr value; CX_TEST_ASSERT(dbuResultAsValue(r, &value) == 0); @@ -227,18 +227,18 @@ } } -CX_TEST(testSqlExecParam) { +CX_TEST(testSqlExecQueryParam) { CX_TEST_DO { CX_TEST_ASSERT(conn); - DBUResult *r = dbuSqlExecParam(conn, NULL, "select email from person where name = ?;", "alice"); + DBUResult *r = dbuSqlExecQueryParam(conn, NULL, "select email from person where name = ?;", "alice"); CX_TEST_ASSERT(r); cxmutstr value; CX_TEST_ASSERT(dbuResultAsValue(r, &value) == 0); CX_TEST_ASSERT(!cx_strcmp(value, "alice@example.com")); free(value.ptr); - r = dbuSqlExecParam(conn, NULL, "select name from person where hash = ?;", 987654321); + r = dbuSqlExecQueryParam(conn, NULL, "select name from person where hash = ?;", 987654321); CX_TEST_ASSERT(r); CX_TEST_ASSERT(dbuResultAsValue(r, &value) == 0); CX_TEST_ASSERT(!cx_strcmp(value, "bob")); diff -r e2778a456501 -r deb6c4b8cf9d test/database.h --- a/test/database.h Sun Jan 11 11:28:53 2026 +0100 +++ b/test/database.h Wed Jan 21 17:46:10 2026 +0100 @@ -47,8 +47,8 @@ CX_TEST(testSqliteConnection); CX_TEST(testConnectionExec); CX_TEST(testSingleValueQuery); -CX_TEST(testSqlExec); -CX_TEST(testSqlExecParam); +CX_TEST(testSqlExecQuery); +CX_TEST(testSqlExecQueryParam); CX_TEST(testSingleTableQuery); CX_TEST(testMultiTableQuery); CX_TEST(testMultiTableQuery1); diff -r e2778a456501 -r deb6c4b8cf9d test/main.c --- a/test/main.c Sun Jan 11 11:28:53 2026 +0100 +++ b/test/main.c Wed Jan 21 17:46:10 2026 +0100 @@ -130,8 +130,8 @@ cx_test_register(suite, testSqliteConnection); cx_test_register(suite, testConnectionExec); cx_test_register(suite, testSingleValueQuery); - cx_test_register(suite, testSqlExec); - cx_test_register(suite, testSqlExecParam); + cx_test_register(suite, testSqlExecQuery); + cx_test_register(suite, testSqlExecQueryParam); cx_test_register(suite, testSingleTableQuery); cx_test_register(suite, testMultiTableQuery); cx_test_register(suite, testMultiTableQuery1);