* Fixes for sequences on mysql and sqlite [Marcus Pearce]
* Fixes for uffi sqlite backend [Aurelio Bignoli / Kevin Rosenberg]
* Fix for schema table [Marcus Pearce]
-
+ * Add loop extension support for SBCL [Marcus Pearce]
+
06 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
* db-*/*-sql.lisp: Ensure that expr in
database-query-result-set is a string
;;;; MIT-LOOP extension
-#+(or cmu scl)
+#+sbcl
+(eval-when (:compile-toplevel :load-toplevel :execute)
+ (defpackage #:ansi-loop
+ (:import-from #:sb-loop
+ #:loop-error
+ #:*loop-epilogue*
+ #:*loop-ansi-universe*
+ #:add-loop-path)))
+
+#+sbcl
+(defun ansi-loop::loop-gentemp (&optional (pref 'loopva-))
+ (gensym (string pref)))
+
+#+(or cmu scl sbcl openmcl)
(defun loop-record-iteration-path (variable data-type prep-phrases)
(let ((in-phrase nil)
(from-phrase nil))
(not (clsql-base-sys:database-store-next-row ,result-set-var ,db-var ,variable))
()))))))
-#+(or cmu scl)
+#+(or cmu scl sbcl openmcl)
(ansi-loop::add-loop-path '(record records tuple tuples)
'loop-record-iteration-path
ansi-loop::*loop-ansi-universe*
(1 1 1 1 1 1 1 1 1 1))
(deftest :fdml/select/7
- (sql:select [max [emplid]] :from [employee] :flatp t)
+ (clsql:select [max [emplid]] :from [employee] :flatp t)
("10"))
(deftest :fdml/select/8
- (sql:select [min [emplid]] :from [employee] :flatp t)
+ (clsql:select [min [emplid]] :from [employee] :flatp t)
("1"))
(deftest :fdml/select/9
- (subseq (car (sql:select [avg [emplid]] :from [employee] :flatp t)) 0 3)
+ (subseq (car (clsql:select [avg [emplid]] :from [employee] :flatp t)) 0 3)
"5.5")
(deftest :fdml/select/10
- (sql:select [last-name] :from [employee]
+ (clsql:select [last-name] :from [employee]
:where [not [in [emplid]
[select [managerid] :from [company]]]]
:flatp t
(("Lenin")))
;(deftest :fdml/select/11
-; (sql:select [emplid] :from [employee]
+; (clsql:select [emplid] :from [employee]
; :where [= [emplid] [any [select [companyid] :from [company]]]]
; :flatp t)
; ("1"))
;; sqlite fails this because it is typeless
(deftest :oodml/select/5
- (length (sql:select 'employee :where [married]))
+ (length (clsql:select 'employee :where [married]))
3)
;; tests update-records-from-instance