diff options
Diffstat (limited to 'src/backend/parser')
| -rw-r--r-- | src/backend/parser/gram.y | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 757a17e891b..69e70821970 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -11,7 +11,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.482 2005/01/27 03:17:59 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.483 2005/02/02 06:36:01 neilc Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -4075,24 +4075,35 @@ transaction_mode_list_or_empty: /***************************************************************************** * - * QUERY: - * create view <viewname> '('target-list ')' AS <query> + * QUERY: + * CREATE [ OR REPLACE ] [ TEMP ] VIEW <viewname> '('target-list ')' AS <query> * *****************************************************************************/ -ViewStmt: CREATE opt_or_replace VIEW qualified_name opt_column_list +ViewStmt: CREATE OptTemp VIEW qualified_name opt_column_list AS SelectStmt { ViewStmt *n = makeNode(ViewStmt); - n->replace = $2; + n->replace = false; n->view = $4; + n->view->istemp = $2; n->aliases = $5; n->query = (Query *) $7; - $$ = (Node *)n; + $$ = (Node *) n; + } + | CREATE OR REPLACE OptTemp VIEW qualified_name opt_column_list + AS SelectStmt + { + ViewStmt *n = makeNode(ViewStmt); + n->replace = true; + n->view = $6; + n->view->istemp = $4; + n->aliases = $7; + n->query = (Query *) $9; + $$ = (Node *) n; } ; - /***************************************************************************** * * QUERY: |
