protected static boolean isCompatible()

in contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/avro/PigSchema2Avro.java [365:406]


    protected static boolean isCompatible(Schema avroSchema, ResourceFieldSchema pigSchema) {

        Schema.Type avroType = avroSchema.getType();
        byte pigType = pigSchema.getType();

        if (avroType.equals(Schema.Type.UNION)) {
            return true;
        } else if (pigType == DataType.TUPLE) {
            /* Tuple is compatible with any type; for users may want to
               get rid of the tuple wrapper */
            return true;
        }
        return  (avroType.equals(Schema.Type.ARRAY) && pigType == DataType.BAG)
                      || (avroType.equals(Schema.Type.MAP) && pigType == DataType.MAP)
                      || (avroType.equals(Schema.Type.STRING) 
                                                      && pigType == DataType.CHARARRAY 
                                                      || pigType == DataType.BIGCHARARRAY)
                      || (avroType.equals(Schema.Type.ENUM) 
                                                      && pigType == DataType.CHARARRAY)
                      || (avroType.equals(Schema.Type.BOOLEAN) 
                                                      && pigType == DataType.BOOLEAN 
                                                      || pigType == DataType.INTEGER)
                      || (avroType.equals(Schema.Type.BYTES) 
                                                      && pigType == DataType.BYTEARRAY)
                      || (avroType.equals(Schema.Type.DOUBLE) 
                                                      && pigType == DataType.DOUBLE
                                                      || pigType == DataType.FLOAT
                                                      || pigType == DataType.INTEGER 
                                                      || pigType == DataType.LONG)
                      || (avroType.equals(Schema.Type.FLOAT)
                                                      && pigType == DataType.FLOAT
                                                      || pigType == DataType.INTEGER 
                                                      || pigType == DataType.LONG)
                      || (avroType.equals(Schema.Type.FIXED) 
                                                      && pigType == DataType.BYTEARRAY)
                      || (avroType.equals(Schema.Type.INT) 
                                                      && pigType == DataType.INTEGER)
                      || (avroType.equals(Schema.Type.LONG)
                                                      && pigType == DataType.LONG 
                                                      || pigType == DataType.INTEGER);

    }