• Tom Lane's avatar
    Correctly mark pg_subscription.subslotname as nullable. · 72eab84a
    Tom Lane authored
    Due to the layout of this catalog, subslotname has to be explicitly
    marked BKI_FORCE_NULL, else initdb will default to the assumption
    that it's non-nullable.  Since, in fact, CREATE/ALTER SUBSCRIPTION
    will store null values there, the existing marking is just wrong,
    and has been since this catalog was invented.
    
    We haven't noticed because not much in the system actually depends
    on attnotnull being truthful.  However, JIT'ed tuple deconstruction
    does depend on that in some cases, allowing crashes or wrong answers
    in queries that inspect pg_subscription.  Commit 9de77b54 quite
    accidentally exposed this on the buildfarm members that force JIT
    activation.
    
    Back-patch to v13.  The problem goes further back, but we cannot
    force initdb in released branches, so some klugier solution will
    be needed there.  Before working on that, push this simple fix
    to try to get the buildfarm back to green.
    
    Discussion: https://postgr.es/m/4118109.1595096139@sss.pgh.pa.us
    72eab84a
pg_subscription.h 3.12 KB