Skip to content
Snippets Groups Projects
  • Tom Lane's avatar
    bbbe825f
    Modify processing of DECLARE CURSOR and EXPLAIN so that they can resolve the · bbbe825f
    Tom Lane authored
    types of unspecified parameters when submitted via extended query protocol.
    This worked in 8.2 but I had broken it during plancache changes.  DECLARE
    CURSOR is now treated almost exactly like a plain SELECT through parse
    analysis, rewrite, and planning; only just before sending to the executor
    do we divert it away to ProcessUtility.  This requires a special-case check
    in a number of places, but practically all of them were already special-casing
    SELECT INTO, so it's not too ugly.  (Maybe it would be a good idea to merge
    the two by treating IntoClause as a form of utility statement?  Not going to
    worry about that now, though.)  That approach doesn't work for EXPLAIN,
    however, so for that I punted and used a klugy solution of running parse
    analysis an extra time if under extended query protocol.
    bbbe825f
    History
    Modify processing of DECLARE CURSOR and EXPLAIN so that they can resolve the
    Tom Lane authored
    types of unspecified parameters when submitted via extended query protocol.
    This worked in 8.2 but I had broken it during plancache changes.  DECLARE
    CURSOR is now treated almost exactly like a plain SELECT through parse
    analysis, rewrite, and planning; only just before sending to the executor
    do we divert it away to ProcessUtility.  This requires a special-case check
    in a number of places, but practically all of them were already special-casing
    SELECT INTO, so it's not too ugly.  (Maybe it would be a good idea to merge
    the two by treating IntoClause as a form of utility statement?  Not going to
    worry about that now, though.)  That approach doesn't work for EXPLAIN,
    however, so for that I punted and used a klugy solution of running parse
    analysis an extra time if under extended query protocol.