;;;; 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.3 2002/03/27 08:09:25 kevin Exp $
;;;;
;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;; and Copyright (c) 1999-2001 by Pierre R. Mai
;;; 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)
: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)
;;;; 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)
: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)))