r1653: More field-type updates
authorKevin M. Rosenberg <kevin@rosenberg.net>
Sun, 24 Mar 2002 22:25:51 +0000 (22:25 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Sun, 24 Mar 2002 22:25:51 +0000 (22:25 +0000)
ChangeLog
interfaces/mysql/mysql-sql.cl
interfaces/postgresql-socket/postgresql-socket-sql.cl
interfaces/postgresql/postgresql-api.cl
interfaces/postgresql/postgresql-sql.cl
sql/sql.cl
test-clsql.cl

index 823debd170e2201116c777e5827caa07655cf6df..0cee6a84ac1e8cc3d759ae55a5b09d72cef72a0f 100644 (file)
--- 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)
        
index ad22f9d79b8854b3bcb38974d27a18a078480227..8d8f243cfb9199c25b6cc443ac786706a96c53fa 100644 (file)
@@ -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
 (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))
                         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
index 2eb6e7c8fa477ec2ab7bafd2dba7f377a81b4b51..b98836f93758826948993560f18e445d86c09311 100644 (file)
@@ -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
 (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
index a29a54690b8bdb02aae131caadcd9269c8bc8ff9..36b093f5d0102aae8e29c22baa0f54d469210055 100644 (file)
@@ -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
    (tup-num :int)
    (field-num :int))
   :module "postgresql"
-  :returning :cstring)
+  :returning (* :unsigned-char))
 
 (declaim (inline PQgetlength))
 (uffi:def-function ("PQgetlength" PQgetlength)
index 4d473a02c428328622140ce4ce8e93e3c7d8a67a..a1dfdd7081f863c60625ac4adf7226ad68568161 100644 (file)
@@ -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
                      (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
 (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))
           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
index c614f7e1a8623e6d1500f6217db58cb84cc01576..1c02d6651f93482b082de77af99cdfb7762c341c 100644 (file)
@@ -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
index 9cc29299dd21c7dfc8e79154157b1917c39230b6..e0478d0ef1bb4f18754d33c8ca1d60c31536481e 100644 (file)
@@ -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
 ;;;;
   (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)))
+  )