pgsql: Fix jsonpath .split_part() to honor silent mode

Started by Michael Paquier2 months ago1 messagescomitters
Jump to latest
#1Michael Paquier
michael@paquier.xyz

Fix jsonpath .split_part() to honor silent mode

The jsonpath .split_part() method passed its field-position argument
through numeric_int4(), that can fail hard if called directly.

This commit switches the code to use numeric_int4_safe() with an error
context for soft reporting, so as the overflow and zero field-position
cases can be handled in silent mode.

Oversight in bd4f879a9cdd.

Author: Chao Li <li.evan.chao@gmail.com>
Reviewed-by: Nazir Bilal Yavuz <byavuz81@gmail.com>
Discussion: /messages/by-id/FCF996D0-580B-431C-8DE1-A540C58E444C@gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/954e57708ea6996e8948ccb820ed03d0262fc2d2

Modified Files
--------------
src/backend/utils/adt/jsonpath_exec.c | 19 ++++++++++++++++---
src/test/regress/expected/jsonb_jsonpath.out | 14 ++++++++++++++
src/test/regress/sql/jsonb_jsonpath.sql | 4 ++++
3 files changed, 34 insertions(+), 3 deletions(-)