Re: BUG #18310: Some SQL commands fail to process duplicate objects with error: tuple already updated by self - Mailing list pgsql-bugs

From Michael Paquier
Subject Re: BUG #18310: Some SQL commands fail to process duplicate objects with error: tuple already updated by self
Date
Msg-id ZbnLp-sHGq389yOD@paquier.xyz
Whole thread Raw
In response to Re: BUG #18310: Some SQL commands fail to process duplicate objects with error: tuple already updated by self  (Tender Wang <tndrwang@gmail.com>)
Responses Re: BUG #18310: Some SQL commands fail to process duplicate objects with error: tuple already updated by self
List pgsql-bugs
On Tue, Jan 30, 2024 at 07:51:45PM +0800, Tender Wang wrote:
> I refactor previes patch based on your suggestion, please review the new
> attached patch.

Thanks for the new patch.  I've found the logic to be basically OK,
minus edits with the structure, the routine names and some comments.

Unfortunately, the set of regression tests was too shy because this
only tested for the case of duplicated tokens when overridding
mappings, while missing:
- ADD MAPPING that failed on a constraint failure.
- DROP MAPPING that failed with an deletion failure.
- The case of IF EXISTS with tokens supported or not supported by a
configuration's parser.  That was not related to the report of this
patch, but as we've discussed it is very easy to miss the historical
distinction between the way this clause is handled.

In short, there was zero coverage for these code paths.  See
DropConfigurationMapping() that was completely red, for one:
https://coverage.postgresql.org/src/backend/commands/tsearchcmds.c.gcov.html

This should be marked as covered pretty soon.  I was also hesitating
about the addition of a test with REPLACE, actually..
--
Michael

Attachment

pgsql-bugs by date:

Previous
From: PG Bug reporting form
Date:
Subject: BUG #18316: The descriptions of the objoid and classoid fields in the pg_description section, include: 12,14,16
Next
From: Tender Wang
Date:
Subject: Re: BUG #18310: Some SQL commands fail to process duplicate objects with error: tuple already updated by self