aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornsofya <nsofya@yandex-team.com>2023-08-29 16:07:52 +0300
committernsofya <nsofya@yandex-team.com>2023-08-29 20:43:47 +0300
commitfc8bbca64a71cfe55f6877690cf6f421ab1536fd (patch)
tree294872658d479c2e81870ba009ee93c8b9d09c60
parentbd84f96beddfa6dea5cddf86488288fca7c58967 (diff)
downloadydb-fc8bbca64a71cfe55f6877690cf6f421ab1536fd.tar.gz
KIKIMR-19151: Remove message check & add error messages
-rw-r--r--ydb/core/tx/columnshard/columnshard__scan.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/ydb/core/tx/columnshard/columnshard__scan.cpp b/ydb/core/tx/columnshard/columnshard__scan.cpp
index d3c6795969..1d03698c90 100644
--- a/ydb/core/tx/columnshard/columnshard__scan.cpp
+++ b/ydb/core/tx/columnshard/columnshard__scan.cpp
@@ -805,7 +805,7 @@ private:
};
static bool FillPredicatesFromRange(NOlap::TReadDescription& read, const ::NKikimrTx::TKeyRange& keyRange,
- const std::vector<std::pair<TString, NScheme::TTypeInfo>>& ydbPk, ui64 tabletId, const NOlap::TIndexInfo* indexInfo) {
+ const std::vector<std::pair<TString, NScheme::TTypeInfo>>& ydbPk, ui64 tabletId, const NOlap::TIndexInfo* indexInfo, TString& error) {
TSerializedTableRange range(keyRange);
auto fromPredicate = std::make_shared<NOlap::TPredicate>();
auto toPredicate = std::make_shared<NOlap::TPredicate>();
@@ -817,7 +817,10 @@ static bool FillPredicatesFromRange(NOlap::TReadDescription& read, const ::NKiki
<< " less predicate over columns: " << toPredicate->ToString()
<< " at tablet " << tabletId);
- return read.PKRangesFilter.Add(fromPredicate, toPredicate, indexInfo);
+ if (!read.PKRangesFilter.Add(fromPredicate, toPredicate, indexInfo)) {
+ error = "Error building filter";
+ }
+ return true;
}
std::shared_ptr<NOlap::TReadStatsMetadata>
@@ -878,7 +881,7 @@ std::shared_ptr<NOlap::TReadMetadataBase> TTxScan::CreateReadMetadata(NOlap::TRe
}
if (!metadata) {
- return {};
+ return nullptr;
}
if (itemsLimit) {
@@ -957,7 +960,7 @@ bool TTxScan::Execute(TTransactionContext& txc, const TActorContext& ctx) {
indexInfo->GetPrimaryKey();
for (auto& range: record.GetRanges()) {
- if (!FillPredicatesFromRange(read, range, ydbKey, Self->TabletID(), isIndexStats ? nullptr : indexInfo)) {
+ if (!FillPredicatesFromRange(read, range, ydbKey, Self->TabletID(), isIndexStats ? nullptr : indexInfo, ErrorDescription)) {
ReadMetadataRanges.clear();
return true;
}
@@ -1025,12 +1028,11 @@ void TTxScan::Complete(const TActorContext& ctx) {
<< detailedInfo.Str()
<< " at tablet " << Self->TabletID());
- Y_VERIFY(ErrorDescription);
auto ev = MakeHolder<TEvKqpCompute::TEvScanError>(scanGen);
ev->Record.SetStatus(Ydb::StatusIds::BAD_REQUEST);
auto issue = NYql::YqlIssue({}, NYql::TIssuesIds::KIKIMR_BAD_REQUEST, TStringBuilder()
- << "Table " << table << " (shard " << Self->TabletID() << ") scan failed, reason: " << ErrorDescription);
+ << "Table " << table << " (shard " << Self->TabletID() << ") scan failed, reason: " << ErrorDescription ? ErrorDescription : "unknown error");
NYql::IssueToMessage(issue, ev->Record.MutableIssues()->Add());
ctx.Send(scanComputeActor, ev.Release());