1
0
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:
Peter Eisentraut
2002-03-01 22:45:19 +00:00
parent 851f766115
commit 1aac2c852a
29 changed files with 812 additions and 48 deletions

View File

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