Fix get_expr_result_type() to find field names for RECORD Consts.
commit8a15b4178c40247ad56158b7ab79d66e9c8af908
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 15 Sep 2023 20:39:27 +0000 (15 16:39 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 15 Sep 2023 20:39:27 +0000 (15 16:39 -0400)
tree3b94ca4cbabfffe10499aac91dd32b216621777a
parent2f02d4a2b9cbf4991a73e15d4674d8cfa905bb61
Fix get_expr_result_type() to find field names for RECORD Consts.

This is a back-patch of commit d57534740 ("Fix EXPLAIN of SEARCH
BREADTH FIRST with a constant initial value") into pre-v14 branches.
At the time I'd thought it was not needed in branches that lack the
SEARCH/CYCLE feature, but that was just a failure of imagination.
It's possible to demonstrate "record type has not been registered"
failures in older branches too, during deparsing of views that contain
references to fields of composite constants.

Back-patch only the code changes, as the test cases added by d57534740
all require SEARCH/CYCLE syntax.  A suitable test case will be added
in the upcoming fix for bug #18077.

Discussion: https://postgr.es/m/17644-3bd1f3036d6d7a16@postgresql.org
Discussion: https://postgr.es/m/3607145.1694803130@sss.pgh.pa.us
src/backend/utils/adt/ruleutils.c
src/backend/utils/fmgr/funcapi.c