Re: BIGINT <-> java.lang.String auto cast - Mailing list pgsql-jdbc

From Dave Cramer
Subject Re: BIGINT <-> java.lang.String auto cast
Date
Msg-id 42967356.2060507@fastcrypt.com
Whole thread Raw
In response to Re: BIGINT <-> java.lang.String auto cast  (Oliver Jowett <oliver@opencloud.com>)
Responses Re: BIGINT <-> java.lang.String auto cast
Dynamically Out put a image in Jsp
List pgsql-jdbc
Ok,

I recall it now, this isn't sufficient for the plethora of conversions
which have to be made.

Basically what I did was create an internal type for every SQL type in
org.postgresql.types

and I do one set of instanceof as below to determine which type to
create, and then
do a convert based on the sqltype passed in.

I'll commit the patch tomorrow

Dave

Oliver Jowett wrote:

> Dave Cramer wrote:
>
>> Where do you see the driver doing such conversions.
>
>
> In AbstractJdbc2Statement.setObject(int,Object,int,int), e.g.:
>
>>     // Helper method that extracts numeric values from an arbitary
>> Object.
>>     private String numericValueOf(Object x)
>>     {
>>         if (x instanceof Boolean)
>>             return ((Boolean)x).booleanValue() ? "1" : "0";
>>         else if (x instanceof Integer || x instanceof Long ||
>>                  x instanceof Double || x instanceof Short ||
>>                  x instanceof Number || x instanceof Float)
>>             return x.toString();
>>         else
>>             //ensure the value is a valid numeric value to avoid
>>             //sql injection attacks
>>             return new BigDecimal(x.toString()).toString();
>>     }
>
>
> [...]
>
>>         switch (targetSqlType)
>>         {
>>         case Types.INTEGER:
>>             bindLiteral(parameterIndex, numericValueOf(x), Oid.INT4);
>>             break;
>
>
> [...]
>
> -O
>
>

--
Dave Cramer
http://www.postgresintl.com
519 939 0336
ICQ#14675561


pgsql-jdbc by date:

Previous
From: Oliver Jowett
Date:
Subject: Re: BIGINT <-> java.lang.String auto cast
Next
From: Oliver Jowett
Date:
Subject: Re: BIGINT <-> java.lang.String auto cast