Re: Re: [BUGS] 'on insert do instead' rule with a where clause responds 'INSERT 0 0' - Mailing list pgsql-jdbc

From Oliver Jowett
Subject Re: Re: [BUGS] 'on insert do instead' rule with a where clause responds 'INSERT 0 0'
Date
Msg-id 4717C94D.7030605@opencloud.com
Whole thread Raw
In response to Re: [BUGS] 'on insert do instead' rule with a where clause responds 'INSERT 0 0'  (Julius Stroffek <Julius.Stroffek@Sun.COM>)
List pgsql-jdbc
Julius Stroffek wrote:

> There is only one option that comes to my mind - always return
> Statment.SUCCESS_NO_INFO in executeBatch (or possibly only depending on
> some java property). I can not see any simple solution for
> Statement.executeUpdate since the number of rows affected may differ
> depending on the rules and might be also difficult to calculate.

The server is reporting to the driver that zero rows were affected (not
"unknown", *zero*) so I don't see any reason why the driver should not
report that as the number of rows affected.

Returning SUCCESS_NO_INFO reduces the usefulness of the driver in the
other 98% of cases where there are no INSTEAD rules.

The protocol docs say:

> CommandComplete (B)
[...]
>         For an INSERT command, the tag is INSERT oid rows, where rows is the number of rows inserted. oid is the
objectID of the inserted row if rows is 1 and the target table has OIDs; otherwise oid is 0. 

So if the server is not returning "the number of rows inserted" then
either the server has a bug or the protocol docs are wrong.

-O

pgsql-jdbc by date:

Previous
From: Michael Schmidt
Date:
Subject: Re: Fw: postgresql experts please help
Next
From: Michael Schmidt
Date:
Subject: Re: postgresql experts please help