mirror of
https://github.com/postgres/postgres.git
synced 2025-06-30 21:42:05 +03:00
Allow DML commands that create tables to use parallel query.
Haribabu Kommi, reviewed by Dilip Kumar and Rafia Sabih. Various cosmetic changes by me to explain why this appears to be safe but allowing inserts in parallel mode in general wouldn't be. Also, I removed the REFRESH MATERIALIZED VIEW case from Haribabu's patch, since I'm not convinced that case is OK, and hacked on the documentation somewhat. Discussion: http://postgr.es/m/CAJrrPGdo5bak6qnPWe8Kpi8g_jfQEs-G4SYmG9y+OFaw2-dPvA@mail.gmail.com
This commit is contained in:
@ -396,8 +396,6 @@ ExplainOneUtility(Node *utilityStmt, IntoClause *into, ExplainState *es,
|
||||
* We have to rewrite the contained SELECT and then pass it back to
|
||||
* ExplainOneQuery. It's probably not really necessary to copy the
|
||||
* contained parsetree another time, but let's be safe.
|
||||
*
|
||||
* Like ExecCreateTableAs, disallow parallelism in the plan.
|
||||
*/
|
||||
CreateTableAsStmt *ctas = (CreateTableAsStmt *) utilityStmt;
|
||||
List *rewritten;
|
||||
@ -405,7 +403,7 @@ ExplainOneUtility(Node *utilityStmt, IntoClause *into, ExplainState *es,
|
||||
rewritten = QueryRewrite(castNode(Query, copyObject(ctas->query)));
|
||||
Assert(list_length(rewritten) == 1);
|
||||
ExplainOneQuery(linitial_node(Query, rewritten),
|
||||
0, ctas->into, es,
|
||||
CURSOR_OPT_PARALLEL_OK, ctas->into, es,
|
||||
queryString, params, queryEnv);
|
||||
}
|
||||
else if (IsA(utilityStmt, DeclareCursorStmt))
|
||||
|
Reference in New Issue
Block a user