X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=db-postgresql%2Fpostgresql-sql.lisp;h=2d307c243f439db4848a38243618010cb718c159;hp=16d5d2fc94a15adeff80016f7abbed465b9d0465;hb=31507a81fff1da3460625fbc07107de931907a8e;hpb=635fd6df23f5cdc0247ec93dfdb04e1be670412e diff --git a/db-postgresql/postgresql-sql.lisp b/db-postgresql/postgresql-sql.lisp index 16d5d2f..2d307c2 100644 --- a/db-postgresql/postgresql-sql.lisp +++ b/db-postgresql/postgresql-sql.lisp @@ -165,21 +165,22 @@ nil) (#.pgsql-exec-status-type#tuples-ok (let ((num-fields (PQnfields result))) - (setq result-types - (canonicalize-types result-types num-fields - result)) - (values - (loop for tuple-index from 0 below (PQntuples result) - collect - (loop for i from 0 below num-fields - collect - (if (zerop (PQgetisnull result tuple-index i)) - (convert-raw-field - (PQgetvalue result tuple-index i) - result-types i) - nil))) - (when field-names - (result-field-names num-fields result))))) + (when result-types + (setq result-types + (canonicalize-types result-types num-fields + result))) + (let ((res (loop for tuple-index from 0 below (PQntuples result) + collect + (loop for i from 0 below num-fields + collect + (if (zerop (PQgetisnull result tuple-index i)) + (convert-raw-field + (PQgetvalue result tuple-index i) + result-types i) + nil))))) + (if field-names + (values res (result-field-names num-fields result)) + res)))) (t (error 'sql-database-data-error :database database