(decimals :unsigned-int))
;; structure changed in mysql 4 client
-#+mysql-client-v4
+#+(and mysql-client-v4 (not mysql-client-v4.1))
(uffi:def-struct mysql-field
(name (* :char))
(table (* :char))
(decimals :unsigned-int)
(type mysql-field-types))
+#+mysql-client-v4.1
+(uffi:def-struct mysql-field
+ (name (* :char))
+ (org_table (* :char))
+ (table (* :char))
+ (org_table (* :char))
+ (db (* :char))
+ (catalog_db (* :char))
+ (def (* :char))
+ (length :unsigned-long)
+ (max-length :unsigned-long)
+ (name-length :unsigned-int)
+ (org-name-length :unsigned-int)
+ (table-length :unsigned-int)
+ (org-table-length :unsigned-int)
+ (db-length :unsigned-int)
+ (catalog-length :unsigned-int)
+ (def-length :unsigned-int)
+ (flags :unsigned-int)
+ (decimals :unsigned-int)
+ (charsetnr :unsigned-int)
+ (type mysql-field-types))
+
;;; MYSQL-ROWS
(uffi:def-array-pointer mysql-row (* :unsigned-char))
(handle (:struct-pointer mysql-mysql))
(eof mysql-bool))
+#+mysql-client-v4.1
+(uffi:def-struct mysql-bind
+ (length (* :unsigned-long))
+ (is-null (* :short))
+ (buffer :pointer-void)
+ (buffer-type :int)
+ (buffer-length :unsigned-long)
+ ;; remainder of structure is for internal use
+ )
+
;;;; The Foreign C routines
(declaim (inline mysql-init))
(uffi:def-function "mysql_init"
(db :cstring)
(port :unsigned-int)
(unix-socket :cstring)
- (clientflag :unsigned-int))
+ (clientflag :unsigned-long))
:module "mysql"
:returning (* mysql-mysql))
:module "clsql-mysql"
:returning :unsigned-int)
+#+mysql-client-v4.1
+(uffi:def-foreign-type mysql-stmt-ptr :pointer-void)
+
+#+mysql-client-v4.1
+(uffi:def-function "mysql_stmt_init"
+ ((res (* mysql-mysql-res)))
+ :module "clsql-mysql"
+ :returning mysql-stmt-ptr)
+
+#+mysql-client-v4.1
+(uffi:def-function "mysql_stmt_bind_param"
+ ((stmt mysql-stmt-ptr)
+ (bind (* mysql-bind)))
+ :module "clsql-mysql"
+ :returning :short)
+
+#+mysql-client-v4.1
+(uffi:def-function "mysql_stmt_bind_result"
+ ((stmt mysql-stmt-ptr)
+ (bind (* mysql-bind)))
+ :module "clsql-mysql"
+ :returning :short)
+
+#+mysql-client-v4.1
+(uffi:def-function "mysql_stmt_execute"
+ ((stmt mysql-stmt-ptr))
+ :module "clsql-mysql"
+ :returning :int)
+
+#+mysql-client-v4.1
+(uffi:def-function "mysql_stmt_fetch"
+ ((stmt mysql-stmt-ptr))
+ :module "clsql-mysql"
+ :returning :int)
+
+#+mysql-client-v4.1
+(uffi:def-function "mysql_stmt_free_result"
+ ((stmt mysql-stmt-ptr))
+ :module "clsql-mysql"
+ :returning :short)
;;;; Equivalents of C Macro definitions for accessing various fields
;;;; in the internal MySQL Datastructures
:module "clsql-mysql"
:returning :void)
-
(defun mysql-data-seek (res offset)
(multiple-value-bind (high32 low32) (split-64-bit-integer offset)
(clsql-mysql-data-seek res high32 low32)))