dbt-adapters 1.1.0__py3-none-any.whl → 1.1.0rc1__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 +0 -1
- dbt/adapters/base/connections.py +1 -3
- dbt/adapters/base/impl.py +8 -9
- dbt/adapters/base/relation.py +2 -13
- dbt/adapters/contracts/relation.py +4 -2
- dbt/adapters/events/README.md +1 -1
- dbt/adapters/factory.py +9 -6
- dbt/adapters/protocol.py +52 -26
- dbt/adapters/relation_configs/README.md +1 -1
- dbt/adapters/relation_configs/config_change.py +1 -3
- 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_adapters-1.1.0.dist-info → dbt_adapters-1.1.0rc1.dist-info}/METADATA +1 -2
- {dbt_adapters-1.1.0.dist-info → dbt_adapters-1.1.0rc1.dist-info}/RECORD +18 -18
- {dbt_adapters-1.1.0.dist-info → dbt_adapters-1.1.0rc1.dist-info}/WHEEL +1 -1
- {dbt_adapters-1.1.0.dist-info → dbt_adapters-1.1.0rc1.dist-info}/licenses/LICENSE +0 -0
dbt/adapters/__about__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
version = "1.1.
|
|
1
|
+
version = "1.1.0rc1"
|
dbt/adapters/__init__.py
CHANGED
dbt/adapters/base/connections.py
CHANGED
|
@@ -165,9 +165,7 @@ 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(
|
|
169
|
-
NewConnection(conn_name=conn_name, conn_type=self.TYPE, node_info=get_node_info())
|
|
170
|
-
)
|
|
168
|
+
fire_event(NewConnection(conn_name=conn_name, conn_type=self.TYPE, node_info=get_node_info()))
|
|
171
169
|
else: # existing connection either wasn't open or didn't have the right name
|
|
172
170
|
if conn.state != "open":
|
|
173
171
|
conn.handle = LazyHandle(self.open)
|
dbt/adapters/base/impl.py
CHANGED
|
@@ -1328,16 +1328,14 @@ 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),
|
|
1332
|
+
source.path.get_lowered_part(ComponentName.Identifier),
|
|
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]] = (
|
|
1339
|
-
self._get_catalog_relations_by_info_schema(sources)
|
|
1340
|
-
)
|
|
1338
|
+
sources_by_info_schema: Dict[InformationSchema, List[BaseRelation]] = self._get_catalog_relations_by_info_schema(sources)
|
|
1341
1339
|
|
|
1342
1340
|
freshness_responses: Dict[BaseRelation, FreshnessResponse] = {}
|
|
1343
1341
|
adapter_responses: List[Optional[AdapterResponse]] = []
|
|
@@ -1395,9 +1393,7 @@ class BaseAdapter(metaclass=AdapterMeta):
|
|
|
1395
1393
|
|
|
1396
1394
|
return freshness
|
|
1397
1395
|
|
|
1398
|
-
def _parse_freshness_row(
|
|
1399
|
-
self, row: "agate.Row", table: "agate.Table"
|
|
1400
|
-
) -> Tuple[Any, FreshnessResponse]:
|
|
1396
|
+
def _parse_freshness_row(self, row: "agate.Row", table: "agate.Table") -> Tuple[Any, FreshnessResponse]:
|
|
1401
1397
|
from dbt_common.clients.agate_helper import get_column_value_uncased
|
|
1402
1398
|
|
|
1403
1399
|
try:
|
|
@@ -1408,7 +1404,10 @@ class BaseAdapter(metaclass=AdapterMeta):
|
|
|
1408
1404
|
except Exception:
|
|
1409
1405
|
raise MacroResultError(GET_RELATION_LAST_MODIFIED_MACRO_NAME, table)
|
|
1410
1406
|
|
|
1411
|
-
freshness_response = self._create_freshness_response(
|
|
1407
|
+
freshness_response = self._create_freshness_response(
|
|
1408
|
+
last_modified_val,
|
|
1409
|
+
snapshotted_at_val
|
|
1410
|
+
)
|
|
1412
1411
|
raw_relation = schema.lower().strip(), identifier.lower().strip()
|
|
1413
1412
|
return raw_relation, freshness_response
|
|
1414
1413
|
|
dbt/adapters/base/relation.py
CHANGED
|
@@ -47,9 +47,6 @@ 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
|
-
)
|
|
53
50
|
|
|
54
51
|
# register relation types that can be renamed for the purpose of replacing relations using stages and backups
|
|
55
52
|
# adding a relation type here also requires defining the associated rename macro
|
|
@@ -208,22 +205,14 @@ class BaseRelation(FakeAPIObject, Hashable):
|
|
|
208
205
|
# if there is nothing set, this will return the empty string.
|
|
209
206
|
return ".".join(part for _, part in self._render_iterator() if part is not None)
|
|
210
207
|
|
|
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
|
-
|
|
219
208
|
def render_limited(self) -> str:
|
|
220
209
|
rendered = self.render()
|
|
221
210
|
if self.limit is None:
|
|
222
211
|
return rendered
|
|
223
212
|
elif self.limit == 0:
|
|
224
|
-
return f"(select * from {rendered} where false limit 0)
|
|
213
|
+
return f"(select * from {rendered} where false limit 0) _dbt_limit_subq"
|
|
225
214
|
else:
|
|
226
|
-
return f"(select * from {rendered} limit {self.limit})
|
|
215
|
+
return f"(select * from {rendered} limit {self.limit}) _dbt_limit_subq"
|
|
227
216
|
|
|
228
217
|
def quoted(self, identifier):
|
|
229
218
|
return "{quote_char}{identifier}{quote_char}".format(
|
|
@@ -40,9 +40,11 @@ class MaterializationConfig(Mapping, ABC):
|
|
|
40
40
|
contract: MaterializationContract
|
|
41
41
|
extra: Dict[str, Any]
|
|
42
42
|
|
|
43
|
-
def __contains__(self, item):
|
|
43
|
+
def __contains__(self, item):
|
|
44
|
+
...
|
|
44
45
|
|
|
45
|
-
def __delitem__(self, key):
|
|
46
|
+
def __delitem__(self, key):
|
|
47
|
+
...
|
|
46
48
|
|
|
47
49
|
|
|
48
50
|
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,14 +101,17 @@ 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
|
-
|
|
110
|
+
AdapterRegistered(
|
|
111
|
+
adapter_name=adapter_name,
|
|
112
|
+
adapter_version=adapter_version
|
|
113
|
+
),
|
|
114
|
+
level=adapter_registered_log_level
|
|
112
115
|
)
|
|
113
116
|
with self.lock:
|
|
114
117
|
if adapter_name in self.adapters:
|
|
@@ -196,9 +199,9 @@ FACTORY: AdapterContainer = AdapterContainer()
|
|
|
196
199
|
|
|
197
200
|
|
|
198
201
|
def register_adapter(
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
+
config: AdapterRequiredConfig,
|
|
203
|
+
mp_context: SpawnContext,
|
|
204
|
+
adapter_registered_log_level: Optional[EventLevel] = EventLevel.INFO
|
|
202
205
|
) -> None:
|
|
203
206
|
FACTORY.register_adapter(config, mp_context, adapter_registered_log_level)
|
|
204
207
|
|
dbt/adapters/protocol.py
CHANGED
|
@@ -47,7 +47,8 @@ Self = TypeVar("Self", bound="RelationProtocol")
|
|
|
47
47
|
|
|
48
48
|
class RelationProtocol(Protocol):
|
|
49
49
|
@classmethod
|
|
50
|
-
def get_default_quote_policy(cls) -> Policy:
|
|
50
|
+
def get_default_quote_policy(cls) -> Policy:
|
|
51
|
+
...
|
|
51
52
|
|
|
52
53
|
@classmethod
|
|
53
54
|
def create_from(
|
|
@@ -55,7 +56,8 @@ class RelationProtocol(Protocol):
|
|
|
55
56
|
quoting: HasQuoting,
|
|
56
57
|
relation_config: RelationConfig,
|
|
57
58
|
**kwargs: Any,
|
|
58
|
-
) -> Self:
|
|
59
|
+
) -> Self:
|
|
60
|
+
...
|
|
59
61
|
|
|
60
62
|
|
|
61
63
|
AdapterConfig_T = TypeVar("AdapterConfig_T", bound=AdapterConfig)
|
|
@@ -71,7 +73,8 @@ class MacroContextGeneratorCallable(Protocol):
|
|
|
71
73
|
config: AdapterRequiredConfig,
|
|
72
74
|
macro_resolver: MacroResolverProtocol,
|
|
73
75
|
package_name: Optional[str],
|
|
74
|
-
) -> Dict[str, Any]:
|
|
76
|
+
) -> Dict[str, Any]:
|
|
77
|
+
...
|
|
75
78
|
|
|
76
79
|
|
|
77
80
|
# TODO CT-211
|
|
@@ -93,58 +96,81 @@ class AdapterProtocol( # type: ignore[misc]
|
|
|
93
96
|
ConnectionManager: Type[ConnectionManager_T]
|
|
94
97
|
connections: ConnectionManager_T
|
|
95
98
|
|
|
96
|
-
def __init__(self, config: AdapterRequiredConfig) -> None:
|
|
99
|
+
def __init__(self, config: AdapterRequiredConfig) -> None:
|
|
100
|
+
...
|
|
97
101
|
|
|
98
|
-
def set_macro_resolver(self, macro_resolver: MacroResolverProtocol) -> None:
|
|
102
|
+
def set_macro_resolver(self, macro_resolver: MacroResolverProtocol) -> None:
|
|
103
|
+
...
|
|
99
104
|
|
|
100
|
-
def get_macro_resolver(self) -> Optional[MacroResolverProtocol]:
|
|
105
|
+
def get_macro_resolver(self) -> Optional[MacroResolverProtocol]:
|
|
106
|
+
...
|
|
101
107
|
|
|
102
|
-
def clear_macro_resolver(self) -> None:
|
|
108
|
+
def clear_macro_resolver(self) -> None:
|
|
109
|
+
...
|
|
103
110
|
|
|
104
111
|
def set_macro_context_generator(
|
|
105
112
|
self,
|
|
106
113
|
macro_context_generator: MacroContextGeneratorCallable,
|
|
107
|
-
) -> None:
|
|
114
|
+
) -> None:
|
|
115
|
+
...
|
|
108
116
|
|
|
109
117
|
@classmethod
|
|
110
118
|
def type(cls) -> str:
|
|
111
119
|
pass
|
|
112
120
|
|
|
113
|
-
def set_query_header(self, query_header_context: Dict[str, Any]) -> None:
|
|
121
|
+
def set_query_header(self, query_header_context: Dict[str, Any]) -> None:
|
|
122
|
+
...
|
|
114
123
|
|
|
115
124
|
@staticmethod
|
|
116
|
-
def get_thread_identifier() -> Hashable:
|
|
125
|
+
def get_thread_identifier() -> Hashable:
|
|
126
|
+
...
|
|
117
127
|
|
|
118
|
-
def get_thread_connection(self) -> Connection:
|
|
128
|
+
def get_thread_connection(self) -> Connection:
|
|
129
|
+
...
|
|
119
130
|
|
|
120
|
-
def set_thread_connection(self, conn: Connection) -> None:
|
|
131
|
+
def set_thread_connection(self, conn: Connection) -> None:
|
|
132
|
+
...
|
|
121
133
|
|
|
122
|
-
def get_if_exists(self) -> Optional[Connection]:
|
|
134
|
+
def get_if_exists(self) -> Optional[Connection]:
|
|
135
|
+
...
|
|
123
136
|
|
|
124
|
-
def clear_thread_connection(self) -> None:
|
|
137
|
+
def clear_thread_connection(self) -> None:
|
|
138
|
+
...
|
|
125
139
|
|
|
126
|
-
def clear_transaction(self) -> None:
|
|
140
|
+
def clear_transaction(self) -> None:
|
|
141
|
+
...
|
|
127
142
|
|
|
128
|
-
def exception_handler(self, sql: str) -> ContextManager:
|
|
143
|
+
def exception_handler(self, sql: str) -> ContextManager:
|
|
144
|
+
...
|
|
129
145
|
|
|
130
|
-
def set_connection_name(self, name: Optional[str] = None) -> Connection:
|
|
146
|
+
def set_connection_name(self, name: Optional[str] = None) -> Connection:
|
|
147
|
+
...
|
|
131
148
|
|
|
132
|
-
def cancel_open(self) -> Optional[List[str]]:
|
|
149
|
+
def cancel_open(self) -> Optional[List[str]]:
|
|
150
|
+
...
|
|
133
151
|
|
|
134
|
-
def open(cls, connection: Connection) -> Connection:
|
|
152
|
+
def open(cls, connection: Connection) -> Connection:
|
|
153
|
+
...
|
|
135
154
|
|
|
136
|
-
def release(self) -> None:
|
|
155
|
+
def release(self) -> None:
|
|
156
|
+
...
|
|
137
157
|
|
|
138
|
-
def cleanup_all(self) -> None:
|
|
158
|
+
def cleanup_all(self) -> None:
|
|
159
|
+
...
|
|
139
160
|
|
|
140
|
-
def begin(self) -> None:
|
|
161
|
+
def begin(self) -> None:
|
|
162
|
+
...
|
|
141
163
|
|
|
142
|
-
def commit(self) -> None:
|
|
164
|
+
def commit(self) -> None:
|
|
165
|
+
...
|
|
143
166
|
|
|
144
|
-
def close(cls, connection: Connection) -> Connection:
|
|
167
|
+
def close(cls, connection: Connection) -> Connection:
|
|
168
|
+
...
|
|
145
169
|
|
|
146
|
-
def commit_if_has_connection(self) -> None:
|
|
170
|
+
def commit_if_has_connection(self) -> None:
|
|
171
|
+
...
|
|
147
172
|
|
|
148
173
|
def execute(
|
|
149
174
|
self, sql: str, auto_begin: bool = False, fetch: bool = False
|
|
150
|
-
) -> Tuple[AdapterResponse, "agate.Table"]:
|
|
175
|
+
) -> Tuple[AdapterResponse, "agate.Table"]:
|
|
176
|
+
...
|
|
@@ -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,9 +16,7 @@ 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:
|
|
20
|
-
Hashable # this is usually a RelationConfig, e.g. IndexConfig, but shouldn't be limited
|
|
21
|
-
)
|
|
19
|
+
context: Hashable # this is usually a RelationConfig, e.g. IndexConfig, but shouldn't be limited
|
|
22
20
|
|
|
23
21
|
@property
|
|
24
22
|
@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
|
-
|
|
56
|
+
cast(null as {{ 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 -%}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: dbt-adapters
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.0rc1
|
|
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,7 +20,6 @@ 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
|
|
24
23
|
Requires-Python: >=3.8.0
|
|
25
24
|
Requires-Dist: agate<2.0,>=1.0
|
|
26
25
|
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=58m9GGC9H0JIyNEr-x0_j1hdHxKrp5fMF6nCEP8uJP4,21
|
|
3
|
+
dbt/adapters/__init__.py,sha256=5Cy35DPhUOt8EdFO-2dplHygsmUVONNwrCtGfUPApQA,251
|
|
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=ZG4BLfjtOyftJJVa7XgUEtbyJOtxVf4qQJG0iHkpfKs,9423
|
|
7
|
+
dbt/adapters/protocol.py,sha256=il8qcg78mXc3kHyVO0FPFwTkrq_cjQO69BuR7KGBU3I,4026
|
|
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=Poll7ofPUw16MafuzhZbSZ4DIVbiUC5H69OB5_Surs4,16921
|
|
15
|
+
dbt/adapters/base/impl.py,sha256=liTptKD1WO0xFs0sv6-8N1Duphwyet5ReXrQv2Q_r6g,68316
|
|
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=vCylzcBRi3aW-vp-731pmsCTQJoSTXxjR-lS9DPjxHo,15642
|
|
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
23
|
dbt/adapters/contracts/connection.py,sha256=F1Lw75trgYUX_FZOYzYguJgOzO8TPT4qnwP3gzm2aeY,6860
|
|
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=bow0ijWEMlcNpsd7HmHQlDNJ1kB8NpAs_2i5LCBK-P0,4652
|
|
26
|
+
dbt/adapters/events/README.md,sha256=5Vd6xD9HlwYMknUeZVtBa06tiM2Lvn6abiYvjdIV9wc,3522
|
|
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=BIRqn7gUwIHzDlFueD2eq6HVAjd6gN7vGTU3hG4looo,1810
|
|
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=0yF-wRmXgxydDXCErK2waz5eY2aknLs5dVBLw2u4CCo,697
|
|
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=ztwOfKtWfzDuuxK2OLvbCUK9oQJbH9GvKLPzSAZgdog,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=tuiLwdkruULYzFJ8vSJTg5hG89VYh-iCCP3NzJw1KbM,1730
|
|
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=Woe20TPF54pd6RN6C1wi3BxNQ8wo1sS2JZtdWoEtuCk,3841
|
|
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
|
|
@@ -147,7 +147,7 @@ dbt/include/global_project/macros/utils/right.sql,sha256=EwNG98CAFIwNDmarwopf7Rk
|
|
|
147
147
|
dbt/include/global_project/macros/utils/safe_cast.sql,sha256=1mswwkDACmIi1I99JKb_-vq3kjMe4HhMRV70mW8Bt4Y,298
|
|
148
148
|
dbt/include/global_project/macros/utils/split_part.sql,sha256=fXEIS0oIiYR7-4lYbb0QbZdG-q2TpV63AFd1ky4I5UM,714
|
|
149
149
|
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.
|
|
150
|
+
dbt_adapters-1.1.0rc1.dist-info/METADATA,sha256=tcV_bMUePkXa_VXIEPiRLTgxxKIfBjOZtMHedlBJPoU,2485
|
|
151
|
+
dbt_adapters-1.1.0rc1.dist-info/WHEEL,sha256=K0BPUNF1N3kQ9olb8aVEtkObePEjdr2JOLT1N83EVws,87
|
|
152
|
+
dbt_adapters-1.1.0rc1.dist-info/licenses/LICENSE,sha256=9yjigiJhWcCZvQjdagGKDwrRph58QWc5P2bVSQwXo6s,11344
|
|
153
|
+
dbt_adapters-1.1.0rc1.dist-info/RECORD,,
|
|
File without changes
|