fix deparse parsetree error when subquery in insert into cmd is nested in debug5 log level

This commit is contained in:
Zongtian Hou
2022-07-18 10:02:43 +08:00
committed by Zongtian Hou
parent f0279d0bc9
commit 4ea70b1e87
4 changed files with 18 additions and 1 deletions

View File

@ -6951,7 +6951,8 @@ static void get_insert_query_def(Query* query, deparse_context* context)
*/
foreach (l, query->rtable) {
rte = (RangeTblEntry*)lfirst(l);
if (rte->rtekind == RTE_SUBQUERY) {
if (rte->rtekind == RTE_SUBQUERY && !(rte->pulled_from_subquery)) {
/* subquery rte pulled up from nested subquery is ignored here */
is_fqs_inselect = true;
if (select_rte != NULL) {
ereport(ERROR, (errcode(ERRCODE_RESTRICT_VIOLATION), errmsg("too many subquery RTEs in INSERT")));

View File

@ -0,0 +1,6 @@
drop table if exists brinindex_t1;
set log_min_messages to debug5;
create table brinindex_t1(c1 numrange,c2 int,c3 text);
insert into brinindex_t1 select format('[%s,%s]',b*1000,b*1000+3.1415926)::numrange,a,a || 'brinindextest' from (select a,random() as b from generate_series(1,10000) as a);
drop table brinindex_t1;
reset log_min_messages;

View File

@ -0,0 +1,7 @@
drop table if exists brinindex_t1;
NOTICE: table "brinindex_t1" does not exist, skipping
set log_min_messages to debug5;
create table brinindex_t1(c1 numrange,c2 int,c3 text);
insert into brinindex_t1 select format('[%s,%s]',b*1000,b*1000+3.1415926)::numrange,a,a || 'brinindextest' from (select a,random() as b from generate_series(1,10000) as a);
drop table brinindex_t1;
reset log_min_messages;

View File

@ -1007,3 +1007,6 @@ test: aioptimizer
test: aioptimizer_small
test: pgfincore
test: rename_table
# debug instrument
test: test_debug5