@@ -28,20 +28,20 @@ class ColumnLowCardinality final : public COWHelper<IColumnHelper<ColumnLowCardi
2828{
2929 friend class COWHelper <IColumnHelper<ColumnLowCardinality>, ColumnLowCardinality>;
3030
31- ColumnLowCardinality (MutableColumnPtr && column_unique, MutableColumnPtr && indexes, bool is_shared = false );
31+ ColumnLowCardinality (MutableColumnPtr && column_unique, MutableColumnPtr && indexes, bool is_shared);
3232 ColumnLowCardinality (const ColumnLowCardinality & other) = default ;
3333
3434public:
3535 /* * Create immutable column using immutable arguments. This arguments may be shared with other columns.
3636 * Use IColumn::mutate in order to make mutable column and mutate shared nested columns.
3737 */
3838 using Base = COWHelper<IColumnHelper<ColumnLowCardinality>, ColumnLowCardinality>;
39- static Ptr create (const ColumnPtr & column_unique_, const ColumnPtr & indexes_, bool is_shared = false )
39+ static Ptr create (const ColumnPtr & column_unique_, const ColumnPtr & indexes_, bool is_shared)
4040 {
4141 return ColumnLowCardinality::create (column_unique_->assumeMutable (), indexes_->assumeMutable (), is_shared);
4242 }
4343
44- static MutablePtr create (MutableColumnPtr && column_unique, MutableColumnPtr && indexes, bool is_shared = false )
44+ static MutablePtr create (MutableColumnPtr && column_unique, MutableColumnPtr && indexes, bool is_shared)
4545 {
4646 return Base::create (std::move (column_unique), std::move (indexes), is_shared);
4747 }
@@ -75,7 +75,7 @@ class ColumnLowCardinality final : public COWHelper<IColumnHelper<ColumnLowCardi
7575 bool isNullAt (size_t n) const override { return getDictionary ().isNullAt (getIndexes ().getUInt (n)); }
7676 ColumnPtr cut (size_t start, size_t length) const override
7777 {
78- return ColumnLowCardinality::create (dictionary.getColumnUniquePtr (), getIndexes ().cut (start, length));
78+ return ColumnLowCardinality::create (dictionary.getColumnUniquePtr (), getIndexes ().cut (start, length), isSharedDictionary () );
7979 }
8080
8181 void insert (const Field & x) override ;
@@ -123,7 +123,8 @@ class ColumnLowCardinality final : public COWHelper<IColumnHelper<ColumnLowCardi
123123
124124 ColumnPtr filter (const Filter & filt, ssize_t result_size_hint) const override
125125 {
126- return ColumnLowCardinality::create (dictionary.getColumnUniquePtr (), getIndexes ().filter (filt, result_size_hint));
126+ return ColumnLowCardinality::create (
127+ dictionary.getColumnUniquePtr (), getIndexes ().filter (filt, result_size_hint), isSharedDictionary ());
127128 }
128129
129130 void expand (const Filter & mask, bool inverted) override
@@ -133,12 +134,12 @@ class ColumnLowCardinality final : public COWHelper<IColumnHelper<ColumnLowCardi
133134
134135 ColumnPtr permute (const Permutation & perm, size_t limit) const override
135136 {
136- return ColumnLowCardinality::create (dictionary.getColumnUniquePtr (), getIndexes ().permute (perm, limit));
137+ return ColumnLowCardinality::create (dictionary.getColumnUniquePtr (), getIndexes ().permute (perm, limit), isSharedDictionary () );
137138 }
138139
139140 ColumnPtr index (const IColumn & indexes_, size_t limit) const override
140141 {
141- return ColumnLowCardinality::create (dictionary.getColumnUniquePtr (), getIndexes ().index (indexes_, limit));
142+ return ColumnLowCardinality::create (dictionary.getColumnUniquePtr (), getIndexes ().index (indexes_, limit), isSharedDictionary () );
142143 }
143144
144145#if !defined(DEBUG_OR_SANITIZER_BUILD)
@@ -167,7 +168,7 @@ class ColumnLowCardinality final : public COWHelper<IColumnHelper<ColumnLowCardi
167168
168169 ColumnPtr replicate (const Offsets & offsets) const override
169170 {
170- return ColumnLowCardinality::create (dictionary.getColumnUniquePtr (), getIndexes ().replicate (offsets));
171+ return ColumnLowCardinality::create (dictionary.getColumnUniquePtr (), getIndexes ().replicate (offsets), isSharedDictionary () );
171172 }
172173
173174 std::vector<MutableColumnPtr> scatter (ColumnIndex num_columns, const Selector & selector) const override ;
0 commit comments