| 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: | Whole Thread | Raw Message | 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(-)
| 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. |