(case (base-value-type value-type)
((:string :cdata :varchar :char)
'(or null string))
+ (:datetime
+ '(or null integer))
(:character
'(or null character))
(:fixnum
:single-float)
(:double-float
:double-float)
+ (:datetime
+ :long-integer)
(otherwise
:text))
length)))