From 7fe2be1c1362639b32fab48534f3dce614586ff4 Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Thu, 8 Apr 2004 18:04:03 +0000 Subject: [PATCH] r8880: v2.3.3 --- ChangeLog | 3 ++- base/loop-extension.lisp | 17 +++++++++++++++-- tests/test-fdml.lisp | 10 +++++----- tests/test-oodml.lisp | 2 +- 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index bdc14a0..30f84de 100644 --- 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 diff --git a/base/loop-extension.lisp b/base/loop-extension.lisp index fa66079..6ac4368 100644 --- a/base/loop-extension.lisp +++ b/base/loop-extension.lisp @@ -18,7 +18,20 @@ ;;;; 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)) @@ -90,7 +103,7 @@ (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* diff --git a/tests/test-fdml.lisp b/tests/test-fdml.lisp index 541b4d4..6387add 100644 --- a/tests/test-fdml.lisp +++ b/tests/test-fdml.lisp @@ -203,19 +203,19 @@ (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 @@ -234,7 +234,7 @@ (("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")) diff --git a/tests/test-oodml.lisp b/tests/test-oodml.lisp index 59e57d2..f64da41 100644 --- a/tests/test-oodml.lisp +++ b/tests/test-oodml.lisp @@ -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 -- 2.34.1