Skip to content

Commit 2d9e398

Browse files
author
brgayazov
committed
feat ydb: fixed missing keep_in_query_cache setting from driver
commit_hash:192cd5a12b4f9fa05a71c7e260bd801b520c6f02
1 parent 82d9611 commit 2d9e398

File tree

5 files changed

+43
-43
lines changed

5 files changed

+43
-43
lines changed

ydb/include/userver/ydb/table.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,9 @@ class TableClient final {
239239

240240
void Select1();
241241

242+
NYdb::NQuery::TExecuteQuerySettings ToExecuteQuerySettings(const QuerySettings& query_settings) const;
243+
NYdb::NTable::TExecDataQuerySettings ToExecDataQuerySettings(const QuerySettings& query_settings) const;
244+
242245
template <typename... Args>
243246
PreparedArgsBuilder MakeBuilder(Args&&... args);
244247

ydb/src/ydb/impl/operation_settings.cpp

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -19,44 +19,13 @@ std::chrono::milliseconds DeadlineToTimeout(engine::Deadline deadline) {
1919
return timeout;
2020
}
2121

22-
NYdb::NQuery::EStatsMode ConvertStatsMode(NYdb::NTable::ECollectQueryStatsMode collect_query_stats_mode) {
23-
switch (collect_query_stats_mode) {
24-
case NYdb::NTable::ECollectQueryStatsMode::None:
25-
return NYdb::NQuery::EStatsMode::None;
26-
case NYdb::NTable::ECollectQueryStatsMode::Basic:
27-
return NYdb::NQuery::EStatsMode::Basic;
28-
case NYdb::NTable::ECollectQueryStatsMode::Full:
29-
return NYdb::NQuery::EStatsMode::Full;
30-
case NYdb::NTable::ECollectQueryStatsMode::Profile:
31-
return NYdb::NQuery::EStatsMode::Profile;
32-
}
33-
}
34-
3522
} // namespace
3623

3724
std::chrono::milliseconds GetBoundTimeout(std::chrono::milliseconds timeout, engine::Deadline deadline) {
3825
const auto max_timeout = impl::DeadlineToTimeout(deadline);
3926
return (std::chrono::milliseconds::zero() < timeout) ? std::min(timeout, max_timeout) : max_timeout;
4027
}
4128

42-
NYdb::NQuery::TExecuteQuerySettings ToExecuteQuerySettings(const QuerySettings& query_settings) {
43-
NYdb::NQuery::TExecuteQuerySettings execute_query_settings;
44-
45-
// Query Client doesn't have KeepInQueryCache, it caches automatically
46-
47-
if (query_settings.collect_query_stats.has_value()) {
48-
execute_query_settings.StatsMode(ConvertStatsMode(*query_settings.collect_query_stats));
49-
}
50-
51-
return execute_query_settings;
52-
}
53-
54-
NYdb::NTable::TExecDataQuerySettings ToExecDataQuerySettings(const QuerySettings& query_settings) {
55-
return NYdb::NTable::TExecDataQuerySettings()
56-
.KeepInQueryCache(query_settings.keep_in_query_cache)
57-
.CollectQueryStats(query_settings.collect_query_stats);
58-
}
59-
6029
} // namespace ydb::impl
6130

6231
USERVER_NAMESPACE_END

ydb/src/ydb/impl/operation_settings.hpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@ constexpr double kOperationTimeoutMultiplier = 0.8;
2020

2121
std::chrono::milliseconds GetBoundTimeout(std::chrono::milliseconds timeout, engine::Deadline deadline);
2222

23-
NYdb::NQuery::TExecuteQuerySettings ToExecuteQuerySettings(const QuerySettings& query_settings);
24-
NYdb::NTable::TExecDataQuerySettings ToExecDataQuerySettings(const QuerySettings& query_settings);
25-
2623
template <typename T>
2724
void ApplyToRequestSettings(
2825
NYdb::TRequestSettings<T>& result,

ydb/src/ydb/table.cpp

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,19 @@ NYdb::NTable::TTxSettings MakeTableTxSettings(TransactionMode tx_mode) {
4949
}
5050
}
5151

52+
NYdb::NQuery::EStatsMode ConvertStatsMode(NYdb::NTable::ECollectQueryStatsMode collect_query_stats_mode) {
53+
switch (collect_query_stats_mode) {
54+
case NYdb::NTable::ECollectQueryStatsMode::None:
55+
return NYdb::NQuery::EStatsMode::None;
56+
case NYdb::NTable::ECollectQueryStatsMode::Basic:
57+
return NYdb::NQuery::EStatsMode::Basic;
58+
case NYdb::NTable::ECollectQueryStatsMode::Full:
59+
return NYdb::NQuery::EStatsMode::Full;
60+
case NYdb::NTable::ECollectQueryStatsMode::Profile:
61+
return NYdb::NQuery::EStatsMode::Profile;
62+
}
63+
}
64+
5265
} // namespace
5366

5467
TableClient::TableClient(
@@ -393,12 +406,7 @@ ExecuteResponse TableClient::ExecuteDataQuery(
393406
PreparedArgsBuilder&& builder
394407
) {
395408
if (use_query_client_) {
396-
return ExecuteQuery(
397-
impl::ToExecuteQuerySettings(query_settings),
398-
std::move(settings),
399-
query,
400-
std::move(builder)
401-
);
409+
return ExecuteQuery(ToExecuteQuerySettings(query_settings), std::move(settings), query, std::move(builder));
402410
}
403411

404412
impl::RequestContext context{*this, query, std::move(settings)};
@@ -407,7 +415,7 @@ ExecuteResponse TableClient::ExecuteDataQuery(
407415
context,
408416
[query,
409417
params = std::move(builder).Build(),
410-
exec_settings = impl::ToExecDataQuerySettings(query_settings),
418+
exec_settings = ToExecDataQuerySettings(query_settings),
411419
settings = context.settings,
412420
deadline = context.deadline](NYdb::NTable::TSession session) mutable {
413421
impl::ApplyToRequestSettings(exec_settings, settings, deadline);
@@ -472,6 +480,29 @@ void DumpMetric(utils::statistics::Writer& writer, const TableClient& table_clie
472480

473481
PreparedArgsBuilder TableClient::GetBuilder() const { return PreparedArgsBuilder{}; }
474482

483+
NYdb::NQuery::TExecuteQuerySettings TableClient::ToExecuteQuerySettings(const QuerySettings& query_settings) const {
484+
NYdb::NQuery::TExecuteQuerySettings exec_settings;
485+
486+
// Query Client doesn't have KeepInQueryCache, it caches automatically
487+
if (query_settings.collect_query_stats) {
488+
exec_settings.StatsMode(ConvertStatsMode(*query_settings.collect_query_stats));
489+
}
490+
491+
return exec_settings;
492+
}
493+
494+
NYdb::NTable::TExecDataQuerySettings TableClient::ToExecDataQuerySettings(const QuerySettings& query_settings) const {
495+
NYdb::NTable::TExecDataQuerySettings exec_settings;
496+
497+
exec_settings.KeepInQueryCache(query_settings.keep_in_query_cache.value_or(keep_in_query_cache_));
498+
499+
if (query_settings.collect_query_stats) {
500+
exec_settings.CollectQueryStats(*query_settings.collect_query_stats);
501+
}
502+
503+
return exec_settings;
504+
}
505+
475506
} // namespace ydb
476507

477508
USERVER_NAMESPACE_END

ydb/src/ydb/transaction.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,10 +170,10 @@ ExecuteResponse Transaction::Execute(
170170
impl::RequestContext context{table_client_, query, std::move(settings), impl::IsStreaming{false}, &span_};
171171
auto internal_params = std::move(builder).Build();
172172

173-
auto exec_query_settings = impl::ToExecuteQuerySettings(query_settings);
173+
auto exec_query_settings = table_client_.ToExecuteQuerySettings(query_settings);
174174
impl::ApplyToRequestSettings(exec_query_settings, context.settings, context.deadline);
175175

176-
auto exec_data_query_settings = impl::ToExecDataQuerySettings(query_settings);
176+
auto exec_data_query_settings = table_client_.ToExecDataQuerySettings(query_settings);
177177
impl::ApplyToRequestSettings(exec_data_query_settings, context.settings, context.deadline);
178178

179179
// Must go after PrepareExecuteSettings, because an exception from there

0 commit comments

Comments
 (0)