On Tue, Mar 5, 2019 at 5:17 AM Andres Freund <and...@anarazel.de> wrote: > > Hi, > > In the pluggable storage patch [1], one thing that I'm wondering about > is how exactly to inherit the storage AM across partitions. I think > that's potentially worthy of a discussion with a wider audience than I'd > get in that thread. It seems also related to the recent discussion in [2] > > Consider (excerpted from the tests): > > CREATE TABLE tableam_parted_heap2 (a text, b int) PARTITION BY list (a) USING > heap2; > > SET default_table_access_method = 'heap'; > CREATE TABLE tableam_parted_a_heap2 PARTITION OF tableam_parted_heap2 FOR > VALUES IN ('a'); > > SET default_table_access_method = 'heap2'; > CREATE TABLE tableam_parted_b_heap2 PARTITION OF tableam_parted_heap2 FOR > VALUES IN ('b'); > > CREATE TABLE tableam_parted_c_heap2 PARTITION OF tableam_parted_heap2 FOR > VALUES IN ('c') USING heap; > CREATE TABLE tableam_parted_d_heap2 PARTITION OF tableam_parted_heap2 FOR > VALUES IN ('d') USING heap2; > > It seems pretty clear that tableam_parted_heap2, tableam_parted_d_heap2 > would be stored via heap2, and tableam_parted_c_heap2 via heap. > > But for tableam_parted_a_heap2 tableam_parted_b_heap2 the answer isn't > quite as clear. I think it'd both be sensible for new partitions to > inherit the AM from the root, but it'd also be sensible to use the > current default. >
Yeah, we can go either way. > Out of laziness (it's how it works rn) I'm inclined to to go with using > the current default, but I'd be curious if others disagree. > I think using the current default should be okay as that will be the behavior for non-partitioned tables as well. However, if people have good reasons to go other way, then that is fine too. -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com