r8880: v2.3.3
authorKevin M. Rosenberg <kevin@rosenberg.net>
Thu, 8 Apr 2004 18:04:03 +0000 (18:04 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Thu, 8 Apr 2004 18:04:03 +0000 (18:04 +0000)
ChangeLog
base/loop-extension.lisp
tests/test-fdml.lisp
tests/test-oodml.lisp

index bdc14a03db9c10176088b519915df3fb820cf1b6..30f84de73fbabe09437df433587c55683bf2d1ea 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,7 +3,8 @@
        * 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
index fa66079c821da6d0e77a318bbca8f7c155375044..6ac4368b40e4669d4a3d25cae2aa05223939327b 100644 (file)
 
 ;;;; 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*
index 541b4d4e28e16bd40b2d91f687b24669250aa59c..6387add49165652c626756569f5ede511a80c775 100644 (file)
   (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"))
index 59e57d2aa78f302872ff0d22dde9b1aee4a7c3b2..f64da4153ecec06db703740fb110eb1e1fd82f5d 100644 (file)
@@ -50,7 +50,7 @@
 
 ;; 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