(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))
(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)))