Re: Upgrade to pg and driver version 8.x code compatibilities - Mailing list pgsql-jdbc

From Oliver Jowett
Subject Re: Upgrade to pg and driver version 8.x code compatibilities
Date
Msg-id 427A9E97.9090307@opencloud.com
Whole thread Raw
In response to Upgrade to pg and driver version 8.x code compatibilities  (Tom Arthurs <tarthurs@jobflash.com>)
List pgsql-jdbc
Tom Arthurs wrote:

> ERROR: column "job_experience" is of type smallint but expression is of
> type character varying

Most likely you are using setString() where you should be using setShort().

> 1.  What changed between the driver versions that generate this error?

The driver started to use server-side prepared statements for
parameterization of queries (i.e. the driver translates ? to $n in the
main query string, and sends the actual parameter values out-of-band
from the query itself). One sideeffect of this is that parameters are
more strongly typed than in the 7.4.x versions where the driver would do
literal parameter substitution into the query string before sending it
to the backend. Also, you can use parameters in fewer places (they must
fit the backend's idea of where parameterizable expressions are allowed)
-- e.g. see the recent thread about "ORDER BY ?" changing behaviour with
the newer driver.

> 2.  What is the downside of continuing to use the 7.x version of the
> driver -- or are there better alternatives (patch, new version, etc).  I
> am using build 311 of the driver.

Most active development happens on the 8.0 version; 7.4.x is maintained
for bugfixes but that's about it, you won't get the benefit of any
performance improvements or added features that go into 8.0. Also, the
7.4.x driver won't necessarily work with servers >= 8.0.

In the longer term, the 7.4.x version will eventually become unmaintained.

-O

pgsql-jdbc by date:

Previous
From: "DavidB"
Date:
Subject: Re: Postgres v8 jdbc connect fails while v7.4 connection
Next
From: Oliver Jowett
Date:
Subject: Re: Infinity and beyond