From b5c41840702aad61479a9cbd657e49259a5e2cc3 Mon Sep 17 00:00:00 2001 From: Max Drach Date: Tue, 14 Dec 2021 09:03:14 +0000 Subject: [PATCH] fixed MSB selector --- parquet_integration/write_parquet.py | 2 +- src/io/parquet/read/mod.rs | 2 +- tests/it/io/parquet/mod.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/parquet_integration/write_parquet.py b/parquet_integration/write_parquet.py index a7384182240..eb6a27e8c73 100644 --- a/parquet_integration/write_parquet.py +++ b/parquet_integration/write_parquet.py @@ -50,7 +50,7 @@ def case_basic_nullable(size=1): def case_basic_required(size=1): - int64 = [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8] + int64 = [-256, -1, 0, 1, 2, 3, 4, 5, 6, 7] uint32 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] float64 = [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0] string = ["Hello", "bbb", "aa", "", "bbb", "abc", "bbb", "bbb", "def", "aaa"] diff --git a/src/io/parquet/read/mod.rs b/src/io/parquet/read/mod.rs index 87f5cd57a6e..27d4e446b4f 100644 --- a/src/io/parquet/read/mod.rs +++ b/src/io/parquet/read/mod.rs @@ -287,7 +287,7 @@ fn page_iter_to_array> 7 == 1; + let msb_set = v1.first().unwrap_or(&0) >> 7 == 1; let padding = if msb_set { &ones_padding } else { diff --git a/tests/it/io/parquet/mod.rs b/tests/it/io/parquet/mod.rs index df15714aaeb..70771c3ad88 100644 --- a/tests/it/io/parquet/mod.rs +++ b/tests/it/io/parquet/mod.rs @@ -399,6 +399,7 @@ pub fn pyarrow_nullable_statistics(column: usize) -> Option> // these values match the values in `integration` pub fn pyarrow_required(column: usize) -> Box { let i64_values = &[ + Some(-256), Some(-1), Some(0), Some(1), @@ -408,7 +409,6 @@ pub fn pyarrow_required(column: usize) -> Box { Some(5), Some(6), Some(7), - Some(8), ]; match column {