aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/builtin.cpp
diff options
context:
space:
mode:
authorAlexander Smirnov <alex@ydb.tech>2025-03-12 10:37:13 +0000
committerAlexander Smirnov <alex@ydb.tech>2025-03-12 10:37:13 +0000
commitb27c447af8bffc727382c0dc75272e261cbb4ac4 (patch)
treee0f6199fec84ae26bb5ea26566fa1daa12693e3b /yql/essentials/sql/v1/builtin.cpp
parentcb56e1cde2824ff3b64be1de4794bff3cab0db61 (diff)
parentd06e9749bd6f0a561ee4fe296cdb3e03a24d1f82 (diff)
downloadydb-b27c447af8bffc727382c0dc75272e261cbb4ac4.tar.gz
Merge pull request #15611 from ydb-platform/merge-libs-250312-0708
Diffstat (limited to 'yql/essentials/sql/v1/builtin.cpp')
-rw-r--r--yql/essentials/sql/v1/builtin.cpp30
1 files changed, 18 insertions, 12 deletions
diff --git a/yql/essentials/sql/v1/builtin.cpp b/yql/essentials/sql/v1/builtin.cpp
index e5fe6f9410..6396eab0c8 100644
--- a/yql/essentials/sql/v1/builtin.cpp
+++ b/yql/essentials/sql/v1/builtin.cpp
@@ -3387,6 +3387,8 @@ TNodePtr BuildBuiltinFunc(TContext& ctx, TPosition pos, TString name, const TVec
}
}
+ TString lowerName = to_lower(name);
+
TString moduleResource;
if (ctx.Settings.ModuleMapping.contains(ns)) {
moduleResource = ctx.Settings.ModuleMapping.at(ns);
@@ -3445,15 +3447,15 @@ TNodePtr BuildBuiltinFunc(TContext& ctx, TPosition pos, TString name, const TVec
} else if (ns == "hyperscan" || ns == "pcre" || ns == "pire" || ns.StartsWith("re2")) {
TString moduleName(nameSpace);
moduleName.to_title();
- if ((args.size() == 1 || args.size() == 2) && (name.StartsWith("Multi") || (ns.StartsWith("re2") && name == "Capture"))) {
+ if ((args.size() == 1 || args.size() == 2) && (lowerName.StartsWith("multi") || (ns.StartsWith("re2") && lowerName == "capture"))) {
TVector<TNodePtr> multiArgs{
- ns.StartsWith("re2") && name == "Capture" ? MakePair(pos, args) : args[0],
+ ns.StartsWith("re2") && lowerName == "capture" ? MakePair(pos, args) : args[0],
new TCallNodeImpl(pos, "Void", 0, 0, {}),
args[0]
};
auto fullName = moduleName + "." + name;
return new TYqlTypeConfigUdf(pos, fullName, multiArgs, multiArgs.size() + 1);
- } else if (!(ns.StartsWith("re2") && name == "Options")) {
+ } else if (!(ns.StartsWith("re2") && lowerName == "options")) {
auto newArgs = args;
if (ns.StartsWith("re2")) {
// convert run config is tuple of string and optional options
@@ -3844,11 +3846,13 @@ TNodePtr BuildBuiltinFunc(TContext& ctx, TPosition pos, TString name, const TVec
ns = "yson";
nameSpace = "Yson";
- if (name == "Serialize") {
+ if (lowerName == "serialize") {
name = "SerializeJson";
+ lowerName = to_lower(name);
}
- else if (name == "Parse") {
+ else if (lowerName == "parse") {
name = "ParseJson";
+ lowerName = to_lower(name);
}
}
@@ -3858,17 +3862,18 @@ TNodePtr BuildBuiltinFunc(TContext& ctx, TPosition pos, TString name, const TVec
}
if (ns.StartsWith("yson")) {
- if (name == "ConvertTo" && usedArgs.size() > 1) {
+ if (lowerName == "convertto" && usedArgs.size() > 1) {
customUserType = usedArgs[1];
usedArgs.erase(usedArgs.begin() + 1);
}
- if (name == "Serialize") {
+ if (lowerName == "serialize") {
if (usedArgs) {
usedArgs.resize(1U);
}
- } else if (ctx.PragmaYsonFast && name == "SerializeJsonEncodeUtf8") {
+ } else if (ctx.PragmaYsonFast && lowerName == "serializejsonencodeutf8") {
name = "SerializeJson";
+ lowerName = to_lower(name);
if (usedArgs.size() < 2U) {
usedArgs.emplace_back(BuildYsonOptionsNode(pos, ctx.PragmaYsonAutoConvert, ctx.PragmaYsonStrict, ctx.PragmaYsonFast));
}
@@ -3877,20 +3882,21 @@ TNodePtr BuildBuiltinFunc(TContext& ctx, TPosition pos, TString name, const TVec
encodeUtf8->SetLabel("EncodeUtf8");
namedArgs = BuildStructure(pos, {encodeUtf8});
usedArgs = {positionalArgs, namedArgs};
- } else if (name.StartsWith("From")) {
+ } else if (lowerName.StartsWith("from")) {
name = "From";
- } else if (name == "GetLength" || name.StartsWith("ConvertTo") || name.StartsWith("Parse") || name.StartsWith("SerializeJson")) {
+ lowerName = to_lower(name);
+ } else if (lowerName == "getlength" || lowerName.StartsWith("convertto") || lowerName.StartsWith("parse") || lowerName.StartsWith("serializejson")) {
if (usedArgs.size() < 2U) {
usedArgs.emplace_back(BuildYsonOptionsNode(pos, ctx.PragmaYsonAutoConvert, ctx.PragmaYsonStrict, ctx.PragmaYsonFast));
}
- } else if (name == "Contains" || name.StartsWith("Lookup") || name.StartsWith("YPath")) {
+ } else if (lowerName == "contains" || lowerName.StartsWith("lookup") || lowerName.StartsWith("ypath")) {
if (usedArgs.size() < 3U) {
usedArgs.push_back(BuildYsonOptionsNode(pos, ctx.PragmaYsonAutoConvert, ctx.PragmaYsonStrict, ctx.PragmaYsonFast));
}
}
}
- if (ns == "datetime2" && name == "Update") {
+ if (ns == "datetime2" && lowerName == "update") {
if (namedArgs) {
TStructNode* castedNamedArgs = namedArgs->GetStructNode();
Y_DEBUG_ABORT_UNLESS(castedNamedArgs);