aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2003-07-01 00:04:31 +0000
committerPeter Eisentraut <peter_e@gmx.net>2003-07-01 00:04:31 +0000
commit71e9f3b07f2f993492233dc2fff0566acc70eb64 (patch)
treebf63ec576f78d03eeb72a181ac0d47554e695358 /src/backend/parser
parentdf08f5c0030590980a203b72cdfdba817ff95b30 (diff)
downloadpostgresql-71e9f3b07f2f993492233dc2fff0566acc70eb64.tar.gz
postgresql-71e9f3b07f2f993492233dc2fff0566acc70eb64.zip
Change EXECUTE INTO to CREATE TABLE AS EXECUTE.
Diffstat (limited to 'src/backend/parser')
-rw-r--r--src/backend/parser/gram.y20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index a8df7c65e9d..fbd70807dff 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.423 2003/06/29 00:33:43 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.424 2003/07/01 00:04:31 petere Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -4116,17 +4116,29 @@ PreparableStmt:
/*****************************************************************************
*
- * QUERY:
- * EXECUTE <plan_name> [(params, ...)] [INTO ...]
+ * EXECUTE <plan_name> [(params, ...)]
+ * CREATE TABLE <name> AS EXECUTE <plan_name> [(params, ...)]
*
*****************************************************************************/
-ExecuteStmt: EXECUTE name execute_param_clause into_clause
+ExecuteStmt: EXECUTE name execute_param_clause
{
ExecuteStmt *n = makeNode(ExecuteStmt);
n->name = $2;
n->params = $3;
+ n->into = NULL;
+ $$ = (Node *) n;
+ }
+ | CREATE OptTemp TABLE qualified_name OptCreateAs AS EXECUTE name execute_param_clause
+ {
+ ExecuteStmt *n = makeNode(ExecuteStmt);
+ n->name = $8;
+ n->params = $9;
+ $4->istemp = $2;
n->into = $4;
+ if ($5)
+ elog(ERROR, "column name list not allowed in CREATE TABLE / AS EXECUTE");
+ /* ... because it's not implemented, but it could be */
$$ = (Node *) n;
}
;