Partitioned tables and covering indexes

Jaime Casanova <jaime.casanova@2ndquadrant.com>

From: Jaime Casanova <jaime.casanova@2ndquadrant.com>
To: Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2018-04-10T07:07:58Z
Lists: pgsql-hackers
Hi,

Trying covering indexes on partitioned tables i get this error
"""
postgres=# create index on t1_part (i) include (t);
ERROR:  cache lookup failed for opclass 0
"""

To reproduce:

create table t1_part (i int, t text) partition by hash (i);
create table t1_part_0 partition of t1_part for values with (modulus
2, remainder 0);
create table t1_part_1 partition of t1_part for values with (modulus
2, remainder 1);
insert into t1_part values (1, repeat('abcdefquerty', 20));

create index on t1_part (i) include (t);

-- 
Jaime Casanova                      www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


Commits

  1. Fix interference between covering indexes and partitioned tables

  2. Cleanup covering infrastructure

  3. Rename IndexInfo.ii_KeyAttrNumbers array