diff options
author | spuchin <spuchin@ydb.tech> | 2022-11-24 18:32:34 +0300 |
---|---|---|
committer | spuchin <spuchin@ydb.tech> | 2022-11-24 18:32:34 +0300 |
commit | 12f230e89e0d4afe6394b23bde1b30d416c96f56 (patch) | |
tree | 86f682796a8ec64472db6f715cdacb9a07e06c45 | |
parent | 68f4c0da11f5cf3f264840d2197e36c8e2c6367c (diff) | |
download | ydb-12f230e89e0d4afe6394b23bde1b30d416c96f56.tar.gz |
Remove kql mentions from kikimr provider. ()
-rw-r--r-- | ydb/core/kqp/host/kqp_host.cpp | 58 | ||||
-rw-r--r-- | ydb/core/kqp/provider/yql_kikimr_datasink.cpp | 15 | ||||
-rw-r--r-- | ydb/core/kqp/provider/yql_kikimr_provider.cpp | 5 | ||||
-rw-r--r-- | ydb/core/kqp/provider/yql_kikimr_provider.h | 3 | ||||
-rw-r--r-- | ydb/core/kqp/provider/yql_kikimr_provider_impl.h | 51 | ||||
-rw-r--r-- | ydb/core/kqp/provider/yql_kikimr_type_ann.cpp | 7 |
6 files changed, 51 insertions, 88 deletions
diff --git a/ydb/core/kqp/host/kqp_host.cpp b/ydb/core/kqp/host/kqp_host.cpp index 4b5239913af..20482028426 100644 --- a/ydb/core/kqp/host/kqp_host.cpp +++ b/ydb/core/kqp/host/kqp_host.cpp @@ -104,6 +104,55 @@ void FillAstAndPlan(IKqpHost::TQueryResult& queryResult, TExprNode* queryRoot, T queryResult.QueryPlan = planStream.Str(); } +template<typename TResult> +class TKqpFutureResult : public IKikimrAsyncResult<TResult> { +public: + TKqpFutureResult(const NThreading::TFuture<TResult>& future, TExprContext& ctx) + : Future(future) + , ExprCtx(ctx) + , Completed(false) {} + + bool HasResult() const override { + if (Completed) { + YQL_ENSURE(ExtractedResult.has_value()); + } + return Completed; + } + + TResult GetResult() override { + YQL_ENSURE(Completed); + if (ExtractedResult) { + return std::move(*ExtractedResult); + } + return std::move(Future.ExtractValue()); + } + + NThreading::TFuture<bool> Continue() override { + if (Completed) { + return NThreading::MakeFuture(true); + } + + if (Future.HasValue()) { + ExtractedResult.emplace(std::move(Future.ExtractValue())); + ExtractedResult->ReportIssues(ExprCtx.IssueManager); + + Completed = true; + return NThreading::MakeFuture(true); + } + + return Future.Apply([](const NThreading::TFuture<TResult>& future) { + YQL_ENSURE(future.HasValue()); + return false; + }); + } + +private: + NThreading::TFuture<TResult> Future; + std::optional<TResult> ExtractedResult; + TExprContext& ExprCtx; + bool Completed; +}; + /* * Validate YqlScript. */ @@ -671,13 +720,6 @@ public: , SessionCtx(sessionCtx) , KqpRunner(kqpRunner) {} - TIntrusivePtr<TAsyncQueryResult> ExecuteKql(const TString&, const TExprNode::TPtr&, TExprContext&, - const TExecuteSettings&) override - { - YQL_ENSURE(false, "Unexpected ExecuteKql call."); - return nullptr; - } - TIntrusivePtr<TAsyncQueryResult> ExecuteDataQuery(const TString& cluster, const TExprNode::TPtr& query, TExprContext& ctx, const TExecuteSettings& settings) override { @@ -761,7 +803,7 @@ public: return nullptr; } - return MakeIntrusive<TKikimrFutureResult<TQueryResult>>(future, ctx); + return MakeIntrusive<TKqpFutureResult<TQueryResult>>(future, ctx); } default: diff --git a/ydb/core/kqp/provider/yql_kikimr_datasink.cpp b/ydb/core/kqp/provider/yql_kikimr_datasink.cpp index 349ff6d9afa..948d12e2dc5 100644 --- a/ydb/core/kqp/provider/yql_kikimr_datasink.cpp +++ b/ydb/core/kqp/provider/yql_kikimr_datasink.cpp @@ -283,13 +283,6 @@ private: return TStatus::Ok; } - TStatus HandleKql(TCallable node, TExprContext& ctx) override { - Y_UNUSED(node); - Y_UNUSED(ctx); - - return TStatus::Ok; - } - private: TIntrusivePtr<TKikimrSessionContext> SessionCtx; }; @@ -385,9 +378,7 @@ public: return node.Child(1)->Child(0)->Content() == KikimrProviderName; } - if (KikimrDataSinkFunctions().contains(node.Content()) || - KikimrKqlFunctions().contains(node.Content())) - { + if (KikimrDataSinkFunctions().contains(node.Content())) { return true; } @@ -785,10 +776,6 @@ IGraphTransformer::TStatus TKiSinkVisitorTransformer::DoTransform(TExprNode::TPt return HandleEffects(node.Cast(), ctx); } - if (KikimrKqlFunctions().contains(callable.CallableName())) { - return HandleKql(callable, ctx); - } - ctx.AddError(TIssue(ctx.GetPosition(input->Pos()), TStringBuilder() << "(Kikimr DataSink) Unsupported function: " << callable.CallableName())); return TStatus::Error; diff --git a/ydb/core/kqp/provider/yql_kikimr_provider.cpp b/ydb/core/kqp/provider/yql_kikimr_provider.cpp index 951ee022724..40b3b27b9cd 100644 --- a/ydb/core/kqp/provider/yql_kikimr_provider.cpp +++ b/ydb/core/kqp/provider/yql_kikimr_provider.cpp @@ -20,7 +20,6 @@ const TStringBuf CommitModeScheme = "scheme"; struct TKikimrData { THashSet<TStringBuf> DataSourceNames; THashSet<TStringBuf> DataSinkNames; - THashSet<TStringBuf> KqlNames; THashSet<TStringBuf> CommitModes; THashSet<TStringBuf> SupportedEffects; @@ -499,10 +498,6 @@ const THashSet<TStringBuf>& KikimrDataSinkFunctions() { return Singleton<TKikimrData>()->DataSinkNames; } -const THashSet<TStringBuf>& KikimrKqlFunctions() { - return Singleton<TKikimrData>()->KqlNames; -} - const THashSet<TStringBuf>& KikimrSupportedEffects() { return Singleton<TKikimrData>()->SupportedEffects; } diff --git a/ydb/core/kqp/provider/yql_kikimr_provider.h b/ydb/core/kqp/provider/yql_kikimr_provider.h index e2c112d4aa0..7c0af677509 100644 --- a/ydb/core/kqp/provider/yql_kikimr_provider.h +++ b/ydb/core/kqp/provider/yql_kikimr_provider.h @@ -50,9 +50,6 @@ public: virtual ~IKikimrQueryExecutor() {} - virtual TIntrusivePtr<TAsyncQueryResult> ExecuteKql(const TString& cluster, - const TExprNode::TPtr& query, TExprContext& ctx, const TExecuteSettings& settings) = 0; - virtual TIntrusivePtr<TAsyncQueryResult> ExecuteDataQuery(const TString& cluster, const TExprNode::TPtr& query, TExprContext& ctx, const TExecuteSettings& settings) = 0; diff --git a/ydb/core/kqp/provider/yql_kikimr_provider_impl.h b/ydb/core/kqp/provider/yql_kikimr_provider_impl.h index 3e0e2e60262..35a34545f0c 100644 --- a/ydb/core/kqp/provider/yql_kikimr_provider_impl.h +++ b/ydb/core/kqp/provider/yql_kikimr_provider_impl.h @@ -44,7 +44,6 @@ private: virtual TStatus HandleDropGroup(NNodes::TKiDropGroup node, TExprContext& ctx) = 0; virtual TStatus HandleWrite(NNodes::TExprBase node, TExprContext& ctx) = 0; virtual TStatus HandleCommit(NNodes::TCoCommit node, TExprContext& ctx) = 0; - virtual TStatus HandleKql(NNodes::TCallable node, TExprContext& ctx) = 0; virtual TStatus HandleExecDataQuery(NNodes::TKiExecDataQuery node, TExprContext& ctx) = 0; virtual TStatus HandleDataQuery(NNodes::TKiDataQuery node, TExprContext& ctx) = 0; virtual TStatus HandleDataQueryBlock(NNodes::TKiDataQueryBlock node, TExprContext& ctx) = 0; @@ -132,55 +131,6 @@ struct TKiExecDataQuerySettings { static TKiExecDataQuerySettings Parse(NNodes::TKiExecDataQuery exec); }; -template<typename TResult> -class TKikimrFutureResult : public IKikimrAsyncResult<TResult> { -public: - TKikimrFutureResult(const NThreading::TFuture<TResult>& future, TExprContext& ctx) - : Future(future) - , ExprCtx(ctx) - , Completed(false) {} - - bool HasResult() const override { - if (Completed) { - YQL_ENSURE(ExtractedResult.has_value()); - } - return Completed; - } - - TResult GetResult() override { - YQL_ENSURE(Completed); - if (ExtractedResult) { - return std::move(*ExtractedResult); - } - return std::move(Future.ExtractValue()); - } - - NThreading::TFuture<bool> Continue() override { - if (Completed) { - return NThreading::MakeFuture(true); - } - - if (Future.HasValue()) { - ExtractedResult.emplace(std::move(Future.ExtractValue())); - ExtractedResult->ReportIssues(ExprCtx.IssueManager); - - Completed = true; - return NThreading::MakeFuture(true); - } - - return Future.Apply([](const NThreading::TFuture<TResult>& future) { - YQL_ENSURE(future.HasValue()); - return false; - }); - } - -private: - NThreading::TFuture<TResult> Future; - std::optional<TResult> ExtractedResult; - TExprContext& ExprCtx; - bool Completed; -}; - TAutoPtr<IGraphTransformer> CreateKiSourceTypeAnnotationTransformer(TIntrusivePtr<TKikimrSessionContext> sessionCtx, TTypeAnnotationContext& types); TAutoPtr<IGraphTransformer> CreateKiSinkTypeAnnotationTransformer(TIntrusivePtr<IKikimrGateway> gateway, @@ -225,7 +175,6 @@ TExprNode::TPtr KiBuildResult(NNodes::TExprBase node, const TString& cluster, T const THashSet<TStringBuf>& KikimrDataSourceFunctions(); const THashSet<TStringBuf>& KikimrDataSinkFunctions(); -const THashSet<TStringBuf>& KikimrKqlFunctions(); const THashSet<TStringBuf>& KikimrSupportedEffects(); const THashSet<TStringBuf>& KikimrCommitModes(); diff --git a/ydb/core/kqp/provider/yql_kikimr_type_ann.cpp b/ydb/core/kqp/provider/yql_kikimr_type_ann.cpp index 21b6786447e..39ab12f3319 100644 --- a/ydb/core/kqp/provider/yql_kikimr_type_ann.cpp +++ b/ydb/core/kqp/provider/yql_kikimr_type_ann.cpp @@ -1271,13 +1271,6 @@ private: return TStatus::Ok; } - virtual TStatus HandleKql(TCallable node, TExprContext& ctx) override { - ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder() - << "Unknown Kql callable in type annotation: " << node.CallableName())); - - return TStatus::Error; - } - bool CheckDocApiModifiation(const TKikimrTableMetadata& meta, TPositionHandle pos, TExprContext& ctx) { if (!SessionCtx->Query().DocumentApiRestricted) { return true; |