@@ -146,37 +146,40 @@ class DictionaryBuilderBase : public ArrayBuilder {
146146 !is_fixed_size_binary_type<T1>::value,
147147 const std::shared_ptr<DataType>&>
148148 value_type,
149- MemoryPool* pool = default_memory_pool())
150- : ArrayBuilder(pool),
149+ MemoryPool* pool = default_memory_pool(),
150+ int64_t alignment = kDefaultBufferAlignment )
151+ : ArrayBuilder(pool, alignment),
151152 memo_table_ (new internal::DictionaryMemoTable(pool, value_type)),
152153 delta_offset_(0 ),
153154 byte_width_(-1 ),
154- indices_builder_(start_int_size, pool),
155+ indices_builder_(start_int_size, pool, alignment ),
155156 value_type_(value_type) {}
156157
157158 template <typename T1 = T>
158159 explicit DictionaryBuilderBase (
159160 enable_if_t <!is_fixed_size_binary_type<T1>::value, const std::shared_ptr<DataType>&>
160161 value_type,
161- MemoryPool* pool = default_memory_pool())
162- : ArrayBuilder(pool),
162+ MemoryPool* pool = default_memory_pool(),
163+ int64_t alignment = kDefaultBufferAlignment)
164+ : ArrayBuilder(pool, alignment),
163165 memo_table_(new internal::DictionaryMemoTable(pool, value_type)),
164166 delta_offset_(0 ),
165167 byte_width_(-1 ),
166- indices_builder_(pool),
168+ indices_builder_(pool, alignment ),
167169 value_type_(value_type) {}
168170
169171 template <typename T1 = T>
170172 explicit DictionaryBuilderBase (
171173 const std::shared_ptr<DataType>& index_type,
172174 enable_if_t <!is_fixed_size_binary_type<T1>::value, const std::shared_ptr<DataType>&>
173175 value_type,
174- MemoryPool* pool = default_memory_pool())
175- : ArrayBuilder(pool),
176+ MemoryPool* pool = default_memory_pool(),
177+ int64_t alignment = kDefaultBufferAlignment)
178+ : ArrayBuilder(pool, alignment),
176179 memo_table_(new internal::DictionaryMemoTable(pool, value_type)),
177180 delta_offset_(0 ),
178181 byte_width_(-1 ),
179- indices_builder_(index_type, pool),
182+ indices_builder_(index_type, pool, alignment ),
180183 value_type_(value_type) {}
181184
182185 template <typename B = BuilderType, typename T1 = T>
@@ -185,35 +188,38 @@ class DictionaryBuilderBase : public ArrayBuilder {
185188 is_fixed_size_binary_type<T1>::value,
186189 const std::shared_ptr<DataType>&>
187190 value_type,
188- MemoryPool* pool = default_memory_pool())
189- : ArrayBuilder(pool),
191+ MemoryPool* pool = default_memory_pool(),
192+ int64_t alignment = kDefaultBufferAlignment)
193+ : ArrayBuilder(pool, alignment),
190194 memo_table_(new internal::DictionaryMemoTable(pool, value_type)),
191195 delta_offset_(0 ),
192196 byte_width_(static_cast <const T1&>(*value_type).byte_width()),
193- indices_builder_(start_int_size, pool),
197+ indices_builder_(start_int_size, pool, alignment ),
194198 value_type_(value_type) {}
195199
196200 template <typename T1 = T>
197201 explicit DictionaryBuilderBase (
198202 enable_if_fixed_size_binary<T1, const std::shared_ptr<DataType>&> value_type,
199- MemoryPool* pool = default_memory_pool())
200- : ArrayBuilder(pool),
203+ MemoryPool* pool = default_memory_pool(),
204+ int64_t alignment = kDefaultBufferAlignment)
205+ : ArrayBuilder(pool, alignment),
201206 memo_table_(new internal::DictionaryMemoTable(pool, value_type)),
202207 delta_offset_(0 ),
203208 byte_width_(static_cast <const T1&>(*value_type).byte_width()),
204- indices_builder_(pool),
209+ indices_builder_(pool, alignment ),
205210 value_type_(value_type) {}
206211
207212 template <typename T1 = T>
208213 explicit DictionaryBuilderBase (
209214 const std::shared_ptr<DataType>& index_type,
210215 enable_if_fixed_size_binary<T1, const std::shared_ptr<DataType>&> value_type,
211- MemoryPool* pool = default_memory_pool())
212- : ArrayBuilder(pool),
216+ MemoryPool* pool = default_memory_pool(),
217+ int64_t alignment = kDefaultBufferAlignment)
218+ : ArrayBuilder(pool, alignment),
213219 memo_table_(new internal::DictionaryMemoTable(pool, value_type)),
214220 delta_offset_(0 ),
215221 byte_width_(static_cast <const T1&>(*value_type).byte_width()),
216- indices_builder_(index_type, pool),
222+ indices_builder_(index_type, pool, alignment ),
217223 value_type_(value_type) {}
218224
219225 template <typename T1 = T>
@@ -223,12 +229,13 @@ class DictionaryBuilderBase : public ArrayBuilder {
223229
224230 // This constructor doesn't check for errors. Use InsertMemoValues instead.
225231 explicit DictionaryBuilderBase (const std::shared_ptr<Array>& dictionary,
226- MemoryPool* pool = default_memory_pool())
227- : ArrayBuilder(pool),
232+ MemoryPool* pool = default_memory_pool(),
233+ int64_t alignment = kDefaultBufferAlignment)
234+ : ArrayBuilder(pool, alignment),
228235 memo_table_(new internal::DictionaryMemoTable(pool, dictionary)),
229236 delta_offset_(0 ),
230237 byte_width_(-1 ),
231- indices_builder_(pool),
238+ indices_builder_(pool, alignment ),
232239 value_type_(dictionary->type ()) {}
233240
234241 ~DictionaryBuilderBase () override = default ;
0 commit comments