aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbrgayazov <bulat@ydb.tech>2023-02-09 14:55:21 +0300
committerbrgayazov <bulat@ydb.tech>2023-02-09 14:55:21 +0300
commitfb75ba7e0bbdcdb7ef80a420b4a81c8acfd22699 (patch)
tree594306d34ffd5b1d71ed6e993dd39cfbe096ef78
parent4d37d96d8ef636053397300d4f942e95c9dc71f9 (diff)
downloadydb-fb75ba7e0bbdcdb7ef80a420b4a81c8acfd22699.tar.gz
Fix bad retry operation and wrong exception
-rw-r--r--ydb/public/lib/ydb_cli/commands/ydb_service_table.cpp5
-rw-r--r--ydb/public/lib/ydb_cli/common/parameters.cpp9
2 files changed, 10 insertions, 4 deletions
diff --git a/ydb/public/lib/ydb_cli/commands/ydb_service_table.cpp b/ydb/public/lib/ydb_cli/commands/ydb_service_table.cpp
index 25d37d8986d..e6373e751f3 100644
--- a/ydb/public/lib/ydb_cli/commands/ydb_service_table.cpp
+++ b/ydb/public/lib/ydb_cli/commands/ydb_service_table.cpp
@@ -445,13 +445,14 @@ int TCommandExecuteQuery::ExecuteDataQuery(TConfig& config) {
if (!Parameters.empty() || !IsStdinInteractive()) {
THolder<TParamsBuilder> paramBuilder;
while (GetNextParams(ValidateResult->GetParameterTypes(), InputFormat, StdinFormat, FramingFormat, paramBuilder)) {
- auto operation = [this, &txSettings, &paramBuilder, &settings, &asyncResult](NTable::TSession session) {
+ TParams params = paramBuilder->Build();
+ auto operation = [this, &txSettings, &params, &settings, &asyncResult](NTable::TSession session) {
auto promise = NThreading::NewPromise<NTable::TDataQueryResult>();
asyncResult = promise.GetFuture();
auto result = session.ExecuteDataQuery(
Query,
NTable::TTxControl::BeginTx(txSettings).CommitTx(),
- paramBuilder->Build(),
+ params,
FillSettings(settings)
);
return result.Apply([promise](const NTable::TAsyncDataQueryResult& result) mutable {
diff --git a/ydb/public/lib/ydb_cli/common/parameters.cpp b/ydb/public/lib/ydb_cli/common/parameters.cpp
index a2425662a9d..c230da7b903 100644
--- a/ydb/public/lib/ydb_cli/common/parameters.cpp
+++ b/ydb/public/lib/ydb_cli/common/parameters.cpp
@@ -238,8 +238,13 @@ bool TCommandWithParameters::GetNextParams(const std::map<TString, TType>& param
return false;
}
- if (StdinParameters.size() != 1) {
- throw TMisuseException() << "Only one stdin parameter allowed in \"full\" batch mode.";
+ if (StdinParameters.size() > 1) {
+ throw TMisuseException() << "Only one stdin parameter allowed in \""
+ << BatchMode << "\" batch mode.";
+ }
+ if (StdinParameters.empty()) {
+ throw TMisuseException() << "An stdin parameter name must be specified in \""
+ << BatchMode << "\" batch mode.";
}
TString name = StdinParameters.front();
TString fullname = "$" + name;