From 38478181167df46165439bd0e45761e40f630dbe Mon Sep 17 00:00:00 2001 From: avsdev-cw Date: Wed, 7 Oct 2020 14:37:39 +0100 Subject: [PATCH] modbTableName now takes an optional encapsulation char --- src/modb_accounting.c | 78 ++++++++++++++++++++--------------------- src/modb_accounting_p.c | 10 +++--- src/modb_management_p.c | 58 +++++++++++++++--------------- src/modb_p.c | 25 +++++++------ src/modb_p.h | 5 +-- 5 files changed, 88 insertions(+), 88 deletions(-) diff --git a/src/modb_accounting.c b/src/modb_accounting.c index 733b580..8e119e9 100644 --- a/src/modb_accounting.c +++ b/src/modb_accounting.c @@ -137,9 +137,9 @@ int64_t modbUserCreate(stored_conn *sconn, modb_ref *modb, if ((sb = strbld_create()) == 0) { return -1; } - strbld_str(sb, "INSERT INTO `", 0); - modbTableName_sb(sb, modb, USERS_TABLE, strlen(USERS_TABLE)); - strbld_str(sb, "` (`id`, `username`, `email`) VALUES(", 0); + strbld_str(sb, "INSERT INTO ", 0); + modbTableName_sb(sb, modb, USERS_TABLE, strlen(USERS_TABLE), '`'); + strbld_str(sb, " (`id`, `username`, `email`) VALUES(", 0); db_value_sb(sb, TYPE_UINT32, 1, id); strbld_str(sb, ", ", 0); 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) { return 0; } - strbld_str(sb, "UPDATE `", 0); - modbTableName_sb(sb, modb, USERS_TABLE, strlen(USERS_TABLE)); - strbld_str(sb, "` SET `id` = ", 0); + strbld_str(sb, "UPDATE ", 0); + modbTableName_sb(sb, modb, USERS_TABLE, strlen(USERS_TABLE), '`'); + strbld_str(sb, " SET `id` = ", 0); db_value_sb(sb, TYPE_UINT32, 1, id); if (username != 0) { @@ -206,9 +206,9 @@ int modbUserDelete(stored_conn *sconn, modb_ref *modb, int id) if ((sb = strbld_create()) == 0) { return 0; } - strbld_str(sb, "UPDATE `", 0); - modbTableName_sb(sb, modb, USERS_TABLE, strlen(USERS_TABLE)); - strbld_str(sb, "` SET `deleted` = CURRENT_TIMESTAMP() WHERE `id` = ", 0); + strbld_str(sb, "UPDATE`", 0); + modbTableName_sb(sb, modb, USERS_TABLE, strlen(USERS_TABLE), '`'); + strbld_str(sb, " SET `deleted` = CURRENT_TIMESTAMP() WHERE `id` = ", 0); db_value_sb(sb, TYPE_UINT32, 1, id); if (strbld_finalize_or_destroy(&sb, &qry, &qry_len) != 0) { return 0; @@ -234,9 +234,9 @@ int modbUserDestroy(stored_conn *sconn, modb_ref *modb, int id) if ((sb = strbld_create()) == 0) { return 0; } - strbld_str(sb, "DELETE FROM `", 0); - modbTableName_sb(sb, modb, USERS_TABLE, strlen(USERS_TABLE)); - strbld_str(sb, "` WHERE `id` = ", 0); + strbld_str(sb, "DELETE FROM ", 0); + modbTableName_sb(sb, modb, USERS_TABLE, strlen(USERS_TABLE), '`'); + strbld_str(sb, " WHERE `id` = ", 0); db_value_sb(sb, TYPE_UINT32, 1, id); if (strbld_finalize_or_destroy(&sb, &qry, &qry_len) != 0) { return 0; @@ -343,9 +343,9 @@ int64_t modbGroupCreate(stored_conn *sconn, modb_ref *modb, if ((sb = strbld_create()) == 0) { return -1; } - strbld_str(sb, "INSERT INTO `", 0); - modbTableName_sb(sb, modb, GROUPS_TABLE, strlen(GROUPS_TABLE)); - strbld_str(sb, "` (`id`, `name`) VALUES(", 0); + strbld_str(sb, "INSERT INTO`", 0); + modbTableName_sb(sb, modb, GROUPS_TABLE, strlen(GROUPS_TABLE), '`'); + strbld_str(sb, " (`id`, `name`) VALUES(", 0); db_value_sb(sb, TYPE_UINT32, 1, id); strbld_str(sb, ", ", 0); 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) { return 0; } - strbld_str(sb, "UPDATE `", 0); - modbTableName_sb(sb, modb, GROUPS_TABLE, strlen(GROUPS_TABLE)); - strbld_str(sb, "` SET `id` = ", 0); + strbld_str(sb, "UPDATE ", 0); + modbTableName_sb(sb, modb, GROUPS_TABLE, strlen(GROUPS_TABLE), '`'); + strbld_str(sb, " SET `id` = ", 0); db_value_sb(sb, TYPE_UINT32, 1, id); if (name == 0) { @@ -407,9 +407,9 @@ int modbGroupDelete(stored_conn *sconn, modb_ref *modb, int id) if ((sb = strbld_create()) == 0) { return 0; } - strbld_str(sb, "UPDATE `", 0); - modbTableName_sb(sb, modb, GROUPS_TABLE, strlen(GROUPS_TABLE)); - strbld_str(sb, "` SET `deleted` = CURRENT_TIMESTAMP() WHERE `id` = ", 0); + strbld_str(sb, "UPDATE ", 0); + modbTableName_sb(sb, modb, GROUPS_TABLE, strlen(GROUPS_TABLE), '`'); + strbld_str(sb, " SET `deleted` = CURRENT_TIMESTAMP() WHERE `id` = ", 0); db_value_sb(sb, TYPE_UINT32, 1, id); if (strbld_finalize_or_destroy(&sb, &qry, &qry_len) != 0) { return 0; @@ -435,9 +435,9 @@ int modbGroupDestroy(stored_conn *sconn, modb_ref *modb, int id) if ((sb = strbld_create()) == 0) { return 0; } - strbld_str(sb, "DELETE FROM `", 0); - modbTableName_sb(sb, modb, GROUPS_TABLE, strlen(GROUPS_TABLE)); - strbld_str(sb, "` WHERE `id` = ", 0); + strbld_str(sb, "DELETE FROM ", 0); + modbTableName_sb(sb, modb, GROUPS_TABLE, strlen(GROUPS_TABLE), '`'); + strbld_str(sb, " WHERE `id` = ", 0); db_value_sb(sb, TYPE_UINT32, 1, id); if (strbld_finalize_or_destroy(&sb, &qry, &qry_len) != 0) { return 0; @@ -463,7 +463,7 @@ int modbSyncGroupsUser(stored_conn *sconn, modb_ref *modb, int qry_ret; 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; } @@ -479,7 +479,7 @@ int modbSyncUserGroups_va(stored_conn *sconn, modb_ref *modb, int qry_ret; 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; } @@ -497,7 +497,7 @@ int modbSyncGroupUsers(stored_conn *sconn, modb_ref *modb, int qry_ret; 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; } @@ -513,7 +513,7 @@ int modbSyncGroupUsers_va(stored_conn *sconn, modb_ref *modb, int qry_ret; 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; } @@ -545,16 +545,16 @@ int modbFetchUserGroupIds(stored_conn *sconn, modb_ref *modb, int with_deleted, if ((sb = strbld_create()) == 0) { return -errno; } - strbld_str(sb, "SELECT `group_id` FROM `", 0); - modbTableName_sb(sb, modb, USER_GROUPS_TABLE, strlen(USER_GROUPS_TABLE)); - strbld_str(sb, "` ", 2); + strbld_str(sb, "SELECT `group_id` FROM ", 0); + modbTableName_sb(sb, modb, USER_GROUPS_TABLE, strlen(USER_GROUPS_TABLE), '`'); + strbld_char(sb, ' '); modbJoin_sb(sb, modb, "LEFT", 4, 1, GROUPS_TABLE, strlen(GROUPS_TABLE), "id", 2, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE), "group_id", 8); strbld_str(sb, " WHERE ", 0); wb = where(0, "user_id", EQ, TYPE_ID, 1, user_id); 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)); free(table); } @@ -603,16 +603,16 @@ int modbFetchGroupUserIds(stored_conn *sconn, modb_ref *modb, int with_deleted, if ((sb = strbld_create()) == 0) { return -errno; } - strbld_str(sb, "SELECT `user_id` FROM `", 0); - modbTableName_sb(sb, modb, USER_GROUPS_TABLE, strlen(USER_GROUPS_TABLE)); - strbld_str(sb, "` ", 2); + strbld_str(sb, "SELECT `user_id` FROM ", 0); + modbTableName_sb(sb, modb, USER_GROUPS_TABLE, strlen(USER_GROUPS_TABLE), '`'); + strbld_char(sb, ' '); modbJoin_sb(sb, modb, "LEFT", 4, 1, USERS_TABLE, strlen(USERS_TABLE), "id", 2, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE), "user_id", 8); strbld_str(sb, " WHERE ", 0); wb = where(0, "group_id", EQ, TYPE_ID, 1, group_id); 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)); free(table); } @@ -709,7 +709,7 @@ int modbIsLinked_Group_User(stored_conn *sconn, modb_ref *modb, int qry_ret; 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; } @@ -724,7 +724,7 @@ int modbLink_Group_User(stored_conn *sconn, modb_ref *modb, int qry_ret; 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; } @@ -739,7 +739,7 @@ int modbUnlink_Group_User(stored_conn *sconn, modb_ref *modb, int qry_ret; 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; } diff --git a/src/modb_accounting_p.c b/src/modb_accounting_p.c index dcb409c..27499fd 100644 --- a/src/modb_accounting_p.c +++ b/src/modb_accounting_p.c @@ -83,9 +83,8 @@ int doUsersQuery(stored_conn *sconn, modb_ref *modb, where_builder *wb, if ((sb = strbld_create()) == 0) { return -errno; } - strbld_str(sb, "SELECT * FROM `", 0); - modbTableName_sb(sb, modb, USERS_TABLE, strlen(USERS_TABLE)); - strbld_char(sb, '`'); + strbld_str(sb, "SELECT * FROM ", 0); + modbTableName_sb(sb, modb, USERS_TABLE, strlen(USERS_TABLE), '`'); if (wb != 0) { strbld_str(sb, " WHERE ", 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) { return -1; } - strbld_str(sb, "SELECT * FROM `", 0); - modbTableName_sb(sb, modb, GROUPS_TABLE, strlen(GROUPS_TABLE)); - strbld_char(sb, '`'); + strbld_str(sb, "SELECT * FROM ", 0); + modbTableName_sb(sb, modb, GROUPS_TABLE, strlen(GROUPS_TABLE), '`'); if (wb != 0) { strbld_str(sb, " WHERE ", 0); compileWhereBuilder_sb(wb, sb, 0); diff --git a/src/modb_management_p.c b/src/modb_management_p.c index 6a7f7b9..dc07ac1 100644 --- a/src/modb_management_p.c +++ b/src/modb_management_p.c @@ -30,9 +30,9 @@ uint64_t createSysTable(stored_conn *sconn, modb_ref *modb) if ((sb = strbld_create()) == 0) { return (uint64_t)-1; } - strbld_str(sb, "CREATE TABLE `", 0); - modbTableName_sb(sb, modb, SYS_TABLE, STR_LEN(SYS_TABLE)); - strbld_str(sb, "` (" + strbld_str(sb, "CREATE TABLE ", 0); + modbTableName_sb(sb, modb, SYS_TABLE, STR_LEN(SYS_TABLE), '`'); + strbld_str(sb, " (" "`key` VARCHAR(255) NULL, " "`value` VARCHAR(255) NULL, " "UNIQUE(`key`)" @@ -56,9 +56,9 @@ uint64_t createMetaTable(stored_conn *sconn, modb_ref *modb) if ((sb = strbld_create()) == 0) { return (uint64_t)-1; } - strbld_str(sb, "CREATE TABLE `", 0); - modbTableName_sb(sb, modb, META_TABLE, STR_LEN(META_TABLE)); - strbld_str(sb, "` (" + strbld_str(sb, "CREATE TABLE ", 0); + modbTableName_sb(sb, modb, META_TABLE, STR_LEN(META_TABLE), '`'); + strbld_str(sb, " (" "`mdo_id` INT UNSIGNED NOT NULL AUTO_INCREMENT, " "`title` VARCHAR(255) 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) { return (uint64_t)-1; } - strbld_str(sb, "CREATE TABLE `", 0); - modbTableName_sb(sb, modb, OBJECTS_TABLE, STR_LEN(OBJECTS_TABLE)); - strbld_str(sb, "` (" + strbld_str(sb, "CREATE TABLE ", 0); + modbTableName_sb(sb, modb, OBJECTS_TABLE, STR_LEN(OBJECTS_TABLE), '`'); + strbld_str(sb, " (" "`mdo_id` INT UNSIGNED NOT NULL, " "`object` MEDIUMBLOB NOT NULL, " "PRIMARY KEY (`mdo_id`)" @@ -112,9 +112,9 @@ uint64_t createMDOGroupsTable(stored_conn *sconn, modb_ref *modb) if ((sb = strbld_create()) == 0) { return (uint64_t)-1; } - strbld_str(sb, "CREATE TABLE `", 0); - modbTableName_sb(sb, modb, MDO_GROUPS_TABLE, STR_LEN(MDO_GROUPS_TABLE)); - strbld_str(sb, "` (" + strbld_str(sb, "CREATE TABLE ", 0); + modbTableName_sb(sb, modb, MDO_GROUPS_TABLE, STR_LEN(MDO_GROUPS_TABLE), '`'); + strbld_str(sb, " (" "`mdo_id` INT UNSIGNED NOT NULL, " "`group_id` INT UNSIGNED NOT NULL, " "INDEX(`mdo_id`), " @@ -140,9 +140,9 @@ uint64_t createUsersTable(stored_conn *sconn, modb_ref *modb) if ((sb = strbld_create()) == 0) { return (uint64_t)-1; } - strbld_str(sb, "CREATE TABLE `", 0); - modbTableName_sb(sb, modb, USERS_TABLE, STR_LEN(USERS_TABLE)); - strbld_str(sb, "` (" + strbld_str(sb, "CREATE TABLE ", 0); + modbTableName_sb(sb, modb, USERS_TABLE, STR_LEN(USERS_TABLE), '`'); + strbld_str(sb, " (" "`id` INT UNSIGNED NOT NULL AUTO_INCREMENT, " "`username` 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) { return (uint64_t)-1; } - strbld_str(sb, "CREATE TABLE `", 0); - modbTableName_sb(sb, modb, GROUPS_TABLE, STR_LEN(GROUPS_TABLE)); - strbld_str(sb, "` (" + strbld_str(sb, "CREATE TABLE ", 0); + modbTableName_sb(sb, modb, GROUPS_TABLE, STR_LEN(GROUPS_TABLE), '`'); + strbld_str(sb, " (" "`id` INT UNSIGNED NOT NULL AUTO_INCREMENT, " "`name` VARCHAR(255) NOT NULL, " "`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) { return (uint64_t)-1; } - strbld_str(sb, "CREATE TABLE `", 0); - modbTableName_sb(sb, modb, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE)); - strbld_str(sb, "` (" + strbld_str(sb, "CREATE TABLE ", 0); + modbTableName_sb(sb, modb, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE), '`'); + strbld_str(sb, " (" "`user_id` INT UNSIGNED NOT NULL, " "`group_id` INT UNSIGNED NOT NULL, " "INDEX(`user_id`), " @@ -232,9 +232,9 @@ uint64_t createMetaExtTable(stored_conn *sconn, modb_ref *modb, if ((sb = strbld_create()) == 0) { return (uint64_t)-1; } - strbld_str(sb, "CREATE TABLE `", 0); - modbTableName_sb(sb, modb, META_EXT_TABLE, STR_LEN(META_EXT_TABLE)); - strbld_str(sb, "` (" + strbld_str(sb, "CREATE TABLE ", 0); + modbTableName_sb(sb, modb, META_EXT_TABLE, STR_LEN(META_EXT_TABLE), '`'); + strbld_str(sb, " (" "`mdo_id` INT UNSIGNED NOT NULL", 0); for (size_t c = 0; c < cols; 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) { return -errno; } - strbld_str(sb, "SHOW TABLES LIKE '", 0); - modbTableName_sb(sb, modb, suffix, suffix_len); - strbld_char(sb, '\''); + strbld_str(sb, "SHOW TABLES LIKE ", 0); + modbTableName_sb(sb, modb, suffix, suffix_len, '\''); if (strbld_finalize_or_destroy(&sb, &qry, &qry_len) != 0) { return -errno; } @@ -304,9 +303,8 @@ uint64_t destroyTable(stored_conn *sconn, modb_ref *modb, const char *suffix, si if ((sb = strbld_create()) == 0) { return (uint64_t)-1; } - strbld_str(sb, "DROP TABLE `", 0); - modbTableName_sb(sb, modb, suffix, suffix_len); - strbld_char(sb, '`'); + strbld_str(sb, "DROP TABLE ", 0); + modbTableName_sb(sb, modb, suffix, suffix_len, '`'); if (strbld_finalize_or_destroy(&sb, &qry, &qry_len) != 0) { return (uint64_t)-1; } diff --git a/src/modb_p.c b/src/modb_p.c index e3a56bd..b44542a 100644 --- a/src/modb_p.c +++ b/src/modb_p.c @@ -1,7 +1,7 @@ #include "modb_p.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; char *str; @@ -11,7 +11,7 @@ char *modbTableName(modb_ref *modb, const char *suffix, size_t suffix_len) 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) { return 0; @@ -20,10 +20,17 @@ char *modbTableName(modb_ref *modb, const char *suffix, size_t suffix_len) 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, 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 ", 6); - modbTableName_sb(sb, modb, tableA, tableA_len); + modbTableName_sb(sb, modb, tableA, tableA_len, '`'); strbld_str(sb, " ON ", 4); 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); } @@ -91,9 +98,7 @@ void modbColumnName_sb(str_builder *sb, modb_ref *modb, const char *column, size_t column_len) { if (table != 0) { - strbld_char(sb, '`'); - modbTableName_sb(sb, modb, table, table_len); - strbld_char(sb, '`'); + modbTableName_sb(sb, modb, table, table_len, '`'); 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) { if (table != 0) { - strbld_char(sb, '`'); - modbTableName_sb(sb, modb, table, table_len); - strbld_char(sb, '`'); + modbTableName_sb(sb, modb, table, table_len, '`'); strbld_char(sb, '.'); } strbld_char(sb, '`'); diff --git a/src/modb_p.h b/src/modb_p.h index f8e4fa0..ae87e9a 100644 --- a/src/modb_p.h +++ b/src/modb_p.h @@ -19,8 +19,9 @@ #define META_EXT_TABLE "_meta_ext" -char *modbTableName(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 *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, + char encap); char *modbJoin(modb_ref *modb, const char *join, size_t join_len, int equals,