MCPcopy Create free account
hub / github.com/ByConity/ByConity / mixColumns

Function mixColumns

src/Processors/Transforms/AddingDefaultsTransform.cpp:120–146  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

118}
119
120static MutableColumnPtr mixColumns(const ColumnWithTypeAndName & col_read,
121 const ColumnWithTypeAndName & col_defaults,
122 const BlockMissingValues::RowsBitMask & defaults_mask)
123{
124 size_t column_size = col_read.column->size();
125 size_t defaults_needed = defaults_mask.size();
126
127 MutableColumnPtr column_mixed = col_read.column->cloneEmpty();
128
129 for (size_t i = 0; i < defaults_needed; ++i)
130 {
131 if (defaults_mask[i])
132 {
133 if (isColumnConst(*col_defaults.column))
134 column_mixed->insert((*col_defaults.column)[i]);
135 else
136 column_mixed->insertFrom(*col_defaults.column, i);
137 }
138 else
139 column_mixed->insertFrom(*col_read.column, i);
140 }
141
142 for (size_t i = defaults_needed; i < column_size; ++i)
143 column_mixed->insertFrom(*col_read.column, i);
144
145 return column_mixed;
146}
147
148
149AddingDefaultsTransform::AddingDefaultsTransform(

Callers 1

transformMethod · 0.85

Calls 5

isColumnConstFunction · 0.85
sizeMethod · 0.45
cloneEmptyMethod · 0.45
insertMethod · 0.45
insertFromMethod · 0.45

Tested by

no test coverage detected