r8885: pre 2.3.4
authorKevin M. Rosenberg <kevin@rosenberg.net>
Thu, 8 Apr 2004 23:28:19 +0000 (23:28 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Thu, 8 Apr 2004 23:28:19 +0000 (23:28 +0000)
24 files changed:
ChangeLog
base/basic-sql.lisp
base/db-interface.lisp
classic-tests/tables.lisp
classic-tests/tests.lisp
clsql-classic.asd
clsql-tests.asd
clsql.asd
db-aodbc/aodbc-sql.lisp
db-mysql/mysql-sql.lisp
db-oracle/oracle-constants.lisp
db-oracle/oracle-sql.lisp
db-oracle/oracle.lisp
db-postgresql-socket/postgresql-socket-api.lisp
db-postgresql-socket/postgresql-socket-sql.lisp
db-postgresql/postgresql-api.lisp
db-postgresql/postgresql-loader.lisp
db-postgresql/postgresql-sql.lisp
db-sqlite/sqlite-api-clisp.lisp
db-sqlite/sqlite-sql.lisp
debian/changelog
doc/ref_clsql.xml
sql/basic-cmds.lisp [deleted file]
sql/sql.lisp

index 30f84de73fbabe09437df433587c55683bf2d1ea..af27bf2629bfc89e3d14fd0dce5c9b5db5b21637 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+08 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
+       * Version 2.3.4 released
+       * db-mysql/mysql-sql.lisp: Fix array dereferencing
+       * classic-tests/tests.lisp: Fix package name of
+       number-to-sql-string. 
+       * clsql.asd/clsql-tests.asd: Add support for asdf:test-op
+       * Finish renaming of :types keyword to :result-types for
+       greater CommonSQL compatibility, including documentation
+       * sql/basic-cmds.lisp: Remove obsolete file
+       * All tests for clsql-classic now finish correctly on
+       Allegro, Lispworks, CMUCL, SBCL
+       
 08 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
        * Version 2.3.3 released
        * Fixes for sequences on mysql and sqlite [Marcus Pearce]
index 4610c4208793c21cf3e85d57ddb8564b4392880f..61a932e5ad02df135fc3e6c0687c4c6c962ca0d8 100644 (file)
@@ -61,7 +61,7 @@ pair."))
 
 
 (defmacro do-query (((&rest args) query-expression
-                    &key (database '*default-database*) (types nil))
+                    &key (database '*default-database*) (result-types nil))
                    &body body)
   "Repeatedly executes BODY within a binding of ARGS on the attributes
 of each record resulting from QUERY. The return value is determined by
@@ -74,7 +74,7 @@ the result of executing BODY. The default value of DATABASE is
     `(let ((,db ,database))
       (multiple-value-bind (,result-set ,columns)
           (database-query-result-set ,query-expression ,db
-                                     :full-set nil :types ,types)
+                                     :full-set nil :result-types ,result-types)
         (when ,result-set
           (unwind-protect
                (do ((,row (make-list ,columns)))
@@ -86,7 +86,7 @@ the result of executing BODY. The default value of DATABASE is
 
 (defun map-query (output-type-spec function query-expression
                  &key (database *default-database*)
-                 (types nil))
+                 (result-types nil))
   "Map the function over all tuples that are returned by the query in
 query-expression.  The results of the function are collected as
 specified in output-type-spec and returned like in MAP."
@@ -94,21 +94,21 @@ specified in output-type-spec and returned like in MAP."
               `(if (atom ,type) ,type (car ,type))))
     (case (type-specifier-atom output-type-spec)
       ((nil) 
-       (map-query-for-effect function query-expression database types))
+       (map-query-for-effect function query-expression database result-types))
       (list 
-       (map-query-to-list function query-expression database types))
+       (map-query-to-list function query-expression database result-types))
       ((simple-vector simple-string vector string array simple-array
        bit-vector simple-bit-vector base-string
        simple-base-string)
-       (map-query-to-simple output-type-spec function query-expression database types))
+       (map-query-to-simple output-type-spec function query-expression database result-types))
       (t
        (funcall #'map-query (cmucl-compat:result-type-or-lose output-type-spec t)
-              function query-expression :database database :types types)))))
+              function query-expression :database database :result-types result-types)))))
 
-(defun map-query-for-effect (function query-expression database types)
+(defun map-query-for-effect (function query-expression database result-types)
   (multiple-value-bind (result-set columns)
       (database-query-result-set query-expression database :full-set nil
-                                :types types)
+                                :result-types result-types)
     (when result-set
       (unwind-protect
           (do ((row (make-list columns)))
@@ -117,10 +117,10 @@ specified in output-type-spec and returned like in MAP."
             (apply function row))
        (database-dump-result-set result-set database)))))
                     
-(defun map-query-to-list (function query-expression database types)
+(defun map-query-to-list (function query-expression database result-types)
   (multiple-value-bind (result-set columns)
       (database-query-result-set query-expression database :full-set nil
-                                :types types)
+                                :result-types result-types)
     (when result-set
       (unwind-protect
           (let ((result (list nil)))
@@ -132,10 +132,10 @@ specified in output-type-spec and returned like in MAP."
        (database-dump-result-set result-set database)))))
 
 
-(defun map-query-to-simple (output-type-spec function query-expression database types)
+(defun map-query-to-simple (output-type-spec function query-expression database result-types)
   (multiple-value-bind (result-set columns rows)
       (database-query-result-set query-expression database :full-set t
-                                :types types)
+                                :result-types result-types)
     (when result-set
       (unwind-protect
           (if rows
index 93e39734085ef66d45fc529d8b356bd9735a7421..2904f3d46365d877e8c6dc55357b1ea59e6e0641 100644 (file)
@@ -56,12 +56,12 @@ was called with the connection-spec."))
           (signal-nodb-error database))
   (:documentation "Internal generic implementation of disconnect."))
 
-(defgeneric database-query (query-expression database types)
-  (:method (query-expression (database closed-database) types)
-          (declare (ignore query-expression types))
+(defgeneric database-query (query-expression database result-types)
+  (:method (query-expression (database closed-database) result-types)
+          (declare (ignore query-expression result-types))
           (signal-closed-database-error database))  
-  (:method (query-expression (database t) types)
-          (declare (ignore query-expression types))
+  (:method (query-expression (database t) result-types)
+          (declare (ignore query-expression result-types))
           (signal-nodb-error database))
   (:documentation "Internal generic implementation of query."))
 
@@ -77,13 +77,13 @@ was called with the connection-spec."))
 
 ;;; Mapping and iteration
 (defgeneric database-query-result-set
-    (query-expression database &key full-set types)
-  (:method (query-expression (database closed-database) &key full-set types)
-          (declare (ignore query-expression full-set types))
+    (query-expression database &key full-set result-types)
+  (:method (query-expression (database closed-database) &key full-set result-types)
+          (declare (ignore query-expression full-set result-types))
           (signal-closed-database-error database)
           (values nil nil nil))
-  (:method (query-expression (database t) &key full-set types)
-          (declare (ignore query-expression full-set types))
+  (:method (query-expression (database t) &key full-set result-types)
+          (declare (ignore query-expression full-set result-types))
           (signal-nodb-error database)
           (values nil nil nil))
   (:documentation
index 48fe2951fe1a2fcd8ba9d78b05b4c210e1370193..44d7ad279fa79a6d5fd1ed231ce28d39391cffc5 100644 (file)
       (unwind-protect
           (progn
             (create-test-table db)
-            (dolist (row (query "select * from test_clsql" :database db :types :auto))
+            (dolist (row (query "select * from test_clsql" :database db :result-types :auto))
               (test-table-row row :auto type))
-            (dolist (row (query "select * from test_clsql" :database db :types nil))
+            (dolist (row (query "select * from test_clsql" :database db :result-types nil))
               (test-table-row row nil type))
             (loop for row across (map-query 'vector #'list "select * from test_clsql" 
-                                            :database db :types :auto)
+                                            :database db :result-types :auto)
                   do (test-table-row row :auto type))
             (loop for row across (map-query 'vector #'list "select * from test_clsql" 
-                                            :database db :types nil)
+                                            :database db :result-types nil)
                   do (test-table-row row nil type))
             (loop for row in (map-query 'list #'list "select * from test_clsql" 
-                                        :database db :types nil)
+                                        :database db :result-types nil)
                   do (test-table-row row nil type))
             (loop for row in (map-query 'list #'list "select * from test_clsql" 
-                                        :database db :types :auto)
+                                        :database db :result-types :auto)
                 do (test-table-row row :auto type))
             (test (map-query nil #'list "select * from test_clsql" 
-                             :database db :types :auto)
+                             :database db :result-types :auto)
                   nil
                   :fail-info "Expected NIL result from map-query nil")
             (do-query ((int float bigint str) "select * from test_clsql")
               (test-table-row (list int float bigint str) nil type))
-            (do-query ((int float bigint str) "select * from test_clsql" :types :auto)
+            (do-query ((int float bigint str) "select * from test_clsql" :result-types :auto)
               (test-table-row (list int float bigint str) :auto type))
             (drop-test-table db)
             )
                   i (clsql:number-to-sql-string (sqrt i))
                   (clsql:number-to-sql-string (sqrt i)))
           db))
-       (let ((res (clsql-mysql::database-query-result-set "select * from test_clsql" db :full-set t :types nil)))
+       (let ((res (clsql-mysql::database-query-result-set "select * from test_clsql" db :full-set t :result-types nil)))
          (setq result (mysql:mysql-num-rows
                        (clsql-mysql::mysql-result-set-res-ptr res)))
          (clsql-mysql::database-dump-result-set res db))
          (unwind-protect
           (progn
             (create-test-table db)
-            (dolist (row (query "select * from test_clsql" :database db :types :auto))
+            (dolist (row (query "select * from test_clsql" :database db :result-types :auto))
               (test-table-row row :auto type))
-            (dolist (row (query "select * from test_clsql" :database db :types nil))
+            (dolist (row (query "select * from test_clsql" :database db :result-types nil))
               (test-table-row row nil type))
             (loop for row across (map-query 'vector #'list "select * from test_clsql" 
-                                            :database db :types :auto)
+                                            :database db :result-types :auto)
                   do (test-table-row row :auto type))
             (loop for row across (map-query 'vector #'list "select * from test_clsql" 
-                                            :database db :types nil)
+                                            :database db :result-types nil)
                   do (test-table-row row nil type))
             (loop for row in (map-query 'list #'list "select * from test_clsql" 
-                                        :database db :types nil)
+                                        :database db :result-types nil)
                   do (test-table-row row nil type))
             (loop for row in (map-query 'list #'list "select * from test_clsql" 
-                                        :database db :types :auto)
+                                        :database db :result-types :auto)
                 do (test-table-row row :auto type))
             (test (map-query nil #'list "select * from test_clsql" 
-                             :database db :types :auto)
+                             :database db :result-types :auto)
                   nil
                   :fail-info "Expected NIL result from map-query nil")
             (do-query ((int float bigint str) "select * from test_clsql")
               (test-table-row (list int float bigint str) nil type))
-            (do-query ((int float bigint str) "select * from test_clsql" :types :auto)
+            (do-query ((int float bigint str) "select * from test_clsql" :result-types :auto)
               (test-table-row (list int float bigint str) :auto type))
             (drop-test-table db)
             )
index 2087617a3428f3fbf279408930f3528b9c3dfcc6..3faed38017313db57c3dddf43e140029ecfd4733 100644 (file)
       (unwind-protect
           (progn
             (create-test-table db)
-            (dolist (row (query "select * from test_clsql" :database db :types :auto))
+            (dolist (row (query "select * from test_clsql" :database db :result-types :auto))
               (test-table-row row :auto type))
-            (dolist (row (query "select * from test_clsql" :database db :types nil))
+            (dolist (row (query "select * from test_clsql" :database db :result-types nil))
               (test-table-row row nil type))
             (loop for row across (map-query 'vector #'list "select * from test_clsql" 
-                                            :database db :types :auto)
+                                            :database db :result-types :auto)
                   do (test-table-row row :auto type))
             (loop for row across (map-query 'vector #'list "select * from test_clsql" 
-                                            :database db :types nil)
+                                            :database db :result-types nil)
                   do (test-table-row row nil type))
             (loop for row in (map-query 'list #'list "select * from test_clsql" 
-                                        :database db :types nil)
+                                        :database db :result-types nil)
                   do (test-table-row row nil type))
             (loop for row in (map-query 'list #'list "select * from test_clsql" 
-                                        :database db :types :auto)
+                                        :database db :result-types :auto)
                 do (test-table-row row :auto type))
             (test (map-query nil #'list "select * from test_clsql" 
-                             :database db :types :auto)
+                             :database db :result-types :auto)
                   nil
                   :fail-info "Expected NIL result from map-query nil")
             (do-query ((int float bigint str) "select * from test_clsql")
               (test-table-row (list int float bigint str) nil type))
-            (do-query ((int float bigint str) "select * from test_clsql" :types :auto)
+            (do-query ((int float bigint str) "select * from test_clsql" :result-types :auto)
               (test-table-row (list int float bigint str) :auto type))
             (drop-test-table db)
             )
       (unwind-protect
           (progn
             (create-test-table db)
-            (dolist (row (query "select * from test_clsql" :database db :types nil))
+            (dolist (row (query "select * from test_clsql" :database db :result-types nil))
               (test-table-row row nil type))
             (loop for row across (map-query 'vector #'list "select * from test_clsql" 
-                                            :database db :types nil)
+                                            :database db :result-types nil)
                   do (test-table-row row nil type))
             (loop for row in (map-query 'list #'list "select * from test_clsql" 
-                                        :database db :types nil)
+                                        :database db :result-types nil)
                   do (test-table-row row nil type))
 
             (do-query ((int float bigint str) "select * from test_clsql")
        (dotimes (i 10)
          (clsql-mysql::database-execute-command
           (format nil "INSERT INTO test_clsql VALUES (~d,~d,'~a')"
-                  i (clsql:number-to-sql-string (sqrt i))
-                  (clsql:number-to-sql-string (sqrt i)))
+                  i (clsql-base:number-to-sql-string (sqrt i))
+                  (clsql-base:number-to-sql-string (sqrt i)))
           db))
-       (let ((res (clsql-mysql::database-query-result-set "select * from test_clsql" db :full-set t :types nil)))
+       (let ((res (clsql-mysql::database-query-result-set "select * from test_clsql" db :full-set t :result-types nil)))
          (test (mysql:mysql-num-rows
                 (clsql-mysql::mysql-result-set-res-ptr res))
                10
       (clsql:execute-command
        (format nil "INSERT INTO test_clsql VALUES (~a,~a,~a,'~a')"
               test-int
-              (number-to-sql-string test-flt)
+              (clsql-base:number-to-sql-string test-flt)
               (transform-bigint-1 test-int)
-              (number-to-sql-string test-flt)
+              (clsql-base:number-to-sql-string test-flt)
               )
        :database db))))
 
   (clsql:execute-command "DROP TABLE test_clsql" :database db))
 
 (defun run-tests ()
-    (let ((specs (read-specs)))
-      (unless specs
-       (warn "Not running test because test configuration file is missing")
-       (return-from run-tests :skipped))
-      (with-tests (:name "CLSQL")
-       (mysql-low-level specs)
-       (mysql-table-test specs)
-       (pgsql-table-test specs)
-       (pgsql-socket-table-test specs)
-       (aodbc-table-test specs)
-       (sqlite-table-test specs)
+  (let ((specs (read-specs)))
+    (unless specs
+      (warn "Not running test because test configuration file is missing")
+      (return-from run-tests :skipped))
+    (with-tests (:name "CLSQL")
+      (mysql-low-level specs)
+      (mysql-table-test specs)
+      (pgsql-table-test specs)
+      (pgsql-socket-table-test specs)
+      (aodbc-table-test specs)
+      (sqlite-table-test specs)
       ))
-    t)
-
+  t)
index d10438812966b761504e5ab0a9d27e7afd385484..a700cfd3b33143e388a253a1183d753ce0add7bf 100644 (file)
@@ -38,6 +38,6 @@
             (:file "functional" :depends-on ("sql"))))))
 
 #+(or allegro lispworks cmu sbcl openmcl mcl scl)
-(defmethod perform ((o test-op) (c (eql (find-system :clsql-classic))))
-  (oos 'load-op 'clsql-classic-tests)
-  (oos 'test-op 'clsql-classic-tests))
+(defmethod perform ((o test-op) (c (eql (find-system 'clsql-classic))))
+  (operate 'load-op 'clsql-classic-tests)
+  (operate 'test-op 'clsql-classic-tests))
index d48b25eb4917400193d0ebc788be58acecd79f29..7a7d6d9b6da392e320c9f469a68ebba098e334cb 100644 (file)
@@ -2,10 +2,10 @@
 ;;;; *************************************************************************
 ;;;; FILE IDENTIFICATION
 ;;;;
-;;;; File:    clsql-tests.asd
-;;;; Author:  Marcus Pearce <m.t.pearce@city.ac.uk>
-;;;; Created: 30/03/2004
-;;;; Updated: <04/04/2004 12:34:41 marcusp>
+;;;; File:     clsql-tests.asd
+;;;; Authors:  Marcus Pearce <m.t.pearce@city.ac.uk> and Kevin Rosenberg 
+;;;; Created:  30/03/2004
+;;;; Updated:  $Id$
 ;;;;
 ;;;; $Id$
 ;;;;
 ;;;; ======================================================================
 
 (in-package #:cl-user)
+(defpackage #:clsql-classic-tests-system (:use #:asdf #:cl))
+(in-package #:clsql-classic-tests-system)
 
-(asdf:defsystem clsql-tests
+(defsystem clsql-tests
     :name "CLSQL Tests"
     :author ""
     :maintainer ""
                           (:file "test-ooddl")
                           (:file "test-oodml")
                           (:file "test-syntax")))))
+
+(defmethod perform ((o test-op) (c (eql (find-system 'clsql-tests))))
+  (error "Automated performing of test-op is not yet supported.")
+  #+ignore
+  (unless (funcall (intern (symbol-name '#:run-tests)
+                          (find-package '#:clsql-tests)))
+    (error "test-op failed")))
index f74e884b009bea3b7a8fb927f83794bee750a226..f7c9d366971c0e6bdabd6f73793b3fe15f15cc3b 100644 (file)
--- a/clsql.asd
+++ b/clsql.asd
 ;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
 ;;;; *************************************************************************
 
-(asdf:defsystem #:clsql
+(in-package #:cl-user)
+(defpackage #:clsql-system (:use #:asdf #:cl))
+(in-package #:clsql-system)
+
+(defsystem #:clsql
     :name "CLSQL"
     :author ""
     :maintainer ""
@@ -50,3 +54,7 @@ a functional and an object oriented interface."
                                    (:file "objects" :depends-on ("metaclasses")))
                       :depends-on (:functional))))))
      
+
+(defmethod perform ((o test-op) (c (eql (find-system 'clsql))))
+  (operate 'load-op 'clsql-tests)
+  (operate 'test-op 'clsql-tests))
index 56472113b5d34f7f01c9784c07a38717e627988d..24a6e47ea34b2fd3d403d0c60e5fd49c98696fb6 100644 (file)
@@ -16,9 +16,7 @@
 ;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
 ;;;; *************************************************************************
 
-(declaim (optimize (debug 3) (speed 3) (safety 1) (compilation-speed 0)))
-(in-package :clsql-aodbc)
-
+(in-package #:clsql-aodbc)
 
 ;; interface foreign library loading routines
 (defmethod clsql-base-sys:database-type-library-loaded ((database-type (eql :aodbc)))
   (setf (database-aodbc-conn database) nil)
   t)
 
-(defmethod database-query (query-expression (database aodbc-database) types) 
+(defmethod database-query (query-expression (database aodbc-database) result-types) 
   #+aodbc-v2
   (handler-case
       (dbi:sql query-expression :db (database-aodbc-conn database)
-              :types types)
+              :types result-types)
     (error ()
       (error 'clsql-sql-error
             :database database
 
 (defmethod database-query-result-set ((query-expression string)
                                      (database aodbc-database) 
-                                     &key full-set types)
+                                     &key full-set result-types)
   #+aodbc-v2
   (handler-case 
       (multiple-value-bind (query column-names)
                   :row-count nil
                   :column-names t
                   :query t
-                  :types types
+                  :types result-types
                   )
        (values
         (make-aodbc-result-set :query query :full-set full-set 
-                               :types types)
+                               :types result-types)
         (length column-names)
         nil ;; not able to return number of rows with aodbc
         ))
index 75b81a8a88a0a19d9db90462b66b9fe2f0530cbd..0f50e6c51d0d196e3416d342349cf99b5c2c9366 100644 (file)
 
 
 (defmethod database-query (query-expression (database mysql-database) 
-                          types)
+                          result-types)
   (declare (optimize (speed 3) (safety 0) (debug 0) (space 0)))
   (let ((mysql-ptr (database-mysql-ptr database)))
     (uffi:with-cstring (query-native query-expression)
                (unwind-protect
                     (let ((num-fields (mysql-num-fields res-ptr)))
                       (declare (fixnum num-fields))
-                      (setq types (canonicalize-types 
-                                   types num-fields
+                      (setq result-types (canonicalize-types 
+                                   result-types num-fields
                                    res-ptr))
                       (loop for row = (mysql-fetch-row res-ptr)
                              for lengths = (mysql-fetch-lengths res-ptr)
                                  (uffi:deref-array row '(:array
                                                          (* :unsigned-char))
                                                    i)
-                                 types i
+                                 result-types i
                                   (uffi:deref-array lengths '(:array :unsigned-long)
                                                    i))))))
                  (mysql-free-result res-ptr))
 
 #+ignore
 (defmethod database-query (query-expression (database mysql-database) 
-                          types)
+                          result-types)
   (declare (optimize (speed 3) (safety 0) (debug 0) (space 0)))
   (let ((mysql-ptr (database-mysql-ptr database)))
     (uffi:with-cstring (query-native query-expression)
                (unwind-protect
                     (let ((num-fields (mysql-num-fields res-ptr)))
                       (declare (fixnum num-fields))
-                      (setq types (canonicalize-types 
-                                   types num-fields
+                      (setq result-types (canonicalize-types 
+                                   result-types num-fields
                                    res-ptr))
                       (loop for row = (mysql-fetch-row res-ptr)
                             until (uffi:null-pointer-p row)
                                    (uffi:deref-array row '(:array
                                                            (* :unsigned-char))
                                                      i)
-                                   types i))))
+                                   result-types i))))
                  (mysql-free-result res-ptr))
                (error 'clsql-sql-error
                       :database database
 
 (defmethod database-query-result-set ((query-expression string)
                                      (database mysql-database)
-                                     &key full-set types)
+                                     &key full-set result-types)
   (uffi:with-cstring (query-native query-expression)
     (let ((mysql-ptr (database-mysql-ptr database)))
      (declare (type mysql-mysql-ptr-def mysql-ptr))
                                    :full-set full-set
                                    :types
                                    (canonicalize-types 
-                                    types num-fields
+                                    result-types num-fields
                                     res-ptr)))) 
                  (if full-set
                      (values result-set
                   (uffi:deref-array row '(:array (* :unsigned-char)) i)
                   types
                   i
-                   (uffi:deref-array lengths :unsigned-long i))))
+                   (uffi:deref-array lengths '(:array :unsigned-long) i))))
       list)))
 
 
index ae139aaec2c1bd9b410e3a969ab4945a95d79504..02bf412c7fa3ebbf3e064bdcaecc2c548acef18b 100644 (file)
@@ -1,7 +1,7 @@
 ;;; -*- Mode: Lisp -*-
 ;;; $Id$
 
-(in-package :clsql-oracle)
+(in-package #:clsql-oracle)
 
 (defconstant +oci-default+     #x00)   ; default value for parameters and attributes
 (defconstant +oci-threaded+    #x01)   ; application is in threaded environment
index 3a898e176c1b4cc25df0ad3fbfdd1f2e7d6643c1..6b558364af0d66c1f9850d77f39699cfb6eb4286 100644 (file)
@@ -8,7 +8,7 @@
 ;;;
 ;;; derived from postgresql.lisp
 
-(in-package :clsql-oracle)
+(in-package #:clsql-oracle)
 
 (defmethod database-initialize-database-type
     ((database-type (eql :oracle)))
index a243c5866b697885e8a96c5665869562611340bc..94c933de2ace070c53e9cdb9099bfb2f29f2079e 100644 (file)
@@ -9,7 +9,7 @@
 ;;; The present content of this file is orented specifically towards
 ;;; Oracle 8.0.5.1 under Linux, linking against libclntsh.so
 
-(in-package :clsql-oracle)
+(in-package #:clsql-oracle)
 
 ;;
 
index 8e8cb3d495bcd2b2e638db10e834b27d53a04971..13ce8e9965d2f5a1765796c904c4bdaabd5e162f 100644 (file)
@@ -29,8 +29,7 @@
 ;;;;  - Added field type processing
 
  
-(declaim (optimize (debug 3) (speed 3) (safety 1) (compilation-speed 0)))
-(in-package :postgresql-socket)
+(in-package #:postgresql-socket)
 
 (uffi:def-enum pgsql-ftype
     ((:bytea 17)
@@ -332,6 +331,15 @@ socket interface"
    :buffering :none
    :timeout *postgresql-server-socket-timeout*))
 
+
+#+sbcl
+(defun open-postgresql-socket-stream (host port)
+  (sb-sys:make-fd-stream
+   (open-postgresql-socket host port)
+   :input t :output t :element-type '(unsigned-byte 8)
+   :buffering :none
+   :timeout *postgresql-server-socket-timeout*))
+
 #+allegro
 (defun open-postgresql-socket-stream (host port)
   (etypecase host
@@ -347,8 +355,7 @@ socket interface"
         (mp:with-timeout (*postgresql-server-socket-timeout* (error "connect failed"))
           (socket:make-socket :type :stream :address-family :internet
                               :remote-port port :remote-host host
-                              :connect :active :nodelay t))))
-    ))
+                              :connect :active :nodelay t))))))
 
 #+lispworks
 (defun open-postgresql-socket-stream (host port)
@@ -849,12 +856,12 @@ connection, if it is still open."
             (error 'postgresql-fatal-error :connection connection
                    :message "Received garbled message from backend")))))))
 
-(defun run-query (connection query &optional (types nil))
+(defun run-query (connection query &optional (result-types nil))
   (start-query-execution connection query)
   (multiple-value-bind (status cursor)
       (wait-for-query-results connection)
     (assert (eq status :cursor))
-    (loop for row = (read-cursor-row cursor types)
+    (loop for row = (read-cursor-row cursor result-types)
          while row
          collect row
          finally
index 5546017682ecd16497dfd1fe52b6a22d7da955f2..7cb1ebab03738a2559d5d0c55d4d2ae52c193be7 100644 (file)
 ;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
 ;;;; *************************************************************************
 
-(declaim (optimize (debug 3) (speed 3) (safety 1) (compilation-speed 0)))
-(in-package :cl-user)
+(in-package #:cl-user)
 
 (defpackage :clsql-postgresql-socket
-    (:use :common-lisp :clsql-base-sys :postgresql-socket)
+    (:use #:common-lisp #:clsql-base-sys #:postgresql-socket)
     (:export #:postgresql-socket-database)
     (:documentation "This is the CLSQL socket interface to PostgreSQL."))
 
-(in-package :clsql-postgresql-socket)
+(in-package #:clsql-postgresql-socket)
 
 ;; interface foreign library loading routines
 
@@ -200,7 +199,7 @@ doesn't depend on UFFI."
   (close-postgresql-connection (database-connection database))
   t)
 
-(defmethod database-query (expression (database postgresql-socket-database) types)
+(defmethod database-query (expression (database postgresql-socket-database) result-types)
   (let ((connection (database-connection database)))
     (with-postgresql-handlers (database expression)
       (start-query-execution connection expression)
@@ -213,8 +212,8 @@ doesn't depend on UFFI."
                 :expression expression
                 :errno 'missing-result
                 :error "Didn't receive result cursor for query."))
-       (setq types (canonicalize-types types cursor))
-       (loop for row = (read-cursor-row cursor types)
+       (setq result-types (canonicalize-types result-types cursor))
+       (loop for row = (read-cursor-row cursor result-types)
              while row
              collect row
              finally
@@ -267,7 +266,7 @@ doesn't depend on UFFI."
 
 (defmethod database-query-result-set ((expression string)
                                      (database postgresql-socket-database) 
-                                     &key full-set types)
+                                     &key full-set result-types)
   (declare (ignore full-set))
   (let ((connection (database-connection database)))
     (with-postgresql-handlers (database expression)
@@ -284,7 +283,7 @@ doesn't depend on UFFI."
        (values (make-postgresql-socket-result-set
                 :done nil 
                 :cursor cursor
-                :types (canonicalize-types types cursor))
+                :types (canonicalize-types result-types cursor))
                (length (postgresql-cursor-fields cursor)))))))
 
 (defmethod database-dump-result-set (result-set
index 06aedc6b01e6ff04873f8763556f5740ff14183d..69719da2ca10760f54916ff8f25211596ee055b1 100644 (file)
@@ -18,8 +18,7 @@
 ;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
 ;;;; *************************************************************************
 
-(declaim (optimize (debug 3) (speed 3) (safety 1) (compilation-speed 0)))
-(in-package :postgresql)
+(in-package #:postgresql)
 
 
 ;;;; This file implements as little of the FFI bindings to the
index e46ec773150276d0c76c1dbdff207b211aab0fb6..48dd433315d3a4e819b6dbde95d23514ef7fbab0 100644 (file)
@@ -16,8 +16,7 @@
 ;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
 ;;;; *************************************************************************
 
-(declaim (optimize (debug 3) (speed 3) (safety 1) (compilation-speed 0)))
-(in-package :postgresql)
+(in-package #:postgresql)
 
 
 (defvar *postgresql-supporting-libraries* '("crypt" "c")
index 394c0d629d73865d5014dba2ed16aee930b4d13b..373d55ce9da2ca50dd143a7f0f8cab8da8e8c6e6 100644 (file)
   (setf (database-conn-ptr database) nil)
   t)
 
-(defmethod database-query (query-expression (database postgresql-database) types)
+(defmethod database-query (query-expression (database postgresql-database) result-types)
   (let ((conn-ptr (database-conn-ptr database)))
     (declare (type pgsql-conn-def conn-ptr))
     (uffi:with-cstring (query-native query-expression)
                nil)
               (#.pgsql-exec-status-type#tuples-ok
               (let ((num-fields (PQnfields result)))
-                (setq types
-                  (canonicalize-types types num-fields
+                (setq result-types
+                  (canonicalize-types result-types num-fields
                                             result))
                 (loop for tuple-index from 0 below (PQntuples result)
                       collect
                             (if (zerop (PQgetisnull result tuple-index i))
                                 (convert-raw-field
                                  (PQgetvalue result tuple-index i)
-                                 types i)
+                                 result-types i)
                                 nil)))))
               (t
                (error 'clsql-sql-error
 
 (defmethod database-query-result-set ((query-expression string)
                                      (database postgresql-database) 
-                                      &key full-set types)
+                                      &key full-set result-types)
   (let ((conn-ptr (database-conn-ptr database)))
     (declare (type pgsql-conn-def conn-ptr))
     (uffi:with-cstring (query-native query-expression)
                         :num-fields (PQnfields result)
                         :num-tuples (PQntuples result)
                        :types (canonicalize-types 
-                                     types
+                                     result-types
                                      (PQnfields result)
                                      result))))
             (if full-set
index a8c18ffe5b72f2b1fbee2ca659fe20369661d630..7e57fa2f139d090a9c664676628fb4b3e2176f91 100644 (file)
 
 ;; $Id$
 
-(in-package :cl-user)
+(in-package #:cl-user)
 
-(defpackage :sqlite
-  (:use :common-lisp :ffi)
+(defpackage #:sqlite
+  (:use #:common-lisp #:ffi)
   (:export
            ;;; Conditions
            #:sqlite-error
 ;;;; Mode: lisp
 ;;;; Syntax: ANSI-Common-Lisp
 ;;;; Package: sqlite
-;;;; End:
\ No newline at end of file
+;;;; End:
index 63edf07532ee8fae3e0e97b3aa5a3a0d6b244c83..805597b0bd086a8faea3c2080d89616d3faaa2ce 100644 (file)
@@ -73,8 +73,8 @@
             :error (sqlite:sqlite-error-message err))))
   t)
 
-(defmethod database-query (query-expression (database sqlite-database) types)
-  (declare (ignore types))             ; SQLite is typeless!
+(defmethod database-query (query-expression (database sqlite-database) result-types)
+  (declare (ignore result-types))              ; SQLite is typeless!
   (handler-case
       (multiple-value-bind (data row-n col-n)
          (sqlite:sqlite-get-table (sqlite-db database) query-expression)
   (n-col 0 :type fixnum))
 
 (defmethod database-query-result-set
-    ((query-expression string) (database sqlite-database) &key full-set types)
-  (declare (ignore full-set types))
+    ((query-expression string) (database sqlite-database) &key full-set result-types)
+  (declare (ignore full-set result-types))
   (handler-case
       (let* ((vm (sqlite:sqlite-compile (sqlite-db database)
                                        query-expression))
index 043ac4983da3a693803cec078d53e1dce9415697..7ede4eaf43c5b9be4c9b179e6766faffe800ac9e 100644 (file)
@@ -1,3 +1,9 @@
+cl-sql (2.3.4-1) unstable; urgency=low
+
+  * New upstream
+
+ -- Kevin M. Rosenberg <kmr@debian.org>  Thu,  8 Apr 2004 15:17:20 -0600
+
 cl-sql (2.3.3-1) unstable; urgency=low
 
   * New upstream
index 4d1c9d510c9eee29a25b620e37e6b4165a4a6ada..6fadbae16e0396430b0ff643188d6746c6d503ac 100644 (file)
@@ -1868,7 +1868,7 @@ The default is &nil;.
       </refnamediv>
       <refsect1>
        <title>Syntax</title>
-       <synopsis><function>query</function> <replaceable>query-expression</replaceable> &amp;key <replaceable>database</replaceable> <replaceable>types</replaceable> => <returnvalue>result</returnvalue></synopsis>
+       <synopsis><function>query</function> <replaceable>query-expression</replaceable> &amp;key <replaceable>database</replaceable> <replaceable>result-types</replaceable> => <returnvalue>result</returnvalue></synopsis>
       </refsect1>
       <refsect1>
        <title>Arguments and Values</title>
@@ -1892,11 +1892,11 @@ The default is &nil;.
            </listitem>
          </varlistentry>
          <varlistentry>
-           <term><parameter>types</parameter></term>
+           <term><parameter>result-types</parameter></term>
            <listitem>
              <para>A 
                <glossterm linkend="gloss-field-types">field type
-                 specififier</glossterm>. The default is &nil;.
+                 specifier</glossterm>. The default is &nil;.
                </para>
                <para>
                  The purpose of this argument is cause &clsql; to
@@ -2019,7 +2019,7 @@ The default is &nil;.
       </refnamediv>
       <refsect1>
        <title>Syntax</title>
-       <synopsis><function>map-query</function> <replaceable>output-type-spec</replaceable> <replaceable>function</replaceable> <replaceable>query-expression</replaceable> &amp;key <replaceable>database</replaceable> <replaceable>types</replaceable> => <returnvalue>result</returnvalue></synopsis>
+       <synopsis><function>map-query</function> <replaceable>output-type-spec</replaceable> <replaceable>function</replaceable> <replaceable>query-expression</replaceable> &amp;key <replaceable>database</replaceable> <replaceable>result-types</replaceable> => <returnvalue>result</returnvalue></synopsis>
       </refsect1>
       <refsect1>
        <title>Arguments and Values</title>
@@ -2060,10 +2060,10 @@ The default is &nil;.
            </listitem>
          </varlistentry>
          <varlistentry>
-           <term><parameter>types</parameter></term>
+           <term><parameter>result-types</parameter></term>
            <listitem>
              <para>
-               A <glossterm linkend="gloss-field-types">field type specififier</glossterm>. 
+               A <glossterm linkend="gloss-field-types">field type specifier</glossterm>. 
                The default is &nil;. See <link
                linkend="query"><function>query</function></link>
                for the semantics of this argument.  
@@ -2190,7 +2190,7 @@ The default is &nil;.
       </refnamediv>
       <refsect1>
        <title>Syntax</title>
-       <synopsis><function>do-query</function> ((&amp;rest <replaceable>args</replaceable>) <replaceable>query-expression</replaceable> &amp;key <replaceable>database</replaceable> <replaceable>types</replaceable>) &amp;body <replaceable>body</replaceable> => <returnvalue>nil</returnvalue></synopsis>
+       <synopsis><function>do-query</function> ((&amp;rest <replaceable>args</replaceable>) <replaceable>query-expression</replaceable> &amp;key <replaceable>database</replaceable> <replaceable>result-types</replaceable>) &amp;body <replaceable>body</replaceable> => <returnvalue>nil</returnvalue></synopsis>
       </refsect1>
       <refsect1>
        <title>Arguments and Values</title>
@@ -2221,10 +2221,10 @@ The default is &nil;.
            </listitem>
          </varlistentry>
          <varlistentry>
-           <term><parameter>types</parameter></term>
+           <term><parameter>result-types</parameter></term>
            <listitem>
              <para>
-               A <glossterm linkend="gloss-field-types">field type specififier</glossterm>. 
+               A <glossterm linkend="gloss-field-types">field type specifier</glossterm>. 
                The default is &nil;. See <link
                linkend="query"><function>query</function></link>
                for the semantics of this argument.  
diff --git a/sql/basic-cmds.lisp b/sql/basic-cmds.lisp
deleted file mode 100644 (file)
index a8241b9..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-
-(defmethod database-query (query-expression (database closed-database) types)
-  (declare (ignore query-expression types))
-  (signal-closed-database-error database))
-
-(defmethod database-query (query-expression (database t) types)
-  (declare (ignore query-expression types))
-  (signal-no-database-error))
-
-(defmethod database-execute-command (sql-expression (database closed-database))
-  (declare (ignore sql-expression))
-  (signal-closed-database-error database))
-
-(defmethod database-execute-command (sql-expression (database t))
-  (declare (ignore sql-expression))
-  (signal-no-database-error))
-
-(defgeneric execute-command (expression &key database)
-  (:documentation
-   "Executes the SQL command specified by EXPRESSION for the database
-specified by DATABASE, which has a default value of
-*DEFAULT-DATABASE*. The argument EXPRESSION may be any SQL statement
-other than a query. To run a stored procedure, pass an appropriate
-string. The call to the procedure needs to be wrapped in a BEGIN END
-pair."))
-
-(defmethod execute-command ((sql-expression string)
-                            &key (database *default-database*))
-  (record-sql-command sql-expression database)
-  (let ((res (database-execute-command sql-expression database)))
-    (record-sql-result res database))
-  (values))
index d154aee10f63e95d36331e400ac0392901091e53..6d1e375a6f57826171cf9621f4a0dea6d147c9c6 100644 (file)
@@ -18,9 +18,9 @@
 
 
 (defmethod database-query-result-set ((expr %sql-expression) database
-                                      &key full-set types)
+                                      &key full-set result-types)
   (database-query-result-set (sql-output expr database) database
-                             :full-set full-set :types types))
+                             :full-set full-set :result-types result-types))
 
 (defmethod execute-command ((expr %sql-expression)
                             &key (database *default-database*))