Repository navigation
dbt-plan v0.18.3 — identify column drops in empty-table macros
A bare star over one derived SELECT can now resolve when the inner query names
its output columns explicitly. Empty-table macros commonly generate this shape:
select * from (
select cast(1 as bigint) as book_id,
cast('sample' as varchar) as description
) as empty_table
where 1 = 0Removing description from an incremental sync_all_columns model now produces
a named DROP COLUMN finding instead of falling back to the manifest's declared
columns. Explicit casts also remain available for comparison within this query.
Upgrade
pip install --upgrade dbt-plan==0.18.3
# Optional MCP server:
pip install --upgrade 'dbt-plan[mcp]==0.18.3'Compatibility and limits
A previously review-level finding (exit 2) may become destructive (exit 1) when
the removed column is now known. Existing CLI policy, JSON fields, snapshot
layout and MCP transport retain their meaning.
Resolution is deliberately bounded. Qualified derived-table stars, joins,
source-column alias lists, inner CTE scopes, set operations, nested stars,
value-table SELECTs, pivots, column-expanding expressions and unsupported star
modifiers still require review. See analysis limits.
A local control on the public Elementary package at
e3ab23d8c2e3bd7ad455de8bb1d23bf7ee84e675 removed description from a shared
empty-table macro. The previous release returned two manifest-fallback warnings;
the patched analyzer identified description drops in dbt_models and
dbt_snapshots, while retaining a separate unresolved downstream warning.
The control used Core 1.11.14, dbt-duckdb 1.10.1 and SQLGlot 30.24.0. It was an
injected change, not a production incident, an accepted pilot or a warehouse
execution-safety guarantee.
The package release does not move the Marketplace v1 Action tag. An existing
pinned Action can install this package through version: '0.18.3'; its Action
reference and package version are separate pins.