diff options
author | David Sommerseth <dazo@users.sourceforge.net> | 2008-12-26 19:49:21 +0100 |
---|---|---|
committer | David Sommerseth <dazo@users.sourceforge.net> | 2008-12-26 19:49:21 +0100 |
commit | 7e6b7842a3f258963a231b7d10fd4ed83855a54d (patch) | |
tree | 5356c8a7d16bcbf1c4a059785f409fe23ff67a4c | |
parent | 80b068028330d7dd55259652e3d0b08383d72286 (diff) | |
download | eurephia-7e6b7842a3f258963a231b7d10fd4ed83855a54d.tar.gz eurephia-7e6b7842a3f258963a231b7d10fd4ed83855a54d.tar.xz eurephia-7e6b7842a3f258963a231b7d10fd4ed83855a54d.zip |
sqlite3: Make sqlite_query_mapped(...) work with empty WHERE clause
-rw-r--r-- | database/sqlite/sqlite.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/database/sqlite/sqlite.c b/database/sqlite/sqlite.c index 1e8e265..1e79fb5 100644 --- a/database/sqlite/sqlite.c +++ b/database/sqlite/sqlite.c @@ -343,7 +343,11 @@ char *_build_sqlpart(int btyp, eDBfieldMap *map) { first = 0; } if( btyp == btWHERE ) { - append_str(buf, ")", 8192); + if( (strlen_nullsafe(buf) > 1) ) { + append_str(buf, ")", 8192); + } else { + *buf = '\0'; + } } break; @@ -403,9 +407,12 @@ dbresult *sqlite_query_mapped(eurephiaCTX *ctx, SQLqueryType qType, const char * if( whereMap != NULL ) { tmp1 = _build_sqlpart(btWHERE, whereMap); if( sortkeys == NULL ) { - res = sqlite_query(ctx, "%s WHERE %s", sqlstub, tmp1); + res = sqlite_query(ctx, "%s %s %s", + sqlstub, (strlen_nullsafe(tmp1) > 0 ? "WHERE" : ""), tmp1); } else { - res = sqlite_query(ctx, "%s WHERE %s ORDER BY %s", sqlstub, tmp1, sortkeys); + res = sqlite_query(ctx, "%s %s %s ORDER BY %s", + sqlstub, (strlen_nullsafe(tmp1) > 0 ? "WHERE" : ""), tmp1, + sortkeys); } free_nullsafe(tmp1); } |