X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=sql%2Fgeneric-postgresql.lisp;h=5149bb08a6db516621c89870892825fb292b90c7;hp=c387f19c41117b2e6af10d06a904fe72775aea3c;hb=b5890c31a60303397efedb2110f46c6388426170;hpb=635fd6df23f5cdc0247ec93dfdb04e1be670412e diff --git a/sql/generic-postgresql.lisp b/sql/generic-postgresql.lisp index c387f19..5149bb0 100644 --- a/sql/generic-postgresql.lisp +++ b/sql/generic-postgresql.lisp @@ -32,7 +32,17 @@ (declare (ignore database)) (if args (format nil "CHAR(~A)" (car args)) - "VARCHAR")) + "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)) + "INT2") (defmethod database-get-type-specifier ((type (eql 'wall-time)) args database (db-type (eql :postgresql))) @@ -178,7 +188,7 @@ (parse-integer (caar (database-query - (concatenate 'string "SELECT LAST_VALUE ('" sequence-name "')") + (concatenate 'string "SELECT LAST_VALUE FROM " sequence-name) database nil nil))))) (defun postgresql-database-list (connection-spec type) @@ -201,8 +211,12 @@ (defmethod database-list (connection-spec (type (eql :postgresql-socket))) (postgresql-database-list connection-spec type)) - +#+nil (defmethod database-describe-table ((database generic-postgresql-database) table) + ;; MTP: LIST-ATTRIBUTE-TYPES currently executes separate queries for + ;; each attribute. It would be more efficient to have a single SQL + ;; query return the type data for all attributes. This code is + ;; retained as an example of how to do this for PostgreSQL. (database-query (format nil "select a.attname, t.typname from pg_class c, pg_attribute a, pg_type t