Thread: pgsql: Track nesting depth correctly when drilling down into RECORD Var
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-b9db97c6e0ab45d8@postgresql.org Branch ------ REL_15_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/2679a107a152de3f88602a41f8651ec82e4d6205 Modified Files -------------- src/backend/parser/parse_target.c | 20 ++++++++---- src/backend/utils/adt/ruleutils.c | 37 ++++++++++++--------- src/test/regress/expected/rowtypes.out | 60 ++++++++++++++++++++++++++++++++++ src/test/regress/sql/rowtypes.sql | 25 ++++++++++++++ 4 files changed, 120 insertions(+), 22 deletions(-)