Re: [JDBC] BUG #7766: Running a DML statement that affects more than 4 billion rows results in an exception

From: Dave Cramer <pg(at)fastcrypt(dot)com>
To: Stefan Reiser <s(dot)reiser(at)tu-braunschweig(dot)de>
Cc: Kris Jurka <books(at)ejurka(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, zelaine(at)amazon(dot)com, pgsql-bugs(at)postgresql(dot)org, List <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: [JDBC] BUG #7766: Running a DML statement that affects more than 4 billion rows results in an exception
Date: 2013-01-11 18:03:19
Message-ID: CADK3HHJArDFVnYzUcg=dYDU6-jMBqki=r7fjZp=oP5jPPVXOmw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-jdbc

Good points to both. Thank you both for reviewing.

Dave

Dave Cramer

dave.cramer(at)credativ(dot)ca
http://www.credativ.ca

On Fri, Jan 11, 2013 at 12:36 PM, Stefan Reiser <s(dot)reiser(at)tu-braunschweig(dot)de
> wrote:

> Kris Jurka schrieb:
>
>
>> On Fri, 11 Jan 2013, Dave Cramer wrote:
>>
>> Ok, I've pushed this fix into master
>>>
>>> You've made any failure to parse the affected row count return
>> SUCCESS_NO_INFO. Shouldn't you change the integer parsing to a long
>> parsing and only modify the response if the value is > INT_MAX while still
>> throwing an exception if we get something that is truly undecipherable?
>>
>> Kris Jurka
>>
>>
>> Dave,
> I'm completely unfamiliar with the driver's code, so I better won't take
> part in the further discussion -- just one thing: Now "insert_oid" won't be
> assigned correctly when the assignment of update_count fails:
>
> [QueryExecutorImpl.java]
> try
> {
> update_count = Integer.parseInt(status.**substring(1 +
> status.lastIndexOf(' ')));
> if (status.startsWith("INSERT"))
> insert_oid = Long.parseLong(status.**substring(1 +
> status.indexOf(' '),
> status.lastIndexOf(' ')));
> }
> catch (NumberFormatException nfe)
> {
> update_count=Statement.**SUCCESS_NO_INFO;
> }
>
> better be something like this: ?
>
> try
> {
> update_count = Integer.parseInt(status.**substring(1 +
> status.lastIndexOf(' ')));
> }
> catch (NumberFormatException nfe)
> {
> update_count=Statement.**SUCCESS_NO_INFO;
> }
> try {
> if (status.startsWith("INSERT"))
> insert_oid = Long.parseLong(status.**substring(1 +
> status.indexOf(' '),
> status.lastIndexOf(' ')));
> } catch ( ...
> // don't know what expected behaviour should be ...
> }
>
> regards
> Stefan Reiser
>

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message David Boutin 2013-01-11 22:54:11 Re: BUG #7793: tsearch_data thesaurus size limit
Previous Message Stefan Reiser 2013-01-11 17:36:02 Re: [BUGS] BUG #7766: Running a DML statement that affects more than 4 billion rows results in an exception

Browse pgsql-jdbc by date

  From Date Subject
Next Message dmp 2013-01-11 19:07:03 Re: Website Todo List
Previous Message Stefan Reiser 2013-01-11 17:36:02 Re: [BUGS] BUG #7766: Running a DML statement that affects more than 4 billion rows results in an exception