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

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

From
PG Bug reporting form
Date:
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.


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

From
Tom Lane
Date:
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