starburstdata/dbt-trino

Adding a varbinary column to a DBT model results in addition of a varchar column

Opened this issue · 0 comments

Expected behavior

Given that an incremental model is configured as on_schema_change: add_new_columns
Add a new column of type varbinary to the existing model
DBT alters table by adding a new column of type varbinary
Incremental model build succeeds

Actual behavior

DBT alters table by adding a new column of type varchar(256)
Incremental model build fails as it tries to insert varbinary into a varchar column

Steps To Reproduce

{{ config(materialized=incremental, on_schema_change=add_new_columns) }}
SELECT 'TEST' as varchar
Build it once
then change schema
{{ config(materialized=incremental, on_schema_change=add_new_columns) }}
SELECT 'TEST' as first, CAST('SECOND' as varbinary) as second
Build Fails with TrinoUserError(type=USER_ERROR, name=TYPE_MISMATCH, message="Insert query has mismatched column types error

Trino treats varbinary as a string and returns data_type as varchar(256). Ideally It should have returned the dtype returned by adapter as it is. ( in this case varbinary)

Log output/Screenshots

Model

Operating System

Red Hat Enterprise Linux 9.4 (Plow)

dbt version

1.8

Trino Server version

385

Python version

3.10

Are you willing to submit PR?

  • Yes I am willing to submit a PR!