BUG #16978: Nested CTEs give ERROR in v13 - Mailing list pgsql-bugs
From | PG Bug reporting form |
---|---|
Subject | BUG #16978: Nested CTEs give ERROR in v13 |
Date | |
Msg-id | 16978-813ac0832f35db82@postgresql.org Whole thread Raw |
Responses |
Re: BUG #16978: Nested CTEs give ERROR in v13
|
List | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 16978 Logged by: Robins Tharakan Email address: tharakan@gmail.com PostgreSQL version: 13.2 Operating system: Ubuntu Description: This narrowed down SQL (from what SQLSmith generated) seems to error out only with N levels of CTE nesting - no tables / views / 1-row output. The SQL works fine with v12.4 but raises an ERROR in v13 which seems like a regression. Is this owing a recent change in v13 - that could affect this? (This was found during a larger investigation around a v13 SegFault but this does seem worthy of its own bug-report). → psql -h localhost psql (14devel, server 13.2) Type "help" for help. postgres=# --Having w_err in the SQL gives an error about UNION ALL postgres=# WITH RECURSIVE w6(c6) AS postgres-# (WITH w6(c6) AS postgres(# (WITH w8(c8) AS postgres(# (WITH w9(c9) AS postgres(# (WITH w10(c10) AS postgres(# (WITH w11(c11) AS postgres(# (WITH w_err(c12) AS postgres(# (SELECT 1) postgres(# SELECT * FROM w_err) postgres(# SELECT * FROM w11) postgres(# SELECT * FROM w10) postgres(# SELECT * FROM w9) postgres(# SELECT * FROM w8) postgres(# SELECT * FROM w6) postgres-# SELECT * FROM w6; ERROR: recursive query "w6" does not have the form non-recursive-term UNION [ALL] recursive-term LINE 1: WITH RECURSIVE w6(c6) AS ^ postgres=# postgres=# postgres=# postgres=# -- Removing w_err it works postgres=# WITH RECURSIVE w6(c6) AS postgres-# (WITH w6(c6) AS postgres(# (WITH w8(c8) AS postgres(# (WITH w9(c9) AS postgres(# (WITH w10(c10) AS postgres(# (WITH w11(c11) AS postgres(# -- (WITH w_err(c12) AS postgres(# (SELECT 1) postgres(# -- SELECT * FROM w_err) postgres(# SELECT * FROM w11) postgres(# SELECT * FROM w10) postgres(# SELECT * FROM w9) postgres(# SELECT * FROM w8) postgres(# SELECT * FROM w6) postgres-# SELECT * FROM w6; c6 ---- 1 (1 row) postgres=> \q → r.sh 12 psql (14devel, server 12.4) Type "help" for help. postgres=> -- No error on v12 with or without w_err postgres=> postgres=> WITH RECURSIVE w6(c6) AS postgres-> (WITH w6(c6) AS postgres(> (WITH w8(c8) AS postgres(> (WITH w9(c9) AS postgres(> (WITH w10(c10) AS postgres(> (WITH w11(c11) AS postgres(> (WITH w_err(c12) AS postgres(> (SELECT 1) postgres(> SELECT * FROM w_err) postgres(> SELECT * FROM w11) postgres(> SELECT * FROM w10) postgres(> SELECT * FROM w9) postgres(> SELECT * FROM w8) postgres(> SELECT * FROM w6) postgres-> SELECT * FROM w6; c6 ---- 1 (1 row) postgres=> -- No error on v12 with or without w_err postgres=> postgres=> WITH RECURSIVE w6(c6) AS postgres-> (WITH w6(c6) AS postgres(> (WITH w8(c8) AS postgres(> (WITH w9(c9) AS postgres(> (WITH w10(c10) AS postgres(> (WITH w11(c11) AS postgres(> -- (WITH w_err(c12) AS postgres(> (SELECT 1) postgres(> -- SELECT * FROM w_err) postgres(> SELECT * FROM w11) postgres(> SELECT * FROM w10) postgres(> SELECT * FROM w9) postgres(> SELECT * FROM w8) postgres(> SELECT * FROM w6) postgres-> SELECT * FROM w6; c6 ---- 1 (1 row)
pgsql-bugs by date: