Re: [HACKERS] Proposal: Local indexes for partitioned table

Alvaro Herrera <alvherre@alvh.no-ip.org>

From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>, Jesper Pedersen <jesper.pedersen@redhat.com>, David Rowley <david.rowley@2ndquadrant.com>, Simon Riggs <simon@2ndquadrant.com>, Pg Hackers <pgsql-hackers@postgresql.org>, Maksim Milyutin <milyutinma@gmail.com>
Date: 2018-01-08T20:54:59Z
Lists: pgsql-hackers

Attachments

Robert Haas wrote:
> On Thu, Jan 4, 2018 at 5:01 PM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
> > Tangentially: I didn't like very much that I added a new index to
> > pg_index to support this feature.  I thought maybe it'd be better to
> > change the index on indrelid to be on (indrelid,indparentidx) instead,
> > but that doesn't seem great either because it bloats that index which is
> > used to support common relcache operations ...
> >
> > (The more I think of this, the more I believe that pg_inherits is a
> > better answer.  Opinions?)
> 
> I actually haven't looked at the code, but the idea that pg_inherits
> is on the way out is news to me.  If that method will work, I don't
> quite see why we should invent something new.

I removed the pg_index.indparentidx column that previous versions add,
and replaced it with pg_inherits rows.  This makes the code a little bit
bulkier in a couple of places, but nothing terrible.  As a benefit,
there's no extra index in pg_index now.

I fixed some outdated comments, too.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Commits

  1. Local partitioned indexes

  2. Fix StoreCatalogInheritance1 to use 32bit inhseqno

  3. Get rid of copy_partition_key

  4. Simplify index_[constraint_]create API