The following schemas present various examples of schema matching. Some have matching schemas, while others do not.
/*fail due to name of symbol mismatch*/ SELECT SchemaMatch( '{ "type": "enum", "name": "Suit", "symbols" : ["SPADES", "HEARTS", "DIAMONDS", "CLUBS"] }' , '{ "type": "enum", "name": "Suits", "symbols" : ["SPADES", "HEARTS", "DIAMONDS", "CLUBS"] }');
Result:
> 0
/*fail due to structural mismatch*/ SELECT SchemaMatch( '{ "type": "enum", "name": "Suit", "symbols" : ["SPADES", "HEARTS", "DIAMONDS", "CLUBS"] }' , '{ "type" : "array", "items" : { "type": "record", "name": "test", "doc": "this is unique01", "fields" : [ {"name": "a", "type": "long"}, {"name": "b", "type": "string"} ] }}');
Result:
> 0
/*success - doc is ignored, ordering of names does not matter, long promotes to double, and int promotes to float*/ SELECT SchemaMatch( '{ "type" : "array", "items" : { "type": "record", "name": "test", "doc": "this is unique01", "fields" : [ {"name": "a", "type": "long"}, {"name": "b", "type": "int"} ] }}', '{ "type" : "array", "items" : { "type": "record", "name": "test", "doc": "this is unique02", "fields" : [ {"name": "b", "type": "float"}, {"name": "a", "type": "double"} ] }}');
Result:
> 1