Search in sources :

Example 6 with Repetition

use of org.apache.parquet.schema.Type.Repetition in project parquet-mr by apache.

the class TestTypeBuildersWithLogicalTypes method testGroupTypeConstruction.

@Test
public void testGroupTypeConstruction() {
    PrimitiveType f1 = Types.required(BINARY).as(stringType()).named("f1");
    PrimitiveType f2 = Types.required(INT32).named("f2");
    PrimitiveType f3 = Types.optional(INT32).named("f3");
    String name = "group";
    for (Repetition repetition : Repetition.values()) {
        GroupType expected = new GroupType(repetition, name, f1, new GroupType(repetition, "g1", f2, f3));
        GroupType built = Types.buildGroup(repetition).addField(f1).group(repetition).addFields(f2, f3).named("g1").named(name);
        Assert.assertEquals(expected, built);
        switch(repetition) {
            case REQUIRED:
                built = Types.requiredGroup().addField(f1).requiredGroup().addFields(f2, f3).named("g1").named(name);
                break;
            case OPTIONAL:
                built = Types.optionalGroup().addField(f1).optionalGroup().addFields(f2, f3).named("g1").named(name);
                break;
            case REPEATED:
                built = Types.repeatedGroup().addField(f1).repeatedGroup().addFields(f2, f3).named("g1").named(name);
                break;
        }
        Assert.assertEquals(expected, built);
    }
}
Also used : Repetition(org.apache.parquet.schema.Type.Repetition) Test(org.junit.Test)

Example 7 with Repetition

use of org.apache.parquet.schema.Type.Repetition in project parquet-mr by apache.

the class TestTypeBuilders method testPrimitiveTypeConstruction.

@Test
public void testPrimitiveTypeConstruction() {
    PrimitiveTypeName[] types = new PrimitiveTypeName[] { BOOLEAN, INT32, INT64, INT96, FLOAT, DOUBLE, BINARY };
    for (PrimitiveTypeName type : types) {
        String name = type.toString() + "_";
        for (Type.Repetition repetition : Type.Repetition.values()) {
            PrimitiveType expected = new PrimitiveType(repetition, type, name);
            PrimitiveType built = Types.primitive(type, repetition).named(name);
            Assert.assertEquals(expected, built);
            switch(repetition) {
                case REQUIRED:
                    built = Types.required(type).named(name);
                    break;
                case OPTIONAL:
                    built = Types.optional(type).named(name);
                    break;
                case REPEATED:
                    built = Types.repeated(type).named(name);
                    break;
            }
            Assert.assertEquals(expected, built);
        }
    }
}
Also used : LogicalTypeAnnotation.timestampType(org.apache.parquet.schema.LogicalTypeAnnotation.timestampType) OriginalType(org.apache.parquet.schema.OriginalType) Repetition(org.apache.parquet.schema.Type.Repetition) PrimitiveTypeName(org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName) Test(org.junit.Test)

Example 8 with Repetition

use of org.apache.parquet.schema.Type.Repetition in project parquet-mr by apache.

the class TestTypeBuilders method testGroupTypeConstruction.

@Test
public void testGroupTypeConstruction() {
    PrimitiveType f1 = Types.required(BINARY).as(UTF8).named("f1");
    PrimitiveType f2 = Types.required(INT32).named("f2");
    PrimitiveType f3 = Types.optional(INT32).named("f3");
    String name = "group";
    for (Type.Repetition repetition : Type.Repetition.values()) {
        GroupType expected = new GroupType(repetition, name, f1, new GroupType(repetition, "g1", f2, f3));
        GroupType built = Types.buildGroup(repetition).addField(f1).group(repetition).addFields(f2, f3).named("g1").named(name);
        Assert.assertEquals(expected, built);
        switch(repetition) {
            case REQUIRED:
                built = Types.requiredGroup().addField(f1).requiredGroup().addFields(f2, f3).named("g1").named(name);
                break;
            case OPTIONAL:
                built = Types.optionalGroup().addField(f1).optionalGroup().addFields(f2, f3).named("g1").named(name);
                break;
            case REPEATED:
                built = Types.repeatedGroup().addField(f1).repeatedGroup().addFields(f2, f3).named("g1").named(name);
                break;
        }
        Assert.assertEquals(expected, built);
    }
}
Also used : LogicalTypeAnnotation.timestampType(org.apache.parquet.schema.LogicalTypeAnnotation.timestampType) OriginalType(org.apache.parquet.schema.OriginalType) Repetition(org.apache.parquet.schema.Type.Repetition) Test(org.junit.Test)

Example 9 with Repetition

use of org.apache.parquet.schema.Type.Repetition in project parquet-mr by apache.

the class TestTypeBuilders method testFixedTypeConstruction.

@Test
public void testFixedTypeConstruction() {
    String name = "fixed_";
    int len = 5;
    for (Type.Repetition repetition : Type.Repetition.values()) {
        PrimitiveType expected = new PrimitiveType(repetition, FIXED_LEN_BYTE_ARRAY, len, name);
        PrimitiveType built = Types.primitive(FIXED_LEN_BYTE_ARRAY, repetition).length(len).named(name);
        Assert.assertEquals(expected, built);
        switch(repetition) {
            case REQUIRED:
                built = Types.required(FIXED_LEN_BYTE_ARRAY).length(len).named(name);
                break;
            case OPTIONAL:
                built = Types.optional(FIXED_LEN_BYTE_ARRAY).length(len).named(name);
                break;
            case REPEATED:
                built = Types.repeated(FIXED_LEN_BYTE_ARRAY).length(len).named(name);
                break;
        }
        Assert.assertEquals(expected, built);
    }
}
Also used : LogicalTypeAnnotation.timestampType(org.apache.parquet.schema.LogicalTypeAnnotation.timestampType) OriginalType(org.apache.parquet.schema.OriginalType) Repetition(org.apache.parquet.schema.Type.Repetition) Test(org.junit.Test)

Aggregations

Repetition (org.apache.parquet.schema.Type.Repetition)9 OriginalType (org.apache.parquet.schema.OriginalType)7 PrimitiveTypeName (org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName)4 Test (org.junit.Test)4 LogicalTypeAnnotation.timestampType (org.apache.parquet.schema.LogicalTypeAnnotation.timestampType)3 PrimitiveType (org.apache.parquet.schema.PrimitiveType)3 MinorType (org.apache.drill.common.types.TypeProtos.MinorType)2 DecimalMetadata (org.apache.parquet.schema.DecimalMetadata)2 ColumnDescriptor (org.apache.parquet.column.ColumnDescriptor)1 GroupType (org.apache.parquet.schema.GroupType)1 MessageType (org.apache.parquet.schema.MessageType)1 Type (org.apache.parquet.schema.Type)1