Alban Hertroys <haram...@gmail.com> writes:
> On Sep 7, 2013, at 6:54, Steve Atkins <st...@blighty.com> wrote:
>>> If I have a partitioned table that has some range constraints that look 
>>> kinda like they're intended for constraint exclusion, but aren't quite 
>>> non-overlapping, will that break anything?

> Next to that, putting data in the tables becomes ambiguous for records that 
> match both constraints - in which table should the records go? That is 
> something that you need to do programatically anyway, so with the knowledge 
> of how to decide which records go where, you could also define your exclusion 
> constraints to not be ambigous.

> I don't see any benefit of having ambiguous exclusion constraints - IMHO 
> you're better off fixing them.

I agree with that advice in principle; but if the true partitioning
constraint is too complicated, you might defeat the planner's ability to
prove that particular tables don't need to be scanned as a consequence of
a particular WHERE clause.  The simple range constraints Steve showed
should work fine with constraint exclusion.  The proofs are done
separately for each sub-table, so the fact that the ranges overlap doesn't
bother the planner.  We might in future have a more efficient partitioning
method that does assume non-overlapping ranges ... but it's not there
today.

                        regards, tom lane


-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to