;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Feb 2002
;;;;
-;;;; $Id: postgresql-loader.cl,v 1.2 2002/03/24 04:01:26 kevin Exp $
+;;;; $Id: postgresql-loader.cl,v 1.12 2002/05/27 17:19:30 kevin Exp $
;;;;
;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;;
(declaim (optimize (debug 3) (speed 3) (safety 1) (compilation-speed 0)))
(in-package :postgresql)
-(defvar *postgresql-library-filename*
- (cond
- ((probe-file "/opt/postgresql/lib/libpq.so")
- "/opt/postgresql/lib/libpq.so")
- ((probe-file "/usr/local/lib/libpq.so")
- "/usr/local/lib/libpq.so")
- ((probe-file "/usr/lib/libpq.so")
- "/usr/lib/libpq.so")
- #+(or win32 mswindows)
- ((probe-file "c:/postgresql/lib/libpq.dll")
- "c:/postgresql/lib/libpq.dll")
- (t
- (warn "Can't find PostgresQL client library to load.")))
- "Location where the PostgresSQL client library is to be found.")
(defvar *postgresql-supporting-libraries* '("crypt" "c")
"Used only by CMU. List of library flags needed to be passed to ld to
(defvar *postgresql-library-loaded* nil
"T if foreign library was able to be loaded successfully")
-(defmethod database-type-library-loaded ((database-type (eql :postgresql)))
+(defmethod clsql-base-sys:database-type-library-loaded ((database-type
+ (eql :postgresql)))
*postgresql-library-loaded*)
-(defmethod database-type-load-foreign ((database-type (eql :postgresql)))
- (when
- (uffi:load-foreign-library *postgresql-library-filename*
- :module "postgresql"
- :supporting-libraries
- *postgresql-supporting-libraries*)
- (setq *postgresql-library-loaded* t)))
+(defmethod clsql-base-sys:database-type-load-foreign ((database-type
+ (eql :postgresql)))
+ (let ((libpath (uffi:find-foreign-library
+ "libpq"
+ '("/opt/postgresql/lib/" "/usr/local/lib/"
+ "/usr/lib/" "/postgresql/lib/"
+ "/usr/local/pgsql/lib/" "/usr/lib/pgsql/"
+ "/opt/pgsql/lib/pgsql")
+ :drive-letters '("C" "D" "E"))))
+ (if (uffi:load-foreign-library libpath
+ :module "postgresql"
+ :supporting-libraries
+ *postgresql-supporting-libraries*)
+ (setq *postgresql-library-loaded* t)
+ (warn "Can't load PostgreSQL client library ~A" libpath))))
+
+(clsql-base-sys:database-type-load-foreign :postgresql)
-(database-type-load-foreign :postgresql)