aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2002-09-02 02:13:02 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2002-09-02 02:13:02 +0000
commit248c67d7ed505d98d3a94cd3954835255317ff16 (patch)
treedc45c941a494e35842a70e1383129d31aa8f25e0 /src/backend/parser
parentc7a165adc64e3e67e0dcee4088d84a0638b3515a (diff)
downloadpostgresql-248c67d7ed505d98d3a94cd3954835255317ff16.tar.gz
postgresql-248c67d7ed505d98d3a94cd3954835255317ff16.zip
CREATE OR REPLACE VIEW, CREATE OR REPLACE RULE.
Gavin Sherry, Neil Conway, and Tom Lane all got their hands dirty on this one ...
Diffstat (limited to 'src/backend/parser')
-rw-r--r--src/backend/parser/gram.y27
1 files changed, 15 insertions, 12 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 463a8d5a4e5..674a6d0d920 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -11,7 +11,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.364 2002/08/29 00:17:04 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.365 2002/09/02 02:13:01 tgl Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -3346,18 +3346,19 @@ opt_column: COLUMN { $$ = COLUMN; }
*
*****************************************************************************/
-RuleStmt: CREATE RULE name AS
+RuleStmt: CREATE opt_or_replace RULE name AS
{ QueryIsRule=TRUE; }
ON event TO qualified_name where_clause
DO opt_instead RuleActionList
{
RuleStmt *n = makeNode(RuleStmt);
- n->relation = $9;
- n->rulename = $3;
- n->whereClause = $10;
- n->event = $7;
- n->instead = $12;
- n->actions = $13;
+ n->replace = $2;
+ n->relation = $10;
+ n->rulename = $4;
+ n->whereClause = $11;
+ n->event = $8;
+ n->instead = $13;
+ n->actions = $14;
$$ = (Node *)n;
QueryIsRule=FALSE;
}
@@ -3537,12 +3538,14 @@ opt_trans: WORK {}
*
*****************************************************************************/
-ViewStmt: CREATE VIEW qualified_name opt_column_list AS SelectStmt
+ViewStmt: CREATE opt_or_replace VIEW qualified_name opt_column_list
+ AS SelectStmt
{
ViewStmt *n = makeNode(ViewStmt);
- n->view = $3;
- n->aliases = $4;
- n->query = (Query *) $6;
+ n->replace = $2;
+ n->view = $4;
+ n->aliases = $5;
+ n->query = (Query *) $7;
$$ = (Node *)n;
}
;