@Override boolean isValidColumnOrder(ColumnOrder columnOrder) { return columnOrder.getColumnOrderName() == UNDEFINED; } }
private static org.apache.parquet.schema.ColumnOrder fromParquetColumnOrder(ColumnOrder columnOrder) { if (columnOrder.isSetTYPE_ORDER()) { return org.apache.parquet.schema.ColumnOrder.typeDefined(); } // The column order is not yet supported by this API return org.apache.parquet.schema.ColumnOrder.undefined(); }
if (columnOrder.getColumnOrderName() == ColumnOrderName.TYPE_DEFINED_ORDER && (schemaElement.type == Type.INT96 || schemaElement.converted_type == ConvertedType.INTERVAL)) { columnOrder = org.apache.parquet.schema.ColumnOrder.undefined();
/** * {@inheritDoc} */ @Override protected boolean equals(Type other) { if (!other.isPrimitive()) { return false; } PrimitiveType otherPrimitive = other.asPrimitiveType(); return super.equals(other) && primitive == otherPrimitive.getPrimitiveTypeName() && length == otherPrimitive.length && columnOrder.equals(otherPrimitive.columnOrder) && eqOrBothNull(decimalMeta, otherPrimitive.decimalMeta); }
/** * {@inheritDoc} */ @Override public int hashCode() { int hash = super.hashCode(); hash = hash * 31 + primitive.hashCode(); hash = hash * 31 + length; hash = hash * 31 + columnOrder.hashCode(); if (decimalMeta != null) { hash = hash * 31 + decimalMeta.hashCode(); } return hash; }
if (columnOrder.getColumnOrderName() == ColumnOrderName.TYPE_DEFINED_ORDER && (schemaElement.type == Type.INT96 || schemaElement.converted_type == ConvertedType.INTERVAL)) { columnOrder = org.apache.parquet.schema.ColumnOrder.undefined();
/** * {@inheritDoc} */ @Override protected boolean equals(Type other) { if (!other.isPrimitive()) { return false; } PrimitiveType otherPrimitive = other.asPrimitiveType(); return super.equals(other) && primitive == otherPrimitive.getPrimitiveTypeName() && length == otherPrimitive.length && columnOrder.equals(otherPrimitive.columnOrder) && eqOrBothNull(decimalMeta, otherPrimitive.decimalMeta); }
/** * {@inheritDoc} */ @Override public int hashCode() { int hash = super.hashCode(); hash = hash * 31 + primitive.hashCode(); hash = hash * 31 + length; hash = hash * 31 + columnOrder.hashCode(); if (decimalMeta != null) { hash = hash * 31 + decimalMeta.hashCode(); } return hash; }
private static org.apache.parquet.schema.ColumnOrder fromParquetColumnOrder(ColumnOrder columnOrder) { if (columnOrder.isSetTYPE_ORDER()) { return org.apache.parquet.schema.ColumnOrder.typeDefined(); } // The column order is not yet supported by this API return org.apache.parquet.schema.ColumnOrder.undefined(); }
boolean isValidColumnOrder(ColumnOrder columnOrder) { return columnOrder.getColumnOrderName() == UNDEFINED || columnOrder.getColumnOrderName() == TYPE_DEFINED_ORDER; }
@Override protected Type union(Type toMerge, boolean strict) { if (!toMerge.isPrimitive()) { reportSchemaMergeError(toMerge); } if (strict) { // Can't merge primitive fields of different type names or different original types if (!primitive.equals(toMerge.asPrimitiveType().getPrimitiveTypeName()) || !Objects.equals(getLogicalTypeAnnotation(), toMerge.getLogicalTypeAnnotation())) { reportSchemaMergeError(toMerge); } // Can't merge FIXED_LEN_BYTE_ARRAY fields of different lengths int toMergeLength = toMerge.asPrimitiveType().getTypeLength(); if (primitive == PrimitiveTypeName.FIXED_LEN_BYTE_ARRAY && length != toMergeLength) { reportSchemaMergeError(toMerge); } // Can't merge primitive fields with different column orders if (!columnOrder().equals(toMerge.asPrimitiveType().columnOrder())) { reportSchemaMergeErrorWithColumnOrder(toMerge); } } Types.PrimitiveBuilder<PrimitiveType> builder = Types.primitive(primitive, toMerge.getRepetition()); if (PrimitiveTypeName.FIXED_LEN_BYTE_ARRAY == primitive) { builder.length(length); } return builder.as(getLogicalTypeAnnotation()).named(getName()); }
PrimitiveType(Repetition repetition, PrimitiveTypeName primitive, int length, String name, OriginalType originalType, DecimalMetadata decimalMeta, ID id, ColumnOrder columnOrder) { super(name, repetition, originalType, id); this.primitive = primitive; this.length = length; this.decimalMeta = decimalMeta; if (columnOrder == null) { columnOrder = primitive == PrimitiveTypeName.INT96 || originalType == OriginalType.INTERVAL ? ColumnOrder.undefined() : ColumnOrder.typeDefined(); } this.columnOrder = requireValidColumnOrder(columnOrder); }
private static boolean isMinMaxStatsSupported(PrimitiveType type) { return type.columnOrder().getColumnOrderName() == ColumnOrderName.TYPE_DEFINED_ORDER; }
@Override protected Type union(Type toMerge, boolean strict) { if (!toMerge.isPrimitive()) { reportSchemaMergeError(toMerge); } if (strict) { // Can't merge primitive fields of different type names or different original types if (!primitive.equals(toMerge.asPrimitiveType().getPrimitiveTypeName()) || getOriginalType() != toMerge.getOriginalType()) { reportSchemaMergeError(toMerge); } // Can't merge FIXED_LEN_BYTE_ARRAY fields of different lengths int toMergeLength = toMerge.asPrimitiveType().getTypeLength(); if (primitive == PrimitiveTypeName.FIXED_LEN_BYTE_ARRAY && length != toMergeLength) { reportSchemaMergeError(toMerge); } // Can't merge primitive fields with different column orders if (!columnOrder().equals(toMerge.asPrimitiveType().columnOrder())) { reportSchemaMergeErrorWithColumnOrder(toMerge); } } Types.PrimitiveBuilder<PrimitiveType> builder = Types.primitive(primitive, toMerge.getRepetition()); if (PrimitiveTypeName.FIXED_LEN_BYTE_ARRAY == primitive) { builder.length(length); } return builder.as(getOriginalType()).named(getName()); }
PrimitiveType(Repetition repetition, PrimitiveTypeName primitive, int length, String name, OriginalType originalType, DecimalMetadata decimalMeta, ID id, ColumnOrder columnOrder) { super(name, repetition, originalType, decimalMeta, id); this.primitive = primitive; this.length = length; this.decimalMeta = decimalMeta; if (columnOrder == null) { columnOrder = primitive == PrimitiveTypeName.INT96 || originalType == OriginalType.INTERVAL ? ColumnOrder.undefined() : ColumnOrder.typeDefined(); } this.columnOrder = requireValidColumnOrder(columnOrder); }
private static boolean isMinMaxStatsSupported(PrimitiveType type) { return type.columnOrder().getColumnOrderName() == ColumnOrderName.TYPE_DEFINED_ORDER; }
PrimitiveType(Repetition repetition, PrimitiveTypeName primitive, int length, String name, LogicalTypeAnnotation logicalTypeAnnotation, ID id, ColumnOrder columnOrder) { super(name, repetition, logicalTypeAnnotation, id); this.primitive = primitive; this.length = length; if (logicalTypeAnnotation instanceof LogicalTypeAnnotation.DecimalLogicalTypeAnnotation) { LogicalTypeAnnotation.DecimalLogicalTypeAnnotation decimal = (LogicalTypeAnnotation.DecimalLogicalTypeAnnotation) logicalTypeAnnotation; this.decimalMeta = new DecimalMetadata(decimal.getPrecision(), decimal.getScale()); } else { this.decimalMeta = null; } if (columnOrder == null) { columnOrder = primitive == PrimitiveTypeName.INT96 || logicalTypeAnnotation instanceof LogicalTypeAnnotation.IntervalLogicalTypeAnnotation ? ColumnOrder.undefined() : ColumnOrder.typeDefined(); } this.columnOrder = requireValidColumnOrder(columnOrder); }
private ColumnOrder requireValidColumnOrder(ColumnOrder columnOrder) { if (primitive == PrimitiveTypeName.INT96) { Preconditions.checkArgument(columnOrder.getColumnOrderName() == ColumnOrderName.UNDEFINED, "The column order {} is not supported by INT96", columnOrder); case INTERVAL: default: Preconditions.checkArgument(columnOrder.getColumnOrderName() == ColumnOrderName.UNDEFINED, "The column order {} is not supported by {} ({})", columnOrder, primitive, getOriginalType()); break;
private ColumnOrder requireValidColumnOrder(ColumnOrder columnOrder) { if (primitive == PrimitiveTypeName.INT96) { Preconditions.checkArgument(columnOrder.getColumnOrderName() == ColumnOrderName.UNDEFINED, "The column order {} is not supported by INT96", columnOrder); } if (getLogicalTypeAnnotation() != null) { Preconditions.checkArgument(getLogicalTypeAnnotation().isValidColumnOrder(columnOrder), "The column order {} is not supported by {} ({})", columnOrder, primitive, getLogicalTypeAnnotation()); } return columnOrder; }