X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=sql%2Fgeneric-postgresql.lisp;h=c196a4568d46106e58d75dbf4a61429c1181759b;hp=43a92012532c85bfdc51098c00bfb95e8e18601b;hb=e75e62c7127f074ef2b2add3d2850c42dfaf590e;hpb=d528dfe7e23fe5732fdbf1a282498fbec298d6cd diff --git a/sql/generic-postgresql.lisp b/sql/generic-postgresql.lisp index 43a9201..c196a45 100644 --- a/sql/generic-postgresql.lisp +++ b/sql/generic-postgresql.lisp @@ -34,6 +34,11 @@ (format nil "CHAR(~A)" (car args)) "VARCHAR")) +(defmethod database-get-type-specifier ((type (eql 'tinyint)) args database + (db-type (eql :postgresql))) + (declare (ignore args database)) + "INT2") + (defmethod database-get-type-specifier ((type (eql 'smallint)) args database (db-type (eql :postgresql))) (declare (ignore args database)) @@ -44,6 +49,16 @@ (declare (ignore args database)) "TIMESTAMP WITHOUT TIME ZONE") +(defmethod database-get-type-specifier ((type (eql 'number)) args database + (db-type (eql :postgresql))) + (declare (ignore database db-type)) + (cond + ((and (consp args) (= (length args) 2)) + (format nil "NUMERIC(~D,~D)" (first args) (second args))) + ((and (consp args) (= (length args) 1)) + (format nil "NUMERIC(~D)" (first args))) + (t + "NUMERIC"))) ;;; Backend functions @@ -110,7 +125,7 @@ (result (mapcar #'car (database-query - (format nil "SELECT attname FROM pg_class,pg_attribute WHERE pg_class.oid=attrelid AND relname='~A'~A" + (format nil "SELECT attname FROM pg_class,pg_attribute WHERE pg_class.oid=attrelid AND attisdropped = FALSE AND relname='~A'~A" (string-downcase table) owner-clause) database nil nil))))