1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-09 06:21:09 +03:00

Change EXECUTE INTO to CREATE TABLE AS EXECUTE.

This commit is contained in:
Peter Eisentraut
2003-07-01 00:04:31 +00:00
parent df08f5c003
commit 71e9f3b07f
6 changed files with 52 additions and 51 deletions

View File

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