SQL/JSON: Correctly enforce the default ON EMPTY behavior
authorAmit Langote <[email protected]>
Wed, 19 Jun 2024 06:22:59 +0000 (15:22 +0900)
committerAmit Langote <[email protected]>
Wed, 19 Jun 2024 06:22:59 +0000 (15:22 +0900)
commit03ec203164119f11f0eab4c83c97a8527e2b108d
tree61ea3e4479ce1b3cda02263fd6bc474c4d9b991a
parent0f271e8e8d9c8db0ea86c0d12b3221009b81d8bf
SQL/JSON: Correctly enforce the default ON EMPTY behavior

Currently, when the ON EMPTY clause is not present, the ON ERROR
clause (implicit or explicit) dictates the behavior when jsonpath
evaluation in ExecEvalJsonExprPath() results in an empty sequence.
That is an oversight in the commit 6185c9737c.

This commit fixes things so that a NULL is returned instead in that
case which is the default behavior when the ON EMPTY clause is not
present.

Reported-by: Markus Winand
Discussion: https://postgr.es/m/F7DD1442-265C-4220-A603-CB0DEB77E91D%40winand.at
src/backend/parser/parse_expr.c
src/test/regress/expected/sqljson_jsontable.out
src/test/regress/expected/sqljson_queryfuncs.out
src/test/regress/sql/sqljson_jsontable.sql
src/test/regress/sql/sqljson_queryfuncs.sql