From 31507a81fff1da3460625fbc07107de931907a8e Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Sun, 30 May 2004 16:35:51 +0000 Subject: [PATCH] r9531: * db-postgresql/postgresl-sql.lisp: Avoid computing result-types lisp when nil result-types. Return only one value when field-types nil. --- ChangeLog | 5 +++++ db-postgresql/postgresql-sql.lisp | 31 ++++++++++++++++--------------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5d538c3..6eaaf80 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +30 May 2004 Kevin Rosenberg + * db-postgresql/postgresl-sql.lisp: Avoid computing + result-types lisp when nil result-types. Return only + one value when field-types nil. + 30 May 2004 Kevin Rosenberg * Version 2.11.4: MySQL 4.1 now passes all tests * sql/package.lisp: Add API for prepared statments. 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 -- 2.34.1