12 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
* sql/sql.lisp: Add FOR-EACH-ROW macro from clsql-classic/sql.lisp
+ * db-sqlite/sqlite-uffi-api.lisp: Fix row-pointer type
+ * *: Fix minor style warnings
* clsql-classic: Remove system and subdirectory
* clsql-base: Remove system and subdirectory and
fold into clsql system
;;; Support for encrypted password transmission
#-scl
-(eval-when (compile eval load)
+(eval-when (:compile-toplevel :load-toplevel :execute)
(defvar *crypt-library-loaded* nil)
(unless *crypt-library-loaded*
;;;; *************************************************************************
;;;; FILE IDENTIFICATION
;;;;
-;;;; Name: sqlite-api-uffi.lisp
-;;;; Purpose: Low-level SQLite interface using UFFI
-;;;; Programmers: Aurelio Bignoli and Kevin Rosenberg
-;;;; Date Started: Nov 2003
+;;;; Name: sqlite-api-uffi.lisp
+;;;; Purpose: Low-level SQLite interface using UFFI
+;;;; Authors: Aurelio Bignoli and Kevin Rosenberg
+;;;; Created: Nov 2003
;;;;
;;;; $Id$
;;;;
(def-foreign-type sqlite-db :pointer-void)
(def-foreign-type sqlite-vm :pointer-void)
(def-foreign-type string-pointer (* (* :unsigned-char)))
-(def-foreign-type sqlite-row-pointer (* string-pointer))
+(def-foreign-type sqlite-row-pointer (* (* :unsigned-char)))
(defvar +null-errmsg-pointer+ (make-null-pointer 'errmsg))
(defvar +null-string-pointer-pointer+ (make-null-pointer 'string-pointer))
;;; Query
-(defgeneric query (query-expression &key database result-types flatp)
+(defgeneric query (query-expression &key database result-types flatp field-names)
(:documentation
"Execute the SQL query expression QUERY-EXPRESSION on the given
DATABASE which defaults to *default-database*. RESULT-TYPES is a list
t)
(defmethod output-sql ((query sql-object-query) database)
+ (declare (ignore database))
(with-slots (objects)
query
(when objects
;; all other slots
(t
(let ((type-predicate #+openmcl (slot-value esd 'ccl::type-predicate)))
+ #-openmcl (declare (ignore type-predicate))
(change-class esd 'view-class-effective-slot-definition
#+allegro :name
#+allegro (slot-definition-name dsd))
:result-types result-types :field-names field-names))
(defmethod query ((expr sql-object-query) &key (database *default-database*)
- (result-types :auto) (flatp nil))
- (declare (ignore result-types))
+ (result-types :auto) (flatp nil) (field-names t))
+ (declare (ignore result-types field-names))
(apply #'select (append (slot-value expr 'objects)
(slot-value expr 'exp)
(when (slot-value expr 'refresh)
(length-auto-list (length auto-list)))
((= i length-auto-list)
(nreverse new-types))
- (declaim (fixnum length-types length-auto-list i))
+ (declare (fixnum length-types length-auto-list i))
(if (>= i length-types)
(push t new-types) ;; types is shorted than num-fields
(push