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 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.dev25'
32
- __version_tuple__ = version_tuple = (0, 225, 1, 'dev25')
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
- if not where or where == exp.true():
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 actual conditional overwrites, use MERGE from InsertOverwriteWithMergeMixin
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
- existing_objects: t.List[DataObject] = []
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
- objs_for_gateway = [
1620
- obj
1621
- for objs in concurrent_apply_to_values(
1622
- list(tables_by_schema),
1623
- lambda s: _get_data_objects_in_schema(
1624
- schema=s, object_names=tables_by_schema.get(s), gateway=gateway
1625
- ),
1626
- self.ddl_concurrent_tasks,
1627
- )
1628
- for obj in objs
1629
- ]
1630
- existing_objects.extend(objs_for_gateway)
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 {snapshots_by_table_name[obj.name].snapshot_id: obj for obj in existing_objects}
1634
+ return snapshot_id_to_obj
1633
1635
 
1634
1636
 
1635
1637
  def _evaluation_strategy(snapshot: SnapshotInfoLike, adapter: EngineAdapter) -> EvaluationStrategy:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlmesh
3
- Version: 0.225.1.dev25
3
+ Version: 0.225.1.dev27
4
4
  Summary: Next-generation data transformation framework
5
5
  Author-email: "TobikoData Inc." <engineering@tobikodata.com>
6
6
  License: Apache License
@@ -1,5 +1,5 @@
1
1
  sqlmesh/__init__.py,sha256=v_spqQEhcnGaahp1yPvMqUIa6mhH3cs3Bc1CznxvCEA,7965
2
- sqlmesh/_version.py,sha256=M5iyIFfAVCQDlmjaTURXeS2SF5CyUI7HBWfUTauEwA4,723
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=Op7dQG6exOMDT7uHSubMsTdDurjI0XluSaB91vBTt1I,129927
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=Hf96XmP4bItNWyRzq11B9ndbrMWWYvSXQGJKRbzuQ9w,18696
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=IOqnV-0etMaIhYaQ0qZvYORyVr9mHdpAKDx8ru8HJhc,132807
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.dev25.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
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.dev25.dist-info/METADATA,sha256=sn-14l8juyXRKJHsnGsdF6jaT2jfmSXZvHuVDHzQa8Q,26686
367
- sqlmesh-0.225.1.dev25.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
368
- sqlmesh-0.225.1.dev25.dist-info/entry_points.txt,sha256=sHAf6tQczIM8xZoduN4qaUjV7QEPVUUW_LCT8EDUMv4,155
369
- sqlmesh-0.225.1.dev25.dist-info/top_level.txt,sha256=RQ-33FPe2IgL0rgossAfJkCRtqslz9b7wFARqiWLC5Q,24
370
- sqlmesh-0.225.1.dev25.dist-info/RECORD,,
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,,