MCPcopy Create free account
hub / github.com/apache/arrow / CheckFile

Method CheckFile

cpp/src/parquet/encryption/test_encryption_util.cc:378–519  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

376}
377
378void FileDecryptor::CheckFile(
379 parquet::ParquetFileReader* file_reader,
380 const std::shared_ptr<FileDecryptionProperties>& file_decryption_properties) {
381 // Get the File MetaData
382 std::shared_ptr<parquet::FileMetaData> file_metadata = file_reader->metadata();
383
384 // Get the number of RowGroups
385 int num_row_groups = file_metadata->num_row_groups();
386
387 // Get the number of Columns
388 int num_columns = file_metadata->num_columns();
389 ASSERT_EQ(num_columns, 8);
390
391 // Iterate over all the RowGroups in the file
392 for (int r = 0; r < num_row_groups; ++r) {
393 // Get the RowGroup Reader
394 std::shared_ptr<parquet::RowGroupReader> row_group_reader = file_reader->RowGroup(r);
395
396 // Get the RowGroupMetaData
397 std::unique_ptr<RowGroupMetaData> rg_metadata = file_metadata->RowGroup(r);
398
399 int rows_per_rowgroup = static_cast<int>(rg_metadata->num_rows());
400
401 int64_t values_read = 0;
402 int64_t rows_read = 0;
403 int16_t definition_level;
404 // int16_t repetition_level;
405 int i;
406 std::shared_ptr<parquet::ColumnReader> column_reader;
407
408 // Get the Column Reader for the boolean column
409 column_reader = row_group_reader->Column(0);
410 parquet::BoolReader* bool_reader =
411 static_cast<parquet::BoolReader*>(column_reader.get());
412
413 // Get the ColumnChunkMetaData for the boolean column
414 std::unique_ptr<ColumnChunkMetaData> boolean_md = rg_metadata->ColumnChunk(0);
415
416 // Read all the rows in the column
417 i = 0;
418 while (bool_reader->HasNext()) {
419 bool value;
420 // Read one value at a time. The number of rows read is returned. values_read
421 // contains the number of non-null rows
422 rows_read = bool_reader->ReadBatch(1, nullptr, nullptr, &value, &values_read);
423 // Ensure only one value is read
424 ASSERT_EQ(rows_read, 1);
425 // There are no NULL values in the rows written
426 ASSERT_EQ(values_read, 1);
427 // Verify the value written
428 bool expected_value = ((i % 2) == 0) ? true : false;
429 ASSERT_EQ(value, expected_value);
430 i++;
431 }
432 // make sure we got the same number of values the metadata says
433 ASSERT_EQ(boolean_md->num_values(), i);
434
435 ReadAndVerifyColumn<Int32Type>(row_group_reader.get(), rg_metadata.get(), 1,

Callers

nothing calls this directly

Calls 11

metadataMethod · 0.45
num_row_groupsMethod · 0.45
num_columnsMethod · 0.45
RowGroupMethod · 0.45
num_rowsMethod · 0.45
ColumnMethod · 0.45
getMethod · 0.45
ColumnChunkMethod · 0.45
HasNextMethod · 0.45
ReadBatchMethod · 0.45
num_valuesMethod · 0.45

Tested by

no test coverage detected