Short answer: this is expected behavior. Elementary normalizes Snowflake/Postgres text types, so VARCHAR/CHARACTER VARYING (and NVARCHAR/STRING on Snowflake) are treated as the same “TEXT” family rather than comparing length or the exact warehouse-specific spelling. That’s why you see CHARACTER VARYING in the test output even if your contract shows VARCHAR(1024). On Snowflake, Elementary explicitly maps STRING, VARCHAR, and NVARCHAR to TEXT, so a change like VARCHAR(MAX) to VARCHAR(x) doesn’t flag by default. If you need stricter length/type enforcement, the knowledge sources don’t document support for that today (and Databricks/Spark aren’t supported for these schema tests). ([Schema changes from baseline](
https://docs.elementary-data.com/data-tests/schema-tests/schema-changes-from-baseline)). Related notes from prior discussions: - In Snowflake, VARCHAR vs TEXT are treated synonymously by Elementary; datatype changes like VARCHAR(MAX) → VARCHAR(x) aren’t flagged by default (support confirmed this behavior) ([Slack thread](
https://slack.com/archives/C02CTC89LAX/p1689814382480289)). - Historical issues where VARCHAR vs CHARACTER VARYING caused false “type changed” messages were addressed in later versions; ensure you’re on an updated Elementary package if you still see mismatches purely due to naming differences ([Slack thread](
https://slack.com/archives/C02CTC89LAX/p1679319966726349)). If your warehouse is Databricks/Spark, schema changes tests aren’t supported (except Databricks with Unity Catalog, per docs), which can also explain unexpected results ([Docs](
https://docs.elementary-data.com/data-tests/schema-tests/schema-changes-from-baseline), [Slack note](
https://slack.com/archives/C02CTC89LAX/p1695800200373959)).