github-actions[bot] commented on code in PR #65380:
URL: https://github.com/apache/doris/pull/65380#discussion_r3544926618
##########
fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java:
##########
@@ -878,7 +876,8 @@ public class BuiltinScalarFunctions implements
FunctionHelper {
scalar(JsonbExtractInt.class, "jsonb_extract_int",
"json_extract_int", "get_json_int"),
scalar(JsonbExtractIsnull.class, "json_extract_isnull"),
scalar(JsonbExtractIsnull.class, "jsonb_extract_isnull"),
- scalar(JsonbExtractString.class, "jsonb_extract_string",
"json_extract_string", "get_json_string"),
+ scalar(JsonbExtractString.class, "jsonb_extract_string",
"json_extract_string",
+ "json_extract_no_quotes", "get_json_string"),
Review Comment:
Registering `json_extract_no_quotes` as a `JsonbExtractString` alias drops
the previous multi-path contract. The builder for that class only accepts two
arguments and rewrites using `children.get(0)`/`children.get(1)`, so the
three-argument form now fails during Nereids binding, as the updated test
expects. But the BE side still registers `json_extract_no_quotes` as the alias
of the variadic `jsonb_extract_no_quotes` implementation, and the deleted FE
wrapper was also varargs. That makes existing multi-path calls fail in FE while
the execution layer still has a function with the old contract. Please keep a
dedicated FE binding for the variadic `json_extract_no_quotes` form, or update
the lower-layer contract consistently instead of turning this compatibility
loss into the expected result.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]