X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=sql%2Floop-extension.lisp;h=802533092c71b36a0c5ac8fa1655219ce622c674;hp=3eb6182c8403895c72ccad1e8735f86d29d779b1;hb=0e43efc5b776edd86d304e103123944a84efd9a4;hpb=f10c3dcbe75b5532d6646e24ecd25f5651a0c3a9 diff --git a/sql/loop-extension.lisp b/sql/loop-extension.lisp index 3eb6182..8025330 100644 --- a/sql/loop-extension.lisp +++ b/sql/loop-extension.lisp @@ -110,7 +110,7 @@ `(((,variable nil ,@(and data-type (list data-type))) (,query-var ,(first in-phrase)) (,db-var ,(first from-phrase)) - (,result-set-var nil) + (,result-set-var t) (,step-var nil)) ((multiple-value-bind (%rs %cols) (database-query-result-set ,query-var ,db-var :result-types :auto) @@ -131,9 +131,11 @@ :preposition-groups '((:of :in) (:from)) :inclusive-permitted nil) + #+lispworks -(cl-user::define-loop-method (record records tuple tuples) clsql-loop-method - (in of from)) +(cl-user::define-loop-method (loop::record loop::records loop::tuple loop::tuples) + clsql-loop-method + (loop::in loop::of loop::from)) #+lispworks (defun clsql-loop-method (method-name iter-var iter-var-data-type @@ -145,14 +147,14 @@ (loop for (prep . rest) in prep-phrases do (cond - ((or (eq prep 'in) (eq prep 'of)) + ((or (eq prep 'loop::in) (eq prep 'loop::of)) (when in-phrase (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) + ((eq prep 'loop::from) (when from-phrase (error 'clsql:sql-user-error :message @@ -222,18 +224,18 @@ (,result-set-var nil) (,step-var nil)) `((multiple-value-bind (%rs %cols) - (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 (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 - (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 (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 - (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) ()