arrow2 0.7.1

Unofficial implementation of Apache Arrow spec in safe Rust
Documentation
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
# Changelog

## [v0.7.1]https://github.com/jorgecarleitao/arrow2/tree/v0.7.1 (2022-03-04)

[Full Changelog](https://github.com/jorgecarleitao/arrow2/compare/v0.7.0...v0.7.1)

**Fixed bugs:**

- Fixed unsoundness in invalid derived Clone

## [v0.7.0]https://github.com/jorgecarleitao/arrow2/tree/v0.7.0 (2021-10-29)

[Full Changelog](https://github.com/jorgecarleitao/arrow2/compare/v0.6.2...v0.7.0)

**Breaking changes:**

- Simplified reading parquet [\#532]https://github.com/jorgecarleitao/arrow2/pull/532 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Change IPC `FileReader` to own the underlying reader [\#518]https://github.com/jorgecarleitao/arrow2/pull/518 ([blakesmith]https://github.com/blakesmith)
- Migrate to `arrow_format` crate [\#517]https://github.com/jorgecarleitao/arrow2/pull/517 ([jorgecarleitao]https://github.com/jorgecarleitao)

**New features:**

- Added read of 2-level nested lists from parquet [\#548]https://github.com/jorgecarleitao/arrow2/pull/548 ([jorgecarleitao]https://github.com/jorgecarleitao)
- add dictionary serialization for csv-writer [\#515]https://github.com/jorgecarleitao/arrow2/pull/515 ([ritchie46]https://github.com/ritchie46)
- Added `checked_negate` and `wrapping_negate` for `PrimitiveArray` [\#506]https://github.com/jorgecarleitao/arrow2/pull/506 ([yjhmelody]https://github.com/yjhmelody)

**Fixed bugs:**

- Fixed error in reading fixed len binary from parquet [\#549]https://github.com/jorgecarleitao/arrow2/pull/549 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Fixed ffi of sliced arrays [\#540]https://github.com/jorgecarleitao/arrow2/pull/540 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Fixed s3 example [\#536]https://github.com/jorgecarleitao/arrow2/pull/536 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Fixed error in writing compressed parquet dict pages [\#523]https://github.com/jorgecarleitao/arrow2/pull/523 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Validity taken into account when writing `StructArray` to json [\#511]https://github.com/jorgecarleitao/arrow2/pull/511 ([VasanthakumarV]https://github.com/VasanthakumarV)

**Enhancements:**

- Bumped Prost and Tonic [\#550]https://github.com/jorgecarleitao/arrow2/pull/550 ([PsiACE]https://github.com/PsiACE)
- Speedup scalar boolean operations [\#546]https://github.com/jorgecarleitao/arrow2/pull/546 ([Dandandan]https://github.com/Dandandan)
- Added fast path for validating ASCII text \(~1.12-1.89x improvement on reading ASCII parquet data\) [\#542]https://github.com/jorgecarleitao/arrow2/pull/542 ([Dandandan]https://github.com/Dandandan)
- Exposed missing APIs to write parquet in parallel [\#539]https://github.com/jorgecarleitao/arrow2/pull/539 ([jorgecarleitao]https://github.com/jorgecarleitao)
- improve utf8 init validity [\#530]https://github.com/jorgecarleitao/arrow2/pull/530 ([ritchie46]https://github.com/ritchie46)
- export missing `BinaryValueIter` [\#526]https://github.com/jorgecarleitao/arrow2/pull/526 ([yjhmelody]https://github.com/yjhmelody)

**Documentation updates:**

- Added more IPC documentation [\#534]https://github.com/jorgecarleitao/arrow2/pull/534 ([HagaiHargil]https://github.com/HagaiHargil)
- Fixed clippy and fmt [\#521]https://github.com/jorgecarleitao/arrow2/pull/521 ([ritchie46]https://github.com/ritchie46)

**Testing updates:**

- Added more tests for `utf8` [\#543]https://github.com/jorgecarleitao/arrow2/pull/543 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Ignored RUSTSEC-2020-0071 and RUSTSEC-2020-0159 [\#537]https://github.com/jorgecarleitao/arrow2/pull/537 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improved parquet read benches [\#533]https://github.com/jorgecarleitao/arrow2/pull/533 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added fmt and clippy checks to CI. [\#522]https://github.com/jorgecarleitao/arrow2/pull/522 ([xudong963]https://github.com/xudong963)

## [v0.6.2]https://github.com/jorgecarleitao/arrow2/tree/v0.6.2 (2021-10-09)

[Full Changelog](https://github.com/jorgecarleitao/arrow2/compare/v0.6.1...v0.6.2)

**New features:**

- Added wrapping version arithmetics for `PrimitiveArray` [\#496]https://github.com/jorgecarleitao/arrow2/pull/496 ([yjhmelody]https://github.com/yjhmelody)

**Fixed bugs:**

- Do not check offsets or utf8 validity in ffi \(\#505\) [\#510]https://github.com/jorgecarleitao/arrow2/pull/510 ([NilsBarlaug]https://github.com/NilsBarlaug)
- Made `try_push_valid` public again [\#509]https://github.com/jorgecarleitao/arrow2/pull/509 ([ritchie46]https://github.com/ritchie46)

**Enhancements:**

- Use static-typed equal functions directly [\#507]https://github.com/jorgecarleitao/arrow2/pull/507 ([yjhmelody]https://github.com/yjhmelody)

## [v0.6.1]https://github.com/jorgecarleitao/arrow2/tree/v0.6.1 (2021-10-07)

[Full Changelog](https://github.com/jorgecarleitao/arrow2/compare/v0.5.3...v0.6.1)

**Breaking changes:**

- Bring `MutableFixedSizeListArray` to the spec used by the rest of the Mutable API [\#475]https://github.com/jorgecarleitao/arrow2/issues/475
- Removed `ALIGNMENT` invariant from `[Mutable]Buffer` [\#449]https://github.com/jorgecarleitao/arrow2/issues/449
- Un-nested `compute::arithemtics::basic` [\#461]https://github.com/jorgecarleitao/arrow2/pull/461 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added more serialization options for csv writer. [\#453]https://github.com/jorgecarleitao/arrow2/pull/453 ([ritchie46]https://github.com/ritchie46)
- Changed validity from `&Option<Bitmap>` to `Option<&Bitmap>`. [\#431]https://github.com/jorgecarleitao/arrow2/pull/431 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Bumped parquet2 [\#422]https://github.com/jorgecarleitao/arrow2/pull/422 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Changed IPC `FileWriter` to own the `writer`. [\#420]https://github.com/jorgecarleitao/arrow2/pull/420 ([yjshen]https://github.com/yjshen)
- Made `DynComparator` `Send+Sync` [\#414]https://github.com/jorgecarleitao/arrow2/pull/414 ([yjshen]https://github.com/yjshen)

**New features:**

- Read Decimal from Parquet File [\#444]https://github.com/jorgecarleitao/arrow2/issues/444
- Add IO read for Avro [\#401]https://github.com/jorgecarleitao/arrow2/issues/401
- Added support to read Avro logical types, `List`,`Enum`, `Duration` and `Fixed`. [\#493]https://github.com/jorgecarleitao/arrow2/pull/493 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added read `Decimal` from parquet [\#489]https://github.com/jorgecarleitao/arrow2/pull/489 ([potter420]https://github.com/potter420)
- Implement `BitXor` trait for `Bitmap` [\#485]https://github.com/jorgecarleitao/arrow2/pull/485 ([houqp]https://github.com/houqp)
- Added `extend`/`extend_unchecked` for `MutableBooleanArray` [\#478]https://github.com/jorgecarleitao/arrow2/pull/478 ([VasanthakumarV]https://github.com/VasanthakumarV)
- expose `shrink_to_fit` to mutable arrays [\#467]https://github.com/jorgecarleitao/arrow2/pull/467 ([ritchie46]https://github.com/ritchie46)
- Added support for `DataType::Map` and `MapArray` [\#464]https://github.com/jorgecarleitao/arrow2/pull/464 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Extract parts of datetime [\#433]https://github.com/jorgecarleitao/arrow2/pull/433 ([VasanthakumarV]https://github.com/VasanthakumarV)
- Added support to add an interval to a timestamp [\#417]https://github.com/jorgecarleitao/arrow2/pull/417 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added support to read Avro. [\#406]https://github.com/jorgecarleitao/arrow2/pull/406 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Replaced own allocator by `std::Vec`. [\#385]https://github.com/jorgecarleitao/arrow2/pull/385 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Fixed bugs:**

- crash in parquet read [\#459]https://github.com/jorgecarleitao/arrow2/issues/459
- Made writing stream to parquet require a non-static lifetime [\#471]https://github.com/jorgecarleitao/arrow2/pull/471 ([GrandChaman]https://github.com/GrandChaman)
- Made importing from FFI `unsafe` [\#458]https://github.com/jorgecarleitao/arrow2/pull/458 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Fixed panic in division using nulls. [\#438]https://github.com/jorgecarleitao/arrow2/pull/438 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Fixed error writing dictionary extension to IPC [\#397]https://github.com/jorgecarleitao/arrow2/pull/397 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Fixed error in extending `MutableBitmap` [\#393]https://github.com/jorgecarleitao/arrow2/pull/393 ([jorgecarleitao]https://github.com/jorgecarleitao)


**Enhancements:**

- Some `compare` function are not exported [\#349]https://github.com/jorgecarleitao/arrow2/issues/349
- Investigate how to add support for timezones in timestamp [\#23]https://github.com/jorgecarleitao/arrow2/issues/23
- Made `hash` work for extension type [\#487]https://github.com/jorgecarleitao/arrow2/pull/487 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added `extend`/`extend_unchecked` for `MutableBinaryArray` [\#486]https://github.com/jorgecarleitao/arrow2/pull/486 ([VasanthakumarV]https://github.com/VasanthakumarV)
- Improved inference and deserialization of CSV [\#483]https://github.com/jorgecarleitao/arrow2/pull/483 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added `GrowableFixedSizeList` and improved `MutableFixedSizeListArray` [\#470]https://github.com/jorgecarleitao/arrow2/pull/470 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added `MutableBitmap::shrink_to_fit` [\#468]https://github.com/jorgecarleitao/arrow2/pull/468 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added `MutableArray::as_box` [\#450]https://github.com/jorgecarleitao/arrow2/pull/450 ([sd2k]https://github.com/sd2k)
- Improved performance of sum aggregation via aligned loads \(-10%\) [\#445]https://github.com/jorgecarleitao/arrow2/pull/445 ([ritchie46]https://github.com/ritchie46)
- Removed `assert` from `MutableBuffer::set_len` [\#443]https://github.com/jorgecarleitao/arrow2/pull/443 ([ritchie46]https://github.com/ritchie46)
- Optimized `null_count` [\#442]https://github.com/jorgecarleitao/arrow2/pull/442 ([ritchie46]https://github.com/ritchie46)
- Improved performance of list iterator \(- 10-20%\) [\#441]https://github.com/jorgecarleitao/arrow2/pull/441 ([ritchie46]https://github.com/ritchie46)
- Improved performance of `PrimitiveGrowable` for nulls \(-10%\) [\#434]https://github.com/jorgecarleitao/arrow2/pull/434 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Allowed accessing validity without importing `Array` [\#432]https://github.com/jorgecarleitao/arrow2/pull/432 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Optimize hashing using `ahash` and `multiversion` \(-30%\) [\#428]https://github.com/jorgecarleitao/arrow2/pull/428 ([Dandandan]https://github.com/Dandandan)
- Improved performance of iterator of `Utf8Array` and `BinaryArray` \(3-4x\) [\#427]https://github.com/jorgecarleitao/arrow2/pull/427 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improved performance of utf8 validation of large strings via `simdutf8` \(-40%\) [\#426]https://github.com/jorgecarleitao/arrow2/pull/426 ([Dandandan]https://github.com/Dandandan)
- Added reading of parquet required dictionary-encoded binary. [\#419]https://github.com/jorgecarleitao/arrow2/pull/419 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Add `extend`/`extend_unchecked` for `MutableUtf8Array` [\#413]https://github.com/jorgecarleitao/arrow2/pull/413 ([VasanthakumarV]https://github.com/VasanthakumarV)
- Added support to extract hours and years from timestamps with timezone [\#412]https://github.com/jorgecarleitao/arrow2/pull/412 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added `io_csv_read` and `io_csv_write` feature [\#408]https://github.com/jorgecarleitao/arrow2/pull/408 ([ritchie46]https://github.com/ritchie46)
- Improve `comparison` docs and re-export the array-comparing function [\#404]https://github.com/jorgecarleitao/arrow2/pull/404 ([HagaiHargil]https://github.com/HagaiHargil)
- Added support to read dict-encoded required primitive types from parquet [\#402]https://github.com/jorgecarleitao/arrow2/pull/402 ([Dandandan]https://github.com/Dandandan)
- Added `Array::with_validity` [\#399]https://github.com/jorgecarleitao/arrow2/pull/399 ([ritchie46]https://github.com/ritchie46)

**Documentation updates:**

- Improved documentation [\#491]https://github.com/jorgecarleitao/arrow2/pull/491 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added more API docs. [\#479]https://github.com/jorgecarleitao/arrow2/pull/479 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added more documentation [\#476]https://github.com/jorgecarleitao/arrow2/pull/476 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improved documentation [\#462]https://github.com/jorgecarleitao/arrow2/pull/462 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added example showing parallel writes to parquet \(x num\_cores\) [\#436]https://github.com/jorgecarleitao/arrow2/pull/436 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improved documentation [\#430]https://github.com/jorgecarleitao/arrow2/pull/430 ([jorgecarleitao]https://github.com/jorgecarleitao)
- \[0.5\] The docs `io` module has no submodules [\#390]https://github.com/jorgecarleitao/arrow2/issues/390
- Made docs be compiled with feature `full` [\#391]https://github.com/jorgecarleitao/arrow2/pull/391 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Testing updates:**

- DRY via macro. [\#477]https://github.com/jorgecarleitao/arrow2/pull/477 ([jorgecarleitao]https://github.com/jorgecarleitao)
- DRY of type check and len check code in `compute` [\#474]https://github.com/jorgecarleitao/arrow2/pull/474 ([yjhmelody]https://github.com/yjhmelody)
- Added property testing [\#460]https://github.com/jorgecarleitao/arrow2/pull/460 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added fmt to CI. [\#455]https://github.com/jorgecarleitao/arrow2/pull/455 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Simplified CI [\#452]https://github.com/jorgecarleitao/arrow2/pull/452 ([jorgecarleitao]https://github.com/jorgecarleitao)
- fix filter kernels bench [\#440]https://github.com/jorgecarleitao/arrow2/pull/440 ([ritchie46]https://github.com/ritchie46)
- Reduced number of combinations in feature tests. [\#429]https://github.com/jorgecarleitao/arrow2/pull/429 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Move tests from `src/compute/` to `tests/` [\#423]https://github.com/jorgecarleitao/arrow2/pull/423 ([VasanthakumarV]https://github.com/VasanthakumarV)
- Skipped some feature permutations. [\#411]https://github.com/jorgecarleitao/arrow2/pull/411 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added tests to some invariants of `unsafe` [\#403]https://github.com/jorgecarleitao/arrow2/pull/403 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added support to read and write extension types to and from parquet [\#396]https://github.com/jorgecarleitao/arrow2/pull/396 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Fix testing of SIMD [\#394]https://github.com/jorgecarleitao/arrow2/pull/394 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.5.3]https://github.com/jorgecarleitao/arrow2/tree/v0.5.3 (2021-09-14)

[Full Changelog](https://github.com/jorgecarleitao/arrow2/compare/v0.5.2...v0.5.3)

**New features:**

- Added support to read and write extension types to and from parquet [\#396]https://github.com/jorgecarleitao/arrow2/pull/396 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Fixed bugs:**

- Fixed error writing dictionary extension to IPC [\#397]https://github.com/jorgecarleitao/arrow2/pull/397 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Fixed error in extending `MutableBitmap` [\#393]https://github.com/jorgecarleitao/arrow2/pull/393 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Enhancements:**

- Added support to read dict-encoded required primitive types from parquet [\#402]https://github.com/jorgecarleitao/arrow2/pull/402 ([Dandandan]https://github.com/Dandandan)
- Added `Array::with_validity` [\#399]https://github.com/jorgecarleitao/arrow2/pull/399 ([ritchie46]https://github.com/ritchie46)

**Testing updates:**

- Fix testing of SIMD [\#394]https://github.com/jorgecarleitao/arrow2/pull/394 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.5.1]https://github.com/jorgecarleitao/arrow2/tree/v0.5.1 (2021-09-09)

[Full Changelog](https://github.com/jorgecarleitao/arrow2/compare/v0.5.0...v0.5.1)

**Documentation updates:**

- \[0.5\] The docs `io` module has no submodules [\#390]https://github.com/jorgecarleitao/arrow2/issues/390
- Made docs be compiled with feature `full` [\#391]https://github.com/jorgecarleitao/arrow2/pull/391 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.5.0]https://github.com/jorgecarleitao/arrow2/tree/v0.5.0 (2021-09-07)

[Full Changelog](https://github.com/jorgecarleitao/arrow2/compare/v0.4.0...v0.5.0)

**Breaking changes:**

- Added `Extension` to `DataType` [\#361]https://github.com/jorgecarleitao/arrow2/issues/361
- `MonthDayNano` added to enum `IntervalUnit` [\#360]https://github.com/jorgecarleitao/arrow2/issues/360
- Make `io::parquet::write::write_*` return size of file in bytes [\#354]https://github.com/jorgecarleitao/arrow2/issues/354
- Renamed `bitmap::utils::null_count` to `bitmap::utils::count_zeros` [\#342]https://github.com/jorgecarleitao/arrow2/issues/342
- Made `GroupFilter` optional in parquet's`RecordReader` and added method to set it. [\#386]https://github.com/jorgecarleitao/arrow2/pull/386 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Removed `PartialOrd` and `Ord` of all enums in `datatypes` [\#379]https://github.com/jorgecarleitao/arrow2/pull/379 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Made `cargo` features not default [\#369]https://github.com/jorgecarleitao/arrow2/pull/369 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Prepare APIs for extension types [\#357]https://github.com/jorgecarleitao/arrow2/pull/357 ([jorgecarleitao]https://github.com/jorgecarleitao)

**New features:**

- Added support for `async` parquet write [\#372]https://github.com/jorgecarleitao/arrow2/pull/372 ([GrandChaman]https://github.com/GrandChaman)
- Add support to extension types in FFI [\#363]https://github.com/jorgecarleitao/arrow2/pull/363 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added support for field's metadata via FFI [\#362]https://github.com/jorgecarleitao/arrow2/pull/362 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added support for `Extension` \(logical\) type [\#359]https://github.com/jorgecarleitao/arrow2/pull/359 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added support for compute to `BinaryArray` [\#346]https://github.com/jorgecarleitao/arrow2/pull/346 ([zhyass]https://github.com/zhyass)
- Added support for reading binary from CSV [\#337]https://github.com/jorgecarleitao/arrow2/pull/337 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added support for `MONTH_DAY_NANO` interval type [\#268]https://github.com/jorgecarleitao/arrow2/pull/268 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Fixed bugs:**

- Parquet read skips a few rows at the end of the page [\#373]https://github.com/jorgecarleitao/arrow2/issues/373
- `parquet_read` fails when a column has too many rows with string values [\#366]https://github.com/jorgecarleitao/arrow2/issues/366
- `parquet_read` panics with `index_out_of_bounds` [\#351]https://github.com/jorgecarleitao/arrow2/issues/351
- Fixed error in `MutableBitmap::push_unchecked` [\#384]https://github.com/jorgecarleitao/arrow2/pull/384 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Fixed display of timestamp with tz. [\#375]https://github.com/jorgecarleitao/arrow2/pull/375 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Enhancements:**

- Added `extend_*values` to `MutablePrimitiveArray` [\#383]https://github.com/jorgecarleitao/arrow2/pull/383 ([ritchie46]https://github.com/ritchie46)
- Improved performance of writing to CSV \(20-25%\) [\#382]https://github.com/jorgecarleitao/arrow2/pull/382 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Bumped `lexical-core` [\#378]https://github.com/jorgecarleitao/arrow2/pull/378 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Fixed casting of utf8 \<\> Timestamp with and without timezone [\#376]https://github.com/jorgecarleitao/arrow2/pull/376 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added `Send+Sync` to `MutableBuffer` [\#368]https://github.com/jorgecarleitao/arrow2/pull/368 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improved performance of unary \_not\_ for aligned bitmaps \(3x\) [\#365]https://github.com/jorgecarleitao/arrow2/pull/365 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Reduced dependencies within `num` [\#353]https://github.com/jorgecarleitao/arrow2/pull/353 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Bumped to parquet2 v0.4 [\#352]https://github.com/jorgecarleitao/arrow2/pull/352 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Bumped tonic and prost in flight [\#344]https://github.com/jorgecarleitao/arrow2/pull/344 ([PsiACE]https://github.com/PsiACE)
- Improved null count calculation \(5x\) [\#343]https://github.com/jorgecarleitao/arrow2/pull/343 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improved perf of deserializing integers from json \(30%\) [\#340]https://github.com/jorgecarleitao/arrow2/pull/340 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Simplified code of json schema inference [\#339]https://github.com/jorgecarleitao/arrow2/pull/339 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Documentation updates:**

- Moved guide examples to examples/ [\#387]https://github.com/jorgecarleitao/arrow2/pull/387 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added more docs. [\#358]https://github.com/jorgecarleitao/arrow2/pull/358 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improved API docs. [\#355]https://github.com/jorgecarleitao/arrow2/pull/355 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Testing updates:**

- Moved tests to `tests/` [\#389]https://github.com/jorgecarleitao/arrow2/pull/389 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Moved compute tests to tests/ [\#388]https://github.com/jorgecarleitao/arrow2/pull/388 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added more tests. [\#380]https://github.com/jorgecarleitao/arrow2/pull/380 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Pinned nightly in SIMD tests [\#364]https://github.com/jorgecarleitao/arrow2/pull/364 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improved benches for take [\#348]https://github.com/jorgecarleitao/arrow2/pull/348 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Made IPC integration tests run tests that are not run by arrow-rs [\#278]https://github.com/jorgecarleitao/arrow2/pull/278 ([jorgecarleitao]https://github.com/jorgecarleitao)

## [v0.4.0]https://github.com/jorgecarleitao/arrow2/tree/v0.4.0 (2021-08-24)

[Full Changelog](https://github.com/jorgecarleitao/arrow2/compare/v0.3.0...v0.4.0)

**Breaking changes:**

- Change dictionary iterator of values from `Array`s of one element to `Scalar`s [\#335]https://github.com/jorgecarleitao/arrow2/issues/335
- Align FFI API with arrow's C++ API [\#328]https://github.com/jorgecarleitao/arrow2/issues/328
- Make `*_compare_scalar` not return `Result` [\#316]https://github.com/jorgecarleitao/arrow2/issues/316
- Make `io::print`, `get_value_display` and `get_display` not return `Result` [\#286]https://github.com/jorgecarleitao/arrow2/issues/286
- Add `MetadataVersion` to IPC interfaces [\#282]https://github.com/jorgecarleitao/arrow2/issues/282
- Change `DataType::Union` to enable round trips in IPC [\#281]https://github.com/jorgecarleitao/arrow2/issues/281
- Removed clone requirement in `StructArray -> RecordBatch` [\#307]https://github.com/jorgecarleitao/arrow2/pull/307 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Fixed error in reading a non-finished IPC stream. [\#302]https://github.com/jorgecarleitao/arrow2/pull/302 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Generalized ZipIterator to accept a `BitmapIter` [\#296]https://github.com/jorgecarleitao/arrow2/pull/296 ([jorgecarleitao]https://github.com/jorgecarleitao)

**New features:**

- Added API to FFI `Field` [\#321]https://github.com/jorgecarleitao/arrow2/pull/321 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added `compare_scalar` [\#317]https://github.com/jorgecarleitao/arrow2/pull/317 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Add `UnionArray` [\#283]https://github.com/jorgecarleitao/arrow2/pull/283 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Fixed bugs:**

- SliceIterator of last bytes is not correct [\#292]https://github.com/jorgecarleitao/arrow2/issues/292
- Fixed error in displaying dictionaries with nulls in values [\#334]https://github.com/jorgecarleitao/arrow2/pull/334 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Fixed error in dict equality [\#333]https://github.com/jorgecarleitao/arrow2/pull/333 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Fixed small inconsistencies between `compute::cast` and `compute::can_cast` [\#295]https://github.com/jorgecarleitao/arrow2/pull/295 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Removed order implementation for `days_ms` / `Interval(DayTime)` [\#285]https://github.com/jorgecarleitao/arrow2/pull/285 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Enhancements:**

- Added support for remaining non-nested datatypes [\#336]https://github.com/jorgecarleitao/arrow2/pull/336 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Made `multiversion` and `lexical-core` optional [\#324]https://github.com/jorgecarleitao/arrow2/pull/324 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improved performance of utf8 comparison \(1.7x-4x\) [\#322]https://github.com/jorgecarleitao/arrow2/pull/322 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improved performance of boolean comparison \(5x-14x\) [\#318]https://github.com/jorgecarleitao/arrow2/pull/318 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added trait `TryPush` [\#314]https://github.com/jorgecarleitao/arrow2/pull/314 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added cast `date32 -> i64` and `date64 -> i32` [\#308]https://github.com/jorgecarleitao/arrow2/pull/308 ([ritchie46]https://github.com/ritchie46)
- Improved performance of comparison with SIMD feature flag \(2x-3.5x\) [\#305]https://github.com/jorgecarleitao/arrow2/pull/305 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added support to read json to `BinaryArray` [\#304]https://github.com/jorgecarleitao/arrow2/pull/304 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improved `MutableFixedSizeBinaryArray` [\#303]https://github.com/jorgecarleitao/arrow2/pull/303 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improved `MutablePrimitiveArray` and `MutableUtf8Array` [\#299]https://github.com/jorgecarleitao/arrow2/pull/299 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improved `MutableBooleanArray` [\#297]https://github.com/jorgecarleitao/arrow2/pull/297 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improved performance of concatenating non-aligned validities \(15x\) [\#291]https://github.com/jorgecarleitao/arrow2/pull/291 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added support for timestamps with tz and interval to `io::print::write` [\#287]https://github.com/jorgecarleitao/arrow2/pull/287 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improved debug repr of buffers and bitmaps. [\#284]https://github.com/jorgecarleitao/arrow2/pull/284 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Cleaned up internals of json integration [\#280]https://github.com/jorgecarleitao/arrow2/pull/280 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Removed `serde_derive` dependency [\#279]https://github.com/jorgecarleitao/arrow2/pull/279 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Simplified IPC code. [\#277]https://github.com/jorgecarleitao/arrow2/pull/277 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Reduced dependencies from confi-table and enabled `wasm` on `io_print` feature. [\#276]https://github.com/jorgecarleitao/arrow2/pull/276 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improve performance of `rem_scalar/div_scalar` for integer types \(4x-10x\) [\#275]https://github.com/jorgecarleitao/arrow2/pull/275 ([ritchie46]https://github.com/ritchie46)

**Documentation updates:**

- Cleaned examples and docs from old API. [\#330]https://github.com/jorgecarleitao/arrow2/pull/330 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Improved documentation [\#306]https://github.com/jorgecarleitao/arrow2/pull/306 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Testing updates:**

- Improved naming of testing workflows [\#315]https://github.com/jorgecarleitao/arrow2/pull/315 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added tests to scalar API [\#300]https://github.com/jorgecarleitao/arrow2/pull/300 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Made CSV and JSON tests not use files. [\#290]https://github.com/jorgecarleitao/arrow2/pull/290 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Moved tests to integration tests [\#289]https://github.com/jorgecarleitao/arrow2/pull/289 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Closed issues:**

- Make parquet\_read\_record support async [\#331]https://github.com/jorgecarleitao/arrow2/issues/331
- Panic due to SIMD comparison [\#312]https://github.com/jorgecarleitao/arrow2/issues/312
- Bitmap::mutable line 155 may Panic/segfault [\#309]https://github.com/jorgecarleitao/arrow2/issues/309
- IPC's `StreamReader` may abort due to excessive memory by overflowing a `usize`d variable [\#301]https://github.com/jorgecarleitao/arrow2/issues/301
- Improve performance of `rem_scalar/div_scalar` for integer types \(4x-10x\) [\#259]https://github.com/jorgecarleitao/arrow2/issues/259

## [v0.3.0]https://github.com/jorgecarleitao/arrow2/tree/v0.3.0 (2021-08-11)

[Full Changelog](https://github.com/jorgecarleitao/arrow2/compare/v0.2.0...v0.3.0)

**Breaking changes:**

- Renamed `sum` to `sum_primitive` [\#273]https://github.com/jorgecarleitao/arrow2/issues/273
- Moved trait `Index` from `array::Index` to `types::Index` [\#272]https://github.com/jorgecarleitao/arrow2/issues/272
- Added optional `projection` to IPC FileReader [\#271]https://github.com/jorgecarleitao/arrow2/issues/271
- Added optional `page_filter` to parquet's `RecordReader` and `get_page_iterator` [\#270]https://github.com/jorgecarleitao/arrow2/issues/270
- Renamed parquets' `CompressionCodec` to `Compression` [\#269]https://github.com/jorgecarleitao/arrow2/issues/269

**New features:**

- Added support for FFI of dictionary-encoded arrays [\#267]https://github.com/jorgecarleitao/arrow2/pull/267 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added support for projection pushdown on IPC files [\#264]https://github.com/jorgecarleitao/arrow2/pull/264 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added support to read parquet asynchronously [\#260]https://github.com/jorgecarleitao/arrow2/pull/260 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added support to filter parquet pages. [\#256]https://github.com/jorgecarleitao/arrow2/pull/256 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added wrapping\_cast to cast kernels [\#254]https://github.com/jorgecarleitao/arrow2/pull/254 ([sundy-li]https://github.com/sundy-li)
- Added support to parquet IO on wasm32 [\#239]https://github.com/jorgecarleitao/arrow2/pull/239 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added support to round-trip dictionary arrays on parquet [\#232]https://github.com/jorgecarleitao/arrow2/pull/232 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added Scalar API [\#56]https://github.com/jorgecarleitao/arrow2/pull/56 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Fixed bugs:**

- Fixed error in computing remainder of chunk iterator [\#262]https://github.com/jorgecarleitao/arrow2/pull/262 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Fixed error in slicing bitmap. [\#250]https://github.com/jorgecarleitao/arrow2/pull/250 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Enhancements:**

- Improve the performance in cast kernel using AsPrimitive trait in generic dispatch [\#252]https://github.com/jorgecarleitao/arrow2/issues/252
- Poor performance in `sort::sort_to_indices`  with limit option in arrow2 [\#245]https://github.com/jorgecarleitao/arrow2/issues/245
- Support loading Feather v2 \(IPC\) files with more than 1 million tables [\#231]https://github.com/jorgecarleitao/arrow2/issues/231
- Migrated to parquet2 v0.3 [\#265]https://github.com/jorgecarleitao/arrow2/pull/265 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added more tests to cast and min/max [\#253]https://github.com/jorgecarleitao/arrow2/pull/253 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Prettytable is unmaintained. Change to comfy-table [\#251]https://github.com/jorgecarleitao/arrow2/pull/251 ([PsiACE]https://github.com/PsiACE)
- Added IndexRange to remove checks in hot loops [\#247]https://github.com/jorgecarleitao/arrow2/pull/247 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Make merge\_sort\_slices MergeSortSlices public [\#243]https://github.com/jorgecarleitao/arrow2/pull/243 ([sundy-li]https://github.com/sundy-li)

**Documentation updates:**

- Added example and guide section on compute [\#242]https://github.com/jorgecarleitao/arrow2/pull/242 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Closed issues:**

- Allow projection pushdown to IPC files [\#261]https://github.com/jorgecarleitao/arrow2/issues/261
- Add support to write dictionary-encoded pages [\#211]https://github.com/jorgecarleitao/arrow2/issues/211
- Make IpcWriteOptions easier to find. [\#120]https://github.com/jorgecarleitao/arrow2/issues/120

## [v0.2.0]https://github.com/jorgecarleitao/arrow2/tree/v0.2.0 (2021-07-30)

[Full Changelog](https://github.com/jorgecarleitao/arrow2/compare/v0.1.0...v0.2.0)

**Breaking changes:**

- Simplified `new` signature of growable API [\#238]https://github.com/jorgecarleitao/arrow2/pull/238 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Add support to merge sort with a limit [\#222]https://github.com/jorgecarleitao/arrow2/pull/222 ([sundy-li]https://github.com/sundy-li)
- Generalized sort to accept indices other than i32. [\#220]https://github.com/jorgecarleitao/arrow2/pull/220 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added support for limited sort [\#218]https://github.com/jorgecarleitao/arrow2/pull/218 ([jorgecarleitao]https://github.com/jorgecarleitao)

**New features:**

- Merge sort support limit option [\#221]https://github.com/jorgecarleitao/arrow2/issues/221
- Introduce limit option to sort [\#215]https://github.com/jorgecarleitao/arrow2/issues/215
- Added support for take of interval of days\_ms [\#219]https://github.com/jorgecarleitao/arrow2/pull/219 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Added FFI for remaining types [\#213]https://github.com/jorgecarleitao/arrow2/pull/213 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Fixed bugs:**

- Filter operation on sliced utf8 arrays are incorrect [\#233]https://github.com/jorgecarleitao/arrow2/issues/233
- Fixed error in slicing bitmap. [\#237]https://github.com/jorgecarleitao/arrow2/pull/237 ([jorgecarleitao]https://github.com/jorgecarleitao)
- Fixed nested FFI. [\#212]https://github.com/jorgecarleitao/arrow2/pull/212 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Enhancements:**

- Avoid materialization of indices in filter\_record\_batch for single arrays [\#234]https://github.com/jorgecarleitao/arrow2/issues/234
- Add integration tests for writing to parquet [\#80]https://github.com/jorgecarleitao/arrow2/issues/80
- Short-circuited boolean evaluation in GrowableList [\#228]https://github.com/jorgecarleitao/arrow2/pull/228 ([ritchie46]https://github.com/ritchie46)
- Add extra inlining to speed up take [\#226]https://github.com/jorgecarleitao/arrow2/pull/226 ([Dandandan]https://github.com/Dandandan)
- Removed un-needed `unsafe` [\#225]https://github.com/jorgecarleitao/arrow2/pull/225 ([jorgecarleitao]https://github.com/jorgecarleitao)

**Documentation updates:**

- Add documentation to guide [\#96]https://github.com/jorgecarleitao/arrow2/issues/96
- Add git submodule command to correct the test doc [\#223]https://github.com/jorgecarleitao/arrow2/pull/223 ([sundy-li]https://github.com/sundy-li)
- Added badges to README [\#216]https://github.com/jorgecarleitao/arrow2/pull/216 ([sundy-li]https://github.com/sundy-li)
- Clarified differences with arrow crate [\#210]https://github.com/jorgecarleitao/arrow2/pull/210 ([alamb]https://github.com/alamb)
- Clarified differences with arrow crate [\#209]https://github.com/jorgecarleitao/arrow2/pull/209 ([alamb]https://github.com/alamb)



\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*