Fix jsonpath existense checking of missing variables
authorAlexander Korotkov <akorotkov@postgresql.org>
Thu, 12 Jan 2023 15:16:34 +0000 (18:16 +0300)
committerAlexander Korotkov <akorotkov@postgresql.org>
Thu, 12 Jan 2023 15:18:04 +0000 (18:18 +0300)
commit0d9221f1d251b956a33660bff1420140f8abebcb
treef7bd6d9c372bfe776f08b68abc50c00f9abf4c5f
parentb2cc5b81001ad5e856d7316bab11f08ce1386d4b
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
src/backend/utils/adt/jsonpath_exec.c
src/test/regress/expected/jsonb_jsonpath.out
src/test/regress/sql/jsonb_jsonpath.sql