X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=db-mysql%2Fmysql-api.lisp;h=7170fda066b72a29f480c80e0dc04422eecb5c1f;hb=fa32c4233b4a02ae631602dbb0a234ab10df8aaf;hp=6842f8b2aaad031988a304e5bbc437a4b8f45469;hpb=7d50938ba2db52a713498e49aa1679deae6f0b6b;p=clsql.git diff --git a/db-mysql/mysql-api.lisp b/db-mysql/mysql-api.lisp index 6842f8b..7170fda 100644 --- a/db-mysql/mysql-api.lisp +++ b/db-mysql/mysql-api.lisp @@ -2,13 +2,13 @@ ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; -;;;; Name: mysql.cl +;;;; Name: mysql-api.lisp ;;;; Purpose: Low-level MySQL interface using UFFI ;;;; Programmers: Kevin M. Rosenberg based on ;;;; Original code by Pierre R. Mai ;;;; Date Started: Feb 2002 ;;;; -;;;; $Id: mysql-api.lisp,v 1.1 2002/09/30 10:19:23 kevin Exp $ +;;;; $Id$ ;;;; ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; and Copyright (c) 1999-2001 by Pierre R. Mai @@ -18,9 +18,7 @@ ;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL. ;;;; ************************************************************************* -(declaim (optimize (debug 3) (speed 3) (safety 1) (compilation-speed 0))) - -(in-package :mysql) +(in-package #:mysql) ;;;; Modifications from original code ;;;; - Updated C-structures to conform to structures in MySQL 3.23.46 @@ -107,7 +105,8 @@ (:blob 252) (:var-string 253) (:string 254))) - + +#+mysql-client-v3 (uffi:def-struct mysql-field (name (* :char)) (table (* :char)) @@ -118,6 +117,20 @@ (flags :unsigned-int) (decimals :unsigned-int)) +;; structure changed in mysql 4 client +#+mysql-client-v4 +(uffi:def-struct mysql-field + (name (* :char)) + (table (* :char)) + (org_table (* :char)) + (db (* :char)) + (def (* :char)) + (length :unsigned-int) + (max-length :unsigned-int) + (flags :unsigned-int) + (decimals :unsigned-int) + (type mysql-field-types)) + ;;; MYSQL-ROWS (uffi:def-array-pointer mysql-row (* :unsigned-char)) @@ -234,7 +247,9 @@ :module "mysql" :returning (* mysql-mysql)) +#-mysql-client-v4 (declaim (inline mysql-connect)) +#-mysql-client-v4 (uffi:def-function "mysql_connect" ((mysql (* mysql-mysql)) (host :cstring) @@ -245,7 +260,7 @@ ;; Need to comment this out for LW 4.2.6 ;; ? bug in LW version -;;(declaim (inline mysql-real-connect)) +#-lispworks (declaim (inline mysql-real-connect)) (uffi:def-function "mysql_real_connect" ((mysql (* mysql-mysql)) (host :cstring) @@ -289,14 +304,18 @@ :module "mysql" :returning :int) +#-mysql-client-v4 (declaim (inline mysql-create-db)) +#-mysql-client-v4 (uffi:def-function "mysql_create_db" ((mysql (* mysql-mysql)) (db :cstring)) :module "mysql" :returning :int) +#-mysql-client-v4 (declaim (inline mysql-drop-db)) +#-mysql-client-v4 (uffi:def-function "mysql_drop_db" ((mysql (* mysql-mysql)) (db :cstring)) @@ -347,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)))