modbTableName now takes an optional encapsulation char

This commit is contained in:
2020-10-07 14:37:39 +01:00
parent 0ab65604e0
commit 3847818116
5 changed files with 88 additions and 88 deletions

View File

@@ -137,9 +137,9 @@ int64_t modbUserCreate(stored_conn *sconn, modb_ref *modb,
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return -1; return -1;
} }
strbld_str(sb, "INSERT INTO `", 0); strbld_str(sb, "INSERT INTO ", 0);
modbTableName_sb(sb, modb, USERS_TABLE, strlen(USERS_TABLE)); modbTableName_sb(sb, modb, USERS_TABLE, strlen(USERS_TABLE), '`');
strbld_str(sb, "` (`id`, `username`, `email`) VALUES(", 0); strbld_str(sb, " (`id`, `username`, `email`) VALUES(", 0);
db_value_sb(sb, TYPE_UINT32, 1, id); db_value_sb(sb, TYPE_UINT32, 1, id);
strbld_str(sb, ", ", 0); strbld_str(sb, ", ", 0);
db_value_sb(sb, TYPE_STRING, 1, user_name); db_value_sb(sb, TYPE_STRING, 1, user_name);
@@ -166,9 +166,9 @@ int64_t modbUserUpdate(stored_conn *sconn, modb_ref *modb, unsigned int id,
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return 0; return 0;
} }
strbld_str(sb, "UPDATE `", 0); strbld_str(sb, "UPDATE ", 0);
modbTableName_sb(sb, modb, USERS_TABLE, strlen(USERS_TABLE)); modbTableName_sb(sb, modb, USERS_TABLE, strlen(USERS_TABLE), '`');
strbld_str(sb, "` SET `id` = ", 0); strbld_str(sb, " SET `id` = ", 0);
db_value_sb(sb, TYPE_UINT32, 1, id); db_value_sb(sb, TYPE_UINT32, 1, id);
if (username != 0) { if (username != 0) {
@@ -206,9 +206,9 @@ int modbUserDelete(stored_conn *sconn, modb_ref *modb, int id)
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return 0; return 0;
} }
strbld_str(sb, "UPDATE `", 0); strbld_str(sb, "UPDATE`", 0);
modbTableName_sb(sb, modb, USERS_TABLE, strlen(USERS_TABLE)); modbTableName_sb(sb, modb, USERS_TABLE, strlen(USERS_TABLE), '`');
strbld_str(sb, "` SET `deleted` = CURRENT_TIMESTAMP() WHERE `id` = ", 0); strbld_str(sb, " SET `deleted` = CURRENT_TIMESTAMP() WHERE `id` = ", 0);
db_value_sb(sb, TYPE_UINT32, 1, id); db_value_sb(sb, TYPE_UINT32, 1, id);
if (strbld_finalize_or_destroy(&sb, &qry, &qry_len) != 0) { if (strbld_finalize_or_destroy(&sb, &qry, &qry_len) != 0) {
return 0; return 0;
@@ -234,9 +234,9 @@ int modbUserDestroy(stored_conn *sconn, modb_ref *modb, int id)
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return 0; return 0;
} }
strbld_str(sb, "DELETE FROM `", 0); strbld_str(sb, "DELETE FROM ", 0);
modbTableName_sb(sb, modb, USERS_TABLE, strlen(USERS_TABLE)); modbTableName_sb(sb, modb, USERS_TABLE, strlen(USERS_TABLE), '`');
strbld_str(sb, "` WHERE `id` = ", 0); strbld_str(sb, " WHERE `id` = ", 0);
db_value_sb(sb, TYPE_UINT32, 1, id); db_value_sb(sb, TYPE_UINT32, 1, id);
if (strbld_finalize_or_destroy(&sb, &qry, &qry_len) != 0) { if (strbld_finalize_or_destroy(&sb, &qry, &qry_len) != 0) {
return 0; return 0;
@@ -343,9 +343,9 @@ int64_t modbGroupCreate(stored_conn *sconn, modb_ref *modb,
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return -1; return -1;
} }
strbld_str(sb, "INSERT INTO `", 0); strbld_str(sb, "INSERT INTO`", 0);
modbTableName_sb(sb, modb, GROUPS_TABLE, strlen(GROUPS_TABLE)); modbTableName_sb(sb, modb, GROUPS_TABLE, strlen(GROUPS_TABLE), '`');
strbld_str(sb, "` (`id`, `name`) VALUES(", 0); strbld_str(sb, " (`id`, `name`) VALUES(", 0);
db_value_sb(sb, TYPE_UINT32, 1, id); db_value_sb(sb, TYPE_UINT32, 1, id);
strbld_str(sb, ", ", 0); strbld_str(sb, ", ", 0);
db_value_sb(sb, TYPE_STRING, 1, name); db_value_sb(sb, TYPE_STRING, 1, name);
@@ -370,9 +370,9 @@ int64_t modbGroupUpdate(stored_conn *sconn, modb_ref *modb, unsigned int id,
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return 0; return 0;
} }
strbld_str(sb, "UPDATE `", 0); strbld_str(sb, "UPDATE ", 0);
modbTableName_sb(sb, modb, GROUPS_TABLE, strlen(GROUPS_TABLE)); modbTableName_sb(sb, modb, GROUPS_TABLE, strlen(GROUPS_TABLE), '`');
strbld_str(sb, "` SET `id` = ", 0); strbld_str(sb, " SET `id` = ", 0);
db_value_sb(sb, TYPE_UINT32, 1, id); db_value_sb(sb, TYPE_UINT32, 1, id);
if (name == 0) { if (name == 0) {
@@ -407,9 +407,9 @@ int modbGroupDelete(stored_conn *sconn, modb_ref *modb, int id)
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return 0; return 0;
} }
strbld_str(sb, "UPDATE `", 0); strbld_str(sb, "UPDATE ", 0);
modbTableName_sb(sb, modb, GROUPS_TABLE, strlen(GROUPS_TABLE)); modbTableName_sb(sb, modb, GROUPS_TABLE, strlen(GROUPS_TABLE), '`');
strbld_str(sb, "` SET `deleted` = CURRENT_TIMESTAMP() WHERE `id` = ", 0); strbld_str(sb, " SET `deleted` = CURRENT_TIMESTAMP() WHERE `id` = ", 0);
db_value_sb(sb, TYPE_UINT32, 1, id); db_value_sb(sb, TYPE_UINT32, 1, id);
if (strbld_finalize_or_destroy(&sb, &qry, &qry_len) != 0) { if (strbld_finalize_or_destroy(&sb, &qry, &qry_len) != 0) {
return 0; return 0;
@@ -435,9 +435,9 @@ int modbGroupDestroy(stored_conn *sconn, modb_ref *modb, int id)
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return 0; return 0;
} }
strbld_str(sb, "DELETE FROM `", 0); strbld_str(sb, "DELETE FROM ", 0);
modbTableName_sb(sb, modb, GROUPS_TABLE, strlen(GROUPS_TABLE)); modbTableName_sb(sb, modb, GROUPS_TABLE, strlen(GROUPS_TABLE), '`');
strbld_str(sb, "` WHERE `id` = ", 0); strbld_str(sb, " WHERE `id` = ", 0);
db_value_sb(sb, TYPE_UINT32, 1, id); db_value_sb(sb, TYPE_UINT32, 1, id);
if (strbld_finalize_or_destroy(&sb, &qry, &qry_len) != 0) { if (strbld_finalize_or_destroy(&sb, &qry, &qry_len) != 0) {
return 0; return 0;
@@ -463,7 +463,7 @@ int modbSyncGroupsUser(stored_conn *sconn, modb_ref *modb,
int qry_ret; int qry_ret;
char *table; char *table;
if ((table = modbTableName(modb, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE))) == 0) { if ((table = modbTableName(modb, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE), 0)) == 0) {
return 0; return 0;
} }
@@ -479,7 +479,7 @@ int modbSyncUserGroups_va(stored_conn *sconn, modb_ref *modb,
int qry_ret; int qry_ret;
char *table; char *table;
if ((table = modbTableName(modb, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE))) == 0) { if ((table = modbTableName(modb, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE), 0)) == 0) {
return 0; return 0;
} }
@@ -497,7 +497,7 @@ int modbSyncGroupUsers(stored_conn *sconn, modb_ref *modb,
int qry_ret; int qry_ret;
char *table; char *table;
if ((table = modbTableName(modb, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE))) == 0) { if ((table = modbTableName(modb, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE), 0)) == 0) {
return 0; return 0;
} }
@@ -513,7 +513,7 @@ int modbSyncGroupUsers_va(stored_conn *sconn, modb_ref *modb,
int qry_ret; int qry_ret;
char *table; char *table;
if ((table = modbTableName(modb, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE))) == 0) { if ((table = modbTableName(modb, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE), 0)) == 0) {
return 0; return 0;
} }
@@ -545,16 +545,16 @@ int modbFetchUserGroupIds(stored_conn *sconn, modb_ref *modb, int with_deleted,
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return -errno; return -errno;
} }
strbld_str(sb, "SELECT `group_id` FROM `", 0); strbld_str(sb, "SELECT `group_id` FROM ", 0);
modbTableName_sb(sb, modb, USER_GROUPS_TABLE, strlen(USER_GROUPS_TABLE)); modbTableName_sb(sb, modb, USER_GROUPS_TABLE, strlen(USER_GROUPS_TABLE), '`');
strbld_str(sb, "` ", 2); strbld_char(sb, ' ');
modbJoin_sb(sb, modb, "LEFT", 4, 1, modbJoin_sb(sb, modb, "LEFT", 4, 1,
GROUPS_TABLE, strlen(GROUPS_TABLE), "id", 2, GROUPS_TABLE, strlen(GROUPS_TABLE), "id", 2,
USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE), "group_id", 8); USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE), "group_id", 8);
strbld_str(sb, " WHERE ", 0); strbld_str(sb, " WHERE ", 0);
wb = where(0, "user_id", EQ, TYPE_ID, 1, user_id); wb = where(0, "user_id", EQ, TYPE_ID, 1, user_id);
if (!with_deleted) { if (!with_deleted) {
table = modbTableName(modb, GROUPS_TABLE, STR_LEN(GROUPS_TABLE)); table = modbTableName(modb, GROUPS_TABLE, STR_LEN(GROUPS_TABLE), 0);
wb = whereAnd(wb, where(table, "deleted", IS_NULL, TYPE_RAW, 0)); wb = whereAnd(wb, where(table, "deleted", IS_NULL, TYPE_RAW, 0));
free(table); free(table);
} }
@@ -603,16 +603,16 @@ int modbFetchGroupUserIds(stored_conn *sconn, modb_ref *modb, int with_deleted,
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return -errno; return -errno;
} }
strbld_str(sb, "SELECT `user_id` FROM `", 0); strbld_str(sb, "SELECT `user_id` FROM ", 0);
modbTableName_sb(sb, modb, USER_GROUPS_TABLE, strlen(USER_GROUPS_TABLE)); modbTableName_sb(sb, modb, USER_GROUPS_TABLE, strlen(USER_GROUPS_TABLE), '`');
strbld_str(sb, "` ", 2); strbld_char(sb, ' ');
modbJoin_sb(sb, modb, "LEFT", 4, 1, modbJoin_sb(sb, modb, "LEFT", 4, 1,
USERS_TABLE, strlen(USERS_TABLE), "id", 2, USERS_TABLE, strlen(USERS_TABLE), "id", 2,
USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE), "user_id", 8); USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE), "user_id", 8);
strbld_str(sb, " WHERE ", 0); strbld_str(sb, " WHERE ", 0);
wb = where(0, "group_id", EQ, TYPE_ID, 1, group_id); wb = where(0, "group_id", EQ, TYPE_ID, 1, group_id);
if (!with_deleted) { if (!with_deleted) {
table = modbTableName(modb, USERS_TABLE, STR_LEN(USERS_TABLE)); table = modbTableName(modb, USERS_TABLE, STR_LEN(USERS_TABLE), 0);
wb = whereAnd(wb, where(table, "deleted", IS_NULL, TYPE_RAW, 0)); wb = whereAnd(wb, where(table, "deleted", IS_NULL, TYPE_RAW, 0));
free(table); free(table);
} }
@@ -709,7 +709,7 @@ int modbIsLinked_Group_User(stored_conn *sconn, modb_ref *modb,
int qry_ret; int qry_ret;
char *table; char *table;
if ((table = modbTableName(modb, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE))) == 0) { if ((table = modbTableName(modb, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE), 0)) == 0) {
return 0; return 0;
} }
@@ -724,7 +724,7 @@ int modbLink_Group_User(stored_conn *sconn, modb_ref *modb,
int qry_ret; int qry_ret;
char *table; char *table;
if ((table = modbTableName(modb, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE))) == 0) { if ((table = modbTableName(modb, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE), 0)) == 0) {
return 0; return 0;
} }
@@ -739,7 +739,7 @@ int modbUnlink_Group_User(stored_conn *sconn, modb_ref *modb,
int qry_ret; int qry_ret;
char *table; char *table;
if ((table = modbTableName(modb, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE))) == 0) { if ((table = modbTableName(modb, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE), 0)) == 0) {
return 0; return 0;
} }

View File

@@ -83,9 +83,8 @@ int doUsersQuery(stored_conn *sconn, modb_ref *modb, where_builder *wb,
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return -errno; return -errno;
} }
strbld_str(sb, "SELECT * FROM `", 0); strbld_str(sb, "SELECT * FROM ", 0);
modbTableName_sb(sb, modb, USERS_TABLE, strlen(USERS_TABLE)); modbTableName_sb(sb, modb, USERS_TABLE, strlen(USERS_TABLE), '`');
strbld_char(sb, '`');
if (wb != 0) { if (wb != 0) {
strbld_str(sb, " WHERE ", 0); strbld_str(sb, " WHERE ", 0);
compileWhereBuilder_sb(wb, sb, 0); compileWhereBuilder_sb(wb, sb, 0);
@@ -207,9 +206,8 @@ int doGroupsQuery(stored_conn *sconn, modb_ref *modb, where_builder *wb,
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return -1; return -1;
} }
strbld_str(sb, "SELECT * FROM `", 0); strbld_str(sb, "SELECT * FROM ", 0);
modbTableName_sb(sb, modb, GROUPS_TABLE, strlen(GROUPS_TABLE)); modbTableName_sb(sb, modb, GROUPS_TABLE, strlen(GROUPS_TABLE), '`');
strbld_char(sb, '`');
if (wb != 0) { if (wb != 0) {
strbld_str(sb, " WHERE ", 0); strbld_str(sb, " WHERE ", 0);
compileWhereBuilder_sb(wb, sb, 0); compileWhereBuilder_sb(wb, sb, 0);

View File

@@ -30,9 +30,9 @@ uint64_t createSysTable(stored_conn *sconn, modb_ref *modb)
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return (uint64_t)-1; return (uint64_t)-1;
} }
strbld_str(sb, "CREATE TABLE `", 0); strbld_str(sb, "CREATE TABLE ", 0);
modbTableName_sb(sb, modb, SYS_TABLE, STR_LEN(SYS_TABLE)); modbTableName_sb(sb, modb, SYS_TABLE, STR_LEN(SYS_TABLE), '`');
strbld_str(sb, "` (" strbld_str(sb, " ("
"`key` VARCHAR(255) NULL, " "`key` VARCHAR(255) NULL, "
"`value` VARCHAR(255) NULL, " "`value` VARCHAR(255) NULL, "
"UNIQUE(`key`)" "UNIQUE(`key`)"
@@ -56,9 +56,9 @@ uint64_t createMetaTable(stored_conn *sconn, modb_ref *modb)
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return (uint64_t)-1; return (uint64_t)-1;
} }
strbld_str(sb, "CREATE TABLE `", 0); strbld_str(sb, "CREATE TABLE ", 0);
modbTableName_sb(sb, modb, META_TABLE, STR_LEN(META_TABLE)); modbTableName_sb(sb, modb, META_TABLE, STR_LEN(META_TABLE), '`');
strbld_str(sb, "` (" strbld_str(sb, " ("
"`mdo_id` INT UNSIGNED NOT NULL AUTO_INCREMENT, " "`mdo_id` INT UNSIGNED NOT NULL AUTO_INCREMENT, "
"`title` VARCHAR(255) NOT NULL, " "`title` VARCHAR(255) NOT NULL, "
"`owner` INT UNSIGNED NOT NULL, " "`owner` INT UNSIGNED NOT NULL, "
@@ -86,9 +86,9 @@ uint64_t createObjectsTable(stored_conn *sconn, modb_ref *modb)
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return (uint64_t)-1; return (uint64_t)-1;
} }
strbld_str(sb, "CREATE TABLE `", 0); strbld_str(sb, "CREATE TABLE ", 0);
modbTableName_sb(sb, modb, OBJECTS_TABLE, STR_LEN(OBJECTS_TABLE)); modbTableName_sb(sb, modb, OBJECTS_TABLE, STR_LEN(OBJECTS_TABLE), '`');
strbld_str(sb, "` (" strbld_str(sb, " ("
"`mdo_id` INT UNSIGNED NOT NULL, " "`mdo_id` INT UNSIGNED NOT NULL, "
"`object` MEDIUMBLOB NOT NULL, " "`object` MEDIUMBLOB NOT NULL, "
"PRIMARY KEY (`mdo_id`)" "PRIMARY KEY (`mdo_id`)"
@@ -112,9 +112,9 @@ uint64_t createMDOGroupsTable(stored_conn *sconn, modb_ref *modb)
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return (uint64_t)-1; return (uint64_t)-1;
} }
strbld_str(sb, "CREATE TABLE `", 0); strbld_str(sb, "CREATE TABLE ", 0);
modbTableName_sb(sb, modb, MDO_GROUPS_TABLE, STR_LEN(MDO_GROUPS_TABLE)); modbTableName_sb(sb, modb, MDO_GROUPS_TABLE, STR_LEN(MDO_GROUPS_TABLE), '`');
strbld_str(sb, "` (" strbld_str(sb, " ("
"`mdo_id` INT UNSIGNED NOT NULL, " "`mdo_id` INT UNSIGNED NOT NULL, "
"`group_id` INT UNSIGNED NOT NULL, " "`group_id` INT UNSIGNED NOT NULL, "
"INDEX(`mdo_id`), " "INDEX(`mdo_id`), "
@@ -140,9 +140,9 @@ uint64_t createUsersTable(stored_conn *sconn, modb_ref *modb)
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return (uint64_t)-1; return (uint64_t)-1;
} }
strbld_str(sb, "CREATE TABLE `", 0); strbld_str(sb, "CREATE TABLE ", 0);
modbTableName_sb(sb, modb, USERS_TABLE, STR_LEN(USERS_TABLE)); modbTableName_sb(sb, modb, USERS_TABLE, STR_LEN(USERS_TABLE), '`');
strbld_str(sb, "` (" strbld_str(sb, " ("
"`id` INT UNSIGNED NOT NULL AUTO_INCREMENT, " "`id` INT UNSIGNED NOT NULL AUTO_INCREMENT, "
"`username` VARCHAR(255) NOT NULL, " "`username` VARCHAR(255) NOT NULL, "
"`email` VARCHAR(255) NOT NULL, " "`email` VARCHAR(255) NOT NULL, "
@@ -172,9 +172,9 @@ uint64_t createGroupsTable(stored_conn *sconn, modb_ref *modb)
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return (uint64_t)-1; return (uint64_t)-1;
} }
strbld_str(sb, "CREATE TABLE `", 0); strbld_str(sb, "CREATE TABLE ", 0);
modbTableName_sb(sb, modb, GROUPS_TABLE, STR_LEN(GROUPS_TABLE)); modbTableName_sb(sb, modb, GROUPS_TABLE, STR_LEN(GROUPS_TABLE), '`');
strbld_str(sb, "` (" strbld_str(sb, " ("
"`id` INT UNSIGNED NOT NULL AUTO_INCREMENT, " "`id` INT UNSIGNED NOT NULL AUTO_INCREMENT, "
"`name` VARCHAR(255) NOT NULL, " "`name` VARCHAR(255) NOT NULL, "
"`created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, " "`created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, "
@@ -202,9 +202,9 @@ uint64_t createUserGroupsTable(stored_conn *sconn, modb_ref *modb)
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return (uint64_t)-1; return (uint64_t)-1;
} }
strbld_str(sb, "CREATE TABLE `", 0); strbld_str(sb, "CREATE TABLE ", 0);
modbTableName_sb(sb, modb, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE)); modbTableName_sb(sb, modb, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE), '`');
strbld_str(sb, "` (" strbld_str(sb, " ("
"`user_id` INT UNSIGNED NOT NULL, " "`user_id` INT UNSIGNED NOT NULL, "
"`group_id` INT UNSIGNED NOT NULL, " "`group_id` INT UNSIGNED NOT NULL, "
"INDEX(`user_id`), " "INDEX(`user_id`), "
@@ -232,9 +232,9 @@ uint64_t createMetaExtTable(stored_conn *sconn, modb_ref *modb,
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return (uint64_t)-1; return (uint64_t)-1;
} }
strbld_str(sb, "CREATE TABLE `", 0); strbld_str(sb, "CREATE TABLE ", 0);
modbTableName_sb(sb, modb, META_EXT_TABLE, STR_LEN(META_EXT_TABLE)); modbTableName_sb(sb, modb, META_EXT_TABLE, STR_LEN(META_EXT_TABLE), '`');
strbld_str(sb, "` (" strbld_str(sb, " ("
"`mdo_id` INT UNSIGNED NOT NULL", 0); "`mdo_id` INT UNSIGNED NOT NULL", 0);
for (size_t c = 0; c < cols; c++) { for (size_t c = 0; c < cols; c++) {
createColumn_sb(sb, *(col_data + c)); createColumn_sb(sb, *(col_data + c));
@@ -261,9 +261,8 @@ int tableExists(stored_conn *sconn, modb_ref *modb, const char *suffix, size_t s
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return -errno; return -errno;
} }
strbld_str(sb, "SHOW TABLES LIKE '", 0); strbld_str(sb, "SHOW TABLES LIKE ", 0);
modbTableName_sb(sb, modb, suffix, suffix_len); modbTableName_sb(sb, modb, suffix, suffix_len, '\'');
strbld_char(sb, '\'');
if (strbld_finalize_or_destroy(&sb, &qry, &qry_len) != 0) { if (strbld_finalize_or_destroy(&sb, &qry, &qry_len) != 0) {
return -errno; return -errno;
} }
@@ -304,9 +303,8 @@ uint64_t destroyTable(stored_conn *sconn, modb_ref *modb, const char *suffix, si
if ((sb = strbld_create()) == 0) { if ((sb = strbld_create()) == 0) {
return (uint64_t)-1; return (uint64_t)-1;
} }
strbld_str(sb, "DROP TABLE `", 0); strbld_str(sb, "DROP TABLE ", 0);
modbTableName_sb(sb, modb, suffix, suffix_len); modbTableName_sb(sb, modb, suffix, suffix_len, '`');
strbld_char(sb, '`');
if (strbld_finalize_or_destroy(&sb, &qry, &qry_len) != 0) { if (strbld_finalize_or_destroy(&sb, &qry, &qry_len) != 0) {
return (uint64_t)-1; return (uint64_t)-1;
} }

View File

@@ -1,7 +1,7 @@
#include "modb_p.h" #include "modb_p.h"
#include "strext.h" #include "strext.h"
char *modbTableName(modb_ref *modb, const char *suffix, size_t suffix_len) char *modbTableName(modb_ref *modb, const char *suffix, size_t suffix_len, char encap)
{ {
str_builder *sb; str_builder *sb;
char *str; char *str;
@@ -11,7 +11,7 @@ char *modbTableName(modb_ref *modb, const char *suffix, size_t suffix_len)
return 0; return 0;
} }
modbTableName_sb(sb, modb, suffix, suffix_len); modbTableName_sb(sb, modb, suffix, suffix_len, encap);
if (strbld_finalize_or_destroy(&sb, &str, &len) != 0) { if (strbld_finalize_or_destroy(&sb, &str, &len) != 0) {
return 0; return 0;
@@ -20,10 +20,17 @@ char *modbTableName(modb_ref *modb, const char *suffix, size_t suffix_len)
return str; return str;
} }
void modbTableName_sb(str_builder *sb, modb_ref *modb, const char *suffix, size_t suffix_len) void modbTableName_sb(str_builder *sb, modb_ref *modb, const char *suffix, size_t suffix_len,
char encap)
{ {
if (encap != 0) {
strbld_char(sb, encap);
}
strbld_str(sb, modb->name, modb->name_len); strbld_str(sb, modb->name, modb->name_len);
strbld_str(sb, suffix, suffix_len); strbld_str(sb, suffix, suffix_len);
if (encap != 0) {
strbld_char(sb, encap);
}
} }
@@ -58,10 +65,10 @@ void modbJoin_sb(str_builder *sb, modb_ref *modb,
{ {
strbld_str(sb, join, join_len); strbld_str(sb, join, join_len);
strbld_str(sb, " JOIN ", 6); strbld_str(sb, " JOIN ", 6);
modbTableName_sb(sb, modb, tableA, tableA_len); modbTableName_sb(sb, modb, tableA, tableA_len, '`');
strbld_str(sb, " ON ", 4); strbld_str(sb, " ON ", 4);
modbColumnName_sb(sb, modb, tableA, tableA_len, colA, colA_len); modbColumnName_sb(sb, modb, tableA, tableA_len, colA, colA_len);
strbld_str(sb, equals ? " = " : " != ", 4); strbld_str(sb, (equals ? " = " : " != "), (equals ? 3 : 4));
modbColumnName_sb(sb, modb, tableB, tableB_len, colB, colB_len); modbColumnName_sb(sb, modb, tableB, tableB_len, colB, colB_len);
} }
@@ -91,9 +98,7 @@ void modbColumnName_sb(str_builder *sb, modb_ref *modb,
const char *column, size_t column_len) const char *column, size_t column_len)
{ {
if (table != 0) { if (table != 0) {
strbld_char(sb, '`'); modbTableName_sb(sb, modb, table, table_len, '`');
modbTableName_sb(sb, modb, table, table_len);
strbld_char(sb, '`');
strbld_char(sb, '.'); strbld_char(sb, '.');
} }
strbld_char(sb, '`'); strbld_char(sb, '`');
@@ -128,9 +133,7 @@ void modbColumnNameAs_sb(str_builder *sb, modb_ref *modb,
const char *as_column, size_t as_column_len) const char *as_column, size_t as_column_len)
{ {
if (table != 0) { if (table != 0) {
strbld_char(sb, '`'); modbTableName_sb(sb, modb, table, table_len, '`');
modbTableName_sb(sb, modb, table, table_len);
strbld_char(sb, '`');
strbld_char(sb, '.'); strbld_char(sb, '.');
} }
strbld_char(sb, '`'); strbld_char(sb, '`');

View File

@@ -19,8 +19,9 @@
#define META_EXT_TABLE "_meta_ext" #define META_EXT_TABLE "_meta_ext"
char *modbTableName(modb_ref *modb, const char *suffix, size_t suffix_len); char *modbTableName(modb_ref *modb, const char *suffix, size_t suffix_len, char encap);
void modbTableName_sb(str_builder *sb, modb_ref *modb, const char *suffix, size_t suffix_len); void modbTableName_sb(str_builder *sb, modb_ref *modb, const char *suffix, size_t suffix_len,
char encap);
char *modbJoin(modb_ref *modb, char *modbJoin(modb_ref *modb,
const char *join, size_t join_len, int equals, const char *join, size_t join_len, int equals,