pgsql: tableam: relation creation, VACUUM FULL/CLUSTER, SET TABLESPACE.

From: Andres Freund <andres(at)anarazel(dot)de>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: tableam: relation creation, VACUUM FULL/CLUSTER, SET TABLESPACE.
Date: 2019-03-29 03:07:26
Message-ID: E1h9hra-0000eL-4y@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

tableam: relation creation, VACUUM FULL/CLUSTER, SET TABLESPACE.

This moves the responsibility for:
- creating the storage necessary for a relation, including creating a
new relfilenode for a relation with existing storage
- non-transactional truncation of a relation
- VACUUM FULL / CLUSTER's rewrite of a table
below tableam.

This is fairly straight forward, with a bit of complexity smattered in
to move the computation of xid / multixid horizons below the AM, as
they don't make sense for every table AM.

Author: Andres Freund
Discussion: https://postgr.es/m/20180703070645.wchpu5muyto5n647@alap3.anarazel.de

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/d25f519107bff602e1ebc81853fe592d020c118d

Modified Files
--------------
src/backend/access/heap/heapam_handler.c | 451 +++++++++++++++++++++++++++++++
src/backend/bootstrap/bootparse.y | 7 +-
src/backend/catalog/heap.c | 120 ++++----
src/backend/catalog/index.c | 11 +-
src/backend/catalog/storage.c | 88 ++++++
src/backend/commands/cluster.c | 342 ++---------------------
src/backend/commands/sequence.c | 30 +-
src/backend/commands/tablecmds.c | 180 ++++--------
src/backend/utils/cache/relcache.c | 77 +++---
src/include/access/tableam.h | 117 ++++++++
src/include/catalog/heap.h | 6 +-
src/include/catalog/storage.h | 3 +
src/include/utils/relcache.h | 3 +-
13 files changed, 856 insertions(+), 579 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Peter Eisentraut 2019-03-29 07:26:53 pgsql: REINDEX CONCURRENTLY
Previous Message Peter Geoghegan 2019-03-29 01:05:52 Re: pgsql: Compute XID horizon for page level index vacuum on primary.