Re: Declarative partitioning - another take
Robert Haas <robertmhaas@gmail.com>
On Tue, Oct 25, 2016 at 10:00 PM, Amit Langote <Langote_Amit_f8@lab.ntt.co.jp> wrote: > I am not (or no longer) sure how that argument affects INSERT on > partitioned tables with tuple-routing though. Are partitions at all > levels *implicitly specified to be affected* when we say INSERT INTO > root_partitioned_table? I'd say yes. >> Some of the other things that we might want to consider disallowing on >> parent table could be: >> a. Policy on table_name > > Perhaps. Since there are no rows in the parent table(s) itself of a > partition hierarchy, it might not make sense to continue to allow creating > row-level security policies on them. No, per my previous email. Those policies are emphatically not without effect. >> b. Alter table has many clauses, are all of those allowed and will it >> make sense to allow them? > > Currently, we only disallow the following with partitioned parent tables > as far as alter table is concerned. > > - cannot change inheritance by ALTER TABLE partitioned_table INHERIT ... > > - cannot let them be regular inheritance parents either - that is, the > following is disallowed: ALTER TABLE some_able INHERIT partitioned_table > > - cannot create UNIQUE, PRIMARY KEY, FOREIGN KEY, EXCLUDE constraints > > - cannot drop column involved in the partitioning key > > Most other forms that affect attributes and constraints follow the regular > inheritance behavior (recursion) with certain exceptions such as: > > - cannot add/drop an attribute or check constraint to *only* to/from > the parent > > - cannot add/drop NOT NULL constraint to/from *only* the parent > > Thoughts? Seems sensible to me. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL 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