Re: [BUGS] BUG #7766: Running a DML statement that affects more than 4 billion rows results in an exception
От | Stefan Reiser |
---|---|
Тема | Re: [BUGS] BUG #7766: Running a DML statement that affects more than 4 billion rows results in an exception |
Дата | |
Msg-id | 50F04D82.7020202@tu-braunschweig.de обсуждение исходный текст |
Ответ на | Re: [BUGS] BUG #7766: Running a DML statement that affects more than 4 billion rows results in an exception (Kris Jurka <books@ejurka.com>) |
Ответы |
Re: [BUGS] BUG #7766: Running a DML statement that affects
more than 4 billion rows results in an exception
|
Список | pgsql-jdbc |
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
В списке pgsql-jdbc по дате отправления: