r1798: Initial support for pooled connections
[clsql.git] / interfaces / mysql / mysql-sql.cl
index 2623aed20f2944a0bc089a14a4912a66367bdf05..264c71b51fff17fed48baa4221db803fe031c946 100644 (file)
@@ -8,7 +8,7 @@
 ;;;;                Original code by Pierre R. Mai 
 ;;;; Date Started:  Feb 2002
 ;;;;
-;;;; $Id: mysql-sql.cl,v 1.15 2002/03/27 12:09:39 kevin Exp $
+;;;; $Id: mysql-sql.cl,v 1.19 2002/04/27 20:58:11 kevin Exp $
 ;;;;
 ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;; and Copyright (c) 1999-2001 by Pierre R. Mai
     (nreverse new-types)))
 
 (defun canonicalize-types (types num-fields res-ptr)
-  (let ((auto-list (make-type-list-for-auto num-fields res-ptr)))
-    (cond
-      ((listp types)
-       (canonicalize-type-list types auto-list))
-      ((eq types :auto)
-       auto-list)
-      (t
-       nil))))
+  (if (null types)
+      nil
+      (let ((auto-list (make-type-list-for-auto num-fields res-ptr)))
+       (cond
+         ((listp types)
+          (canonicalize-type-list types auto-list))
+         ((eq types :auto)
+          auto-list)
+         (t
+          nil)))))
 
 (defmethod database-initialize-database-type ((database-type (eql :mysql)))
   t)
@@ -88,6 +90,9 @@
   ((mysql-ptr :accessor database-mysql-ptr :initarg :mysql-ptr
              :type mysql-mysql-ptr-def)))
 
+(defmethod database-type ((database mysql-database))
+  :mysql)
+
 (defmethod database-name-from-spec (connection-spec (database-type (eql :mysql)))
   (check-connection-spec connection-spec database-type (host db user password))
   (destructuring-bind (host db user password) connection-spec
                  (make-instance 'mysql-database
                    :name (database-name-from-spec connection-spec
                                                   database-type)
+                   :connection-spec connection-spec
                    :mysql-ptr mysql-ptr))
              (when error-occurred (mysql-close mysql-ptr)))))))))