dbt-sqlserver 1.7.2__tar.gz → 1.7.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dbt-sqlserver-1.7.2/dbt_sqlserver.egg-info → dbt-sqlserver-1.7.3}/PKG-INFO +1 -1
- dbt-sqlserver-1.7.3/dbt/adapters/sqlserver/__version__.py +1 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/adapters/sqlserver/sql_server_adapter.py +31 -0
- dbt-sqlserver-1.7.3/dbt/include/sqlserver/macros/materializations/seeds/helpers.sql +57 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3/dbt_sqlserver.egg-info}/PKG-INFO +1 -1
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt_sqlserver.egg-info/SOURCES.txt +1 -0
- dbt-sqlserver-1.7.2/dbt/adapters/sqlserver/__version__.py +0 -1
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/LICENSE +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/MANIFEST.in +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/README.md +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/adapters/sqlserver/__init__.py +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/adapters/sqlserver/sql_server_column.py +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/adapters/sqlserver/sql_server_configs.py +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/adapters/sqlserver/sql_server_connection_manager.py +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/adapters/sqlserver/sql_server_credentials.py +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/__init__.py +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/dbt_project.yml +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/adapters/columns.sql +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/adapters/indexes.sql +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/adapters/relation.sql +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/materializations/models/table/clone.sql +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/materializations/models/table/create_table_as.sql +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/materializations/snapshots/snapshot.sql +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/utils/split_part.sql +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/utils/timestamps.sql +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt_sqlserver.egg-info/dependency_links.txt +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt_sqlserver.egg-info/requires.txt +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt_sqlserver.egg-info/top_level.txt +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/setup.cfg +0 -0
- {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/setup.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
version = "1.7.3"
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# https://github.com/microsoft/dbt-fabric/blob/main/dbt/adapters/fabric/fabric_adapter.py
|
|
2
|
+
from typing import Optional
|
|
3
|
+
|
|
4
|
+
import dbt.exceptions
|
|
2
5
|
from dbt.adapters.fabric import FabricAdapter
|
|
6
|
+
from dbt.contracts.graph.nodes import ConstraintType, ModelLevelConstraint
|
|
3
7
|
|
|
4
8
|
from dbt.adapters.sqlserver.sql_server_column import SQLServerColumn
|
|
5
9
|
from dbt.adapters.sqlserver.sql_server_configs import SQLServerConfigs
|
|
@@ -50,6 +54,33 @@ class SQLServerAdapter(FabricAdapter):
|
|
|
50
54
|
# return columns
|
|
51
55
|
# endregion
|
|
52
56
|
|
|
57
|
+
@classmethod
|
|
58
|
+
def render_model_constraint(cls, constraint: ModelLevelConstraint) -> Optional[str]:
|
|
59
|
+
constraint_prefix = "add constraint "
|
|
60
|
+
column_list = ", ".join(constraint.columns)
|
|
61
|
+
|
|
62
|
+
if constraint.name is None:
|
|
63
|
+
raise dbt.exceptions.DbtDatabaseError(
|
|
64
|
+
"Constraint name cannot be empty. Provide constraint name - column "
|
|
65
|
+
+ column_list
|
|
66
|
+
+ " and run the project again."
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
if constraint.type == ConstraintType.unique:
|
|
70
|
+
return constraint_prefix + f"{constraint.name} unique nonclustered({column_list})"
|
|
71
|
+
elif constraint.type == ConstraintType.primary_key:
|
|
72
|
+
return constraint_prefix + f"{constraint.name} primary key nonclustered({column_list})"
|
|
73
|
+
elif constraint.type == ConstraintType.foreign_key and constraint.expression:
|
|
74
|
+
return (
|
|
75
|
+
constraint_prefix
|
|
76
|
+
+ f"{constraint.name} foreign key({column_list}) references "
|
|
77
|
+
+ constraint.expression
|
|
78
|
+
)
|
|
79
|
+
elif constraint.type == ConstraintType.custom and constraint.expression:
|
|
80
|
+
return f"{constraint_prefix}{constraint.expression}"
|
|
81
|
+
else:
|
|
82
|
+
return None
|
|
83
|
+
|
|
53
84
|
@classmethod
|
|
54
85
|
def date_function(cls):
|
|
55
86
|
return "getdate()"
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{% macro sqlserver__get_binding_char() %}
|
|
2
|
+
{{ return('?') }}
|
|
3
|
+
{% endmacro %}
|
|
4
|
+
|
|
5
|
+
{% macro sqlserver__get_batch_size() %}
|
|
6
|
+
{{ return(400) }}
|
|
7
|
+
{% endmacro %}
|
|
8
|
+
|
|
9
|
+
{% macro calc_batch_size(num_columns) %}
|
|
10
|
+
{#
|
|
11
|
+
SQL Server allows for a max of 2098 parameters in a single statement.
|
|
12
|
+
Check if the max_batch_size fits with the number of columns, otherwise
|
|
13
|
+
reduce the batch size so it fits.
|
|
14
|
+
#}
|
|
15
|
+
{% set max_batch_size = get_batch_size() %}
|
|
16
|
+
{% set calculated_batch = (2098 / num_columns)|int %}
|
|
17
|
+
{% set batch_size = [max_batch_size, calculated_batch] | min %}
|
|
18
|
+
|
|
19
|
+
{{ return(batch_size) }}
|
|
20
|
+
{% endmacro %}
|
|
21
|
+
|
|
22
|
+
{% macro sqlserver__load_csv_rows(model, agate_table) %}
|
|
23
|
+
{% set cols_sql = get_seed_column_quoted_csv(model, agate_table.column_names) %}
|
|
24
|
+
{% set batch_size = calc_batch_size(agate_table.column_names|length) %}
|
|
25
|
+
{% set bindings = [] %}
|
|
26
|
+
{% set statements = [] %}
|
|
27
|
+
|
|
28
|
+
{{ log("Inserting batches of " ~ batch_size ~ " records") }}
|
|
29
|
+
|
|
30
|
+
{% for chunk in agate_table.rows | batch(batch_size) %}
|
|
31
|
+
{% set bindings = [] %}
|
|
32
|
+
|
|
33
|
+
{% for row in chunk %}
|
|
34
|
+
{% do bindings.extend(row) %}
|
|
35
|
+
{% endfor %}
|
|
36
|
+
|
|
37
|
+
{% set sql %}
|
|
38
|
+
insert into {{ this.render() }} ({{ cols_sql }}) values
|
|
39
|
+
{% for row in chunk -%}
|
|
40
|
+
({%- for column in agate_table.column_names -%}
|
|
41
|
+
{{ get_binding_char() }}
|
|
42
|
+
{%- if not loop.last%},{%- endif %}
|
|
43
|
+
{%- endfor -%})
|
|
44
|
+
{%- if not loop.last%},{%- endif %}
|
|
45
|
+
{%- endfor %}
|
|
46
|
+
{% endset %}
|
|
47
|
+
|
|
48
|
+
{% do adapter.add_query(sql, bindings=bindings, abridge_sql_log=True) %}
|
|
49
|
+
|
|
50
|
+
{% if loop.index0 == 0 %}
|
|
51
|
+
{% do statements.append(sql) %}
|
|
52
|
+
{% endif %}
|
|
53
|
+
{% endfor %}
|
|
54
|
+
|
|
55
|
+
{# Return SQL so we can render it out into the compiled files #}
|
|
56
|
+
{{ return(statements[0]) }}
|
|
57
|
+
{% endmacro %}
|
|
@@ -16,6 +16,7 @@ dbt/include/sqlserver/macros/adapters/indexes.sql
|
|
|
16
16
|
dbt/include/sqlserver/macros/adapters/relation.sql
|
|
17
17
|
dbt/include/sqlserver/macros/materializations/models/table/clone.sql
|
|
18
18
|
dbt/include/sqlserver/macros/materializations/models/table/create_table_as.sql
|
|
19
|
+
dbt/include/sqlserver/macros/materializations/seeds/helpers.sql
|
|
19
20
|
dbt/include/sqlserver/macros/materializations/snapshots/snapshot.sql
|
|
20
21
|
dbt/include/sqlserver/macros/utils/split_part.sql
|
|
21
22
|
dbt/include/sqlserver/macros/utils/timestamps.sql
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
version = "1.7.2"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/adapters/sqlserver/sql_server_connection_manager.py
RENAMED
|
File without changes
|
{dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/adapters/sqlserver/sql_server_credentials.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/adapters/columns.sql
RENAMED
|
File without changes
|
{dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/adapters/indexes.sql
RENAMED
|
File without changes
|
{dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/adapters/relation.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/utils/split_part.sql
RENAMED
|
File without changes
|
{dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/utils/timestamps.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|