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]

Reply via email to