• H
    Store pg_appendonly tuple in relcache. · a4fbb150
    Heikki Linnakangas 提交于
    This way, you don't need to always fetch it from the system catalogs,
    which makes things simpler, and is marginally faster too.
    
    To make all the fields in pg_appendonly accessible by direct access to
    the Form_pg_appendonly struct, change 'compresstype' field from text to
    name. "No compression" is now represented by an empty string, rather than
    NULL. I hope there are no applications out there that will get confused
    by this.
    
    The GetAppendOnlyEntry() function used to take a Snapshot as argument,
    but that seems unnecessary. The data in pg_appendonly doesn't change for
    a table after it's been created. Except when it's ALTERed, or rewritten
    by TRUNCATE or CLUSTER, but those operations invalidate the relcache, and
    we're never interested in the old version.
    
    There's not much need for the AppendOnlyEntry struct and the
    GetAppendOnlyEntry() function anymore; you can just as easily just access
    the Form_pg_appendonly struct directly. I'll remove that as a separate
    commit, though, to keep this one more readable.
    a4fbb150
relcache.c 148.4 KB