dbt-adapters 1.16.7__tar.gz → 1.17.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 (253) hide show
  1. dbt_adapters-1.17.1/.changes/1.16.1.md +8 -0
  2. dbt_adapters-1.17.1/.changes/1.16.2.md +9 -0
  3. dbt_adapters-1.17.1/.changes/1.16.3.md +10 -0
  4. dbt_adapters-1.17.1/.changes/1.16.4.md +12 -0
  5. dbt_adapters-1.17.1/.changes/1.16.5.md +5 -0
  6. dbt_adapters-1.17.1/.changes/1.16.6.md +9 -0
  7. dbt_adapters-1.17.1/.changes/1.17.0.md +13 -0
  8. dbt_adapters-1.17.1/.changes/1.17.1.md +5 -0
  9. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/CHANGELOG.md +65 -7
  10. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/PKG-INFO +1 -1
  11. dbt_adapters-1.17.1/src/dbt/adapters/__about__.py +1 -0
  12. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/base/impl.py +13 -1
  13. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/base/relation.py +18 -5
  14. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/contracts/relation.py +1 -0
  15. dbt_adapters-1.17.1/src/dbt/include/global_project/macros/materializations/functions/function.sql +16 -0
  16. dbt_adapters-1.17.1/src/dbt/include/global_project/macros/materializations/functions/helpers.sql +34 -0
  17. dbt_adapters-1.17.1/src/dbt/include/global_project/macros/materializations/functions/scalar.sql +38 -0
  18. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/snapshots/helpers.sql +15 -5
  19. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/tests/unit.sql +10 -3
  20. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/unit_test_sql/get_fixture_sql.sql +7 -4
  21. dbt_adapters-1.16.7/.changes/1.16.7.md +0 -21
  22. dbt_adapters-1.16.7/src/dbt/adapters/__about__.py +0 -1
  23. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.0.0.md +0 -0
  24. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.1.0.md +0 -0
  25. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.1.1.md +0 -0
  26. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.10.0.md +0 -0
  27. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.10.1.md +0 -0
  28. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.10.2.md +0 -0
  29. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.10.3.md +0 -0
  30. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.10.4.md +0 -0
  31. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.11.0.md +0 -0
  32. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.12.0.md +0 -0
  33. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.13.0.md +0 -0
  34. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.13.1.md +0 -0
  35. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.13.2.md +0 -0
  36. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.14.0.md +0 -0
  37. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.14.1.md +0 -0
  38. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.14.3.md +0 -0
  39. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.14.4.md +0 -0
  40. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.14.5.md +0 -0
  41. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.14.6.md +0 -0
  42. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.14.7.md +0 -0
  43. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.14.8.md +0 -0
  44. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.15.1.md +0 -0
  45. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.15.2.md +0 -0
  46. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.15.3.md +0 -0
  47. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.15.md +0 -0
  48. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.16.0.md +0 -0
  49. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.2.1.md +0 -0
  50. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.3.0.md +0 -0
  51. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.3.1.md +0 -0
  52. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.3.2.md +0 -0
  53. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.3.3.md +0 -0
  54. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.4.0.md +0 -0
  55. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.4.1.md +0 -0
  56. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.5.0.md +0 -0
  57. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.6.0.md +0 -0
  58. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.6.1.md +0 -0
  59. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.7.0.md +0 -0
  60. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.7.1.md +0 -0
  61. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.7.2.md +0 -0
  62. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.8.0.md +0 -0
  63. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/1.9.0.md +0 -0
  64. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/header.tpl.md +0 -0
  65. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changes/unreleased/.gitkeep +0 -0
  66. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.changie.yaml +0 -0
  67. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/.gitignore +0 -0
  68. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/CONTRIBUTING.md +0 -0
  69. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/LICENSE +0 -0
  70. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/README.md +0 -0
  71. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/hatch.toml +0 -0
  72. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/pyproject.toml +0 -0
  73. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/__init__.py +0 -0
  74. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/__init__.py +0 -0
  75. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/base/README.md +0 -0
  76. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/base/__init__.py +0 -0
  77. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/base/column.py +0 -0
  78. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/base/connections.py +0 -0
  79. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/base/meta.py +0 -0
  80. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/base/plugin.py +0 -0
  81. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/base/query_headers.py +0 -0
  82. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/cache.py +0 -0
  83. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/capability.py +0 -0
  84. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/catalogs/__init__.py +0 -0
  85. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/catalogs/_client.py +0 -0
  86. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/catalogs/_constants.py +0 -0
  87. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/catalogs/_exceptions.py +0 -0
  88. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/catalogs/_integration.py +0 -0
  89. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/clients/__init__.py +0 -0
  90. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/clients/jinja.py +0 -0
  91. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/contracts/__init__.py +0 -0
  92. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/contracts/connection.py +0 -0
  93. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/contracts/macros.py +0 -0
  94. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/events/README.md +0 -0
  95. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/events/__init__.py +0 -0
  96. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/events/adapter_types_pb2.py +0 -0
  97. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/events/base_types.py +0 -0
  98. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/events/logging.py +0 -0
  99. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/events/types.py +0 -0
  100. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/exceptions/__init__.py +0 -0
  101. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/exceptions/alias.py +0 -0
  102. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/exceptions/cache.py +0 -0
  103. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/exceptions/compilation.py +0 -0
  104. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/exceptions/connection.py +0 -0
  105. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/exceptions/database.py +0 -0
  106. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/factory.py +0 -0
  107. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/protocol.py +0 -0
  108. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/py.typed +0 -0
  109. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/record/__init__.py +0 -0
  110. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/record/base.py +0 -0
  111. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/record/cursor/cursor.py +0 -0
  112. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/record/cursor/description.py +0 -0
  113. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/record/cursor/execute.py +0 -0
  114. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/record/cursor/fetchall.py +0 -0
  115. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/record/cursor/fetchmany.py +0 -0
  116. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/record/cursor/fetchone.py +0 -0
  117. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/record/cursor/rowcount.py +0 -0
  118. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/record/handle.py +0 -0
  119. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/record/serialization.py +0 -0
  120. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/reference_keys.py +0 -0
  121. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/relation_configs/README.md +0 -0
  122. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/relation_configs/__init__.py +0 -0
  123. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/relation_configs/config_base.py +0 -0
  124. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/relation_configs/config_change.py +0 -0
  125. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/relation_configs/config_validation.py +0 -0
  126. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/sql/__init__.py +0 -0
  127. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/sql/connections.py +0 -0
  128. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/sql/impl.py +0 -0
  129. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/adapters/utils.py +0 -0
  130. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/__init__.py +0 -0
  131. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/__init__.py +0 -0
  132. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/dbt_project.yml +0 -0
  133. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/docs/overview.md +0 -0
  134. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/adapters/apply_grants.sql +0 -0
  135. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/adapters/columns.sql +0 -0
  136. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/adapters/freshness.sql +0 -0
  137. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/adapters/indexes.sql +0 -0
  138. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/adapters/metadata.sql +0 -0
  139. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/adapters/persist_docs.sql +0 -0
  140. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/adapters/relation.sql +0 -0
  141. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/adapters/schema.sql +0 -0
  142. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/adapters/show.sql +0 -0
  143. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/adapters/timestamps.sql +0 -0
  144. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/adapters/validate_sql.sql +0 -0
  145. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/etc/datetime.sql +0 -0
  146. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/etc/statement.sql +0 -0
  147. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/generic_test_sql/accepted_values.sql +0 -0
  148. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/generic_test_sql/not_null.sql +0 -0
  149. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/generic_test_sql/relationships.sql +0 -0
  150. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/generic_test_sql/unique.sql +0 -0
  151. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/get_custom_name/get_custom_alias.sql +0 -0
  152. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/get_custom_name/get_custom_database.sql +0 -0
  153. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/get_custom_name/get_custom_schema.sql +0 -0
  154. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/configs.sql +0 -0
  155. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/hooks.sql +0 -0
  156. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/models/clone/can_clone_table.sql +0 -0
  157. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/models/clone/clone.sql +0 -0
  158. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/models/clone/create_or_replace_clone.sql +0 -0
  159. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/models/incremental/column_helpers.sql +0 -0
  160. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/models/incremental/incremental.sql +0 -0
  161. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/models/incremental/is_incremental.sql +0 -0
  162. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/models/incremental/merge.sql +0 -0
  163. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/models/incremental/on_schema_change.sql +0 -0
  164. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/models/incremental/strategies.sql +0 -0
  165. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/models/materialized_view.sql +0 -0
  166. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/models/table.sql +0 -0
  167. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/models/view.sql +0 -0
  168. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/seeds/helpers.sql +0 -0
  169. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/seeds/seed.sql +0 -0
  170. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/snapshots/snapshot.sql +0 -0
  171. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/snapshots/snapshot_merge.sql +0 -0
  172. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/snapshots/strategies.sql +0 -0
  173. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/tests/helpers.sql +0 -0
  174. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/tests/test.sql +0 -0
  175. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/materializations/tests/where_subquery.sql +0 -0
  176. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/python_model/python.sql +0 -0
  177. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/column/columns_spec_ddl.sql +0 -0
  178. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/create.sql +0 -0
  179. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/create_backup.sql +0 -0
  180. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/create_intermediate.sql +0 -0
  181. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/drop.sql +0 -0
  182. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/drop_backup.sql +0 -0
  183. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/materialized_view/alter.sql +0 -0
  184. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/materialized_view/create.sql +0 -0
  185. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/materialized_view/drop.sql +0 -0
  186. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/materialized_view/refresh.sql +0 -0
  187. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/materialized_view/rename.sql +0 -0
  188. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/materialized_view/replace.sql +0 -0
  189. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/rename.sql +0 -0
  190. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/rename_intermediate.sql +0 -0
  191. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/replace.sql +0 -0
  192. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/schema.sql +0 -0
  193. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/table/create.sql +0 -0
  194. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/table/drop.sql +0 -0
  195. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/table/rename.sql +0 -0
  196. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/table/replace.sql +0 -0
  197. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/view/create.sql +0 -0
  198. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/view/drop.sql +0 -0
  199. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/view/rename.sql +0 -0
  200. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/relations/view/replace.sql +0 -0
  201. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/any_value.sql +0 -0
  202. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/array_append.sql +0 -0
  203. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/array_concat.sql +0 -0
  204. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/array_construct.sql +0 -0
  205. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/bool_or.sql +0 -0
  206. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/cast.sql +0 -0
  207. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/cast_bool_to_text.sql +0 -0
  208. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/concat.sql +0 -0
  209. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/data_types.sql +0 -0
  210. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/date.sql +0 -0
  211. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/date_spine.sql +0 -0
  212. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/date_trunc.sql +0 -0
  213. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/dateadd.sql +0 -0
  214. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/datediff.sql +0 -0
  215. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/equals.sql +0 -0
  216. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/escape_single_quotes.sql +0 -0
  217. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/except.sql +0 -0
  218. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/generate_series.sql +0 -0
  219. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/hash.sql +0 -0
  220. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/intersect.sql +0 -0
  221. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/last_day.sql +0 -0
  222. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/length.sql +0 -0
  223. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/listagg.sql +0 -0
  224. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/literal.sql +0 -0
  225. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/position.sql +0 -0
  226. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/replace.sql +0 -0
  227. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/right.sql +0 -0
  228. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/safe_cast.sql +0 -0
  229. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/macros/utils/split_part.sql +0 -0
  230. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/global_project/tests/generic/builtin.sql +0 -0
  231. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/src/dbt/include/py.typed +0 -0
  232. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/__init__.py +0 -0
  233. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/behavior_flag_tests/__init__.py +0 -0
  234. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/behavior_flag_tests/test_behavior_flags.py +0 -0
  235. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/behavior_flag_tests/test_empty_project.py +0 -0
  236. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/conftest.py +0 -0
  237. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/fixtures/__init__.py +0 -0
  238. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/fixtures/adapter.py +0 -0
  239. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/fixtures/catalog_integration.py +0 -0
  240. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/fixtures/connection_manager.py +0 -0
  241. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/fixtures/credentials.py +0 -0
  242. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/record/__init__.py +0 -0
  243. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/record/test_record_cursor.py +0 -0
  244. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/record/test_record_handle.py +0 -0
  245. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/test_adapter_factory.py +0 -0
  246. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/test_adapter_telemetry.py +0 -0
  247. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/test_base_adapter.py +0 -0
  248. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/test_cache.py +0 -0
  249. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/test_catalogs.py +0 -0
  250. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/test_column.py +0 -0
  251. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/test_events.py +0 -0
  252. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/test_relation.py +0 -0
  253. {dbt_adapters-1.16.7 → dbt_adapters-1.17.1}/tests/unit/test_sql_result.py +0 -0
@@ -0,0 +1,8 @@
1
+ ## dbt-adapters 1.16.1 - July 10, 2025
2
+
3
+ ### Fixes
4
+
5
+ - Fix Snapshot to avoid inserting redundant entries for records already marked as deleted ([#654](https://github.com/dbt-labs/dbt-adapters/issues/654))
6
+
7
+ ### Contributors
8
+ - [@lpillmann](https://github.com/lpillmann) ([#654](https://github.com/dbt-labs/dbt-adapters/issues/654))
@@ -0,0 +1,9 @@
1
+ ## dbt-adapters 1.16.2 - July 14, 2025
2
+
3
+ ### Fixes
4
+
5
+ - Fixed hard-coded quoting issue in snapshots. ([#1118](https://github.com/dbt-labs/dbt-adapters/issues/1118))
6
+ - Skip cloning objects if the target and defferal are the same ([#1198](https://github.com/dbt-labs/dbt-adapters/issues/1198))
7
+
8
+ ### Contributors
9
+ - [@stevetracvc](https://github.com/stevetracvc) ([#1118](https://github.com/dbt-labs/dbt-adapters/issues/1118))
@@ -0,0 +1,10 @@
1
+ ## dbt-adapters 1.16.3 - July 21, 2025
2
+
3
+ ### Fixes
4
+
5
+ - Update dbt snapshot staging table creation to handle new source columns when using hard_deletes == 'new_record' ([#852](https://github.com/dbt-labs/dbt-adapters/issues/852))
6
+ - update alter_relation_add_remove_columns to quote column names ([#63](https://github.com/dbt-labs/dbt-adapters/issues/63))
7
+
8
+ ### Under the Hood
9
+
10
+ - gracefully handle null database in _catalog_filter_schemas ([#1216](https://github.com/dbt-labs/dbt-adapters/issues/1216))
@@ -0,0 +1,12 @@
1
+ ## dbt-adapters 1.16.4 - August 15, 2025
2
+
3
+ ### Fixes
4
+
5
+ - Apply column quoting to unit tests ([#205](https://github.com/dbt-labs/dbt-adapters/issues/205))
6
+
7
+ ### Dependencies
8
+
9
+ - upgrade protobuf to 6.0 ([#1259](https://github.com/dbt-labs/dbt-adapters/pull/1259))
10
+
11
+ ### Contributors
12
+ - [@mpatek](https://github.com/mpatek) ([#205](https://github.com/dbt-labs/dbt-adapters/issues/205))
@@ -0,0 +1,5 @@
1
+ ## dbt-adapters 1.16.5 - August 19, 2025
2
+
3
+ ### Fixes
4
+
5
+ - Correct column mapping lookup in unit test macro ([#1273](https://github.com/dbt-labs/dbt-adapters/issues/1273))
@@ -0,0 +1,9 @@
1
+ ## dbt-adapters 1.16.6 - September 03, 2025
2
+
3
+ ### Under the Hood
4
+
5
+ - Record adapter.add_query as Available record ([#1285](https://github.com/dbt-labs/dbt-adapters/issues/1285))
6
+ - Record adapter.list_relations_without_caching as Available record ([#1308](https://github.com/dbt-labs/dbt-adapters/issues/1308))
7
+
8
+ ### Contributors
9
+ - [@jasonlin45](https://github.com/jasonlin45) ([#1308](https://github.com/dbt-labs/dbt-adapters/issues/1308))
@@ -0,0 +1,13 @@
1
+ ## dbt-adapters 1.17.0 - September 29, 2025
2
+
3
+ ### Features
4
+
5
+ - Initial framework for UDF support ([#1268](https://github.com/dbt-labs/dbt-adapters/issues/1268))
6
+
7
+ ### Fixes
8
+
9
+ - Fix duplicates when hard_deletes new_record is used with custom dbt_valid_to_current ([#1240](https://github.com/dbt-labs/dbt-adapters/issues/1240))
10
+ - Update function related global macros to use `default__` naming scheme ([#1356](https://github.com/dbt-labs/dbt-adapters/issues/1356))
11
+
12
+ ### Contributors
13
+ - [@jeremyyeo](https://github.com/jeremyyeo) ([#1240](https://github.com/dbt-labs/dbt-adapters/issues/1240))
@@ -0,0 +1,5 @@
1
+ ## dbt-adapters 1.17.1 - October 01, 2025
2
+
3
+ ### Fixes
4
+
5
+ - Drop extraneous `;` from scalar function macro ([#N/A](https://github.com/dbt-labs/dbt-adapters/issues/N/A))
@@ -10,28 +10,86 @@ and is generated by [Changie](https://github.com/miniscruff/changie)
10
10
  - Do not edit this file directly. This file is auto-generated using [changie](https://github.com/miniscruff/changie)
11
11
  - For details on how to document a change, see the [contributing guide](/CONTRIBUTING.md#changelog-entry)
12
12
 
13
- ## dbt-adapters 1.16.7 - September 10, 2025
13
+ ## dbt-adapters 1.17.1 - October 01, 2025
14
14
 
15
15
  ### Fixes
16
16
 
17
- - Fix Snapshot to avoid inserting redundant entries for records already marked as deleted ([#654](https://github.com/dbt-labs/dbt-adapters/issues/654))
18
- - Skip cloning objects if the target and defferal are the same ([#1198](https://github.com/dbt-labs/dbt-adapters/issues/1198))
19
- - Update dbt snapshot staging table creation to handle new source columns when using hard_deletes == 'new_record' ([#852](https://github.com/dbt-labs/dbt-adapters/issues/852))
20
- - update alter_relation_add_remove_columns to quote column names ([#63](https://github.com/dbt-labs/dbt-adapters/issues/63))
17
+ - Drop extraneous `;` from scalar function macro ([#N/A](https://github.com/dbt-labs/dbt-adapters/issues/N/A))
18
+
19
+
20
+
21
+ ## dbt-adapters 1.17.0 - September 29, 2025
22
+
23
+ ### Features
24
+
25
+ - Initial framework for UDF support ([#1268](https://github.com/dbt-labs/dbt-adapters/issues/1268))
26
+
27
+ ### Fixes
28
+
29
+ - Fix duplicates when hard_deletes new_record is used with custom dbt_valid_to_current ([#1240](https://github.com/dbt-labs/dbt-adapters/issues/1240))
30
+ - Update function related global macros to use `default__` naming scheme ([#1356](https://github.com/dbt-labs/dbt-adapters/issues/1356))
31
+
32
+ ### Contributors
33
+ - [@jeremyyeo](https://github.com/jeremyyeo) ([#1240](https://github.com/dbt-labs/dbt-adapters/issues/1240))
34
+
35
+ ## dbt-adapters 1.16.6 - September 03, 2025
21
36
 
22
37
  ### Under the Hood
23
38
 
24
39
  - Record adapter.add_query as Available record ([#1285](https://github.com/dbt-labs/dbt-adapters/issues/1285))
25
40
  - Record adapter.list_relations_without_caching as Available record ([#1308](https://github.com/dbt-labs/dbt-adapters/issues/1308))
26
41
 
42
+ ### Contributors
43
+ - [@jasonlin45](https://github.com/jasonlin45) ([#1308](https://github.com/dbt-labs/dbt-adapters/issues/1308))
44
+
45
+ ## dbt-adapters 1.16.5 - August 19, 2025
46
+
47
+ ### Fixes
48
+
49
+ - Correct column mapping lookup in unit test macro ([#1273](https://github.com/dbt-labs/dbt-adapters/issues/1273))
50
+
51
+ ## dbt-adapters 1.16.4 - August 15, 2025
52
+
53
+ ### Fixes
54
+
55
+ - Apply column quoting to unit tests ([#205](https://github.com/dbt-labs/dbt-adapters/issues/205))
56
+
27
57
  ### Dependencies
28
58
 
29
59
  - upgrade protobuf to 6.0 ([#1259](https://github.com/dbt-labs/dbt-adapters/pull/1259))
30
60
 
31
61
  ### Contributors
32
- - [@jasonlin45](https://github.com/jasonlin45) ([#1308](https://github.com/dbt-labs/dbt-adapters/issues/1308))
33
- - [@lpillmann](https://github.com/lpillmann) ([#654](https://github.com/dbt-labs/dbt-adapters/issues/654))
62
+ - [@mpatek](https://github.com/mpatek) ([#205](https://github.com/dbt-labs/dbt-adapters/issues/205))
63
+
64
+ ## dbt-adapters 1.16.3 - July 21, 2025
65
+
66
+ ### Fixes
67
+
68
+ - Update dbt snapshot staging table creation to handle new source columns when using hard_deletes == 'new_record' ([#852](https://github.com/dbt-labs/dbt-adapters/issues/852))
69
+ - update alter_relation_add_remove_columns to quote column names ([#63](https://github.com/dbt-labs/dbt-adapters/issues/63))
70
+
71
+ ### Under the Hood
72
+
73
+ - gracefully handle null database in _catalog_filter_schemas ([#1216](https://github.com/dbt-labs/dbt-adapters/issues/1216))
74
+
75
+ ## dbt-adapters 1.16.2 - July 14, 2025
34
76
 
77
+ ### Fixes
78
+
79
+ - Fixed hard-coded quoting issue in snapshots. ([#1118](https://github.com/dbt-labs/dbt-adapters/issues/1118))
80
+ - Skip cloning objects if the target and defferal are the same ([#1198](https://github.com/dbt-labs/dbt-adapters/issues/1198))
81
+
82
+ ### Contributors
83
+ - [@stevetracvc](https://github.com/stevetracvc) ([#1118](https://github.com/dbt-labs/dbt-adapters/issues/1118))
84
+
85
+ ## dbt-adapters 1.16.1 - July 10, 2025
86
+
87
+ ### Fixes
88
+
89
+ - Fix Snapshot to avoid inserting redundant entries for records already marked as deleted ([#654](https://github.com/dbt-labs/dbt-adapters/issues/654))
90
+
91
+ ### Contributors
92
+ - [@lpillmann](https://github.com/lpillmann) ([#654](https://github.com/dbt-labs/dbt-adapters/issues/654))
35
93
 
36
94
  ## dbt-adapters 1.16.0 - June 04, 2025
37
95
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dbt-adapters
3
- Version: 1.16.7
3
+ Version: 1.17.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/tree/main/dbt-adapters
6
6
  Project-URL: Documentation, https://docs.getdbt.com
@@ -0,0 +1 @@
1
+ version = "1.17.1"
@@ -104,7 +104,9 @@ from dbt.adapters.exceptions import (
104
104
  UnexpectedNonTimestampError,
105
105
  )
106
106
  from dbt.adapters.protocol import AdapterConfig, MacroContextGeneratorCallable
107
+ from dbt.adapters.events.logging import AdapterLogger
107
108
 
109
+ logger = AdapterLogger(__name__)
108
110
  if TYPE_CHECKING:
109
111
  import agate
110
112
 
@@ -154,15 +156,25 @@ def _catalog_filter_schemas(
154
156
  """Return a function that takes a row and decides if the row should be
155
157
  included in the catalog output.
156
158
  """
157
- schemas = frozenset((d.lower(), s.lower()) for d, s in used_schemas)
159
+ schemas = frozenset(
160
+ (d.lower(), s.lower()) for d, s in used_schemas if d is not None and s is not None
161
+ )
162
+ if null_schemas := [d for d, s in used_schemas if d is None or s is None]:
163
+ logger.debug(
164
+ f"used_schemas contains None for either database or schema, skipping {null_schemas}"
165
+ )
158
166
 
159
167
  def test(row: "agate.Row") -> bool:
160
168
  table_database = _expect_row_value("table_database", row)
161
169
  table_schema = _expect_row_value("table_schema", row)
162
170
  # the schema may be present but None, which is not an error and should
163
171
  # be filtered out
172
+
164
173
  if table_schema is None:
165
174
  return False
175
+ if table_database is None:
176
+ logger.debug(f"table_database is None, skipping {table_schema}")
177
+ return False
166
178
  return (table_database.lower(), table_schema.lower()) in schemas
167
179
 
168
180
  return test
@@ -376,12 +376,17 @@ class BaseRelation(FakeAPIObject, Hashable):
376
376
  return hash(self.render())
377
377
 
378
378
  def __str__(self) -> str:
379
- rendered = self.render() if self.limit is None else self.render_limited()
379
+ # TODO: This function seems to have more if's than it needs to. We should see if we can simplify it.
380
+ if self.is_function:
381
+ # If it's a function we skip all special rendering logic and just return the raw render
382
+ rendered = self.render()
383
+ else:
384
+ rendered = self.render() if self.limit is None else self.render_limited()
380
385
 
381
- # Limited subquery is wrapped by the event time filter subquery, and not the other way around.
382
- # This is because in the context of resolving limited refs, we care more about performance than reliably producing a sample of a certain size.
383
- if self.event_time_filter:
384
- rendered = self.render_event_time_filtered(rendered)
386
+ # Limited subquery is wrapped by the event time filter subquery, and not the other way around.
387
+ # This is because in the context of resolving limited refs, we care more about performance than reliably producing a sample of a certain size.
388
+ if self.event_time_filter:
389
+ rendered = self.render_event_time_filtered(rendered)
385
390
 
386
391
  return rendered
387
392
 
@@ -426,6 +431,10 @@ class BaseRelation(FakeAPIObject, Hashable):
426
431
  def is_pointer(self) -> bool:
427
432
  return self.type == RelationType.PointerTable
428
433
 
434
+ @property
435
+ def is_function(self) -> bool:
436
+ return self.type == RelationType.Function
437
+
429
438
  @classproperty
430
439
  def Table(cls) -> str:
431
440
  return str(RelationType.Table)
@@ -450,6 +459,10 @@ class BaseRelation(FakeAPIObject, Hashable):
450
459
  def PointerTable(cls) -> str:
451
460
  return str(RelationType.PointerTable)
452
461
 
462
+ @classproperty
463
+ def Function(cls) -> str:
464
+ return str(RelationType.Function)
465
+
453
466
  @classproperty
454
467
  def get_relation_type(cls) -> Type[RelationType]:
455
468
  return RelationType
@@ -22,6 +22,7 @@ class RelationType(StrEnum):
22
22
  # this is a "catch all" that is better than `None` == external to anything dbt is aware of
23
23
  External = "external"
24
24
  PointerTable = "pointer_table"
25
+ Function = "function"
25
26
 
26
27
 
27
28
  class MaterializationContract(Protocol):
@@ -0,0 +1,16 @@
1
+ {% materialization function, default %}
2
+ {% set existing_relation = load_cached_relation(this) %}
3
+ {% set target_relation = this.incorporate(type=this.Function) %}
4
+
5
+ {{ run_hooks(pre_hooks) }}
6
+
7
+ {% set function_type_macro = get_function_macro('scalar', 'sql') %}
8
+ {% set build_sql = function_type_macro(target_relation) %}
9
+
10
+ {{ function_execute_build_sql(build_sql, existing_relation, target_relation) }}
11
+
12
+ {{ run_hooks(post_hooks) }}
13
+
14
+ {{ return({'relations': [target_relation]}) }}
15
+
16
+ {% endmaterialization %}
@@ -0,0 +1,34 @@
1
+ {% macro function_execute_build_sql(build_sql, existing_relation, target_relation) %}
2
+ {{ return(adapter.dispatch('function_execute_build_sql', 'dbt')(build_sql, existing_relation, target_relation)) }}
3
+ {% endmacro %}
4
+
5
+ {% macro default__function_execute_build_sql(build_sql, existing_relation, target_relation) %}
6
+
7
+ {% set grant_config = config.get('grants') %}
8
+
9
+ {% call statement(name="main") %}
10
+ {{ build_sql }}
11
+ {% endcall %}
12
+
13
+ {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}
14
+ {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}
15
+
16
+ {% do persist_docs(target_relation, model) %}
17
+
18
+ {{ adapter.commit() }}
19
+
20
+ {% endmacro %}
21
+
22
+
23
+ {% macro get_function_macro(function_type, function_language) %}
24
+ {{ return(adapter.dispatch('get_function_macro', 'dbt')(function_type, function_language)) }}
25
+ {% endmacro %}
26
+
27
+ {% macro default__get_function_macro(function_type, function_language) %}
28
+ {% set macro_name = function_type ~ "_function_" ~ function_language %}
29
+ {% if not macro_name in context %}
30
+ {{ exceptions.raise_not_implemented(function_language ~ ' ' ~ function_type ~ ' function not implemented for adapter ' ~adapter.type()) }}
31
+ {% endif %}
32
+ {% set macro = context[macro_name] %}
33
+ {{ return(macro) }}
34
+ {% endmacro %}
@@ -0,0 +1,38 @@
1
+ {% macro scalar_function_sql(target_relation) %}
2
+ {{ return(adapter.dispatch('scalar_function_sql', 'dbt')(target_relation)) }}
3
+ {% endmacro %}
4
+
5
+ {% macro default__scalar_function_sql(target_relation) %}
6
+ {{ scalar_function_create_replace_signature_sql(target_relation) }}
7
+ {{ scalar_function_body_sql() }};
8
+ {% endmacro %}
9
+
10
+ {% macro scalar_function_create_replace_signature_sql(target_relation) %}
11
+ {{ return(adapter.dispatch('scalar_function_create_replace_signature_sql', 'dbt')(target_relation)) }}
12
+ {% endmacro %}
13
+
14
+ {% macro default__scalar_function_create_replace_signature_sql(target_relation) %}
15
+ CREATE OR REPLACE FUNCTION {{ target_relation.render() }} ({{ formatted_scalar_function_args_sql()}}) RETURNS {{ model.return_type.type }} AS
16
+ {% endmacro %}
17
+
18
+ {% macro formatted_scalar_function_args_sql() %}
19
+ {{ return(adapter.dispatch('formatted_scalar_function_args_sql', 'dbt')()) }}
20
+ {% endmacro %}
21
+
22
+ {% macro default__formatted_scalar_function_args_sql() %}
23
+ {% set args = [] %}
24
+ {% for arg in model.arguments -%}
25
+ {%- do args.append(arg.name ~ ' ' ~ arg.type) -%}
26
+ {%- endfor %}
27
+ {{ args | join(', ') }}
28
+ {% endmacro %}
29
+
30
+ {% macro scalar_function_body_sql() %}
31
+ {{ return(adapter.dispatch('scalar_function_body_sql', 'dbt')()) }}
32
+ {% endmacro %}
33
+
34
+ {% macro default__scalar_function_body_sql() %}
35
+ $$
36
+ {{ model.compiled_code }}
37
+ $$ LANGUAGE SQL
38
+ {% endmacro %}
@@ -8,7 +8,7 @@
8
8
  {% macro default__create_columns(relation, columns) %}
9
9
  {% for column in columns %}
10
10
  {% call statement() %}
11
- alter table {{ relation.render() }} add column "{{ column.name }}" {{ column.data_type }};
11
+ alter table {{ relation.render() }} add column {{ adapter.quote(column.name) }} {{ column.data_type }};
12
12
  {% endcall %}
13
13
  {% endfor %}
14
14
  {% endmacro %}
@@ -158,7 +158,12 @@
158
158
  and not (
159
159
  --avoid updating the record's valid_to if the latest entry is marked as deleted
160
160
  snapshotted_data.{{ columns.dbt_is_deleted }} = 'True'
161
- and snapshotted_data.{{ columns.dbt_valid_to }} is null
161
+ and
162
+ {% if config.get('dbt_valid_to_current') -%}
163
+ snapshotted_data.{{ columns.dbt_valid_to }} = {{ config.get('dbt_valid_to_current') }}
164
+ {%- else -%}
165
+ snapshotted_data.{{ columns.dbt_valid_to }} is null
166
+ {%- endif %}
162
167
  )
163
168
  {%- endif %}
164
169
  )
@@ -172,10 +177,10 @@
172
177
 
173
178
  select
174
179
  'insert' as dbt_change_type,
175
- {#
180
+ {#/*
176
181
  If a column has been added to the source it won't yet exist in the
177
182
  snapshotted table so we insert a null value as a placeholder for the column.
178
- #}
183
+ */#}
179
184
  {%- for col in source_sql_cols -%}
180
185
  {%- if col.name in snapshotted_cols -%}
181
186
  snapshotted_data.{{ adapter.quote(col.column) }},
@@ -202,7 +207,12 @@
202
207
  and not (
203
208
  --avoid inserting a new record if the latest one is marked as deleted
204
209
  snapshotted_data.{{ columns.dbt_is_deleted }} = 'True'
205
- and snapshotted_data.{{ columns.dbt_valid_to }} is null
210
+ and
211
+ {% if config.get('dbt_valid_to_current') -%}
212
+ snapshotted_data.{{ columns.dbt_valid_to }} = {{ config.get('dbt_valid_to_current') }}
213
+ {%- else -%}
214
+ snapshotted_data.{{ columns.dbt_valid_to }} is null
215
+ {%- endif %}
206
216
  )
207
217
 
208
218
  )
@@ -4,21 +4,28 @@
4
4
 
5
5
  {% set expected_rows = config.get('expected_rows') %}
6
6
  {% set expected_sql = config.get('expected_sql') %}
7
- {% set tested_expected_column_names = expected_rows[0].keys() if (expected_rows | length ) > 0 else get_columns_in_query(sql) %} %}
7
+ {% set tested_expected_column_names = expected_rows[0].keys() if (expected_rows | length ) > 0 else get_columns_in_query(sql) %}
8
8
 
9
9
  {%- set target_relation = this.incorporate(type='table') -%}
10
10
  {%- set temp_relation = make_temp_relation(target_relation)-%}
11
11
  {% do run_query(get_create_table_as_sql(True, temp_relation, get_empty_subquery_sql(sql))) %}
12
12
  {%- set columns_in_relation = adapter.get_columns_in_relation(temp_relation) -%}
13
13
  {%- set column_name_to_data_types = {} -%}
14
+ {%- set column_name_to_quoted = {} -%}
14
15
  {%- for column in columns_in_relation -%}
15
16
  {%- do column_name_to_data_types.update({column.name|lower: column.data_type}) -%}
17
+ {%- do column_name_to_quoted.update({column.name|lower: column.quoted}) -%}
18
+ {%- endfor -%}
19
+
20
+ {%- set expected_column_names_quoted = [] -%}
21
+ {%- for column_name in tested_expected_column_names -%}
22
+ {%- do expected_column_names_quoted.append(column_name_to_quoted[column_name|lower]) -%}
16
23
  {%- endfor -%}
17
24
 
18
25
  {% if not expected_sql %}
19
- {% set expected_sql = get_expected_sql(expected_rows, column_name_to_data_types) %}
26
+ {% set expected_sql = get_expected_sql(expected_rows, column_name_to_data_types, column_name_to_quoted) %}
20
27
  {% endif %}
21
- {% set unit_test_sql = get_unit_test_sql(sql, expected_sql, tested_expected_column_names) %}
28
+ {% set unit_test_sql = get_unit_test_sql(sql, expected_sql, expected_column_names_quoted) %}
22
29
 
23
30
  {% call statement('main', fetch_result=True) -%}
24
31
 
@@ -8,9 +8,12 @@
8
8
  {%- set columns_in_relation = adapter.get_columns_in_relation(this_or_defer_relation) -%}
9
9
 
10
10
  {%- set column_name_to_data_types = {} -%}
11
+ {%- set column_name_to_quoted = {} -%}
11
12
  {%- for column in columns_in_relation -%}
13
+
12
14
  {#-- This needs to be a case-insensitive comparison --#}
13
15
  {%- do column_name_to_data_types.update({column.name|lower: column.data_type}) -%}
16
+ {%- do column_name_to_quoted.update({column.name|lower: column.quoted}) -%}
14
17
  {%- endfor -%}
15
18
  {%- endif -%}
16
19
 
@@ -29,7 +32,7 @@
29
32
  {%- set default_row_copy = default_row.copy() -%}
30
33
  {%- do default_row_copy.update(formatted_row) -%}
31
34
  select
32
- {%- for column_name, column_value in default_row_copy.items() %} {{ column_value }} as {{ column_name }}{% if not loop.last -%}, {%- endif %}
35
+ {%- for column_name, column_value in default_row_copy.items() %} {{ column_value }} as {{ column_name_to_quoted[column_name] }}{% if not loop.last -%}, {%- endif %}
33
36
  {%- endfor %}
34
37
  {%- if not loop.last %}
35
38
  union all
@@ -38,14 +41,14 @@ union all
38
41
 
39
42
  {%- if (rows | length) == 0 -%}
40
43
  select
41
- {%- for column_name, column_value in default_row.items() %} {{ column_value }} as {{ column_name }}{% if not loop.last -%},{%- endif %}
44
+ {%- for column_name, column_value in default_row.items() %} {{ column_value }} as {{ column_name_to_quoted[column_name] }}{% if not loop.last -%},{%- endif %}
42
45
  {%- endfor %}
43
46
  limit 0
44
47
  {%- endif -%}
45
48
  {% endmacro %}
46
49
 
47
50
 
48
- {% macro get_expected_sql(rows, column_name_to_data_types) %}
51
+ {% macro get_expected_sql(rows, column_name_to_data_types, column_name_to_quoted) %}
49
52
 
50
53
  {%- if (rows | length) == 0 -%}
51
54
  select * from dbt_internal_unit_test_actual
@@ -54,7 +57,7 @@ union all
54
57
  {%- for row in rows -%}
55
58
  {%- set formatted_row = format_row(row, column_name_to_data_types) -%}
56
59
  select
57
- {%- for column_name, column_value in formatted_row.items() %} {{ column_value }} as {{ column_name }}{% if not loop.last -%}, {%- endif %}
60
+ {%- for column_name, column_value in formatted_row.items() %} {{ column_value }} as {{ column_name_to_quoted[column_name] }}{% if not loop.last -%}, {%- endif %}
58
61
  {%- endfor %}
59
62
  {%- if not loop.last %}
60
63
  union all
@@ -1,21 +0,0 @@
1
- ## dbt-adapters 1.16.7 - September 10, 2025
2
-
3
- ### Fixes
4
-
5
- - Fix Snapshot to avoid inserting redundant entries for records already marked as deleted ([#654](https://github.com/dbt-labs/dbt-adapters/issues/654))
6
- - Skip cloning objects if the target and defferal are the same ([#1198](https://github.com/dbt-labs/dbt-adapters/issues/1198))
7
- - Update dbt snapshot staging table creation to handle new source columns when using hard_deletes == 'new_record' ([#852](https://github.com/dbt-labs/dbt-adapters/issues/852))
8
- - update alter_relation_add_remove_columns to quote column names ([#63](https://github.com/dbt-labs/dbt-adapters/issues/63))
9
-
10
- ### Under the Hood
11
-
12
- - Record adapter.add_query as Available record ([#1285](https://github.com/dbt-labs/dbt-adapters/issues/1285))
13
- - Record adapter.list_relations_without_caching as Available record ([#1308](https://github.com/dbt-labs/dbt-adapters/issues/1308))
14
-
15
- ### Dependencies
16
-
17
- - upgrade protobuf to 6.0 ([#1259](https://github.com/dbt-labs/dbt-adapters/pull/1259))
18
-
19
- ### Contributors
20
- - [@jasonlin45](https://github.com/jasonlin45) ([#1308](https://github.com/dbt-labs/dbt-adapters/issues/1308))
21
- - [@lpillmann](https://github.com/lpillmann) ([#654](https://github.com/dbt-labs/dbt-adapters/issues/654))
@@ -1 +0,0 @@
1
- version = "1.16.7"