X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=interfaces%2Fmysql%2Fmysql-api.cl;h=ab88a7bbbcf985be74b7d5c52d63490c7e38cea3;hb=cdd84f18473361ae5220666bbe0526fa565bc060;hp=2a3b91109b3e71210409ab850fa0fb54e77f4463;hpb=b06cb6d32e2a334f7dc72e8fb583a5b9609136b7;p=clsql.git diff --git a/interfaces/mysql/mysql-api.cl b/interfaces/mysql/mysql-api.cl index 2a3b911..ab88a7b 100644 --- a/interfaces/mysql/mysql-api.cl +++ b/interfaces/mysql/mysql-api.cl @@ -8,7 +8,7 @@ ;;;; Original code by Pierre R. Mai ;;;; Date Started: Feb 2002 ;;;; -;;;; $Id: mysql-api.cl,v 1.1 2002/03/23 17:10:47 kevin Exp $ +;;;; $Id: mysql-api.cl,v 1.4 2002/05/25 15:57:28 kevin Exp $ ;;;; ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; and Copyright (c) 1999-2001 by Pierre R. Mai @@ -121,6 +121,7 @@ ;;; MYSQL-ROWS (uffi:def-array-pointer mysql-row (* :unsigned-char)) +(uffi:def-array-pointer mysql-field-vector (* mysql-field)) (uffi:def-foreign-type mysql-field-offset :unsigned-int) @@ -241,16 +242,18 @@ :module "mysql" :returning (* mysql-mysql)) -(declaim (inline mysql-real-connect)) +;; Need to comment this out for LW 4.2.6 +;; ? bug in LW version +;;(declaim (inline mysql-real-connect)) (uffi:def-function "mysql_real_connect" - ((mysql (* mysql-mysql)) - (host :cstring) - (user :cstring) - (passwd :cstring) - (db :cstring) - (port :unsigned-int) - (unix-socket :cstring) - (clientflag :unsigned-int)) + ((mysql (* mysql-mysql)) + (host :cstring) + (user :cstring) + (passwd :cstring) + (db :cstring) + (port :unsigned-int) + (unix-socket :cstring) + (clientflag :unsigned-int)) :module "mysql" :returning (* mysql-mysql)) @@ -447,6 +450,19 @@ :module "mysql" :returning (* mysql-field)) +(declaim (inline mysql-fetch-fields)) +(uffi:def-function "mysql_fetch_fields" + ((res (* mysql-mysql-res))) + :module "mysql" + :returning mysql-field-vector) + +(declaim (inline mysql-fetch-field-direct)) +(uffi:def-function "mysql_fetch_field_direct" + ((res (* mysql-mysql-res)) + (field-num :unsigned-int)) + :module "mysql" + :returning (* mysql-field)) + (declaim (inline mysql-escape-string)) (uffi:def-function "mysql_escape_string" ((to :cstring) @@ -472,11 +488,6 @@ ;;;; Equivalents of C Macro definitions for accessing various fields ;;;; in the internal MySQL Datastructures -(uffi:def-constant +2^32+ 4294967296) -(uffi:def-constant +2^32-1+ (1- +2^32+)) - -(defmacro make-64-bit-integer (high32 low32) - `(+ ,low32 (* ,high32 +2^32+))) (declaim (inline mysql-num-rows)) (defun mysql-num-rows (res) @@ -569,11 +580,7 @@ :returning :void) -(declaim (inline split-64bit-integer)) -(defun split-64bit-integer (int64) - (values (ash int64 -32) (logand int64 +2^32-1+))) - (defun mysql-data-seek (res offset) - (multiple-value-bind (high32 low32) (split-64bit-integer offset) + (multiple-value-bind (high32 low32) (split-64-bit-integer offset) (clsql-mysql-data-seek res high32 low32)))