diff options
author | ivanmorozov <ivanmorozov@yandex-team.com> | 2023-05-18 08:37:21 +0300 |
---|---|---|
committer | ivanmorozov <ivanmorozov@yandex-team.com> | 2023-05-18 08:37:21 +0300 |
commit | 26fb4330a3aaf4e8ee67e0ebf130fedbd8f8bb5b (patch) | |
tree | 64656d5816861cd28383e4a880caee70f86d93a8 | |
parent | 5654ec350abd6e2df2567ab710b064c4ef5595f5 (diff) | |
download | ydb-26fb4330a3aaf4e8ee67e0ebf130fedbd8f8bb5b.tar.gz |
additional logging and fix test cases
-rw-r--r-- | ydb/core/formats/arrow/size_calcer.cpp | 5 | ||||
-rw-r--r-- | ydb/core/kqp/ut/olap/kqp_olap_ut.cpp | 2 | ||||
-rw-r--r-- | ydb/core/tx/columnshard/defs.h | 21 |
3 files changed, 25 insertions, 3 deletions
diff --git a/ydb/core/formats/arrow/size_calcer.cpp b/ydb/core/formats/arrow/size_calcer.cpp index 90760a51d07..34a5c4fff14 100644 --- a/ydb/core/formats/arrow/size_calcer.cpp +++ b/ydb/core/formats/arrow/size_calcer.cpp @@ -190,8 +190,9 @@ bool TSerializedBatch::BuildWithLimit(std::shared_ptr<arrow::RecordBatch> batch, TSerializedBatch localSbR = TSerializedBatch::Build(batch->Slice(delta, length - delta)); if (localSbL.GetSize() > sizeLimit || localSbR.GetSize() > sizeLimit) { if (errorMessage) { - *errorMessage = TStringBuilder() << "original batch too big: " << sb.GetSize() << " and after 2 parts split we have: " << - localSbL.GetSize() << " / " << localSbR.GetSize() << " part sizes. Its unexpected"; + *errorMessage = TStringBuilder() << "original batch too big: " << sb.GetSize() << " and after 2 parts split we have: " + << localSbL.GetSize() << "(" << localSbL.GetRowsCount() << ")" << " / " + << localSbR.GetSize() << "(" << localSbR.GetRowsCount() << ")" << " part sizes. Its unexpected for limit " << sizeLimit; } return false; } diff --git a/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp b/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp index 258dd45e120..4789a2ba675 100644 --- a/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp +++ b/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp @@ -2312,7 +2312,7 @@ Y_UNIT_TEST_SUITE(KqpOlap) { } Y_UNIT_TEST(Aggregation_ResultCountExpr) { - NColumnShard::TLimits::SetMaxBlobSize(10000); + auto g = NColumnShard::TLimits::MaxBlobSizeGuard(10000); TAggregationTestCase testCase; testCase.SetQuery(R"( SELECT diff --git a/ydb/core/tx/columnshard/defs.h b/ydb/core/tx/columnshard/defs.h index d280261262f..30a248242b1 100644 --- a/ydb/core/tx/columnshard/defs.h +++ b/ydb/core/tx/columnshard/defs.h @@ -22,6 +22,27 @@ struct TLimits { static ui64 GetMaxBlobSize(); static void SetMaxBlobSize(const ui64 value); + class TMaxBlobSizeGuard: TNonCopyable { + private: + const ui64 Size; + const ui64 Original; + public: + TMaxBlobSizeGuard(const ui64 value) + : Size(value) + , Original(GetBlobSizeLimit()) + { + SetMaxBlobSize(Size); + } + + ~TMaxBlobSizeGuard() { + SetMaxBlobSize(Original); + } + }; + + static TMaxBlobSizeGuard MaxBlobSizeGuard(const ui64 value) { + return TMaxBlobSizeGuard(value); + } + TControlWrapper MinInsertBytes; TControlWrapper MaxInsertBytes; TControlWrapper InsertTableSize; |