From: Kevin M. Rosenberg Date: Wed, 31 Mar 2004 23:56:46 +0000 (+0000) Subject: r8804: add automatic mysql client detection X-Git-Tag: v3.8.6~752 X-Git-Url: http://git.kpe.io/?p=clsql.git;a=commitdiff_plain;h=5dfea0c629f967d7ace700b63adf62eb11f88d9b;hp=adbb571cf319c49f1cad47f22c83982b5253d4b5 r8804: add automatic mysql client detection --- diff --git a/db-mysql/mysql-api.lisp b/db-mysql/mysql-api.lisp index b3220b7..480345d 100644 --- a/db-mysql/mysql-api.lisp +++ b/db-mysql/mysql-api.lisp @@ -106,10 +106,6 @@ (:var-string 253) (:string 254))) -#-(or :mysql-client-v3 :mysql-client-v4) -(eval-when (:compile-toplevel :load-toplevel :execute) - (pushnew :mysql-client-v3 cl:*features*)) - #+:mysql-client-v3 (uffi:def-struct mysql-field (name (* :char)) @@ -370,12 +366,6 @@ :module "mysql" :returning :cstring) -(declaim (inline mysql-get-client-info)) -(uffi:def-function "mysql_get_client_info" - () - :module "mysql" - :returning :cstring) - (declaim (inline mysql-get-host-info)) (uffi:def-function "mysql_get_host_info" ((mysql (* mysql-mysql))) diff --git a/db-mysql/mysql-client-info.lisp b/db-mysql/mysql-client-info.lisp new file mode 100644 index 0000000..df454bd --- /dev/null +++ b/db-mysql/mysql-client-info.lisp @@ -0,0 +1,42 @@ +;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*- +;;;; ************************************************************************* +;;;; FILE IDENTIFICATION +;;;; +;;;; Name: mysql-client-info.lisp +;;;; Purpose: Check mysql client version +;;;; Programmer: Kevin M. Rosenberg +;;;; Date Started: April 2004 +;;;; +;;;; $Id: mysql-api.lisp 8801 2004-03-31 23:48:44Z kevin $ +;;;; +;;;; This file, part of CLSQL, is Copyright (c) 2002 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 +;;;; as governed by the terms of the Lisp Lesser GNU Public License +;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL. +;;;; ************************************************************************* + +(in-package #:mysql) + +(declaim (inline mysql-get-client-info)) + +(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*)) +