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

Function mixColumns

src/Processors/Transforms/AddingDefaultsTransform.cpp:110–137  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

108}
109
110static MutableColumnPtr mixColumns(
111 const ColumnWithTypeAndName & col_read,
112 const ColumnWithTypeAndName & col_defaults,
113 const BlockMissingValues::RowsBitMask & defaults_mask)
114{
115 size_t column_size = col_read.column->size();
116 size_t defaults_needed = defaults_mask.size();
117
118 MutableColumnPtr column_mixed = col_read.column->cloneEmpty();
119
120 for (size_t i = 0; i < defaults_needed; ++i)
121 {
122 if (defaults_mask[i])
123 {
124 if (isColumnConst(*col_defaults.column))
125 column_mixed->insert((*col_defaults.column)[i]);
126 else
127 column_mixed->insertFrom(*col_defaults.column, i);
128 }
129 else
130 column_mixed->insertFrom(*col_read.column, i);
131 }
132
133 for (size_t i = defaults_needed; i < column_size; ++i)
134 column_mixed->insertFrom(*col_read.column, i);
135
136 return column_mixed;
137}
138
139
140AddingDefaultsTransform::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