From b0ddc983efc3ad7555fe4b77291a7e7bfcfc384e Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Sat, 19 Apr 2008 23:48:07 -0500 Subject: [PATCH] more refactoring --- extra/db/postgresql/lib/lib.factor | 3 +-- extra/db/postgresql/postgresql.factor | 8 +++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/extra/db/postgresql/lib/lib.factor b/extra/db/postgresql/lib/lib.factor index bb4c6872fb..56bfc29be8 100755 --- a/extra/db/postgresql/lib/lib.factor +++ b/extra/db/postgresql/lib/lib.factor @@ -44,7 +44,7 @@ M: postgresql-result-null summary ( obj -- str ) : do-postgresql-statement ( statement -- res ) db get handle>> swap sql>> PQexec dup postgresql-result-ok? [ - dup postgresql-result-error-message swap PQclear throw + [ postgresql-result-error-message ] [ PQclear ] bi throw ] unless ; : type>oid ( symbol -- n ) @@ -165,4 +165,3 @@ M: postgresql-malloc-destructor dispose ( obj -- ) dup [ bytes>object ] when ] } [ no-sql-type ] } case ; - ! PQgetlength PQgetisnull diff --git a/extra/db/postgresql/postgresql.factor b/extra/db/postgresql/postgresql.factor index f13bceddd3..bcf71ea95f 100755 --- a/extra/db/postgresql/postgresql.factor +++ b/extra/db/postgresql/postgresql.factor @@ -53,12 +53,15 @@ M: postgresql-result-set #rows ( result-set -- n ) M: postgresql-result-set #columns ( result-set -- n ) handle>> PQnfields ; +: result-handle-n ( result-set -- handle n ) + [ handle>> ] [ n>> ] bi ; + M: postgresql-result-set row-column ( result-set column -- obj ) - >r [ handle>> ] [ n>> ] bi r> pq-get-string ; + >r result-handle-n r> pq-get-string ; M: postgresql-result-set row-column-typed ( result-set column -- obj ) dup pick out-params>> nth type>> - >r >r [ handle>> ] [ n>> ] bi r> r> postgresql-column-typed ; + >r >r result-handle-n r> r> postgresql-column-typed ; M: postgresql-statement query-results ( query -- result-set ) dup bind-params>> [ @@ -234,7 +237,6 @@ M: postgresql-db ( class -- statement ) M: postgresql-db ( tuple class -- statement ) [ - ! tuple columns table "select " 0% over [ ", " 0% ] [ dup column-name>> 0% 2, ] interleave