dbt-adapters 1.1.0rc1__py3-none-any.whl → 1.1.1__py3-none-any.whl
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.
- dbt/adapters/__about__.py +1 -1
- dbt/adapters/__init__.py +1 -0
- dbt/adapters/base/connections.py +3 -1
- dbt/adapters/base/impl.py +9 -8
- dbt/adapters/base/relation.py +13 -2
- dbt/adapters/contracts/connection.py +1 -1
- dbt/adapters/contracts/relation.py +2 -4
- dbt/adapters/events/README.md +1 -1
- dbt/adapters/factory.py +6 -9
- dbt/adapters/protocol.py +26 -52
- dbt/adapters/relation_configs/README.md +1 -1
- dbt/adapters/relation_configs/config_change.py +3 -1
- dbt/include/global_project/macros/adapters/columns.sql +1 -1
- dbt/include/global_project/macros/materializations/tests/helpers.sql +1 -1
- dbt/include/global_project/macros/unit_test_sql/get_fixture_sql.sql +1 -1
- dbt/include/global_project/macros/utils/date.sql +10 -0
- {dbt_adapters-1.1.0rc1.dist-info → dbt_adapters-1.1.1.dist-info}/METADATA +2 -1
- {dbt_adapters-1.1.0rc1.dist-info → dbt_adapters-1.1.1.dist-info}/RECORD +20 -19
- {dbt_adapters-1.1.0rc1.dist-info → dbt_adapters-1.1.1.dist-info}/WHEEL +1 -1
- {dbt_adapters-1.1.0rc1.dist-info → dbt_adapters-1.1.1.dist-info}/licenses/LICENSE +0 -0
dbt/adapters/__about__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
version = "1.1.
|
|
1
|
+
version = "1.1.1"
|
dbt/adapters/__init__.py
CHANGED
dbt/adapters/base/connections.py
CHANGED
|
@@ -165,7 +165,9 @@ class BaseConnectionManager(metaclass=abc.ABCMeta):
|
|
|
165
165
|
conn.handle = LazyHandle(self.open)
|
|
166
166
|
# Add the connection to thread_connections for this thread
|
|
167
167
|
self.set_thread_connection(conn)
|
|
168
|
-
fire_event(
|
|
168
|
+
fire_event(
|
|
169
|
+
NewConnection(conn_name=conn_name, conn_type=self.TYPE, node_info=get_node_info())
|
|
170
|
+
)
|
|
169
171
|
else: # existing connection either wasn't open or didn't have the right name
|
|
170
172
|
if conn.state != "open":
|
|
171
173
|
conn.handle = LazyHandle(self.open)
|
dbt/adapters/base/impl.py
CHANGED
|
@@ -1328,14 +1328,16 @@ class BaseAdapter(metaclass=AdapterMeta):
|
|
|
1328
1328
|
# Track schema, identifiers of sources for lookup from batch query
|
|
1329
1329
|
schema_identifier_to_source = {
|
|
1330
1330
|
(
|
|
1331
|
-
source.path.get_lowered_part(ComponentName.Schema),
|
|
1332
|
-
source.path.get_lowered_part(ComponentName.Identifier),
|
|
1331
|
+
source.path.get_lowered_part(ComponentName.Schema), # type: ignore
|
|
1332
|
+
source.path.get_lowered_part(ComponentName.Identifier), # type: ignore
|
|
1333
1333
|
): source
|
|
1334
1334
|
for source in sources
|
|
1335
1335
|
}
|
|
1336
1336
|
|
|
1337
1337
|
# Group metadata sources by information schema -- one query per information schema will be necessary
|
|
1338
|
-
sources_by_info_schema: Dict[InformationSchema, List[BaseRelation]] =
|
|
1338
|
+
sources_by_info_schema: Dict[InformationSchema, List[BaseRelation]] = (
|
|
1339
|
+
self._get_catalog_relations_by_info_schema(sources)
|
|
1340
|
+
)
|
|
1339
1341
|
|
|
1340
1342
|
freshness_responses: Dict[BaseRelation, FreshnessResponse] = {}
|
|
1341
1343
|
adapter_responses: List[Optional[AdapterResponse]] = []
|
|
@@ -1393,7 +1395,9 @@ class BaseAdapter(metaclass=AdapterMeta):
|
|
|
1393
1395
|
|
|
1394
1396
|
return freshness
|
|
1395
1397
|
|
|
1396
|
-
def _parse_freshness_row(
|
|
1398
|
+
def _parse_freshness_row(
|
|
1399
|
+
self, row: "agate.Row", table: "agate.Table"
|
|
1400
|
+
) -> Tuple[Any, FreshnessResponse]:
|
|
1397
1401
|
from dbt_common.clients.agate_helper import get_column_value_uncased
|
|
1398
1402
|
|
|
1399
1403
|
try:
|
|
@@ -1404,10 +1408,7 @@ class BaseAdapter(metaclass=AdapterMeta):
|
|
|
1404
1408
|
except Exception:
|
|
1405
1409
|
raise MacroResultError(GET_RELATION_LAST_MODIFIED_MACRO_NAME, table)
|
|
1406
1410
|
|
|
1407
|
-
freshness_response = self._create_freshness_response(
|
|
1408
|
-
last_modified_val,
|
|
1409
|
-
snapshotted_at_val
|
|
1410
|
-
)
|
|
1411
|
+
freshness_response = self._create_freshness_response(last_modified_val, snapshotted_at_val)
|
|
1411
1412
|
raw_relation = schema.lower().strip(), identifier.lower().strip()
|
|
1412
1413
|
return raw_relation, freshness_response
|
|
1413
1414
|
|
dbt/adapters/base/relation.py
CHANGED
|
@@ -47,6 +47,9 @@ class BaseRelation(FakeAPIObject, Hashable):
|
|
|
47
47
|
quote_policy: Policy = field(default_factory=lambda: Policy())
|
|
48
48
|
dbt_created: bool = False
|
|
49
49
|
limit: Optional[int] = None
|
|
50
|
+
require_alias: bool = (
|
|
51
|
+
True # used to govern whether to add an alias when render_limited is called
|
|
52
|
+
)
|
|
50
53
|
|
|
51
54
|
# register relation types that can be renamed for the purpose of replacing relations using stages and backups
|
|
52
55
|
# adding a relation type here also requires defining the associated rename macro
|
|
@@ -205,14 +208,22 @@ class BaseRelation(FakeAPIObject, Hashable):
|
|
|
205
208
|
# if there is nothing set, this will return the empty string.
|
|
206
209
|
return ".".join(part for _, part in self._render_iterator() if part is not None)
|
|
207
210
|
|
|
211
|
+
def _render_limited_alias(self) -> str:
|
|
212
|
+
"""Some databases require an alias for subqueries (postgres, mysql) for all others we want to avoid adding
|
|
213
|
+
an alias as it has the potential to introduce issues with the query if the user also defines an alias.
|
|
214
|
+
"""
|
|
215
|
+
if self.require_alias:
|
|
216
|
+
return f" _dbt_limit_subq_{self.table}"
|
|
217
|
+
return ""
|
|
218
|
+
|
|
208
219
|
def render_limited(self) -> str:
|
|
209
220
|
rendered = self.render()
|
|
210
221
|
if self.limit is None:
|
|
211
222
|
return rendered
|
|
212
223
|
elif self.limit == 0:
|
|
213
|
-
return f"(select * from {rendered} where false limit 0)
|
|
224
|
+
return f"(select * from {rendered} where false limit 0){self._render_limited_alias()}"
|
|
214
225
|
else:
|
|
215
|
-
return f"(select * from {rendered} limit {self.limit})
|
|
226
|
+
return f"(select * from {rendered} limit {self.limit}){self._render_limited_alias()}"
|
|
216
227
|
|
|
217
228
|
def quoted(self, identifier):
|
|
218
229
|
return "{quote_char}{identifier}{quote_char}".format(
|
|
@@ -170,7 +170,7 @@ class Credentials(ExtensibleDbtClassMixin, Replaceable, metaclass=abc.ABCMeta):
|
|
|
170
170
|
def translate_aliases(cls, kwargs: Dict[str, Any], recurse: bool = False) -> Dict[str, Any]:
|
|
171
171
|
return translate_aliases(kwargs, cls._ALIASES, recurse)
|
|
172
172
|
|
|
173
|
-
def __post_serialize__(self, dct):
|
|
173
|
+
def __post_serialize__(self, dct: Dict, context: Optional[Dict] = None):
|
|
174
174
|
# no super() -- do we need it?
|
|
175
175
|
if self._ALIASES:
|
|
176
176
|
dct.update(
|
|
@@ -40,11 +40,9 @@ class MaterializationConfig(Mapping, ABC):
|
|
|
40
40
|
contract: MaterializationContract
|
|
41
41
|
extra: Dict[str, Any]
|
|
42
42
|
|
|
43
|
-
def __contains__(self, item):
|
|
44
|
-
...
|
|
43
|
+
def __contains__(self, item): ...
|
|
45
44
|
|
|
46
|
-
def __delitem__(self, key):
|
|
47
|
-
...
|
|
45
|
+
def __delitem__(self, key): ...
|
|
48
46
|
|
|
49
47
|
|
|
50
48
|
class RelationConfig(Protocol):
|
dbt/adapters/events/README.md
CHANGED
|
@@ -14,7 +14,7 @@ When events are processed via `fire_event`, nearly everything is logged. Whether
|
|
|
14
14
|
|
|
15
15
|
We have switched from using betterproto to using google protobuf, because of a lack of support for Struct fields in betterproto.
|
|
16
16
|
|
|
17
|
-
The google protobuf interface is janky and very much non-Pythonic. The "generated" classes in types_pb2.py do not resemble regular Python classes. They do not have normal constructors; they can only be constructed empty. They can be "filled" by setting fields individually or using a json_format method like ParseDict. We have wrapped the logging events with a class (in types.py) which allows using a constructor -- keywords only, no positional parameters.
|
|
17
|
+
The google protobuf interface is janky and very much non-Pythonic. The "generated" classes in types_pb2.py do not resemble regular Python classes. They do not have normal constructors; they can only be constructed empty. They can be "filled" by setting fields individually or using a json_format method like ParseDict. We have wrapped the logging events with a class (in types.py) which allows using a constructor -- keywords only, no positional parameters.
|
|
18
18
|
|
|
19
19
|
## Required for Every Event
|
|
20
20
|
|
dbt/adapters/factory.py
CHANGED
|
@@ -101,17 +101,14 @@ class AdapterContainer:
|
|
|
101
101
|
self,
|
|
102
102
|
config: AdapterRequiredConfig,
|
|
103
103
|
mp_context: SpawnContext,
|
|
104
|
-
adapter_registered_log_level: Optional[EventLevel] = EventLevel.INFO
|
|
104
|
+
adapter_registered_log_level: Optional[EventLevel] = EventLevel.INFO,
|
|
105
105
|
) -> None:
|
|
106
106
|
adapter_name = config.credentials.type
|
|
107
107
|
adapter_type = self.get_adapter_class_by_name(adapter_name)
|
|
108
108
|
adapter_version = self._adapter_version(adapter_name)
|
|
109
109
|
fire_event(
|
|
110
|
-
AdapterRegistered(
|
|
111
|
-
|
|
112
|
-
adapter_version=adapter_version
|
|
113
|
-
),
|
|
114
|
-
level=adapter_registered_log_level
|
|
110
|
+
AdapterRegistered(adapter_name=adapter_name, adapter_version=adapter_version),
|
|
111
|
+
level=adapter_registered_log_level,
|
|
115
112
|
)
|
|
116
113
|
with self.lock:
|
|
117
114
|
if adapter_name in self.adapters:
|
|
@@ -199,9 +196,9 @@ FACTORY: AdapterContainer = AdapterContainer()
|
|
|
199
196
|
|
|
200
197
|
|
|
201
198
|
def register_adapter(
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
199
|
+
config: AdapterRequiredConfig,
|
|
200
|
+
mp_context: SpawnContext,
|
|
201
|
+
adapter_registered_log_level: Optional[EventLevel] = EventLevel.INFO,
|
|
205
202
|
) -> None:
|
|
206
203
|
FACTORY.register_adapter(config, mp_context, adapter_registered_log_level)
|
|
207
204
|
|
dbt/adapters/protocol.py
CHANGED
|
@@ -47,8 +47,7 @@ Self = TypeVar("Self", bound="RelationProtocol")
|
|
|
47
47
|
|
|
48
48
|
class RelationProtocol(Protocol):
|
|
49
49
|
@classmethod
|
|
50
|
-
def get_default_quote_policy(cls) -> Policy:
|
|
51
|
-
...
|
|
50
|
+
def get_default_quote_policy(cls) -> Policy: ...
|
|
52
51
|
|
|
53
52
|
@classmethod
|
|
54
53
|
def create_from(
|
|
@@ -56,8 +55,7 @@ class RelationProtocol(Protocol):
|
|
|
56
55
|
quoting: HasQuoting,
|
|
57
56
|
relation_config: RelationConfig,
|
|
58
57
|
**kwargs: Any,
|
|
59
|
-
) -> Self:
|
|
60
|
-
...
|
|
58
|
+
) -> Self: ...
|
|
61
59
|
|
|
62
60
|
|
|
63
61
|
AdapterConfig_T = TypeVar("AdapterConfig_T", bound=AdapterConfig)
|
|
@@ -73,8 +71,7 @@ class MacroContextGeneratorCallable(Protocol):
|
|
|
73
71
|
config: AdapterRequiredConfig,
|
|
74
72
|
macro_resolver: MacroResolverProtocol,
|
|
75
73
|
package_name: Optional[str],
|
|
76
|
-
) -> Dict[str, Any]:
|
|
77
|
-
...
|
|
74
|
+
) -> Dict[str, Any]: ...
|
|
78
75
|
|
|
79
76
|
|
|
80
77
|
# TODO CT-211
|
|
@@ -96,81 +93,58 @@ class AdapterProtocol( # type: ignore[misc]
|
|
|
96
93
|
ConnectionManager: Type[ConnectionManager_T]
|
|
97
94
|
connections: ConnectionManager_T
|
|
98
95
|
|
|
99
|
-
def __init__(self, config: AdapterRequiredConfig) -> None:
|
|
100
|
-
...
|
|
96
|
+
def __init__(self, config: AdapterRequiredConfig) -> None: ...
|
|
101
97
|
|
|
102
|
-
def set_macro_resolver(self, macro_resolver: MacroResolverProtocol) -> None:
|
|
103
|
-
...
|
|
98
|
+
def set_macro_resolver(self, macro_resolver: MacroResolverProtocol) -> None: ...
|
|
104
99
|
|
|
105
|
-
def get_macro_resolver(self) -> Optional[MacroResolverProtocol]:
|
|
106
|
-
...
|
|
100
|
+
def get_macro_resolver(self) -> Optional[MacroResolverProtocol]: ...
|
|
107
101
|
|
|
108
|
-
def clear_macro_resolver(self) -> None:
|
|
109
|
-
...
|
|
102
|
+
def clear_macro_resolver(self) -> None: ...
|
|
110
103
|
|
|
111
104
|
def set_macro_context_generator(
|
|
112
105
|
self,
|
|
113
106
|
macro_context_generator: MacroContextGeneratorCallable,
|
|
114
|
-
) -> None:
|
|
115
|
-
...
|
|
107
|
+
) -> None: ...
|
|
116
108
|
|
|
117
109
|
@classmethod
|
|
118
110
|
def type(cls) -> str:
|
|
119
111
|
pass
|
|
120
112
|
|
|
121
|
-
def set_query_header(self, query_header_context: Dict[str, Any]) -> None:
|
|
122
|
-
...
|
|
113
|
+
def set_query_header(self, query_header_context: Dict[str, Any]) -> None: ...
|
|
123
114
|
|
|
124
115
|
@staticmethod
|
|
125
|
-
def get_thread_identifier() -> Hashable:
|
|
126
|
-
...
|
|
116
|
+
def get_thread_identifier() -> Hashable: ...
|
|
127
117
|
|
|
128
|
-
def get_thread_connection(self) -> Connection:
|
|
129
|
-
...
|
|
118
|
+
def get_thread_connection(self) -> Connection: ...
|
|
130
119
|
|
|
131
|
-
def set_thread_connection(self, conn: Connection) -> None:
|
|
132
|
-
...
|
|
120
|
+
def set_thread_connection(self, conn: Connection) -> None: ...
|
|
133
121
|
|
|
134
|
-
def get_if_exists(self) -> Optional[Connection]:
|
|
135
|
-
...
|
|
122
|
+
def get_if_exists(self) -> Optional[Connection]: ...
|
|
136
123
|
|
|
137
|
-
def clear_thread_connection(self) -> None:
|
|
138
|
-
...
|
|
124
|
+
def clear_thread_connection(self) -> None: ...
|
|
139
125
|
|
|
140
|
-
def clear_transaction(self) -> None:
|
|
141
|
-
...
|
|
126
|
+
def clear_transaction(self) -> None: ...
|
|
142
127
|
|
|
143
|
-
def exception_handler(self, sql: str) -> ContextManager:
|
|
144
|
-
...
|
|
128
|
+
def exception_handler(self, sql: str) -> ContextManager: ...
|
|
145
129
|
|
|
146
|
-
def set_connection_name(self, name: Optional[str] = None) -> Connection:
|
|
147
|
-
...
|
|
130
|
+
def set_connection_name(self, name: Optional[str] = None) -> Connection: ...
|
|
148
131
|
|
|
149
|
-
def cancel_open(self) -> Optional[List[str]]:
|
|
150
|
-
...
|
|
132
|
+
def cancel_open(self) -> Optional[List[str]]: ...
|
|
151
133
|
|
|
152
|
-
def open(cls, connection: Connection) -> Connection:
|
|
153
|
-
...
|
|
134
|
+
def open(cls, connection: Connection) -> Connection: ...
|
|
154
135
|
|
|
155
|
-
def release(self) -> None:
|
|
156
|
-
...
|
|
136
|
+
def release(self) -> None: ...
|
|
157
137
|
|
|
158
|
-
def cleanup_all(self) -> None:
|
|
159
|
-
...
|
|
138
|
+
def cleanup_all(self) -> None: ...
|
|
160
139
|
|
|
161
|
-
def begin(self) -> None:
|
|
162
|
-
...
|
|
140
|
+
def begin(self) -> None: ...
|
|
163
141
|
|
|
164
|
-
def commit(self) -> None:
|
|
165
|
-
...
|
|
142
|
+
def commit(self) -> None: ...
|
|
166
143
|
|
|
167
|
-
def close(cls, connection: Connection) -> Connection:
|
|
168
|
-
...
|
|
144
|
+
def close(cls, connection: Connection) -> Connection: ...
|
|
169
145
|
|
|
170
|
-
def commit_if_has_connection(self) -> None:
|
|
171
|
-
...
|
|
146
|
+
def commit_if_has_connection(self) -> None: ...
|
|
172
147
|
|
|
173
148
|
def execute(
|
|
174
149
|
self, sql: str, auto_begin: bool = False, fetch: bool = False
|
|
175
|
-
) -> Tuple[AdapterResponse, "agate.Table"]:
|
|
176
|
-
...
|
|
150
|
+
) -> Tuple[AdapterResponse, "agate.Table"]: ...
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# RelationConfig
|
|
2
2
|
This package serves as an initial abstraction for managing the inspection of existing relations and determining
|
|
3
|
-
changes on those relations. It arose from the materialized view work and is currently only supporting
|
|
3
|
+
changes on those relations. It arose from the materialized view work and is currently only supporting
|
|
4
4
|
materialized views for Postgres and Redshift as well as dynamic tables for Snowflake. There are three main
|
|
5
5
|
classes in this package.
|
|
6
6
|
|
|
@@ -16,7 +16,9 @@ class RelationConfigChangeAction(StrEnum):
|
|
|
16
16
|
@dataclass(frozen=True, eq=True, unsafe_hash=True)
|
|
17
17
|
class RelationConfigChange(RelationConfigBase, ABC):
|
|
18
18
|
action: RelationConfigChangeAction
|
|
19
|
-
context:
|
|
19
|
+
context: (
|
|
20
|
+
Hashable # this is usually a RelationConfig, e.g. IndexConfig, but shouldn't be limited
|
|
21
|
+
)
|
|
20
22
|
|
|
21
23
|
@property
|
|
22
24
|
@abstractmethod
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
{%- do col_naked_numeric.append(col['name']) -%}
|
|
54
54
|
{%- endif -%}
|
|
55
55
|
{% set col_name = adapter.quote(col['name']) if col.get('quote') else col['name'] %}
|
|
56
|
-
cast(null
|
|
56
|
+
{{ cast('null', col['data_type']) }} as {{ col_name }}{{ ", " if not loop.last }}
|
|
57
57
|
{%- endfor -%}
|
|
58
58
|
{%- if (col_err | length) > 0 -%}
|
|
59
59
|
{{ exceptions.column_type_missing(column_names=col_err) }}
|
|
@@ -79,7 +79,7 @@ union all
|
|
|
79
79
|
{%- endif -%}
|
|
80
80
|
|
|
81
81
|
{%- set column_type = column_name_to_data_types[column_name] %}
|
|
82
|
-
|
|
82
|
+
|
|
83
83
|
{#-- sanitize column_value: wrap yaml strings in quotes, apply cast --#}
|
|
84
84
|
{%- set column_value_clean = column_value -%}
|
|
85
85
|
{%- if column_value is string -%}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{% macro date(year, month, day) %}
|
|
2
|
+
{{ return(adapter.dispatch('date', 'dbt') (year, month, day)) }}
|
|
3
|
+
{% endmacro %}
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
{% macro default__date(year, month, day) -%}
|
|
7
|
+
{%- set dt = modules.datetime.date(year, month, day) -%}
|
|
8
|
+
{%- set iso_8601_formatted_date = dt.strftime('%Y-%m-%d') -%}
|
|
9
|
+
to_date('{{ iso_8601_formatted_date }}', 'YYYY-MM-DD')
|
|
10
|
+
{%- endmacro %}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: dbt-adapters
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.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
|
|
@@ -20,6 +20,7 @@ Classifier: Programming Language :: Python :: 3.8
|
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.9
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.10
|
|
22
22
|
Classifier: Programming Language :: Python :: 3.11
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
24
|
Requires-Python: >=3.8.0
|
|
24
25
|
Requires-Dist: agate<2.0,>=1.0
|
|
25
26
|
Requires-Dist: dbt-common<2.0
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
dbt/__init__.py,sha256=iY4jdvOxcDhkdr5FiyOTZPHadKtMZDQ-qC6Fw6_EHPM,277
|
|
2
|
-
dbt/adapters/__about__.py,sha256=
|
|
3
|
-
dbt/adapters/__init__.py,sha256=
|
|
2
|
+
dbt/adapters/__about__.py,sha256=hwx6OSEBgEPc7vR6kpTxsJ6hDXFzuhnwb4l8Erfs5hk,18
|
|
3
|
+
dbt/adapters/__init__.py,sha256=3noHsg-64qI0_Pw6OR9F7l1vU2_qrJvinq8POTtuaZM,252
|
|
4
4
|
dbt/adapters/cache.py,sha256=WGy4ewnz-J13LverTACBW2iFhGswrWLgm-wiBrQnMzo,20084
|
|
5
5
|
dbt/adapters/capability.py,sha256=mIAZwwKetWpG71pg9oofwOeOTTrDYrtKoWwhbtVQOmE,2160
|
|
6
|
-
dbt/adapters/factory.py,sha256=
|
|
7
|
-
dbt/adapters/protocol.py,sha256=
|
|
6
|
+
dbt/adapters/factory.py,sha256=JxNxhMqemZ6ARWbROQZhkhJehiIenuR9ZQYS8gvzbDg,9368
|
|
7
|
+
dbt/adapters/protocol.py,sha256=qRsEFAKjUMVnoBspAiCUTICez1ckson-dFS04dTXSco,3818
|
|
8
8
|
dbt/adapters/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
9
|
dbt/adapters/reference_keys.py,sha256=lRN3gPdQD6Qciy-BAGx_rz3CFlbS7zMSZ43pZ_9ondE,1046
|
|
10
10
|
dbt/adapters/utils.py,sha256=OtakbxPgxwrxN5Yd2vAO-cvLETSgzBwMWebhgegAVyA,2414
|
|
11
11
|
dbt/adapters/base/README.md,sha256=muHQntC07Lh6L1XfVgwKhV5RltOPBLYPdQqd8_7l34c,516
|
|
12
12
|
dbt/adapters/base/__init__.py,sha256=KGGGbj8jGMjAFJdQ5YHcOpApMMVZ_6Xuni1swhpkqRY,423
|
|
13
13
|
dbt/adapters/base/column.py,sha256=M3iotEY5yi4xikXyXzD9oshBF9-xcJrIeQVu1sB85DI,5450
|
|
14
|
-
dbt/adapters/base/connections.py,sha256
|
|
15
|
-
dbt/adapters/base/impl.py,sha256=
|
|
14
|
+
dbt/adapters/base/connections.py,sha256=-C5dOwGgMKH8n_v6wjwOxV7chBdS0GjOGwNQCUbhhWc,16951
|
|
15
|
+
dbt/adapters/base/impl.py,sha256=k33sdoIvHCH4f2Acc9YZxQWEYYEjYI7BrOZ6xW3yw_s,68352
|
|
16
16
|
dbt/adapters/base/meta.py,sha256=MMqL2xBqdvoacNs9JcL0E38NZIhCP4RH4OD_z_jo7GQ,4644
|
|
17
17
|
dbt/adapters/base/plugin.py,sha256=rm0GjNHnWM2mn0GJOjciZLwn-02xlzWCoMT9u-epwP0,1076
|
|
18
18
|
dbt/adapters/base/query_headers.py,sha256=UluGd9IYCYkoMiDi5Yx_lnrCOSjWppjwRro4SIGgx8I,3496
|
|
19
|
-
dbt/adapters/base/relation.py,sha256=
|
|
19
|
+
dbt/adapters/base/relation.py,sha256=r6phmxz4Uu3JG3Kxh_GUstA1NyBaiAA57u3yKTKSv80,16173
|
|
20
20
|
dbt/adapters/clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
21
|
dbt/adapters/clients/jinja.py,sha256=NsZOiBpOLunS46hRL5OcX1MpY3Ih6_87Vgz4qd_PNbc,768
|
|
22
22
|
dbt/adapters/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
|
-
dbt/adapters/contracts/connection.py,sha256=
|
|
23
|
+
dbt/adapters/contracts/connection.py,sha256=nkqIRpJqO0sB2aMrJ_hTPPQOe-jL3se__ppAoCNYiOA,6898
|
|
24
24
|
dbt/adapters/contracts/macros.py,sha256=NYVDi5ww7v4ksKBwF836TXE-2xU4IBaUINqvxMY-ieU,366
|
|
25
|
-
dbt/adapters/contracts/relation.py,sha256=
|
|
26
|
-
dbt/adapters/events/README.md,sha256=
|
|
25
|
+
dbt/adapters/contracts/relation.py,sha256=EHRHUfI50YpTiw2P4ZsQXp9aVtzdIcnlCC5Px--ytio,4636
|
|
26
|
+
dbt/adapters/events/README.md,sha256=kVUFIsDQrHTUmk9Mmu-yXYkWh4pA5MJK_H6739rQr5I,3521
|
|
27
27
|
dbt/adapters/events/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
28
|
dbt/adapters/events/adapter_types.proto,sha256=wFhPMVokFgU1KFyc4h4OKzX1I0I_d2AVBcXdpS0KoW4,9648
|
|
29
29
|
dbt/adapters/events/adapter_types_pb2.py,sha256=06gi23B_q_wGp2EnjGuLW09SV578IjPsyH6RhACuBFU,26480
|
|
@@ -36,10 +36,10 @@ dbt/adapters/exceptions/cache.py,sha256=u720DQQKm8pyf_9loD9HGA9WgaeZAlg0sBn0sGc-
|
|
|
36
36
|
dbt/adapters/exceptions/compilation.py,sha256=KAiCwxyE1B3PrxU-aHvpJp4h6fgEcZf44h4iVz__jFY,8586
|
|
37
37
|
dbt/adapters/exceptions/connection.py,sha256=x82j2Ix242Slm6Ima8Tol3GLOB9yZYH5lq6IV1WKq54,445
|
|
38
38
|
dbt/adapters/exceptions/database.py,sha256=nIXJdQyPQOZaiKvCkQ3MoKlKOiaN58rtDZflw3CSkug,1618
|
|
39
|
-
dbt/adapters/relation_configs/README.md,sha256=
|
|
39
|
+
dbt/adapters/relation_configs/README.md,sha256=VVeqMLbBWsBVNXHa9GLKLBN25Ivc8y78GR-6OB2tf4U,1809
|
|
40
40
|
dbt/adapters/relation_configs/__init__.py,sha256=Il1HHEI8HJGHEi2B8qsgv_CoNA2STO7SULDi78fQwZg,354
|
|
41
41
|
dbt/adapters/relation_configs/config_base.py,sha256=IK9oKf9TuOTLIiKX8ms_X-p4yxZvPAlM7qg94mozvrA,1756
|
|
42
|
-
dbt/adapters/relation_configs/config_change.py,sha256=
|
|
42
|
+
dbt/adapters/relation_configs/config_change.py,sha256=hf6fDWbZpKvZdM6z-OtY-GveipzfLRR_dsUZmYmXkdk,713
|
|
43
43
|
dbt/adapters/relation_configs/config_validation.py,sha256=wlJUMwOEPhYFch-LRtEWfLNJMq8jL1tRhOUHmNX8nFw,1978
|
|
44
44
|
dbt/adapters/sql/__init__.py,sha256=WLWZJfqc8pr1N1BMVe9gM-KQ4URJIeKfLqTuJBD1VN0,107
|
|
45
45
|
dbt/adapters/sql/connections.py,sha256=aRZGkiMYwfuA7hR08LOVDzDLbBQP05KUVIHOCuU0KOU,6565
|
|
@@ -50,7 +50,7 @@ dbt/include/global_project/__init__.py,sha256=-0HL5OkeJSrxglm1Y-UltTiBPY2BbWx8Zp
|
|
|
50
50
|
dbt/include/global_project/dbt_project.yml,sha256=RTtOhnBpEL0gbd1GlpxuVr6eZJBPvgWfNw-F88sKQ-w,109
|
|
51
51
|
dbt/include/global_project/docs/overview.md,sha256=VuObM4pcS-TvwYeAjjUbe0TBhEnxf6g30EPWrGjya_w,1824
|
|
52
52
|
dbt/include/global_project/macros/adapters/apply_grants.sql,sha256=Vyb0VNmlgoXzE1Dh2myVjujztM8VX06t3h9wGceMEeQ,6825
|
|
53
|
-
dbt/include/global_project/macros/adapters/columns.sql,sha256=
|
|
53
|
+
dbt/include/global_project/macros/adapters/columns.sql,sha256=EUze4gUUDD1pnWytOpjk3p-7EFpqeqeI0LiPf2FbUVo,5438
|
|
54
54
|
dbt/include/global_project/macros/adapters/freshness.sql,sha256=FKi-xsBCOYjGYp103O1mVTeWKy2blb_JefyoLDF0aXI,599
|
|
55
55
|
dbt/include/global_project/macros/adapters/indexes.sql,sha256=DasPn32Cm0OZyjBPBWzL4BpK9PZ3xF_Pu8Nh4NgASaw,1366
|
|
56
56
|
dbt/include/global_project/macros/adapters/metadata.sql,sha256=WsVAT1SGs18TRnwq-PbYhCfPCaF_IOxI68KPRlUoDYA,3147
|
|
@@ -89,7 +89,7 @@ dbt/include/global_project/macros/materializations/snapshots/helpers.sql,sha256=
|
|
|
89
89
|
dbt/include/global_project/macros/materializations/snapshots/snapshot.sql,sha256=q-Uaz9B2070fpruz5HEJiCqPUJNgXl7dsM5a0_v0fkg,3680
|
|
90
90
|
dbt/include/global_project/macros/materializations/snapshots/snapshot_merge.sql,sha256=Ik3OyDqqkt0z4lrNUvMKYVmZxqAdtaN1FvtMgg0VF6g,849
|
|
91
91
|
dbt/include/global_project/macros/materializations/snapshots/strategies.sql,sha256=ahWDMnD-Q_fTGKSjvm5ZwvypmNC6BDVguk-LNk-nHhU,6286
|
|
92
|
-
dbt/include/global_project/macros/materializations/tests/helpers.sql,sha256=
|
|
92
|
+
dbt/include/global_project/macros/materializations/tests/helpers.sql,sha256=rxUxDZm4EvrDbi0H_ePghE34_QLmxGEY2o_LTMc9CU0,1731
|
|
93
93
|
dbt/include/global_project/macros/materializations/tests/test.sql,sha256=Rz3O_3dWHlIofG3d2CwsP2bXFimRZUIwOevyB0iz1J4,1831
|
|
94
94
|
dbt/include/global_project/macros/materializations/tests/unit.sql,sha256=KonePuFfwcz5uJ-JW0CrEy8_q-Gl45fonngGmFvQcNU,1252
|
|
95
95
|
dbt/include/global_project/macros/materializations/tests/where_subquery.sql,sha256=xjuYd18tXo99OReJGQsfgEPYljUUyF00XzK4h0SJjdM,497
|
|
@@ -118,7 +118,7 @@ dbt/include/global_project/macros/relations/view/create.sql,sha256=FkLYXnCPj2HLC
|
|
|
118
118
|
dbt/include/global_project/macros/relations/view/drop.sql,sha256=WszUTZrkd93_OCEha4OuRWyCucqxGRTm07Zvn25RHXs,488
|
|
119
119
|
dbt/include/global_project/macros/relations/view/rename.sql,sha256=P4hpxlrR0wiBTZFJ8N3GyUUbqgKgMfgzUUbIWw8fui0,348
|
|
120
120
|
dbt/include/global_project/macros/relations/view/replace.sql,sha256=5_Lky7KUixyYOOOahooD0VnmHOiOVqmxrI0ihwRjX08,2584
|
|
121
|
-
dbt/include/global_project/macros/unit_test_sql/get_fixture_sql.sql,sha256=
|
|
121
|
+
dbt/include/global_project/macros/unit_test_sql/get_fixture_sql.sql,sha256=gv5obF7n-mKrzBHu5kCBNVfSlKbfuTqkIPl-vzUEVFs,3833
|
|
122
122
|
dbt/include/global_project/macros/utils/any_value.sql,sha256=leK-fCUhDNt6MFkGofafYjv-0LtL0fkb3sJXe-aIorU,213
|
|
123
123
|
dbt/include/global_project/macros/utils/array_append.sql,sha256=XsC-kchlWxVwc-_1CoBs1RkGYt8qsOAVbq5JlsV2WIc,357
|
|
124
124
|
dbt/include/global_project/macros/utils/array_concat.sql,sha256=0c4w5kP1N_9BY-wppx1OBCCIDOsC1HhimkSDghjjx2Y,248
|
|
@@ -128,6 +128,7 @@ dbt/include/global_project/macros/utils/cast.sql,sha256=YQRXZEIvrXDDs4sqvFCJk7a9
|
|
|
128
128
|
dbt/include/global_project/macros/utils/cast_bool_to_text.sql,sha256=fOIW7AM7_BJIHU5GnhwMYGghh8mvkc27_sqdW0rdszQ,242
|
|
129
129
|
dbt/include/global_project/macros/utils/concat.sql,sha256=qHrVhra5QSwBskYYCpaeJvsCAIFZ_eyeF4h3kgjs8B0,186
|
|
130
130
|
dbt/include/global_project/macros/utils/data_types.sql,sha256=Rw6xhK02NB9TlKolqyGcUGoWgHBkKPpJ1Xh3FOBxrMc,4416
|
|
131
|
+
dbt/include/global_project/macros/utils/date.sql,sha256=-QVwNPMsxN_OJZ5h4YUxoBP_gZLxEIKHR5zkstPvhXI,366
|
|
131
132
|
dbt/include/global_project/macros/utils/date_spine.sql,sha256=to62irsceR0IjA452TfUq0LgKJd6zEheA7pi-xlThr4,1707
|
|
132
133
|
dbt/include/global_project/macros/utils/date_trunc.sql,sha256=N7eDEgKVq6BQ9qUeIMJ_yKQv5QTjIWZ6k2oMWeGlqQU,234
|
|
133
134
|
dbt/include/global_project/macros/utils/dateadd.sql,sha256=-t0IDuV01WOMNsuPjyBp9D-2uvJAdhgi3kE8JIL9Jhc,374
|
|
@@ -147,7 +148,7 @@ dbt/include/global_project/macros/utils/right.sql,sha256=EwNG98CAFIwNDmarwopf7Rk
|
|
|
147
148
|
dbt/include/global_project/macros/utils/safe_cast.sql,sha256=1mswwkDACmIi1I99JKb_-vq3kjMe4HhMRV70mW8Bt4Y,298
|
|
148
149
|
dbt/include/global_project/macros/utils/split_part.sql,sha256=fXEIS0oIiYR7-4lYbb0QbZdG-q2TpV63AFd1ky4I5UM,714
|
|
149
150
|
dbt/include/global_project/tests/generic/builtin.sql,sha256=p94xdyPwb2TlxgLBqCfrcRfJ1QNgsjPvBm8f0Q5eqZM,1022
|
|
150
|
-
dbt_adapters-1.1.
|
|
151
|
-
dbt_adapters-1.1.
|
|
152
|
-
dbt_adapters-1.1.
|
|
153
|
-
dbt_adapters-1.1.
|
|
151
|
+
dbt_adapters-1.1.1.dist-info/METADATA,sha256=9y-fGUNQ3z3cDF0d_r3gz0LgsB2DL6hQSdWxVQ5RTgU,2533
|
|
152
|
+
dbt_adapters-1.1.1.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
|
|
153
|
+
dbt_adapters-1.1.1.dist-info/licenses/LICENSE,sha256=9yjigiJhWcCZvQjdagGKDwrRph58QWc5P2bVSQwXo6s,11344
|
|
154
|
+
dbt_adapters-1.1.1.dist-info/RECORD,,
|
|
File without changes
|