+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.
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