dbt-adapters 1.14.0__py3-none-any.whl → 1.14.3__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/base/impl.py +79 -5
- dbt/adapters/base/meta.py +1 -1
- dbt/adapters/base/relation.py +10 -1
- dbt/adapters/catalogs/__init__.py +10 -0
- dbt/adapters/catalogs/_client.py +54 -0
- dbt/adapters/catalogs/_exceptions.py +32 -0
- dbt/adapters/catalogs/_integration.py +75 -0
- dbt/adapters/contracts/connection.py +1 -1
- dbt/adapters/contracts/relation.py +1 -0
- dbt/adapters/events/adapter_types.proto +1 -0
- dbt/adapters/events/adapter_types_pb2.py +174 -174
- dbt/adapters/protocol.py +1 -1
- dbt/adapters/record/base.py +163 -0
- dbt/adapters/record/handle.py +16 -0
- dbt/adapters/record/serialization.py +31 -0
- dbt/adapters/relation_configs/config_base.py +1 -1
- dbt/adapters/sql/connections.py +1 -1
- dbt/adapters/sql/impl.py +8 -2
- dbt/include/global_project/macros/materializations/models/incremental/merge.sql +16 -29
- dbt/include/global_project/macros/python_model/python.sql +1 -1
- dbt_adapters-1.14.3.dist-info/METADATA +123 -0
- {dbt_adapters-1.14.0.dist-info → dbt_adapters-1.14.3.dist-info}/RECORD +25 -19
- dbt_adapters-1.14.0.dist-info/METADATA +0 -76
- {dbt_adapters-1.14.0.dist-info → dbt_adapters-1.14.3.dist-info}/WHEEL +0 -0
- {dbt_adapters-1.14.0.dist-info → dbt_adapters-1.14.3.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from datetime import datetime, date
|
|
2
|
+
from decimal import Decimal
|
|
3
|
+
from typing import Any, Dict, TYPE_CHECKING
|
|
4
|
+
|
|
5
|
+
if TYPE_CHECKING:
|
|
6
|
+
from agate import Table
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def _column_filter(val: Any) -> Any:
|
|
10
|
+
return (
|
|
11
|
+
float(val)
|
|
12
|
+
if isinstance(val, Decimal)
|
|
13
|
+
else (
|
|
14
|
+
str(val)
|
|
15
|
+
if isinstance(val, datetime)
|
|
16
|
+
else str(val) if isinstance(val, date) else str(val)
|
|
17
|
+
)
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def serialize_agate_table(table: "Table") -> Dict[str, Any]:
|
|
22
|
+
rows = []
|
|
23
|
+
for row in table.rows:
|
|
24
|
+
row = list(map(_column_filter, row))
|
|
25
|
+
rows.append(row)
|
|
26
|
+
|
|
27
|
+
return {
|
|
28
|
+
"column_names": table.column_names,
|
|
29
|
+
"column_types": [t.__class__.__name__ for t in table.column_types],
|
|
30
|
+
"rows": rows,
|
|
31
|
+
}
|
|
@@ -37,7 +37,7 @@ class RelationConfigBase:
|
|
|
37
37
|
|
|
38
38
|
Returns: the `RelationConfigBase` representation associated with the provided dict
|
|
39
39
|
"""
|
|
40
|
-
return cls(**filter_null_values(kwargs_dict))
|
|
40
|
+
return cls(**filter_null_values(kwargs_dict))
|
|
41
41
|
|
|
42
42
|
@classmethod
|
|
43
43
|
def _not_implemented_error(cls) -> NotImplementedError:
|
dbt/adapters/sql/connections.py
CHANGED
|
@@ -102,7 +102,7 @@ class SQLConnectionManager(BaseConnectionManager):
|
|
|
102
102
|
|
|
103
103
|
fire_event(
|
|
104
104
|
AdapterEventDebug(
|
|
105
|
-
message=f"Got a retryable error {type(e)}. {retry_limit-attempt} retries left. Retrying in 1 second.\nError:\n{e}"
|
|
105
|
+
message=f"Got a retryable error {type(e)}. {retry_limit - attempt} retries left. Retrying in 1 second.\nError:\n{e}"
|
|
106
106
|
)
|
|
107
107
|
)
|
|
108
108
|
time.sleep(1)
|
dbt/adapters/sql/impl.py
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
from typing import Any, List, Optional, Tuple, Type, TYPE_CHECKING
|
|
2
2
|
|
|
3
3
|
from dbt_common.events.functions import fire_event
|
|
4
|
+
from dbt_common.record import record_function
|
|
4
5
|
|
|
5
6
|
from dbt.adapters.base import BaseAdapter, BaseRelation, available
|
|
6
7
|
from dbt.adapters.cache import _make_ref_key_dict
|
|
7
8
|
from dbt.adapters.contracts.connection import AdapterResponse, Connection
|
|
8
9
|
from dbt.adapters.events.types import ColTypeChange, SchemaCreation, SchemaDrop
|
|
9
10
|
from dbt.adapters.exceptions import RelationTypeNullError
|
|
11
|
+
from dbt.adapters.record.base import AdapterTestSqlRecord
|
|
10
12
|
from dbt.adapters.sql.connections import SQLConnectionManager
|
|
11
13
|
|
|
12
14
|
LIST_RELATIONS_MACRO_NAME = "list_relations_without_caching"
|
|
@@ -75,7 +77,7 @@ class SQLAdapter(BaseAdapter):
|
|
|
75
77
|
import agate
|
|
76
78
|
|
|
77
79
|
# TODO CT-211
|
|
78
|
-
decimals = agate_table.aggregate(agate.MaxPrecision(col_idx))
|
|
80
|
+
decimals = agate_table.aggregate(agate.MaxPrecision(col_idx))
|
|
79
81
|
return "float8" if decimals else "integer"
|
|
80
82
|
|
|
81
83
|
@classmethod
|
|
@@ -247,7 +249,7 @@ class SQLAdapter(BaseAdapter):
|
|
|
247
249
|
# return fetched output for engines where explain plans are emitted as columnar
|
|
248
250
|
# results. Any macro override that deviates from this behavior may encounter an
|
|
249
251
|
# assertion error in the runtime.
|
|
250
|
-
adapter_response = result.response
|
|
252
|
+
adapter_response = result.response
|
|
251
253
|
assert isinstance(adapter_response, AdapterResponse), (
|
|
252
254
|
f"Expected AdapterResponse from validate_sql macro execution, "
|
|
253
255
|
f"got {type(adapter_response)}."
|
|
@@ -255,6 +257,10 @@ class SQLAdapter(BaseAdapter):
|
|
|
255
257
|
return adapter_response
|
|
256
258
|
|
|
257
259
|
# This is for use in the test suite
|
|
260
|
+
@available
|
|
261
|
+
@record_function(
|
|
262
|
+
AdapterTestSqlRecord, method=True, index_on_thread_id=True, id_field_name="thread_id"
|
|
263
|
+
)
|
|
258
264
|
def run_sql_for_tests(self, sql, fetch, conn):
|
|
259
265
|
cursor = conn.handle.cursor()
|
|
260
266
|
try:
|
|
@@ -61,36 +61,23 @@
|
|
|
61
61
|
{%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute="name")) -%}
|
|
62
62
|
|
|
63
63
|
{% if unique_key %}
|
|
64
|
-
{% if unique_key is
|
|
65
|
-
|
|
66
|
-
using {{ source }}
|
|
67
|
-
where (
|
|
68
|
-
{% for key in unique_key %}
|
|
69
|
-
{% set source_unique_key = (source ~ "." ~ key) | trim %}
|
|
70
|
-
{% set target_unique_key = (target ~ "." ~ key) | trim %}
|
|
71
|
-
{{ equals(source_unique_key, target_unique_key) }}
|
|
72
|
-
{{ "and " if not loop.last}}
|
|
73
|
-
{% endfor %}
|
|
74
|
-
{% if incremental_predicates %}
|
|
75
|
-
{% for predicate in incremental_predicates %}
|
|
76
|
-
and {{ predicate }}
|
|
77
|
-
{% endfor %}
|
|
78
|
-
{% endif %}
|
|
79
|
-
);
|
|
80
|
-
{% else %}
|
|
81
|
-
delete from {{ target }}
|
|
82
|
-
where (
|
|
83
|
-
{{ unique_key }}) in (
|
|
84
|
-
select ({{ unique_key }})
|
|
85
|
-
from {{ source }}
|
|
86
|
-
)
|
|
87
|
-
{%- if incremental_predicates %}
|
|
88
|
-
{% for predicate in incremental_predicates %}
|
|
89
|
-
and {{ predicate }}
|
|
90
|
-
{% endfor %}
|
|
91
|
-
{%- endif -%};
|
|
92
|
-
|
|
64
|
+
{% if unique_key is string %}
|
|
65
|
+
{% set unique_key = [unique_key] %}
|
|
93
66
|
{% endif %}
|
|
67
|
+
|
|
68
|
+
{%- set unique_key_str = unique_key|join(', ') -%}
|
|
69
|
+
|
|
70
|
+
delete from {{ target }}
|
|
71
|
+
where ({{ unique_key_str }}) in (
|
|
72
|
+
select distinct {{ unique_key_str }}
|
|
73
|
+
from {{ source }}
|
|
74
|
+
)
|
|
75
|
+
{%- if incremental_predicates %}
|
|
76
|
+
{% for predicate in incremental_predicates %}
|
|
77
|
+
and {{ predicate }}
|
|
78
|
+
{% endfor %}
|
|
79
|
+
{%- endif -%};
|
|
80
|
+
|
|
94
81
|
{% endif %}
|
|
95
82
|
|
|
96
83
|
insert into {{ target }} ({{ dest_cols_csv }})
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
{%- set ref_dict = {} -%}
|
|
12
12
|
{%- for _ref in model.refs -%}
|
|
13
13
|
{% set _ref_args = [_ref.get('package'), _ref['name']] if _ref.get('package') else [_ref['name'],] %}
|
|
14
|
-
{%- set resolved = ref(*_ref_args, v=_ref.get('version')) -%}
|
|
14
|
+
{%- set resolved = ref(*_ref_args, v=_ref.get('version')).render() -%}
|
|
15
15
|
{%- if _ref.get('version') -%}
|
|
16
16
|
{% do _ref_args.extend(["v" ~ _ref['version']]) %}
|
|
17
17
|
{%- endif -%}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: dbt-adapters
|
|
3
|
+
Version: 1.14.3
|
|
4
|
+
Summary: The set of adapter protocols and base functionality that supports integration with dbt-core
|
|
5
|
+
Project-URL: Homepage, https://github.com/dbt-labs/dbt-adapters/tree/main/dbt-adapters
|
|
6
|
+
Project-URL: Documentation, https://docs.getdbt.com
|
|
7
|
+
Project-URL: Repository, https://github.com/dbt-labs/dbt-adapters.git#subdirectory=dbt-adapters
|
|
8
|
+
Project-URL: Issues, https://github.com/dbt-labs/dbt-adapters/issues
|
|
9
|
+
Project-URL: Changelog, https://github.com/dbt-labs/dbt-adapters/blob/main/dbt-adapters/CHANGELOG.md
|
|
10
|
+
Author-email: dbt Labs <info@dbtlabs.com>
|
|
11
|
+
Maintainer-email: dbt Labs <info@dbtlabs.com>
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Keywords: adapter,adapters,database,dbt,dbt Cloud,dbt Core,dbt Labs,dbt-core,elt
|
|
14
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
15
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
16
|
+
Classifier: Operating System :: MacOS :: MacOS X
|
|
17
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
18
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Requires-Python: >=3.9.0
|
|
24
|
+
Requires-Dist: agate<2.0,>=1.0
|
|
25
|
+
Requires-Dist: dbt-common<2.0,>=1.13
|
|
26
|
+
Requires-Dist: mashumaro[msgpack]<3.15,>=3.9
|
|
27
|
+
Requires-Dist: protobuf<6.0,>=5.0
|
|
28
|
+
Requires-Dist: pytz>=2015.7
|
|
29
|
+
Requires-Dist: typing-extensions<5.0,>=4.0
|
|
30
|
+
Description-Content-Type: text/markdown
|
|
31
|
+
|
|
32
|
+
<p align="center">
|
|
33
|
+
<img
|
|
34
|
+
src="https://raw.githubusercontent.com/dbt-labs/dbt/ec7dee39f793aa4f7dd3dae37282cc87664813e4/etc/dbt-logo-full.svg"
|
|
35
|
+
alt="dbt logo"
|
|
36
|
+
width="500"
|
|
37
|
+
/>
|
|
38
|
+
</p>
|
|
39
|
+
|
|
40
|
+
<p align="center">
|
|
41
|
+
<a href="https://pypi.org/project/dbt-adapters/">
|
|
42
|
+
<img src="https://badge.fury.io/py/dbt-adapters.svg" />
|
|
43
|
+
</a>
|
|
44
|
+
<a target="_blank" href="https://pypi.org/project/dbt-adapters/" style="background:none">
|
|
45
|
+
<img src="https://img.shields.io/pypi/pyversions/dbt-adapters">
|
|
46
|
+
</a>
|
|
47
|
+
<a href="https://github.com/psf/black">
|
|
48
|
+
<img src="https://img.shields.io/badge/code%20style-black-000000.svg" />
|
|
49
|
+
</a>
|
|
50
|
+
<a href="https://github.com/python/mypy">
|
|
51
|
+
<img src="https://www.mypy-lang.org/static/mypy_badge.svg" />
|
|
52
|
+
</a>
|
|
53
|
+
<a href="https://pepy.tech/project/dbt-athena">
|
|
54
|
+
<img src="https://static.pepy.tech/badge/dbt-adapters/month" />
|
|
55
|
+
</a>
|
|
56
|
+
</p>
|
|
57
|
+
|
|
58
|
+
# Adapters
|
|
59
|
+
|
|
60
|
+
There are two major adapter types: [base](/dbt-adapters/src/dbt/adapters/base/impl.py) and [sql](/dbt-adapters/src/dbt/adapters/sql/impl.py).
|
|
61
|
+
|
|
62
|
+
## `base`
|
|
63
|
+
|
|
64
|
+
`BaseAdapter` defines the base functionality an adapter is required to implement in order to function with `dbt-core`.
|
|
65
|
+
There are several methods which have default implementations as well as methods that require the concrete adapter to implement them.
|
|
66
|
+
|
|
67
|
+
## `sql`
|
|
68
|
+
|
|
69
|
+
`SQLAdapter` inherits from `BaseAdapter`, updates default implementations to work with SQL-based platforms,
|
|
70
|
+
and defines additional required methods to support those defaults.
|
|
71
|
+
|
|
72
|
+
# Components
|
|
73
|
+
|
|
74
|
+
An adapter is composed of several components.
|
|
75
|
+
|
|
76
|
+
- connections
|
|
77
|
+
- dialect
|
|
78
|
+
- relation caching
|
|
79
|
+
- integration with `dbt-core`
|
|
80
|
+
|
|
81
|
+
The first two are platform-specific and require significant implementation in a concrete adapter.
|
|
82
|
+
The last two are largely implemented in `dbt-adapters` with minor adjustments in a concrete adapter.
|
|
83
|
+
|
|
84
|
+
## Connections
|
|
85
|
+
|
|
86
|
+
This component is responsible for creating and managing connections to storage and compute.
|
|
87
|
+
|
|
88
|
+
#### Files
|
|
89
|
+
- `dbt/adapters/{base|sql}/connections.py`
|
|
90
|
+
|
|
91
|
+
## Dialect
|
|
92
|
+
|
|
93
|
+
This component is responsible for translating a request from `dbt-core` into a specific set of actions on the platform.
|
|
94
|
+
|
|
95
|
+
#### Files
|
|
96
|
+
- `dbt/adapters/base/column.py`
|
|
97
|
+
- `dbt/adapters/base/query_headers.py`
|
|
98
|
+
- `dbt/adapters/base/relation.py`
|
|
99
|
+
- `dbt/adapters/relation_configs/*`
|
|
100
|
+
- `dbt/adapters/clients/jinja.py`
|
|
101
|
+
- `dbt/include/global_project/*`
|
|
102
|
+
|
|
103
|
+
## Relation caching
|
|
104
|
+
|
|
105
|
+
This component is responsible for managing a local cache of relations, relation metadata, and dependencies between relations.
|
|
106
|
+
|
|
107
|
+
#### Files
|
|
108
|
+
- `dbt/adapters/cache.py`
|
|
109
|
+
|
|
110
|
+
## Integration with `dbt-core`
|
|
111
|
+
|
|
112
|
+
This component is responsible for managing the interface between `dbt-core` and a concrete adapter.
|
|
113
|
+
|
|
114
|
+
#### Files
|
|
115
|
+
- `dbt/adapters/{base|sql}/impl.py`
|
|
116
|
+
- `dbt/adapters/base/meta.py`
|
|
117
|
+
- `dbt/adapters/base/plugin.py`
|
|
118
|
+
- `dbt/adapters/capability.py`
|
|
119
|
+
- `dbt/adapters/factory.py`
|
|
120
|
+
- `dbt/adapters/protocol.py`
|
|
121
|
+
- `dbt/adapters/contracts/*`
|
|
122
|
+
- `dbt/adapters/events/*`
|
|
123
|
+
- `dbt/adapters/exceptions/*`
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
dbt/adapters/__about__.py,sha256=
|
|
1
|
+
dbt/adapters/__about__.py,sha256=agg_op6gz96b723nzm4iSb1-8OF6yhKD2BiP8VOINwE,19
|
|
2
2
|
dbt/adapters/__init__.py,sha256=3noHsg-64qI0_Pw6OR9F7l1vU2_qrJvinq8POTtuaZM,252
|
|
3
3
|
dbt/adapters/cache.py,sha256=WGy4ewnz-J13LverTACBW2iFhGswrWLgm-wiBrQnMzo,20084
|
|
4
4
|
dbt/adapters/capability.py,sha256=M3FkC9veKnNB7a7uQyl7EHX_AGNXPChbHAkcY4cgXCY,2534
|
|
5
5
|
dbt/adapters/factory.py,sha256=9N-LjTnyqBKqK7KARjJdAPdQIRXQbVRfd2cBNDtU4Dc,9378
|
|
6
|
-
dbt/adapters/protocol.py,sha256=
|
|
6
|
+
dbt/adapters/protocol.py,sha256=4Em-TrGOlA7r8vcrKe7BtdIHKjVowWvZQRNisTu9Z8I,3796
|
|
7
7
|
dbt/adapters/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
8
|
dbt/adapters/reference_keys.py,sha256=lRN3gPdQD6Qciy-BAGx_rz3CFlbS7zMSZ43pZ_9ondE,1046
|
|
9
9
|
dbt/adapters/utils.py,sha256=OtakbxPgxwrxN5Yd2vAO-cvLETSgzBwMWebhgegAVyA,2414
|
|
@@ -11,21 +11,25 @@ dbt/adapters/base/README.md,sha256=muHQntC07Lh6L1XfVgwKhV5RltOPBLYPdQqd8_7l34c,5
|
|
|
11
11
|
dbt/adapters/base/__init__.py,sha256=Nc8lQVkOzAqdcxk4cw4E_raxN9CAWMwhQx4STdiicxg,456
|
|
12
12
|
dbt/adapters/base/column.py,sha256=Uj20UixoxCn2rlv4QDNONyys6CDkDFyG3anCXKf0T2c,5350
|
|
13
13
|
dbt/adapters/base/connections.py,sha256=-C5dOwGgMKH8n_v6wjwOxV7chBdS0GjOGwNQCUbhhWc,16951
|
|
14
|
-
dbt/adapters/base/impl.py,sha256=
|
|
15
|
-
dbt/adapters/base/meta.py,sha256=
|
|
14
|
+
dbt/adapters/base/impl.py,sha256=OEHbj51pTMpQUJn7HV0aKafi3t5v3k2JCrZfzYcH4kM,77950
|
|
15
|
+
dbt/adapters/base/meta.py,sha256=c5j0qeGec1cAi-IlVV_JkhMk01p5XqbtGj02uxGP1S4,5686
|
|
16
16
|
dbt/adapters/base/plugin.py,sha256=rm0GjNHnWM2mn0GJOjciZLwn-02xlzWCoMT9u-epwP0,1076
|
|
17
17
|
dbt/adapters/base/query_headers.py,sha256=UluGd9IYCYkoMiDi5Yx_lnrCOSjWppjwRro4SIGgx8I,3496
|
|
18
|
-
dbt/adapters/base/relation.py,sha256=
|
|
18
|
+
dbt/adapters/base/relation.py,sha256=G7fKOLFkwjpfL3JUu6Vyh6FzlBCPhmQvmCSiCaePqNI,19185
|
|
19
|
+
dbt/adapters/catalogs/__init__.py,sha256=36a8CHPbTSUuq2FglM2TD6LaePEnSgIVkJuRm-3BeU0,351
|
|
20
|
+
dbt/adapters/catalogs/_client.py,sha256=T3c0YSBBM6tD4bX1XmqVQowIsQsUkkrBZT_0QoB2uzM,2111
|
|
21
|
+
dbt/adapters/catalogs/_exceptions.py,sha256=tPYk1-4n73GnY-a42wer0CJ9eyV4XEc28LrjvRp_r50,1129
|
|
22
|
+
dbt/adapters/catalogs/_integration.py,sha256=tjVGLD_6ySrKDaTFzf1NfpFbkzpHxtxkHLDmnWOE7T8,4492
|
|
19
23
|
dbt/adapters/clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
24
|
dbt/adapters/clients/jinja.py,sha256=NsZOiBpOLunS46hRL5OcX1MpY3Ih6_87Vgz4qd_PNbc,768
|
|
21
25
|
dbt/adapters/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
|
-
dbt/adapters/contracts/connection.py,sha256=
|
|
26
|
+
dbt/adapters/contracts/connection.py,sha256=35mErirojY6Au63wjFgQokk_x7JWHjPUa6hiXjDEs0k,6917
|
|
23
27
|
dbt/adapters/contracts/macros.py,sha256=NYVDi5ww7v4ksKBwF836TXE-2xU4IBaUINqvxMY-ieU,366
|
|
24
|
-
dbt/adapters/contracts/relation.py,sha256=
|
|
28
|
+
dbt/adapters/contracts/relation.py,sha256=uzeR91ixvWky32feBtKAIKCenmC5px6uXN6qY7mZZHg,4763
|
|
25
29
|
dbt/adapters/events/README.md,sha256=kVUFIsDQrHTUmk9Mmu-yXYkWh4pA5MJK_H6739rQr5I,3521
|
|
26
30
|
dbt/adapters/events/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
|
-
dbt/adapters/events/adapter_types.proto,sha256=
|
|
28
|
-
dbt/adapters/events/adapter_types_pb2.py,sha256=
|
|
31
|
+
dbt/adapters/events/adapter_types.proto,sha256=0vrNE_BYl0DO6UU-AvjSCylmrtQVBdqQoXeYyChzqmI,9704
|
|
32
|
+
dbt/adapters/events/adapter_types_pb2.py,sha256=uEf5Pl6Dp_s9W-ja8clwEQg9iLloLu0EqsbambYVIes,26849
|
|
29
33
|
dbt/adapters/events/base_types.py,sha256=sTlNRl15GaRIrIDVxalf7sK08dfo3Ol1Ua2jbFO7-7c,966
|
|
30
34
|
dbt/adapters/events/logging.py,sha256=1nRFswQubgUrVHL5DB9ewBtbEv1-OcIXC7mMmu3NOaM,2350
|
|
31
35
|
dbt/adapters/events/types.py,sha256=nW7_FgrEmWlM-HWPHrYcJ5K5QLZtfspLizyqlXrJaoE,12189
|
|
@@ -36,7 +40,9 @@ dbt/adapters/exceptions/compilation.py,sha256=2QsAX-z_1K4q8jGtvbC1JM6dEh7lyOF7rT
|
|
|
36
40
|
dbt/adapters/exceptions/connection.py,sha256=x82j2Ix242Slm6Ima8Tol3GLOB9yZYH5lq6IV1WKq54,445
|
|
37
41
|
dbt/adapters/exceptions/database.py,sha256=nIXJdQyPQOZaiKvCkQ3MoKlKOiaN58rtDZflw3CSkug,1618
|
|
38
42
|
dbt/adapters/record/__init__.py,sha256=u_0eJzN5RL90oL-RNoP2wWGMCGp0kG0lZ0uVWnnGdxs,123
|
|
39
|
-
dbt/adapters/record/
|
|
43
|
+
dbt/adapters/record/base.py,sha256=oqBeddunk9bAyNZBC2pWQohYtD6_ju_tf_74I6NAN04,4277
|
|
44
|
+
dbt/adapters/record/handle.py,sha256=95yR-tALNXVfOhhfCEOvfwDeHI7PwuT2Wr_knw5PXyw,1352
|
|
45
|
+
dbt/adapters/record/serialization.py,sha256=ehcLioi4J7TujP58fMNGcePuMxx-2G4Dj1KoYm6j6FU,756
|
|
40
46
|
dbt/adapters/record/cursor/cursor.py,sha256=rhk50XhOAWa4r1POSrb4-TX6MjJ-mwZfDsADxI41NYk,2412
|
|
41
47
|
dbt/adapters/record/cursor/description.py,sha256=5LNebP2AF2aicPWfM9FsD5r7SAmdac8TX_4NZfJQgPk,1060
|
|
42
48
|
dbt/adapters/record/cursor/execute.py,sha256=Y9HUVteOFbDtJJjZPQLny8UgKSs2OgNa19FS7w1bGRE,495
|
|
@@ -46,12 +52,12 @@ dbt/adapters/record/cursor/fetchone.py,sha256=IKtzTMQjSeK3g0svtWMXLx_7OGx6HpbPh1
|
|
|
46
52
|
dbt/adapters/record/cursor/rowcount.py,sha256=BuiRd_JpQTPN3YaGACfsXe1vmsvO4c49kCpIBZoG6hE,515
|
|
47
53
|
dbt/adapters/relation_configs/README.md,sha256=VVeqMLbBWsBVNXHa9GLKLBN25Ivc8y78GR-6OB2tf4U,1809
|
|
48
54
|
dbt/adapters/relation_configs/__init__.py,sha256=Il1HHEI8HJGHEi2B8qsgv_CoNA2STO7SULDi78fQwZg,354
|
|
49
|
-
dbt/adapters/relation_configs/config_base.py,sha256=
|
|
55
|
+
dbt/adapters/relation_configs/config_base.py,sha256=CAsnpbNSlwMgy47oQ_Iv-hRu6mObsMZY-l6T3DG-VIo,1740
|
|
50
56
|
dbt/adapters/relation_configs/config_change.py,sha256=hf6fDWbZpKvZdM6z-OtY-GveipzfLRR_dsUZmYmXkdk,713
|
|
51
57
|
dbt/adapters/relation_configs/config_validation.py,sha256=wlJUMwOEPhYFch-LRtEWfLNJMq8jL1tRhOUHmNX8nFw,1978
|
|
52
58
|
dbt/adapters/sql/__init__.py,sha256=WLWZJfqc8pr1N1BMVe9gM-KQ4URJIeKfLqTuJBD1VN0,107
|
|
53
|
-
dbt/adapters/sql/connections.py,sha256=
|
|
54
|
-
dbt/adapters/sql/impl.py,sha256=
|
|
59
|
+
dbt/adapters/sql/connections.py,sha256=JEMvgOW167je6J33Xj_Q605cB-9gDNOmCo3zdAnWiI8,8424
|
|
60
|
+
dbt/adapters/sql/impl.py,sha256=dhpvlxc3mZWdcP42xMzW8_nM2zJGMMt1_hLUUfXx3Dw,10944
|
|
55
61
|
dbt/include/__init__.py,sha256=qEFeq3yuf3lQKVseALmL8aPM8fpCS54B_5pry00M3hk,76
|
|
56
62
|
dbt/include/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
57
63
|
dbt/include/global_project/__init__.py,sha256=-0HL5OkeJSrxglm1Y-UltTiBPY2BbWx8ZpTiJ7ypSvw,73
|
|
@@ -88,7 +94,7 @@ dbt/include/global_project/macros/materializations/models/clone/create_or_replac
|
|
|
88
94
|
dbt/include/global_project/macros/materializations/models/incremental/column_helpers.sql,sha256=hslQlGKW0oW97srfugsFVRR-L6RrzRcnwr3uLhzI0X4,2577
|
|
89
95
|
dbt/include/global_project/macros/materializations/models/incremental/incremental.sql,sha256=8gyBXan-saJ9GTSa8d05vMa-RSwyZ7pStOeHJpHU4BI,4374
|
|
90
96
|
dbt/include/global_project/macros/materializations/models/incremental/is_incremental.sql,sha256=Sm1TqOeqcCQofj3REFcA97yukPB1J_mClDd55r5GewE,478
|
|
91
|
-
dbt/include/global_project/macros/materializations/models/incremental/merge.sql,sha256=
|
|
97
|
+
dbt/include/global_project/macros/materializations/models/incremental/merge.sql,sha256=slUOJSR6FzbQa3S6qbyxg-2OqyhI-SHZoT6a1T90dAk,4796
|
|
92
98
|
dbt/include/global_project/macros/materializations/models/incremental/on_schema_change.sql,sha256=EOgcrYhwOGVPnyaBu7kIfe8LTOYVOu-AhxMtBs8ETpQ,4927
|
|
93
99
|
dbt/include/global_project/macros/materializations/models/incremental/strategies.sql,sha256=ORGWiYfj-b3_VIps9FDlyx-Q4A2hZzX2aYLocW8b6pU,2613
|
|
94
100
|
dbt/include/global_project/macros/materializations/seeds/helpers.sql,sha256=Y15ej-D3gm1ExIOMNT208q43gRk8d985WQBuGSooNL0,3920
|
|
@@ -101,7 +107,7 @@ dbt/include/global_project/macros/materializations/tests/helpers.sql,sha256=rxUx
|
|
|
101
107
|
dbt/include/global_project/macros/materializations/tests/test.sql,sha256=Rz3O_3dWHlIofG3d2CwsP2bXFimRZUIwOevyB0iz1J4,1831
|
|
102
108
|
dbt/include/global_project/macros/materializations/tests/unit.sql,sha256=KonePuFfwcz5uJ-JW0CrEy8_q-Gl45fonngGmFvQcNU,1252
|
|
103
109
|
dbt/include/global_project/macros/materializations/tests/where_subquery.sql,sha256=xjuYd18tXo99OReJGQsfgEPYljUUyF00XzK4h0SJjdM,497
|
|
104
|
-
dbt/include/global_project/macros/python_model/python.sql,sha256=
|
|
110
|
+
dbt/include/global_project/macros/python_model/python.sql,sha256=V2j8MLlq3I01IWdRMrDA1J2Di2z_pHV4YYSMOa-WCVA,3475
|
|
105
111
|
dbt/include/global_project/macros/relations/create.sql,sha256=99LLak1bhlhRw7yiI0c_4CKPlGyzqPBeBYBNeBPSmDo,701
|
|
106
112
|
dbt/include/global_project/macros/relations/create_backup.sql,sha256=jAWJSw3BUxvYrjgBs3JkRJN_VHXtk05lMWPM4n-toWs,524
|
|
107
113
|
dbt/include/global_project/macros/relations/create_intermediate.sql,sha256=bgPogZqRykUrdRxo_kvoKLrJ9C2x1c_TvtUZlYwUfmQ,568
|
|
@@ -157,7 +163,7 @@ dbt/include/global_project/macros/utils/right.sql,sha256=EwNG98CAFIwNDmarwopf7Rk
|
|
|
157
163
|
dbt/include/global_project/macros/utils/safe_cast.sql,sha256=1mswwkDACmIi1I99JKb_-vq3kjMe4HhMRV70mW8Bt4Y,298
|
|
158
164
|
dbt/include/global_project/macros/utils/split_part.sql,sha256=fXEIS0oIiYR7-4lYbb0QbZdG-q2TpV63AFd1ky4I5UM,714
|
|
159
165
|
dbt/include/global_project/tests/generic/builtin.sql,sha256=p94xdyPwb2TlxgLBqCfrcRfJ1QNgsjPvBm8f0Q5eqZM,1022
|
|
160
|
-
dbt_adapters-1.14.
|
|
161
|
-
dbt_adapters-1.14.
|
|
162
|
-
dbt_adapters-1.14.
|
|
163
|
-
dbt_adapters-1.14.
|
|
166
|
+
dbt_adapters-1.14.3.dist-info/METADATA,sha256=ecRsTmWChdgwOvuT8CfCIWVrXcyhRtCh66uuSebnmtE,4494
|
|
167
|
+
dbt_adapters-1.14.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
168
|
+
dbt_adapters-1.14.3.dist-info/licenses/LICENSE,sha256=9yjigiJhWcCZvQjdagGKDwrRph58QWc5P2bVSQwXo6s,11344
|
|
169
|
+
dbt_adapters-1.14.3.dist-info/RECORD,,
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: dbt-adapters
|
|
3
|
-
Version: 1.14.0
|
|
4
|
-
Summary: The set of adapter protocols and base functionality that supports integration with dbt-core
|
|
5
|
-
Project-URL: Homepage, https://github.com/dbt-labs/dbt-adapters/tree/main/dbt-adapters
|
|
6
|
-
Project-URL: Documentation, https://docs.getdbt.com
|
|
7
|
-
Project-URL: Repository, https://github.com/dbt-labs/dbt-adapters.git#subdirectory=dbt-adapters
|
|
8
|
-
Project-URL: Issues, https://github.com/dbt-labs/dbt-adapters/issues
|
|
9
|
-
Project-URL: Changelog, https://github.com/dbt-labs/dbt-adapters/blob/main/dbt-adapters/CHANGELOG.md
|
|
10
|
-
Author-email: dbt Labs <info@dbtlabs.com>
|
|
11
|
-
Maintainer-email: dbt Labs <info@dbtlabs.com>
|
|
12
|
-
License-File: LICENSE
|
|
13
|
-
Keywords: adapter,adapters,database,dbt,dbt Cloud,dbt Core,dbt Labs,dbt-core,elt
|
|
14
|
-
Classifier: Development Status :: 5 - Production/Stable
|
|
15
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
16
|
-
Classifier: Operating System :: MacOS :: MacOS X
|
|
17
|
-
Classifier: Operating System :: Microsoft :: Windows
|
|
18
|
-
Classifier: Operating System :: POSIX :: Linux
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
-
Requires-Python: >=3.9.0
|
|
24
|
-
Requires-Dist: agate<2.0,>=1.0
|
|
25
|
-
Requires-Dist: dbt-common<2.0,>=1.13
|
|
26
|
-
Requires-Dist: mashumaro[msgpack]<3.15,>=3.9
|
|
27
|
-
Requires-Dist: protobuf<6.0,>=5.0
|
|
28
|
-
Requires-Dist: pytz>=2015.7
|
|
29
|
-
Requires-Dist: typing-extensions<5.0,>=4.0
|
|
30
|
-
Description-Content-Type: text/markdown
|
|
31
|
-
|
|
32
|
-
<p align="center">
|
|
33
|
-
<img src="https://raw.githubusercontent.com/dbt-labs/dbt/ec7dee39f793aa4f7dd3dae37282cc87664813e4/etc/dbt-logo-full.svg" alt="dbt logo" width="500"/>
|
|
34
|
-
</p>
|
|
35
|
-
|
|
36
|
-
# dbt-adapters
|
|
37
|
-
|
|
38
|
-
This package is responsible for:
|
|
39
|
-
|
|
40
|
-
- defining database connection methods
|
|
41
|
-
- caching information from databases
|
|
42
|
-
- determining how relations are defined
|
|
43
|
-
|
|
44
|
-
In this repo there is also our testing suite used for tesing adapter functionality
|
|
45
|
-
|
|
46
|
-
# Adapters
|
|
47
|
-
|
|
48
|
-
There are two major adapter types: base and sql
|
|
49
|
-
|
|
50
|
-
## `base`
|
|
51
|
-
|
|
52
|
-
Defines the base implementation Adapters can use to build out full functionality.
|
|
53
|
-
|
|
54
|
-
## `sql`
|
|
55
|
-
|
|
56
|
-
Defines a sql implementation for adapters that initially inherits the base implementation
|
|
57
|
-
and comes with some pre-made methods and macros that can be overwritten as needed per adapter.
|
|
58
|
-
(most common type of adapter.)
|
|
59
|
-
|
|
60
|
-
# Files
|
|
61
|
-
|
|
62
|
-
## `cache.py`
|
|
63
|
-
|
|
64
|
-
Cached information from the database.
|
|
65
|
-
|
|
66
|
-
## `factory.py`
|
|
67
|
-
|
|
68
|
-
Defines how we generate adapter objects
|
|
69
|
-
|
|
70
|
-
## `protocol.py`
|
|
71
|
-
|
|
72
|
-
Defines various interfaces for various adapter objects. Helps mypy correctly resolve methods.
|
|
73
|
-
|
|
74
|
-
## `reference_keys.py`
|
|
75
|
-
|
|
76
|
-
Configures naming scheme for cache elements to be universal.
|
|
File without changes
|
|
File without changes
|