small bug - Mailing list pgsql-jdbc
From | Christian Roux |
---|---|
Subject | small bug |
Date | |
Msg-id | 4700F2B4.7030600@cegedim-srh.com Whole thread Raw |
Responses |
Re: small bug
|
List | pgsql-jdbc |
Hi everybody !!! Driver version : postgresql-8.1-410.jdbc3.jar and postgresql-jdbc-8.2-506.src.tar.gz In file org.postgresql.jdbc2.TypeInfoCache : private static final Object types[][] = { {"int2", new Integer(Oid.INT2), new Integer(Types.SMALLINT), "java.lang.Short"}, {"int4", new Integer(Oid.INT4), new Integer(Types.INTEGER), "java.lang.Integer"}, {"oid", new Integer(Oid.OID), new Integer(Types.INTEGER), "java.lang.Integer"}, {"int8", new Integer(Oid.INT8), new Integer(Types.BIGINT), "java.lang.Long"}, {"money", new Integer(Oid.MONEY), new Integer(Types.DOUBLE), "java.lang.Double"}, {"numeric", new Integer(Oid.NUMERIC), new Integer(Types.NUMERIC), "java.math.BigDecimal"}, {"float4", new Integer(Oid.FLOAT4), new Integer(Types.REAL), "java.lang.Float"}, {"float8", new Integer(Oid.FLOAT8), new Integer(Types.DOUBLE), "java.lang.Double"}, {"bpchar", new Integer(Oid.BPCHAR), new Integer(Types.CHAR), "java.lang.String"}, {"varchar", new Integer(Oid.VARCHAR), new Integer(Types.VARCHAR), "java.lang.String"}, {"text", new Integer(Oid.TEXT), new Integer(Types.VARCHAR), "java.lang.String"}, {"name", new Integer(Oid.NAME), new Integer(Types.VARCHAR), "java.lang.String"}, {"bytea", new Integer(Oid.BYTEA), new Integer(Types.BINARY), "java.io.InputStream"}, {"bool", new Integer(Oid.BOOL), new Integer(Types.BIT), "java.lang.Boolean"}, {"bit", new Integer(Oid.BIT), new Integer(Types.BIT), "java.lang.Boolean"}, {"date", new Integer(Oid.DATE), new Integer(Types.DATE), "java.sql.Date"}, {"time", new Integer(Oid.TIME), new Integer(Types.TIME), "java.sql.Time"}, {"timetz", new Integer(Oid.TIMETZ), new Integer(Types.TIME), "java.sql.Time"}, {"timestamp", new Integer(Oid.TIMESTAMP), new Integer(Types.TIMESTAMP), "java.sql.Timestamp"}, {"timestamptz", new Integer(Oid.TIMESTAMPTZ), new Integer(Types.TIMESTAMP), "java.sql.Timestamp"} should be private static final Object types[][] = { {"int2", new Integer(Oid.INT2), new Integer(Types.SMALLINT), "java.lang.Short"}, {"int4", new Integer(Oid.INT4), new Integer(Types.INTEGER), "java.lang.Integer"}, {"oid", new Integer(Oid.OID), new Integer(Types.INTEGER), "java.lang.Integer"}, {"int8", new Integer(Oid.INT8), new Integer(Types.BIGINT), "java.lang.Long"}, {"money", new Integer(Oid.MONEY), new Integer(Types.DOUBLE), "java.lang.Double"}, {"numeric", new Integer(Oid.NUMERIC), new Integer(Types.NUMERIC), "java.math.BigDecimal"}, {"float4", new Integer(Oid.FLOAT4), new Integer(Types.REAL), "java.lang.Float"}, {"float8", new Integer(Oid.FLOAT8), new Integer(Types.DOUBLE), "java.lang.Double"}, {"bpchar", new Integer(Oid.BPCHAR), new Integer(Types.CHAR), "java.lang.String"}, {"varchar", new Integer(Oid.VARCHAR), new Integer(Types.VARCHAR), "java.lang.String"}, {"text", new Integer(Oid.TEXT), new Integer(Types.VARCHAR), "java.lang.String"}, {"name", new Integer(Oid.NAME), new Integer(Types.VARCHAR), "java.lang.String"}, {"bytea", new Integer(Oid.BYTEA), new Integer(Types.BINARY), "java.io.InputStream"}, {"bool", new Integer(Oid.BOOL), new Integer(Types.BOOLEAN), "java.lang.Boolean"}, {"bit", new Integer(Oid.BIT), new Integer(Types.BIT), "java.lang.Boolean"}, {"date", new Integer(Oid.DATE), new Integer(Types.DATE), "java.sql.Date"}, {"time", new Integer(Oid.TIME), new Integer(Types.TIME), "java.sql.Time"}, {"timetz", new Integer(Oid.TIMETZ), new Integer(Types.TIME), "java.sql.Time"}, {"timestamp", new Integer(Oid.TIMESTAMP), new Integer(Types.TIMESTAMP), "java.sql.Timestamp"}, {"timestamptz", new Integer(Oid.TIMESTAMPTZ), new Integer(Types.TIMESTAMP), "java.sql.Timestamp"} Small code : create table mytable( mybool boolean ); ps = conn.prepareStatement("select count(*) from mytable where mybool = ? "); System.out.println(ps.getParameterMetaData().getParameterTypeName(1)); ----> produce bool System.out.println(ps.getParameterMetaData().getParameterType(1)); ----> produce -7 System.out.println(Types.BOOLEAN); ------> produce 16 So I cant' write : if (ps.getParameterMetaData().getParameterType(1) == Types.BOOLEAN) Best regards Christian PS BRAVO for your work !!!!
pgsql-jdbc by date: