;;;; Original code by Pierre R. Mai
;;;; Date Started: Feb 2002
;;;;
-;;;; $Id: postgresql-socket-sql.cl,v 1.8 2002/03/27 12:09:39 kevin Exp $
+;;;; $Id: postgresql-socket-sql.cl,v 1.12 2002/05/13 22:05:21 kevin Exp $
;;;;
;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;; and Copyright (c) 1999-2001 by Pierre R. Mai
(in-package :clsql-postgresql-socket)
+;; interface foreign library loading routines
+
+(defmethod database-type-library-loaded ((database-type (eql :postgresql-socket)))
+ t)
+
+(defmethod clsql-sys:database-type-load-foreign ((database-type (eql :postgresql-socket)))
+ t)
+
+(clsql-sys:database-type-load-foreign :postgresql-socket)
+
+
;; Field type conversion
(defun make-type-list-for-auto (cursor)
t))))
(defun canonicalize-types (types cursor)
- (let ((auto-list (make-type-list-for-auto cursor)))
- (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 cursor)))
+ (cond
+ ((listp types)
+ (canonicalize-type-list types auto-list))
+ ((eq types :auto)
+ auto-list)
+ (t
+ nil)))))
(defun canonicalize-type-list (types auto-list)
"Ensure a field type list meets expectations.
;; KMR - removed double @@
,@body))))
-(defmethod database-initialize-database-type
- ((database-type (eql :postgresql-socket)))
+(defmethod database-initialize-database-type ((database-type
+ (eql :postgresql-socket)))
t)
(defclass postgresql-socket-database (database)
((connection :accessor database-connection :initarg :connection
:type postgresql-connection)))
-(defmethod database-name-from-spec
- (connection-spec (database-type (eql :postgresql-socket)))
+(defmethod database-type ((database postgresql-socket-database))
+ :postgresql-socket)
+
+(defmethod database-name-from-spec (connection-spec
+ (database-type (eql :postgresql-socket)))
(check-connection-spec connection-spec database-type
(host db user password &optional port options tty))
(destructuring-bind (host db user password &optional port options tty)
(declare (ignore password options tty))
(concatenate 'string host (if port ":") (if port port) "/" db "/" user)))
-(defmethod database-connect
- (connection-spec (database-type (eql :postgresql-socket)))
+(defmethod database-connect (connection-spec
+ (database-type (eql :postgresql-socket)))
(check-connection-spec connection-spec database-type
(host db user password &optional port options tty))
(destructuring-bind (host db user password &optional
(make-instance 'postgresql-socket-database
:name (database-name-from-spec connection-spec
database-type)
+ :connection-spec connection-spec
:connection connection))
(postgresql-error (c)
;; Connect failed
(prog1 nil
(setf (postgresql-socket-result-set-done result-set) t)
(wait-for-query-results (database-connection database)))))))
+
+(when (clsql-sys:database-type-library-loaded :postgresql-socket)
+ (clsql-sys:initialize-database-type :database-type :postgresql-socket))