From 61f61c68de2c80e2376b9d5aad95336749b9d2e6 Mon Sep 17 00:00:00 2001 From: ivanmorozov333 Date: Sun, 17 Nov 2024 13:10:07 +0300 Subject: [PATCH] move nullable control into data checker --- ydb/core/formats/arrow/process_columns.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/ydb/core/formats/arrow/process_columns.cpp b/ydb/core/formats/arrow/process_columns.cpp index df3f8c382203..f363b7613a81 100644 --- a/ydb/core/formats/arrow/process_columns.cpp +++ b/ydb/core/formats/arrow/process_columns.cpp @@ -77,10 +77,7 @@ TConclusion> AdaptColumnsImpl( columns.push_back(srcBatch->column(index)); fields.emplace_back(field); auto srcField = srcBatch->schema()->field(index); - if (field->Equals(srcField)) { - AFL_VERIFY(columns.back()->type()->Equals(field->type()))("event", "cannot_use_incoming_batch")("reason", "invalid_column_type")( - "column", field->name())("column_type", field->type()->ToString())("incoming_type", columns.back()->type()->ToString()); - } else { + if (!field->type()->Equals(srcField->type())) { AFL_ERROR(NKikimrServices::ARROW_HELPER)("event", "cannot_use_incoming_batch")("reason", "invalid_column_type")( "column", field->name())("column_type", field->ToString(true))("incoming_type", srcField->ToString(true)); return TConclusionStatus::Fail("incompatible column types"); @@ -286,13 +283,13 @@ TConclusion> AdaptIncomingToDestinationExtImpl(c const auto& dstField = dstSchema->GetFieldByIndexVerified(dstIndex); switch (differentColumnTypesPolicy) { case TColumnOperator::ECheckFieldTypesPolicy::Verify: - AFL_VERIFY(dstField->Equals(srcField))("event", "cannot_use_incoming_batch")("reason", "invalid_column_type")( + AFL_VERIFY(dstField->type()->Equals(srcField->type()))("event", "cannot_use_incoming_batch")("reason", "invalid_column_type")( "dst_column", dstField->ToString(true))("src_column", srcField->ToString(true)); break; case TColumnOperator::ECheckFieldTypesPolicy::Error: - if (!dstField->Equals(srcField)) { + if (!dstField->type()->Equals(srcField->type())) { AFL_ERROR(NKikimrServices::ARROW_HELPER)("event", "cannot_use_incoming_batch")("reason", "invalid_column_type")( - "dst_column", dstField->ToString(true))("src_column", srcField->ToString(true)); + "dst_column", dstField->type()->ToString())("src_column", srcField->type()->ToString())("name", srcField->name()); return TConclusionStatus::Fail("incompatible column types for '" + dstField->name() + "'"); } break;