Re: weird ON CONFLICT clauses

Peter Geoghegan <pg@bowt.ie>

From: Peter Geoghegan <pg@bowt.ie>
To: Álvaro Herrera <alvherre@kurilemu.de>
Cc: Pg Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-11-27T16:40:18Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Add parse location to IndexElem.

  2. Reject opclass options in ON CONFLICT clause

On Thu, Nov 27, 2025 at 11:00 AM Álvaro Herrera <alvherre@kurilemu.de> wrote:
> Why do we accept reloptions there without complaint?  Should we tighten
> this up a little bit, or maybe it makes sense to accept this for some
> reason?  I suspect the reloptions were added to index_elems after the ON
> CONFLICT clause was made to use that production, but I didn't check the
> git history.

index_elems is needed by ON CONFLICT so that the user can specify an
operator class and/or a collation. This is probably hardly ever used,
but it does have its place.

> So what about the attached patch?  I ran all tests and everything seems
> to work correctly.  (Maybe I'd add some tests to verify that this
> new error is covered, as the ones just above.)  It would complain to the
> above:

Seems reasonable to me.

-- 
Peter Geoghegan