diff --git a/parquet-column/src/main/java/org/apache/parquet/schema/Types.java b/parquet-column/src/main/java/org/apache/parquet/schema/Types.java
index 2f12991ab0..82e4b96c8e 100644
--- a/parquet-column/src/main/java/org/apache/parquet/schema/Types.java
+++ b/parquet-column/src/main/java/org/apache/parquet/schema/Types.java
@@ -344,6 +344,9 @@ public abstract static class BasePrimitiveBuilder
parquetSchema = Lists.newArrayList(new SchemaElement("Message").setNum_children(1), leaf);
+ List columnOrders =
+ Lists.newArrayList(new org.apache.parquet.format.ColumnOrder());
+ columnOrders.get(0).setTYPE_ORDER(new TypeDefinedOrder());
+
+ MessageType schema = converter.fromParquetSchema(parquetSchema, columnOrders);
+
+ PrimitiveType result = schema.getType("bool_ts").asPrimitiveType();
+ assertThat(result.getPrimitiveTypeName()).isEqualTo(PrimitiveTypeName.BOOLEAN);
+ assertThat(result.getLogicalTypeAnnotation()).isNull();
+ assertThat(result.columnOrder().getColumnOrderName()).isEqualTo(ColumnOrder.ColumnOrderName.UNDEFINED);
+ }
+
+ private static PrimitiveType droppedAnnotationInt32() {
+ return Types.optional(PrimitiveTypeName.INT32)
+ .columnOrder(ColumnOrder.undefined())
+ .named("ts_int32");
+ }
+
+ @Test
+ public void testDroppedAnnotationIgnoresStats() {
+ ParquetMetadataConverter converter = new ParquetMetadataConverter();
+ org.apache.parquet.format.Statistics stats = new org.apache.parquet.format.Statistics();
+ stats.setMin_value(new byte[] {1, 2, 3, 4});
+ stats.setMax_value(new byte[] {0, 1, 2, 3});
+ stats.setNull_count(3L);
+
+ Statistics> result = converter.fromParquetStatistics(Version.FULL_VERSION, stats, droppedAnnotationInt32());
+
+ assertThat(result.hasNonNullValue()).isFalse();
+ assertThat(result.isNumNullsSet()).isTrue();
+ assertThat(result.getNumNulls()).isEqualTo(3L);
+ }
+
+ @Test
+ public void testDroppedAnnotationColumnIndexIsNull() {
+ PrimitiveType int32Type = Types.required(PrimitiveTypeName.INT32).named("i32");
+ ColumnIndexBuilder cb = ColumnIndexBuilder.getBuilder(int32Type, Integer.MAX_VALUE);
+ Statistics> stats = Statistics.createStats(int32Type);
+ stats.updateStats(-100);
+ stats.updateStats(100);
+ cb.add(stats, null);
+ org.apache.parquet.format.ColumnIndex parquetColumnIndex =
+ ParquetMetadataConverter.toParquetColumnIndex(int32Type, cb.build());
+
+ assertThat(ParquetMetadataConverter.fromParquetColumnIndex(droppedAnnotationInt32(), parquetColumnIndex))
+ .isNull();
+ }
}