73class TableClient
final {
78 impl::TableSettings settings,
79 OperationSettings operation_settings,
80 dynamic_config::Source config_source,
81 std::shared_ptr<impl::Driver> driver
90 void MakeDirectory(
const std::string& path, MakeDirectorySettings query_settings = {});
91 void RemoveDirectory(
const std::string& path, RemoveDirectorySettings query_settings = {});
93 NYdb::NScheme::TDescribePathResult DescribePath(std::string_view path, DescribePathSettings query_settings = {});
94 NYdb::NScheme::TListDirectoryResult ListDirectory(std::string_view path, ListDirectorySettings query_settings = {});
96 NYdb::NTable::TDescribeTableResult DescribeTable(std::string_view path, DescribeTableSettings query_settings = {});
98 std::string_view path,
99 NYdb::NTable::TTableDescription&& table_desc,
100 CreateTableSettings query_settings = {}
102 void DropTable(std::string_view path, DropTableSettings query_settings = {});
121 template <
typename... Args>
122 ExecuteResponse ExecuteDataQuery(
const Query& query, Args&&... args);
124 template <
typename... Args>
125 ExecuteResponse ExecuteDataQuery(OperationSettings settings,
const Query& query, Args&&... args);
127 ExecuteResponse ExecuteDataQuery(OperationSettings settings,
const Query& query, PreparedArgsBuilder&& builder);
129 ExecuteResponse ExecuteDataQuery(
130 QuerySettings query_settings,
131 OperationSettings settings,
133 PreparedArgsBuilder&& builder
153 void RetryTx(
utils::
StringLiteral transaction_name, RetryTxSettings retry_settings, RetryTxFunction fn);
156 void RetryTx(DynamicTransactionName transaction_name, RetryTxSettings retry_settings, RetryTxFunction fn);
166 Transaction Begin(
utils::
StringLiteral transaction_name, OperationSettings settings = {});
171 Transaction
Begin(DynamicTransactionName transaction_name, OperationSettings settings = {});
181 std::string_view table,
183 OperationSettings settings = {},
184 BulkUpsertSettings query_settings = {}
189 template <
typename RangeOfStructs>
190 void BulkUpsert(std::string_view table,
const RangeOfStructs& rows, OperationSettings settings = {});
194 std::string_view table,
195 NYdb::NTable::TReadTableSettings&& read_settings = {},
196 OperationSettings settings = {}
203 template <
typename... Args>
204 ScanQueryResults ExecuteScanQuery(
const Query& query, Args&&... args);
206 template <
typename... Args>
207 ScanQueryResults ExecuteScanQuery(
208 ScanQuerySettings&& scan_settings,
209 OperationSettings settings,
214 ScanQueryResults ExecuteScanQuery(
215 ScanQuerySettings&& scan_settings,
216 OperationSettings settings,
218 PreparedArgsBuilder&& builder
239 template <
typename... Args>
240 ExecuteResponse ExecuteQuery(
const Query& query, Args&&... args);
242 template <
typename... Args>
243 ExecuteResponse ExecuteQuery(OperationSettings settings,
const Query& query, Args&&... args);
245 ExecuteResponse ExecuteQuery(OperationSettings settings,
const Query& query, PreparedArgsBuilder&& builder);
247 ExecuteResponse ExecuteQuery(
248 NYdb::NQuery::TExecuteQuerySettings&& exec_settings,
249 OperationSettings settings,
251 PreparedArgsBuilder&& builder
257 friend void DumpMetric(
utils::
statistics::Writer& writer,
const TableClient& table_client);
267 NYdb::NQuery::TQueryClient& GetNativeQueryClient();
269 NYdb::NScheme::TSchemeClient& GetNativeSchemeClient();
272 utils::RetryBudget& GetRetryBudget();
279 void SwitchConnectionTo(
const TableClient& target)
noexcept;
281 template <
typename Settings>
282 impl::RequestContext<Settings> MakeRequestContext(
285 impl::IsStreaming is_streaming = impl::IsStreaming{
false},
286 tracing::Span* custom_parent_span =
nullptr,
287 engine::Deadline parent_deadline
= {}
292 friend class Transaction;
294 template <
typename Settings>
295 friend class impl::RequestContext;
298 impl::Connection& CurrentConnection()
const noexcept;
302 NYdb::NQuery::TExecuteQuerySettings ToExecuteQuerySettings(
const QuerySettings& query_settings)
const;
304 template <
typename... Args>
305 PreparedArgsBuilder MakeBuilder(Args&&... args);
313 template <
typename QuerySettings,
typename Func>
314 auto ExecuteWithPathImpl(
315 std::string_view path,
316 std::string_view operation_name,
317 OperationSettings settings,
318 QuerySettings&& query_settings,
322 dynamic_config::Source config_source_;
323 const OperationSettings default_settings_;
324 std::unique_ptr<impl::Stats> stats_;
330 utils::SharedRef<impl::Connection> own_connection_;
331 utils::SharedRef<impl::Connection> routed_connection_;
333 std::atomic<
utils::
NotNull<impl::Connection*>> current_connection_;