| 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: | Whole Thread | Raw Message | 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
| 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. |