postgres-github.git / summary / log / commit / refs

commit    a8b61c23c5ff980312026a05cab5502aa31fd710
Author:   Alexander Korotkov <akorotkov@postgresql.org>
Date:     Mon Apr 13 11:04:52 2026 +0000

    Explicitly forbid non-top-level WAIT FOR execution
    
    Previously we were relying on a snapshot-based check to detect invalid
    execution contexts.  However, when WAIT FOR is wrapped into a stored
    procedure or a DO block, it could pass this check, causing an error
    elsewhere.
    
    This commit implements an explicit isTopLevel check to reject WAIT FOR
    when called from within a function, procedure, or DO block.  The
    isTopLevel check catches these cases early with a clear error message,
    matching the pattern used by other utility commands like VACUUM and
    REINDEX.  The snapshot check is retained for the remaining case:
    top-level execution within a transaction block using an isolation level
    higher than READ COMMITTED.
    
    Also adds tests for WAIT FOR LSN wrapped in a procedure and DO block,
    complementing the existing test that uses a function wrapper.  Relevant
    documentation paragraph is also added.
    
    Reported-by: Satyanarayana Narlapuram <satyanarlapuram@gmail.com>
    Discussion: https://postgr.es/m/CAHg%2BQDcN-n3NUqgRtj%3DBQb9fFQmH8-DeEROCr%3DPDbw_BBRKOYA%40mail.gmail.com
    Author: Satyanarayana Narlapuram <satyanarlapuram@gmail.com>
    Reviewed-by: Alexander Korotkov <aekorotkov@gmail.com>
    Reviewed-by: Xuneng Zhou <xunengzhou@gmail.com>

[parent: b47854b6992d]