diff options
author | ivanmorozov <ivanmorozov@yandex-team.com> | 2022-09-14 19:47:52 +0300 |
---|---|---|
committer | ivanmorozov <ivanmorozov@yandex-team.com> | 2022-09-14 19:47:52 +0300 |
commit | 2aa3f5defdef6ce85bd3599cc768c69ca8b4c950 (patch) | |
tree | 5b910a0868b8d6737454e87d8207fbbc3fcb5d5c | |
parent | 3527ca0991c82f384df1b3aa6bb8b3c809dc7ef0 (diff) | |
download | ydb-2aa3f5defdef6ce85bd3599cc768c69ca8b4c950.tar.gz |
correct columns usage
fix class used for string view detection
-rw-r--r-- | ydb/core/formats/arrow_helpers.cpp | 2 | ||||
-rw-r--r-- | ydb/core/tx/columnshard/columnshard__costs.cpp | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/ydb/core/formats/arrow_helpers.cpp b/ydb/core/formats/arrow_helpers.cpp index 6a28052da2..c83b3429ae 100644 --- a/ydb/core/formats/arrow_helpers.cpp +++ b/ydb/core/formats/arrow_helpers.cpp @@ -751,7 +751,7 @@ bool ScalarLess(const arrow::Scalar& x, const arrow::Scalar& y) { using TWrap = std::decay_t<decltype(type)>; using TScalar = typename arrow::TypeTraits<typename TWrap::T>::ScalarType; using TValue = std::decay_t<decltype(static_cast<const TScalar&>(x).value)>; - if constexpr (arrow::has_string_view<TScalar>()) { + if constexpr (arrow::has_string_view<typename TWrap::T>()) { const auto& xval = static_cast<const TScalar&>(x).value; const auto& yval = static_cast<const TScalar&>(y).value; return TStringBuf((char*)xval->data(), xval->size()) < TStringBuf((char*)yval->data(), yval->size()); diff --git a/ydb/core/tx/columnshard/columnshard__costs.cpp b/ydb/core/tx/columnshard/columnshard__costs.cpp index a8c53cf9dd..d0300f2f75 100644 --- a/ydb/core/tx/columnshard/columnshard__costs.cpp +++ b/ydb/core/tx/columnshard/columnshard__costs.cpp @@ -129,13 +129,14 @@ bool TKeyRanges::DeserializeFromProto(const NKikimrKqp::TEvRemoteCostData::TCost std::shared_ptr<arrow::RecordBatch> batch = NArrow::DeserializeBatch(proto.GetColumnsData(), schema); Y_VERIFY(batch->num_columns() == (int)ColumnsCount()); resultLocal.reserve(batch->num_rows()); + auto& batchColumns = batch->columns(); for (ui32 rowIdx = 0; rowIdx < batch->num_rows(); ++rowIdx) { TKeyMark mark; - for (ui32 cIdx = 0; cIdx < ColumnsCount(); ++cIdx) { - if (batch->column(cIdx)->IsNull(rowIdx)) { + for (auto&& c: batchColumns) { + if (c->IsNull(rowIdx)) { break; } - auto valueStatus = batch->column(cIdx)->GetScalar(rowIdx); + auto valueStatus = c->GetScalar(rowIdx); Y_VERIFY(valueStatus.ok()); mark.AddValue(valueStatus.ValueUnsafe()); } |