X-Git-Url: http://jaekl.net/gitweb/?p=cfb.git;a=blobdiff_plain;f=prod%2Fnet%2Fjaekl%2Fcfb%2Fdb%2Fdriver%2FPostgresqlDriver.java;h=fbb328503add803379a1cab500a959bdefc0c9f0;hp=8e19fc49aca4f63ef76336e2fa0309a13d18c228;hb=acd090d811c44ce74d0728d2a478f4c174f4ef49;hpb=538190e8467a555615fbaf1ada3eed44631e10b4 diff --git a/prod/net/jaekl/cfb/db/driver/PostgresqlDriver.java b/prod/net/jaekl/cfb/db/driver/PostgresqlDriver.java index 8e19fc4..fbb3285 100644 --- a/prod/net/jaekl/cfb/db/driver/PostgresqlDriver.java +++ b/prod/net/jaekl/cfb/db/driver/PostgresqlDriver.java @@ -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(); + }}