dbt-labs / dbt-labs/dbt

[Feature] Seeds have no Iceberg/external-catalog awareness — always create a plain (non-Iceberg) table

Open
#15,833 0 comments 0 reactions 0 assignees View on GitHub
area:catalog-v2 engine:v2 proj:catalog-v2 seeds type:feature
Dominant language
Rust
Stars
13.8k
Forks
2.6k
Avg merge
21h 31m
Merged PRs (30d)
56

Description

## Current behavior

The seed materialization always calls `create_csv_table` (`dbt-snowflake/macros/materializations/seed.sql:8`, no Snowflake-specific override), which falls through to `default__create_csv_table` (`dbt-adapters/macros/materializations/seeds/helpers.sql:8-28`). That macro has no reference to `iceberg`, `table_format`, or `catalog_relation` — it always issues a plain `CREATE TABLE`, never `CREATE ICEBERG TABLE`, regardless of the seed's configured catalog/table_format.

On the Rust side, `quote_seed_column` (`dbt-adapter/src/adapter/adapter_impl.rs:2593-2619`) branches only on `AdapterType`, with no catalog-type or `is_iceberg` parameter — so seed column quoting doesn't get the lowercase/quote treatment that table/incremental materializations apply for catalogs like Glue.

## Impact

A seed configured with `+table_format: iceberg` (or targeting a catalog whose only table type is Iceberg) either silently lands as a native table instead of an Iceberg one, or fails/produces casing-inconsistent identifiers if downstream models expect it to be a proper Iceberg table in the external catalog.

## Expected behavior

Seeds should route through the same catalog-relation-aware create (and create+insert vs. CTAS, and casing) logic used by the `table` materialization, rather than an entirely separate, catalog-blind code path.

## Related

Depends on the capability-model sub-issue on this EPIC for the CTAS/casing decision; the Snowflake Glue casing pattern in `make_glue_compatible_relation` is the template to generalize from.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.