(sql-expression :table (view-table class))))
-(defparameter *default-varchar-length* 255)
-
(defmethod database-get-type-specifier (type args database db-type)
(declare (ignore type args database db-type))
- (format nil "VARCHAR(~D)" *default-varchar-length*))
+ (format nil "VARCHAR(~D)" *default-string-length*))
(defmethod database-get-type-specifier ((type (eql 'integer)) args database db-type)
(declare (ignore database db-type))
(if args
(format nil "INT(~A)" (car args))
- "INT"))
+ "INT"))
+
+(deftype tinyint ()
+ "An 8-bit integer, this width may vary by SQL implementation."
+ 'integer)
+
+(defmethod database-get-type-specifier ((type (eql 'tinyint)) args database db-type)
+ (declare (ignore args database db-type))
+ "INT")
+
+(deftype smallint ()
+ "An integer smaller than a 32-bit integer, this width may vary by SQL implementation."
+ 'integer)
+
+(defmethod database-get-type-specifier ((type (eql 'smallint)) args database db-type)
+ (declare (ignore args database db-type))
+ "INT")
(deftype bigint ()
"An integer larger than a 32-bit integer, this width may vary by SQL implementation."
(declare (ignore database db-type))
(if args
(format nil "VARCHAR(~A)" (car args))
- (format nil "VARCHAR(~D)" *default-varchar-length*)))
+ (format nil "VARCHAR(~D)" *default-string-length*)))
(defmethod database-get-type-specifier ((type (eql 'string)) args database db-type)
(declare (ignore database db-type))
(if args
(format nil "CHAR(~A)" (car args))
- (format nil "VARCHAR(~D)" *default-varchar-length*)))
+ (format nil "VARCHAR(~D)" *default-string-length*)))
(deftype universal-time ()
"A positive integer as returned by GET-UNIVERSAL-TIME."
(parse-integer val)))
(number val)))
+(defmethod read-sql-value (val (type (eql 'smallint)) database db-type)
+ (declare (ignore database db-type))
+ (etypecase val
+ (string
+ (unless (string-equal "NIL" val)
+ (parse-integer val)))
+ (number val)))
+
(defmethod read-sql-value (val (type (eql 'bigint)) database db-type)
(declare (ignore database db-type))
(etypecase val