Thread

Commits

  1. Fix get_expr_result_type() to find field names for RECORD Consts.

  2. Fix EXPLAIN of SEARCH BREADTH FIRST with a constant initial value.

  1. BUG #17644: EXPLAIN VERBOSE fails on query with SEARCH BREADTH FIRST

    The Post Office <noreply@postgresql.org> — 2022-10-16T16:50:14Z

    The following bug has been logged on the website:
    
    Bug reference:      17644
    Logged by:          Matthijs van der Vleuten
    Email address:      postgresql@zr40.nl
    PostgreSQL version: 14.5
    Operating system:   Debian 11.5
    Description:        
    
    The following query causes EXPLAIN VERBOSE to raise an error.
    
    EXPLAIN VERBOSE
    WITH RECURSIVE test AS (
      SELECT 1 AS x
      UNION ALL
      SELECT x+1
      FROM test
    ) SEARCH BREADTH FIRST BY x SET y
    SELECT * FROM test LIMIT 10;
    
    ERROR:  record type has not been registered
    
    EXPLAIN without VERBOSE, and the query itself, do not raise an error. Also,
    the error does not appear when using SEARCH DEPTH FIRST.
    
    Reproduced on 14.5 and 15.0.
    
    
  2. Re: BUG #17644: EXPLAIN VERBOSE fails on query with SEARCH BREADTH FIRST

    Tom Lane <tgl@sss.pgh.pa.us> — 2022-10-16T23:21:50Z

    PG Bug reporting form <noreply@postgresql.org> writes:
    > The following query causes EXPLAIN VERBOSE to raise an error.
    
    > EXPLAIN VERBOSE
    > WITH RECURSIVE test AS (
    >   SELECT 1 AS x
    >   UNION ALL
    >   SELECT x+1
    >   FROM test
    > ) SEARCH BREADTH FIRST BY x SET y
    > SELECT * FROM test LIMIT 10;
    
    > ERROR:  record type has not been registered
    
    Thanks for the report!  We'd fixed some closely-related cases during
    v14 beta, but nobody stumbled on this one.  The key point seems to
    be using all constants in the non-recursive term's SELECT list.
    
    			regards, tom lane