sqlmesh 0.198.1.dev10__py3-none-any.whl → 0.198.1.dev12__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.198.1.dev10'
21
- __version_tuple__ = version_tuple = (0, 198, 1, 'dev10')
20
+ __version__ = version = '0.198.1.dev12'
21
+ __version_tuple__ = version_tuple = (0, 198, 1, 'dev12')
@@ -130,6 +130,7 @@ class BuiltInSchedulerConfig(_EngineAdapterStateSyncSchedulerConfig, BaseConfig)
130
130
  def create_plan_evaluator(self, context: GenericContext) -> PlanEvaluator:
131
131
  return BuiltInPlanEvaluator(
132
132
  state_sync=context.state_sync,
133
+ snapshot_evaluator=context.snapshot_evaluator,
133
134
  create_scheduler=context.create_scheduler,
134
135
  default_catalog=context.default_catalog,
135
136
  console=context.console,
sqlmesh/core/context.py CHANGED
@@ -116,7 +116,7 @@ from sqlmesh.core.test import (
116
116
  run_tests,
117
117
  )
118
118
  from sqlmesh.core.user import User
119
- from sqlmesh.utils import UniqueKeyDict, Verbosity, CorrelationId
119
+ from sqlmesh.utils import UniqueKeyDict, Verbosity
120
120
  from sqlmesh.utils.concurrency import concurrent_apply_to_values
121
121
  from sqlmesh.utils.dag import DAG
122
122
  from sqlmesh.utils.date import (
@@ -417,7 +417,7 @@ class GenericContext(BaseContext, t.Generic[C]):
417
417
  self.config.get_state_connection(self.gateway) or self.connection_config
418
418
  )
419
419
 
420
- self._snapshot_evaluators: t.Dict[t.Optional[CorrelationId], SnapshotEvaluator] = {}
420
+ self._snapshot_evaluator: t.Optional[SnapshotEvaluator] = None
421
421
 
422
422
  self.console = get_console()
423
423
  setattr(self.console, "dialect", self.config.dialect)
@@ -445,22 +445,18 @@ class GenericContext(BaseContext, t.Generic[C]):
445
445
  self._engine_adapter = self.connection_config.create_engine_adapter()
446
446
  return self._engine_adapter
447
447
 
448
- def snapshot_evaluator(
449
- self, correlation_id: t.Optional[CorrelationId] = None
450
- ) -> SnapshotEvaluator:
451
- # Cache snapshot evaluators by correlation_id to avoid old correlation_ids being attached to future Context operations
452
- if correlation_id not in self._snapshot_evaluators:
453
- self._snapshot_evaluators[correlation_id] = SnapshotEvaluator(
448
+ @property
449
+ def snapshot_evaluator(self) -> SnapshotEvaluator:
450
+ if not self._snapshot_evaluator:
451
+ self._snapshot_evaluator = SnapshotEvaluator(
454
452
  {
455
- gateway: adapter.with_settings(
456
- log_level=logging.INFO, correlation_id=correlation_id
457
- )
453
+ gateway: adapter.with_settings(log_level=logging.INFO)
458
454
  for gateway, adapter in self.engine_adapters.items()
459
455
  },
460
456
  ddl_concurrent_tasks=self.concurrent_tasks,
461
457
  selected_gateway=self.selected_gateway,
462
458
  )
463
- return self._snapshot_evaluators[correlation_id]
459
+ return self._snapshot_evaluator
464
460
 
465
461
  def execution_context(
466
462
  self,
@@ -541,9 +537,7 @@ class GenericContext(BaseContext, t.Generic[C]):
541
537
 
542
538
  return self.create_scheduler(snapshots)
543
539
 
544
- def create_scheduler(
545
- self, snapshots: t.Iterable[Snapshot], correlation_id: t.Optional[CorrelationId] = None
546
- ) -> Scheduler:
540
+ def create_scheduler(self, snapshots: t.Iterable[Snapshot]) -> Scheduler:
547
541
  """Creates the built-in scheduler.
548
542
 
549
543
  Args:
@@ -554,7 +548,7 @@ class GenericContext(BaseContext, t.Generic[C]):
554
548
  """
555
549
  return Scheduler(
556
550
  snapshots,
557
- self.snapshot_evaluator(correlation_id),
551
+ self.snapshot_evaluator,
558
552
  self.state_sync,
559
553
  default_catalog=self.default_catalog,
560
554
  max_workers=self.concurrent_tasks,
@@ -719,7 +713,7 @@ class GenericContext(BaseContext, t.Generic[C]):
719
713
  NotificationEvent.RUN_START, environment=environment
720
714
  )
721
715
  analytics_run_id = analytics.collector.on_run_start(
722
- engine_type=self.snapshot_evaluator().adapter.dialect,
716
+ engine_type=self.snapshot_evaluator.adapter.dialect,
723
717
  state_sync_type=self.state_sync.state_type(),
724
718
  )
725
719
  self._load_materializations()
@@ -1081,7 +1075,7 @@ class GenericContext(BaseContext, t.Generic[C]):
1081
1075
  and not parent_snapshot.categorized
1082
1076
  ]
1083
1077
 
1084
- df = self.snapshot_evaluator().evaluate_and_fetch(
1078
+ df = self.snapshot_evaluator.evaluate_and_fetch(
1085
1079
  snapshot,
1086
1080
  start=start,
1087
1081
  end=end,
@@ -1593,12 +1587,7 @@ class GenericContext(BaseContext, t.Generic[C]):
1593
1587
  default_catalog=self.default_catalog,
1594
1588
  console=self.console,
1595
1589
  )
1596
- explainer.evaluate(
1597
- plan.to_evaluatable(),
1598
- snapshot_evaluator=self.snapshot_evaluator(
1599
- correlation_id=CorrelationId.from_plan_id(plan.plan_id)
1600
- ),
1601
- )
1590
+ explainer.evaluate(plan.to_evaluatable())
1602
1591
  return
1603
1592
 
1604
1593
  self.notification_target_manager.notify(
@@ -2121,7 +2110,7 @@ class GenericContext(BaseContext, t.Generic[C]):
2121
2110
  errors = []
2122
2111
  skipped_count = 0
2123
2112
  for snapshot in snapshots:
2124
- for audit_result in self.snapshot_evaluator().audit(
2113
+ for audit_result in self.snapshot_evaluator.audit(
2125
2114
  snapshot=snapshot,
2126
2115
  start=start,
2127
2116
  end=end,
@@ -2153,7 +2142,7 @@ class GenericContext(BaseContext, t.Generic[C]):
2153
2142
  self.console.log_status_update(f"Got {error.count} results, expected 0.")
2154
2143
  if error.query:
2155
2144
  self.console.show_sql(
2156
- f"{error.query.sql(dialect=self.snapshot_evaluator().adapter.dialect)}"
2145
+ f"{error.query.sql(dialect=self.snapshot_evaluator.adapter.dialect)}"
2157
2146
  )
2158
2147
 
2159
2148
  self.console.log_status_update("Done.")
@@ -2345,14 +2334,12 @@ class GenericContext(BaseContext, t.Generic[C]):
2345
2334
 
2346
2335
  def close(self) -> None:
2347
2336
  """Releases all resources allocated by this context."""
2348
- for evaluator in self._snapshot_evaluators.values():
2349
- evaluator.close()
2337
+ if self._snapshot_evaluator:
2338
+ self._snapshot_evaluator.close()
2350
2339
 
2351
2340
  if self._state_sync:
2352
2341
  self._state_sync.close()
2353
2342
 
2354
- self._snapshot_evaluators.clear()
2355
-
2356
2343
  def _run(
2357
2344
  self,
2358
2345
  environment: str,
@@ -2403,11 +2390,7 @@ class GenericContext(BaseContext, t.Generic[C]):
2403
2390
 
2404
2391
  def _apply(self, plan: Plan, circuit_breaker: t.Optional[t.Callable[[], bool]]) -> None:
2405
2392
  self._scheduler.create_plan_evaluator(self).evaluate(
2406
- plan.to_evaluatable(),
2407
- snapshot_evaluator=self.snapshot_evaluator(
2408
- correlation_id=CorrelationId.from_plan_id(plan.plan_id)
2409
- ),
2410
- circuit_breaker=circuit_breaker,
2393
+ plan.to_evaluatable(), circuit_breaker=circuit_breaker
2411
2394
  )
2412
2395
 
2413
2396
  @python_api_analytics
@@ -2700,7 +2683,7 @@ class GenericContext(BaseContext, t.Generic[C]):
2700
2683
  )
2701
2684
 
2702
2685
  # Remove the expired snapshots tables
2703
- self.snapshot_evaluator().cleanup(
2686
+ self.snapshot_evaluator.cleanup(
2704
2687
  target_snapshots=cleanup_targets,
2705
2688
  on_complete=self.console.update_cleanup_progress,
2706
2689
  )
@@ -1939,6 +1939,7 @@ class EngineAdapter:
1939
1939
  unique_key: t.Sequence[exp.Expression],
1940
1940
  when_matched: t.Optional[exp.Whens] = None,
1941
1941
  merge_filter: t.Optional[exp.Expression] = None,
1942
+ **kwargs: t.Any,
1942
1943
  ) -> None:
1943
1944
  source_queries, columns_to_types = self._get_source_queries_and_columns_to_types(
1944
1945
  source_table, columns_to_types, target_table=target_table
@@ -32,6 +32,7 @@ class LogicalMergeMixin(EngineAdapter):
32
32
  unique_key: t.Sequence[exp.Expression],
33
33
  when_matched: t.Optional[exp.Whens] = None,
34
34
  merge_filter: t.Optional[exp.Expression] = None,
35
+ **kwargs: t.Any,
35
36
  ) -> None:
36
37
  logical_merge(
37
38
  self,
@@ -198,7 +198,10 @@ class MSSQLEngineAdapter(
198
198
  unique_key: t.Sequence[exp.Expression],
199
199
  when_matched: t.Optional[exp.Whens] = None,
200
200
  merge_filter: t.Optional[exp.Expression] = None,
201
+ **kwargs: t.Any,
201
202
  ) -> None:
203
+ mssql_merge_exists = kwargs.get("physical_properties", {}).get("mssql_merge_exists")
204
+
202
205
  source_queries, columns_to_types = self._get_source_queries_and_columns_to_types(
203
206
  source_table, columns_to_types, target_table=target_table
204
207
  )
@@ -214,7 +217,6 @@ class MSSQLEngineAdapter(
214
217
 
215
218
  match_expressions = []
216
219
  if not when_matched:
217
- match_condition = None
218
220
  unique_key_names = [y.name for y in unique_key]
219
221
  columns_to_types_no_keys = [c for c in columns_to_types if c not in unique_key_names]
220
222
 
@@ -225,10 +227,14 @@ class MSSQLEngineAdapter(
225
227
  exp.column(c, MERGE_SOURCE_ALIAS) for c in columns_to_types_no_keys
226
228
  ]
227
229
 
228
- match_condition = exp.Exists(
229
- this=exp.select(*target_columns_no_keys).except_(
230
- exp.select(*source_columns_no_keys)
230
+ match_condition = (
231
+ exp.Exists(
232
+ this=exp.select(*target_columns_no_keys).except_(
233
+ exp.select(*source_columns_no_keys)
234
+ )
231
235
  )
236
+ if mssql_merge_exists
237
+ else None
232
238
  )
233
239
 
234
240
  if target_columns_no_keys:
@@ -109,6 +109,7 @@ class PostgresEngineAdapter(
109
109
  unique_key: t.Sequence[exp.Expression],
110
110
  when_matched: t.Optional[exp.Whens] = None,
111
111
  merge_filter: t.Optional[exp.Expression] = None,
112
+ **kwargs: t.Any,
112
113
  ) -> None:
113
114
  # Merge isn't supported until Postgres 15
114
115
  merge_impl = (
@@ -353,6 +353,7 @@ class RedshiftEngineAdapter(
353
353
  unique_key: t.Sequence[exp.Expression],
354
354
  when_matched: t.Optional[exp.Whens] = None,
355
355
  merge_filter: t.Optional[exp.Expression] = None,
356
+ **kwargs: t.Any,
356
357
  ) -> None:
357
358
  if self.enable_merge:
358
359
  # By default we use the logical merge unless the user has opted in
@@ -51,7 +51,6 @@ class PlanEvaluator(abc.ABC):
51
51
  def evaluate(
52
52
  self,
53
53
  plan: EvaluatablePlan,
54
- snapshot_evaluator: SnapshotEvaluator,
55
54
  circuit_breaker: t.Optional[t.Callable[[], bool]] = None,
56
55
  ) -> None:
57
56
  """Evaluates a plan by pushing snapshots and backfilling data.
@@ -63,7 +62,6 @@ class PlanEvaluator(abc.ABC):
63
62
 
64
63
  Args:
65
64
  plan: The plan to evaluate.
66
- snapshot_evaluator: The snapshot evaluator to use.
67
65
  circuit_breaker: The circuit breaker to use.
68
66
  """
69
67
 
@@ -72,11 +70,13 @@ class BuiltInPlanEvaluator(PlanEvaluator):
72
70
  def __init__(
73
71
  self,
74
72
  state_sync: StateSync,
73
+ snapshot_evaluator: SnapshotEvaluator,
75
74
  create_scheduler: t.Callable[[t.Iterable[Snapshot]], Scheduler],
76
75
  default_catalog: t.Optional[str],
77
76
  console: t.Optional[Console] = None,
78
77
  ):
79
78
  self.state_sync = state_sync
79
+ self.snapshot_evaluator = snapshot_evaluator
80
80
  self.create_scheduler = create_scheduler
81
81
  self.default_catalog = default_catalog
82
82
  self.console = console or get_console()
@@ -85,11 +85,9 @@ class BuiltInPlanEvaluator(PlanEvaluator):
85
85
  def evaluate(
86
86
  self,
87
87
  plan: EvaluatablePlan,
88
- snapshot_evaluator: SnapshotEvaluator,
89
88
  circuit_breaker: t.Optional[t.Callable[[], bool]] = None,
90
89
  ) -> None:
91
90
  self._circuit_breaker = circuit_breaker
92
- self.snapshot_evaluator = snapshot_evaluator
93
91
 
94
92
  self.console.start_plan_evaluation(plan)
95
93
  analytics.collector.on_plan_apply_start(
@@ -20,7 +20,6 @@ from sqlmesh.core.snapshot.definition import (
20
20
  from sqlmesh.utils import Verbosity, rich as srich, to_snake_case
21
21
  from sqlmesh.utils.date import to_ts
22
22
  from sqlmesh.utils.errors import SQLMeshError
23
- from sqlmesh.core.snapshot.evaluator import SnapshotEvaluator
24
23
 
25
24
 
26
25
  logger = logging.getLogger(__name__)
@@ -40,7 +39,6 @@ class PlanExplainer(PlanEvaluator):
40
39
  def evaluate(
41
40
  self,
42
41
  plan: EvaluatablePlan,
43
- snapshot_evaluator: SnapshotEvaluator,
44
42
  circuit_breaker: t.Optional[t.Callable[[], bool]] = None,
45
43
  ) -> None:
46
44
  plan_stages = stages.build_plan_stages(plan, self.state_reader, self.default_catalog)
@@ -1614,6 +1614,7 @@ class IncrementalByUniqueKeyStrategy(MaterializableStrategy):
1614
1614
  end=kwargs.get("end"),
1615
1615
  execution_time=kwargs.get("execution_time"),
1616
1616
  ),
1617
+ physical_properties=kwargs.get("physical_properties", model.physical_properties),
1617
1618
  )
1618
1619
 
1619
1620
  def append(
@@ -1634,6 +1635,7 @@ class IncrementalByUniqueKeyStrategy(MaterializableStrategy):
1634
1635
  end=kwargs.get("end"),
1635
1636
  execution_time=kwargs.get("execution_time"),
1636
1637
  ),
1638
+ physical_properties=kwargs.get("physical_properties", model.physical_properties),
1637
1639
  )
1638
1640
 
1639
1641
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlmesh
3
- Version: 0.198.1.dev10
3
+ Version: 0.198.1.dev12
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=aifr0zgqAwhZJJDtDvCrp-rAkEF9P9DJc_KePb1HtkI,530
2
+ sqlmesh/_version.py,sha256=hnPFLgViYAuq9OQ8HMNnl3oJTWYxsMayOWfylgVZPU0,530
3
3
  sqlmesh/magics.py,sha256=R9U0Mp9ZQhDYe751nxAQDLaMv3zLAR4HcTdIflKTmEE,41709
4
4
  sqlmesh/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  sqlmesh/cicd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -13,7 +13,7 @@ sqlmesh/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  sqlmesh/core/_typing.py,sha256=e1f7xO2aZCy38M_3VoDy-XI3shyd99-IFctgIFSgXWM,497
14
14
  sqlmesh/core/console.py,sha256=HInr6MOcxgn8Z-B9fAoghoDXbBEZqkB5ClyZF-fRP58,159032
15
15
  sqlmesh/core/constants.py,sha256=gUABXWYgH_XOSbaZAJsR5o1dmA61JDCvBDyxqqXX3LM,2630
16
- sqlmesh/core/context.py,sha256=XQFLCzpiO8yYgIcgP0J1fG9mYBzrveaqGB8ZINR6W5A,119362
16
+ sqlmesh/core/context.py,sha256=WyaHN2Fh3FMMHN5MQNnfq5fm89wkfJujq-dkhccRId0,118534
17
17
  sqlmesh/core/context_diff.py,sha256=TCzM8egBE35DskpouOB-GQM2Qf5iUHWbRgiB5yZ6tzg,21552
18
18
  sqlmesh/core/dialect.py,sha256=1ykYwb9WZn_nCaX08PcQ0BJh2Pihv9SPvoMNjpMeCfs,50158
19
19
  sqlmesh/core/environment.py,sha256=7DbJX0r5nZRU3LhcgIxbSV-JosQYDjAt3V5Wc2Fpns8,13005
@@ -54,22 +54,22 @@ sqlmesh/core/config/naming.py,sha256=KVGaxUgswoQajXR_cHFJvgkmEFcU1V182GkOH1SJxuE
54
54
  sqlmesh/core/config/plan.py,sha256=wJEDfocMcKSMN0-5gVojjIcmJZ0376LJU3tkGMTm-Zc,1558
55
55
  sqlmesh/core/config/root.py,sha256=tZxArC4kjPqrt43R9uErH_awwwNQVaNIaTAb-ot9WiU,15529
56
56
  sqlmesh/core/config/run.py,sha256=rIK0QnN_vArrwps2TXGVEbvao2AnGZgzXo7EliJa42E,852
57
- sqlmesh/core/config/scheduler.py,sha256=LETAHZ-dwW07Uhe8M12gCYwCrYqDSGTKRxSN-5-JACs,6970
57
+ sqlmesh/core/config/scheduler.py,sha256=k3BVMpy5ZrC05ZlyE3vec8ZGfTjUjWyfsKZtYgflbyA,7029
58
58
  sqlmesh/core/config/ui.py,sha256=jsO-S6_d9NkLZGG5pT4mgKgxMF34KzkDociZAMvCX3U,278
59
59
  sqlmesh/core/engine_adapter/__init__.py,sha256=two_WTs4UnSNp-fscJh8vOunJq0Xi37EuDuMjKsKuNE,2281
60
60
  sqlmesh/core/engine_adapter/_typing.py,sha256=_63pYCThfC39UtPVHY3N0H6qJ1YBT32OqwwR3swolGM,1037
61
61
  sqlmesh/core/engine_adapter/athena.py,sha256=DMC94WfCH8m37cVPio43Q11J8RQE8tuf1nl0RtXZ_CM,26198
62
- sqlmesh/core/engine_adapter/base.py,sha256=sG9Cq_dwzXmjBxx9RmuLrPhf85YkIbCAqYrHMBiDeow,104056
62
+ sqlmesh/core/engine_adapter/base.py,sha256=7JbSAzz1U2umlmcUKYd-nIf__yRFArfwgcPkXewqoHU,104081
63
63
  sqlmesh/core/engine_adapter/base_postgres.py,sha256=DOsOdCJyQAVfA9S0GznuH0J1bonMqYVP_yJLDYcxFYM,6772
64
64
  sqlmesh/core/engine_adapter/bigquery.py,sha256=qJE8vHLKKAeWMvltmYaUvWS95jM_UEZ6UzYLlr58sGo,50424
65
65
  sqlmesh/core/engine_adapter/clickhouse.py,sha256=LoPdm_s_s-ZxS1XJPA3Et0iOHeJ1LgqTAFbwBdiqE7A,34912
66
66
  sqlmesh/core/engine_adapter/databricks.py,sha256=8ZExPIeT3dDh9MTJW8udvmh9LiY-f9HkRAN1Q5Qebhs,14541
67
67
  sqlmesh/core/engine_adapter/duckdb.py,sha256=TlSFSWNzUfjGdhuMyCi1CLwhBaEKyNKtasub9OsYwrc,5199
68
- sqlmesh/core/engine_adapter/mixins.py,sha256=HMB0Z9O3p5jaTZMolKiWKqpVDZokf5GoI99YXwEJ8bc,22470
69
- sqlmesh/core/engine_adapter/mssql.py,sha256=G6XZlLFwF9NcqJs2xkoWtCQY7lXlkRGYp8xpdJOXW4U,17451
68
+ sqlmesh/core/engine_adapter/mixins.py,sha256=2f6I97iRoeEX2c_BB5Pu8ruIrozwtCZPrxN3a-ANBr8,22495
69
+ sqlmesh/core/engine_adapter/mssql.py,sha256=N-l9RReP45hg9CNKCQTrg4BmwKtN-v9xK68JJW-xYc8,17647
70
70
  sqlmesh/core/engine_adapter/mysql.py,sha256=lVC-siXZK3iSfqCmBjZNw8uy09Z8la8v8_oUZ-E2OwI,6966
71
- sqlmesh/core/engine_adapter/postgres.py,sha256=fdQrsBodfGlNf8lZYkS99U_gjoDyaYKEVKLgScduv3I,4601
72
- sqlmesh/core/engine_adapter/redshift.py,sha256=B4GsPggz-xyvBpx5qubvVwEeKF3vk7n5SMExL-Q5Ysw,16754
71
+ sqlmesh/core/engine_adapter/postgres.py,sha256=4eXBDKXb6uiu8B7nD60b2p9pbkc8Z1Ycgavw7Necxj4,4626
72
+ sqlmesh/core/engine_adapter/redshift.py,sha256=35T2ZLKozakRNeD0zykWk8RvXomfX9xi4Zg5Y4ZAVhg,16779
73
73
  sqlmesh/core/engine_adapter/risingwave.py,sha256=YYCQ0EJaSrR9_P1_2_LmElQ6zSxqkZzhvhdm-2WtWWg,969
74
74
  sqlmesh/core/engine_adapter/shared.py,sha256=zL2W2t9af9mo80aSO0fz5TqV6mY8_kI5VYLswbKdZyk,13369
75
75
  sqlmesh/core/engine_adapter/snowflake.py,sha256=IEEzepxNpfqBIMe4ziz2k8fjOcJPeQPZyM3XljymAj0,28874
@@ -96,14 +96,14 @@ 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=g07h-NOsOr_4spnOrlQ4KrFjh3RmbvHSydEuSOsShNc,41416
98
98
  sqlmesh/core/plan/definition.py,sha256=OxgbvkMGNdlvYF2BjFJt_lINsBw38Fq1IX25P8_Z_Z0,13734
99
- sqlmesh/core/plan/evaluator.py,sha256=kmCCmEeRwt_SX6Bue2ulICqtJDVqgL4mqdhWrftOr5I,20669
100
- sqlmesh/core/plan/explainer.py,sha256=mwAqLg6i7HIU_mZnyjqkR0wN3vMccuiRFjMn3y5qqTw,12137
99
+ sqlmesh/core/plan/evaluator.py,sha256=4Gt9svTUe-0YSDawlSbJNed5fkZASbTPsYyytQFXy14,20559
100
+ sqlmesh/core/plan/explainer.py,sha256=aBkvtM9eog_2NIglazSDdG_i9TTCdFSVOkCw5N8O-1k,12028
101
101
  sqlmesh/core/plan/stages.py,sha256=5cvEbrQsw_cx1gayxwLRwkIehQPixrbUT9B4BbEOj3A,21972
102
102
  sqlmesh/core/snapshot/__init__.py,sha256=Z5HTetNCZGoKF1WAKXk4LWL9dc8EC8lwS2O4TtoBmt4,1317
103
103
  sqlmesh/core/snapshot/cache.py,sha256=bgqCR2hyf6r2A_8QP1EnXFK25gDX37-Zg0YeMuETWxg,3934
104
104
  sqlmesh/core/snapshot/categorizer.py,sha256=qGG5870mu1jR2whKisSBH_GFbsyh96RnzJDgkN7DV9g,2482
105
105
  sqlmesh/core/snapshot/definition.py,sha256=3unI15dMHzBLbfXatMSeVqH4y11TtP2PDt-FeiQfP5k,86696
106
- sqlmesh/core/snapshot/evaluator.py,sha256=i5T5EZ4lEw7X7ZGapIhau6IxJ52nJcdvSixBu_utrhE,90251
106
+ sqlmesh/core/snapshot/evaluator.py,sha256=3mjrSp9ggd9uKhuZURrY0HtuCc_WAPsH4PYvQlqmn9o,90443
107
107
  sqlmesh/core/state_sync/__init__.py,sha256=B60xj-_Xk-4jas3UphLvwkuf04G-9AyGckcblXE0aRg,869
108
108
  sqlmesh/core/state_sync/base.py,sha256=Drq4MDWWxO_J-sJIxsMG1-YSgj2L42n5WM2vh1sr6bc,18334
109
109
  sqlmesh/core/state_sync/cache.py,sha256=0AsYdQyBqbLdJvkBQ-hDAipsvnn_jSps-nya-Q4XeL0,5337
@@ -284,7 +284,7 @@ sqlmesh/utils/pydantic.py,sha256=o_NsXbIpDqNpUA1Uc5xF0ZzoXQYYB0DfHwdRxBwXPNk,120
284
284
  sqlmesh/utils/rich.py,sha256=BpB47G0-JcU41LkGkeGKroexj4NOV5fox4-GOIXPgIc,3545
285
285
  sqlmesh/utils/windows.py,sha256=r7Yin4WEwbvH7sKA3hOJtRsclmscNuBeCklCfVPvtQs,611
286
286
  sqlmesh/utils/yaml.py,sha256=hvo5lmybYLcIx4p6CQwufS8X4MbwS60lEBnCmYJCXmU,2336
287
- sqlmesh-0.198.1.dev10.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
287
+ sqlmesh-0.198.1.dev12.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
288
288
  web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
289
289
  web/client/dist/index.html,sha256=kNpFjWxt34Pf-P-cROtPWi3GNSVk6zqA3eoN9tlZXI0,5472
290
290
  web/client/dist/assets/Audits-DKgXravk.js,sha256=SaVQhNlislD_yQc_KivO7SPi1JH0ts1GnDPD5Zssutw,1041
@@ -402,8 +402,8 @@ web/server/api/endpoints/models.py,sha256=ud-lRwriyI_OYg9tZchrBgeiXELiRTLNEodraf
402
402
  web/server/api/endpoints/modules.py,sha256=8hqqgonGay_mJmpCw0IdbjsPhWlQH2VLdKAqha-myac,468
403
403
  web/server/api/endpoints/plan.py,sha256=bbbY50W_2MsZSTxOHWMKz0tbIm75nsRSlPy8GI2fg9Q,9306
404
404
  web/server/api/endpoints/table_diff.py,sha256=SCy3-pr5x6bEEiOaZGCDbiHQhpgxwmnz3Acqa2Ie6jI,2090
405
- sqlmesh-0.198.1.dev10.dist-info/METADATA,sha256=Kbclyd5hrYq93TxG7-KrmQ0jzmQsAAFXvqY9BdwcKwc,26659
406
- sqlmesh-0.198.1.dev10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
407
- sqlmesh-0.198.1.dev10.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
408
- sqlmesh-0.198.1.dev10.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
409
- sqlmesh-0.198.1.dev10.dist-info/RECORD,,
405
+ sqlmesh-0.198.1.dev12.dist-info/METADATA,sha256=qnZqaFCgJs7F_RfwlVT0HnHKk4nO1q2InfazHHOLH1c,26659
406
+ sqlmesh-0.198.1.dev12.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
407
+ sqlmesh-0.198.1.dev12.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
408
+ sqlmesh-0.198.1.dev12.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
409
+ sqlmesh-0.198.1.dev12.dist-info/RECORD,,