dbt-firebolt 1.8.3__tar.gz → 1.9.1__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/PKG-INFO +12 -3
  2. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/README.md +1 -1
  3. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/adapters/firebolt/__init__.py +1 -1
  4. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/adapters/firebolt/connections.py +4 -2
  5. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/adapters/firebolt/impl.py +38 -8
  6. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/adapters.sql +8 -6
  7. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/dbt_external_tables/create_external_table.sql +7 -3
  8. dbt_firebolt-1.9.1/dbt/include/firebolt/macros/materializations/snapshot_merge.sql +19 -0
  9. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/relations/table/create.sql +6 -2
  10. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt_firebolt.egg-info/PKG-INFO +13 -4
  11. dbt_firebolt-1.9.1/dbt_firebolt.egg-info/SOURCES.txt +74 -0
  12. dbt_firebolt-1.8.3/dbt_firebolt.egg-info/SOURCES.txt +0 -65
  13. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/LICENSE +0 -0
  14. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/MANIFEST.in +0 -0
  15. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/adapters/firebolt/__version__.py +0 -0
  16. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/adapters/firebolt/column.py +0 -0
  17. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/adapters/firebolt/relation.py +0 -0
  18. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/adapters/firebolt/relation_configs/__init__.py +0 -0
  19. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/__init__.py +0 -0
  20. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/dbt_project.yml +0 -0
  21. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/adapters/apply_grants.sql +0 -0
  22. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/adapters/relation.sql +0 -0
  23. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/catalog.sql +0 -0
  24. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/dbt_external_tables/dropif.sql +0 -0
  25. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/dbt_external_tables/get_external_build_plan.sql +0 -0
  26. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/materializations/clone.sql +0 -0
  27. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/materializations/materialized_view.sql +0 -0
  28. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/materializations/models/incremental/column_helpers.sql +0 -0
  29. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/materializations/models/incremental/incremental.sql +0 -0
  30. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/materializations/models/incremental/is_incremental.sql +0 -0
  31. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/materializations/models/incremental/merge.sql +0 -0
  32. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/materializations/models/incremental/on_schema_change.sql +0 -0
  33. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/materializations/models/incremental/strategies.sql +0 -0
  34. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/materializations/seed.sql +0 -0
  35. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/materializations/table.sql +0 -0
  36. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/materializations/test.sql +0 -0
  37. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/materializations/view.sql +0 -0
  38. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/relations/materialized_view/alter.sql +0 -0
  39. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/relations/materialized_view/create.sql +0 -0
  40. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/relations/materialized_view/describe.sql +0 -0
  41. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/relations/materialized_view/drop.sql +0 -0
  42. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/relations/materialized_view/refresh.sql +0 -0
  43. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/relations/table/drop.sql +0 -0
  44. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/relations/table/rename.sql +0 -0
  45. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/relations/table/replace.sql +0 -0
  46. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/relations/view/create.sql +0 -0
  47. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/relations/view/drop.sql +0 -0
  48. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/relations/view/rename.sql +0 -0
  49. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/relations/view/replace.sql +0 -0
  50. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/utils/array_append.sql +0 -0
  51. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/utils/array_concat.sql +0 -0
  52. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/utils/array_construct.sql +0 -0
  53. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/utils/bool_or.sql +0 -0
  54. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/utils/cast_bool_to_text.sql +0 -0
  55. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/utils/dateadd.sql +0 -0
  56. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/utils/datediff.sql +0 -0
  57. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/utils/except.sql +0 -0
  58. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/utils/intersect.sql +0 -0
  59. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/utils/listagg.sql +0 -0
  60. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/utils/position.sql +0 -0
  61. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/utils/right.sql +0 -0
  62. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/utils/split_part.sql +0 -0
  63. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt/include/firebolt/macros/utils/timestamps.sql +0 -0
  64. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt_firebolt.egg-info/dependency_links.txt +0 -0
  65. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt_firebolt.egg-info/requires.txt +0 -0
  66. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/dbt_firebolt.egg-info/top_level.txt +0 -0
  67. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/pyproject.toml +0 -0
  68. {dbt_firebolt-1.8.3 → dbt_firebolt-1.9.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dbt_firebolt
3
- Version: 1.8.3
3
+ Version: 1.9.1
4
4
  Summary: The Firebolt adapter plugin for dbt (data build tool)
5
5
  Home-page: https://github.com/firebolt-db/dbt-firebolt
6
6
  Author: Firebolt
@@ -18,8 +18,17 @@ Classifier: Programming Language :: Python :: 3.11
18
18
  Classifier: Programming Language :: Python :: 3.12
19
19
  Requires-Python: >=3.8
20
20
  Description-Content-Type: text/markdown
21
- Provides-Extra: dev
22
21
  License-File: LICENSE
22
+ Requires-Dist: dbt-adapters<2.0,>=1.0
23
+ Requires-Dist: dbt-core>=1.8.0
24
+ Requires-Dist: firebolt-sdk>=1.5.0
25
+ Requires-Dist: pydantic>=0.23
26
+ Provides-Extra: dev
27
+ Requires-Dist: allure-pytest==2.*; extra == "dev"
28
+ Requires-Dist: dbt-tests-adapter~=1.6; extra == "dev"
29
+ Requires-Dist: mypy==1.4.1; extra == "dev"
30
+ Requires-Dist: pre-commit==3.5.0; extra == "dev"
31
+ Requires-Dist: pytest==7.*; extra == "dev"
23
32
 
24
33
  <img width="1113" alt="Screen Shot 2021-12-10 at 1 09 09 PM" src="https://user-images.githubusercontent.com/7674553/145641621-a7dabe78-da92-4f0a-bbd2-54ccf7f34b57.png">
25
34
 
@@ -69,7 +78,7 @@ The table below shows which dbt and Firebolt features are supported by the adapt
69
78
  | Incremental materializations - insert_overwrite | :white_check_mark: |
70
79
  | Incremental materializations - delete+insert | :white_check_mark: |
71
80
  | Incremental materializations - merge | :x: |
72
- | Snapshots | :x: |
81
+ | Snapshots | :white_check_mark: |
73
82
  | Seeds | :white_check_mark: |
74
83
  | Tests | :white_check_mark: |
75
84
  | Documentation | :white_check_mark: |
@@ -46,7 +46,7 @@ The table below shows which dbt and Firebolt features are supported by the adapt
46
46
  | Incremental materializations - insert_overwrite | :white_check_mark: |
47
47
  | Incremental materializations - delete+insert | :white_check_mark: |
48
48
  | Incremental materializations - merge | :x: |
49
- | Snapshots | :x: |
49
+ | Snapshots | :white_check_mark: |
50
50
  | Seeds | :white_check_mark: |
51
51
  | Tests | :white_check_mark: |
52
52
  | Documentation | :white_check_mark: |
@@ -7,7 +7,7 @@ from dbt.adapters.firebolt.connections import (
7
7
  from dbt.adapters.firebolt.impl import FireboltAdapter
8
8
  from dbt.include import firebolt
9
9
 
10
- __version__ = "1.8.3"
10
+ __version__ = "1.9.1"
11
11
 
12
12
  Plugin = AdapterPlugin(
13
13
  adapter=FireboltAdapter, # type: ignore
@@ -20,6 +20,7 @@ from dbt_common.exceptions import (
20
20
  )
21
21
  from firebolt.client import DEFAULT_API_URL
22
22
  from firebolt.client.auth import Auth, ClientCredentials, UsernamePassword
23
+ from firebolt.common._types import ExtendedType
23
24
  from firebolt.db import ARRAY, DECIMAL
24
25
  from firebolt.db import connect as sdk_connect
25
26
  from firebolt.db.connection import Connection as SDKConnection
@@ -191,8 +192,8 @@ class FireboltConnectionManager(SQLConnectionManager):
191
192
  raise NotImplementedError('`cancel` is not implemented for this adapter!')
192
193
 
193
194
  @classmethod
194
- def data_type_code_to_name( # type: ignore[override] # FIR-29423
195
- cls, type_code: Union[type, ARRAY, DECIMAL]
195
+ def data_type_code_to_name(
196
+ cls, type_code: Union[type, ExtendedType] # type: ignore[override] # FIR-29423
196
197
  ) -> str:
197
198
  """
198
199
  Convert a Firebolt data type code to a string representing the data type.
@@ -218,6 +219,7 @@ class FireboltConnectionManager(SQLConnectionManager):
218
219
  return 'bytea'
219
220
  else:
220
221
  return 'text'
222
+ return 'text'
221
223
 
222
224
 
223
225
  def _determine_auth(credentials: FireboltCredentials) -> Auth:
@@ -1,7 +1,6 @@
1
1
  import re
2
2
  import time
3
3
  from dataclasses import dataclass
4
- from datetime import datetime
5
4
  from typing import Any, List, Mapping, Optional, Union
6
5
 
7
6
  import agate
@@ -29,21 +28,45 @@ from dbt.adapters.firebolt.connections import FireboltConnectionManager
29
28
  from dbt.adapters.firebolt.relation import FireboltRelation
30
29
 
31
30
 
31
+ def quote_columns(columns: Union[str, List[str]]) -> Union[str, List[str]]:
32
+ if isinstance(columns, str):
33
+ return f'"{columns}"'
34
+ quoted_columns = []
35
+ for col in columns:
36
+ if col.startswith('"') and col.endswith('"'):
37
+ quoted_columns.append(col)
38
+ else:
39
+ quoted_columns.append(f'"{col}"')
40
+ return quoted_columns
41
+
42
+
32
43
  @dataclass
33
44
  class FireboltIndexConfig(dbtClassMixin):
34
45
  index_type: str
46
+ index_name: Optional[str] = None
35
47
  join_columns: Optional[Union[str, List[str]]] = None
36
48
  key_columns: Optional[Union[str, List[str]]] = None
37
49
  dimension_column: Optional[Union[str, List[str]]] = None
38
50
  aggregation: Optional[Union[str, List[str]]] = None
39
51
 
52
+ def __post_init__(self) -> None:
53
+ # quote unquoted columns
54
+ if self.join_columns:
55
+ self.join_columns = quote_columns(self.join_columns)
56
+ if self.key_columns:
57
+ self.key_columns = quote_columns(self.key_columns)
58
+ if self.dimension_column:
59
+ self.dimension_column = quote_columns(self.dimension_column)
60
+
40
61
  def render_name(self, relation: FireboltRelation) -> str:
41
62
  """
42
63
  Name an index according to the following format, joined by `_`:
43
64
  index type, relation name, key/join columns, timestamp (unix & UTC)
44
65
  example index name: join_my_model_customer_id_1633504263.
45
66
  """
46
- now_unix = str(int(time.mktime(datetime.utcnow().timetuple())))
67
+ if self.index_name:
68
+ return self.index_name
69
+ now_unix = str(int(time.time()))
47
70
  # If column_names is a list with > 1 members, join with _,
48
71
  # otherwise do not. We were getting index names like
49
72
  # join__idx__emf_customers__f_i_r_s_t___n_a_m_e__165093112.
@@ -51,14 +74,23 @@ class FireboltIndexConfig(dbtClassMixin):
51
74
  spine_col = (
52
75
  '_'.join(column_names) if isinstance(column_names, list) else column_names
53
76
  )
77
+ # Additional hash to ensure uniqueness after spaces are removed
78
+ column_hash = str(hash(spine_col))[:5]
54
79
  inputs = [
55
80
  f'{self.index_type}_idx',
56
81
  relation.identifier,
57
82
  spine_col,
83
+ column_hash,
58
84
  now_unix,
59
85
  ]
60
- string = '__'.join([x for x in inputs if x is not None])
61
- return string
86
+ index_name = '__'.join([x for x in inputs if x is not None])
87
+ if len(index_name) > 255:
88
+ # Firebolt index names must be <= 255 characters.
89
+ # If the index name is too long, hash it.
90
+ return f'{self.index_type}_idx_{hash(index_name)}'
91
+ # Remove any spaces or quotes from the index name.
92
+ index_name = index_name.replace(' ', '_').replace('"', '')
93
+ return index_name
62
94
 
63
95
  @classmethod
64
96
  def parse(cls, raw_index: Optional[Mapping]) -> Optional['FireboltIndexConfig']:
@@ -88,13 +120,12 @@ class FireboltIndexConfig(dbtClassMixin):
88
120
  'for join indexes.'
89
121
  )
90
122
  if index_config.index_type.upper() == 'AGGREGATING' and not (
91
- index_config.key_columns and index_config.aggregation
123
+ index_config.aggregation
92
124
  ):
93
125
  raise CompilationError(
94
126
  'Invalid aggregating index definition:\n'
95
127
  f' Got: {index_config}.\n'
96
- ' key_columns and aggregation must be specified '
97
- 'for aggregating indexes.'
128
+ ' aggregation must be specified for aggregating indexes.'
98
129
  )
99
130
  return index_config
100
131
  except ValidationError as exc:
@@ -274,7 +305,6 @@ class FireboltAdapter(SQLAdapter):
274
305
  columns: the number of rows that are different between the two
275
306
  relations and the number of mismatched rows.
276
307
  """
277
- # This method only really exists for test reasons.
278
308
  names: List[str]
279
309
  if column_names is None:
280
310
  columns = self.get_columns_in_relation(relation_a)
@@ -75,18 +75,20 @@
75
75
  create_statement (str): either "CREATE JOIN INDEX" or
76
76
  "CREATE AND GENERATE AGGREGATING INDEX"
77
77
  spine_col ([str]):
78
- if agg index, key columns
78
+ if agg index, key columns - can be none
79
79
  if join index, join column
80
80
  other_col ([str]):
81
81
  if agg index, aggregating columns
82
82
  if join index, dimension column
83
83
  #}
84
84
  {{ create_statement }} "{{ index_name }}" ON {{ relation }} (
85
- {% if spine_col is iterable and spine_col is not string -%}
86
- {{ spine_col | join(', ') }},
87
- {% else -%}
88
- {{ spine_col }},
89
- {% endif -%}
85
+ {% if spine_col -%}
86
+ {% if spine_col is iterable and spine_col is not string -%}
87
+ {{ spine_col | join(', ') }},
88
+ {% else -%}
89
+ {{ spine_col }},
90
+ {% endif -%}
91
+ {%- endif -%}
90
92
  {% if other_col is iterable and other_col is not string -%}
91
93
  {{ other_col | join(', ') }}
92
94
  {%- else -%}
@@ -51,6 +51,7 @@
51
51
  {# COPY FROM is only available in Firebolt 2.0. #}
52
52
  {%- set external = source_node.external -%}
53
53
  {%- set credentials = external.credentials -%}
54
+ {%- set where_clause = external.where -%}
54
55
  {%- set options = external.options -%}
55
56
  {%- set csv_options = options.csv_options -%}
56
57
  {%- set error_file_credentials = options.error_file_credentials -%}
@@ -75,7 +76,7 @@
75
76
  )
76
77
  {%- endif %}
77
78
  FROM '{{external.url}}'
78
- {%- if options %}
79
+ {%- if options or credentials %}
79
80
  WITH
80
81
  {%- if options.object_pattern %}
81
82
  PATTERN = '{{options.object_pattern}}'
@@ -130,8 +131,11 @@
130
131
  TIMESTAMP_FORMAT = '{{ csv_options.timestamp_format }}'
131
132
  {%- endif %}
132
133
  {%- endif %}
134
+ {%- if credentials %}
135
+ CREDENTIALS = (AWS_KEY_ID = '{{credentials.aws_key_id}}' AWS_SECRET_KEY = '{{credentials.aws_secret_key}}')
136
+ {%- endif %}
133
137
  {%- endif %}
134
- {%- if credentials %}
135
- CREDENTIALS = (AWS_KEY_ID = '{{credentials.aws_key_id}}' AWS_SECRET_KEY = '{{credentials.aws_secret_key}}')
138
+ {%- if where_clause %}
139
+ WHERE {{ where_clause }}
136
140
  {%- endif %}
137
141
  {% endmacro %}
@@ -0,0 +1,19 @@
1
+ {% macro firebolt__snapshot_merge_sql(target, source, insert_cols) -%}
2
+ {%- set insert_cols_csv = insert_cols | join(', ') -%}
3
+
4
+ UPDATE {{ target.render() }} AS DBT_INTERNAL_DEST
5
+ SET dbt_valid_to = DBT_INTERNAL_SOURCE.dbt_valid_to
6
+ FROM {{ source }} AS DBT_INTERNAL_SOURCE
7
+ WHERE DBT_INTERNAL_SOURCE.dbt_scd_id = DBT_INTERNAL_DEST.dbt_scd_id
8
+ AND DBT_INTERNAL_DEST.dbt_valid_to IS NULL
9
+ AND DBT_INTERNAL_SOURCE.dbt_change_type IN ('update', 'delete');
10
+
11
+ INSERT INTO {{ target.render() }} ({{ insert_cols_csv }})
12
+ SELECT {{ insert_cols_csv }}
13
+ FROM {{ source }} AS DBT_INTERNAL_SOURCE
14
+ WHERE DBT_INTERNAL_SOURCE.dbt_scd_id NOT IN (
15
+ SELECT dbt_scd_id FROM {{ target.render() }}
16
+ )
17
+ AND DBT_INTERNAL_SOURCE.dbt_change_type = 'insert';
18
+
19
+ {% endmacro %}
@@ -24,6 +24,10 @@
24
24
  ) }}
25
25
  {%- endif -%}
26
26
 
27
+ {%- if temporary -%}
28
+ {%- do adapter.drop_relation(relation) -%}
29
+ {%- endif -%}
30
+
27
31
  {%- set table_type = config.get(
28
32
  'table_type',
29
33
  default = 'dimension'
@@ -49,9 +53,9 @@
49
53
 
50
54
  {%- if primary_index %}
51
55
  primary INDEX {% if primary_index is iterable and primary_index is not string %}
52
- {{ primary_index | join(', ') }}
56
+ "{{ primary_index | join('", "') }}"
53
57
  {%- else -%}
54
- {{ primary_index }}
58
+ "{{ primary_index }}"
55
59
  {%- endif -%}
56
60
  {%- endif -%}
57
61
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
- Name: dbt-firebolt
3
- Version: 1.8.3
2
+ Name: dbt_firebolt
3
+ Version: 1.9.1
4
4
  Summary: The Firebolt adapter plugin for dbt (data build tool)
5
5
  Home-page: https://github.com/firebolt-db/dbt-firebolt
6
6
  Author: Firebolt
@@ -18,8 +18,17 @@ Classifier: Programming Language :: Python :: 3.11
18
18
  Classifier: Programming Language :: Python :: 3.12
19
19
  Requires-Python: >=3.8
20
20
  Description-Content-Type: text/markdown
21
- Provides-Extra: dev
22
21
  License-File: LICENSE
22
+ Requires-Dist: dbt-adapters<2.0,>=1.0
23
+ Requires-Dist: dbt-core>=1.8.0
24
+ Requires-Dist: firebolt-sdk>=1.5.0
25
+ Requires-Dist: pydantic>=0.23
26
+ Provides-Extra: dev
27
+ Requires-Dist: allure-pytest==2.*; extra == "dev"
28
+ Requires-Dist: dbt-tests-adapter~=1.6; extra == "dev"
29
+ Requires-Dist: mypy==1.4.1; extra == "dev"
30
+ Requires-Dist: pre-commit==3.5.0; extra == "dev"
31
+ Requires-Dist: pytest==7.*; extra == "dev"
23
32
 
24
33
  <img width="1113" alt="Screen Shot 2021-12-10 at 1 09 09 PM" src="https://user-images.githubusercontent.com/7674553/145641621-a7dabe78-da92-4f0a-bbd2-54ccf7f34b57.png">
25
34
 
@@ -69,7 +78,7 @@ The table below shows which dbt and Firebolt features are supported by the adapt
69
78
  | Incremental materializations - insert_overwrite | :white_check_mark: |
70
79
  | Incremental materializations - delete+insert | :white_check_mark: |
71
80
  | Incremental materializations - merge | :x: |
72
- | Snapshots | :x: |
81
+ | Snapshots | :white_check_mark: |
73
82
  | Seeds | :white_check_mark: |
74
83
  | Tests | :white_check_mark: |
75
84
  | Documentation | :white_check_mark: |
@@ -0,0 +1,74 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ pyproject.toml
5
+ setup.cfg
6
+ ./dbt/adapters/firebolt/__init__.py
7
+ ./dbt/adapters/firebolt/__version__.py
8
+ ./dbt/adapters/firebolt/column.py
9
+ ./dbt/adapters/firebolt/connections.py
10
+ ./dbt/adapters/firebolt/impl.py
11
+ ./dbt/adapters/firebolt/relation.py
12
+ ./dbt/adapters/firebolt/relation_configs/__init__.py
13
+ ./dbt/include/firebolt/__init__.py
14
+ dbt/adapters/firebolt/__init__.py
15
+ dbt/adapters/firebolt/__version__.py
16
+ dbt/adapters/firebolt/column.py
17
+ dbt/adapters/firebolt/connections.py
18
+ dbt/adapters/firebolt/impl.py
19
+ dbt/adapters/firebolt/relation.py
20
+ dbt/adapters/firebolt/relation_configs/__init__.py
21
+ dbt/include/firebolt/__init__.py
22
+ dbt/include/firebolt/dbt_project.yml
23
+ dbt/include/firebolt/macros/adapters.sql
24
+ dbt/include/firebolt/macros/catalog.sql
25
+ dbt/include/firebolt/macros/adapters/apply_grants.sql
26
+ dbt/include/firebolt/macros/adapters/relation.sql
27
+ dbt/include/firebolt/macros/dbt_external_tables/create_external_table.sql
28
+ dbt/include/firebolt/macros/dbt_external_tables/dropif.sql
29
+ dbt/include/firebolt/macros/dbt_external_tables/get_external_build_plan.sql
30
+ dbt/include/firebolt/macros/materializations/clone.sql
31
+ dbt/include/firebolt/macros/materializations/materialized_view.sql
32
+ dbt/include/firebolt/macros/materializations/seed.sql
33
+ dbt/include/firebolt/macros/materializations/snapshot_merge.sql
34
+ dbt/include/firebolt/macros/materializations/table.sql
35
+ dbt/include/firebolt/macros/materializations/test.sql
36
+ dbt/include/firebolt/macros/materializations/view.sql
37
+ dbt/include/firebolt/macros/materializations/models/incremental/column_helpers.sql
38
+ dbt/include/firebolt/macros/materializations/models/incremental/incremental.sql
39
+ dbt/include/firebolt/macros/materializations/models/incremental/is_incremental.sql
40
+ dbt/include/firebolt/macros/materializations/models/incremental/merge.sql
41
+ dbt/include/firebolt/macros/materializations/models/incremental/on_schema_change.sql
42
+ dbt/include/firebolt/macros/materializations/models/incremental/strategies.sql
43
+ dbt/include/firebolt/macros/relations/materialized_view/alter.sql
44
+ dbt/include/firebolt/macros/relations/materialized_view/create.sql
45
+ dbt/include/firebolt/macros/relations/materialized_view/describe.sql
46
+ dbt/include/firebolt/macros/relations/materialized_view/drop.sql
47
+ dbt/include/firebolt/macros/relations/materialized_view/refresh.sql
48
+ dbt/include/firebolt/macros/relations/table/create.sql
49
+ dbt/include/firebolt/macros/relations/table/drop.sql
50
+ dbt/include/firebolt/macros/relations/table/rename.sql
51
+ dbt/include/firebolt/macros/relations/table/replace.sql
52
+ dbt/include/firebolt/macros/relations/view/create.sql
53
+ dbt/include/firebolt/macros/relations/view/drop.sql
54
+ dbt/include/firebolt/macros/relations/view/rename.sql
55
+ dbt/include/firebolt/macros/relations/view/replace.sql
56
+ dbt/include/firebolt/macros/utils/array_append.sql
57
+ dbt/include/firebolt/macros/utils/array_concat.sql
58
+ dbt/include/firebolt/macros/utils/array_construct.sql
59
+ dbt/include/firebolt/macros/utils/bool_or.sql
60
+ dbt/include/firebolt/macros/utils/cast_bool_to_text.sql
61
+ dbt/include/firebolt/macros/utils/dateadd.sql
62
+ dbt/include/firebolt/macros/utils/datediff.sql
63
+ dbt/include/firebolt/macros/utils/except.sql
64
+ dbt/include/firebolt/macros/utils/intersect.sql
65
+ dbt/include/firebolt/macros/utils/listagg.sql
66
+ dbt/include/firebolt/macros/utils/position.sql
67
+ dbt/include/firebolt/macros/utils/right.sql
68
+ dbt/include/firebolt/macros/utils/split_part.sql
69
+ dbt/include/firebolt/macros/utils/timestamps.sql
70
+ dbt_firebolt.egg-info/PKG-INFO
71
+ dbt_firebolt.egg-info/SOURCES.txt
72
+ dbt_firebolt.egg-info/dependency_links.txt
73
+ dbt_firebolt.egg-info/requires.txt
74
+ dbt_firebolt.egg-info/top_level.txt
@@ -1,65 +0,0 @@
1
- LICENSE
2
- MANIFEST.in
3
- README.md
4
- pyproject.toml
5
- setup.cfg
6
- ./dbt/adapters/firebolt/__init__.py
7
- ./dbt/adapters/firebolt/__version__.py
8
- ./dbt/adapters/firebolt/column.py
9
- ./dbt/adapters/firebolt/connections.py
10
- ./dbt/adapters/firebolt/impl.py
11
- ./dbt/adapters/firebolt/relation.py
12
- ./dbt/adapters/firebolt/relation_configs/__init__.py
13
- ./dbt/include/firebolt/__init__.py
14
- ./dbt/include/firebolt/dbt_project.yml
15
- ./dbt/include/firebolt/macros/adapters.sql
16
- ./dbt/include/firebolt/macros/catalog.sql
17
- ./dbt/include/firebolt/macros/adapters/apply_grants.sql
18
- ./dbt/include/firebolt/macros/adapters/relation.sql
19
- ./dbt/include/firebolt/macros/dbt_external_tables/create_external_table.sql
20
- ./dbt/include/firebolt/macros/dbt_external_tables/dropif.sql
21
- ./dbt/include/firebolt/macros/dbt_external_tables/get_external_build_plan.sql
22
- ./dbt/include/firebolt/macros/materializations/clone.sql
23
- ./dbt/include/firebolt/macros/materializations/materialized_view.sql
24
- ./dbt/include/firebolt/macros/materializations/seed.sql
25
- ./dbt/include/firebolt/macros/materializations/table.sql
26
- ./dbt/include/firebolt/macros/materializations/test.sql
27
- ./dbt/include/firebolt/macros/materializations/view.sql
28
- ./dbt/include/firebolt/macros/materializations/models/incremental/column_helpers.sql
29
- ./dbt/include/firebolt/macros/materializations/models/incremental/incremental.sql
30
- ./dbt/include/firebolt/macros/materializations/models/incremental/is_incremental.sql
31
- ./dbt/include/firebolt/macros/materializations/models/incremental/merge.sql
32
- ./dbt/include/firebolt/macros/materializations/models/incremental/on_schema_change.sql
33
- ./dbt/include/firebolt/macros/materializations/models/incremental/strategies.sql
34
- ./dbt/include/firebolt/macros/relations/materialized_view/alter.sql
35
- ./dbt/include/firebolt/macros/relations/materialized_view/create.sql
36
- ./dbt/include/firebolt/macros/relations/materialized_view/describe.sql
37
- ./dbt/include/firebolt/macros/relations/materialized_view/drop.sql
38
- ./dbt/include/firebolt/macros/relations/materialized_view/refresh.sql
39
- ./dbt/include/firebolt/macros/relations/table/create.sql
40
- ./dbt/include/firebolt/macros/relations/table/drop.sql
41
- ./dbt/include/firebolt/macros/relations/table/rename.sql
42
- ./dbt/include/firebolt/macros/relations/table/replace.sql
43
- ./dbt/include/firebolt/macros/relations/view/create.sql
44
- ./dbt/include/firebolt/macros/relations/view/drop.sql
45
- ./dbt/include/firebolt/macros/relations/view/rename.sql
46
- ./dbt/include/firebolt/macros/relations/view/replace.sql
47
- ./dbt/include/firebolt/macros/utils/array_append.sql
48
- ./dbt/include/firebolt/macros/utils/array_concat.sql
49
- ./dbt/include/firebolt/macros/utils/array_construct.sql
50
- ./dbt/include/firebolt/macros/utils/bool_or.sql
51
- ./dbt/include/firebolt/macros/utils/cast_bool_to_text.sql
52
- ./dbt/include/firebolt/macros/utils/dateadd.sql
53
- ./dbt/include/firebolt/macros/utils/datediff.sql
54
- ./dbt/include/firebolt/macros/utils/except.sql
55
- ./dbt/include/firebolt/macros/utils/intersect.sql
56
- ./dbt/include/firebolt/macros/utils/listagg.sql
57
- ./dbt/include/firebolt/macros/utils/position.sql
58
- ./dbt/include/firebolt/macros/utils/right.sql
59
- ./dbt/include/firebolt/macros/utils/split_part.sql
60
- ./dbt/include/firebolt/macros/utils/timestamps.sql
61
- dbt_firebolt.egg-info/PKG-INFO
62
- dbt_firebolt.egg-info/SOURCES.txt
63
- dbt_firebolt.egg-info/dependency_links.txt
64
- dbt_firebolt.egg-info/requires.txt
65
- dbt_firebolt.egg-info/top_level.txt
File without changes
File without changes
File without changes