aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzverevgeny <zverevgeny@ydb.tech>2023-08-29 21:00:54 +0300
committerzverevgeny <zverevgeny@ydb.tech>2023-08-30 02:05:02 +0300
commit3efee0e44ceb4687d30743b3173fecce4c74b7ed (patch)
tree2ed41276340ff0b8ed1b4871619de4ab89321d89
parent83afbdd473100c991c643469c71299292a82b3f1 (diff)
downloadydb-3efee0e44ceb4687d30743b3173fecce4c74b7ed.tar.gz
YQL-16325 disable match_recognize by default
-rw-r--r--ydb/library/yql/core/type_ann/type_ann_core.cpp2
-rw-r--r--ydb/library/yql/core/type_ann/type_ann_match_recognize.cpp6
-rw-r--r--ydb/library/yql/core/type_ann/type_ann_match_recognize.h2
-rw-r--r--ydb/library/yql/core/yql_type_annotation.h1
-rw-r--r--ydb/library/yql/providers/config/yql_config_provider.cpp7
5 files changed, 15 insertions, 3 deletions
diff --git a/ydb/library/yql/core/type_ann/type_ann_core.cpp b/ydb/library/yql/core/type_ann/type_ann_core.cpp
index 205f5be3e3..faa9cffbed 100644
--- a/ydb/library/yql/core/type_ann/type_ann_core.cpp
+++ b/ydb/library/yql/core/type_ann/type_ann_core.cpp
@@ -12107,7 +12107,7 @@ template <NKikimr::NUdf::EDataSlot DataSlot>
Functions["MatchRecognizeMeasures"] = &MatchRecognizeMeasuresWrapper;
Functions["MatchRecognizePattern"] = &MatchRecognizePatternWrapper;
Functions["MatchRecognizeDefines"] = &MatchRecognizeDefinesWrapper;
- Functions["MatchRecognizeCore"] = &MatchRecognizeCoreWrapper;
+ ExtFunctions["MatchRecognizeCore"] = &MatchRecognizeCoreWrapper;
Functions["FromPg"] = &FromPgWrapper;
Functions["ToPg"] = &ToPgWrapper;
diff --git a/ydb/library/yql/core/type_ann/type_ann_match_recognize.cpp b/ydb/library/yql/core/type_ann/type_ann_match_recognize.cpp
index ebf6d9d2c9..2f985dec3a 100644
--- a/ydb/library/yql/core/type_ann/type_ann_match_recognize.cpp
+++ b/ydb/library/yql/core/type_ann/type_ann_match_recognize.cpp
@@ -207,8 +207,12 @@ MatchRecognizeDefinesWrapper(const TExprNode::TPtr& input, TExprNode::TPtr& outp
}
IGraphTransformer::TStatus
-MatchRecognizeCoreWrapper(const TExprNode::TPtr& input, TExprNode::TPtr& output, TContext& ctx) {
+MatchRecognizeCoreWrapper(const TExprNode::TPtr& input, TExprNode::TPtr& output, TExtContext& ctx) {
Y_UNUSED(output);
+ if (not ctx.Types.MatchRecognize) {
+ ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(input->Pos()), "MATCH_RECOGNIZE is disabled"));
+ return IGraphTransformer::TStatus::Error;
+ }
if (!EnsureArgsCount(*input, 4, ctx.Expr)) {
return IGraphTransformer::TStatus::Error;
}
diff --git a/ydb/library/yql/core/type_ann/type_ann_match_recognize.h b/ydb/library/yql/core/type_ann/type_ann_match_recognize.h
index ddb870c33f..b88577e0e3 100644
--- a/ydb/library/yql/core/type_ann/type_ann_match_recognize.h
+++ b/ydb/library/yql/core/type_ann/type_ann_match_recognize.h
@@ -14,6 +14,6 @@ namespace NYql {
IGraphTransformer::TStatus MatchRecognizeMeasuresWrapper(const TExprNode::TPtr& input, TExprNode::TPtr& output, TContext& ctx);
IGraphTransformer::TStatus MatchRecognizePatternWrapper(const TExprNode::TPtr& input, TExprNode::TPtr& output, TContext& ctx);
IGraphTransformer::TStatus MatchRecognizeDefinesWrapper(const TExprNode::TPtr& input, TExprNode::TPtr& output, TContext& ctx);
- IGraphTransformer::TStatus MatchRecognizeCoreWrapper(const TExprNode::TPtr& input, TExprNode::TPtr& output, TContext& ctx);
+ IGraphTransformer::TStatus MatchRecognizeCoreWrapper(const TExprNode::TPtr& input, TExprNode::TPtr& output, TExtContext& ctx);
}
}
diff --git a/ydb/library/yql/core/yql_type_annotation.h b/ydb/library/yql/core/yql_type_annotation.h
index bffbac61fa..41f8b4e8d5 100644
--- a/ydb/library/yql/core/yql_type_annotation.h
+++ b/ydb/library/yql/core/yql_type_annotation.h
@@ -237,6 +237,7 @@ struct TTypeAnnotationContext: public TThrRefBase {
bool PgEmitAggApply = false;
IArrowResolver::TPtr ArrowResolver;
TString CostBasedOptimizerType;
+ bool MatchRecognize = false;
// compatibility with v0 or raw s-expression code
bool OrderedColumns = false;
diff --git a/ydb/library/yql/providers/config/yql_config_provider.cpp b/ydb/library/yql/providers/config/yql_config_provider.cpp
index dbca6b7e05..6f822b173e 100644
--- a/ydb/library/yql/providers/config/yql_config_provider.cpp
+++ b/ydb/library/yql/providers/config/yql_config_provider.cpp
@@ -824,6 +824,13 @@ namespace {
Types.CostBasedOptimizerType = arg;
}
+ else if (name == "EnableMatchRecognize" || name == "DisableMatchRecognize") {
+ if (args.size() != 0) {
+ ctx.AddError(TIssue(pos, TStringBuilder() << "Expected no arguments, but got " << args.size()));
+ return false;
+ }
+ Types.MatchRecognize = name == "EnableMatchRecognize";
+ }
else {
ctx.AddError(TIssue(pos, TStringBuilder() << "Unsupported command: " << name));
return false;