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