;;;; *************************************************************************
;;;; FILE IDENTIFICATION
;;;;
-;;;; Name: loop-extension.lisp
+;;;; Name: loop-extension.lisp
;;;; Purpose: Extensions to the Loop macro for CLSQL
;;;;
;;;; Copyright (c) 2001-2004 Kevin Rosenberg and (c) 1999-2001 Pierre R. Mai
(setq variable (list variable)))
(cond
- ;; Object query resulting in a list of returned object instances
+ ;; object query
((and (consp (first in-phrase))
+ (string-equal "sql-query" (symbol-name (caar in-phrase)))
(consp (second (first in-phrase)))
(eq 'quote (first (second (first in-phrase))))
(symbolp (second (second (first in-phrase)))))
'loop-record-result-))
(step-var (ansi-loop::loop-gentemp 'loop-record-step-)))
`(((,variable nil ,@(and data-type (list data-type)))
- (,result-var ,(first in-phrase))
+ (,result-var (clsql-base:query ,(first in-phrase)))
(,step-var nil))
()
()
(setq iter-var (list iter-var)))
(cond
- ;; Object query resulting in a list of returned object instances
- ((and (string-equal "select" (symbol-name (car in-phrase)))
- (eq 'quote (first (second in-phrase)))
- (symbolp (second (second in-phrase))))
+ ;; object query
+ ((and (consp in-phrase)
+ (string-equal "sql-query" (symbol-name (car in-phrase)))
+ (consp (second in-phrase))
+ (eq 'quote (first (second in-phrase)))
+ (symbolp (second (second in-phrase))))
(let ((result-var (gensym "LOOP-RECORD-RESULT-"))
(step-var (gensym "LOOP-RECORD-STEP-")))
t
nil
`(,@(mapcar (lambda (v) `(,v nil)) iter-var)
- (,result-var ,in-phrase)
- (,step-var nil))
+ (,result-var (clsql-base:query ,in-phrase))
+ (,step-var nil))
()
()
()