Fix error reporting for SQL/JSON path type mismatches
authorAmit Langote <[email protected]>
Thu, 27 Nov 2025 01:43:29 +0000 (10:43 +0900)
committerAmit Langote <[email protected]>
Thu, 27 Nov 2025 03:07:01 +0000 (12:07 +0900)
commit519fa0433b37701b357753a568080bee2c47d238
tree8eb58cf164175912e4233996585cc022d7c335e1
parent0ca3b16973a8bb1c185f56e65edcadc0d9d2c406
Fix error reporting for SQL/JSON path type mismatches

transformJsonFuncExpr() used exprType()/exprLocation() on the
possibly coerced path expression, which could be NULL when
coercion to jsonpath failed, leading to "cache lookup failed
for type 0" errors.

Preserve the original expression node so that type and location
in the "must be of type jsonpath" error are reported correctly.
Add regression tests to cover these cases.

Reported-by: Jian He <[email protected]>
Author: Jian He <[email protected]>
Reviewed-by: Kirill Reshke <[email protected]>
Discussion: https://postgr.es/m/CACJufxHunVg81JMuNo8Yvv_hJD0DicgaVN2Wteu8aJbVJPBjZA@mail.gmail.com
Backpatch-through: 17
src/backend/parser/parse_expr.c
src/test/regress/expected/sqljson_queryfuncs.out
src/test/regress/sql/sqljson_queryfuncs.sql