mirror of
https://github.com/postgres/postgres.git
synced 2025-08-25 20:23:07 +03:00
User and database-specific session defaults for run-time configuration
variables. New commands ALTER DATABASE ... SET and ALTER USER ... SET.
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.281 2002/02/25 03:37:14 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.282 2002/03/01 22:45:12 petere Exp $
|
||||
*
|
||||
* HISTORY
|
||||
* AUTHOR DATE MAJOR EVENT
|
||||
@@ -130,8 +130,8 @@ static void doNegateFloat(Value *v);
|
||||
}
|
||||
|
||||
%type <node> stmt,
|
||||
AlterGroupStmt, AlterSchemaStmt, AlterTableStmt, AlterUserStmt,
|
||||
AnalyzeStmt,
|
||||
AlterDatabaseSetStmt, AlterGroupStmt, AlterSchemaStmt, AlterTableStmt,
|
||||
AlterUserStmt, AlterUserSetStmt, AnalyzeStmt,
|
||||
ClosePortalStmt, ClusterStmt, CommentStmt, ConstraintsSetStmt,
|
||||
CopyStmt, CreateAsStmt, CreateGroupStmt, CreatePLangStmt,
|
||||
CreateSchemaStmt, CreateSeqStmt, CreateStmt, CreateTrigStmt,
|
||||
@@ -436,10 +436,12 @@ stmtmulti: stmtmulti ';' stmt
|
||||
}
|
||||
;
|
||||
|
||||
stmt : AlterSchemaStmt
|
||||
| AlterTableStmt
|
||||
stmt : AlterDatabaseSetStmt
|
||||
| AlterGroupStmt
|
||||
| AlterSchemaStmt
|
||||
| AlterTableStmt
|
||||
| AlterUserStmt
|
||||
| AlterUserSetStmt
|
||||
| ClosePortalStmt
|
||||
| CopyStmt
|
||||
| CreateStmt
|
||||
@@ -539,6 +541,26 @@ AlterUserStmt: ALTER USER UserId OptUserList
|
||||
}
|
||||
;
|
||||
|
||||
|
||||
AlterUserSetStmt: ALTER USER UserId VariableSetStmt
|
||||
{
|
||||
AlterUserSetStmt *n = makeNode(AlterUserSetStmt);
|
||||
n->user = $3;
|
||||
n->variable = ((VariableSetStmt *)$4)->name;
|
||||
n->value = ((VariableSetStmt *)$4)->args;
|
||||
$$ = (Node *)n;
|
||||
}
|
||||
| ALTER USER UserId VariableResetStmt
|
||||
{
|
||||
AlterUserSetStmt *n = makeNode(AlterUserSetStmt);
|
||||
n->user = $3;
|
||||
n->variable = ((VariableResetStmt *)$4)->name;
|
||||
n->value = NULL;
|
||||
$$ = (Node *)n;
|
||||
}
|
||||
;
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Drop a postgresql DBMS user
|
||||
@@ -3163,6 +3185,33 @@ opt_equal: '=' { $$ = TRUE; }
|
||||
| /*EMPTY*/ { $$ = FALSE; }
|
||||
;
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* ALTER DATABASE
|
||||
*
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
AlterDatabaseSetStmt: ALTER DATABASE database_name VariableSetStmt
|
||||
{
|
||||
AlterDatabaseSetStmt *n = makeNode(AlterDatabaseSetStmt);
|
||||
n->dbname = $3;
|
||||
n->variable = ((VariableSetStmt *)$4)->name;
|
||||
n->value = ((VariableSetStmt *)$4)->args;
|
||||
$$ = (Node *)n;
|
||||
}
|
||||
| ALTER DATABASE database_name VariableResetStmt
|
||||
{
|
||||
AlterDatabaseSetStmt *n = makeNode(AlterDatabaseSetStmt);
|
||||
n->dbname = $3;
|
||||
n->variable = ((VariableResetStmt *)$4)->name;
|
||||
n->value = NULL;
|
||||
$$ = (Node *)n;
|
||||
}
|
||||
;
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* DROP DATABASE
|
||||
|
Reference in New Issue
Block a user