r7061: initial property settings
[clsql.git] / db-postgresql / postgresql-sql.lisp
index 3bfac6b95ea24c933aeab34c1caf3d79aa9dcca4..09b72e7bae61ef47adc41ebf46248d95b370f47b 100644 (file)
@@ -2,13 +2,13 @@
 ;;;; *************************************************************************
 ;;;; FILE IDENTIFICATION
 ;;;;
-;;;; Name:          postgresql-sql.sql
+;;;; Name:          postgresql-sql.lisp
 ;;;; Purpose:       High-level PostgreSQL interface using UFFI
 ;;;; Programmers:   Kevin M. Rosenberg based on
 ;;;;                Original code by Pierre R. Mai 
 ;;;; Date Started:  Feb 2002
 ;;;;
-;;;; $Id: postgresql-sql.lisp,v 1.1 2002/09/30 10:19:23 kevin Exp $
+;;;; $Id$
 ;;;;
 ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;; and Copyright (c) 1999-2001 by Pierre R. Mai
 ;;;; (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
-    (:use :common-lisp :clsql-base-sys :postgresql :clsql-uffi)
+(defpackage #:clsql-postgresql
+    (:use #:common-lisp #:clsql-base-sys #:postgresql #:clsql-uffi)
     (:export #:postgresql-database)
     (:documentation "This is the CLSQL interface to PostgreSQL."))
 
-(in-package :clsql-postgresql)
+(in-package #:clsql-postgresql)
 
 ;;; Field conversion functions
 
   (destructuring-bind (host db user password &optional port options tty)
       connection-spec
     (declare (ignore password options tty))
-    (concatenate 'string host (if port ":") (if port port) "/" db "/" user)))
+    (concatenate 'string 
+      (etypecase host
+       (pathname (namestring host))
+       (string host))
+      (when port 
+       (concatenate 'string
+                    ":"
+                    (etypecase port
+                      (integer (write-to-string port))
+                      (string port))))
+      "/" db "/" user)))
 
 
 (defmethod database-connect (connection-spec (database-type (eql :postgresql)))
   (lo-unlink (database-conn-ptr database) object-id))
 
 (when (clsql-base-sys:database-type-library-loaded :postgresql)
-  (clsql-base-sys:initialize-database-type :database-type :postgresql)
-  (pushnew :postgresql cl:*features*))
+  (clsql-base-sys:initialize-database-type :database-type :postgresql))