Impact Score: 5/10
dbt Core: dbt 0.5.4
Source available โ automated, not human-reviewed
Component: dbt-core ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-11-01.
โก Executive Summary (TL;DR)
dbt Core v0.5.4. Source highlight: added support for custom SQL data tests
Who Does This Impact? (Role-Based Analysis)
๐ป Software Engineers & Devs
Check the source notes against the package and APIs you use before upgrading.
๐ Product & Engineering Leads
Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.
โ๏ธ DevOps & Security
Verify the target version, runtime requirements and rollback procedure in the official documentation.
โจ New Features & Capabilities (1)
- added support for custom SQL data tests
๐ View Raw Release Notes (Original Developer Log)
### tl;dr
- added support for custom SQL data tests
- SQL returns 0 results --> pass
- SQL returns > 0 results --> fail
- dbt-core integration tests
- running in Continuous Integration environments
- windows ([appveyor](https://ci.appveyor.com/project/DrewBanin/dbt/branch/development))
- linux ([circle](https://circleci.com/gh/analyst-collective/dbt/tree/master))
- with [code coverage](https://circleci.com/api/v1/project/analyst-collective/dbt/latest/artifacts/0/$CIRCLE_ARTIFACTS/htmlcov/index.html?branch=development)
### Custom SQL data tests
Schema tests have proven to be an essential part of a modern analytical workflow. These schema tests validate basic constraints about your data. Namely: not null, unique, accepted value, and foreign key relationship properties can be asserted using schema tests.
With dbt v0.5.4, you can now write your own custom "data tests". These data tests are SQL SELECT statements that return 0 rows on success, or > 0 rows on failure. A typical data test might look like:
``` sql
-- tests/assert_less_than_5_pct_event_cookie_ids_are_null.sql
-- If >= 5% of cookie_ids are null, then the test returns 1 row (failure).
-- If < 5% of cookie_ids are null, then the test returns 0 rows (success)
with calc as (
select
sum(case when cookie_id is null then 1 else 0 end)::float / count(*)::float as fraction
from {{ ref('events') }}
)
select * from calc where fraction < 0.05
```
To enable data tests, add the `test-paths` config to your `dbt_project.yml` file:
``` yml
name: 'Vandelay Industries`
version: '1.0'
source-paths: ["models"]
target-path: "target"
test-paths: ["tests"] # look for *.sql files in the "tests" directory
....
```
Any `.sql` file found in the `test-paths` director(y|ies) will be evaluated as data tests. These tests can be run with:
``` bash
dbt test # run schema + data tests
dbt test --schema # run only schema tests
dbt test --data # run only data tests
dbt test --data --schema # run schema + data tests
# For more information, try
dbt test -h
```
### DBT-core integration tests
With the dbt 0.5.4 release, dbt now features a robust integration test suite. These integration tests will help mitigate the risk of software regressions, and in so doing, will help us develop dbt more quickly. You can check out the tests [here](https://github.com/analyst-collective/dbt/tree/development/test/integration), and the test results [here (linux/osx)](https://circleci.com/gh/analyst-collective/dbt/tree/master) and [here (windows)](https://ci.appveyor.com/project/DrewBanin/dbt/branch/development).
### The Future
You can check out the DBT roadmap [here](https://github.com/analyst-collective/dbt/milestones). In the next few weeks, we'll be working on [bugfixes](https://github.com/analyst-collective/dbt/milestone/11), [minor features](https://github.com/analyst-collective/dbt/milestone/15), [improved macro support](https://github.com/analyst-collective/dbt/milestone/14), and [expanded control over runtime materialization configs](https://github.com/analyst-collective/dbt/milestone/9).
As always, feel free to reach out to us on [Slack](http://ac-slackin.herokuapp.com/) with any questions or comments!