Re: JDBC driver - is "getGeneratedKeys()" guaranteed to return the ids in the same order a batch insert was made?

From: electrotype <electrotype(at)gmail(dot)com>
To: "pgsql-generallists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: JDBC driver - is "getGeneratedKeys()" guaranteed to return the ids in the same order a batch insert was made?
Date: 2020-12-09 19:28:29
Message-ID: c41792c8-7a94-2736-0316-dba3d1e7c885@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Agreed.
>
> 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.
>
Thank you, it's appreciated! I'm sure this clarification would help other developers too.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message avi Singh 2020-12-10 00:46:24 sum of numeric column
Previous Message Paul Förster 2020-12-09 18:25:53 Re: User input to queries