X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=db-mysql%2Fmysql-client-info.lisp;h=0721194e41243ee15fab38eef505a353b1a8a2dd;hp=9b201821ff249df6cba461ba8cc7cfcf79ce194e;hb=refs%2Ftags%2Fv3.8.6;hpb=73cf858d596ad1d51c745b478292433617cf9d72 diff --git a/db-mysql/mysql-client-info.lisp b/db-mysql/mysql-client-info.lisp index 9b20182..0721194 100644 --- a/db-mysql/mysql-client-info.lisp +++ b/db-mysql/mysql-client-info.lisp @@ -9,8 +9,7 @@ ;;;; ;;;; $Id$ ;;;; -;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg -;;;; and Copyright (c) 1999-2001 by Pierre R. Mai +;;;; This file, part of CLSQL, is Copyright (c) 2004 by Kevin M. Rosenberg ;;;; ;;;; CLSQL users are granted the rights to distribute and use this software ;;;; as governed by the terms of the Lisp Lesser GNU Public License @@ -21,22 +20,29 @@ (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" + (uffi:def-function ("mysql_get_client_info" mysql-get-client-info) () :module "mysql" :returning :cstring) - (let ((version (uffi:convert-from-cstring (mysql-get-client-info)))) + (setf *mysql-client-info* (uffi:convert-from-cstring (mysql-get-client-info))) + + + (when (and (stringp *mysql-client-info*) + (plusp (length *mysql-client-info*))) (cond - ((eql (schar version 0) #\3) + ((eql (schar *mysql-client-info* 0) #\3) (pushnew :mysql-client-v3 cl:*features*)) - ((eql (schar version 0) #\4) - (pushnew :mysql-client-v4 cl:*features*)) + ((eql (schar *mysql-client-info* 0) #\4) + (pushnew :mysql-client-v4 cl:*features*) + (when (and (>= (length *mysql-client-info*) 3) + (string-equal "4.1" *mysql-client-info* :end2 3)) + (pushnew :mysql-client-v4.1 cl:*features*))) + ((eql (schar *mysql-client-info* 0) #\5) + (pushnew :mysql-client-v5 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*)) + (error "Unknown mysql client version '~A'." *mysql-client-info*)))))