alter index WITH ( storage_parameter = value [, ... ] ) for partition index.
Hi,
I have created partition table index with some storage_parameter like
example given below, I am not able to reset/modify it from partition table.
Is this fine.
postgres=# create table part(a int) PARTITION BY RANGE(a);
CREATE TABLE
postgres=# create table part_p partition of part for values from (minvalue)
to (maxvalue);
CREATE TABLE
postgres=# create index part_idx on part(a) with (fillfactor = '14');
CREATE INDEX
postgres=# \d part
Table "public.part"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
a | integer | | |
Partition key: RANGE (a)
Indexes:
"part_idx" btree (a) WITH (fillfactor='14')
Number of partitions: 1 (Use \d+ to list them.)
postgres=# \d part_p
Table "public.part_p"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
a | integer | | |
Partition of: part FOR VALUES FROM (MINVALUE) TO (MAXVALUE)
Indexes:
"part_p_a_idx" btree (a) WITH (fillfactor='14')
*postgres=# alter index part_idx reset (fillfactor);ERROR: "part_idx" is
not a table, view, materialized view, or index*
postgres=# alter index part_p_a_idx reset (fillfactor);
ALTER INDEX
postgres=# \d+ part
Table "public.part"
Column | Type | Collation | Nullable | Default | Storage | Stats target
| Description
--------+---------+-----------+----------+---------+---------+--------------+-------------
a | integer | | | | plain |
|
Partition key: RANGE (a)
Indexes:
* "part_idx" btree (a) WITH (fillfactor='14')*
Partitions: part_p FOR VALUES FROM (MINVALUE) TO (MAXVALUE)
postgres=# \d part_p
Table "public.part_p"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
a | integer | | |
Partition of: part FOR VALUES FROM (MINVALUE) TO (MAXVALUE)
Indexes:
"part_p_a_idx" btree (a)
Thanks & Regards,
Rajkumar Raghuwanshi
QMG, EnterpriseDB Corporation
another case where I got error like partition table index is not a index is
given below.
postgres=# create table part(a int, constraint part_pk primary key(a))
PARTITION BY RANGE(a);
CREATE TABLE
postgres=# create table part_p1 partition of part for values from
(minvalue) to (0);
CREATE TABLE
postgres=# create table part_p2 partition of part for values from (0) to
(maxvalue);
CREATE TABLE
postgres=# create EXTENSION if not exists pgstattuple;
CREATE EXTENSION
postgres=# select pgstatindex('part_p1_pkey');
pgstatindex
------------------------------
(3,0,8192,0,0,0,0,0,NaN,NaN)
(1 row)
postgres=# select pgstatindex('part_pk');
ERROR: relation "part_pk" is not a btree index
postgres=#
Thanks & Regards,
Rajkumar Raghuwanshi
QMG, EnterpriseDB Corporation
On Wed, Jun 27, 2018 at 3:12 PM, Rajkumar Raghuwanshi <
rajkumar.raghuwanshi@enterprisedb.com> wrote:
Show quoted text
Hi,
I have created partition table index with some storage_parameter like
example given below, I am not able to reset/modify it from partition table.
Is this fine.postgres=# create table part(a int) PARTITION BY RANGE(a);
CREATE TABLE
postgres=# create table part_p partition of part for values from
(minvalue) to (maxvalue);
CREATE TABLE
postgres=# create index part_idx on part(a) with (fillfactor = '14');
CREATE INDEX
postgres=# \d part
Table "public.part"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
a | integer | | |
Partition key: RANGE (a)
Indexes:
"part_idx" btree (a) WITH (fillfactor='14')
Number of partitions: 1 (Use \d+ to list them.)postgres=# \d part_p
Table "public.part_p"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
a | integer | | |
Partition of: part FOR VALUES FROM (MINVALUE) TO (MAXVALUE)
Indexes:
"part_p_a_idx" btree (a) WITH (fillfactor='14')*postgres=# alter index part_idx reset (fillfactor);ERROR: "part_idx" is
not a table, view, materialized view, or index*
postgres=# alter index part_p_a_idx reset (fillfactor);
ALTER INDEX
postgres=# \d+ part
Table "public.part"
Column | Type | Collation | Nullable | Default | Storage | Stats
target | Description
--------+---------+-----------+----------+---------+--------
-+--------------+-------------
a | integer | | | | plain
| |
Partition key: RANGE (a)
Indexes:
* "part_idx" btree (a) WITH (fillfactor='14')*
Partitions: part_p FOR VALUES FROM (MINVALUE) TO (MAXVALUE)postgres=# \d part_p
Table "public.part_p"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
a | integer | | |
Partition of: part FOR VALUES FROM (MINVALUE) TO (MAXVALUE)
Indexes:
"part_p_a_idx" btree (a)Thanks & Regards,
Rajkumar Raghuwanshi
QMG, EnterpriseDB Corporation
On Thu, Jun 28, 2018 at 11:51:23AM +0530, Rajkumar Raghuwanshi wrote:
postgres=# select pgstatindex('part_pk');
ERROR: relation "part_pk" is not a btree index
This error message is intentional. Please see bef5fcc and its related
thread:
/messages/by-id/CAH2-WzkOKptQiE51Bh4_xeEHhaBwHkZkGtKizrFMgEkfUuRRQg@mail.gmail.com
--
Michael
On Thu, Jun 28, 2018 at 12:07 PM, Michael Paquier <michael@paquier.xyz>
wrote:
On Thu, Jun 28, 2018 at 11:51:23AM +0530, Rajkumar Raghuwanshi wrote:
postgres=# select pgstatindex('part_pk');
ERROR: relation "part_pk" is not a btree indexThis error message is intentional. Please see bef5fcc and its related
thread:
/messages/by-id/CAH2-WzkOKptQiE51Bh4_
xeEHhaBwHkZkGtKizrFMgEkfUuRRQg@mail.gmail.com
Thanks, Sorry I missed thread.
Show quoted text
On Wed, Jun 27, 2018 at 5:42 AM, Rajkumar Raghuwanshi
<rajkumar.raghuwanshi@enterprisedb.com> wrote:
postgres=# alter index part_idx reset (fillfactor);
ERROR: "part_idx" is not a table, view, materialized view, or index
I don't know whether that should work, but it seems like the error
message needs improvement, at the least.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company