Re: IF NOT EXISTS option for CREATE SERVER and CREATE USER MAPPING statements

Anastasia Lubennikova <a.lubennikova@postgrespro.ru>

From: Anastasia Lubennikova <a.lubennikova@postgrespro.ru>
To: Artur Zakirov <a.zakirov@postgrespro.ru>, Andrew Dunstan <andrew.dunstan@2ndquadrant.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-03-13T10:01:08Z
Lists: pgsql-hackers

Attachments

13.03.2017 11:53, Artur Zakirov:
> On 15.02.2017 20:54, Anastasia Lubennikova wrote:
>>
>> Done.
>>
>
> I have gotten the error that AlterUserMappingStmt doesn't have 
> if_not_exists (in Russian):
>
>> gram.y: В функции «base_yyparse»:
>> gram.y:4918:7: ошибка: «AlterUserMappingStmt {aka struct 
>> AlterUserMappingStmt}» не содержит элемента с именем «if_not_exists»
>>       n->if_not_exists = false;
>>        ^~
>
> After applying the CREATE USER patch in gram.y I have:
>
>>
>> AlterUserMappingStmt: ALTER USER MAPPING FOR auth_ident SERVER name 
>> alter_generic_options
>>                 {
>>                     AlterUserMappingStmt *n = 
>> makeNode(AlterUserMappingStmt);
>>                     n->user = $5;
>>                     n->servername = $7;
>>                     n->options = $8;
>>                     n->if_not_exists = false;
>>                     $$ = (Node *) n;
>>                 }
>>                 | CREATE USER MAPPING IF_P NOT EXISTS FOR auth_ident 
>> SERVER name create_generic_options
>>                 {
>>                     CreateUserMappingStmt *n = 
>> makeNode(CreateUserMappingStmt);
>>                     n->user = $8;
>>                     n->servername = $10;
>>                     n->options = $11;
>>                     n->if_not_exists = true;
>>                     $$ = (Node *) n;
>>                 }
>>         ;
>
> Here ALTER USER MAPPING and CREATE USER MAPPING commands were mixed.
>

Thanks for catching that.
It was caused by a conflict on applying of the patch.
Updated versions of both patches are attached.

-- 
Anastasia Lubennikova
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Commits

  1. Add IF NOT EXISTS for CREATE SERVER and CREATE USER MAPPING