Re: Declarative partitioning - another take
Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>
> > > > 2. A combination of constraints on the partitions should be applicable to > > the parent. We aren't doing that. > > How about on seeing that a RELOPT_OTHER_MEMBER_REL is partitioned parent > table, we can have get_relation_constraints() include a constant false > clause in the list of constraints returned for > relation_excluded_by_constraints() to process so that it is not included > in the append result by way of constraint exclusion. One more option is > to mark such rels dummy in set_rel_size(). > > I am not complaining about having parent relation there. For the people who are used to seeing the parent relation in the list of append relations, it may be awkward. But +1 if we can do that. If we can't do that, we should at least mark with an OR of all constraints on the partitions, so that constraint exclusion can exclude it if there are conditions incompatible with constraints. This is what would happen in inheritance case as well, if there are constraints on the parent. In the above example, the parent table would have constraints CHECK ((a >= 0 AND a < 250) OR (a >= 250 and a < 500) OR (a >= 500 or a < 600)). It will probably get excluded, if constraint exclusion is smart enough to understand ORing. -- Best Wishes, Ashutosh Bapat EnterpriseDB Corporation The Postgres Database Company
Commits
-
Fix typo.
- 03bf59676ea0 10.0 landed
-
Document trigger-firing behavior for inheritance/partitioning.
- e17628145ac3 10.0 landed
-
Fire per-statement triggers on partitioned tables.
- e180c8aa8caf 10.0 landed
-
Set ecxt_scantuple correctly for tuple routing.
- 132488bfee68 10.0 landed
-
Fix interaction of partitioned tables with BulkInsertState.
- b1ecb9b3fcfb 10.0 landed
-
Avoid core dump for empty prepared statement in an aborted transaction.
- ba61a04bc7fe 10.0 cited
-
Fix some problems in check_new_partition_bound().
- 8a8afe2f54c2 10.0 landed
-
Remove unnecessary arguments from partitioning functions.
- 18fc5192a631 10.0 cited
-
Fix reporting of constraint violations for table partitioning.
- f1b4c771ea74 10.0 cited
-
Fix tuple routing in cases where tuple descriptors don't match.
- 2ac3ef7a01df 10.0 cited
-
Invalid parent's relcache after CREATE TABLE .. PARTITION OF.
- 7cd0fd655d68 10.0 landed
-
Doc: improve documentation about inheritance.
- 162477a63d3c 10.0 cited