dbt-adapters 1.12.0__tar.gz → 1.13.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of dbt-adapters might be problematic. Click here for more details.

Files changed (166) hide show
  1. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/PKG-INFO +1 -1
  2. dbt_adapters-1.13.1/dbt/adapters/__about__.py +1 -0
  3. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/base/impl.py +40 -37
  4. dbt_adapters-1.13.1/dbt/include/global_project/macros/adapters/freshness.sql +32 -0
  5. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/adapters/show.sql +1 -1
  6. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/snapshots/helpers.sql +6 -3
  7. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/replace.sql +1 -1
  8. dbt_adapters-1.12.0/dbt/adapters/__about__.py +0 -1
  9. dbt_adapters-1.12.0/dbt/include/global_project/macros/adapters/freshness.sql +0 -16
  10. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/.gitignore +0 -0
  11. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/LICENSE +0 -0
  12. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/README.md +0 -0
  13. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/__init__.py +0 -0
  14. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/__init__.py +0 -0
  15. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/base/README.md +0 -0
  16. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/base/__init__.py +0 -0
  17. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/base/column.py +0 -0
  18. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/base/connections.py +0 -0
  19. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/base/meta.py +0 -0
  20. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/base/plugin.py +0 -0
  21. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/base/query_headers.py +0 -0
  22. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/base/relation.py +0 -0
  23. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/cache.py +0 -0
  24. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/capability.py +0 -0
  25. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/clients/__init__.py +0 -0
  26. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/clients/jinja.py +0 -0
  27. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/contracts/__init__.py +0 -0
  28. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/contracts/connection.py +0 -0
  29. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/contracts/macros.py +0 -0
  30. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/contracts/relation.py +0 -0
  31. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/events/README.md +0 -0
  32. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/events/__init__.py +0 -0
  33. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/events/adapter_types.proto +0 -0
  34. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/events/adapter_types_pb2.py +0 -0
  35. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/events/base_types.py +0 -0
  36. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/events/logging.py +0 -0
  37. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/events/types.py +0 -0
  38. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/exceptions/__init__.py +0 -0
  39. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/exceptions/alias.py +0 -0
  40. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/exceptions/cache.py +0 -0
  41. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/exceptions/compilation.py +0 -0
  42. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/exceptions/connection.py +0 -0
  43. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/exceptions/database.py +0 -0
  44. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/factory.py +0 -0
  45. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/protocol.py +0 -0
  46. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/py.typed +0 -0
  47. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/record/__init__.py +0 -0
  48. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/record/cursor/cursor.py +0 -0
  49. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/record/cursor/description.py +0 -0
  50. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/record/cursor/execute.py +0 -0
  51. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/record/cursor/fetchall.py +0 -0
  52. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/record/cursor/fetchmany.py +0 -0
  53. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/record/cursor/fetchone.py +0 -0
  54. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/record/cursor/rowcount.py +0 -0
  55. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/record/handle.py +0 -0
  56. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/reference_keys.py +0 -0
  57. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/relation_configs/README.md +0 -0
  58. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/relation_configs/__init__.py +0 -0
  59. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/relation_configs/config_base.py +0 -0
  60. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/relation_configs/config_change.py +0 -0
  61. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/relation_configs/config_validation.py +0 -0
  62. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/sql/__init__.py +0 -0
  63. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/sql/connections.py +0 -0
  64. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/sql/impl.py +0 -0
  65. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/adapters/utils.py +0 -0
  66. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/__init__.py +0 -0
  67. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/__init__.py +0 -0
  68. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/dbt_project.yml +0 -0
  69. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/docs/overview.md +0 -0
  70. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/adapters/apply_grants.sql +0 -0
  71. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/adapters/columns.sql +0 -0
  72. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/adapters/indexes.sql +0 -0
  73. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/adapters/metadata.sql +0 -0
  74. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/adapters/persist_docs.sql +0 -0
  75. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/adapters/relation.sql +0 -0
  76. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/adapters/schema.sql +0 -0
  77. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/adapters/timestamps.sql +0 -0
  78. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/adapters/validate_sql.sql +0 -0
  79. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/etc/datetime.sql +0 -0
  80. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/etc/statement.sql +0 -0
  81. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/generic_test_sql/accepted_values.sql +0 -0
  82. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/generic_test_sql/not_null.sql +0 -0
  83. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/generic_test_sql/relationships.sql +0 -0
  84. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/generic_test_sql/unique.sql +0 -0
  85. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/get_custom_name/get_custom_alias.sql +0 -0
  86. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/get_custom_name/get_custom_database.sql +0 -0
  87. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/get_custom_name/get_custom_schema.sql +0 -0
  88. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/configs.sql +0 -0
  89. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/hooks.sql +0 -0
  90. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/models/clone/can_clone_table.sql +0 -0
  91. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/models/clone/clone.sql +0 -0
  92. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/models/clone/create_or_replace_clone.sql +0 -0
  93. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/models/incremental/column_helpers.sql +0 -0
  94. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/models/incremental/incremental.sql +0 -0
  95. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/models/incremental/is_incremental.sql +0 -0
  96. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/models/incremental/merge.sql +0 -0
  97. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/models/incremental/on_schema_change.sql +0 -0
  98. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/models/incremental/strategies.sql +0 -0
  99. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/models/materialized_view.sql +0 -0
  100. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/models/table.sql +0 -0
  101. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/models/view.sql +0 -0
  102. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/seeds/helpers.sql +0 -0
  103. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/seeds/seed.sql +0 -0
  104. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/snapshots/snapshot.sql +0 -0
  105. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/snapshots/snapshot_merge.sql +0 -0
  106. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/snapshots/strategies.sql +0 -0
  107. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/tests/helpers.sql +0 -0
  108. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/tests/test.sql +0 -0
  109. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/tests/unit.sql +0 -0
  110. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/materializations/tests/where_subquery.sql +0 -0
  111. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/python_model/python.sql +0 -0
  112. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/column/columns_spec_ddl.sql +0 -0
  113. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/create.sql +0 -0
  114. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/create_backup.sql +0 -0
  115. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/create_intermediate.sql +0 -0
  116. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/drop.sql +0 -0
  117. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/drop_backup.sql +0 -0
  118. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/materialized_view/alter.sql +0 -0
  119. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/materialized_view/create.sql +0 -0
  120. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/materialized_view/drop.sql +0 -0
  121. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/materialized_view/refresh.sql +0 -0
  122. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/materialized_view/rename.sql +0 -0
  123. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/materialized_view/replace.sql +0 -0
  124. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/rename.sql +0 -0
  125. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/rename_intermediate.sql +0 -0
  126. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/schema.sql +0 -0
  127. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/table/create.sql +0 -0
  128. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/table/drop.sql +0 -0
  129. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/table/rename.sql +0 -0
  130. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/table/replace.sql +0 -0
  131. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/view/create.sql +0 -0
  132. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/view/drop.sql +0 -0
  133. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/view/rename.sql +0 -0
  134. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/relations/view/replace.sql +0 -0
  135. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/unit_test_sql/get_fixture_sql.sql +0 -0
  136. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/any_value.sql +0 -0
  137. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/array_append.sql +0 -0
  138. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/array_concat.sql +0 -0
  139. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/array_construct.sql +0 -0
  140. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/bool_or.sql +0 -0
  141. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/cast.sql +0 -0
  142. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/cast_bool_to_text.sql +0 -0
  143. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/concat.sql +0 -0
  144. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/data_types.sql +0 -0
  145. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/date.sql +0 -0
  146. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/date_spine.sql +0 -0
  147. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/date_trunc.sql +0 -0
  148. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/dateadd.sql +0 -0
  149. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/datediff.sql +0 -0
  150. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/escape_single_quotes.sql +0 -0
  151. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/except.sql +0 -0
  152. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/generate_series.sql +0 -0
  153. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/hash.sql +0 -0
  154. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/intersect.sql +0 -0
  155. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/last_day.sql +0 -0
  156. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/length.sql +0 -0
  157. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/listagg.sql +0 -0
  158. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/literal.sql +0 -0
  159. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/position.sql +0 -0
  160. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/replace.sql +0 -0
  161. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/right.sql +0 -0
  162. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/safe_cast.sql +0 -0
  163. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/macros/utils/split_part.sql +0 -0
  164. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/global_project/tests/generic/builtin.sql +0 -0
  165. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/dbt/include/py.typed +0 -0
  166. {dbt_adapters-1.12.0 → dbt_adapters-1.13.1}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dbt-adapters
3
- Version: 1.12.0
3
+ Version: 1.13.1
4
4
  Summary: The set of adapter protocols and base functionality that supports integration with dbt-core
5
5
  Project-URL: Homepage, https://github.com/dbt-labs/dbt-adapters
6
6
  Project-URL: Documentation, https://docs.getdbt.com
@@ -0,0 +1 @@
1
+ version = "1.13.1"
@@ -97,6 +97,7 @@ if TYPE_CHECKING:
97
97
  GET_CATALOG_MACRO_NAME = "get_catalog"
98
98
  GET_CATALOG_RELATIONS_MACRO_NAME = "get_catalog_relations"
99
99
  FRESHNESS_MACRO_NAME = "collect_freshness"
100
+ CUSTOM_SQL_FRESHNESS_MACRO_NAME = "collect_freshness_custom_sql"
100
101
  GET_RELATION_LAST_MODIFIED_MACRO_NAME = "get_relation_last_modified"
101
102
  DEFAULT_BASE_BEHAVIOR_FLAGS = [
102
103
  {
@@ -1327,6 +1328,31 @@ class BaseAdapter(metaclass=AdapterMeta):
1327
1328
  """Cancel all open connections."""
1328
1329
  return self.connections.cancel_open()
1329
1330
 
1331
+ def _process_freshness_execution(
1332
+ self,
1333
+ macro_name: str,
1334
+ kwargs: Dict[str, Any],
1335
+ macro_resolver: Optional[MacroResolverProtocol] = None,
1336
+ ) -> Tuple[Optional[AdapterResponse], FreshnessResponse]:
1337
+ """Execute and process a freshness macro to generate a FreshnessResponse"""
1338
+ import agate
1339
+
1340
+ result = self.execute_macro(macro_name, kwargs=kwargs, macro_resolver=macro_resolver)
1341
+
1342
+ if isinstance(result, agate.Table):
1343
+ warn_or_error(CollectFreshnessReturnSignature())
1344
+ table = result
1345
+ adapter_response = None
1346
+ else:
1347
+ adapter_response, table = result.response, result.table
1348
+
1349
+ # Process the results table
1350
+ if len(table) != 1 or len(table[0]) != 2:
1351
+ raise MacroResultError(macro_name, table)
1352
+
1353
+ freshness_response = self._create_freshness_response(table[0][0], table[0][1])
1354
+ return adapter_response, freshness_response
1355
+
1330
1356
  def calculate_freshness(
1331
1357
  self,
1332
1358
  source: BaseRelation,
@@ -1335,49 +1361,26 @@ class BaseAdapter(metaclass=AdapterMeta):
1335
1361
  macro_resolver: Optional[MacroResolverProtocol] = None,
1336
1362
  ) -> Tuple[Optional[AdapterResponse], FreshnessResponse]:
1337
1363
  """Calculate the freshness of sources in dbt, and return it"""
1338
- import agate
1339
-
1340
- kwargs: Dict[str, Any] = {
1364
+ kwargs = {
1341
1365
  "source": source,
1342
1366
  "loaded_at_field": loaded_at_field,
1343
1367
  "filter": filter,
1344
1368
  }
1369
+ return self._process_freshness_execution(FRESHNESS_MACRO_NAME, kwargs, macro_resolver)
1345
1370
 
1346
- # run the macro
1347
- # in older versions of dbt-core, the 'collect_freshness' macro returned the table of results directly
1348
- # starting in v1.5, by default, we return both the table and the adapter response (metadata about the query)
1349
- result: Union[
1350
- AttrDict, # current: contains AdapterResponse + "agate.Table"
1351
- "agate.Table", # previous: just table
1352
- ]
1353
- result = self.execute_macro(
1354
- FRESHNESS_MACRO_NAME, kwargs=kwargs, macro_resolver=macro_resolver
1355
- )
1356
- if isinstance(result, agate.Table):
1357
- warn_or_error(CollectFreshnessReturnSignature())
1358
- adapter_response = None
1359
- table = result
1360
- else:
1361
- adapter_response, table = result.response, result.table # type: ignore[attr-defined]
1362
- # now we have a 1-row table of the maximum `loaded_at_field` value and
1363
- # the current time according to the db.
1364
- if len(table) != 1 or len(table[0]) != 2:
1365
- raise MacroResultError(FRESHNESS_MACRO_NAME, table)
1366
- if table[0][0] is None:
1367
- # no records in the table, so really the max_loaded_at was
1368
- # infinitely long ago. Just call it 0:00 January 1 year UTC
1369
- max_loaded_at = datetime(1, 1, 1, 0, 0, 0, tzinfo=pytz.UTC)
1370
- else:
1371
- max_loaded_at = _utc(table[0][0], source, loaded_at_field)
1372
-
1373
- snapshotted_at = _utc(table[0][1], source, loaded_at_field)
1374
- age = (snapshotted_at - max_loaded_at).total_seconds()
1375
- freshness: FreshnessResponse = {
1376
- "max_loaded_at": max_loaded_at,
1377
- "snapshotted_at": snapshotted_at,
1378
- "age": age,
1371
+ def calculate_freshness_from_custom_sql(
1372
+ self,
1373
+ source: BaseRelation,
1374
+ sql: str,
1375
+ macro_resolver: Optional[MacroResolverProtocol] = None,
1376
+ ) -> Tuple[Optional[AdapterResponse], FreshnessResponse]:
1377
+ kwargs = {
1378
+ "source": source,
1379
+ "loaded_at_query": sql,
1379
1380
  }
1380
- return adapter_response, freshness
1381
+ return self._process_freshness_execution(
1382
+ CUSTOM_SQL_FRESHNESS_MACRO_NAME, kwargs, macro_resolver
1383
+ )
1381
1384
 
1382
1385
  def calculate_freshness_from_metadata_batch(
1383
1386
  self,
@@ -0,0 +1,32 @@
1
+ {% macro collect_freshness(source, loaded_at_field, filter) %}
2
+ {{ return(adapter.dispatch('collect_freshness', 'dbt')(source, loaded_at_field, filter))}}
3
+ {% endmacro %}
4
+
5
+ {% macro default__collect_freshness(source, loaded_at_field, filter) %}
6
+ {% call statement('collect_freshness', fetch_result=True, auto_begin=False) -%}
7
+ select
8
+ max({{ loaded_at_field }}) as max_loaded_at,
9
+ {{ current_timestamp() }} as snapshotted_at
10
+ from {{ source }}
11
+ {% if filter %}
12
+ where {{ filter }}
13
+ {% endif %}
14
+ {% endcall %}
15
+ {{ return(load_result('collect_freshness')) }}
16
+ {% endmacro %}
17
+
18
+ {% macro collect_freshness_custom_sql(source, loaded_at_query) %}
19
+ {{ return(adapter.dispatch('collect_freshness_custom_sql', 'dbt')(source, loaded_at_query))}}
20
+ {% endmacro %}
21
+
22
+ {% macro default__collect_freshness_custom_sql(source, loaded_at_query) %}
23
+ {% call statement('collect_freshness_custom_sql', fetch_result=True, auto_begin=False) -%}
24
+ with source_query as (
25
+ {{ loaded_at_query }}
26
+ )
27
+ select
28
+ (select * from source_query) as max_loaded_at,
29
+ {{ current_timestamp() }} as snapshotted_at
30
+ {% endcall %}
31
+ {{ return(load_result('collect_freshness_custom_sql')) }}
32
+ {% endmacro %}
@@ -19,7 +19,7 @@
19
19
  {%- endmacro -%}
20
20
 
21
21
  {% macro default__get_limit_sql(sql, limit) %}
22
- {{ compiled_code }}
22
+ {{ sql }}
23
23
  {% if limit is not none %}
24
24
  limit {{ limit }}
25
25
  {%- endif -%}
@@ -40,7 +40,9 @@
40
40
 
41
41
  {% macro default__snapshot_staging_table(strategy, source_sql, target_relation) -%}
42
42
  {% set columns = config.get('snapshot_table_column_names') or get_snapshot_table_column_names() %}
43
-
43
+ {% if strategy.hard_deletes == 'new_record' %}
44
+ {% set new_scd_id = snapshot_hash_arguments([columns.dbt_scd_id, snapshot_get_time()]) %}
45
+ {% endif %}
44
46
  with snapshot_query as (
45
47
 
46
48
  {{ source_sql }}
@@ -169,12 +171,13 @@
169
171
  {{ snapshot_get_time() }} as {{ columns.dbt_valid_from }},
170
172
  {{ snapshot_get_time() }} as {{ columns.dbt_updated_at }},
171
173
  snapshotted_data.{{ columns.dbt_valid_to }} as {{ columns.dbt_valid_to }},
172
- snapshotted_data.{{ columns.dbt_scd_id }},
174
+ {{ new_scd_id }} as {{ columns.dbt_scd_id }},
173
175
  'True' as {{ columns.dbt_is_deleted }}
174
176
  from snapshotted_data
175
177
  left join deletes_source_data as source_data
176
178
  on {{ unique_key_join_on(strategy.unique_key, "snapshotted_data", "source_data") }}
177
- where {{ unique_key_is_null(strategy.unique_key, "source_data") }}
179
+ where {{ unique_key_is_null(strategy.unique_key, "source_data") }}
180
+
178
181
  )
179
182
  {%- endif %}
180
183
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  {# /* use a create or replace statement if possible */ #}
10
10
 
11
- {% set is_replaceable = existing_relation.type == target_relation_type and existing_relation.can_be_replaced %}
11
+ {% set is_replaceable = existing_relation.type == target_relation.type and existing_relation.can_be_replaced %}
12
12
 
13
13
  {% if is_replaceable and existing_relation.is_view %}
14
14
  {{ get_replace_view_sql(target_relation, sql) }}
@@ -1 +0,0 @@
1
- version = "1.12.0"
@@ -1,16 +0,0 @@
1
- {% macro collect_freshness(source, loaded_at_field, filter) %}
2
- {{ return(adapter.dispatch('collect_freshness', 'dbt')(source, loaded_at_field, filter))}}
3
- {% endmacro %}
4
-
5
- {% macro default__collect_freshness(source, loaded_at_field, filter) %}
6
- {% call statement('collect_freshness', fetch_result=True, auto_begin=False) -%}
7
- select
8
- max({{ loaded_at_field }}) as max_loaded_at,
9
- {{ current_timestamp() }} as snapshotted_at
10
- from {{ source }}
11
- {% if filter %}
12
- where {{ filter }}
13
- {% endif %}
14
- {% endcall %}
15
- {{ return(load_result('collect_freshness')) }}
16
- {% endmacro %}
File without changes
File without changes
File without changes