mirror of
https://github.com/postgres/postgres.git
synced 2025-06-25 01:02:05 +03:00
Support ALTER SYSTEM RESET command.
This patch allows us to execute ALTER SYSTEM RESET command to remove the configuration entry from postgresql.auto.conf. Vik Fearing, reviewed by Amit Kapila and me.
This commit is contained in:
@ -411,7 +411,8 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
|
||||
|
||||
%type <istmt> insert_rest
|
||||
|
||||
%type <vsetstmt> generic_set set_rest set_rest_more SetResetClause FunctionSetResetClause
|
||||
%type <vsetstmt> generic_set set_rest set_rest_more generic_reset reset_rest
|
||||
SetResetClause FunctionSetResetClause
|
||||
|
||||
%type <node> TableElement TypedTableElement ConstraintElem TableFuncElement
|
||||
%type <node> columnDef columnOptions
|
||||
@ -1579,39 +1580,47 @@ NonReservedWord_or_Sconst:
|
||||
;
|
||||
|
||||
VariableResetStmt:
|
||||
RESET var_name
|
||||
{
|
||||
VariableSetStmt *n = makeNode(VariableSetStmt);
|
||||
n->kind = VAR_RESET;
|
||||
n->name = $2;
|
||||
$$ = (Node *) n;
|
||||
}
|
||||
| RESET TIME ZONE
|
||||
RESET reset_rest { $$ = (Node *) $2; }
|
||||
;
|
||||
|
||||
reset_rest:
|
||||
generic_reset { $$ = $1; }
|
||||
| TIME ZONE
|
||||
{
|
||||
VariableSetStmt *n = makeNode(VariableSetStmt);
|
||||
n->kind = VAR_RESET;
|
||||
n->name = "timezone";
|
||||
$$ = (Node *) n;
|
||||
$$ = n;
|
||||
}
|
||||
| RESET TRANSACTION ISOLATION LEVEL
|
||||
| TRANSACTION ISOLATION LEVEL
|
||||
{
|
||||
VariableSetStmt *n = makeNode(VariableSetStmt);
|
||||
n->kind = VAR_RESET;
|
||||
n->name = "transaction_isolation";
|
||||
$$ = (Node *) n;
|
||||
$$ = n;
|
||||
}
|
||||
| RESET SESSION AUTHORIZATION
|
||||
| SESSION AUTHORIZATION
|
||||
{
|
||||
VariableSetStmt *n = makeNode(VariableSetStmt);
|
||||
n->kind = VAR_RESET;
|
||||
n->name = "session_authorization";
|
||||
$$ = (Node *) n;
|
||||
$$ = n;
|
||||
}
|
||||
| RESET ALL
|
||||
;
|
||||
|
||||
generic_reset:
|
||||
var_name
|
||||
{
|
||||
VariableSetStmt *n = makeNode(VariableSetStmt);
|
||||
n->kind = VAR_RESET;
|
||||
n->name = $1;
|
||||
$$ = n;
|
||||
}
|
||||
| ALL
|
||||
{
|
||||
VariableSetStmt *n = makeNode(VariableSetStmt);
|
||||
n->kind = VAR_RESET_ALL;
|
||||
$$ = (Node *) n;
|
||||
$$ = n;
|
||||
}
|
||||
;
|
||||
|
||||
@ -8494,7 +8503,7 @@ DropdbStmt: DROP DATABASE database_name
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* ALTER SYSTEM SET
|
||||
* ALTER SYSTEM
|
||||
*
|
||||
* This is used to change configuration parameters persistently.
|
||||
*****************************************************************************/
|
||||
@ -8506,6 +8515,12 @@ AlterSystemStmt:
|
||||
n->setstmt = $4;
|
||||
$$ = (Node *)n;
|
||||
}
|
||||
| ALTER SYSTEM_P RESET generic_reset
|
||||
{
|
||||
AlterSystemStmt *n = makeNode(AlterSystemStmt);
|
||||
n->setstmt = $4;
|
||||
$$ = (Node *)n;
|
||||
}
|
||||
;
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user