X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=sql%2Floop-extension.lisp;h=db1cfb62bcda7b67715760b6b8437fe6f4179edd;hp=d0f816f37da0192eadea3cdb3c5f2c35a68918a1;hb=e622ee6f4bf2b9fe81af59d566e651c983a4833b;hpb=279b34c9e8e28545c8f2a0959acb01d90138eeda diff --git a/sql/loop-extension.lisp b/sql/loop-extension.lisp index d0f816f..db1cfb6 100644 --- a/sql/loop-extension.lisp +++ b/sql/loop-extension.lisp @@ -16,7 +16,6 @@ (eval-when (:compile-toplevel :load-toplevel :execute) (defpackage #:ansi-loop (:import-from #+sbcl #:sb-loop #+allegro #:excl - #:loop-error #:*loop-epilogue* #:*loop-ansi-universe* #:add-loop-path))) @@ -34,21 +33,29 @@ (case prep ((:in :of) (when in-phrase - (ansi-loop::loop-error - "Duplicate OF or IN iteration path: ~S." (cons prep rest))) + (error 'clsql:sql-user-error + :message + (format nil + "Duplicate OF or IN iteration path: ~S." + (cons prep rest)))) (setq in-phrase rest)) ((:from) (when from-phrase - (ansi-loop::loop-error - "Duplicate FROM iteration path: ~S." (cons prep rest))) + (error 'clsql:sql-user-error + :message + (format nil + "Duplicate FROM iteration path: ~S." + (cons prep rest)))) (setq from-phrase rest)) (t - (ansi-loop::loop-error - "Unknown preposition: ~S." prep)))) + (error 'clsql:sql-user-error + :message + (format nil"Unknown preposition: ~S." prep))))) (unless in-phrase - (ansi-loop::loop-error "Missing OF or IN iteration path.")) + (error 'clsql:sql-user-error + :message "Missing OF or IN iteration path.")) (unless from-phrase - (setq from-phrase '(clsql:*default-database*))) + (setq from-phrase '(clsql-sys:*default-database*))) (unless (consp variable) (setq variable (list variable))) @@ -65,7 +72,7 @@ 'loop-record-result-)) (step-var (ansi-loop::loop-gentemp 'loop-record-step-))) `(((,variable nil ,@(and data-type (list data-type))) - (,result-var (clsql:query ,(first in-phrase))) + (,result-var (clsql-sys:query ,(first in-phrase))) (,step-var nil)) () () @@ -94,7 +101,7 @@ 'loop-record-result-set-)) (step-var (ansi-loop::loop-gentemp 'loop-record-step-))) (push `(when ,result-set-var - (clsql:database-dump-result-set ,result-set-var ,db-var)) + (clsql-sys:database-dump-result-set ,result-set-var ,db-var)) ansi-loop::*loop-epilogue*) `(((,variable nil ,@(and data-type (list data-type))) (,query-var ,(first in-phrase)) @@ -102,15 +109,15 @@ (,result-set-var nil) (,step-var nil)) ((multiple-value-bind (%rs %cols) - (clsql:database-query-result-set ,query-var ,db-var :result-types :auto) + (clsql-sys:database-query-result-set ,query-var ,db-var :result-types :auto) (setq ,result-set-var %rs ,step-var (make-list %cols)))) () () - (not (clsql:database-store-next-row ,result-set-var ,db-var ,step-var)) + (not (clsql-sys:database-store-next-row ,result-set-var ,db-var ,step-var)) (,variable ,step-var) (not ,result-set-var) () - (not (clsql:database-store-next-row ,result-set-var ,db-var ,step-var)) + (not (clsql-sys:database-store-next-row ,result-set-var ,db-var ,step-var)) (,variable ,step-var))))))) #+(or cmu scl sbcl openmcl allegro) @@ -140,19 +147,24 @@ (cond ((or (eq prep 'in) (eq prep 'of)) (when in-phrase - (error - "Duplicate OF or IN iteration path: ~S." (cons prep rest))) + (error 'clsql:sql-user-error + :message + (format nil "Duplicate OF or IN iteration path: ~S." + (cons prep rest)))) (setq in-phrase rest)) ((eq prep 'from) (when from-phrase - (error - "Duplicate FROM iteration path: ~S." (cons prep rest))) + (error 'clsql:sql-user-error + :message + (format nil "Duplicate FROM iteration path: ~S." + (cons prep rest)))) (setq from-phrase rest)) (t - (error - "Unknown preposition: ~S." prep)))) + (error 'clsql:sql-user-error + :message (format nil "Unknown preposition: ~S." prep))))) (unless in-phrase - (error "Missing OF or IN iteration path.")) + (error 'clsql:sql-user-error + :message "Missing OF or IN iteration path.")) (unless from-phrase (setq from-phrase '(clsql:*default-database*))) @@ -210,18 +222,18 @@ (,result-set-var nil) (,step-var nil)) `((multiple-value-bind (%rs %cols) - (clsql:database-query-result-set ,query-var ,db-var :result-types :auto) + (clsql-sys:database-query-result-set ,query-var ,db-var :result-types :auto) (setq ,result-set-var %rs ,step-var (make-list %cols)))) () () - `((unless (clsql:database-store-next-row ,result-set-var ,db-var ,step-var) + `((unless (clsql-sys:database-store-next-row ,result-set-var ,db-var ,step-var) (when ,result-set-var - (clsql:database-dump-result-set ,result-set-var ,db-var)) + (clsql-sys:database-dump-result-set ,result-set-var ,db-var)) t)) `(,iter-var ,step-var) - `((unless (clsql:database-store-next-row ,result-set-var ,db-var ,step-var) + `((unless (clsql-sys:database-store-next-row ,result-set-var ,db-var ,step-var) (when ,result-set-var - (clsql:database-dump-result-set ,result-set-var ,db-var)) + (clsql-sys:database-dump-result-set ,result-set-var ,db-var)) t)) `(,iter-var ,step-var) ()