diff options
| author | Marc G. Fournier | 1997-04-02 18:24:52 +0000 |
|---|---|---|
| committer | Marc G. Fournier | 1997-04-02 18:24:52 +0000 |
| commit | a51df14a6927933ba576850a50125fccf283a175 (patch) | |
| tree | 0c498bc3a1e1b0e5cc42975aad9f1d1d3b0da8b4 /src/backend/parser | |
| parent | 17b5bd33e415404734d9f904615a54814b80900b (diff) | |
From: "Martin J. Laubach" <mjl@CSlab.tuwien.ac.at>
Subject: [HACKERS] Patch: SET var TO 'val'
Here is a patch that adds a "SET variable TO 'somevalue'" capability
to the parser, and then calls the SetPGVariable() function (which does
just issue a elog(NOTICE) to see whether it works).
That's the framework for adding timezone/date format/language/...
stuff.
Diffstat (limited to 'src/backend/parser')
| -rw-r--r-- | src/backend/parser/gram.y | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 15fc14e9b13..402f3343ae4 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.28 1997/04/02 04:01:03 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.29 1997/04/02 18:23:07 scrappy Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -108,11 +108,12 @@ static Node *makeA_Expr(int oper, char *opname, Node *lexpr, Node *rexpr); RevokeStmt, RuleStmt, TransactionStmt, ViewStmt, LoadStmt, CreatedbStmt, DestroydbStmt, VacuumStmt, RetrieveStmt, CursorStmt, ReplaceStmt, AppendStmt, NotifyStmt, DeleteStmt, ClusterStmt, - ExplainStmt + ExplainStmt, VariableSetStmt %type <str> relation_name, copy_file_name, copy_delimiter, def_name, database_name, access_method_clause, access_method, attr_name, - class, index_name, var_name, name, file_name, recipe_name + class, index_name, var_name, name, file_name, recipe_name, + var_name %type <str> opt_id, opt_portal_name, before_clause, after_clause, all_Op, MathOp, opt_name, opt_unique, @@ -168,7 +169,7 @@ static Node *makeA_Expr(int oper, char *opname, Node *lexpr, Node *rexpr); %type <ival> Iconst %type <str> Sconst -%type <str> Id, date +%type <str> Id, date, var_value /* @@ -273,6 +274,30 @@ stmt : AddAttrStmt | CreatedbStmt | DestroydbStmt | VacuumStmt + | VariableSetStmt + ; + +/***************************************************************************** + * + * Set PG internal variable + * SET var_name TO 'var_value' + * + *****************************************************************************/ + +VariableSetStmt: SET var_name TO var_value + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->name = $2; + n->value = $4; + + $$ = (Node *) n; + } + ; + +var_name: Id { $$ = $1; } + ; + +var_value: Sconst { $$ = $1; } ; /***************************************************************************** |
