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

Tender Wang <tndrwang@gmail.com>

From: Tender Wang <tndrwang@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Alexander Lakhin <exclusion@gmail.com>, pgsql-bugs@lists.postgresql.org
Date: 2024-01-26T06:21:12Z
Lists: pgsql-bugs

Attachments

Tender Wang <tndrwang@gmail.com> 于2024年1月26日周五 12:54写道:

>
>
> Michael Paquier <michael@paquier.xyz> 于2024年1月26日周五 11:41写道:
>
>> On Fri, Jan 26, 2024 at 11:33:24AM +0800, Tender Wang wrote:
>> > How about using list *res replace int *res in getTokenTypes(), so we can
>> > use list_append_unique().
>> > In outer function, use list *tokens to replace int *tokens, and ntokens
>> =
>> > list_length(tokens) not list_length(stmt->tokentype).
>>
>> Yeah, I was wondering about this code path.  If you feel strongly
>> about that, would you like to write a patch?
>>
>
> Ok,  I try to fix it.
>

As I said before, return List looks like not complicated to solve this
issue.
I found another problem, it didn't report NOTICE if SQL has IF EXISTS, for
example:

postgres=# alter text search configuration ispell_tst drop mapping if
exists for test;
ERROR:  token type "test" does not exist

So I change the func getTokenTypes() interface and remove
DropConfigurationMapping() error report into getTokenTypes().


--
>> Michael
>>
>
>
> --
> Tender Wang
> OpenPie:  https://en.openpie.com/
>


-- 
Tender Wang
OpenPie:  https://en.openpie.com/

Commits

  1. Fix various issues with ALTER TEXT SEARCH CONFIGURATION

  2. Fix DROP ROLE when specifying duplicated roles