table inheritance partition and indexes

Started by Ted Tothover 3 years ago7 messagesgeneral
Jump to latest
#1Ted Toth
txtoth@gmail.com

I've created a table with a number of indexes and then created a partition
table that inherits from it using "CREATE TABLE... INHERITS..." . I've then
queried pg_indexes on the parent for its indexes and tried creating
matching indexes on the child and attaching them to the parent table
indexes. However "ALTER TABLE ... ATTACH PARTITION ..." is returning the
error "<parent tables index name> is not a table partitioned index". I've
followed the inheritance partitioning example and read the "CREATE INDEX"
docs but I must be missing something, can anyone help me understand what
I'm doing wrong? I'm using version 13.

Ted

#2Ron
ronljohnsonjr@gmail.com
In reply to: Ted Toth (#1)
Re: table inheritance partition and indexes

Out of curiosity, why INHERITS in v13 instead of PARTITION BY?

On 11/23/22 09:31, Ted Toth wrote:

I've created a table with a number of indexes and then created a partition
table that inherits from it using "CREATE TABLE... INHERITS..." . I've
then queried pg_indexes on the parent for its indexes and tried creating
matching indexes on the child and attaching them to the parent table
indexes. However "ALTER TABLE ... ATTACH PARTITION ..." is returning the
error "<parent tables index name> is not a table partitioned index". I've
followed the inheritance partitioning example and read the "CREATE INDEX"
docs but I must be missing something, can anyone help me understand what
I'm doing wrong? I'm using version 13.

Ted

--
Angular momentum makes the world go 'round.

#3Ted Toth
txtoth@gmail.com
In reply to: Ron (#2)
Re: table inheritance partition and indexes

Because none of the declarative partition types do what I want.

On Wed, Nov 23, 2022 at 1:24 PM Ron <ronljohnsonjr@gmail.com> wrote:

Show quoted text

Out of curiosity, why INHERITS in v13 instead of PARTITION BY?

On 11/23/22 09:31, Ted Toth wrote:

I've created a table with a number of indexes and then created a

partition

table that inherits from it using "CREATE TABLE... INHERITS..." . I've
then queried pg_indexes on the parent for its indexes and tried creating
matching indexes on the child and attaching them to the parent table
indexes. However "ALTER TABLE ... ATTACH PARTITION ..." is returning the
error "<parent tables index name> is not a table partitioned index".

I've

followed the inheritance partitioning example and read the "CREATE

INDEX"

docs but I must be missing something, can anyone help me understand what
I'm doing wrong? I'm using version 13.

Ted

--
Angular momentum makes the world go 'round.

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Ted Toth (#3)
Re: table inheritance partition and indexes

Ted Toth <txtoth@gmail.com> writes:

On Wed, Nov 23, 2022 at 1:24 PM Ron <ronljohnsonjr@gmail.com> wrote:

Out of curiosity, why INHERITS in v13 instead of PARTITION BY?

Because none of the declarative partition types do what I want.

Then you're stuck managing it manually. But ATTACH PARTITION is
not relevant to INHERITS-style partitioning.

regards, tom lane

#5Ted Toth
txtoth@gmail.com
In reply to: Tom Lane (#4)
Re: table inheritance partition and indexes

On Wed, Nov 23, 2022 at 4:01 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:

Ted Toth <txtoth@gmail.com> writes:

On Wed, Nov 23, 2022 at 1:24 PM Ron <ronljohnsonjr@gmail.com> wrote:

Out of curiosity, why INHERITS in v13 instead of PARTITION BY?

Because none of the declarative partition types do what I want.

Then you're stuck managing it manually. But ATTACH PARTITION is
not relevant to INHERITS-style partitioning.

That's the part that wasn't clear to me, thanks.

Show quoted text

regards, tom lane

#6David Rowley
dgrowleyml@gmail.com
In reply to: Ted Toth (#5)
Re: table inheritance partition and indexes

On Thu, 24 Nov 2022 at 11:34, Ted Toth <txtoth@gmail.com> wrote:

On Wed, Nov 23, 2022 at 4:01 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:

Then you're stuck managing it manually. But ATTACH PARTITION is
not relevant to INHERITS-style partitioning.

That's the part that wasn't clear to me, thanks.

Would this have been more clear if [1]https://www.postgresql.org/docs/current/ddl-partitioning.html#DDL-PARTITIONING-USING-INHERITANCE didn't mention both declarative
partitioning and inheritance partition on the same page? I've wondered
before if we should split that into two separate pages.

David

[1]: https://www.postgresql.org/docs/current/ddl-partitioning.html#DDL-PARTITIONING-USING-INHERITANCE

#7Ted Toth
txtoth@gmail.com
In reply to: David Rowley (#6)
Re: table inheritance partition and indexes

Docs can always be better, right ;) When I went back and looked at the page
I did realize that the ATTACH INDEX command was only mentioned in the
description of declarative partitioning and not in the inheritance section
so I should have paid closer attention to the location.

Ted

On Wed, Nov 23, 2022 at 8:13 PM David Rowley <dgrowleyml@gmail.com> wrote:

Show quoted text

On Thu, 24 Nov 2022 at 11:34, Ted Toth <txtoth@gmail.com> wrote:

On Wed, Nov 23, 2022 at 4:01 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:

Then you're stuck managing it manually. But ATTACH PARTITION is
not relevant to INHERITS-style partitioning.

That's the part that wasn't clear to me, thanks.

Would this have been more clear if [1] didn't mention both declarative
partitioning and inheritance partition on the same page? I've wondered
before if we should split that into two separate pages.

David

[1]
https://www.postgresql.org/docs/current/ddl-partitioning.html#DDL-PARTITIONING-USING-INHERITANCE