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.
Files changed (30) hide show
  1. {dbt-sqlserver-1.7.2/dbt_sqlserver.egg-info → dbt-sqlserver-1.7.3}/PKG-INFO +1 -1
  2. dbt-sqlserver-1.7.3/dbt/adapters/sqlserver/__version__.py +1 -0
  3. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/adapters/sqlserver/sql_server_adapter.py +31 -0
  4. dbt-sqlserver-1.7.3/dbt/include/sqlserver/macros/materializations/seeds/helpers.sql +57 -0
  5. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3/dbt_sqlserver.egg-info}/PKG-INFO +1 -1
  6. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt_sqlserver.egg-info/SOURCES.txt +1 -0
  7. dbt-sqlserver-1.7.2/dbt/adapters/sqlserver/__version__.py +0 -1
  8. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/LICENSE +0 -0
  9. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/MANIFEST.in +0 -0
  10. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/README.md +0 -0
  11. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/adapters/sqlserver/__init__.py +0 -0
  12. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/adapters/sqlserver/sql_server_column.py +0 -0
  13. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/adapters/sqlserver/sql_server_configs.py +0 -0
  14. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/adapters/sqlserver/sql_server_connection_manager.py +0 -0
  15. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/adapters/sqlserver/sql_server_credentials.py +0 -0
  16. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/__init__.py +0 -0
  17. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/dbt_project.yml +0 -0
  18. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/adapters/columns.sql +0 -0
  19. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/adapters/indexes.sql +0 -0
  20. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/adapters/relation.sql +0 -0
  21. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/materializations/models/table/clone.sql +0 -0
  22. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/materializations/models/table/create_table_as.sql +0 -0
  23. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/materializations/snapshots/snapshot.sql +0 -0
  24. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/utils/split_part.sql +0 -0
  25. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt/include/sqlserver/macros/utils/timestamps.sql +0 -0
  26. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt_sqlserver.egg-info/dependency_links.txt +0 -0
  27. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt_sqlserver.egg-info/requires.txt +0 -0
  28. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/dbt_sqlserver.egg-info/top_level.txt +0 -0
  29. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/setup.cfg +0 -0
  30. {dbt-sqlserver-1.7.2 → dbt-sqlserver-1.7.3}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dbt-sqlserver
3
- Version: 1.7.2
3
+ Version: 1.7.3
4
4
  Summary: A Microsoft SQL Server adapter plugin for dbt
5
5
  Home-page: https://github.com/dbt-msft/dbt-sqlserver
6
6
  Author: Mikael Ene, Anders Swanson, Sam Debruyn, Cor Zuurmond
@@ -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 %}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dbt-sqlserver
3
- Version: 1.7.2
3
+ Version: 1.7.3
4
4
  Summary: A Microsoft SQL Server adapter plugin for dbt
5
5
  Home-page: https://github.com/dbt-msft/dbt-sqlserver
6
6
  Author: Mikael Ene, Anders Swanson, Sam Debruyn, Cor Zuurmond
@@ -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