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

Function MakeColumnStats

cpp/src/parquet/metadata.cc:146–176  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

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