diff options
-rw-r--r-- | src/backend/utils/adt/ruleutils.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index 59c818a803..bdf8978ecc 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -3260,6 +3260,18 @@ get_insert_query_def(Query *query, deparse_context *context) if (select_rte && values_rte) elog(ERROR, "both subquery and values RTEs in INSERT"); +#ifdef PGXC + /* + * If it's an INSERT ... SELECT or VALUES (...), (...), ... + * sql_statement is rewritten and assigned in RewriteQuery. + * Just return it here. + */ + if (IS_PGXC_COORDINATOR && !IsConnFromCoord() && values_rte != NULL) + { + appendStringInfo(buf, "%s", query->sql_statement); + return; + } +#endif /* * Start the query with INSERT INTO relname */ |