Re: Getting ERROR "subplan "SubPlan 1" was not initialized" in EXISTS subplan when using for list partition.

From: Ranier Vilela <ranier(dot)vf(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Zhihong Yu <zyu(at)yugabyte(dot)com>, Rajkumar Raghuwanshi <rajkumar(dot)raghuwanshi(at)enterprisedb(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Getting ERROR "subplan "SubPlan 1" was not initialized" in EXISTS subplan when using for list partition.
Date: 2021-09-15 19:22:13
Message-ID: CAEudQArWe9-+4jx9LJREYpWusgsDLFR5=fgkgq5D_2GjzM8gJg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Em qua., 15 de set. de 2021 às 16:16, Ranier Vilela <ranier(dot)vf(at)gmail(dot)com>
escreveu:

> Em qua., 15 de set. de 2021 às 15:35, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
> escreveu:
>
>> Ranier Vilela <ranier(dot)vf(at)gmail(dot)com> writes:
>> > Em qua., 15 de set. de 2021 às 12:00, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
>> escreveu:
>> >> We could, in fact, not bother with removing the no-longer-referenced
>> >> subplans, and it probably wouldn't be all that awful. But the intent
>> >> of the original patch was to save the executor startup time for such
>> >> subplans, so I wanted to preserve that goal if I could.
>>
>> > I'm sorry if I'm being persistent with this issue, but I'd like to give
>> it
>> > one last try before I let it go
>> > I modified the way the subplane deletion is done and it seems to me that
>> > this really happens.
>>
>> It looks like what this fragment is doing is clobbering the List
>> substructure of the AlternativeSubPlan node itself. That's not
>> going to make any difference, since the whole point of the exercise
>> is that the AlternativeSubPlan gets cut out of the finished tree.
>> But the list that we want to modify, in order to save the
>> executor time, is the root->glob->subplans list (which ends
>> up being PlannedStmt.subplans). And that's global to the
>> query, so we can't fix it correctly on the basis of a single
>> AlternativeSubPlan.
>>
> Ok, I can see now.
> But this leads me to the conclusion that AlternativeSubPlan *asplan
> does not seem to me to be a good approach for this function, better to
> deal with it directly:
> "root->glob->subplans" which, it seems, works too.
>
Hmm, too fast and wrong, do not work.

postgres=# explain (costs off)
postgres-# select * from exists_tbl t1
postgres-# where (exists(select 1 from exists_tbl t2 where t1.c1 = t2.c2)
or c3 < 0);
ERROR: unrecognized node type: 13
postgres=# select * from exists_tbl t1
postgres-# where (exists(select 1 from exists_tbl t2 where t1.c1 = t2.c2)
or c3 < 0);
ERROR: unrecognized node type: 13

regards,
Ranier Vilela

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Dunstan 2021-09-15 19:28:54 Re: pg_upgrade test for binary compatibility of core data types
Previous Message Ranier Vilela 2021-09-15 19:16:01 Re: Getting ERROR "subplan "SubPlan 1" was not initialized" in EXISTS subplan when using for list partition.