Currently, field names in StructuredRecord are case-sensitive. Due to this, we are sometimes at the mercy of external systems. For instance, Some JDBC drivers (e.g. org.netezza.Driver for Netezza) return all columns in upper case no matter how users created them. When we create StructuredRecord out of the ResultSetMetadata returned by these drivers, the fields are all upper cased, which can cause a mismatch with the declared schema of a StructuredRecord (e.g. in an ETL config json).
This causes validation errors with messages that are hard to debug (e.g. [field] not found in [StructuredRecord] even though the [field] is clearly present in the configuration that users supply, albeit with a mismatched case).