X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=sql%2Fclasses.lisp;h=4e697caf0cfb7a51cfd402682d8d35dba733da1e;hb=026988a3144e3ed7f48552b5567c34448fef51bc;hp=e7bc74e2934fd311b7808f083571ad21db8cb077;hpb=71ac7a8d3e5bea99472b07fa2a089c7173abb1f7;p=clsql.git diff --git a/sql/classes.lisp b/sql/classes.lisp index e7bc74e..4e697ca 100644 --- a/sql/classes.lisp +++ b/sql/classes.lisp @@ -13,7 +13,7 @@ ;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL. ;;;; ************************************************************************* -(in-package #:clsql) +(in-package #:clsql-sys) (defvar +empty-string+ "''") @@ -515,7 +515,9 @@ (defvar *select-arguments* '(:all :database :distinct :flatp :from :group-by :having :order-by :order-by-descending :set-operation :where :offset :limit - :inner-join :on)) + :inner-join :on + ;; below keywords are not a SQL argument, but these keywords may terminate select + :caching :refresh)) (defun query-arg-p (sym) (member sym *select-arguments*)) @@ -577,9 +579,10 @@ uninclusive, and the args from that keyword to the end." (output-sql (apply #'vector selections) database) (when from (write-string " FROM " *sql-stream*) - (if (listp from) - (output-sql (apply #'vector from) database) - (output-sql from database))) + (typecase from + (list (output-sql (apply #'vector from) database)) + (string (write-string from *sql-stream*)) + (t (output-sql from database)))) (when inner-join (write-string " INNER JOIN " *sql-stream*) (output-sql inner-join database)) @@ -626,6 +629,7 @@ uninclusive, and the args from that keyword to the end." t) (defmethod output-sql ((query sql-object-query) database) + (declare (ignore database)) (with-slots (objects) query (when objects