Replies: 3 comments 1 reply
-
Beta Was this translation helpful? Give feedback.
0 replies
-
Hi @dataders, now that 1.6.0rc1 has already been released, do you plan to update |
Beta Was this translation helpful? Give feedback.
1 reply
-
Hi everyone! Are you still planning to add info on how to stub materialized views elegantly? Thanks in advance :) |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Overview
This discussion is for communicating to adapter maintainers the scope of work needed to make use of the changes in 1.6.0. If you have questions and concerns, please ask them here for posterity.
Please consider this a living document between now and the date of final release. If there's something missing, please comment below!
release timeline
The below table gives the milestones between up to and including the final release. It will be updated with each subsequent release
1.5.0
1.6.0b6
1.6.0b6
1.6.0rc1
1.6.0
1.6 (latest)
prior maintainer upgrade versions
Changes
as an adapter maintainer, there's three options for new features in dbt Core:
Example diffs from dbt Labs-owned adapters
Below gives the changes as of the latest beta release (as of June 26). The canonical way to check the diff of a minor version is
compare/v1.4.0...1.5.latest
, but the1.5.latest
branch is not created until therc
is released.Areas to consider
note: 🚧 means that this guide is not yet complete and "BtS" is short for Behind the Scenes, ie not a user-facing change
[FEATURE] Materialized Views
Context
original issue: #6911
How to support
a more comprehensive guide is still forthcoming, but for now, please refer to the following PRs to learn more
relevant PRs:
Of particular interested would are:
core/dbt/include/global_project/macros/materializations/models/materialized_view/materialized_view.sql
)plugins/postgres/dbt/include/postgres/macros/materializations/materialized_view.sql
))postgres__get_alter_materialized_view_as_sql
postgres__get_create_materialized_view_as_sql
postgres__get_replace_materialized_view_as_sql
postgres__get_materialized_view_configuration_changes
postgres__refresh_materialized_view
postgres__update_indexes_on_materialized_view
postgres__describe_materialized_view
materialization: dynamic_table
snowflake__create_table_as
(add ais_dynamic
conditional)snowflake__drop_relation_sql
(add ais_dynamic
conditional)snowflake__alter_dynamic_table_sql
snowflake__create_dynamic_table_sql
snowflake__describe_dynamic_table
snowflake__drop_dynamic_table_sql
snowflake__refresh_dynamic_table_sql
snowflake__replace_dynamic_table_sql
snowflake__alter_dynamic_table_sql_with_on_configuration_change_option
dynamic_table_execute_no_op
dynamic_table_execute_build_sql
How to stub elegantly
to be completed
What if you do nothing
The default MV DDL statements will be sent to your engine, that will react accordingly - unless you already support MVs, in which case your implementation will superseed this one
[BtS] Drop support for Py 3.7
Context
see #7082. As of June 2023, Python 3.7 is now “End of Life” (EOL)
How to (remove) support
modify the
python_requires
specifier in your packagessetup.py
as well as any other mentions of3.7
to use3.8
as the minimum version. Also give yourself the gift of not testing against 3.7 moving forward.What if you do nothing
You'll likely get security bots flagging vulnerability issues, and users may encounter strange bugs/errors for which there will be no official fix from the Python Software Foundation
[FEATURE] `dbt clone`
Context
dbt clone
(docs page)How to support
If your data platform supports the capability to clone, then there are two macros to override:
can_clone_table()
, andcreate_or_replace_clone()
See below for the versions introduced to the BigQuery adapter via dbt-bigquery#784.
{% macro bigquery__can_clone_table() %} {{ return(True) }} {% endmacro %} {% macro bigquery__create_or_replace_clone(this_relation, defer_relation) %} create or replace table {{ this_relation }} clone {{ defer_relation }} {% endmacro %}
What if you do nothing
tbc
[BtS] revamp of `dbt debug`
Context
See dbt-core#7104
How to support
There is a new Adapter method,
.debug_query()
, whose default value isselect 1 as id
. If this does not work on your supported data platform, you may override it.Also, an existing test was modified to test the new command-line flag functionality.
TestDebugPostgres
(sauce)What if you do nothing
no end-user impact
[BtS] new arg for `adapter.execute()`
Context
To more fully support
dbt show
, we needed the ability to fetch only the rows that users specified via command-line flag. The behavior shipped in1.5
would needlessly fetch the entire user-supplied query, then after return the specified number of rows.The new argument is called
limit
(source)
How to support
If your adapter over-rides SQLConnectionManager.execute(), you must include
limit
in it's function signatureAdditionally, if your adapter overrides dbt-core's
BaseAdapter.execute()
, you must also update that method to include thelimit
parameter.What if you do nothing
Things likely won't work for end users
[BtS] Adapter zone tests
The first step before starting to the upgrade process is to sure to bump the version of
dbt-tests-adapter
New tests
There are more tests in the adapter-zone test suite (
tests/adapter/dbt/tests/adapter/
). Some tests were introduced for new features and others to cover bugs that were fixed for this minor versionWithin using the following command
below is a non-exhaustive list of some of the newly introduced tests
TestIncrementalConstraintsRollback
TestTableContractSqlHeader
TestIncrementalContractSqlHeader
TestModelConstraintsRuntimeEnforcement
TestConstraintQuotedColumn
TestEquals
TestMixedNullCompare
TestNullCompare
TestPostgresCloneNotPossible
TestValidateSqlMethod
Beta Was this translation helpful? Give feedback.
All reactions