aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorivanmorozov <ivanmorozov@yandex-team.com>2023-05-18 08:37:21 +0300
committerivanmorozov <ivanmorozov@yandex-team.com>2023-05-18 08:37:21 +0300
commit26fb4330a3aaf4e8ee67e0ebf130fedbd8f8bb5b (patch)
tree64656d5816861cd28383e4a880caee70f86d93a8
parent5654ec350abd6e2df2567ab710b064c4ef5595f5 (diff)
downloadydb-26fb4330a3aaf4e8ee67e0ebf130fedbd8f8bb5b.tar.gz
additional logging and fix test cases
-rw-r--r--ydb/core/formats/arrow/size_calcer.cpp5
-rw-r--r--ydb/core/kqp/ut/olap/kqp_olap_ut.cpp2
-rw-r--r--ydb/core/tx/columnshard/defs.h21
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;