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_11_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/a374f6c61681fe072526fc5580df191347bea061 Modified Files -------------- src/backend/parser/parse_target.c | 20 +++++++---- src/backend/utils/adt/ruleutils.c | 37 ++++++++++++-------- src/test/regress/expected/rowtypes.out | 63 ++++++++++++++++++++++++++++++++++ src/test/regress/sql/rowtypes.sql | 25 ++++++++++++++ 4 files changed, 123 insertions(+), 22 deletions(-)