58class TableClient
final {
63 impl::TableSettings settings,
64 OperationSettings operation_settings,
65 dynamic_config::Source config_source,
66 std::shared_ptr<impl::Driver> driver
75 void MakeDirectory(
const std::string& path, MakeDirectorySettings query_settings = {});
76 void RemoveDirectory(
const std::string& path, RemoveDirectorySettings query_settings = {});
78 NYdb::NScheme::TDescribePathResult DescribePath(std::string_view path, DescribePathSettings query_settings = {});
79 NYdb::NScheme::TListDirectoryResult ListDirectory(std::string_view path, ListDirectorySettings query_settings = {});
81 NYdb::NTable::TDescribeTableResult DescribeTable(std::string_view path, DescribeTableSettings query_settings = {});
83 std::string_view path,
84 NYdb::NTable::TTableDescription&& table_desc,
85 CreateTableSettings query_settings = {}
87 void DropTable(std::string_view path, DropTableSettings query_settings = {});
104 template <
typename... Args>
105 ExecuteResponse ExecuteDataQuery(
const Query& query, Args&&... args);
107 template <
typename... Args>
108 ExecuteResponse ExecuteDataQuery(OperationSettings settings,
const Query& query, Args&&... args);
110 ExecuteResponse ExecuteDataQuery(OperationSettings settings,
const Query& query, PreparedArgsBuilder&& builder);
112 ExecuteResponse ExecuteDataQuery(
113 QuerySettings query_settings,
114 OperationSettings settings,
116 PreparedArgsBuilder&& builder
126 Transaction Begin(utils::StringLiteral transaction_name, OperationSettings settings = {});
131 Transaction Begin(DynamicTransactionName transaction_name, OperationSettings settings = {});
133 Transaction Begin(utils::StringLiteral transaction_name, TransactionMode tx_mode);
141 std::string_view table,
143 OperationSettings settings = {},
144 BulkUpsertSettings query_settings = {}
149 template <
typename RangeOfStructs>
150 void BulkUpsert(std::string_view table,
const RangeOfStructs& rows, OperationSettings settings = {});
154 std::string_view table,
155 NYdb::NTable::TReadTableSettings&& read_settings = {},
156 OperationSettings settings = {}
163 template <
typename... Args>
164 ScanQueryResults ExecuteScanQuery(
const Query& query, Args&&... args);
166 template <
typename... Args>
168 ExecuteScanQuery(ScanQuerySettings&& scan_settings, OperationSettings settings,
const Query& query, Args&&... args);
170 ScanQueryResults ExecuteScanQuery(
171 ScanQuerySettings&& scan_settings,
172 OperationSettings settings,
174 PreparedArgsBuilder&& builder
193 template <
typename... Args>
194 ExecuteResponse ExecuteQuery(
const Query& query, Args&&... args);
196 template <
typename... Args>
197 ExecuteResponse ExecuteQuery(OperationSettings settings,
const Query& query, Args&&... args);
199 ExecuteResponse ExecuteQuery(OperationSettings settings,
const Query& query, PreparedArgsBuilder&& builder);
201 ExecuteResponse ExecuteQuery(
202 NYdb::NQuery::TExecuteQuerySettings&& exec_settings,
203 OperationSettings settings,
205 PreparedArgsBuilder&& builder
211 friend void DumpMetric(utils::statistics::Writer& writer,
const TableClient& table_client);
221 NYdb::NQuery::TQueryClient& GetNativeQueryClient();
224 utils::RetryBudget& GetRetryBudget();
227 friend class Transaction;
228 friend struct impl::RequestContext;
230 std::string JoinDbPath(std::string_view path)
const;
234 NYdb::NTable::TExecDataQuerySettings ToExecQuerySettings(QuerySettings query_settings)
const;
236 template <
typename... Args>
237 PreparedArgsBuilder MakeBuilder(Args&&... args);
245 template <
typename QuerySettings,
typename Func>
246 auto ExecuteWithPathImpl(
247 std::string_view path,
248 std::string_view operation_name,
249 OperationSettings settings,
250 QuerySettings&& query_settings,
254 dynamic_config::Source config_source_;
255 const OperationSettings default_settings_;
256 const bool keep_in_query_cache_;
257 std::unique_ptr<impl::Stats> stats_;
258 std::shared_ptr<impl::Driver> driver_;
259 std::unique_ptr<NYdb::NScheme::TSchemeClient> scheme_client_;
260 std::unique_ptr<NYdb::NTable::TTableClient> table_client_;
261 std::unique_ptr<NYdb::NQuery::TQueryClient> query_client_;