From: | Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp> |
---|---|
To: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: no partition pruning when partitioning using array type |
Date: | 2018-07-11 00:26:59 |
Message-ID: | 6161a1ed-eb10-5024-5da1-f1f1953a55b7@lab.ntt.co.jp |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2018/07/11 3:18, Alvaro Herrera wrote:
> On 2018-May-08, Amit Langote wrote:
>
>> In HEAD, since we already fixed that case in e5dcbb88a15d [1] which is a
>> different piece of code anyway, the patch only serves to improve the
>> deparse output emitted by ruleutils.c for partition constraint expressions
>> where pseudo-type partition key is involved. The change can be seen in
>> the updated test output for create_table test.
>
> Actually, even in 11/master it also fixes this case:
>
> alvherre=# explain update p set a = a || a where a = '{1}';
> QUERY PLAN
> ──────────────────────────────────────────────────────────
> Update on p (cost=0.00..54.03 rows=14 width=38)
> Update on p1
> Update on p2
> -> Seq Scan on p1 (cost=0.00..27.02 rows=7 width=38)
> Filter: (a = '{1}'::integer[])
> -> Seq Scan on p2 (cost=0.00..27.02 rows=7 width=38)
> Filter: (a = '{1}'::integer[])
> (7 filas)
>
> Because UPDATE uses the predtest.c prune code, not partprune. So it's
> not just some ruleutils beautification.
That's true. Shame I totally missed that.
Thanks,
Amit
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2018-07-11 00:29:43 | Re: Concurrency bug in UPDATE of partition-key |
Previous Message | Asim R P | 2018-07-11 00:15:13 | Shared buffer access rule violations? |