Patches for LispWorks
Edi Weitz <[email protected]> 03 Jan 2003 00:21:11 +0100
| Newsgroups | gmane.lisp.uncommon-sql |
|---|---|
| Message-ID | <[email protected]> |
Hi!
Here are some small patches I needed for making UncommonSQL work with
LispWorks (4.2.7 professional) and PostgreSQL (7.2.1) on Linux.
Cheers,
Edi.
diff -ru /tmp/uncommonsql.orig/dbms/postgresql/ffi-lispworks.lisp /usr/local/lisp/source/uncommonsql/dbms/postgresql/ffi-lispworks.lisp
--- /tmp/uncommonsql.orig/dbms/postgresql/ffi-lispworks.lisp Thu Feb 8 23:21:46 2001
+++ /usr/local/lisp/source/uncommonsql/dbms/postgresql/ffi-lispworks.lisp Mon Dec 30 23:42:53 2002
@@ -77,7 +77,7 @@
(fli:define-foreign-function
(pqerrormessage "PQerrorMessage" :source)
((conn psql-conn))
- :result-type (:ef-mb-string :limit 4096)
+ :result-type (:reference (:ef-mb-string :external-format :latin-1 :limit 4096))
:language :ansi-c)
(fli:define-foreign-function
@@ -109,7 +109,7 @@
(pqfname "PQfname" :source)
((res psql-result)
(field-num :int))
- :result-type (:ef-mb-string :limit 4096)
+ :result-type (:reference (:ef-mb-string :external-format :latin-1 :limit 4096))
:language :ansi-c)
(fli:define-foreign-function
@@ -136,19 +136,19 @@
(fli:define-foreign-function
(pqcmdstatus "PQcmdStatus" :source)
((res psql-result))
- :result-type (:ef-mb-string :limit 4096)
+ :result-type (:reference (:ef-mb-string :external-format :latin-1 :limit 4096))
:language :ansi-c)
(fli:define-foreign-function
(pqoidstatus "PQoidStatus" :source)
((res psql-result))
- :result-type (:ef-mb-string :limit 4096)
+ :result-type (:reference (:ef-mb-string :external-format :latin-1 :limit 4096))
:language :ansi-c)
(fli:define-foreign-function
(pqcmdtuples "PQcmdTuples" :source)
((res psql-result))
- :result-type (:ef-mb-string :limit 4096)
+ :result-type (:reference (:ef-mb-string :external-format :latin-1 :limit 4096))
:language :ansi-c)
(fli:define-foreign-function
@@ -156,7 +156,7 @@
((res psql-result)
(tup-num :int)
(field-num :int))
- :result-type (:ef-mb-string :limit 4096)
+ :result-type (:reference (:ef-mb-string :external-format :latin-1 :limit 4096))
:language :ansi-c)
(fli:define-foreign-function
diff -ru /tmp/uncommonsql.orig/sql/objects.lisp /usr/local/lisp/source/uncommonsql/sql/objects.lisp
--- /tmp/uncommonsql.orig/sql/objects.lisp Thu Aug 1 21:49:46 2002
+++ /usr/local/lisp/source/uncommonsql/sql/objects.lisp Tue Dec 31 01:24:52 2002
@@ -1,5 +1,5 @@
;;; -*- Mode: Lisp -*-
-;;; $Id: objects.lisp,v 1.118 2002/08/01 19:49:46 craig Exp $
+;;; $Id: objects.lisp,v 1.126 2002/11/14 18:31:45 adam Exp $
;;;
;;; Object Oriented interface for MaiSQL
@@ -322,8 +322,9 @@
(defmethod slot-value-using-class ((class view-metaclass) instance slot-def)
(declare (optimize (speed 3)))
(unless *db-deserializing*
- (let ((slot-name (%slot-def-name slot-def))
- (slot-kind (view-class-slot-db-kind slot-def)))
+ (let* ((slot-name (%slot-def-name slot-def))
+ #+LispWorks (slot-def (clos:find-slot-definition slot-def class))
+ (slot-kind (view-class-slot-db-kind slot-def)))
(when (and (eql slot-kind :join)
(not (slot-boundp instance slot-name)))
(let ((*db-deserializing* t))
@@ -332,8 +333,9 @@
(call-next-method))
(defmethod (setf slot-value-using-class) (new-value (class view-metaclass) instance slot-def)
- (let ((slot-name (%slot-def-name slot-def))
- (slot-kind (view-class-slot-db-kind slot-def)))
+ (let* ((slot-name (%slot-def-name slot-def))
+ #+LispWorks (slot-def (clos:find-slot-definition slot-def class))
+ (slot-kind (view-class-slot-db-kind slot-def)))
(unless (or (equal slot-name 'editing-context)
;(eql slot-kind :join)
(eql slot-kind :virtual)