From: | John Lister <john(dot)lister(at)kickstone(dot)com> |
---|---|
To: | Luca Ferrari <fluca1978(at)infinito(dot)it> |
Cc: | pgsql-jdbc(at)postgresql(dot)org |
Subject: | Re: ResultSet internal data type handling |
Date: | 2009-05-12 08:02:54 |
Message-ID: | 4A092D2E.3070905@kickstone.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
Luca Ferrari wrote:
> Having a look at jdbc2.AsbtractJDBC2ResultSet (the parent of all ResultSets) I
> discovered that all data received from the server is handled internally as a
> string (right?) and is converted from the getXXX methods into the appropriate
> type. This means that you can actually write a getString on a date field
> obtaining a valida date (and if you are lucky you can do something the
> opposite). I'm curious to know if this is an implementation choice or a jdbc
> specification and why the objects are not checked against the table metadata
> (as the getInternalObject method does).
>
I believe the original wire protocol only supported text values hence
the driver converts all data into a string before sending it to the
server... Because of this the server will generally convert any value
into the appropriate type (if this conversion is possible) which saves
the driver from doing so. This simplifies the driver at the expense of
extra network traffic and errors thrown by the server as opposed to the
driver. The original authors can probably expand on this
Thanks
JOHN
From | Date | Subject | |
---|---|---|---|
Next Message | Oliver Jowett | 2009-05-12 08:44:33 | Re: ResultSet internal data type handling |
Previous Message | Scott Marlowe | 2009-05-12 07:55:13 | Re: Unable to access table named "user" |