Track nesting depth correctly when drilling down into RECORD Vars. expandRecordVariable() failed to adjust the parse nesting structure correctly when recursing to inspect an outer-level Var. This could result in assertion failures or core dumps in corner cases.
Likewise, get_name_for_var_field() failed to adjust the deparse namespace stack correctly when recursing to inspect an outer-level Var. In this case the likely result was a "bogus varno" error while deparsing a view. Per bug #18077 from Jingzhou Fu. Back-patch to all supported branches. Richard Guo, with some adjustments by me Discussion: https://postgr.es/m/18077-b9db97c6e0ab4...@postgresql.org Branch ------ REL_16_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/53630f12d39b9c5d98abb7bae4818715306422ed Modified Files -------------- src/backend/parser/parse_target.c | 17 +++++++--- src/backend/utils/adt/ruleutils.c | 37 ++++++++++++--------- src/test/regress/expected/rowtypes.out | 60 ++++++++++++++++++++++++++++++++++ src/test/regress/sql/rowtypes.sql | 25 ++++++++++++++ 4 files changed, 119 insertions(+), 20 deletions(-)