r11060: fix loop error on clisp. RESULT-SET should be T at start of loop to avoid...
[clsql.git] / sql / loop-extension.lisp
index 3eb6182c8403895c72ccad1e8735f86d29d779b1..802533092c71b36a0c5ac8fa1655219ce622c674 100644 (file)
         `(((,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)
                          :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
     (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
            (,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)
          ()