r9531: * db-postgresql/postgresl-sql.lisp: Avoid computing
authorKevin M. Rosenberg <kevin@rosenberg.net>
Sun, 30 May 2004 16:35:51 +0000 (16:35 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Sun, 30 May 2004 16:35:51 +0000 (16:35 +0000)
        result-types lisp when nil result-types. Return only
        one value when field-types nil.

ChangeLog
db-postgresql/postgresql-sql.lisp

index 5d538c30f1f21207c3dc27c4c74120001e0ae780..6eaaf80acb03e3e8a757ae0205e2e4206e26353b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+30 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
+       * 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 <kevin@rosenberg.net>
        * Version 2.11.4: MySQL 4.1 now passes all tests
        * sql/package.lisp: Add API for prepared statments.
index 16d5d2fc94a15adeff80016f7abbed465b9d0465..2d307c243f439db4848a38243618010cb718c159 100644 (file)
                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