Re: 7.4x vs 8.1x - Mailing list pgsql-jdbc

From Donald Fraser
Subject Re: 7.4x vs 8.1x
Date
Msg-id 00d201c61610$b72941e0$0264a8c0@demolish1
Whole thread Raw
In response to 7.4x vs 8.1x  ("Donald Fraser" <postgres@kiwi-fraser.net>)
Responses Re: 7.4x vs 8.1x
List pgsql-jdbc
----- Original Message -----
From: "Dave Cramer"
To: "Donald Fraser"


> We certainly don't test it for that, why would you want to do this ?

There are two main reasons for this:

First we have a patched version which has the following changes:
1) Java style notifications for NOTIFY messages from the server. No polling
involved.
2) Sub-classed the Java sql timestamp and sql date objects to support the
postgresql infinity implementation.
3) SSL modification - allows SSL to use a client supplied certificate.
4) HTML formated error messages, turned on or off with a URL switch.
5) Ability to set the encoding used by the driver - not everyone wants to
use UNICODE.

I note that most of these things have been addressed but we would have to do
a lot of testing to make sure everything worked. My normal approach to such
things is thus: "if it isn't broken don't fix it"! We know our version of
the driver works ok and therefore we wouldn't need to test it
specifically...

I also note that someone is attempting to implement notifications but it
should be noted that the method they are attempting to use will fail!
(http://archives.postgresql.org/pgsql-jdbc/2005-04/msg00056.php) The reason
it will fail is that the available() method of the input stream does not
work on SSL sockets! We originally implemented something similiar to this as
it was the least amount of code base to hack, but when we started using SSL
it stopped working. The reason is the available() method is not implemented
on Sun's implementation of the SSL socket stream(it always returns a value
of 0) - this was tested on the 1.4 micro version of the JVM. I logged this
as a bug with Sun and they replyed that it was ment to be that way! Hence we
had to take a more drastic approach and dig into another level of the code
base and use the socket stream directly to achieve what turned out to be a
better implementation - a non-polling notification system.

I only just found the above link - so hopefully those concerned with this
code in the latest release of the driver will read the above and take note!

The second reason is that we have a lot of clients with the 7.4 driver and I
don't want to have to force them to upgrade their software...

The notification side of things is the only part that I see taking a lot of
work to patch against the newer drivers as I noted there were some major
changes to the code base between 7.4 and 8.0.

In March this year I will have some time up my sleave and so I may take the
leap forward and attempt to patch our code and if you're interested I'll
pass it on.

Regards
Donald Fraser

> You can use protocol version 2 and you shouldn't notice any (much)
> difference.
>
> Dave

> On 10-Jan-06, at 8:29 AM, Donald Fraser wrote:
>
> > I note that there are a lot of 'format' related changes from pre
> > 8.1 to 8.1.
> > Could someone inform me whether a 7.4.x JDBC driver will operate at
> > all with
> > a 8.1.x database?
> >
> > Thanks in advance,
> > Donald Fraser


pgsql-jdbc by date:

Previous
From: Markus Schaber
Date:
Subject: Re: 7.4x vs 8.1x
Next
From: Oliver Jowett
Date:
Subject: Re: 7.4x vs 8.1x