r9796: * sql/expressions.lisp: reactivate caching of generated SQL
[clsql.git] / sql / generic-postgresql.lisp
index c387f19c41117b2e6af10d06a904fe72775aea3c..5149bb08a6db516621c89870892825fb292b90c7 100644 (file)
   (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)))
    (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)
 (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