• Tom Lane's avatar
    Fix EXPLAIN to handle SEARCH BREADTH FIRST queries. · 38872675
    Tom Lane authored
    The rewriter transformation for SEARCH BREADTH FIRST produces a
    FieldSelect on a Var of type RECORD, where the Var references the
    recursive union's worktable output.  EXPLAIN VERBOSE failed to handle
    this case, because it only expected such Vars to appear in CteScans
    not WorkTableScans.  Fix that, and add some test cases exercising
    EXPLAIN on SEARCH and CYCLE queries.
    
    In principle this oversight is an old bug, but it seems that the
    case is unreachable without SEARCH BREADTH FIRST, because the
    parser fails when attempting to create such a reference manually.
    So for today I'll just patch HEAD/v14.  Someday we might find that
    the code portion of this patch needs to be back-patched further.
    
    Per report from Atsushi Torikoshi.
    
    Discussion: https://postgr.es/m/5bafa66ad529e11860339565c9e7c166@oss.nttdata.com
    38872675
ruleutils.c 333 KB