src/evsql/query.c
branchnew-evsql
changeset 48 8b019d191353
parent 45 424ce5ab82fd
--- a/src/evsql/query.c	Sat Nov 29 00:43:35 2008 +0200
+++ b/src/evsql/query.c	Sat Nov 29 01:12:00 2008 +0200
@@ -84,8 +84,8 @@
 
     // transform
     for (param = params->list, idx = 0; param->info.type; param++, idx++) {
-        // `set for NULLs, otherwise not
-        query->params.types[idx] = param->bytes ? 0 : EVSQL_PQ_ARBITRARY_TYPE_OID;
+        // set for NULLs, otherwise not
+        query->params.types[idx] = (param->bytes || param->flags.has_value) ? 0 : EVSQL_PQ_ARBITRARY_TYPE_OID;
 
         // scalar values
         query->params.item_vals[idx] = param->value;
@@ -96,9 +96,9 @@
 
         // lengths
         query->params.lengths[idx] = param->length;
-
-        // formats, binary if length is nonzero, but text for NULLs
-        query->params.formats[idx] = param->length && param->bytes ? 1 : 0;
+        
+        // XXX: this assumes that format is FMT_BINARY...
+        query->params.formats[idx] = param->info.format;
     }
 
     // execute it