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

Function GenerateTableMetaData

cpp/src/parquet/metadata_test.cc:36–80  ·  view source on GitHub ↗

Helper function for generating table metadata

Source from the content-addressed store, hash-verified

34
35// Helper function for generating table metadata
36std::unique_ptr<parquet::FileMetaData> GenerateTableMetaData(
37 const parquet::SchemaDescriptor& schema,
38 const std::shared_ptr<WriterProperties>& props, const int64_t& nrows,
39 EncodedStatistics stats_int, EncodedStatistics stats_float) {
40 auto f_builder = FileMetaDataBuilder::Make(&schema, props);
41 auto rg1_builder = f_builder->AppendRowGroup();
42 // Write the metadata
43 // rowgroup1 metadata
44 auto col1_builder = rg1_builder->NextColumnChunk();
45 auto col2_builder = rg1_builder->NextColumnChunk();
46 // column metadata
47 std::map<Encoding::type, int32_t> dict_encoding_stats({{Encoding::RLE_DICTIONARY, 1}});
48 std::map<Encoding::type, int32_t> data_encoding_stats(
49 {{Encoding::PLAIN, 1}, {Encoding::RLE, 1}});
50 stats_int.set_is_signed(true);
51 col1_builder->SetStatistics(stats_int);
52 stats_float.set_is_signed(true);
53 col2_builder->SetStatistics(stats_float);
54 col1_builder->Finish(nrows / 2, 4, 0, 10, 512, 600, true, false, dict_encoding_stats,
55 data_encoding_stats);
56 col2_builder->Finish(nrows / 2, 24, 0, 30, 512, 600, true, false, dict_encoding_stats,
57 data_encoding_stats);
58
59 rg1_builder->set_num_rows(nrows / 2);
60 rg1_builder->Finish(1024);
61
62 // rowgroup2 metadata
63 auto rg2_builder = f_builder->AppendRowGroup();
64 col1_builder = rg2_builder->NextColumnChunk();
65 col2_builder = rg2_builder->NextColumnChunk();
66 // column metadata
67 col1_builder->SetStatistics(stats_int);
68 col2_builder->SetStatistics(stats_float);
69 col1_builder->Finish(nrows / 2, /*dictionary_page_offset=*/0, 0, 10, 512, 600,
70 /*has_dictionary=*/false, false, dict_encoding_stats,
71 data_encoding_stats);
72 col2_builder->Finish(nrows / 2, 16, 0, 26, 512, 600, true, false, dict_encoding_stats,
73 data_encoding_stats);
74
75 rg2_builder->set_num_rows(nrows / 2);
76 rg2_builder->Finish(1024);
77
78 // Return the metadata accessor
79 return f_builder->Finish();
80}
81
82void AssertEncodings(const ColumnChunkMetaData& data,
83 const std::set<parquet::Encoding::type>& expected) {

Callers 1

TESTFunction · 0.85

Calls 6

MakeFunction · 0.70
AppendRowGroupMethod · 0.45
NextColumnChunkMethod · 0.45
SetStatisticsMethod · 0.45
FinishMethod · 0.45
set_num_rowsMethod · 0.45

Tested by

no test coverage detected