r9114: fixes for list-indexes
[clsql.git] / sql / classes.lisp
index 8f75cbf7a1c91f6ceb49244487cb68d7e1bf6e4d..7098ca2c81eafb294522578b648d896f0f20782f 100644 (file)
 (defvar *sql-stream* nil
   "stream which accumulates SQL output")
 
-(defvar *default-schema* "UNCOMMONSQL")
-
-(defvar *object-schemas* (make-hash-table :test #'equal)
-  "Hash of schema name to class constituent lists.")
-
-(defun in-schema (schemaname)
-  (setf *default-schema* schemaname))
-
 (defun sql-output (sql-expr &optional database)
   (progv '(*sql-stream*)
       `(,(make-string-output-stream))
           (format *sql-stream* "~s" alias))))
   t)
 
+#|
+(defmethod database-output-sql ((self duration) database)
+  (declare (ignore database))
+  (format nil "'~a'" (duration-timestring self)))
+
+(defmethod database-output-sql ((self money) database)
+  (database-output-sql (slot-value self 'odcl::units) database))
+|#
+
+
 (defmethod output-sql-hash-key ((expr sql-ident-table) &optional
                                 (database *default-database*))
   (declare (ignore database))
@@ -642,13 +644,14 @@ uninclusive, and the args from that keyword to the end."
 (defmethod output-sql ((stmt sql-create-table) &optional
                        (database *default-database*))
   (flet ((output-column (column-spec)
-           (destructuring-bind (name type &rest constraints)
+           (destructuring-bind (name type &optional db-type &rest constraints)
                column-spec
              (let ((type (listify type)))
                (output-sql name database)
                (write-char #\Space *sql-stream*)
                (write-string
-                (database-get-type-specifier (car type) (cdr type) database)
+                (if (stringp db-type) db-type ; override definition
+                    (database-get-type-specifier (car type) (cdr type) database))
                 *sql-stream*)
                (let ((constraints
                       (database-constraint-statement constraints database)))