However, this
isn't really the purview of JDBC - I'm doubting it does
anything that would cause the order to be different than
what is received, and the batch items are sent and results
processed sequentially.
The main
question is whether any batch items are inserting multiple
records themselves - i.e., RETURNING * is producing multiple
results. Whatever order RETURNING * produces is what the
driver will capture - but it isn't responsible for
guaranteeing that the order of multiple inserted records
going in matches what comes out. PostgreSQL needs to make
that claim. I don't see where it does (i've sent an email
to see if adding such a claim to the documentation is
proper). Done manually one can always do "WITH insert
returning SELECT ORDER BY", but it doesn't seem workable for
the driver to try and do that when adding the returning
clause, which I presume is what is in scope here.
David J.