(declare (ignore database db-type))
val)
-(defmethod database-output-sql-as-type ((type (eql 'char))
- val database db-type)
+(defmethod database-output-sql-as-type ((type (eql 'char)) val database db-type)
(declare (ignore database db-type))
(etypecase val
(character (write-to-string val))
(string val)))
+(defmethod database-output-sql-as-type ((type (eql 'float)) val database db-type)
+ (declare (ignore database db-type))
+ (let ((*read-default-float-format* (type-of val)))
+ (format nil "~F" val)))
+
(defmethod read-sql-value (val type database db-type)
(declare (ignore type database db-type))
(read-from-string val))
View Classes VIEW-CLASSES are passed as arguments to SELECT."
(declare (ignore all set-operation group-by having offset limit inner-join on)
(optimize (debug 3) (speed 1)))
- (labels ((ref-equal (ref1 ref2)
- (equal (sql ref1)
- (sql ref2)))
- (table-sql-expr (table)
- (sql-expression :table (view-table table)))
- (tables-equal (table-a table-b)
- (when (and table-a table-b)
- (string= (string (slot-value table-a 'name))
- (string (slot-value table-b 'name))))))
+ (flet ((ref-equal (ref1 ref2)
+ (string= (sql-output ref1 database)
+ (sql-output ref2 database)))
+ (table-sql-expr (table)
+ (sql-expression :table (view-table table)))
+ (tables-equal (table-a table-b)
+ (when (and table-a table-b)
+ (string= (string (slot-value table-a 'name))
+ (string (slot-value table-b 'name))))))
(remf args :from)
(remf args :where)
(remf args :flatp)