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

Function MakeColumnStats

cpp/src/parquet/metadata.cc:138–168  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

136}
137
138std::shared_ptr<Statistics> MakeColumnStats(const format::ColumnMetaData& meta_data,
139 const ColumnDescriptor* descr,
140 ::arrow::MemoryPool* pool) {
141 auto metadata_type = LoadEnumSafe(&meta_data.type);
142 if (descr->physical_type() != metadata_type) {
143 throw ParquetException(
144 "ColumnMetaData type does not match ColumnDescriptor physical type: " +
145 TypeToString(metadata_type) + " vs. " + TypeToString(descr->physical_type()));
146 }
147 switch (metadata_type) {
148 case Type::BOOLEAN:
149 return MakeTypedColumnStats<BooleanType>(meta_data, descr, pool);
150 case Type::INT32:
151 return MakeTypedColumnStats<Int32Type>(meta_data, descr, pool);
152 case Type::INT64:
153 return MakeTypedColumnStats<Int64Type>(meta_data, descr, pool);
154 case Type::INT96:
155 return MakeTypedColumnStats<Int96Type>(meta_data, descr, pool);
156 case Type::DOUBLE:
157 return MakeTypedColumnStats<DoubleType>(meta_data, descr, pool);
158 case Type::FLOAT:
159 return MakeTypedColumnStats<FloatType>(meta_data, descr, pool);
160 case Type::BYTE_ARRAY:
161 return MakeTypedColumnStats<ByteArrayType>(meta_data, descr, pool);
162 case Type::FIXED_LEN_BYTE_ARRAY:
163 return MakeTypedColumnStats<FLBAType>(meta_data, descr, pool);
164 case Type::UNDEFINED:
165 break;
166 }
167 throw ParquetException("Can't decode page statistics for selected column type");
168}
169
170// Get KeyValueMetadata from parquet Thrift RowGroup or ColumnChunk metadata.
171//

Callers 1

statisticsMethod · 0.85

Calls 4

LoadEnumSafeFunction · 0.85
ParquetExceptionFunction · 0.85
TypeToStringFunction · 0.85
physical_typeMethod · 0.80

Tested by

no test coverage detected