summaryrefslogtreecommitdiffstats
path: root/database/sqlite
diff options
context:
space:
mode:
Diffstat (limited to 'database/sqlite')
-rw-r--r--database/sqlite/sqlite.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/database/sqlite/sqlite.c b/database/sqlite/sqlite.c
index 2bc362b..beb0b8e 100644
--- a/database/sqlite/sqlite.c
+++ b/database/sqlite/sqlite.c
@@ -276,6 +276,10 @@ char *_build_value_string(eDBfieldMap *ptr) {
}
break;
+ case ft_SETNULL:
+ val = sqlite3_mprintf("%q", ptr->value);
+ break;
+
case ft_PASSWD:
case ft_STRING:
default:
@@ -298,8 +302,12 @@ char *_build_sqlpart(int btyp, eDBfieldMap *map) {
switch( btyp ) {
case btWHERE:
case btUPDATE:
- fsep = (btyp == btWHERE ? " AND " : ",");
- append_str(buf, "(", 8192);
+ if( btyp == btWHERE ) {
+ fsep = " AND ";
+ append_str(buf, "(", 8192);
+ } else {
+ fsep = ",";
+ }
for( ptr = map; ptr != NULL; ptr = ptr->next ) {
char *val = NULL;
@@ -322,7 +330,9 @@ char *_build_sqlpart(int btyp, eDBfieldMap *map) {
sqlite3_free(val);
first = 0;
}
- append_str(buf, ")", 8192);
+ if( btyp == btWHERE ) {
+ append_str(buf, ")", 8192);
+ }
break;
case btINSERT: // (field_name, field_name, field_name) VALUES ('val','val','val')