1
0
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:
Fujii Masao
2014-09-02 16:06:58 +09:00
parent 01b6976c13
commit bd3b7a9eef
4 changed files with 117 additions and 64 deletions

View File

@ -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;
}
;