From: | Robert Haas <robertmhaas(at)gmail(dot)com> |
---|---|
To: | Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp> |
Cc: | Beena Emerson <memissemerson(at)gmail(dot)com>, Rajkumar Raghuwanshi <rajkumar(dot)raghuwanshi(at)enterprisedb(dot)com>, David Rowley <david(dot)rowley(at)2ndquadrant(dot)com>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: path toward faster partition pruning |
Date: | 2017-10-26 11:34:02 |
Message-ID: | CA+Tgmoa+hFFxhks6EkX-i263Azj36hasZF-8D+sJUANwCUg60w@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thu, Oct 26, 2017 at 1:17 PM, Amit Langote
<Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp> wrote:
> It can perhaps taught to not make that conclusion by taking into account
> the default partition's partition constraint, which includes constraint
> inherited from the parent, viz. 1 <= col1 < 50001. To do that, it might
> be possible to summon up predtest.c's powers to conclude from the default
> partition's partition constraint that it cannot contain any keys < 1, but
> then we'll have to frame up a clause expression describing the latter.
> Generating such a clause expression can be a bit daunting for a
> multi-column key. So, I haven't yet tried really hard to implement this.
> Any thoughts on that?
I don't think we really want to get into theorem-proving here, because
it's slow. Whatever we're going to do we should be able to do without
that - keeping it in the form of btree-strategy + value. It doesn't
seem that hard. Suppose we're asked to select partitions from tprt
subject to (<, 10000). Well, we determine that some of the tprt_1
partitions may be relevant, so we tell tprt_1 to select partitions
subject to (>=, 1, <, 10000). We know to do that because we know that
10000 < 50000 and we know to include >= 1 because we haven't got any
lower bound currently at all. What's the problem?
In some sense it's tempting to say that this case just doesn't matter
very much; after all, subpartitioning on the same column used to
partition at the top level is arguably lame. But if we can get it
right in a relatively straightforward manner then let's do it.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2017-10-26 11:35:25 | Re: legitimacy of using PG_TRY , PG_CATCH , PG_END_TRY in C function |
Previous Message | Rushabh Lathia | 2017-10-26 11:24:20 | Re: Parallel Hash take II |