r9168: fix transaction detection
[clsql.git] / db-mysql / mysql-client-info.lisp
index df454bda2742b3447cc2be791a76cd00f1872185..5cb8d0e26a912a5b97320267e4755e7c7016f3fc 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  April 2004
 ;;;;
-;;;; $Id: mysql-api.lisp 8801 2004-03-31 23:48:44Z kevin $
+;;;; $Id$
 ;;;;
 ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;; and Copyright (c) 1999-2001 by Pierre R. Mai
 
 (declaim (inline mysql-get-client-info))
 
+(defvar *mysql-client-info* nil)
+
 (eval-when (:compile-toplevel :load-toplevel :execute)
   (uffi:def-function "mysql_get_client_info"
       ()
     :module "mysql"
     :returning :cstring)
 
-  (let ((version (uffi:convert-from-cstring (mysql-get-client-info))))
-    (cond
-      ((eql (schar version 0) #\3)
-       (pushnew :mysql-client-v3 cl:*features*))
-      ((eql (schar version 0) #\4)
-       (pushnew :mysql-client-v4 cl:*features*))
-      (t
-       (error "Unknown mysql client version '~A'." version)))))
-
-;;#-(or :mysql-client-v3 :mysql-client-v4)
-;;(eval-when (:compile-toplevel :load-toplevel :execute)
-;;  (pushnew :mysql-client-v3 cl:*features*))
+  (setf *mysql-client-info* (uffi:convert-from-cstring (mysql-get-client-info)))
+  
+  (cond
+    ((eql (schar *mysql-client-info* 0) #\3)
+     (pushnew :mysql-client-v3 cl:*features*))
+    ((eql (schar *mysql-client-info* 0) #\4)
+     (pushnew :mysql-client-v4 cl:*features*))
+    (t
+     (error "Unknown mysql client version '~A'." *mysql-client-info*))))