• Peter Eisentraut's avatar
    Tweak publication fetching in psql · a2141c42
    Peter Eisentraut authored
    Viewing a table with \d in psql also shows the publications at table is
    in.  If a publication is concurrently dropped, this shows an error,
    because the view pg_publication_tables internally uses
    pg_get_publication_tables(), which uses a catalog snapshot.  This can be
    particularly annoying if a for-all-tables publication is concurrently
    dropped.
    
    To avoid that, write the query in psql differently.  Expose the function
    pg_relation_is_publishable() to SQL and write the query using that.
    That still has a risk of being affected by concurrent catalog changes,
    but in this case it would be a table drop that causes problems, and then
    the psql \d command wouldn't be interesting anymore anyway.
    Reported-by: default avatarTom Lane <tgl@sss.pgh.pa.us>
    a2141c42
catversion.h 2.53 KB