pitrou commented on code in PR #15182:
URL: https://github.com/apache/arrow/pull/15182#discussion_r1067185213
##########
cpp/src/parquet/reader_test.cc:
##########
@@ -1015,4 +1017,40 @@ INSTANTIATE_TEST_SUITE_P(Lz4CodecTests, TestCodec,
::testing::ValuesIn(test_code
testing::PrintToStringParamName());
#endif // ARROW_WITH_LZ4
+TEST(TestFileReader, TestOverflowI16) {
Review Comment:
```suggestion
TEST(TestFileReader, TestOverflowInt16PageOrdinal) {
```
##########
cpp/src/parquet/reader_test.cc:
##########
@@ -1015,4 +1017,40 @@ INSTANTIATE_TEST_SUITE_P(Lz4CodecTests, TestCodec,
::testing::ValuesIn(test_code
testing::PrintToStringParamName());
#endif // ARROW_WITH_LZ4
+TEST(TestFileReader, TestOverflowI16) {
+ ReaderProperties reader_props;
Review Comment:
Can you add a comment pointing to the GH issue number?
##########
cpp/src/parquet/reader_test.cc:
##########
@@ -1015,4 +1017,40 @@ INSTANTIATE_TEST_SUITE_P(Lz4CodecTests, TestCodec,
::testing::ValuesIn(test_code
testing::PrintToStringParamName());
#endif // ARROW_WITH_LZ4
+TEST(TestFileReader, TestOverflowI16) {
+ ReaderProperties reader_props;
+ auto file_reader = ParquetFileReader::OpenFile(overflow_i16_page_cnt(),
+ /*memory_map=*/false,
reader_props);
+ auto metadata_ptr = file_reader->metadata();
+ EXPECT_EQ(1, metadata_ptr->num_row_groups());
+ EXPECT_EQ(1, metadata_ptr->num_columns());
+ auto row_group = file_reader->RowGroup(0);
+
+ {
+ auto column_reader =
+
std::dynamic_pointer_cast<TypedColumnReader<BooleanType>>(row_group->Column(0));
+ EXPECT_NE(nullptr, column_reader);
+ std::array<bool, 1024> boolean_values{};
+ int64_t value_sum = 0;
+ while (value_sum < 40000) {
Review Comment:
Instead of hardcoding 40000 here, can you just read the column until the end?
##########
cpp/src/parquet/reader_test.cc:
##########
@@ -1015,4 +1017,40 @@ INSTANTIATE_TEST_SUITE_P(Lz4CodecTests, TestCodec,
::testing::ValuesIn(test_code
testing::PrintToStringParamName());
#endif // ARROW_WITH_LZ4
+TEST(TestFileReader, TestOverflowI16) {
+ ReaderProperties reader_props;
+ auto file_reader = ParquetFileReader::OpenFile(overflow_i16_page_cnt(),
+ /*memory_map=*/false,
reader_props);
+ auto metadata_ptr = file_reader->metadata();
+ EXPECT_EQ(1, metadata_ptr->num_row_groups());
+ EXPECT_EQ(1, metadata_ptr->num_columns());
+ auto row_group = file_reader->RowGroup(0);
+
+ {
+ auto column_reader =
+
std::dynamic_pointer_cast<TypedColumnReader<BooleanType>>(row_group->Column(0));
+ EXPECT_NE(nullptr, column_reader);
+ std::array<bool, 1024> boolean_values{};
+ int64_t value_sum = 0;
+ while (value_sum < 40000) {
+ int64_t value_num = 0;
+ column_reader->ReadBatch(/* batch_size= */ 1024, nullptr, nullptr,
Review Comment:
```suggestion
column_reader->ReadBatch(/*batch_size=*/ kBatchLength, nullptr,
nullptr,
```
##########
cpp/src/parquet/reader_test.cc:
##########
@@ -1015,4 +1017,40 @@ INSTANTIATE_TEST_SUITE_P(Lz4CodecTests, TestCodec,
::testing::ValuesIn(test_code
testing::PrintToStringParamName());
#endif // ARROW_WITH_LZ4
+TEST(TestFileReader, TestOverflowI16) {
+ ReaderProperties reader_props;
+ auto file_reader = ParquetFileReader::OpenFile(overflow_i16_page_cnt(),
+ /*memory_map=*/false,
reader_props);
+ auto metadata_ptr = file_reader->metadata();
+ EXPECT_EQ(1, metadata_ptr->num_row_groups());
+ EXPECT_EQ(1, metadata_ptr->num_columns());
+ auto row_group = file_reader->RowGroup(0);
+
+ {
+ auto column_reader =
+
std::dynamic_pointer_cast<TypedColumnReader<BooleanType>>(row_group->Column(0));
+ EXPECT_NE(nullptr, column_reader);
+ std::array<bool, 1024> boolean_values{};
Review Comment:
```suggestion
constexpr int kBatchLength = 1024;
std::array<bool, kBatchLength> boolean_values{};
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]