From cd5e9105458b573cef241cf59702604f45e004b5 Mon Sep 17 00:00:00 2001 From: Russ Tyndall Date: Wed, 7 Oct 2009 17:12:40 -0400 Subject: [PATCH] made returning column names work like it is supposed to in the postgresql-socket3 backend --- db-postgresql-socket3/sql.lisp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/db-postgresql-socket3/sql.lisp b/db-postgresql-socket3/sql.lisp index ad24ee6..1126162 100644 --- a/db-postgresql-socket3/sql.lisp +++ b/db-postgresql-socket3/sql.lisp @@ -184,20 +184,21 @@ nil (funcall (cl-postgres::field-interpreter cl-postgres::field) stream cl-postgres::size))))) - (values - (loop :while (cl-postgres:next-row) - :collect (loop :for field :across fields - :collect (cl-postgres:next-field field))) - (when *include-field-names* - (loop :for field :across fields - :collect (cl-postgres:field-name field)))))) + (let ((results (loop :while (cl-postgres:next-row) + :collect (loop :for field :across fields + :collect (cl-postgres:next-field field)))) + (col-names (when *include-field-names* + (loop :for field :across fields + :collect (cl-postgres:field-name field))))) + ;;multiple return values were not working here + (list results col-names)))) (defmethod database-query ((expression string) (database postgresql-socket3-database) result-types field-names) (let ((connection (database-connection database)) (cl-postgres:*sql-readtable* *sqlreader*)) (with-postgresql-handlers (database expression) (let ((*include-field-names* field-names)) - (cl-postgres:exec-query connection expression #'clsql-default-row-reader)) + (apply #'values (cl-postgres:exec-query connection expression #'clsql-default-row-reader))) ))) (defmethod database-execute-command -- 2.34.1