blob: f76886ec9806c9655e98ec2150e9aa437109a70e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
#include "null_column_converter.h"
#include <yt/yt/client/table_client/logical_type.h>
namespace NYT::NColumnConverters {
using namespace NTableClient;
////////////////////////////////////////////////////////////////////////////////
class TNullColumnWriterConverter
: public IColumnConverter
{
public:
TNullColumnWriterConverter(int columnIndex)
: ColumnIndex_(columnIndex)
{ }
TConvertedColumn Convert(TRange<TUnversionedRowValues> rowsValues) override
{
auto rowCount = rowsValues.size();
auto column = std::make_shared<TBatchColumn>();
column->Id = ColumnIndex_;
column->Type = SimpleLogicalType(ESimpleLogicalValueType::Null);
column->ValueCount = rowCount;
TOwningColumn owner = {
.Column = std::move(column),
};
return {{owner}, owner.Column.get()};
}
private:
const int ColumnIndex_;
};
////////////////////////////////////////////////////////////////////////////////
IColumnConverterPtr CreateNullConverter(int columnIndex)
{
return std::make_unique<TNullColumnWriterConverter>(columnIndex);
}
////////////////////////////////////////////////////////////////////////////////
} // namespace NYT::NColumnConverters
|