• T
    Simplify shared-memory lock data structures as per recent discussion: · 8563ccae
    Tom Lane 提交于
    it is sufficient to track whether a backend holds a lock or not, and
    store information about transaction vs. session locks only in the
    inside-the-backend LocalLockTable.  Since there can now be but one
    PROCLOCK per lock per backend, LockCountMyLocks() is no longer needed,
    thus eliminating some O(N^2) behavior when a backend holds many locks.
    Also simplify the LockAcquire/LockRelease API by passing just a
    'sessionLock' boolean instead of a transaction ID.  The previous API
    was designed with the idea that per-transaction lock holding would be
    important for subtransactions, but now that we have subtransactions we
    know that this is unwanted.  While at it, add an 'isTempObject' parameter
    to LockAcquire to indicate whether the lock is being taken on a temp
    table.  This is not used just yet, but will be needed shortly for
    two-phase commit.
    8563ccae
lock.c 50.2 KB