Flipped params of wherebuilder (breaking commit)
This commit is contained in:
@@ -24,7 +24,7 @@ where_builder *createWhereBuilder(where_builder *initial_clause)
|
|||||||
|
|
||||||
return wb;
|
return wb;
|
||||||
}
|
}
|
||||||
int compileWhereBuilder(where_builder *wb, char **str, size_t *str_len, int free_wb)
|
int compileWhereBuilder(char **str, size_t *str_len, where_builder *wb, int free_wb)
|
||||||
{
|
{
|
||||||
struct str_builder_t *sb;
|
struct str_builder_t *sb;
|
||||||
|
|
||||||
@@ -32,14 +32,21 @@ int compileWhereBuilder(where_builder *wb, char **str, size_t *str_len, int free
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
compileWhereBuilder_sb(wb, sb, free_wb);
|
compileWhereBuilder_sb(sb, wb, free_wb);
|
||||||
|
|
||||||
return strbld_finalize_or_destroy(&sb, str, str_len);
|
return strbld_finalize_or_destroy(&sb, str, str_len);
|
||||||
}
|
}
|
||||||
void compileWhereBuilder_sb(where_builder *wb, str_builder *sb, int free_wb)
|
void compileWhereBuilder_sb(str_builder *sb, where_builder *wb, int free_wb)
|
||||||
{
|
{
|
||||||
|
wb = finalizeWhere(wb);
|
||||||
strbld_str(sb, " WHERE ", 7);
|
strbld_str(sb, " WHERE ", 7);
|
||||||
do_compileWhereBuilder_sb(wb, sb, free_wb);
|
do_compileWhereBuilder_sb(sb, wb);
|
||||||
|
if (strbld_len(sb) == 7) {
|
||||||
|
strbld_seek(sb, 0, 1);
|
||||||
|
}
|
||||||
|
if (free_wb) {
|
||||||
|
freeWhereBuilder(&wb);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
void freeWhereBuilder(where_builder **wb_ptr)
|
void freeWhereBuilder(where_builder **wb_ptr)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -40,8 +40,8 @@ typedef struct where_builder_t where_builder;
|
|||||||
|
|
||||||
|
|
||||||
where_builder *createWhereBuilder(where_builder *initial_clause);
|
where_builder *createWhereBuilder(where_builder *initial_clause);
|
||||||
int compileWhereBuilder(where_builder *wb, char **str, size_t *str_len, int free_wb);
|
int compileWhereBuilder(char **str, size_t *str_len, where_builder *wb, int free_wb);
|
||||||
void compileWhereBuilder_sb(where_builder *wb, str_builder *sb, int free_wb);
|
void compileWhereBuilder_sb(str_builder *sb, where_builder *wb, int free_wb);
|
||||||
void freeWhereBuilder(where_builder **wb_ptr);
|
void freeWhereBuilder(where_builder **wb_ptr);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,18 +4,18 @@
|
|||||||
|
|
||||||
#include "db_where-builder_p.h"
|
#include "db_where-builder_p.h"
|
||||||
|
|
||||||
void do_compileWhereBuilder_sb(where_builder *wb, str_builder *sb, int free_wb)
|
void do_compileWhereBuilder_sb(str_builder *sb, where_builder *wb)
|
||||||
{
|
{
|
||||||
switch(wb->logic_type) {
|
switch(wb->logic_type) {
|
||||||
case CLAUSE:
|
case CLAUSE:
|
||||||
{
|
{
|
||||||
compileWhere_sb((where_clause *)wb, sb);
|
compileWhere_sb(sb, (where_clause *)wb);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case OR:
|
case OR:
|
||||||
case AND:
|
case AND:
|
||||||
{
|
{
|
||||||
compileLogic_sb((where_logic *)wb, sb);
|
compileLogic_sb(sb, (where_logic *)wb);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@@ -23,9 +23,6 @@ void do_compileWhereBuilder_sb(where_builder *wb, str_builder *sb, int free_wb)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (free_wb) {
|
|
||||||
freeWhereBuilder(&wb);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
where_logic *createLogic(e_where_logic type, size_t initial_size)
|
where_logic *createLogic(e_where_logic type, size_t initial_size)
|
||||||
@@ -55,7 +52,7 @@ where_logic *createLogic(e_where_logic type, size_t initial_size)
|
|||||||
|
|
||||||
return logic;
|
return logic;
|
||||||
}
|
}
|
||||||
void compileLogic_sb(where_logic *logic, str_builder *sb)
|
void compileLogic_sb(str_builder *sb, where_logic *logic)
|
||||||
{
|
{
|
||||||
if (logic->n_clauses == 0) {
|
if (logic->n_clauses == 0) {
|
||||||
return;
|
return;
|
||||||
@@ -63,7 +60,7 @@ void compileLogic_sb(where_logic *logic, str_builder *sb)
|
|||||||
|
|
||||||
strbld_char(sb, '(');
|
strbld_char(sb, '(');
|
||||||
for (size_t i = 0; i < logic->n_clauses; i++) {
|
for (size_t i = 0; i < logic->n_clauses; i++) {
|
||||||
do_compileWhereBuilder_sb(logic->clauses[i], sb, 0);
|
do_compileWhereBuilder_sb(sb, logic->clauses[i]);
|
||||||
if (i < (logic->n_clauses - 1)) {
|
if (i < (logic->n_clauses - 1)) {
|
||||||
if (logic->logic_type == OR) {
|
if (logic->logic_type == OR) {
|
||||||
strbld_str(sb, " OR ", 4);
|
strbld_str(sb, " OR ", 4);
|
||||||
@@ -165,7 +162,7 @@ where_clause *createWhere(const char *tbl, const char *col, e_where_op op)
|
|||||||
|
|
||||||
return clause;
|
return clause;
|
||||||
}
|
}
|
||||||
void compileWhere_sb(where_clause *clause, str_builder *sb)
|
void compileWhere_sb(str_builder *sb, where_clause *clause)
|
||||||
{
|
{
|
||||||
size_t idx;
|
size_t idx;
|
||||||
|
|
||||||
|
|||||||
@@ -50,12 +50,12 @@ struct where_clause_t {
|
|||||||
typedef struct where_clause_t where_clause;
|
typedef struct where_clause_t where_clause;
|
||||||
|
|
||||||
DLL_LOCAL
|
DLL_LOCAL
|
||||||
void do_compileWhereBuilder_sb(where_builder *wb, str_builder *sb, int free_wb);
|
void do_compileWhereBuilder_sb(str_builder *sb, where_builder *wb);
|
||||||
|
|
||||||
DLL_LOCAL
|
DLL_LOCAL
|
||||||
where_logic *createLogic(e_where_logic type, size_t initial_size);
|
where_logic *createLogic(e_where_logic type, size_t initial_size);
|
||||||
DLL_LOCAL
|
DLL_LOCAL
|
||||||
void compileLogic_sb(where_logic *logic, str_builder *sb);
|
void compileLogic_sb(str_builder *sb, where_logic *logic);
|
||||||
DLL_LOCAL
|
DLL_LOCAL
|
||||||
void freeLogic(where_logic **logic_ptr);
|
void freeLogic(where_logic **logic_ptr);
|
||||||
|
|
||||||
@@ -65,7 +65,7 @@ where_builder *appendLogicClause(where_builder *wb, where_builder *wb_clause);
|
|||||||
DLL_LOCAL
|
DLL_LOCAL
|
||||||
where_clause *createWhere(const char *tbl, const char *col, e_where_op op);
|
where_clause *createWhere(const char *tbl, const char *col, e_where_op op);
|
||||||
DLL_LOCAL
|
DLL_LOCAL
|
||||||
void compileWhere_sb(where_clause *clause, str_builder *sb);
|
void compileWhere_sb(str_builder *sb, where_clause *clause);
|
||||||
DLL_LOCAL
|
DLL_LOCAL
|
||||||
void freeWhere(where_clause **where_ptr);
|
void freeWhere(where_clause **where_ptr);
|
||||||
|
|
||||||
|
|||||||
19
src/strext.c
19
src/strext.c
@@ -184,6 +184,25 @@ int strbld_ensure_len(str_builder *sb, size_t len, int absolute)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int strbld_seek(str_builder *sb, size_t to, int zero)
|
||||||
|
{
|
||||||
|
if (to > sb->alloc) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (zero && to < sb->len) {
|
||||||
|
memset(sb->str + to, 0, sb->len - to);
|
||||||
|
}
|
||||||
|
|
||||||
|
sb->len = to;
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
size_t strbld_len(str_builder *sb)
|
||||||
|
{
|
||||||
|
return sb->len;
|
||||||
|
}
|
||||||
|
|
||||||
int strbld_str(str_builder *sb, const char *str, size_t len)
|
int strbld_str(str_builder *sb, const char *str, size_t len)
|
||||||
{
|
{
|
||||||
if (sb->fails > 0) {
|
if (sb->fails > 0) {
|
||||||
|
|||||||
@@ -26,6 +26,9 @@ int strbld_finalize_or_destroy(str_builder **sb, char **str, size_t *len);
|
|||||||
|
|
||||||
int strbld_ensure_len(str_builder *sb, size_t len, int absolute);
|
int strbld_ensure_len(str_builder *sb, size_t len, int absolute);
|
||||||
|
|
||||||
|
int strbld_seek(str_builder *sb, size_t to, int zero);
|
||||||
|
size_t strbld_len(str_builder *sb);
|
||||||
|
|
||||||
int strbld_str(str_builder *sb, const char *str, size_t len);
|
int strbld_str(str_builder *sb, const char *str, size_t len);
|
||||||
int strbld_char(str_builder *sb, const char c);
|
int strbld_char(str_builder *sb, const char c);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user