• Tom Lane's avatar
    Rearrange snapshot handling to make rule expansion more consistent. · c0b00760
    Tom Lane authored
    With this patch, portals, SQL functions, and SPI all agree that there
    should be only a CommandCounterIncrement between the queries that are
    generated from a single SQL command by rule expansion.  Fetching a whole
    new snapshot now happens only between original queries.  This is equivalent
    to the existing behavior of EXPLAIN ANALYZE, and it was judged to be the
    best choice since it eliminates one source of concurrency hazards for
    rules.  The patch should also make things marginally faster by reducing the
    number of snapshot push/pop operations.
    
    The patch removes pg_parse_and_rewrite(), which is no longer used anywhere.
    There was considerable discussion about more aggressive refactoring of the
    query-processing functions exported by postgres.c, but for the moment
    nothing more has been done there.
    
    I also took the opportunity to refactor snapmgr.c's API slightly: the
    former PushUpdatedSnapshot() has been split into two functions.
    
    Marko Tiikkaja, reviewed by Steve Singer and Tom Lane
    c0b00760
tcopprot.h 2.86 KB