Hi all,
Using dbt core, I’m currently trying to build models in which some columns are Snowflake should be objects/variants. However, when using “data_type: variant” and enforcing the contract, an error occurs and the model is not built. When the contract is not enforced, the model is built correctly. Is there any recommended data_type or approach for this kind of columns? I’ve tried to find a reference for the accepted data_type options in Snowflake, but I have failed to find it so far.
Some example code or error messages
schema.yml code
models:
- name: model_x
config:
materialized: table
contract:
enforce: true
columns:
- name: column_a
data_type: variant
- name: column_a.key_a
data_type: variant
Error message upon executing dbt build
Database Error in model model_x (models\model_x\model_x.sql)
001003 (42000): SQL compilation error:
syntax error line 111 at position 29 unexpected '.'.
syntax error line 113 at position 8 unexpected '('.
Note: non-exhaustive, as the rest of the error is a repetition of the syntax error lines mentioning unexpected ‘(’)