• Alvaro Herrera's avatar
    Heed lock protocol in DROP OWNED BY · 5be594ca
    Alvaro Herrera authored
    We were acquiring object locks then deleting objects one by one, instead
    of acquiring all object locks first, ignoring those that did not exist,
    and then deleting all objects together.   The latter is the correct
    protocol to use, and what this commits changes to code to do.  Failing
    to follow that leads to "cache lookup failed for relation XYZ" error
    reports when DROP OWNED runs concurrently with other DDL -- for example,
    a session termination that removes some temp tables.
    
    Author: Álvaro Herrera
    Reported-by: Mithun Chicklore Yogendra (Mithun CY)
    Reviewed-by: Ahsan Hadi, Tom Lane
    Discussion: https://postgr.es/m/CADq3xVZTbzK4ZLKq+dn_vB4QafXXbmMgDP3trY-GuLnib2Ai1w@mail.gmail.com
    5be594ca
subscriptioncmds.c 31.6 KB