Add some unit testing of the CfbSchema.
[cfb.git] / prod / net / jaekl / cfb / db / driver / PostgresqlDriver.java
index 8e19fc49aca4f63ef76336e2fa0309a13d18c228..fbb328503add803379a1cab500a959bdefc0c9f0 100644 (file)
@@ -8,6 +8,7 @@ import java.sql.SQLException;
 import java.util.Properties;
 
 import net.jaekl.cfb.db.Sequence;
+import net.jaekl.cfb.db.Column.Type;
 
 public class PostgresqlDriver extends DbDriver {
 
@@ -34,4 +35,16 @@ public class PostgresqlDriver extends DbDriver {
        {
                return " SELECT NEXTVAL('" + seq.getName() + "') ";
        }
-}
+       
+       @Override
+       protected String typeName(Type type) {
+               // Special case:  TIMESTAMPTZ stored as INTEGER (milliseconds since the epoch)
+               // Reading a TIMESTAMPTZ back from the DB, and converting it to a java.util.Date,
+               // is fraught with peril.  The best way around this is to store the dates in 
+               // milliseconds-since-the-epoch (01.01.1970 00:00:00.000 UTC).
+               if (Type.TIMESTAMPTZ.equals(type)) {
+                       return "BIGINT";
+               }
+               
+               return type.toString();
+       }}