• T
    First phase of plan-invalidation project: create a plan cache management · b9527e98
    Tom Lane 提交于
    module and teach PREPARE and protocol-level prepared statements to use it.
    In service of this, rearrange utility-statement processing so that parse
    analysis does not assume table schemas can't change before execution for
    utility statements (necessary because we don't attempt to re-acquire locks
    for utility statements when reusing a stored plan).  This requires some
    refactoring of the ProcessUtility API, but it ends up cleaner anyway,
    for instance we can get rid of the QueryContext global.
    
    Still to do: fix up SPI and related code to use the plan cache; I'm tempted to
    try to make SQL functions use it too.  Also, there are at least some aspects
    of system state that we want to ensure remain the same during a replan as in
    the original processing; search_path certainly ought to behave that way for
    instance, and perhaps there are others.
    b9527e98
prepare.c 22.0 KB