From: | Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, David Rowley <david(dot)rowley(at)2ndquadrant(dot)com> |
Cc: | Rushabh Lathia <rushabh(dot)lathia(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Phil Florent <philflorent(at)hotmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Internal error XX000 with enable_partition_pruning=on, pg 11 beta1 on Debian |
Date: | 2018-08-09 03:53:08 |
Message-ID: | 3875a6e6-3a53-9539-3bf3-856d0423405c@lab.ntt.co.jp |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2018/08/09 0:48, Tom Lane wrote:
> David Rowley <david(dot)rowley(at)2ndquadrant(dot)com> writes:
>> On 8 August 2018 at 17:28, Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp> wrote:
>>> Attached is a patch which modifies the if test to compare relids instead
>>> of RelOptInfo pointers.
>
>> Thanks for investigating and writing a patch. I agree with the fix.
>
> I changed this to compare the relid sets not just rel->relid, since
> rel->relid is only reliable for baserels. The partitioned rel could
> safely be assumed to be a baserel, but I'm less comfortable with
> supposing that the parentrel always will be. Otherwise, added a
> test case based on Rushabh's example and pushed. (I'm not quite
> sure if the plan will be stable enough to satisfy the buildfarm,
> but we'll soon find out ...)
Thank you for committing, agreed that comparing relid sets for equality
might be more future-proof.
About the test case, wondering if we should, like David seemed to suggest,
add a test case that would actually use run-time pruning? Maybe, even
better if the new test also had partitioned parent under UNION ALL parent
under ModifyTable. Something like in the attached?
One reason why we should adapt such a test case is that, in the future, we
may arrange for make_partitionedrel_pruneinfo(), whose code we just fixed,
to not be called if we know that run-time pruning is not needed. It seems
that that's true for the test added by the commit, that is, it doesn't
need run-time pruning.
Regards,
Amit
Attachment | Content-Type | Size |
---|---|---|
11e22e486-additional-test.patc | text/plain | 4.4 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2018-08-09 04:00:20 | Re: Internal error XX000 with enable_partition_pruning=on, pg 11 beta1 on Debian |
Previous Message | Andrey Lepikhov | 2018-08-09 03:43:37 | Re: [WIP] [B-Tree] Retail IndexTuple deletion |