• Andres Freund's avatar
    Introduce access/{table.h, relation.h}, for generic functions from heapam.h. · 4b21acf5
    Andres Freund authored
    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
    4b21acf5
heapam.c 272 KB