| From: | Dave Cramer <pg(at)fastcrypt(dot)com> | 
|---|---|
| To: | Guillaume Cottenceau <gc(at)mnc(dot)ch> | 
| Cc: | pgsql-jdbc(at)postgresql(dot)org | 
| Subject: | Re: setQueryTimeout problem !?!?! | 
| Date: | 2008-03-18 14:25:57 | 
| Message-ID: | FFC9AB7D-AE69-4F1F-8F58-54CE6CA1153C@fastcrypt.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-jdbc | 
On 18-Mar-08, at 9:44 AM, Guillaume Cottenceau wrote:
> Dave Cramer <pg 'at' fastcrypt.com> writes:
>
>>> See previous discussion that prompted this change at http://archives.postgresql.org/pgsql-jdbc/2008-01/msg00088.php
>>
>> Unfortunately the argument assumes that our users are developing new
>> applications, not using the driver in an existing application. I  
>> think
>> this change should be reversed. A considerable number of people will
>> not be in a position to use an old driver with newer servers just to
>> avoid this.
>
> That's really a matter of practice - how much do you afford to
> break in order to fix previous problems or add features. Here,
> the story is to fix an unexpected behaviour of the JDBC driver
> (setQueryTimeout silently did nothing; it's *bad* to accept a
> query timeout value but then not implement any timeout; a
> correctly designed application will legally assume that the
> queries will timeout after the configured amount of time, which
> is not the case).
>
> Last year, we have upgraded from a 7.4 server to a 8.2 server. I
> can tell you that it's quite incorrect to assume that the
> application, running fine on 7.4, would magically run fine on 8.2
> too - actually, quite a lot of SQL queries were "broken", because
> of 8.2 not accepting UPDATE and DELETE FROM with implicit SELECT
> on different tables. We've had to validate our application again,
> and I think it's normal.
>
> That is to say, when the database is migrated from major
> releases, the application (or the DB layer) sometimes needs
> slight modifications, and it would be unreasonable deployment
> practices to not validate the application again anyway.
This is bound to be a controversial issue where there is no clear cut  
answer. Everyone who has an app that needs it to be silent will  
complain that it is now throwing an exception. Everyone who expects it  
to honour the spec will complain that it doesn't work. I doubt there  
are any drivers in existence which honour *all* of the spec.
That being said, my opinion is that changing it to throw an exception  
will be more painful than reverting it and letting people who write  
new apps code around it.
Dave
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Paul Tomblin | 2008-03-18 15:05:35 | Re: Atomic operations? | 
| Previous Message | Dave Cramer | 2008-03-18 14:17:52 | Re: Atomic operations? |