I'm not getting every reply in the list but I want to point this out from the archive version of this thread:
> > I was under the impression that when using INSERT SELECT ORDER BY the sequence
> > ids were generated using the select order.
> But someone said that’s not guaranteed, especially when INSERT will
> be parallelised later.
this should not matter. as in my other message if INSERT INTO table SELECT a, b FROM (VALUES () () ()) ORDER BY... takes the SERIAL or IDENTITY column of the table, and creates a parse tree for that looks like INSERT INTO table (SELECT nextval(table.id), a, b FROM (SELECT a, b FROM (VALUES () () ()) ORDER BY), the INSERT can put the rows in any way it wants. We don't care what INSERT does, we care about the generated sequence value, the nextval(table.id) part, which the SELECT should be emitting in order and occurs outside of the purview of the INSERT, according to other emails I have read on these lists (see my previous post).
On Tue, Apr 11, 2023, at 5:07 PM, Federico wrote:
On Tue, 11 Apr 2023 at 22:59, Thorsten Glaser <tg@xxxxxxxxxxx> wrote:>> On Tue, 11 Apr 2023, Federico wrote:>> >The problem here is not having the auto increment id in a particular>> The id might not even be auto-increment but UUID or something…> (I am surprised you would even try to insert multiple rows at once.)Well the documentation makes no mention of any limitation on returningand the observed behaviour has consistently been that returning is invalues order.Again, that was SQLAlchemy's fault for assuming this (but the docssurely did not help).Also re-reading my reply, I've made a typo there, sorry. What itshould have read is:The problem here is not having the returned ids in a particularorder, is that there is apparently no correlation with the position ofan element in the values clause with the id generated.Of course sorting the returned ids is only viable when using a serialor identity column, that's why in the general case I've mentioned theinsert with sentinel column to ask if there are better or alternativesolutions.Thanks for the reply, bestFederico>> bye,> //mirabilos> --> 15:41⎜<Lo-lan-do:#fusionforge> Somebody write a testsuite for helloworld :-)>>>>