Обсуждение: pgsql: Fix jsonpath existense checking of missing variables

Поиск
Список
Период
Сортировка

pgsql: Fix jsonpath existense checking of missing variables

От
Alexander Korotkov
Дата:
Fix jsonpath existense checking of missing variables

The current jsonpath code assumes that the referenced variable always exists.
It could only throw an error at the value valuation time.  At the same time
existence checking assumes variable is present without valuation, and error
suppression doesn't work for missing variables.

This commit makes existense checking trigger an error for missing variables.
This makes the overall behavior consistent.

Backpatch to 12 where jsonpath was introduced.

Reported-by: David G. Johnston
Discussion: https://postgr.es/m/CAKFQuwbeytffJkVnEqDyLZ%3DrQsznoTh1OgDoOF3VmOMkxcTMjA%40mail.gmail.com
Author: Alexander Korotkov, David G. Johnston
Backpatch-through: 12

Branch
------
REL_15_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/4dc3f94fae3de3f19b5c7dd507beac0216b0cde9

Modified Files
--------------
src/backend/utils/adt/jsonpath_exec.c        |  8 +++++--
src/test/regress/expected/jsonb_jsonpath.out | 32 ++++++++++++++++++++++++++++
src/test/regress/sql/jsonb_jsonpath.sql      |  8 +++++++
3 files changed, 46 insertions(+), 2 deletions(-)