aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgvit <gvit@ydb.tech>2022-11-01 17:31:52 +0300
committergvit <gvit@ydb.tech>2022-11-01 17:31:52 +0300
commite1fc222ef76a75694f8b5fb27e35b77c7b36399d (patch)
tree6a962473d25528bfa09f0b849a8c07a6f79d098b
parent3a44612c9dbed9010f65168ae8b8bcbc855ef8f8 (diff)
downloadydb-e1fc222ef76a75694f8b5fb27e35b77c7b36399d.tar.gz
remove experimental service from ydb
-rw-r--r--ydb/core/driver_lib/run/run.cpp8
-rw-r--r--ydb/core/grpc_services/grpc_request_proxy.cpp1
-rw-r--r--ydb/core/grpc_services/grpc_request_proxy.h1
-rw-r--r--ydb/core/grpc_services/rpc_calls.h2
-rw-r--r--ydb/core/grpc_services/rpc_stream_execute_scan_query.cpp125
-rw-r--r--ydb/core/kqp/ut/common/kqp_ut_common.cpp24
-rw-r--r--ydb/core/kqp/ut/common/kqp_ut_common.h3
-rw-r--r--ydb/core/kqp/ut/kqp_ne_flowcontrol_ut.cpp7
-rw-r--r--ydb/core/kqp/ut/kqp_scan_ut.cpp2
-rw-r--r--ydb/core/kqp/ut/kqp_sys_col_ut.cpp14
-rw-r--r--ydb/core/kqp/ut/kqp_table_predicate_ut.cpp7
-rw-r--r--ydb/core/testlib/test_client.cpp2
-rw-r--r--ydb/public/api/grpc/draft/CMakeLists.txt1
-rw-r--r--ydb/public/api/grpc/draft/ydb_experimental_v1.proto11
-rw-r--r--ydb/public/api/protos/CMakeLists.txt1
-rw-r--r--ydb/public/api/protos/ydb_experimental.proto45
-rw-r--r--ydb/public/lib/experimental/CMakeLists.txt1
-rw-r--r--ydb/public/lib/experimental/ydb_experimental.cpp197
-rw-r--r--ydb/public/lib/experimental/ydb_experimental.h107
-rw-r--r--ydb/public/sdk/python/ydb/__init__.py1
-rw-r--r--ydb/public/sdk/python/ydb/experimental.py61
-rw-r--r--ydb/services/ydb/CMakeLists.txt1
-rw-r--r--ydb/services/ydb/ydb_experimental.cpp31
-rw-r--r--ydb/services/ydb/ydb_experimental.h24
24 files changed, 28 insertions, 649 deletions
diff --git a/ydb/core/driver_lib/run/run.cpp b/ydb/core/driver_lib/run/run.cpp
index 7ad5a716843..21e0a25dcee 100644
--- a/ydb/core/driver_lib/run/run.cpp
+++ b/ydb/core/driver_lib/run/run.cpp
@@ -94,7 +94,6 @@
#include <ydb/services/rate_limiter/grpc_service.h>
#include <ydb/services/ydb/ydb_clickhouse_internal.h>
#include <ydb/services/ydb/ydb_dummy.h>
-#include <ydb/services/ydb/ydb_experimental.h>
#include <ydb/services/ydb/ydb_export.h>
#include <ydb/services/ydb/ydb_import.h>
#include <ydb/services/ydb/ydb_logstore.h>
@@ -552,8 +551,6 @@ void TKikimrRunner::InitializeGRpc(const TKikimrRunConfig& runConfig) {
names["pqcd"] = &hasPQCD;
TServiceCfg hasS3Internal = false;
names["s3_internal"] = &hasS3Internal;
- TServiceCfg hasExperimental = false;
- names["experimental"] = &hasExperimental;
TServiceCfg hasClickhouseInternal = services.empty();
names["clickhouse_internal"] = &hasClickhouseInternal;
TServiceCfg hasRateLimiter = false;
@@ -695,11 +692,6 @@ void TKikimrRunner::InitializeGRpc(const TKikimrRunConfig& runConfig) {
hasTableService.IsRlAllowed()));
}
- if (hasExperimental) {
- server.AddService(new NGRpcService::TGRpcYdbExperimentalService(ActorSystem.Get(), Counters,
- grpcRequestProxyId, hasExperimental.IsRlAllowed()));
- }
-
if (hasClickhouseInternal) {
server.AddService(new NGRpcService::TGRpcYdbClickhouseInternalService(ActorSystem.Get(), Counters,
AppData->InFlightLimiterRegistry, grpcRequestProxyId, hasClickhouseInternal.IsRlAllowed()));
diff --git a/ydb/core/grpc_services/grpc_request_proxy.cpp b/ydb/core/grpc_services/grpc_request_proxy.cpp
index 689848a5bdf..2cacc71877d 100644
--- a/ydb/core/grpc_services/grpc_request_proxy.cpp
+++ b/ydb/core/grpc_services/grpc_request_proxy.cpp
@@ -524,7 +524,6 @@ void TGRpcRequestProxyImpl::StateFunc(TAutoPtr<IEventHandle>& ev, const TActorCo
HFunc(TEvListEndpointsRequest, PreHandle);
HFunc(TEvS3ListingRequest, PreHandle);
HFunc(TEvBiStreamPingRequest, PreHandle);
- HFunc(TEvExperimentalStreamQueryRequest, PreHandle);
HFunc(TEvStreamPQWriteRequest, PreHandle);
HFunc(TEvStreamPQMigrationReadRequest, PreHandle);
HFunc(TEvStreamTopicWriteRequest, PreHandle);
diff --git a/ydb/core/grpc_services/grpc_request_proxy.h b/ydb/core/grpc_services/grpc_request_proxy.h
index 8c7ee34e39f..c61c15fb7aa 100644
--- a/ydb/core/grpc_services/grpc_request_proxy.h
+++ b/ydb/core/grpc_services/grpc_request_proxy.h
@@ -52,7 +52,6 @@ protected:
void Handle(TEvS3ListingRequest::TPtr& ev, const TActorContext& ctx);
void Handle(TEvBiStreamPingRequest::TPtr& ev, const TActorContext& ctx);
- void Handle(TEvExperimentalStreamQueryRequest::TPtr& ev, const TActorContext& ctx);
void Handle(TEvStreamPQWriteRequest::TPtr& ev, const TActorContext& ctx);
void Handle(TEvStreamPQMigrationReadRequest::TPtr& ev, const TActorContext& ctx);
void Handle(TEvStreamTopicWriteRequest::TPtr& ev, const TActorContext& ctx);
diff --git a/ydb/core/grpc_services/rpc_calls.h b/ydb/core/grpc_services/rpc_calls.h
index 075b573b543..7614381de74 100644
--- a/ydb/core/grpc_services/rpc_calls.h
+++ b/ydb/core/grpc_services/rpc_calls.h
@@ -10,7 +10,6 @@
#include <ydb/public/api/protos/ydb_coordination.pb.h>
#include <ydb/public/api/protos/ydb_discovery.pb.h>
-#include <ydb/public/api/protos/ydb_experimental.pb.h>
#include <ydb/public/api/protos/ydb_monitoring.pb.h>
#include <ydb/public/api/protos/ydb_status_codes.pb.h>
#include <ydb/public/api/protos/ydb_table.pb.h>
@@ -52,7 +51,6 @@ using TEvListEndpointsRequest = TGRpcRequestWrapper<TRpcServices::EvListEndpoint
using TEvS3ListingRequest = TGRpcRequestWrapper<TRpcServices::EvS3Listing, Ydb::S3Internal::S3ListingRequest, Ydb::S3Internal::S3ListingResponse, true>;
using TEvBiStreamPingRequest = TGRpcRequestBiStreamWrapper<TRpcServices::EvBiStreamPing, Draft::Dummy::PingRequest, Draft::Dummy::PingResponse>;
-using TEvExperimentalStreamQueryRequest = TGRpcRequestWrapper<TRpcServices::EvExperimentalStreamQuery, Ydb::Experimental::ExecuteStreamQueryRequest, Ydb::Experimental::ExecuteStreamQueryResponse, false>;
using TEvStreamPQWriteRequest = TGRpcRequestBiStreamWrapper<TRpcServices::EvStreamPQWrite, Ydb::PersQueue::V1::StreamingWriteClientMessage, Ydb::PersQueue::V1::StreamingWriteServerMessage>;
using TEvStreamPQMigrationReadRequest = TGRpcRequestBiStreamWrapper<TRpcServices::EvStreamPQMigrationRead, Ydb::PersQueue::V1::MigrationStreamingReadClientMessage, Ydb::PersQueue::V1::MigrationStreamingReadServerMessage>;
using TEvStreamTopicWriteRequest = TGRpcRequestBiStreamWrapper<TRpcServices::EvStreamTopicWrite, Ydb::Topic::StreamWriteMessage::FromClient, Ydb::Topic::StreamWriteMessage::FromServer, TRateLimiterMode::RuManual>;
diff --git a/ydb/core/grpc_services/rpc_stream_execute_scan_query.cpp b/ydb/core/grpc_services/rpc_stream_execute_scan_query.cpp
index 2188b227a8f..8b85c9bd1f2 100644
--- a/ydb/core/grpc_services/rpc_stream_execute_scan_query.cpp
+++ b/ydb/core/grpc_services/rpc_stream_execute_scan_query.cpp
@@ -41,23 +41,6 @@ struct TParseRequestError {
, Issues(issues) {}
};
-bool NeedReportStats(const Ydb::Experimental::ExecuteStreamQueryRequest& req) {
- switch (req.profile_mode()) {
- case Experimental::ExecuteStreamQueryRequest_ProfileMode_PROFILE_MODE_UNSPECIFIED:
- case Experimental::ExecuteStreamQueryRequest_ProfileMode_NONE:
- return false;
-
- case Experimental::ExecuteStreamQueryRequest_ProfileMode_BASIC:
- case Experimental::ExecuteStreamQueryRequest_ProfileMode_FULL:
- case Experimental::ExecuteStreamQueryRequest_ProfileMode_PROFILE:
- return true;
-
- case Experimental::ExecuteStreamQueryRequest_ProfileMode_ExecuteStreamQueryRequest_ProfileMode_INT_MIN_SENTINEL_DO_NOT_USE_:
- case Experimental::ExecuteStreamQueryRequest_ProfileMode_ExecuteStreamQueryRequest_ProfileMode_INT_MAX_SENTINEL_DO_NOT_USE_:
- YQL_ENSURE(false);
- }
-}
-
bool NeedReportStats(const Ydb::Table::ExecuteScanQueryRequest& req) {
switch (req.mode()) {
case ExecuteScanQueryRequest_Mode_MODE_UNSPECIFIED:
@@ -129,52 +112,6 @@ bool FillKqpParameters(const ::google::protobuf::Map<TString, Ydb::TypedValue>&
return true;
}
-bool FillKqpRequest(const Ydb::Experimental::ExecuteStreamQueryRequest& req, NKikimrKqp::TEvQueryRequest& kqpRequest,
- TParseRequestError& error)
-{
- if (!FillKqpParameters(req.parameters(), *kqpRequest.MutableRequest()->MutableParameters(), error)) {
- return false;
- }
-
- auto& query = req.yql_text();
-
- NYql::TIssues issues;
- if (!CheckQuery(query, issues)) {
- error = TParseRequestError(Ydb::StatusIds::BAD_REQUEST, issues);
- return false;
- }
-
- if (req.explain()) {
- kqpRequest.MutableRequest()->SetAction(NKikimrKqp::QUERY_ACTION_EXPLAIN);
- } else {
- kqpRequest.MutableRequest()->SetAction(NKikimrKqp::QUERY_ACTION_EXECUTE);
- }
-
- kqpRequest.MutableRequest()->SetType(NKikimrKqp::QUERY_TYPE_SQL_SCAN);
- kqpRequest.MutableRequest()->SetQuery(query);
- kqpRequest.MutableRequest()->SetKeepSession(false);
- switch (req.profile_mode()) {
- case Ydb::Experimental::ExecuteStreamQueryRequest_ProfileMode_PROFILE_MODE_UNSPECIFIED:
- case Ydb::Experimental::ExecuteStreamQueryRequest_ProfileMode_NONE:
- kqpRequest.MutableRequest()->SetCollectStats(Ydb::Table::QueryStatsCollection::STATS_COLLECTION_NONE);
- break;
- case Ydb::Experimental::ExecuteStreamQueryRequest_ProfileMode_BASIC:
- kqpRequest.MutableRequest()->SetCollectStats(Ydb::Table::QueryStatsCollection::STATS_COLLECTION_BASIC);
- break;
- case Ydb::Experimental::ExecuteStreamQueryRequest_ProfileMode_FULL:
- kqpRequest.MutableRequest()->SetCollectStats(Ydb::Table::QueryStatsCollection::STATS_COLLECTION_FULL);
- break;
- case Ydb::Experimental::ExecuteStreamQueryRequest_ProfileMode_PROFILE:
- kqpRequest.MutableRequest()->SetCollectStats(Ydb::Table::QueryStatsCollection::STATS_COLLECTION_PROFILE);
- break;
- default:
- YQL_ENSURE(false, "Unknown profile_mode "
- << Ydb::Experimental::ExecuteStreamQueryRequest_ProfileMode_Name(req.profile_mode()));
- }
-
- return true;
-}
-
bool FillKqpRequest(const Ydb::Table::ExecuteScanQueryRequest& req, NKikimrKqp::TEvQueryRequest& kqpRequest,
TParseRequestError& error)
{
@@ -233,14 +170,6 @@ bool FillKqpRequest(const Ydb::Table::ExecuteScanQueryRequest& req, NKikimrKqp::
return true;
}
-bool FillProfile(Ydb::Experimental::ExecuteStreamQueryResponse& response,
- const NYql::NDqProto::TDqExecutionStats& profile)
-{
- response.set_status(Ydb::StatusIds::SUCCESS);
- response.mutable_result()->set_profile(profile.Utf8DebugString());
- return true;
-}
-
bool FillProfile(Ydb::Table::ExecuteScanQueryPartialResponse& response,
const NYql::NDqProto::TDqExecutionStats& profile)
{
@@ -395,43 +324,27 @@ private:
auto& kqpResponse = record.GetResponse();
response.set_status(Ydb::StatusIds::SUCCESS);
- if constexpr (std::is_same_v<TResponse, Ydb::Table::ExecuteScanQueryPartialResponse>) {
- bool reportStats = NeedReportStats(*Request_->GetProtoRequest());
- bool reportPlan = reportStats && NeedReportPlan(*Request_->GetProtoRequest());
+ bool reportStats = NeedReportStats(*Request_->GetProtoRequest());
+ bool reportPlan = reportStats && NeedReportPlan(*Request_->GetProtoRequest());
- if (reportStats) {
- if (kqpResponse.HasQueryStats()) {
- for (const auto& execStats: ExecutionProfiles_) {
- record.MutableResponse()->MutableQueryStats()->AddExecutions()->Swap(execStats.get());
- }
-
- record.MutableResponse()->SetQueryPlan(reportPlan
- ? SerializeAnalyzePlan(kqpResponse.GetQueryStats())
- : "");
-
- FillQueryStats(*response.mutable_result()->mutable_query_stats(), kqpResponse);
- ExecutionProfiles_.clear();
- } else if (reportPlan) {
- response.mutable_result()->mutable_query_stats()->set_query_plan(kqpResponse.GetQueryPlan());
+ if (reportStats) {
+ if (kqpResponse.HasQueryStats()) {
+ for (const auto& execStats: ExecutionProfiles_) {
+ record.MutableResponse()->MutableQueryStats()->AddExecutions()->Swap(execStats.get());
}
- if (reportPlan) {
- response.mutable_result()->mutable_query_stats()->set_query_ast(kqpResponse.GetQueryAst());
- }
+ record.MutableResponse()->SetQueryPlan(reportPlan
+ ? SerializeAnalyzePlan(kqpResponse.GetQueryStats())
+ : "");
- Y_PROTOBUF_SUPPRESS_NODISCARD response.SerializeToString(&out);
- Request_->SendSerializedResult(std::move(out), record.GetYdbStatus());
+ FillQueryStats(*response.mutable_result()->mutable_query_stats(), kqpResponse);
+ ExecutionProfiles_.clear();
+ } else if (reportPlan) {
+ response.mutable_result()->mutable_query_stats()->set_query_plan(kqpResponse.GetQueryPlan());
}
- } else {
- if (kqpResponse.HasQueryStats()) {
- NKqpProto::TKqpStatsQuery queryStats;
- for (const auto& execStats: ExecutionProfiles_) {
- /* copy as ExecutionProfiles_ vector will be used and cleared later */
- queryStats.AddExecutions()->CopyFrom(*execStats);
- }
- response.mutable_result()->set_query_plan(SerializeAnalyzePlan(queryStats));
- } else {
- response.mutable_result()->set_query_plan(kqpResponse.GetQueryPlan());
+
+ if (reportPlan) {
+ response.mutable_result()->mutable_query_stats()->set_query_ast(kqpResponse.GetQueryAst());
}
Y_PROTOBUF_SUPPRESS_NODISCARD response.SerializeToString(&out);
@@ -635,12 +548,6 @@ private:
} // namespace
-void TGRpcRequestProxy::Handle(TEvExperimentalStreamQueryRequest::TPtr& ev, const TActorContext& ctx) {
- ui64 rpcBufferSize = GetAppConfig().GetTableServiceConfig().GetResourceManager().GetChannelBufferSize();
- ctx.Register(new TStreamExecuteScanQueryRPC<TEvExperimentalStreamQueryRequest,
- Ydb::Experimental::ExecuteStreamQueryResponse>(ev->Release().Release(), rpcBufferSize));
-}
-
void DoExecuteScanQueryRequest(std::unique_ptr<IRequestNoOpCtx> p, const IFacilityProvider& f) {
ui64 rpcBufferSize = f.GetAppConfig().GetTableServiceConfig().GetResourceManager().GetChannelBufferSize();
auto* req = dynamic_cast<TEvStreamExecuteScanQueryRequest*>(p.release());
diff --git a/ydb/core/kqp/ut/common/kqp_ut_common.cpp b/ydb/core/kqp/ut/common/kqp_ut_common.cpp
index 0dd55ca0d03..afb1f97de00 100644
--- a/ydb/core/kqp/ut/common/kqp_ut_common.cpp
+++ b/ydb/core/kqp/ut/common/kqp_ut_common.cpp
@@ -534,22 +534,6 @@ void FillProfile(NYdb::NTable::TScanQueryPart& streamPart, NYson::TYsonWriter& w
Y_UNUSED(profileIndex);
}
-void FillProfile(NYdb::NExperimental::TStreamPart& streamPart, NYson::TYsonWriter& writer, TVector<TString>* profiles,
- ui32 profileIndex)
-{
- if (streamPart.HasProfile()) {
- if (profiles) {
- profiles->emplace_back(streamPart.ExtractProfile());
- } else {
- writer.OnListItem();
- writer.OnBeginMap();
- writer.OnKeyedItem(TStringBuilder() << "_profile_" << profileIndex);
- writer.OnStringScalar(streamPart.ExtractProfile());
- writer.OnEndMap();
- }
- }
-}
-
void PrintResultSet(const NYdb::TResultSet& resultSet, NYson::TYsonWriter& writer) {
auto columns = resultSet.GetColumnsMeta();
@@ -594,10 +578,6 @@ TString StreamResultToYsonImpl(TIterator& it, TVector<TString>* profiles) {
return out.Str();
}
-TString StreamResultToYson(NYdb::NExperimental::TStreamPartIterator& it, TVector<TString>* profiles) {
- return StreamResultToYsonImpl(it, profiles);
-}
-
TString StreamResultToYson(NYdb::NTable::TScanQueryPartIterator& it) {
return StreamResultToYsonImpl(it, nullptr);
}
@@ -712,10 +692,6 @@ TCollectedStreamResult CollectStreamResultImpl(TIterator& it) {
return res;
}
-TCollectedStreamResult CollectStreamResult(NYdb::NExperimental::TStreamPartIterator& it) {
- return CollectStreamResultImpl(it);
-}
-
TCollectedStreamResult CollectStreamResult(NYdb::NTable::TScanQueryPartIterator& it) {
return CollectStreamResultImpl(it);
}
diff --git a/ydb/core/kqp/ut/common/kqp_ut_common.h b/ydb/core/kqp/ut/common/kqp_ut_common.h
index da640449922..d2a1dedd853 100644
--- a/ydb/core/kqp/ut/common/kqp_ut_common.h
+++ b/ydb/core/kqp/ut/common/kqp_ut_common.h
@@ -2,7 +2,6 @@
#include <ydb/core/testlib/test_client.h>
-#include <ydb/public/lib/experimental/ydb_experimental.h>
#include <ydb/public/lib/yson_value/ydb_yson_value.h>
#include <ydb/public/sdk/cpp/client/ydb_scheme/scheme.h>
#include <ydb/public/sdk/cpp/client/ydb_table/table.h>
@@ -170,7 +169,6 @@ struct TCollectedStreamResult {
ui64 RowsCount = 0;
};
-TCollectedStreamResult CollectStreamResult(NYdb::NExperimental::TStreamPartIterator& it);
TCollectedStreamResult CollectStreamResult(NYdb::NTable::TScanQueryPartIterator& it);
enum class EIndexTypeSql {
@@ -231,7 +229,6 @@ inline NYdb::NTable::TDataQueryResult ExecQueryAndTestResult(NYdb::NTable::TSess
return ExecQueryAndTestResult(session, query, NYdb::TParamsBuilder().Build(), expectedYson);
}
-TString StreamResultToYson(NYdb::NExperimental::TStreamPartIterator& it, TVector<TString>* profiles = nullptr);
TString StreamResultToYson(NYdb::NTable::TScanQueryPartIterator& it);
TString StreamResultToYson(NYdb::NScripting::TYqlResultPartIterator& it);
TString StreamResultToYson(NYdb::NTable::TTablePartIterator& it);
diff --git a/ydb/core/kqp/ut/kqp_ne_flowcontrol_ut.cpp b/ydb/core/kqp/ut/kqp_ne_flowcontrol_ut.cpp
index 45a675b0abf..9bc95479d0c 100644
--- a/ydb/core/kqp/ut/kqp_ne_flowcontrol_ut.cpp
+++ b/ydb/core/kqp/ut/kqp_ne_flowcontrol_ut.cpp
@@ -2,8 +2,6 @@
#include <ydb/core/protos/kqp.pb.h>
#include <ydb/core/kqp/counters/kqp_counters.h>
-#include <ydb/public/lib/experimental/ydb_experimental.h>
-
#include <ydb/library/yql/dq/actors/compute/dq_compute_actor.h>
namespace NKikimr::NKqp {
@@ -143,9 +141,8 @@ void SlowClient() {
}
}
- NExperimental::TStreamQueryClient db(kikimr.GetDriver());
-
- auto it = db.ExecuteStreamQuery("SELECT Key, Value FROM `/Root/KeyValue`").GetValueSync();
+ auto db = kikimr.GetTableClient();
+ auto it = db.StreamExecuteScanQuery("SELECT Key, Value FROM `/Root/KeyValue`").GetValueSync();
auto part = it.ReadNext().GetValueSync();
auto counters = kikimr.GetTestServer().GetRuntime()->GetAppData(0).Counters;
diff --git a/ydb/core/kqp/ut/kqp_scan_ut.cpp b/ydb/core/kqp/ut/kqp_scan_ut.cpp
index ed666347f19..048fd538987 100644
--- a/ydb/core/kqp/ut/kqp_scan_ut.cpp
+++ b/ydb/core/kqp/ut/kqp_scan_ut.cpp
@@ -2,8 +2,6 @@
#include <ydb/core/kqp/counters/kqp_counters.h>
#include <ydb/core/tx/scheme_cache/scheme_cache.h>
-#include <ydb/public/lib/experimental/ydb_experimental.h>
-
#include <ydb/library/yql/dq/actors/compute/dq_compute_actor.h>
#include <util/generic/size_literals.h>
diff --git a/ydb/core/kqp/ut/kqp_sys_col_ut.cpp b/ydb/core/kqp/ut/kqp_sys_col_ut.cpp
index 402ce5576d3..e7cc5b496f8 100644
--- a/ydb/core/kqp/ut/kqp_sys_col_ut.cpp
+++ b/ydb/core/kqp/ut/kqp_sys_col_ut.cpp
@@ -26,13 +26,6 @@ TDataQueryResult ExecuteDataQuery(const TString& query) {
return ExecuteDataQuery(kikimr, query);
}
-TStreamPartIterator ExecuteStreamQuery(TKikimrRunner& kikimr, const TString& query) {
- NExperimental::TStreamQueryClient db{ kikimr.GetDriver() };
- auto it = db.ExecuteStreamQuery(query).GetValueSync();
- UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString());
- return it;
-}
-
void SelectRowAsteriskCommon() {
TStringBuilder query;
query << R"(
@@ -45,6 +38,13 @@ void SelectRowAsteriskCommon() {
FormatResultSetYson(result.GetResultSet(0)));
}
+TScanQueryPartIterator ExecuteStreamQuery(TKikimrRunner& kikimr, const TString& query) {
+ auto db = kikimr.GetTableClient();
+ auto it = db.StreamExecuteScanQuery(query).GetValueSync();
+ UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString());
+ return it;
+}
+
void SelectRowByIdCommon() {
TStringBuilder query;
query << R"(
diff --git a/ydb/core/kqp/ut/kqp_table_predicate_ut.cpp b/ydb/core/kqp/ut/kqp_table_predicate_ut.cpp
index c3f31024c47..d772a4af766 100644
--- a/ydb/core/kqp/ut/kqp_table_predicate_ut.cpp
+++ b/ydb/core/kqp/ut/kqp_table_predicate_ut.cpp
@@ -300,7 +300,7 @@ void RunPredicateTest(const std::vector<TString>& predicates, bool withNulls) {
).GetValueSync().IsSuccess()
);
- NExperimental::TStreamQueryClient streamDb(kikimr.GetDriver());
+ auto streamDb = kikimr.GetTableClient();
for (auto& item: predicates) {
TString disablePredicateExtractor = R"(
@@ -314,11 +314,11 @@ void RunPredicateTest(const std::vector<TString>& predicates, bool withNulls) {
Cerr << "Execute query" << Endl << query << Endl;
- auto it = streamDb.ExecuteStreamQuery(disablePredicateExtractor + query).GetValueSync();
+ auto it = streamDb.StreamExecuteScanQuery(disablePredicateExtractor + query).GetValueSync();
UNIT_ASSERT(it.IsSuccess());
auto expectedYson = StreamResultToYson(it);
- it = streamDb.ExecuteStreamQuery(query).GetValueSync();
+ it = streamDb.StreamExecuteScanQuery(query).GetValueSync();
UNIT_ASSERT(it.IsSuccess());
auto resultYson = StreamResultToYson(it);
@@ -1212,7 +1212,6 @@ Y_UNIT_TEST_SUITE(KqpTablePredicate) {
Y_UNIT_TEST(MergeRanges) {
TKikimrRunner kikimr;
- NExperimental::TStreamQueryClient streamDb(kikimr.GetDriver());
auto db = kikimr.GetTableClient();
auto session = db.CreateSession().GetValueSync().GetSession();
TStreamExecScanQuerySettings scanSettings;
diff --git a/ydb/core/testlib/test_client.cpp b/ydb/core/testlib/test_client.cpp
index 77c99770b95..d3ace1b5383 100644
--- a/ydb/core/testlib/test_client.cpp
+++ b/ydb/core/testlib/test_client.cpp
@@ -16,7 +16,6 @@
#include <ydb/core/grpc_services/grpc_mon.h>
#include <ydb/services/ydb/ydb_clickhouse_internal.h>
#include <ydb/services/ydb/ydb_dummy.h>
-#include <ydb/services/ydb/ydb_experimental.h>
#include <ydb/services/ydb/ydb_export.h>
#include <ydb/services/ydb/ydb_import.h>
#include <ydb/services/ydb/ydb_operation.h>
@@ -323,7 +322,6 @@ namespace Tests {
GRpcServer->AddService(new NKesus::TKesusGRpcService(system, counters, grpcRequestProxyId, true));
GRpcServer->AddService(new NGRpcService::TGRpcCmsService(system, counters, grpcRequestProxyId, true));
GRpcServer->AddService(new NGRpcService::TGRpcDiscoveryService(system, counters, grpcRequestProxyId, true));
- GRpcServer->AddService(new NGRpcService::TGRpcYdbExperimentalService(system, counters, grpcRequestProxyId, true));
GRpcServer->AddService(new NGRpcService::TGRpcYdbClickhouseInternalService(system, counters, appData.InFlightLimiterRegistry, grpcRequestProxyId, true));
GRpcServer->AddService(new NGRpcService::TGRpcYdbS3InternalService(system, counters, grpcRequestProxyId, true));
GRpcServer->AddService(new NQuoter::TRateLimiterGRpcService(system, counters, grpcRequestProxyId));
diff --git a/ydb/public/api/grpc/draft/CMakeLists.txt b/ydb/public/api/grpc/draft/CMakeLists.txt
index 6da5beb110c..bccbdfa0749 100644
--- a/ydb/public/api/grpc/draft/CMakeLists.txt
+++ b/ydb/public/api/grpc/draft/CMakeLists.txt
@@ -23,7 +23,6 @@ target_proto_messages(api-grpc-draft PRIVATE
${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_clickhouse_internal_v1.proto
${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_persqueue_v1.proto
${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_datastreams_v1.proto
- ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_experimental_v1.proto
${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_s3_internal_v1.proto
${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_long_tx_v1.proto
${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_logstore_v1.proto
diff --git a/ydb/public/api/grpc/draft/ydb_experimental_v1.proto b/ydb/public/api/grpc/draft/ydb_experimental_v1.proto
deleted file mode 100644
index 003ab6d671a..00000000000
--- a/ydb/public/api/grpc/draft/ydb_experimental_v1.proto
+++ /dev/null
@@ -1,11 +0,0 @@
-syntax = "proto3";
-
-package Ydb.Experimental.V1;
-option java_package = "com.yandex.ydb.experimental.v1";
-
-import "ydb/public/api/protos/ydb_experimental.proto";
-
-service ExperimentalService {
- rpc ExecuteStreamQuery(Experimental.ExecuteStreamQueryRequest) returns (stream Experimental.ExecuteStreamQueryResponse);
-}
-
diff --git a/ydb/public/api/protos/CMakeLists.txt b/ydb/public/api/protos/CMakeLists.txt
index 8bc7dd907c3..bfc413e374f 100644
--- a/ydb/public/api/protos/CMakeLists.txt
+++ b/ydb/public/api/protos/CMakeLists.txt
@@ -33,7 +33,6 @@ target_proto_messages(api-protos PRIVATE
${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_common.proto
${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_coordination.proto
${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_discovery.proto
- ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_experimental.proto
${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_export.proto
${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_formats.proto
${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_import.proto
diff --git a/ydb/public/api/protos/ydb_experimental.proto b/ydb/public/api/protos/ydb_experimental.proto
deleted file mode 100644
index c36f9e2c34d..00000000000
--- a/ydb/public/api/protos/ydb_experimental.proto
+++ /dev/null
@@ -1,45 +0,0 @@
-syntax = "proto3";
-option cc_enable_arenas = true;
-
-package Ydb.Experimental;
-option java_package = "com.yandex.ydb.experimental";
-option java_outer_classname = "ExperimentalProtos";
-
-import "ydb/public/api/protos/ydb_issue_message.proto";
-import "ydb/public/api/protos/ydb_status_codes.proto";
-import "ydb/public/api/protos/ydb_value.proto";
-
-
-message ExecuteStreamQueryRequest {
- string yql_text = 1;
- map<string, TypedValue> parameters = 2;
-
- enum ProfileMode {
- PROFILE_MODE_UNSPECIFIED = 0;
- NONE = 1;
- BASIC = 2;
- FULL = 3;
- PROFILE = 4;
- }
-
- ProfileMode profile_mode = 3;
- bool explain = 4;
-}
-
-message ExecuteStreamQueryResponse {
- StatusIds.StatusCode status = 1;
- repeated Ydb.Issue.IssueMessage issues = 2;
- ExecuteStreamQueryResult result = 3;
-}
-
-message StreamQueryProgress {
-}
-
-message ExecuteStreamQueryResult {
- oneof result {
- Ydb.ResultSet result_set = 1;
- string profile = 2;
- StreamQueryProgress progress = 3;
- string query_plan = 4;
- }
-}
diff --git a/ydb/public/lib/experimental/CMakeLists.txt b/ydb/public/lib/experimental/CMakeLists.txt
index 7a520873bb6..dc130476cef 100644
--- a/ydb/public/lib/experimental/CMakeLists.txt
+++ b/ydb/public/lib/experimental/CMakeLists.txt
@@ -18,7 +18,6 @@ target_link_libraries(public-lib-experimental PUBLIC
)
target_sources(public-lib-experimental PRIVATE
${CMAKE_SOURCE_DIR}/ydb/public/lib/experimental/ydb_clickhouse_internal.cpp
- ${CMAKE_SOURCE_DIR}/ydb/public/lib/experimental/ydb_experimental.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/experimental/ydb_logstore.cpp
${CMAKE_SOURCE_DIR}/ydb/public/lib/experimental/ydb_s3_internal.cpp
)
diff --git a/ydb/public/lib/experimental/ydb_experimental.cpp b/ydb/public/lib/experimental/ydb_experimental.cpp
deleted file mode 100644
index d52d492d666..00000000000
--- a/ydb/public/lib/experimental/ydb_experimental.cpp
+++ /dev/null
@@ -1,197 +0,0 @@
-#include "ydb_experimental.h"
-
-#define INCLUDE_YDB_INTERNAL_H
-#include <ydb/public/sdk/cpp/client/impl/ydb_internal/make_request/make.h>
-#undef INCLUDE_YDB_INTERNAL_H
-
-#include <ydb/public/api/grpc/draft/ydb_experimental_v1.grpc.pb.h>
-#include <library/cpp/grpc/client/grpc_client_low.h>
-#include <ydb/public/sdk/cpp/client/ydb_proto/accessor.h>
-#include <ydb/public/sdk/cpp/client/ydb_common_client/impl/client.h>
-
-namespace NYdb {
-namespace NExperimental {
-
-using namespace NThreading;
-
-
-TStreamPartStatus::TStreamPartStatus(TStatus&& status)
- : TStatus(std::move(status))
-{}
-
-bool TStreamPartStatus::EOS() const {
- return GetStatus() == EStatus::CLIENT_OUT_OF_RANGE;
-}
-
-class TStreamPartIterator::TReaderImpl {
-public:
- using TSelf = TStreamPartIterator::TReaderImpl;
- using TResponse = Ydb::Experimental::ExecuteStreamQueryResponse;
- using TStreamProcessorPtr = NGrpc::IStreamRequestReadProcessor<TResponse>::TPtr;
- using TReadCallback = NGrpc::IStreamRequestReadProcessor<TResponse>::TReadCallback;
- using TGRpcStatus = NGrpc::TGrpcStatus;
- using TBatchReadResult = std::pair<TResponse, TGRpcStatus>;
-
- TReaderImpl(TStreamProcessorPtr streamProcessor, const TString& endpoint)
- : StreamProcessor_(streamProcessor)
- , Finished_(false)
- , Endpoint_(endpoint)
- {}
-
- ~TReaderImpl() {
- StreamProcessor_->Cancel();
- }
-
- bool IsFinished() const {
- return Finished_;
- }
-
- TAsyncStreamPart ReadNext(std::shared_ptr<TSelf> self) {
- auto promise = NThreading::NewPromise<TStreamPart>();
- // Capture self - guarantee no dtor call during the read
- auto readCb = [self, promise](TGRpcStatus&& grpcStatus) mutable {
- if (!grpcStatus.Ok()) {
- self->Finished_ = true;
- promise.SetValue({TStatus(TPlainStatus(grpcStatus, self->Endpoint_))});
- } else {
- NYql::TIssues issues;
- NYql::IssuesFromMessage(self->Response_.issues(), issues);
- EStatus clientStatus = static_cast<EStatus>(self->Response_.status());
- TPlainStatus plainStatus{clientStatus, std::move(issues), self->Endpoint_, {}};
- TStatus status{std::move(plainStatus)};
-
- if (self->Response_.result().has_result_set()) {
- promise.SetValue({TResultSet(std::move(*self->Response_.mutable_result()->mutable_result_set())),
- std::move(status)});
- } else if (!self->Response_.result().profile().empty()) {
- promise.SetValue({std::move(*self->Response_.mutable_result()->mutable_profile()),
- std::move(status)});
- } else if (!self->Response_.result().query_plan().Empty()) {
- TMaybe<TString> queryPlan = self->Response_.result().query_plan();
- promise.SetValue({queryPlan, std::move(status)});
- } else if (self->Response_.result().has_progress()) {
- // skip, not supported yet
- } else {
- promise.SetValue(std::move(status));
- }
- }
- };
- StreamProcessor_->Read(&Response_, readCb);
- return promise.GetFuture();
- }
-private:
- TStreamProcessorPtr StreamProcessor_;
- TResponse Response_;
- bool Finished_;
- TString Endpoint_;
-};
-
-TStreamPartIterator::TStreamPartIterator(
- std::shared_ptr<TReaderImpl> impl,
- TPlainStatus&& status)
- : TStatus(std::move(status))
- , ReaderImpl_(impl)
-{}
-
-TAsyncStreamPart TStreamPartIterator::ReadNext() {
- if (ReaderImpl_->IsFinished())
- RaiseError("Attempt to perform read on invalid or finished stream");
- return ReaderImpl_->ReadNext(ReaderImpl_);
-}
-
-class TStreamQueryClient::TImpl : public TClientImplCommon<TStreamQueryClient::TImpl> {
-public:
- using TStreamProcessorPtr = TStreamPartIterator::TReaderImpl::TStreamProcessorPtr;
-
- TImpl(std::shared_ptr<TGRpcConnectionsImpl>&& connections, const TCommonClientSettings& settings)
- : TClientImplCommon(std::move(connections), settings) {}
-
- TFuture<std::pair<TPlainStatus, TStreamProcessorPtr>> ExecuteStreamQueryInternal(const TString& query,
- const TParams* params, const TExecuteStreamQuerySettings& settings)
- {
- auto request = MakeRequest<Ydb::Experimental::ExecuteStreamQueryRequest>();
- request.set_yql_text(query);
- if (params) {
- *request.mutable_parameters() = params->GetProtoMap();
- }
-
- switch (settings.ProfileMode_) {
- case EStreamQueryProfileMode::None:
- request.set_profile_mode(Ydb::Experimental::ExecuteStreamQueryRequest_ProfileMode_NONE);
- break;
- case EStreamQueryProfileMode::Basic:
- request.set_profile_mode(Ydb::Experimental::ExecuteStreamQueryRequest_ProfileMode_BASIC);
- break;
- case EStreamQueryProfileMode::Full:
- request.set_profile_mode(Ydb::Experimental::ExecuteStreamQueryRequest_ProfileMode_FULL);
- break;
- case EStreamQueryProfileMode::Profile:
- request.set_profile_mode(Ydb::Experimental::ExecuteStreamQueryRequest_ProfileMode_PROFILE);
- break;
- }
-
- request.set_explain(settings.Explain_);
-
- auto promise = NewPromise<std::pair<TPlainStatus, TStreamProcessorPtr>>();
-
- Connections_->StartReadStream<
- Ydb::Experimental::V1::ExperimentalService,
- Ydb::Experimental::ExecuteStreamQueryRequest,
- Ydb::Experimental::ExecuteStreamQueryResponse>
- (
- std::move(request),
- [promise] (TPlainStatus status, TStreamProcessorPtr processor) mutable {
- promise.SetValue(std::make_pair(status, processor));
- },
- &Ydb::Experimental::V1::ExperimentalService::Stub::AsyncExecuteStreamQuery,
- DbDriverState_,
- TRpcRequestSettings::Make(settings)
- );
-
- return promise.GetFuture();
- }
-
- TAsyncStreamPartIterator ExecuteStreamQuery(const TString& query, const TParams* params,
- const TExecuteStreamQuerySettings& settings)
- {
- auto promise = NewPromise<TStreamPartIterator>();
-
- auto iteratorCallback = [promise](TFuture<std::pair<TPlainStatus,
- TStreamQueryClient::TImpl::TStreamProcessorPtr>> future) mutable
- {
- Y_ASSERT(future.HasValue());
- auto pair = future.ExtractValue();
- promise.SetValue(TStreamPartIterator(
- pair.second
- ? std::make_shared<TStreamPartIterator::TReaderImpl>(pair.second, pair.first.Endpoint)
- : nullptr,
- std::move(pair.first))
- );
- };
-
- ExecuteStreamQueryInternal(query, params, settings).Subscribe(iteratorCallback);
- return promise.GetFuture();
- }
-};
-
-TStreamQueryClient::TStreamQueryClient(const TDriver& driver, const TCommonClientSettings& settings)
- : Impl_(new TImpl(CreateInternalInterface(driver), settings)) {}
-
-TParamsBuilder TStreamQueryClient::GetParamsBuilder() {
- return TParamsBuilder();
-}
-
-TAsyncStreamPartIterator TStreamQueryClient::ExecuteStreamQuery(const TString& query,
- const TExecuteStreamQuerySettings& settings)
-{
- return Impl_->ExecuteStreamQuery(query, nullptr, settings);
-}
-
-TAsyncStreamPartIterator TStreamQueryClient::ExecuteStreamQuery(const TString& query, const TParams& params,
- const TExecuteStreamQuerySettings& settings)
-{
- return Impl_->ExecuteStreamQuery(query, &params, settings);
-}
-
-} // namespace NExperimental
-} // namespace NYdb
diff --git a/ydb/public/lib/experimental/ydb_experimental.h b/ydb/public/lib/experimental/ydb_experimental.h
deleted file mode 100644
index 50f9cd5a2a9..00000000000
--- a/ydb/public/lib/experimental/ydb_experimental.h
+++ /dev/null
@@ -1,107 +0,0 @@
-#pragma once
-
-#include <ydb/public/sdk/cpp/client/ydb_table/table.h>
-
-namespace NYdb {
-namespace NExperimental {
-
-////////////////////////////////////////////////////////////////////////////////
-
-class TStreamPartIterator;
-
-using TAsyncStreamPartIterator = NThreading::TFuture<TStreamPartIterator>;
-
-class TStreamPartStatus : public TStatus {
-public:
- TStreamPartStatus(TStatus&& status);
- bool EOS() const;
-};
-
-class TStreamPart : public TStreamPartStatus {
-public:
- bool HasResultSet() const { return ResultSet_.Defined(); }
- const TResultSet& GetResultSet() const { return *ResultSet_; }
- TResultSet ExtractResultSet() { return std::move(*ResultSet_); }
-
- bool HasProfile() const { return Profile_.Defined(); }
- const TString& GetProfile() const { return *Profile_; }
- TString ExtractProfile() { return std::move(*Profile_); }
-
- bool HasPlan() const { return Plan_.Defined(); }
- const TString& GetPlan() const { return *Plan_; }
- TString ExtractPlan() { return std::move(*Plan_); }
-
- TStreamPart(TStatus&& status)
- : TStreamPartStatus(std::move(status))
- {}
-
- TStreamPart(TResultSet&& resultSet, TStatus&& status)
- : TStreamPartStatus(std::move(status))
- , ResultSet_(std::move(resultSet))
- {}
-
- TStreamPart(TString&& profile, TStatus&& status)
- : TStreamPartStatus(std::move(status))
- , Profile_(std::move(profile))
- {}
-
- TStreamPart(const TMaybe<TString>& plan, TStatus&& status)
- : TStreamPartStatus(std::move(status))
- , Plan_(plan)
- {}
-
-private:
- TMaybe<TResultSet> ResultSet_;
- TMaybe<TString> Profile_;
- TMaybe<TString> Plan_;
-};
-
-using TAsyncStreamPart = NThreading::TFuture<TStreamPart>;
-
-class TStreamPartIterator : public TStatus {
- friend class TStreamQueryClient;
-public:
- TAsyncStreamPart ReadNext();
- class TReaderImpl;
-private:
- TStreamPartIterator(
- std::shared_ptr<TReaderImpl> impl,
- TPlainStatus&& status
- );
- std::shared_ptr<TReaderImpl> ReaderImpl_;
-};
-
-enum class EStreamQueryProfileMode {
- None,
- Basic,
- Full,
- Profile
-};
-
-struct TExecuteStreamQuerySettings : public TRequestSettings<TExecuteStreamQuerySettings> {
- using TSelf = TExecuteStreamQuerySettings;
-
- FLUENT_SETTING_DEFAULT(EStreamQueryProfileMode, ProfileMode, EStreamQueryProfileMode::None);
- FLUENT_SETTING_DEFAULT(bool, Explain, false);
-};
-
-class TStreamQueryClient {
- class TImpl;
-
-public:
- TStreamQueryClient(const TDriver& driver, const TCommonClientSettings& settings = TCommonClientSettings());
-
- TParamsBuilder GetParamsBuilder();
-
- TAsyncStreamPartIterator ExecuteStreamQuery(const TString& query,
- const TExecuteStreamQuerySettings& settings = TExecuteStreamQuerySettings());
-
- TAsyncStreamPartIterator ExecuteStreamQuery(const TString& query, const TParams& params,
- const TExecuteStreamQuerySettings& settings = TExecuteStreamQuerySettings());
-
-private:
- std::shared_ptr<TImpl> Impl_;
-};
-
-} // namespace NExperimental
-} // namespace NYdb
diff --git a/ydb/public/sdk/python/ydb/__init__.py b/ydb/public/sdk/python/ydb/__init__.py
index 7dd45200253..5cbe4f1a2d6 100644
--- a/ydb/public/sdk/python/ydb/__init__.py
+++ b/ydb/public/sdk/python/ydb/__init__.py
@@ -1,4 +1,3 @@
-from .experimental import * # noqa
from .credentials import * # noqa
from .driver import * # noqa
from .table import * # noqa
diff --git a/ydb/public/sdk/python/ydb/experimental.py b/ydb/public/sdk/python/ydb/experimental.py
deleted file mode 100644
index 92f9972b7fe..00000000000
--- a/ydb/public/sdk/python/ydb/experimental.py
+++ /dev/null
@@ -1,61 +0,0 @@
-from ydb.public.api.protos import ydb_experimental_pb2
-from ydb.public.api.grpc.draft import ydb_experimental_v1_pb2_grpc
-from . import _utilities, issues, convert
-
-
-def _execute_stream_query_request_factory(yql_text, parameters=None, settings=None):
- request = ydb_experimental_pb2.ExecuteStreamQueryRequest()
- request.yql_text = yql_text
- request.profile_mode = 1
- return request
-
-
-class StreamQueryResult(object):
- def __init__(self, result):
- self._result = result
-
- def is_progress(self):
- return self._result.WhichOneof("result") == "ping"
-
- @property
- def result_set(self):
- return convert.ResultSet.from_message(self._result.result_set)
-
- def is_result_set(self):
- return self._result.WhichOneof("result") == "result_set"
-
-
-def _wrap_stream_query_response(response):
- issues._process_response(response)
- return StreamQueryResult(response.result)
-
-
-class ExperimentalClient(object):
- def __init__(self, driver):
- self.driver = driver
-
- def async_execute_stream_query(self, yql_text, parameters=None, settings=None):
- """
- That is experimental api. Can be used only for tests, not for production.
- """
- request = _execute_stream_query_request_factory(yql_text, parameters, settings)
- stream_it = self.driver(
- request,
- ydb_experimental_v1_pb2_grpc.ExperimentalServiceStub,
- "ExecuteStreamQuery",
- settings=settings,
- )
- return _utilities.AsyncResponseIterator(stream_it, _wrap_stream_query_response)
-
- def execute_stream_query(self, yql_text, parameters=None, settings=None):
- """
- That is experimental api. Can be used only for tests, not for production.
- """
- request = _execute_stream_query_request_factory(yql_text, parameters, settings)
- stream_it = self.driver(
- request,
- ydb_experimental_v1_pb2_grpc.ExperimentalServiceStub,
- "ExecuteStreamQuery",
- settings=settings,
- )
- return _utilities.SyncResponseIterator(stream_it, _wrap_stream_query_response)
diff --git a/ydb/services/ydb/CMakeLists.txt b/ydb/services/ydb/CMakeLists.txt
index c2b0781a3a9..487894646ad 100644
--- a/ydb/services/ydb/CMakeLists.txt
+++ b/ydb/services/ydb/CMakeLists.txt
@@ -33,7 +33,6 @@ target_link_libraries(ydb-services-ydb PUBLIC
target_sources(ydb-services-ydb PRIVATE
${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_clickhouse_internal.cpp
${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_dummy.cpp
- ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_experimental.cpp
${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_export.cpp
${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_import.cpp
${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_logstore.cpp
diff --git a/ydb/services/ydb/ydb_experimental.cpp b/ydb/services/ydb/ydb_experimental.cpp
deleted file mode 100644
index c5904aef474..00000000000
--- a/ydb/services/ydb/ydb_experimental.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-#include "ydb_experimental.h"
-
-#include <ydb/core/grpc_services/grpc_helper.h>
-#include <ydb/core/grpc_services/grpc_request_proxy.h>
-#include <ydb/core/grpc_services/rpc_calls.h>
-
-namespace NKikimr {
-namespace NGRpcService {
-
-void TGRpcYdbExperimentalService::SetupIncomingRequests(NGrpc::TLoggerPtr logger) {
- auto getCounterBlock = CreateCounterCb(Counters_, ActorSystem_);
-
-#ifdef ADD_REQUEST
-#error ADD_REQUEST macro already defined
-#endif
-#define ADD_REQUEST(NAME, IN, OUT, ACTION) \
- MakeIntrusive<TGRpcRequest<Ydb::Experimental::IN, Ydb::Experimental::OUT, TGRpcYdbExperimentalService>>(this, &Service_, CQ_, \
- [this](NGrpc::IRequestContextBase *ctx) { \
- NGRpcService::ReportGrpcReqToMon(*ActorSystem_, ctx->GetPeer()); \
- ACTION; \
- }, &Ydb::Experimental::V1::ExperimentalService::AsyncService::Request ## NAME, \
- #NAME, logger, getCounterBlock("experimental", #NAME))->Run();
-
- ADD_REQUEST(ExecuteStreamQuery, ExecuteStreamQueryRequest, ExecuteStreamQueryResponse, {
- ActorSystem_->Send(GRpcRequestProxyId_, new TEvExperimentalStreamQueryRequest(ctx));
- })
-#undef ADD_REQUEST
-}
-
-} // namespace NGRpcService
-} // namespace NKikimr
diff --git a/ydb/services/ydb/ydb_experimental.h b/ydb/services/ydb/ydb_experimental.h
deleted file mode 100644
index e13f11a7906..00000000000
--- a/ydb/services/ydb/ydb_experimental.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#pragma once
-
-#include <library/cpp/actors/core/actorsystem.h>
-
-#include <library/cpp/grpc/server/grpc_server.h>
-
-#include <ydb/public/api/grpc/draft/ydb_experimental_v1.grpc.pb.h>
-#include <ydb/core/grpc_services/base/base_service.h>
-
-namespace NKikimr {
-namespace NGRpcService {
-
-class TGRpcYdbExperimentalService
- : public TGrpcServiceBase<Ydb::Experimental::V1::ExperimentalService>
-{
-public:
- using TGrpcServiceBase<Ydb::Experimental::V1::ExperimentalService>::TGrpcServiceBase;
-
-private:
- void SetupIncomingRequests(NGrpc::TLoggerPtr logger);
-};
-
-} // namespace NGRpcService
-} // namespace NKikimr