Skip to content

Commit

Permalink
[#5734] Bad type mapping for PostgreSQL TIME[STAMP] WITH TIME ZONE an…
Browse files Browse the repository at this point in the history
…d SQL Server DATETIMEOFFSET types
  • Loading branch information
lukaseder committed Jan 16, 2017
1 parent 40d2d16 commit b911bb1
Showing 1 changed file with 38 additions and 32 deletions.
70 changes: 38 additions & 32 deletions jOOQ/src/main/java/org/jooq/util/postgres/PostgresDataType.java
Expand Up @@ -40,6 +40,8 @@
import java.sql.Date; import java.sql.Date;
import java.sql.Time; import java.sql.Time;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.time.OffsetDateTime;
import java.time.OffsetTime;
import java.util.UUID; import java.util.UUID;


import org.jooq.DataType; import org.jooq.DataType;
Expand Down Expand Up @@ -67,32 +69,42 @@ public class PostgresDataType {
// Default SQL data types and synonyms thereof // Default SQL data types and synonyms thereof
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------


public static final DataType<Short> SMALLINT = new DefaultDataType<Short>(SQLDialect.POSTGRES, SQLDataType.SMALLINT, "smallint"); public static final DataType<Short> SMALLINT = new DefaultDataType<Short>(SQLDialect.POSTGRES, SQLDataType.SMALLINT, "smallint");
public static final DataType<Short> INT2 = new DefaultDataType<Short>(SQLDialect.POSTGRES, SQLDataType.SMALLINT, "int2"); public static final DataType<Short> INT2 = new DefaultDataType<Short>(SQLDialect.POSTGRES, SQLDataType.SMALLINT, "int2");
public static final DataType<Integer> INT = new DefaultDataType<Integer>(SQLDialect.POSTGRES, SQLDataType.INTEGER, "int"); public static final DataType<Integer> INT = new DefaultDataType<Integer>(SQLDialect.POSTGRES, SQLDataType.INTEGER, "int");
public static final DataType<Integer> INTEGER = new DefaultDataType<Integer>(SQLDialect.POSTGRES, SQLDataType.INTEGER, "integer"); public static final DataType<Integer> INTEGER = new DefaultDataType<Integer>(SQLDialect.POSTGRES, SQLDataType.INTEGER, "integer");
public static final DataType<Integer> INT4 = new DefaultDataType<Integer>(SQLDialect.POSTGRES, SQLDataType.INTEGER, "int4"); public static final DataType<Integer> INT4 = new DefaultDataType<Integer>(SQLDialect.POSTGRES, SQLDataType.INTEGER, "int4");
public static final DataType<Long> BIGINT = new DefaultDataType<Long>(SQLDialect.POSTGRES, SQLDataType.BIGINT, "bigint"); public static final DataType<Long> BIGINT = new DefaultDataType<Long>(SQLDialect.POSTGRES, SQLDataType.BIGINT, "bigint");
public static final DataType<Long> INT8 = new DefaultDataType<Long>(SQLDialect.POSTGRES, SQLDataType.BIGINT, "int8"); public static final DataType<Long> INT8 = new DefaultDataType<Long>(SQLDialect.POSTGRES, SQLDataType.BIGINT, "int8");
public static final DataType<Double> DOUBLEPRECISION = new DefaultDataType<Double>(SQLDialect.POSTGRES, SQLDataType.DOUBLE, "double precision"); public static final DataType<Double> DOUBLEPRECISION = new DefaultDataType<Double>(SQLDialect.POSTGRES, SQLDataType.DOUBLE, "double precision");
public static final DataType<Double> FLOAT8 = new DefaultDataType<Double>(SQLDialect.POSTGRES, SQLDataType.FLOAT, "float8"); public static final DataType<Double> FLOAT8 = new DefaultDataType<Double>(SQLDialect.POSTGRES, SQLDataType.FLOAT, "float8");
public static final DataType<Float> REAL = new DefaultDataType<Float>(SQLDialect.POSTGRES, SQLDataType.REAL, "real"); public static final DataType<Float> REAL = new DefaultDataType<Float>(SQLDialect.POSTGRES, SQLDataType.REAL, "real");
public static final DataType<Float> FLOAT4 = new DefaultDataType<Float>(SQLDialect.POSTGRES, SQLDataType.REAL, "float4"); public static final DataType<Float> FLOAT4 = new DefaultDataType<Float>(SQLDialect.POSTGRES, SQLDataType.REAL, "float4");
public static final DataType<Boolean> BOOLEAN = new DefaultDataType<Boolean>(SQLDialect.POSTGRES, SQLDataType.BOOLEAN, "boolean"); public static final DataType<Boolean> BOOLEAN = new DefaultDataType<Boolean>(SQLDialect.POSTGRES, SQLDataType.BOOLEAN, "boolean");
public static final DataType<Boolean> BOOL = new DefaultDataType<Boolean>(SQLDialect.POSTGRES, SQLDataType.BOOLEAN, "bool"); public static final DataType<Boolean> BOOL = new DefaultDataType<Boolean>(SQLDialect.POSTGRES, SQLDataType.BOOLEAN, "bool");
public static final DataType<BigDecimal> NUMERIC = new DefaultDataType<BigDecimal>(SQLDialect.POSTGRES, SQLDataType.NUMERIC, "numeric"); public static final DataType<BigDecimal> NUMERIC = new DefaultDataType<BigDecimal>(SQLDialect.POSTGRES, SQLDataType.NUMERIC, "numeric");
public static final DataType<BigDecimal> DECIMAL = new DefaultDataType<BigDecimal>(SQLDialect.POSTGRES, SQLDataType.DECIMAL, "decimal"); public static final DataType<BigDecimal> DECIMAL = new DefaultDataType<BigDecimal>(SQLDialect.POSTGRES, SQLDataType.DECIMAL, "decimal");
public static final DataType<String> VARCHAR = new DefaultDataType<String>(SQLDialect.POSTGRES, SQLDataType.VARCHAR, "varchar"); public static final DataType<String> VARCHAR = new DefaultDataType<String>(SQLDialect.POSTGRES, SQLDataType.VARCHAR, "varchar");
public static final DataType<String> CHARACTERVARYING = new DefaultDataType<String>(SQLDialect.POSTGRES, SQLDataType.VARCHAR, "character varying"); public static final DataType<String> CHARACTERVARYING = new DefaultDataType<String>(SQLDialect.POSTGRES, SQLDataType.VARCHAR, "character varying");
public static final DataType<String> CHAR = new DefaultDataType<String>(SQLDialect.POSTGRES, SQLDataType.CHAR, "char"); public static final DataType<String> CHAR = new DefaultDataType<String>(SQLDialect.POSTGRES, SQLDataType.CHAR, "char");
public static final DataType<String> CHARACTER = new DefaultDataType<String>(SQLDialect.POSTGRES, SQLDataType.CHAR, "character"); public static final DataType<String> CHARACTER = new DefaultDataType<String>(SQLDialect.POSTGRES, SQLDataType.CHAR, "character");
public static final DataType<String> TEXT = new DefaultDataType<String>(SQLDialect.POSTGRES, SQLDataType.CLOB, "text"); public static final DataType<String> TEXT = new DefaultDataType<String>(SQLDialect.POSTGRES, SQLDataType.CLOB, "text");
public static final DataType<Date> DATE = new DefaultDataType<Date>(SQLDialect.POSTGRES, SQLDataType.DATE, "date"); public static final DataType<Date> DATE = new DefaultDataType<Date>(SQLDialect.POSTGRES, SQLDataType.DATE, "date");
public static final DataType<Time> TIME = new DefaultDataType<Time>(SQLDialect.POSTGRES, SQLDataType.TIME, "time"); public static final DataType<Time> TIME = new DefaultDataType<Time>(SQLDialect.POSTGRES, SQLDataType.TIME, "time");
public static final DataType<Timestamp> TIMESTAMP = new DefaultDataType<Timestamp>(SQLDialect.POSTGRES, SQLDataType.TIMESTAMP, "timestamp"); public static final DataType<Time> TIMEWITHOUTTIMEZONE = new DefaultDataType<Time>(SQLDialect.POSTGRES, SQLDataType.TIME, "time without time zone");
public static final DataType<byte[]> BYTEA = new DefaultDataType<byte[]>(SQLDialect.POSTGRES, SQLDataType.BLOB, "bytea");
public static final DataType<YearToMonth> INTERVALYEARTOMONTH = new DefaultDataType<YearToMonth>(SQLDialect.POSTGRES, SQLDataType.INTERVALYEARTOMONTH, "interval year to month"); public static final DataType<OffsetTime> TIMEWITHTIMEZONE = new DefaultDataType<OffsetTime>(SQLDialect.POSTGRES, SQLDataType.TIMEWITHTIMEZONE, "time with time zone");
public static final DataType<DayToSecond> INTERVALDAYTOSECOND = new DefaultDataType<DayToSecond>(SQLDialect.POSTGRES, SQLDataType.INTERVALDAYTOSECOND, "interval day to second"); public static final DataType<OffsetTime> TIMETZ = new DefaultDataType<OffsetTime>(SQLDialect.POSTGRES, SQLDataType.TIMEWITHTIMEZONE, "timetz");

public static final DataType<Timestamp> TIMESTAMP = new DefaultDataType<Timestamp>(SQLDialect.POSTGRES, SQLDataType.TIMESTAMP, "timestamp");
public static final DataType<Timestamp> TIMESTAMPWITHOUTTIMEZONE = new DefaultDataType<Timestamp>(SQLDialect.POSTGRES, SQLDataType.TIMESTAMP, "timestamp without time zone");

public static final DataType<OffsetDateTime> TIMESTAMPWITHTIMEZONE = new DefaultDataType<OffsetDateTime>(SQLDialect.POSTGRES, SQLDataType.TIMESTAMPWITHTIMEZONE, "timestamp with time zone");
public static final DataType<OffsetDateTime> TIMESTAMPTZ = new DefaultDataType<OffsetDateTime>(SQLDialect.POSTGRES, SQLDataType.TIMESTAMPWITHTIMEZONE, "timestamptz");

public static final DataType<byte[]> BYTEA = new DefaultDataType<byte[]>(SQLDialect.POSTGRES, SQLDataType.BLOB, "bytea");
public static final DataType<YearToMonth> INTERVALYEARTOMONTH = new DefaultDataType<YearToMonth>(SQLDialect.POSTGRES, SQLDataType.INTERVALYEARTOMONTH, "interval year to month");
public static final DataType<DayToSecond> INTERVALDAYTOSECOND = new DefaultDataType<DayToSecond>(SQLDialect.POSTGRES, SQLDataType.INTERVALDAYTOSECOND, "interval day to second");


// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// Compatibility types for supported SQLDialect.POSTGRES, SQLDataTypes // Compatibility types for supported SQLDialect.POSTGRES, SQLDataTypes
Expand Down Expand Up @@ -132,12 +144,6 @@ public class PostgresDataType {
public static final DataType<String> VARBIT = new DefaultDataType<String>(SQLDialect.POSTGRES, SQLDataType.VARCHAR, "varbit"); public static final DataType<String> VARBIT = new DefaultDataType<String>(SQLDialect.POSTGRES, SQLDataType.VARCHAR, "varbit");
public static final DataType<String> BIT = new DefaultDataType<String>(SQLDialect.POSTGRES, SQLDataType.CHAR, "bit"); public static final DataType<String> BIT = new DefaultDataType<String>(SQLDialect.POSTGRES, SQLDataType.CHAR, "bit");
public static final DataType<String> BPCHAR = new DefaultDataType<String>(SQLDialect.POSTGRES, SQLDataType.CHAR, "bpchar"); public static final DataType<String> BPCHAR = new DefaultDataType<String>(SQLDialect.POSTGRES, SQLDataType.CHAR, "bpchar");
public static final DataType<Time> TIMEWITHOUTTIMEZONE = new DefaultDataType<Time>(SQLDialect.POSTGRES, SQLDataType.TIME, "time without time zone");
public static final DataType<Time> TIMEWITHTIMEZONE = new DefaultDataType<Time>(SQLDialect.POSTGRES, SQLDataType.TIME, "time with time zone");
public static final DataType<Time> TIMETZ = new DefaultDataType<Time>(SQLDialect.POSTGRES, SQLDataType.TIME, "timetz");
public static final DataType<Timestamp> TIMESTAMPWITHOUTTIMEZONE = new DefaultDataType<Timestamp>(SQLDialect.POSTGRES, SQLDataType.TIMESTAMP, "timestamp without time zone");
public static final DataType<Timestamp> TIMESTAMPWITHTIMEZONE = new DefaultDataType<Timestamp>(SQLDialect.POSTGRES, SQLDataType.TIMESTAMP, "timestamp with time zone");
public static final DataType<Timestamp> TIMESTAMPTZ = new DefaultDataType<Timestamp>(SQLDialect.POSTGRES, SQLDataType.TIMESTAMP, "timestamptz");
public static final DataType<Result<Record>> REFCURSOR = new DefaultDataType<Result<Record>>(SQLDialect.POSTGRES, SQLDataType.RESULT, "refcursor"); public static final DataType<Result<Record>> REFCURSOR = new DefaultDataType<Result<Record>>(SQLDialect.POSTGRES, SQLDataType.RESULT, "refcursor");
public static final DataType<Object> ANY = new DefaultDataType<Object>(SQLDialect.POSTGRES, SQLDataType.OTHER, "any"); public static final DataType<Object> ANY = new DefaultDataType<Object>(SQLDialect.POSTGRES, SQLDataType.OTHER, "any");
public static final DataType<UUID> UUID = new DefaultDataType<UUID>(SQLDialect.POSTGRES, SQLDataType.UUID, "uuid"); public static final DataType<UUID> UUID = new DefaultDataType<UUID>(SQLDialect.POSTGRES, SQLDataType.UUID, "uuid");
Expand Down

0 comments on commit b911bb1

Please sign in to comment.