- Added a new dbt_project.yml version format. This emits a deprecation warning currently, but support for the existing version will be removed in a future dbt version (#2300, #2312)
- The
graphobject available in some dbt contexts now has an additional membersources(along side the existingnodes). Sources have been removed fromnodesand added tosourcesinstead (#2312) - The 'location' field has been removed from bigquery catalogs (#2382)
- The
list_relations_without_caching,drop_schema, andcreate_schemamacros and methods now accept a single argument of a Relation object with no identifier field. (#2411)
- Add
--fail-fastargument for dbt run and dbt test to fail on first test failure or runtime error. (#1649, #2224) - Support for appending query comments to SQL queries. (#2138, #2199)
- Add a
get-manifestAPI call. (#2168, #2232) - Support adapter-specific aliases (like
projectanddataseton BigQuery) in source definitions. (#2133, #2244) - Users can now use jinja as arguments to tests. Test arguments are rendered in the native context and injected into the test execution context directly. (#2149, #2220)
- Users can supply paths as arguments to
--modelsand--select, either explicitily by prefixing withpath:or implicitly with no prefix. (#454, #2258) - dbt now builds the relation cache for "dbt compile" and "dbt ls" as well as "dbt run" (#1705, #2319)
- Add a 'depends_on' attribute to the log record extra field (#2316, #2341)
- Add a '--no-browser' argument to "dbt docs serve" so you can serve docs in an environment that only has a CLI browser which would otherwise deadlock dbt (#2004, #2364)
- Sources (and therefore freshness tests) can be enabled and disabled via dbt_project.yml (#2283, #2312, #2357)
- schema.yml files are now fully rendered in a context that is aware of vars declared in from dbt_project.yml files (#2269, #2357)
- Sources from dependencies can be overridden in schema.yml files (#2287, #2357)
- Add a filter named
as_textto the native environment rendering code that allows users to mark a value as always being a string (#2384, #2395) - Add warning to nodes selector if nothing was matched (#2115, #2343)
- Snowflake now uses "show terse objects" to build the relations cache instead of selecting from the information schema (#2174, #2322)
- Snowflake now uses "describe table" to get the columns in a relation (#2260, #2324)
- Snowflake now uses "describe table" to get the columns in a relation (#2260, #2324)
- Relation comments supported for Snowflake tables and views. Column comments supported for tables. (#1722, #2321)
- Suport column descriptions for BigQuery models (#2335, #2402)
- Add BigQuery option maximum_bytes_billed to set an upper limit for query costs (#2346, #2427)
- Added support for
db_groupsandautocreateflags in Redshift configurations. (#1995, #2262) - Implement persist_docs for both
relationandcommentson postgres and redshift, and extract them when getting the catalog. (#2333, #2378)
- When a jinja value is undefined, give a helpful error instead of failing with cryptic "cannot pickle ParserMacroCapture" errors (#2110, #2184)
- Added timeout to registry download call (#2195, #2228)
- When a macro is called with invalid arguments, include the calling model in the output (#2073, #2238)
- When a warn exception is not in a jinja do block, return an empty string instead of None (#2222, #2259)
- Add dbt plugin versions to --version(#2272, #2279)
- When a Redshift table is defined as "auto", don't provide diststyle (#2246, #2298)
- Made file names lookups case-insensitve (.sql, .SQL, .yml, .YML) and if .yaml files are found, raise a warning indicating dbt will parse these files in future releases. (#1681, #2263)
- Return error message when profile is empty in profiles.yml. (#2292, #2297)
- Fix skipped node count in stdout at the end of a run (#2095, #2310)
- Fix an issue where BigQuery incorrectly used a relation's quote policy as the basis for the information schema's include policy, instead of the relation's include policy. (#2188, #2325)
- Fix "dbt deps" command so it respects the "--project-dir" arg if specified. (#2338, #2339)
- On
run_cliAPI calls that are passed--varsdiffering from the server's--vars, the RPC server rebuilds the manifest for that call. (#2265, #2363) - Remove the query job SQL from bigquery exceptions (#2383, #2393)
- Fix "Object of type Decimal is not JSON serializable" error when BigQuery queries returned numeric types in nested data structures (#2336, #2348)
- No longer query the information_schema.schemata view on bigquery (#2320, #2382)
- Preserve original subdirectory structure in compiled files. (#2173, #2349)
- Add support for
sql_headerconfig in incremental models (#2136, #2200) - The ambiguous alias check now examines the node's database value as well as the schema/identifier (#2326, #2387)
- Postgres array types can now be returned via
run_querymacro calls (#2337, #2376) - Add missing comma to
dbt compilehelp text (#2388 #2389) - Fix for non-atomic snapshot staging table creation (#1884, #2390)
- Fix for snapshot errors when strategy changes from
checktotimestampbetween runs (#2350, #2391) - On snowflake, get_columns_in_relation now returns an empty list again if the relation does not exist, instead of raising an exception. (#2504, #2509)
- Added filename, project, and the value that failed to render to the exception raised when rendering fails. (#2499, #2501)
- When no columns are documented and persist_docs.columns is True, skip creating comments instead of failing with errors (#2439, #2440)
- Fixed an argument issue with the
create_schemamacro on bigquery (#2445, #2448) - dbt now logs using the adapter plugin's ideas about how relations should be displayed (dbt-spark/#74, #2450)
- The create_adapter_plugin.py script creates a version 2 dbt_project.yml file (#2451, #2455)
- Fixed dbt crashing with an AttributeError on duplicate sources (#2463, #2464)
- Fixed a number of issues with globally-scoped vars (#2473, #2472, #2469, #2477)
- Fixed DBT Docker entrypoint (#2470, #2475)
- Fixed a performance regression that occurred even when a user was not using the relevant feature (#2474, #2478)
- Substantial performance improvements for parsing on large projects, especially projects with many docs definition. (#2480, #2481)
- Expose Snowflake query id in case of an exception raised by connector (#2201, #2358)
- When tracking is disabled due to errors, do not reset the invocation ID (#2398, #2400)
- Fix for logic error in compilation errors for duplicate data test names (#2406, #2407)
- Fix list_schemas macro failing for BigQuery (#2412, #2413)
- When plugins are installed in the same folder as dbt core, report their versions. (#2410, #2418)
- Fix for making schema tests work for community plugin dbt-sqlserver #2414
- Fix a bug where quoted uppercase schemas on snowflake were not processed properly during cache building. (#2403, #2411)
- Fix for extra spacing and parentheses when creating views in BigQuery (#2421, #2422)
- Added more tests for source inheritance (#2264, #2291)
- Update documentation website for 0.17.0 (#2284)
- Lock protobufs to the last version that had fully functioning releases on all supported platforms (#2490, #2491)
- Removed
pytest-logbookdependency fromdbt-core(#2505) - Better support for optional database fields in adapters (#2487 #2489)
- Track distinct project hashes in anonymous usage metrics for package downloads (#2351, #2429)
Contributors:
- @aburgel (#2505)
- @alf-mindshift (docs#90)
- @azhard (#2413, #2422)
- @ChristianKohlberg (#2358)
- @dmateusp (#2475)
- @franloza (#2349)
- @Fokko (#2361)
- @haukeduden (#2427)
- @ilkinulas (#2199)
- @jeremyyeo (#2259)
- @kyleabeauchamp (#2262)
- @mikaelene (#2414)
- @nickwu241 (#2339)
- @raalsky (#2224, #2228, #2343)
- @rodrigodelmonte (#2298)
- @sethwoodworth (#2389)
- @snowflakeseitz (#2321)
- @sumanau7 (#2279, #2263, #2297)