Class AvroSupersetSchemaUtils


  • public class AvroSupersetSchemaUtils
    extends java.lang.Object
    • Method Detail

      • isSupersetSchema

        public static boolean isSupersetSchema​(org.apache.avro.Schema s1,
                                               org.apache.avro.Schema s2)
        Returns:
        True if {@param s1} is {@param s2}'s superset schema and false otherwise.
      • generateSuperSetSchema

        public static org.apache.avro.Schema generateSuperSetSchema​(org.apache.avro.Schema existingSchema,
                                                                    org.apache.avro.Schema newSchema)
        Generate super-set schema of two Schemas. If we have {A,B,C} and {A,B,D} it will generate {A,B,C,D}, where C/D could be nested record change as well eg, array/map of records, or record of records. Prerequisite: The top-level schema are of type RECORD only and each field have default values. ie they are compatible schemas and the generated schema will pick the default value from s1.
        Parameters:
        existingSchema - schema existing in the repo
        newSchema - schema to be added.
        Returns:
        super-set schema of existingSchema abd newSchema
      • validateSubsetValueSchema

        public static boolean validateSubsetValueSchema​(org.apache.avro.Schema subsetValueSchema,
                                                        java.lang.String supersetSchemaStr)