• Tom Lane's avatar
    Prevent auto_explain from changing the output of a user's EXPLAIN. · e416830a
    Tom Lane authored
    Commit af7914c6, which introduced the
    EXPLAIN (TIMING) option, for some reason coded explain.c to look at
    planstate->instrument->need_timer rather than es->timing to decide
    whether to print timing info.  However, the former flag might get set
    as a result of contrib/auto_explain wanting timing information.  We
    certainly don't want activation of auto_explain to change user-visible
    statement behavior, so fix that.
    
    Also fix an independent bug introduced in the same patch: in the code
    path for a never-executed node with a machine-friendly output format,
    if timing was selected, it would fail to print the Actual Rows and Actual
    Loops items.
    
    Per bug #10404 from Tomonari Katsumata.  Back-patch to 9.2 where the
    faulty code was introduced.
    e416830a
explain.c 74.5 KB