+(defun canonicalize-column-type (type)
+ (cond
+ ((string-equal type "TINYINT")
+ (case *umls-sql-type*
+ (:mysql "TINYINT")
+ ((:postgresql :postgresql-socket) "INT1")
+ (:oracle "NUMBER(3,0)")
+ (t "INTEGER")))
+ ((string-equal type "SMALLINT")
+ (case *umls-sql-type*
+ (:mysql "SMALLINT")
+ ((:postgresql :postgresql-socket) "INT2")
+ (:oracle "NUMBER(5,0)")
+ (t "INTEGER")))
+ ((string-equal type "INTEGER")
+ (case *umls-sql-type*
+ (:mysql "INTEGER")
+ ((:postgresql :postgresql-socket) "INT4")
+ (:oracle "NUMBER(9,0)")
+ (t "INTEGER")))
+ ((string-equal type "BIGINT")
+ (case *umls-sql-type*
+ (:mysql "BIGINT")
+ ((:postgresql :postgresql-socket) "INT8")
+ (:oracle "NUMBER(38,0)")
+ (t "INTEGER")))
+ ((string-equal type "TEXT")
+ (case *umls-sql-type*
+ (:mysql "TEXT")
+ ((:postgresql :postgresql-socket) "TEXT")
+ (:oracle "VARCHAR2(3000)")
+ (t "VARCHAR(3000)")))
+ ((string-equal type "VARCHAR")
+ (case *umls-sql-type*
+ (:mysql "VARCHAR")
+ ((:postgresql :postgresql-socket) "VARCHAR")
+ (:oracle "VARCHAR2")
+ (t "VARCHAR")))
+ ((string-equal type "NUMERIC")
+ (case *umls-sql-type*
+ (:mysql "NUMERIC")
+ ((:postgresql :postgresql-socket) "NUMERIC")
+ (:oracle "NUMBER")
+ (t "NUMERIC")))
+ (t
+ type)))
+