+12 Aug 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.6.4
+ * clsql.asd: Add support for c:\etc\clsql-init.lisp as possible
+ local initialization file
+ * db-mysql/mysql-loader.lisp: Remove former method of using pathnames
+ as name candidates.
+ * db-odbc/odbc-api.lisp: Work-around Allegro/Windows FFI bug
+ that generates incorrect integer return type
+
07 Jul 2006 Kevin Rosenberg <kevin@rosenberg.net>
* Version 3.6.3
* sql/transactions.lisp: Important typo fix from Alexey Antipov
(defpackage #:clsql-system (:use #:asdf #:cl))
(in-package #:clsql-system)
-;; need to load uffi for below perform :after method
+;; need to load uffi for below perform :after method
(eval-when (:compile-toplevel :load-toplevel :execute)
(unless (find-package 'uffi)
(asdf:operate 'asdf:load-op 'uffi)))
(defmethod perform :after ((o load-op) (c (eql (find-system 'clsql))))
(let* ((init-var (uffi:getenv "CLSQLINIT"))
(init-file (or (when init-var (probe-file init-var))
- (probe-file "/etc/clsql-init.lisp"))))
+ (probe-file "/etc/clsql-init.lisp")
+ #+(or mswin windows win32)
+ (probe-file "c:\\etc\\clsql-init.lisp"))))
(when init-file (load init-file))))
(in-package #:mysql)
-(defparameter *clsql-mysql-library-candidate-names*
+(defparameter *clsql-mysql-library-candidate-names*
(list #+(or 64bit x86-64) "clsql_mysql64"
- #+(or 64bit x86-64) (make-pathname :name "clsql_mysql64"
- :directory (pathname-directory *load-truename*))
- "clsql_mysql"
- (make-pathname :name "clsql_mysql"
- :directory (pathname-directory *load-truename*))))
+ "clsql_mysql"))
(defvar *mysql-library-candidate-names*
'("libmysqlclient" "libmysql"))
(defmethod clsql-sys:database-type-library-loaded ((database-type (eql :mysql)))
*mysql-library-loaded*)
-
+
(defmethod clsql-sys:database-type-load-foreign ((database-type (eql :mysql)))
(clsql-uffi:find-and-load-foreign-library *mysql-library-candidate-names*
- :module "mysql"
+ :module "mysql"
:supporting-libraries *mysql-supporting-libraries*)
(clsql-uffi:find-and-load-foreign-library *clsql-mysql-library-candidate-names*
- :module "clsql-mysql"
+ :module "clsql-mysql"
:supporting-libraries *mysql-supporting-libraries*)
(setq *mysql-library-loaded* t))
odbc-call &body body)
(let ((result-code (gensym "RC-")))
`(let ((,result-code ,odbc-call))
+
+ ;; Check for allegro v7 & v8 bug with ODBC calls returning
+ ;; 32-bit unsigned ints, not 16-bit signed ints
+ #+(and allegro mswindows)
+ (when (> ,result-code #xFFFF)
+ (warn (format nil "16-bit return bug: result-code #x~X for expression ~S"
+ ,result-code (quote ,odbc-call)))
+ (setq ,result-code (logand ,result-code #xFFFF))
+ (when (> ,result-code #x7FFF)
+ (setq ,result-code (- ,result-code #x10000))))
+
(case ,result-code
(#.$SQL_SUCCESS
(progn ,result-code ,@body))
:secondary-error-id sql-state)))
(#.$SQL_NO_DATA_FOUND
(progn ,result-code ,@body))
- ;; work-around for Allegro 7.0beta AMD64 which
- ;; has for negative numbers
+ ;; work-around for Allegro 7.0beta AMD64 which returns negative numbers
(otherwise
(multiple-value-bind (error-message sql-state)
(handle-error (or ,henv +null-handle-ptr+)
+cl-sql (3.6.4-1) unstable; urgency=low
+
+ * New upstream
+
+ -- Kevin M. Rosenberg <kmr@debian.org> Sat, 12 Aug 2006 10:18:05 -0600
+
cl-sql (3.6.3-1) unstable; urgency=low
* New upstream