r9200: move large object support to base
[clsql.git] / sql / classes.lisp
index c2cd651317291031fb6b82fcc59646db951bc6d0..df84cd4b8d5ff9dad158ecb7c1d03c7404839515 100644 (file)
   (with-slots (qualifier name type params)
       expr
     (if (and (not qualifier) (not type))
-       (write-string (sql-escape (convert-to-db-default-case (symbol-name name) database)) *sql-stream*)
+       (write-string (sql-escape (convert-to-db-default-case 
+                                  (symbol-name name) database)) *sql-stream*)
       (format *sql-stream* "~@[~A.~]~A~@[ ~A~]"
-             (if qualifier (sql-escape qualifier) qualifier)
+             (when qualifier
+                 (convert-to-db-default-case (sql-escape qualifier) database))
              (sql-escape (convert-to-db-default-case name database))
-             type))
+             (when type
+                 (convert-to-db-default-case (symbol-name type) database))))
     t))
 
 (defmethod output-sql-hash-key ((expr sql-ident-attribute) database)
   (declare (ignore environment))
   (with-slots (alias name)
     sql
-    `(make-instance 'sql-ident-table :name name :alias ',alias)))
+    `(make-instance 'sql-ident-table :name ',name :table-alias ',alias)))
 
 (defun generate-sql (expr database)
   (let ((*sql-stream* (make-string-output-stream)))
@@ -432,7 +435,7 @@ uninclusive, and the args from that keyword to the end."
                 (subseq select-args first-key-arg))
         select-args)))
 
-(defmethod make-query (&rest args)
+(defun make-query (&rest args)
   (multiple-value-bind (selections arglist)
       (query-get-selections args)
     (destructuring-bind (&key all flatp set-operation distinct from where
@@ -690,8 +693,9 @@ uninclusive, and the args from that keyword to the end."
 ;; Column constraint types
 ;;
 (defparameter *constraint-types*
-  '(("NOT-NULL" . "NOT NULL")
-    ("PRIMARY-KEY" . "PRIMARY KEY")))
+  (list 
+   (cons (symbol-name-default-case "NOT-NULL") "NOT NULL") 
+   (cons (symbol-name-default-case "PRIMARY-KEY") "PRIMARY KEY")))
 
 ;;
 ;; Convert type spec to sql syntax