made select accept a parameters argument. If parameters are supplied, it builds
[clsql.git] / sql / oodml.lisp
index 9aff2c8dab99a36b930d09c103340b1125961abe..069275cefd0c9eea006ca9e8dffcfe155dabbb52 100644 (file)
@@ -884,7 +884,7 @@ maximum of MAX-LEN instances updated in each query."
                       order-by offset limit refresh flatp result-types
                       inner-join on
                       (database *default-database*)
-                      instances)
+                      instances parameters)
   "Called by SELECT to generate object query results when the
   View Classes VIEW-CLASSES are passed as arguments to SELECT."
   (declare (ignore all set-operation group-by having offset limit inner-join on))
@@ -1112,6 +1112,7 @@ as elements of a list."
                       results))))))))
          (t
           (let* ((expr (apply #'make-query select-all-args))
+                (parameters (second (member :parameters select-all-args)))
                  (specified-types
                   (mapcar #'(lambda (attrib)
                               (if (typep attrib 'sql-ident-attribute)
@@ -1121,12 +1122,17 @@ as elements of a list."
                                         t))
                                   t))
                           (slot-value expr 'selections))))
+           
             (destructuring-bind (&key (flatp nil)
-                                      (result-types :auto)
-                                      (field-names t)
-                                      (database *default-database*)
-                                      &allow-other-keys)
+                                (result-types :auto)
+                                (field-names t)
+                                (database *default-database*)
+                                &allow-other-keys)
                 qualifier-args
+             (when parameters
+               (setf expr (make-instance 'command-object
+                                         :expression (sql-output expr database)
+                                         :parameters parameters)))
               (query expr :flatp flatp
                      :result-types
                      ;; specifying a type for an attribute overrides result-types