• Andres Freund's avatar
    Harden tableam against nonexistant / wrong kind of AMs. · ea97e440
    Andres Freund authored
    Previously it was allowed to set default_table_access_method to an
    empty string. That makes sense for default_tablespace, where that was
    copied from, as it signals falling back to the database's default
    tablespace. As there is no equivalent for table AMs, forbid that.
    
    Also make sure to throw a usable error when creating a table using an
    index AM, by using get_am_type_oid() to implement get_table_am_oid()
    instead of a separate copy. Previously we'd error out only later, in
    GetTableAmRoutine().
    
    Thirdly remove GetTableAmRoutineByAmId() - it was only used in an
    earlier version of 8586bf7e.
    
    Add tests for the above (some for index AMs as well).
    ea97e440
create_am.sql 7.21 KB