r10813: 11 Nov 2005 Kevin Rosenberg <kevin@rosenberg.net>
[clsql.git] / db-mysql / mysql-api.lisp
index fb6bfbf8794aaca45307826dc47595bdd8c89956..026bde07744211ace6735979ac06b812203152d7 100644 (file)
@@ -4,8 +4,8 @@
 ;;;;
 ;;;; Name:          mysql-api.lisp
 ;;;; Purpose:       Low-level MySQL interface using UFFI
-;;;; Programmers:   Kevin M. Rosenberg based on 
-;;;;                Original code by Pierre R. Mai 
+;;;; Programmers:   Kevin M. Rosenberg based on
+;;;;                Original code by Pierre R. Mai
 ;;;; Date Started:  Feb 2002
 ;;;;
 ;;;; $Id$
@@ -27,7 +27,7 @@
 ;;;;    that are used in a few routines.
 ;;;;  - Removed all references to interiors of C-structions, this will
 ;;;;    increase robustness when MySQL's internal structures change.
+
 ;;;; Type definitions
 
 ;;; Basic Types
   (decimals :unsigned-int)
   (type mysql-field-types))
 
-#+mysql-client-v4.1
+#+(or mysql-client-v4.1 mysql-client-v5)
 (uffi:def-struct mysql-field
     (name (* :char))
   (org_name (* :char))
   (charsetnr :unsigned-int)
   (type mysql-field-types))
 
+
 (uffi:def-struct mysql-time
     (year :unsigned-int)
   (month :unsigned-int)
      :read-default-group))
 
 (uffi:def-enum mysql-status
-    (:ready 
+    (:ready
      :get-result
      :use-result))
 
   (handle (:struct-pointer mysql-mysql))
   (eof mysql-bool))
 
-#+mysql-client-4.1
+#+(or mysql-client-v4.1 mysql-client-v5)
 (uffi:def-enum mysql-field-types
-    (:ready 
+    (:ready
      :get-result
      :use-result))
 
-#+mysql-client-v4.1
+#+(or mysql-client-v4.1 mysql-client-v5)
 (uffi:def-struct mysql-bind
     (length (* :unsigned-long))
   (is-null (* mysql-bool))
 (declaim (inline mysql-init))
 (uffi:def-function "mysql_init"
   ((mysql (* mysql-mysql)))
-  :module "mysql" 
+  :module "mysql"
   :returning (* mysql-mysql))
 
 #-mysql-client-v4
   :module "clsql-mysql"
   :returning :unsigned-int)
 
-#+mysql-client-v4.1
+#+(or mysql-client-v4.1 mysql-client-v5)
 (uffi:def-foreign-type mysql-stmt-ptr :pointer-void)
 
-#+mysql-client-v4.1
+#+(or mysql-client-v4.1 mysql-client-v5)
 (uffi:def-function "mysql_stmt_init"
     ((res (* mysql-mysql-res)))
   :module "clsql-mysql"
   :returning mysql-stmt-ptr)
 
-#+mysql-client-v4.1
+#+(or mysql-client-v4.1 mysql-client-v5)
 (uffi:def-function "mysql_stmt_prepare"
     ((stmt mysql-stmt-ptr)
      (query :cstring)
   :module "clsql-mysql"
   :returning :int)
 
-#+mysql-client-v4.1
+#+(or mysql-client-v4.1 mysql-client-v5)
 (uffi:def-function "mysql_stmt_param_count"
     ((stmt mysql-stmt-ptr))
   :module "clsql-mysql"
   :returning :unsigned-int)
 
-#+mysql-client-v4.1
+#+(or mysql-client-v4.1 mysql-client-v5)
 (uffi:def-function "mysql_stmt_bind_param"
     ((stmt mysql-stmt-ptr)
      (bind (* mysql-bind)))
   :module "clsql-mysql"
   :returning :short)
 
-#+mysql-client-v4.1
+#+(or mysql-client-v4.1 mysql-client-v5)
 (uffi:def-function "mysql_stmt_bind_result"
     ((stmt mysql-stmt-ptr)
      (bind (* mysql-bind)))
   :module "clsql-mysql"
   :returning :short)
 
-#+mysql-client-v4.1
+#+(or mysql-client-v4.1 mysql-client-v5)
 (uffi:def-function "mysql_stmt_result_metadata"
     ((stmt mysql-stmt-ptr))
   :module "clsql-mysql"
   :returning (* mysql-mysql-res))
 
 
-#+mysql-client-v4.1
+#+(or mysql-client-v4.1 mysql-client-v5)
 (uffi:def-function "mysql_stmt_execute"
     ((stmt mysql-stmt-ptr))
   :module "clsql-mysql"
   :returning :int)
 
-#+mysql-client-v4.1
+#+(or mysql-client-v4.1 mysql-client-v5)
 (uffi:def-function "mysql_stmt_store_result"
     ((stmt mysql-stmt-ptr))
   :module "clsql-mysql"
   :returning :int)
 
-#+mysql-client-v4.1
+#+(or mysql-client-v4.1 mysql-client-v5)
 (uffi:def-function "mysql_stmt_fetch"
     ((stmt mysql-stmt-ptr))
   :module "clsql-mysql"
   :returning :int)
 
-#+mysql-client-v4.1
+#+(or mysql-client-v4.1 mysql-client-v5)
 (uffi:def-function "mysql_stmt_free_result"
     ((stmt mysql-stmt-ptr))
   :module "clsql-mysql"
   :returning :short)
 
-#+mysql-client-v4.1
+#+(or mysql-client-v4.1 mysql-client-v5)
 (uffi:def-function "mysql_stmt_close"
     ((stmt mysql-stmt-ptr))
   :module "clsql-mysql"
   :returning :short)
 
-#+mysql-client-v4.1
+#+(or mysql-client-v4.1 mysql-client-v5)
 (uffi:def-function "mysql_stmt_errno"
     ((stmt mysql-stmt-ptr))
   :module "clsql-mysql"
   :returning :unsigned-int)
 
-#+mysql-client-v4.1
+#+(or mysql-client-v4.1 mysql-client-v5)
 (uffi:def-function "mysql_stmt_error"
     ((stmt mysql-stmt-ptr))
   :module "clsql-mysql"
 
 
 (declaim (inline mysql-num-fields))
-(uffi:def-function "mysql_num_fields" 
+(uffi:def-function "mysql_num_fields"
   ((res (* mysql-mysql-res)))
   :returning :unsigned-int
   :module "mysql")
-                
+
 (declaim (inline clsql-mysql-eof))
 (uffi:def-function ("mysql_eof" clsql-mysql-eof)
   ((res (* mysql-mysql-res)))