sqlmesh 0.225.1.dev25__py3-none-any.whl → 0.225.1.dev27__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 sqlmesh might be problematic. Click here for more details.
- sqlmesh/_version.py +2 -2
- sqlmesh/core/engine_adapter/base.py +3 -1
- sqlmesh/core/engine_adapter/mssql.py +4 -2
- sqlmesh/core/snapshot/evaluator.py +18 -16
- {sqlmesh-0.225.1.dev25.dist-info → sqlmesh-0.225.1.dev27.dist-info}/METADATA +1 -1
- {sqlmesh-0.225.1.dev25.dist-info → sqlmesh-0.225.1.dev27.dist-info}/RECORD +10 -10
- {sqlmesh-0.225.1.dev25.dist-info → sqlmesh-0.225.1.dev27.dist-info}/WHEEL +0 -0
- {sqlmesh-0.225.1.dev25.dist-info → sqlmesh-0.225.1.dev27.dist-info}/entry_points.txt +0 -0
- {sqlmesh-0.225.1.dev25.dist-info → sqlmesh-0.225.1.dev27.dist-info}/licenses/LICENSE +0 -0
- {sqlmesh-0.225.1.dev25.dist-info → sqlmesh-0.225.1.dev27.dist-info}/top_level.txt +0 -0
sqlmesh/_version.py
CHANGED
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.225.1.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 225, 1, '
|
|
31
|
+
__version__ = version = '0.225.1.dev27'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 225, 1, 'dev27')
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -551,11 +551,13 @@ class EngineAdapter:
|
|
|
551
551
|
target_table,
|
|
552
552
|
source_queries,
|
|
553
553
|
target_columns_to_types,
|
|
554
|
+
**kwargs,
|
|
554
555
|
)
|
|
555
556
|
return self._insert_overwrite_by_condition(
|
|
556
557
|
target_table,
|
|
557
558
|
source_queries,
|
|
558
559
|
target_columns_to_types,
|
|
560
|
+
**kwargs,
|
|
559
561
|
)
|
|
560
562
|
|
|
561
563
|
def create_index(
|
|
@@ -1614,7 +1616,7 @@ class EngineAdapter:
|
|
|
1614
1616
|
**kwargs: t.Any,
|
|
1615
1617
|
) -> None:
|
|
1616
1618
|
return self._insert_overwrite_by_condition(
|
|
1617
|
-
table_name, source_queries, target_columns_to_types, where
|
|
1619
|
+
table_name, source_queries, target_columns_to_types, where, **kwargs
|
|
1618
1620
|
)
|
|
1619
1621
|
|
|
1620
1622
|
def _values_to_sql(
|
|
@@ -423,7 +423,9 @@ class MSSQLEngineAdapter(
|
|
|
423
423
|
insert_overwrite_strategy_override: t.Optional[InsertOverwriteStrategy] = None,
|
|
424
424
|
**kwargs: t.Any,
|
|
425
425
|
) -> None:
|
|
426
|
-
|
|
426
|
+
# note that this is passed as table_properties here rather than physical_properties
|
|
427
|
+
use_merge_strategy = kwargs.get("table_properties", {}).get("mssql_merge_exists")
|
|
428
|
+
if (not where or where == exp.true()) and not use_merge_strategy:
|
|
427
429
|
# this is a full table replacement, call the base strategy to do DELETE+INSERT
|
|
428
430
|
# which will result in TRUNCATE+INSERT due to how we have overridden self.delete_from()
|
|
429
431
|
return EngineAdapter._insert_overwrite_by_condition(
|
|
@@ -436,7 +438,7 @@ class MSSQLEngineAdapter(
|
|
|
436
438
|
**kwargs,
|
|
437
439
|
)
|
|
438
440
|
|
|
439
|
-
# For
|
|
441
|
+
# For conditional overwrites or when mssql_merge_exists is set use MERGE
|
|
440
442
|
return super()._insert_overwrite_by_condition(
|
|
441
443
|
table_name=table_name,
|
|
442
444
|
source_queries=source_queries,
|
|
@@ -1593,14 +1593,14 @@ class SnapshotEvaluator:
|
|
|
1593
1593
|
tables_by_gateway_and_schema: t.Dict[t.Union[str, None], t.Dict[exp.Table, set[str]]] = (
|
|
1594
1594
|
defaultdict(lambda: defaultdict(set))
|
|
1595
1595
|
)
|
|
1596
|
-
snapshots_by_table_name: t.Dict[str, Snapshot] =
|
|
1596
|
+
snapshots_by_table_name: t.Dict[exp.Table, t.Dict[str, Snapshot]] = defaultdict(dict)
|
|
1597
1597
|
for snapshot in target_snapshots:
|
|
1598
1598
|
if not snapshot.is_model or snapshot.is_symbolic:
|
|
1599
1599
|
continue
|
|
1600
1600
|
table = table_name_callable(snapshot)
|
|
1601
1601
|
table_schema = d.schema_(table.db, catalog=table.catalog)
|
|
1602
1602
|
tables_by_gateway_and_schema[snapshot.model_gateway][table_schema].add(table.name)
|
|
1603
|
-
snapshots_by_table_name[table.name] = snapshot
|
|
1603
|
+
snapshots_by_table_name[table_schema][table.name] = snapshot
|
|
1604
1604
|
|
|
1605
1605
|
def _get_data_objects_in_schema(
|
|
1606
1606
|
schema: exp.Table,
|
|
@@ -1613,23 +1613,25 @@ class SnapshotEvaluator:
|
|
|
1613
1613
|
)
|
|
1614
1614
|
|
|
1615
1615
|
with self.concurrent_context():
|
|
1616
|
-
|
|
1616
|
+
snapshot_id_to_obj: t.Dict[SnapshotId, DataObject] = {}
|
|
1617
1617
|
# A schema can be shared across multiple engines, so we need to group tables by both gateway and schema
|
|
1618
1618
|
for gateway, tables_by_schema in tables_by_gateway_and_schema.items():
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1619
|
+
schema_list = list(tables_by_schema.keys())
|
|
1620
|
+
results = concurrent_apply_to_values(
|
|
1621
|
+
schema_list,
|
|
1622
|
+
lambda s: _get_data_objects_in_schema(
|
|
1623
|
+
schema=s, object_names=tables_by_schema.get(s), gateway=gateway
|
|
1624
|
+
),
|
|
1625
|
+
self.ddl_concurrent_tasks,
|
|
1626
|
+
)
|
|
1627
|
+
|
|
1628
|
+
for schema, objs in zip(schema_list, results):
|
|
1629
|
+
snapshots_by_name = snapshots_by_table_name.get(schema, {})
|
|
1630
|
+
for obj in objs:
|
|
1631
|
+
if obj.name in snapshots_by_name:
|
|
1632
|
+
snapshot_id_to_obj[snapshots_by_name[obj.name].snapshot_id] = obj
|
|
1631
1633
|
|
|
1632
|
-
return
|
|
1634
|
+
return snapshot_id_to_obj
|
|
1633
1635
|
|
|
1634
1636
|
|
|
1635
1637
|
def _evaluation_strategy(snapshot: SnapshotInfoLike, adapter: EngineAdapter) -> EvaluationStrategy:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
sqlmesh/__init__.py,sha256=v_spqQEhcnGaahp1yPvMqUIa6mhH3cs3Bc1CznxvCEA,7965
|
|
2
|
-
sqlmesh/_version.py,sha256=
|
|
2
|
+
sqlmesh/_version.py,sha256=3Lye_keWj8pak2a3b864FrrHNSx5aEUZYk89vVI3q4I,723
|
|
3
3
|
sqlmesh/magics.py,sha256=xLh3u4eqpVrKRVN5KF3X84RPRqjygAB9AJP1TXwH8hg,42086
|
|
4
4
|
sqlmesh/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
sqlmesh/cicd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -60,7 +60,7 @@ sqlmesh/core/config/ui.py,sha256=jsO-S6_d9NkLZGG5pT4mgKgxMF34KzkDociZAMvCX3U,278
|
|
|
60
60
|
sqlmesh/core/engine_adapter/__init__.py,sha256=y9jZAFdMBkkkRrf0ymfsJJn6s_7Ya6OpDgR4Bf1OG_U,2383
|
|
61
61
|
sqlmesh/core/engine_adapter/_typing.py,sha256=PCXQVpNbUTI3rJQyH_VTx57mDR5emh8b8cAfme6hTW4,1104
|
|
62
62
|
sqlmesh/core/engine_adapter/athena.py,sha256=5BhMaQcpiBkGt_tdT4Dw67t5pCOh-UN9-bQtayFRL3Q,26867
|
|
63
|
-
sqlmesh/core/engine_adapter/base.py,sha256=
|
|
63
|
+
sqlmesh/core/engine_adapter/base.py,sha256=t6c8HlWLmN_2GaWA3EV85Sq29al3fZpesE7Nr7iSDIw,129989
|
|
64
64
|
sqlmesh/core/engine_adapter/base_postgres.py,sha256=WTU0QingaTNM7n-mTVxS-sg4f6jFZGOSryK5IYacveY,7734
|
|
65
65
|
sqlmesh/core/engine_adapter/bigquery.py,sha256=edBWbAbeXA4bOtVG-YNTQbt9qqwL9QFffZti8Ozv-Cw,60923
|
|
66
66
|
sqlmesh/core/engine_adapter/clickhouse.py,sha256=GWGpwdxZd4RqLSAMlOHjtO8nPpSIo3zFeRWnj9eSOrM,36072
|
|
@@ -68,7 +68,7 @@ sqlmesh/core/engine_adapter/databricks.py,sha256=452Og5LriNtvXk0DElUGmoR_pUFQvBg
|
|
|
68
68
|
sqlmesh/core/engine_adapter/duckdb.py,sha256=9AXeRhaYXBcYSmIavyFY9LUzfgh94qkTO98v0-suQ8I,7993
|
|
69
69
|
sqlmesh/core/engine_adapter/fabric.py,sha256=V5Wx2Htt94nvXXVAKFjnLHqN0WIaPlS87mYYxQs0GGo,14256
|
|
70
70
|
sqlmesh/core/engine_adapter/mixins.py,sha256=3rB7B2PZSB920BODO7k_kKqu6z0N-zj1etiRCYzpUcQ,27096
|
|
71
|
-
sqlmesh/core/engine_adapter/mssql.py,sha256=
|
|
71
|
+
sqlmesh/core/engine_adapter/mssql.py,sha256=pqh6D_7eAeVCH6K4-81HPcNTLEPhTM_-Mou0QWBTOfA,18898
|
|
72
72
|
sqlmesh/core/engine_adapter/mysql.py,sha256=anKxdklYY2kiuxaHsC7FPN-LKzo7BP0Hy6hinA_c5Hg,6953
|
|
73
73
|
sqlmesh/core/engine_adapter/postgres.py,sha256=W3GXlA1qjTp6t9Az9w1bGJL28ahwes82gjhliYfo0tw,5417
|
|
74
74
|
sqlmesh/core/engine_adapter/redshift.py,sha256=DrBQbBpDwLKf4ARygBO3ldicAJs2n_BBWkGIHH8-CBM,17778
|
|
@@ -106,7 +106,7 @@ sqlmesh/core/snapshot/__init__.py,sha256=NUhvP-glftOWwxONK79Bud93yNQJv8ApBUjkV35
|
|
|
106
106
|
sqlmesh/core/snapshot/cache.py,sha256=bgqCR2hyf6r2A_8QP1EnXFK25gDX37-Zg0YeMuETWxg,3934
|
|
107
107
|
sqlmesh/core/snapshot/categorizer.py,sha256=iNBEqK2KIyTAYURlB9KLfyKCpXN7vjxSqA7QjFa7e5c,2418
|
|
108
108
|
sqlmesh/core/snapshot/definition.py,sha256=EHVRyXD58OxB-0fcx_ff9d-TVkdvoXD7NheewbpRQto,96542
|
|
109
|
-
sqlmesh/core/snapshot/evaluator.py,sha256=
|
|
109
|
+
sqlmesh/core/snapshot/evaluator.py,sha256=nFmbxx-hhatm29Xzd5OzXXejHZOqsq-E75e_kx6X1Jk,132986
|
|
110
110
|
sqlmesh/core/snapshot/execution_tracker.py,sha256=Ss1oYgH28Fy1mQ4HriX-luE9MG0eLdecrE1SssUveQI,3651
|
|
111
111
|
sqlmesh/core/state_sync/__init__.py,sha256=vcm3p_e0scP_ZxOs3XPKPG3uPsaxrK_4pnNj0QueDwQ,779
|
|
112
112
|
sqlmesh/core/state_sync/base.py,sha256=nK5tq5cIT5x5NrTaTurCRX18bSHnhSjEWG20tVqlkZc,19340
|
|
@@ -238,7 +238,7 @@ sqlmesh/utils/pydantic.py,sha256=-yppkVlw6iSBaSiKjbe7OChxL-u3urOS4-KCjJEgsRU,120
|
|
|
238
238
|
sqlmesh/utils/rich.py,sha256=cwQ5nJ6sgz64xHtoh6_ec7ReV5YpsOGhMtUJnwoRfEI,3549
|
|
239
239
|
sqlmesh/utils/windows.py,sha256=0F9RdpuuCoG5NiEDXvWlAGCiJ-59OjSAmgFF5wW05aY,1133
|
|
240
240
|
sqlmesh/utils/yaml.py,sha256=KFBd7hsKNRTtRudGR7d410qUYffQv0EWRcDM8hVNNZg,3025
|
|
241
|
-
sqlmesh-0.225.1.
|
|
241
|
+
sqlmesh-0.225.1.dev27.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
|
|
242
242
|
sqlmesh_dbt/__init__.py,sha256=awYS5y5mz-1NUmx6i5h5NSTJ7tidRl9NC0FAnFWSF6U,350
|
|
243
243
|
sqlmesh_dbt/cli.py,sha256=p9foHjAW9ni7BTOJ2loynk47M0Sf43QIJZRggOzF5tc,6351
|
|
244
244
|
sqlmesh_dbt/console.py,sha256=RwWLYnEZHzn9Xp-e2gbZvkdKbWbBLN146geI84mJitg,1132
|
|
@@ -363,8 +363,8 @@ web/server/api/endpoints/models.py,sha256=kwj0s7uve3iZSMfmjkoPVMFMeY1sD0peTeyrWf
|
|
|
363
363
|
web/server/api/endpoints/modules.py,sha256=8hqqgonGay_mJmpCw0IdbjsPhWlQH2VLdKAqha-myac,468
|
|
364
364
|
web/server/api/endpoints/plan.py,sha256=bbbY50W_2MsZSTxOHWMKz0tbIm75nsRSlPy8GI2fg9Q,9306
|
|
365
365
|
web/server/api/endpoints/table_diff.py,sha256=8XTwgOh6QBbNy_hTM1JuHgRjbnie-pGPrphiW-FNLjQ,6058
|
|
366
|
-
sqlmesh-0.225.1.
|
|
367
|
-
sqlmesh-0.225.1.
|
|
368
|
-
sqlmesh-0.225.1.
|
|
369
|
-
sqlmesh-0.225.1.
|
|
370
|
-
sqlmesh-0.225.1.
|
|
366
|
+
sqlmesh-0.225.1.dev27.dist-info/METADATA,sha256=tRidnpM_SRJSMXkBiyJ2IG22XJ-5Mx0juc0egJ8iP1E,26686
|
|
367
|
+
sqlmesh-0.225.1.dev27.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
368
|
+
sqlmesh-0.225.1.dev27.dist-info/entry_points.txt,sha256=sHAf6tQczIM8xZoduN4qaUjV7QEPVUUW_LCT8EDUMv4,155
|
|
369
|
+
sqlmesh-0.225.1.dev27.dist-info/top_level.txt,sha256=RQ-33FPe2IgL0rgossAfJkCRtqslz9b7wFARqiWLC5Q,24
|
|
370
|
+
sqlmesh-0.225.1.dev27.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|