From e596bda48686fd7df4fe7cb2740cd2144a22fb79 Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Sun, 24 Mar 2002 22:25:51 +0000 Subject: [PATCH] r1653: More field-type updates --- ChangeLog | 4 ++++ interfaces/mysql/mysql-sql.cl | 6 +++--- interfaces/postgresql-socket/postgresql-socket-sql.cl | 4 ++-- interfaces/postgresql/postgresql-api.cl | 4 ++-- interfaces/postgresql/postgresql-sql.cl | 8 ++++---- sql/sql.cl | 6 +++--- test-clsql.cl | 10 +++++++--- 7 files changed, 25 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index 823debd..0cee6a8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,6 +8,10 @@ * Updated test-clsql.cl to use automated testing with a config file + + * Changed return types of field accessors from cstring to (* :unsigned-char). + This prepares for being able to use specified type conversions when taking + field data into lisp. 23 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net) diff --git a/interfaces/mysql/mysql-sql.cl b/interfaces/mysql/mysql-sql.cl index ad22f9d..8d8f243 100644 --- a/interfaces/mysql/mysql-sql.cl +++ b/interfaces/mysql/mysql-sql.cl @@ -8,7 +8,7 @@ ;;;; Original code by Pierre R. Mai ;;;; Date Started: Feb 2002 ;;;; -;;;; $Id: mysql-sql.cl,v 1.5 2002/03/24 18:39:32 kevin Exp $ +;;;; $Id: mysql-sql.cl,v 1.6 2002/03/24 22:25:51 kevin Exp $ ;;;; ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; and Copyright (c) 1999-2001 by Pierre R. Mai @@ -101,7 +101,7 @@ (defstruct mysql-result-set (res-ptr (uffi:make-null-pointer 'mysql-mysql-res) :type mysql-mysql-res-ptr-def) - (field-types nil :type cons) + (field-types nil) (full-set nil :type boolean)) (defmethod database-dump-result-set (result-set (database mysql-database)) @@ -150,7 +150,7 @@ collect (loop for i from 0 below (mysql-num-fields res-ptr) collect - (uffi:convert-from-cstring + (uffi:convert-from-foreign-string (uffi:deref-array row 'mysql-row i)))) (mysql-free-result res-ptr)) (error 'clsql-sql-error diff --git a/interfaces/postgresql-socket/postgresql-socket-sql.cl b/interfaces/postgresql-socket/postgresql-socket-sql.cl index 2eb6e7c..b98836f 100644 --- a/interfaces/postgresql-socket/postgresql-socket-sql.cl +++ b/interfaces/postgresql-socket/postgresql-socket-sql.cl @@ -8,7 +8,7 @@ ;;;; Original code by Pierre R. Mai ;;;; Date Started: Feb 2002 ;;;; -;;;; $Id: postgresql-socket-sql.cl,v 1.3 2002/03/24 18:39:32 kevin Exp $ +;;;; $Id: postgresql-socket-sql.cl,v 1.4 2002/03/24 22:25:51 kevin Exp $ ;;;; ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; and Copyright (c) 1999-2001 by Pierre R. Mai @@ -172,7 +172,7 @@ (defstruct postgresql-socket-result-set (done nil) (cursor nil) - (field-types nil :type cons)) + (field-types nil)) (defmethod database-query-result-set (expression (database postgresql-socket-database) &key full-set field-types diff --git a/interfaces/postgresql/postgresql-api.cl b/interfaces/postgresql/postgresql-api.cl index a29a546..36b093f 100644 --- a/interfaces/postgresql/postgresql-api.cl +++ b/interfaces/postgresql/postgresql-api.cl @@ -8,7 +8,7 @@ ;;;; Original code by Pierre R. Mai ;;;; Date Started: Feb 2002 ;;;; -;;;; $Id: postgresql-api.cl,v 1.1 2002/03/23 17:10:48 kevin Exp $ +;;;; $Id: postgresql-api.cl,v 1.2 2002/03/24 22:25:51 kevin Exp $ ;;;; ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; and Copyright (c) 1999-2001 by Pierre R. Mai @@ -165,7 +165,7 @@ (tup-num :int) (field-num :int)) :module "postgresql" - :returning :cstring) + :returning (* :unsigned-char)) (declaim (inline PQgetlength)) (uffi:def-function ("PQgetlength" PQgetlength) diff --git a/interfaces/postgresql/postgresql-sql.cl b/interfaces/postgresql/postgresql-sql.cl index 4d473a0..a1dfdd7 100644 --- a/interfaces/postgresql/postgresql-sql.cl +++ b/interfaces/postgresql/postgresql-sql.cl @@ -8,7 +8,7 @@ ;;;; Original code by Pierre R. Mai ;;;; Date Started: Feb 2002 ;;;; -;;;; $Id: postgresql-sql.cl,v 1.5 2002/03/24 18:39:32 kevin Exp $ +;;;; $Id: postgresql-sql.cl,v 1.6 2002/03/24 22:25:51 kevin Exp $ ;;;; ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; and Copyright (c) 1999-2001 by Pierre R. Mai @@ -120,7 +120,7 @@ (loop for i from 0 below (PQnfields result) collect (if (zerop (PQgetisnull result tuple-index i)) - (uffi:convert-from-cstring + (uffi:convert-from-foreign-string (PQgetvalue result tuple-index i)) nil)))) (t @@ -164,7 +164,7 @@ (defstruct postgresql-result-set (res-ptr (uffi:make-null-pointer 'pgsql-result) :type pgsql-result-def) - (field-types nil :type cons) + (field-types nil) (num-tuples 0 :type integer) (num-fields 0 :type integer) (tuple-index 0 :type integer)) @@ -227,7 +227,7 @@ do (setf (car rest) (if (zerop (PQgetisnull result tuple-index i)) - (uffi:convert-from-cstring + (uffi:convert-from-foreign-string (PQgetvalue result tuple-index i)) nil)) finally diff --git a/sql/sql.cl b/sql/sql.cl index c614f7e..1c02d66 100644 --- a/sql/sql.cl +++ b/sql/sql.cl @@ -8,7 +8,7 @@ ;;;; Original code by Pierre R. Mai ;;;; Date Started: Feb 2002 ;;;; -;;;; $Id: sql.cl,v 1.4 2002/03/24 18:08:27 kevin Exp $ +;;;; $Id: sql.cl,v 1.5 2002/03/24 22:25:51 kevin Exp $ ;;;; ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; and Copyright (c) 1999-2001 by Pierre R. Mai @@ -423,8 +423,8 @@ specified in output-type-spec and returned like in MAP." (defun map-query-to-simple (output-type-spec function query-expression database field-types) (multiple-value-bind (result-set columns rows) - (database-query-result-set query-expression database :full-set t : - field-types field-types) + (database-query-result-set query-expression database :full-set t + :field-types field-types) (when result-set (unwind-protect (if rows diff --git a/test-clsql.cl b/test-clsql.cl index 9cc2929..e0478d0 100644 --- a/test-clsql.cl +++ b/test-clsql.cl @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Mar 2002 ;;;; -;;;; $Id: test-clsql.cl,v 1.3 2002/03/24 18:31:05 kevin Exp $ +;;;; $Id: test-clsql.cl,v 1.4 2002/03/24 22:25:51 kevin Exp $ ;;;; ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; @@ -44,8 +44,12 @@ (dolist (elem config) (let ((type (car elem)) (spec (cadr elem))) - (clsql-test-table spec type)))) - + #-allegro + (unless (eq type :aodbc) + (clsql-test-table spec type)) + #+allegro + (clsql-test-table spec type))) + ) -- 2.34.1