r10145: add patch for collect-table-refs
[clsql.git] / sql / expressions.lisp
index bfb33c1550768270a87533a60350e66d58fc5d65..88293b30d360e24207e187e85c54e12bac7d99dd 100644 (file)
@@ -67,7 +67,8 @@
 (defmethod print-object ((self %sql-expression) stream)
   (print-unreadable-object
    (self stream :type t)
-   (write-string (sql-output self) stream)))
+   (write-string (sql-output self) stream))
+  self)
 
 ;; For straight up strings
 
@@ -91,7 +92,8 @@
 (defmethod print-object ((ident sql) stream)
   (format stream "#<~S \"~A\">"
           (type-of ident)
-          (sql-output ident nil)))
+          (sql-output ident nil))
+  ident)
 
 ;; For SQL Identifiers of generic type
 
 
 (defmethod collect-table-refs ((sql sql-function-exp))
   (let ((tabs nil))
-    (dolist (exp (slot-value sql 'components))
+    (dolist (exp (slot-value sql 'args))
       (let ((refs (collect-table-refs exp)))
         (if refs (setf tabs (append refs tabs)))))
     (remove-duplicates tabs
@@ -828,9 +830,9 @@ uninclusive, and the args from that keyword to the end."
 ;; 
 
 (defmethod database-output-sql ((str string) database)
-  (declare (ignore database)
-           (optimize (speed 3) (safety 1) #+cmu (extensions:inhibit-warnings 3))
-           (type (simple-array * (*)) str))
+  (declare (optimize (speed 3) (safety 1)
+                    #+cmu (extensions:inhibit-warnings 3))
+           (simple-string str))
   (let ((len (length str)))
     (declare (type fixnum len))
     (cond ((zerop len)