sqlmesh 0.203.1.dev7__py3-none-any.whl → 0.203.1.dev9__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.
sqlmesh/_version.py CHANGED
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.203.1.dev7'
21
- __version_tuple__ = version_tuple = (0, 203, 1, 'dev7')
20
+ __version__ = version = '0.203.1.dev9'
21
+ __version_tuple__ = version_tuple = (0, 203, 1, 'dev9')
@@ -35,6 +35,7 @@ from sqlmesh.core.snapshot import (
35
35
  SnapshotInfoLike,
36
36
  SnapshotTableInfo,
37
37
  SnapshotCreationFailedError,
38
+ SnapshotNameVersion,
38
39
  )
39
40
  from sqlmesh.utils import to_snake_case
40
41
  from sqlmesh.core.state_sync import StateSync
@@ -427,6 +428,10 @@ class BuiltInPlanEvaluator(PlanEvaluator):
427
428
  if not prod_restatements:
428
429
  return set()
429
430
 
431
+ prod_name_versions: t.Set[SnapshotNameVersion] = {
432
+ s.name_version for s in loaded_snapshots.values()
433
+ }
434
+
430
435
  snapshots_to_restate: t.Dict[SnapshotId, t.Tuple[SnapshotTableInfo, Interval]] = {}
431
436
 
432
437
  for env_summary in self.state_sync.get_environments_summary():
@@ -454,6 +459,8 @@ class BuiltInPlanEvaluator(PlanEvaluator):
454
459
  {
455
460
  keyed_snapshots[a].snapshot_id: (keyed_snapshots[a], intervals)
456
461
  for a in affected_snapshot_names
462
+ # Don't restate a snapshot if it shares the version with a snapshot in prod
463
+ if keyed_snapshots[a].name_version not in prod_name_versions
457
464
  }
458
465
  )
459
466
 
@@ -373,25 +373,31 @@ class SnapshotState:
373
373
  Args:
374
374
  next_auto_restatement_ts: A dictionary of snapshot name version to the next auto restatement timestamp.
375
375
  """
376
+ next_auto_restatement_ts_deleted = []
377
+ next_auto_restatement_ts_filtered = {}
378
+ for k, v in next_auto_restatement_ts.items():
379
+ if v is None:
380
+ next_auto_restatement_ts_deleted.append(k)
381
+ else:
382
+ next_auto_restatement_ts_filtered[k] = v
383
+
376
384
  for where in snapshot_name_version_filter(
377
385
  self.engine_adapter,
378
- next_auto_restatement_ts,
386
+ next_auto_restatement_ts_deleted,
379
387
  column_prefix="snapshot",
380
388
  alias=None,
381
389
  batch_size=self.SNAPSHOT_BATCH_SIZE,
382
390
  ):
383
391
  self.engine_adapter.delete_from(self.auto_restatements_table, where=where)
384
392
 
385
- next_auto_restatement_ts_filtered = {
386
- k: v for k, v in next_auto_restatement_ts.items() if v is not None
387
- }
388
393
  if not next_auto_restatement_ts_filtered:
389
394
  return
390
395
 
391
- self.engine_adapter.insert_append(
396
+ self.engine_adapter.merge(
392
397
  self.auto_restatements_table,
393
398
  _auto_restatements_to_df(next_auto_restatement_ts_filtered),
394
399
  columns_to_types=self._auto_restatement_columns_to_types,
400
+ unique_key=(exp.column("snapshot_name"), exp.column("snapshot_version")),
395
401
  )
396
402
 
397
403
  def count(self) -> int:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlmesh
3
- Version: 0.203.1.dev7
3
+ Version: 0.203.1.dev9
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=QjwaamJIdW7voXoS880yAx7tHm-Im4_mqGA-XJgafos,7631
2
- sqlmesh/_version.py,sha256=R4wy0dYSxH9vicH6XviMI0i1UA03tqyPJbEXKvvYfpo,528
2
+ sqlmesh/_version.py,sha256=fDm1RyPDBWPKysCeu-4LaP4ok_uBCLO7UMqmLOtJypc,528
3
3
  sqlmesh/magics.py,sha256=bEzYqXHcM0P3CjyUZ1O9arlmXAdLAhoglKbQ29fD9AE,41842
4
4
  sqlmesh/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  sqlmesh/cicd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -96,7 +96,7 @@ sqlmesh/core/model/seed.py,sha256=a0M-1zY1gOkN5ph2GQyataEdBSCtq50YjeFk2LyvInI,50
96
96
  sqlmesh/core/plan/__init__.py,sha256=NKSvM7ZBVjw9ho3J65M1wFvG3KURB8PJ0FHHLmtSF44,443
97
97
  sqlmesh/core/plan/builder.py,sha256=TQVSGiGbQi9tro0tBlcL2f5BEvyOYNiLuB3yz8PRUzA,41859
98
98
  sqlmesh/core/plan/definition.py,sha256=yrX_uZMXi29ltkuowWhNUOi1kd0Uq0TQoM574EI6JHo,14019
99
- sqlmesh/core/plan/evaluator.py,sha256=KOBZD9-hn1vVpFR9WGSIu2gt-C66R6--bwA6GxgNick,21821
99
+ sqlmesh/core/plan/evaluator.py,sha256=0oqepq0qZ_tPhAye6Q9gLenBD_8yE3E8AAwt553lz7U,22163
100
100
  sqlmesh/core/plan/explainer.py,sha256=aBkvtM9eog_2NIglazSDdG_i9TTCdFSVOkCw5N8O-1k,12028
101
101
  sqlmesh/core/plan/stages.py,sha256=JN7rwo6ibY5Ctqof3Us7Eu2x85n5GXH0rCA47BBvP1o,22228
102
102
  sqlmesh/core/snapshot/__init__.py,sha256=Z5HTetNCZGoKF1WAKXk4LWL9dc8EC8lwS2O4TtoBmt4,1317
@@ -114,7 +114,7 @@ sqlmesh/core/state_sync/db/environment.py,sha256=iTxrdNlKB36S54PUdlqEqlxiAZJtKNE
114
114
  sqlmesh/core/state_sync/db/facade.py,sha256=WWditN46A9DXHDcHT7kUZaCfkkjcaDfMC9qO1EfH4Og,25266
115
115
  sqlmesh/core/state_sync/db/interval.py,sha256=aMQSF42bVOUU05g7oizcrKR6TBVzR6TJppxzlxkmJFU,17985
116
116
  sqlmesh/core/state_sync/db/migrator.py,sha256=2LNUwOBNFkA1ntp-Z93S_OWxFQhOBj3ZD_ZqPCyPEAE,18139
117
- sqlmesh/core/state_sync/db/snapshot.py,sha256=LV5w3hvwxa-v_ilC1iuQb4iAJDNoi9DH1aNb5RzdSps,29424
117
+ sqlmesh/core/state_sync/db/snapshot.py,sha256=sWGcEWq1AeD1x4uYN9UDoAZWuISFJA4UDvMNrj9FBNk,29683
118
118
  sqlmesh/core/state_sync/db/utils.py,sha256=204OpT3ISFPCwWP9Aqq8nr6ETl24sbG5uOyo86IJv6E,3819
119
119
  sqlmesh/core/state_sync/db/version.py,sha256=fl5g1tNMYu8O6WTN4J3bciwjGq0c5nZlRDlxxRKGU78,2210
120
120
  sqlmesh/core/test/__init__.py,sha256=e83TJPwPRR_rAG29Y0OVbZb-5oWVBzz-_wrcd22Qk10,418
@@ -285,7 +285,7 @@ sqlmesh/utils/pydantic.py,sha256=o_NsXbIpDqNpUA1Uc5xF0ZzoXQYYB0DfHwdRxBwXPNk,120
285
285
  sqlmesh/utils/rich.py,sha256=cwQ5nJ6sgz64xHtoh6_ec7ReV5YpsOGhMtUJnwoRfEI,3549
286
286
  sqlmesh/utils/windows.py,sha256=r7Yin4WEwbvH7sKA3hOJtRsclmscNuBeCklCfVPvtQs,611
287
287
  sqlmesh/utils/yaml.py,sha256=hvo5lmybYLcIx4p6CQwufS8X4MbwS60lEBnCmYJCXmU,2336
288
- sqlmesh-0.203.1.dev7.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
288
+ sqlmesh-0.203.1.dev9.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
289
289
  web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
290
290
  web/client/dist/index.html,sha256=SXykdSRNgrT1k6I2dPZPEfpxPjIsi8-yVFijt-naSA4,5472
291
291
  web/client/dist/assets/Audits-Jm353fhk.js,sha256=ry6b5IKT3hLAfD5C3T2BqxulfauEV0n0YZ2vsP4eQ_U,1041
@@ -403,8 +403,8 @@ web/server/api/endpoints/models.py,sha256=kwj0s7uve3iZSMfmjkoPVMFMeY1sD0peTeyrWf
403
403
  web/server/api/endpoints/modules.py,sha256=8hqqgonGay_mJmpCw0IdbjsPhWlQH2VLdKAqha-myac,468
404
404
  web/server/api/endpoints/plan.py,sha256=bbbY50W_2MsZSTxOHWMKz0tbIm75nsRSlPy8GI2fg9Q,9306
405
405
  web/server/api/endpoints/table_diff.py,sha256=SCy3-pr5x6bEEiOaZGCDbiHQhpgxwmnz3Acqa2Ie6jI,2090
406
- sqlmesh-0.203.1.dev7.dist-info/METADATA,sha256=6kbRNm0kRXYHCtTJBxj2EoC33xjPsbJl9ULAkjUL2Hg,26678
407
- sqlmesh-0.203.1.dev7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
408
- sqlmesh-0.203.1.dev7.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
409
- sqlmesh-0.203.1.dev7.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
410
- sqlmesh-0.203.1.dev7.dist-info/RECORD,,
406
+ sqlmesh-0.203.1.dev9.dist-info/METADATA,sha256=wzJsu_LtG_2Ry5ROrlkXedNmQhwi3ewBtDYGQ8KvSig,26678
407
+ sqlmesh-0.203.1.dev9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
408
+ sqlmesh-0.203.1.dev9.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
409
+ sqlmesh-0.203.1.dev9.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
410
+ sqlmesh-0.203.1.dev9.dist-info/RECORD,,