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 object ID 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
---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend