pg.ddx.io  pgsql-committers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: pgsql-committers@lists.postgresql.org
Subject: pgsql: Allow specifying an access method for partitioned tables
Date: Mon, 25 Mar 2024 15:31:36 +0000
Message-ID: <E1romIR-005b3h-LK@gemulon.postgresql.org> (raw)

Allow specifying an access method for partitioned tables

It's now possible to specify a table access method via
CREATE TABLE ... USING for a partitioned table, as well change it with
ALTER TABLE ... SET ACCESS METHOD.  Specifying an AM for a partitioned
table lets the value be used for all future partitions created under it,
closely mirroring the behavior of the TABLESPACE option for partitioned
tables.  Existing partitions are not modified.

For a partitioned table with no AM specified, any new partitions are
created with the default_table_access_method.

Also add ALTER TABLE ... SET ACCESS METHOD DEFAULT, which reverts to the
original state of using the default for new partitions.

The relcache of partitioned tables is not changed: rd_tableam is not
set, even if a partitioned table has a relam set.

Author: Justin Pryzby <pryzby@telsasoft.com>
Author: Soumyadeep Chakraborty <soumyadeep2007@gmail.com>
Author: Michaƫl Paquier <michael@paquier.xyz>
Reviewed-by: The authors themselves
Discussion: https://postgr.es/m/CAE-ML+9zM4wJCGCBGv01k96qQ3gFv4WFcFy=zqPHKeaEFwwv6A@mail.gmail.com
Discussion: https://postgr.es/m/20210308010707.GA29832%40telsasoft.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/374c7a2290429eac3217b0c7b0b485db9c2bcc72

Modified Files
--------------
doc/src/sgml/catalogs.sgml              |  10 +-
doc/src/sgml/ref/alter_table.sgml       |  18 +++-
doc/src/sgml/ref/create_table.sgml      |   4 +
src/backend/commands/tablecmds.c        | 165 ++++++++++++++++++++++++++------
src/backend/utils/cache/lsyscache.c     |  22 +++++
src/backend/utils/cache/relcache.c      |   7 ++
src/bin/pg_dump/pg_dump.c               |   3 +-
src/bin/pg_dump/t/002_pg_dump.pl        |  35 +++++++
src/include/catalog/pg_class.h          |   4 +-
src/include/utils/lsyscache.h           |   1 +
src/test/regress/expected/create_am.out | 158 ++++++++++++++++++++++++++++--
src/test/regress/sql/create_am.sql      |  91 +++++++++++++++++-
12 files changed, 469 insertions(+), 49 deletions(-)



view thread (2+ messages)

Message-ID: <E1romIR-005b3h-LK@gemulon.postgresql.org>
Permalink:  ../E1romIR-005b3h-LK@gemulon.postgresql.org/
Also on:    postgresql.org/message-id/E1romIR-005b3h-LK@gemulon.postgresql.org

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-committers@postgresql.org
  Cc: alvherre@alvh.no-ip.org, pgsql-committers@lists.postgresql.org
  Subject: Re: pgsql: Allow specifying an access method for partitioned tables
  In-Reply-To: <E1romIR-005b3h-LK@gemulon.postgresql.org>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox