Hi. small issues I found... typo: +-- Test mutabilily od query functions
+ default: + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("only datetime, bool, numeric, and text types can be casted to jsonpath types"))); transformJsonPassingArgs's function: transformJsonValueExpr will make the above code unreached. also based on the `switch (typid)` cases, I guess best message would be errmsg("only datetime, bool, numeric, text, json, jsonb types can be casted to jsonpath types"))); + case JSON_QUERY_OP: + jsexpr->wrapper = func->wrapper; + jsexpr->omit_quotes = (func->quotes == JS_QUOTES_OMIT); + + if (!OidIsValid(jsexpr->returning->typid)) + { + JsonReturning *ret = jsexpr->returning; + + ret->typid = JsonFuncExprDefaultReturnType(jsexpr); + ret->typmod = -1; + } + jsexpr->result_coercion = coerceJsonFuncExprOutput(pstate, jsexpr); I noticed, if (!OidIsValid(jsexpr->returning->typid)) is the true function JsonFuncExprDefaultReturnType may be called twice, not sure if it's good or not..