summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Sommerseth <dazo@users.sourceforge.net>2008-12-26 19:49:21 +0100
committerDavid Sommerseth <dazo@users.sourceforge.net>2008-12-26 19:49:21 +0100
commit7e6b7842a3f258963a231b7d10fd4ed83855a54d (patch)
tree5356c8a7d16bcbf1c4a059785f409fe23ff67a4c
parent80b068028330d7dd55259652e3d0b08383d72286 (diff)
downloadeurephia-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.c13
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);
}