Fix inability to reference CYCLE column from inside its CTE.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 16 Dec 2022 18:07:42 +0000 (13:07 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 16 Dec 2022 18:07:42 +0000 (13:07 -0500)
commitae98debf77d4aba7caa305fa4957577528699470
tree89dfb58f7f9fcbd4061f29f2f7255832a0b19daa
parent1a9b43c688da9bbb13f0cb07d4b4c03abf1518b5
Fix inability to reference CYCLE column from inside its CTE.

Such references failed with "cache lookup failed for type 0"
because we didn't resolve the type of the CYCLE column until after
analyzing the CTE's query.  We can just move that processing
to before the recursive parse_sub_analyze call, though.

While here, invent a couple of local variables to make this
code less egregiously wider-than-80-columns.

Per bug #17723 from Vik Fearing.  Back-patch to v14 where
the CYCLE feature was added.

Discussion: https://postgr.es/m/17723-2c4985ff111e7bba@postgresql.org
src/backend/parser/parse_cte.c
src/test/regress/expected/with.out
src/test/regress/sql/with.sql