r9336: 12 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
[clsql.git] / db-postgresql-socket / postgresql-socket-api.lisp
index 40c904fca70e487261b496d3ad4abd46cc081d02..dabaad923b8bbd59886924ef7ceba182d97fffdf 100644 (file)
@@ -2,16 +2,14 @@
 ;;;; *************************************************************************
 ;;;; FILE IDENTIFICATION
 ;;;;
-;;;; Name:          postgresql-socket-api.lisp
-;;;; Purpose:       Low-level PostgreSQL interface using sockets
-;;;; Programmers:   Kevin M. Rosenberg based on
-;;;;                Original code by Pierre R. Mai 
-;;;;                
-;;;; Date Started:  Feb 2002
+;;;; Name:     postgresql-socket-api.lisp
+;;;; Purpose:  Low-level PostgreSQL interface using sockets
+;;;; Authors:  Kevin M. Rosenberg based on original code by Pierre R. Mai 
+;;;; Created:  Feb 2002
 ;;;;
 ;;;; $Id$
 ;;;;
-;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
+;;;; This file, part of CLSQL, is Copyright (c) 2002-2004 by Kevin M. Rosenberg
 ;;;; and Copyright (c) 1999-2001 by Pierre R. Mai
 ;;;;
 ;;;; CLSQL users are granted the rights to distribute and use this software
 ;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
 ;;;; *************************************************************************
 
-
-;;;; Changes by Kevin Rosenberg
-;;;;  - Added socket open functions for Allegro and Lispworks
-;;;;  - Changed CMUCL FFI to UFFI
-;;;;  - Added necessary (force-output) for socket streams on 
-;;;;     Allegro and Lispworks
-;;;;  - Added initialization variable
-;;;;  - Added field type processing
-
 (in-package #:postgresql-socket)
 
 (uffi:def-enum pgsql-ftype
      (:float4 700)
      (:float8 701)))
 
-(defmethod clsql-base-sys:database-type-library-loaded ((database-type
+(defmethod clsql-sys:database-type-library-loaded ((database-type
                                          (eql :postgresql-socket)))
   "T if foreign library was able to be loaded successfully. Always true for
 socket interface"
   t)
 
-(defmethod clsql-base-sys:database-type-load-foreign ((database-type (eql :postgresql-socket)))
+(defmethod clsql-sys:database-type-load-foreign ((database-type (eql :postgresql-socket)))
   t)
 
 
@@ -232,13 +220,14 @@ socket interface"
   (unless *crypt-library-loaded*
     (uffi:load-foreign-library 
      (uffi:find-foreign-library "libcrypt"
-                          '("/usr/lib/" "/usr/local/lib/" "/lib/"))
+                          '(#+64bit "/usr/lib64/"
+                            "/usr/lib/" "/usr/local/lib/" "/lib/"))
      :supporting-libraries '("c"))
     (setq *crypt-library-loaded* t)))
 
 (in-package :postgresql-socket)
 
-(uffi:def-function "crypt" 
+(uffi:def-function ("crypt" crypt)
     ((key :cstring)
      (salt :cstring))
   :returning :cstring)
@@ -612,8 +601,9 @@ connection, if it is still open."
                                   :connection connection :message message))))
          (#.+notice-response-message+
           (let ((message (read-socket-value-string socket)))
-            (warn 'postgresql-warning
-                  :connection connection :message message)))
+            (unless (eq :ignore clsql-sys:*backend-warning-behavior*)
+              (warn 'postgresql-warning
+                    :connection connection :message message))))
          (#.+notification-response-message+
           (let ((pid (read-socket-value-int32 socket))
                 (message (read-socket-value-string socket)))