pgsql: Introduce access/{table.h, relation.h},for generic functions fr - Mailing list pgsql-committers

From Andres Freund
Subject pgsql: Introduce access/{table.h, relation.h},for generic functions fr
Date
Msg-id E1gletL-0007jz-RM@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Introduce access/{table.h, relation.h}, for generic functions from heapam.h.

access/heapam contains functions that are very storage specific (say
heap_insert() and a lot of lower level functions), and fairly generic
infrastructure like relation_open(), heap_open() etc.  In the upcoming
pluggable storage work we're introducing a layer between table
accesses in general and heapam, to allow for different storage
methods. For a bit cleaner separation it thus seems advantageous to
move generic functions like the aforementioned to their own headers.

access/relation.h will contain relation_open() etc, and access/table.h
will contain table_open() (formerly known as heap_open()). I've decided
for table.h not to include relation.h, but we might change that at a
later stage.

relation.h already exists in another directory, but the other
plausible name (rel.h) also conflicts. It'd be nice if there were a
non-conflicting name, but nobody came up with a suggestion. It's
possible that the appropriate way to address the naming conflict would
be to rename nodes/relation.h, which isn't particularly well named.

To avoid breaking a lot of extensions that just use heap_open() etc,
table.h has macros mapping the old names to the new ones, and heapam.h
includes relation, table.h.  That also allows to keep the
bulk renaming of existing callers in a separate commit.

Author: Andres Freund
Discussion: https://postgr.es/m/20190111000539.xbv7s6w7ilcvm7dp@alap3.anarazel.de

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/4b21acf522d751ba5b6679df391d5121b6c4a35f

Modified Files
--------------
src/backend/access/Makefile          |   2 +-
src/backend/access/common/Makefile   |   2 +-
src/backend/access/common/relation.c | 217 ++++++++++++++++++++++++++
src/backend/access/heap/heapam.c     | 289 -----------------------------------
src/backend/access/table/Makefile    |  17 +++
src/backend/access/table/table.c     | 136 +++++++++++++++++
src/include/access/heapam.h          |  16 +-
src/include/access/relation.h        |  29 ++++
src/include/access/table.h           |  38 +++++
9 files changed, 441 insertions(+), 305 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Sort the dependent objects before recursing infindDependentObje
Next
From: Andres Freund
Date:
Subject: Re: pgsql: Sort the dependent objects before recursing infindDependentObje