@@ -38,12 +38,20 @@ arrow::Datum NumericConverterImpl(NUdf::IArrayBuilder* builder, std::shared_ptr<
38
38
if (val.IsNull (i)) {
39
39
builder->Add (NUdf::TBlockItem{});
40
40
} else {
41
- builder->Add (NUdf::TBlockItem (val.Value (i)));
41
+ if constexpr (std::is_same_v<decltype (val.Value (i)), bool >) {
42
+ builder->Add (NUdf::TBlockItem ((ui8)val.Value (i)));
43
+ } else {
44
+ builder->Add (NUdf::TBlockItem (val.Value (i)));
45
+ }
42
46
}
43
47
}
44
48
} else {
45
49
for (i64 i = 0 ; i < block->length ; ++i) {
46
- builder->Add (NUdf::TBlockItem (val.Value (i)));
50
+ if constexpr (std::is_same_v<decltype (val.Value (i)), bool >) {
51
+ builder->Add (NUdf::TBlockItem ((ui8)val.Value (i)));
52
+ } else {
53
+ builder->Add (NUdf::TBlockItem (val.Value (i)));
54
+ }
47
55
}
48
56
}
49
57
return builder->Build (false );
@@ -56,12 +64,20 @@ arrow::Datum NumericConverterImpl(NUdf::IArrayBuilder* builder, std::shared_ptr<
56
64
if (dict.IsNull (i)) {
57
65
builder->Add (NUdf::TBlockItem{});
58
66
} else {
59
- builder->Add (NUdf::TBlockItem (val.Value (data[i])));
67
+ if constexpr (std::is_same_v<decltype (val.Value (data[i])), bool >) {
68
+ builder->Add (NUdf::TBlockItem ((ui8)val.Value (data[i])));
69
+ } else {
70
+ builder->Add (NUdf::TBlockItem (val.Value (data[i])));
71
+ }
60
72
}
61
73
}
62
74
} else {
63
75
for (i64 i = 0 ; i < block->length ; ++i) {
64
- builder->Add (NUdf::TBlockItem (val.Value (data[i])));
76
+ if constexpr (std::is_same_v<decltype (val.Value (data[i])), bool >) {
77
+ builder->Add (NUdf::TBlockItem ((ui8)val.Value (data[i])));
78
+ } else {
79
+ builder->Add (NUdf::TBlockItem (val.Value (data[i])));
80
+ }
65
81
}
66
82
}
67
83
return builder->Build (false );
@@ -402,6 +418,7 @@ class TPrimitiveColumnConverter {
402
418
public:
403
419
TPrimitiveColumnConverter (TYtColumnConverterSettings& settings) : Settings_(settings) {
404
420
switch (Settings_.ArrowType ->id ()) {
421
+ case arrow::Type::BOOL: PrimitiveConverterImpl_ = GEN_TYPE (Boolean ); break ;
405
422
case arrow::Type::INT8: PrimitiveConverterImpl_ = GEN_TYPE (Int8); break ;
406
423
case arrow::Type::UINT8: PrimitiveConverterImpl_ = GEN_TYPE (UInt8 ); break ;
407
424
case arrow::Type::INT16: PrimitiveConverterImpl_ = GEN_TYPE (Int16); break ;
0 commit comments