Skip to content

Commit 6cd3cb9

Browse files
Copilotasmyasnikov
andcommitted
refactor: migrate ExecuteDataQuery to Query Client API
- Fixed include in transaction.hpp to use query/query.h instead of query/client.h - Added ConvertStatsMode helper function to table.cpp - Refactored ExecuteDataQuery to use Query Client (RetryQuery, ExecuteQuery) instead of Table Client (RetryOperation, ExecuteDataQuery) - Convert QuerySettings to Query Client settings similar to Transaction::Execute - Use PrepareQueryTxSettings and NYdb::NQuery types throughout Co-authored-by: asmyasnikov <[email protected]>
1 parent 0452c8a commit 6cd3cb9

File tree

2 files changed

+30
-7
lines changed

2 files changed

+30
-7
lines changed

ydb/include/userver/ydb/transaction.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
#include <string>
44

5-
#include <ydb-cpp-sdk/client/query/client.h>
5+
#include <ydb-cpp-sdk/client/query/query.h>
66

77
#include <userver/tracing/span.hpp>
88
#include <userver/utils/trx_tracker.hpp>

ydb/src/ydb/table.cpp

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,20 @@ NYdb::NQuery::TTxSettings PrepareQueryTxSettings(const OperationSettings& settin
4646
}
4747
}
4848

49+
NYdb::NQuery::EStatsMode ConvertStatsMode(NYdb::NTable::ECollectQueryStatsMode collect_query_stats) {
50+
// Convert Table Client stats mode to Query Client stats mode
51+
switch (collect_query_stats) {
52+
case NYdb::NTable::ECollectQueryStatsMode::None:
53+
return NYdb::NQuery::EStatsMode::None;
54+
case NYdb::NTable::ECollectQueryStatsMode::Basic:
55+
return NYdb::NQuery::EStatsMode::Basic;
56+
case NYdb::NTable::ECollectQueryStatsMode::Full:
57+
return NYdb::NQuery::EStatsMode::Full;
58+
case NYdb::NTable::ECollectQueryStatsMode::Profile:
59+
return NYdb::NQuery::EStatsMode::Profile;
60+
}
61+
}
62+
4963
} // namespace
5064

5165
TableClient::TableClient(
@@ -357,17 +371,26 @@ ExecuteResponse TableClient::ExecuteDataQuery(
357371
) {
358372
impl::RequestContext context{*this, query, std::move(settings)};
359373

360-
auto future = impl::RetryOperation(
374+
// Convert QuerySettings to Query Client settings
375+
NYdb::NQuery::TExecuteQuerySettings exec_settings;
376+
if (query_settings.keep_in_query_cache.has_value()) {
377+
// Query Client doesn't have KeepInQueryCache, it caches automatically
378+
}
379+
if (query_settings.collect_query_stats) {
380+
exec_settings.StatsMode(ConvertStatsMode(*query_settings.collect_query_stats));
381+
}
382+
383+
auto future = impl::RetryQuery(
361384
context,
362385
[query,
363386
params = std::move(builder).Build(),
364-
exec_settings = ToExecQuerySettings(query_settings),
387+
exec_settings = std::move(exec_settings),
365388
settings = context.settings,
366-
deadline = context.deadline](NYdb::NTable::TSession session) mutable {
389+
deadline = context.deadline](NYdb::NQuery::TSession session) mutable {
367390
impl::ApplyToRequestSettings(exec_settings, settings, deadline);
368-
const auto tx_settings = PrepareTxSettings(settings);
369-
const auto tx = NYdb::NTable::TTxControl::BeginTx(tx_settings).CommitTx();
370-
return session.ExecuteDataQuery(impl::ToString(query.GetStatementView()), tx, params, exec_settings);
391+
const auto tx_settings = PrepareQueryTxSettings(settings);
392+
const auto tx = NYdb::NQuery::TTxControl::BeginTx(tx_settings).CommitTx();
393+
return session.ExecuteQuery(impl::ToString(query.GetStatementView()), tx, params, exec_settings);
371394
}
372395
);
373396

0 commit comments

Comments
 (0)