diff --git a/src/backend/utils/adt/jsonpath.c b/src/backend/utils/adt/jsonpath.c index a17318016e..dcd4fbdafc 100644 --- a/src/backend/utils/adt/jsonpath.c +++ b/src/backend/utils/adt/jsonpath.c @@ -310,20 +310,22 @@ jsonpath_in(PG_FUNCTION_ARGS) appendStringInfoSpaces(&buf, JSONPATH_HDRSZ); - if (jsonpath != NULL) + if (jsonpath == NULL) { - flattenJsonPathParseItem(&buf, jsonpath->expr, false, false); + ereport(ERROR, + (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), + errmsg("invalid input syntax for jsonpath: \"%s\"", in))); + } - res = (JsonPath*)buf.data; - SET_VARSIZE(res, buf.len); - res->header = JSONPATH_VERSION; - if (jsonpath->lax) - res->header |= JSONPATH_LAX; + flattenJsonPathParseItem(&buf, jsonpath->expr, false, false); - PG_RETURN_JSONPATH(res); - } + res = (JsonPath*)buf.data; + SET_VARSIZE(res, buf.len); + res->header = JSONPATH_VERSION; + if (jsonpath->lax) + res->header |= JSONPATH_LAX; - PG_RETURN_NULL(); + PG_RETURN_JSONPATH(res); } static void