Re: Re: [PATCH] Enforce that INSERT...RETURNING preserves the order of multi rows

From: "P(dot) Christeas" <xrg(at)linux(dot)gr>
To: pgsql-hackers(at)postgresql(dot)org
Cc: Vik Reykja <vikreykja(at)gmail(dot)com>
Subject: Re: Re: [PATCH] Enforce that INSERT...RETURNING preserves the order of multi rows
Date: 2012-10-21 21:35:27
Message-ID: 201210220035.27862.xrg@linux.gr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sunday 21 October 2012, Vik Reykja wrote:
> On Sun, Oct 21, 2012 at 6:20 PM, Abhijit Menon-Sen
<ams(at)2ndquadrant(dot)com>wrote:
> > Note: "INSERT … RETURNING" doesn't accept an ORDER BY clause.
>
> Would anyone be opposed to somebody - say, me - writing a patch to allow
> that? It would take me a lot longer than an experienced hacker to do it,
> but I'm willing to try.

I would oppose, for one.

Please, don't waste your time. Reordering the INSERT .. RETURNING results is
already possible today, with some nested syntax. At the same time, bloating
the INSERT syntax with SELECT semantics would be negative IMO. And I would see
little use in having such a feature.

At a worst case scenario, you could do (in client pseydocode):

ids = query("INSERT INTO tableA (col1, col2) VALUES (...), (...) RETURNING
id")
ordered_ids = query("SELECT id FROM tableA WHERE id IN %s ORDER BY col1", ids)

which would be minimally more roundtrip than a "RETURNING id ORDER BY col1" .

--
Say NO to spam and viruses. Stop using Microsoft Windows!

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Dunstan 2012-10-21 21:40:40 to_char timezone
Previous Message Phil Sorber 2012-10-21 20:51:21 Re: [WIP] pg_ping utility