aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorssmike <ssmike@ydb.tech>2023-08-15 16:04:50 +0300
committerssmike <ssmike@ydb.tech>2023-08-15 17:00:50 +0300
commitcf1d3c2a0f4ec54b688bb5fb98ec52f5dbc45103 (patch)
tree4c56e3a3b58d6b6217f7d1779ba6c182ec166d33
parentfd3978102761adff1a29e7f0376e378b5f294985 (diff)
downloadydb-cf1d3c2a0f4ec54b688bb5fb98ec52f5dbc45103.tar.gz
Source multishard repro
-rw-r--r--ydb/core/kqp/ut/perf/kqp_query_perf_ut.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/ydb/core/kqp/ut/perf/kqp_query_perf_ut.cpp b/ydb/core/kqp/ut/perf/kqp_query_perf_ut.cpp
index bf4f7d5e39..a34b71bff0 100644
--- a/ydb/core/kqp/ut/perf/kqp_query_perf_ut.cpp
+++ b/ydb/core/kqp/ut/perf/kqp_query_perf_ut.cpp
@@ -777,6 +777,34 @@ Y_UNIT_TEST_SUITE(KqpQueryPerf) {
.ExpectedDeletes = 3,
});
}
+
+ Y_UNIT_TEST_TWIN(MultiRead, SourceRead) {
+ TKikimrSettings settings;
+ NKikimrConfig::TAppConfig appConfig;
+ appConfig.MutableTableServiceConfig()->SetEnableKqpDataQuerySourceRead(SourceRead);
+ settings.SetAppConfig(appConfig);
+
+ TKikimrRunner kikimr(settings);
+ auto db = kikimr.GetTableClient();
+ auto session = db.CreateSession().GetValueSync().GetSession();
+
+ {
+ auto settings = NYdb::NTable::TExecDataQuerySettings().CollectQueryStats(ECollectQueryStatsMode::Full);
+ auto result = session.ExecuteDataQuery(R"(
+ SELECT * FROM `/Root/KeyValueLargePartition` WHERE Key > 101;
+ SELECT * FROM `/Root/KeyValueLargePartition` Where Key < 201;
+ )", TTxControl::BeginTx().CommitTx(), settings).GetValueSync();
+ UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
+ size_t partitionsCount = 0;
+ auto& stats = NYdb::TProtoAccessor::GetProto(*result.GetStats());
+ for (auto& phase : stats.query_phases()) {
+ for (auto& read : phase.table_access()) {
+ partitionsCount += read.partitions_count();
+ }
+ }
+ UNIT_ASSERT_VALUES_EQUAL(partitionsCount, SourceRead ? 2 : 1);
+ }
+ }
}
} // namespace NKikimr::NKqp