Commit dc994c6
committed
perf: resolve promotion properties against a pre-normalized view mapping
Promotion passed snapshots keyed by SnapshotId into render_virtual_properties,
which expects them keyed by model name. Snapshot lookups, @model_kind_name and
embedded-model expansion therefore never worked in virtual properties during
promotion. _promote_snapshot now re-keys them by name once and uses that dict
for both virtual properties and on_virtual_update.
to_view_mapping now returns a TableMapping, which normalizes its keys once per
dialect. _resolve_table looks the table up in that index and passes only the
matching entry to exp.replace_tables, instead of re-normalizing every model in
the environment for each rendered property. The explicit mapping still takes
precedence over snapshots, and among equivalent keys the last one still wins.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Rwe8v9iP3iGKVygBfPEZaU1 parent a4af80b commit dc994c6
5 files changed
Lines changed: 292 additions & 38 deletions
File tree
- sqlmesh/core
- snapshot
- tests/core
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
48 | 107 | | |
49 | 108 | | |
50 | 109 | | |
| |||
330 | 389 | | |
331 | 390 | | |
332 | 391 | | |
333 | | - | |
334 | | - | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
335 | 407 | | |
336 | | - | |
337 | | - | |
338 | | - | |
339 | | - | |
340 | | - | |
341 | | - | |
342 | | - | |
343 | | - | |
344 | | - | |
345 | | - | |
346 | | - | |
347 | | - | |
348 | | - | |
349 | | - | |
350 | | - | |
351 | | - | |
352 | | - | |
353 | | - | |
354 | | - | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
355 | 414 | | |
356 | | - | |
357 | | - | |
358 | | - | |
359 | | - | |
360 | | - | |
361 | | - | |
| 415 | + | |
362 | 416 | | |
363 | 417 | | |
364 | 418 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| 27 | + | |
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
| |||
2007 | 2008 | | |
2008 | 2009 | | |
2009 | 2010 | | |
2010 | | - | |
2011 | | - | |
2012 | | - | |
2013 | | - | |
| 2011 | + | |
| 2012 | + | |
| 2013 | + | |
| 2014 | + | |
| 2015 | + | |
| 2016 | + | |
| 2017 | + | |
2014 | 2018 | | |
2015 | 2019 | | |
2016 | 2020 | | |
2017 | | - | |
| 2021 | + | |
2018 | 2022 | | |
2019 | 2023 | | |
2020 | 2024 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1284 | 1284 | | |
1285 | 1285 | | |
1286 | 1286 | | |
| 1287 | + | |
| 1288 | + | |
1287 | 1289 | | |
1288 | 1290 | | |
1289 | 1291 | | |
| |||
1294 | 1296 | | |
1295 | 1297 | | |
1296 | 1298 | | |
1297 | | - | |
| 1299 | + | |
1298 | 1300 | | |
1299 | 1301 | | |
1300 | 1302 | | |
1301 | 1303 | | |
1302 | | - | |
1303 | | - | |
1304 | | - | |
| 1304 | + | |
| 1305 | + | |
| 1306 | + | |
| 1307 | + | |
| 1308 | + | |
1305 | 1309 | | |
1306 | 1310 | | |
1307 | 1311 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
18 | 19 | | |
19 | 20 | | |
20 | 21 | | |
| |||
9818 | 9819 | | |
9819 | 9820 | | |
9820 | 9821 | | |
| 9822 | + | |
9821 | 9823 | | |
9822 | 9824 | | |
9823 | | - | |
| 9825 | + | |
9824 | 9826 | | |
9825 | 9827 | | |
9826 | 9828 | | |
| |||
9848 | 9850 | | |
9849 | 9851 | | |
9850 | 9852 | | |
9851 | | - | |
| 9853 | + | |
9852 | 9854 | | |
9853 | 9855 | | |
9854 | 9856 | | |
| |||
10221 | 10223 | | |
10222 | 10224 | | |
10223 | 10225 | | |
| 10226 | + | |
| 10227 | + | |
| 10228 | + | |
| 10229 | + | |
| 10230 | + | |
| 10231 | + | |
| 10232 | + | |
| 10233 | + | |
| 10234 | + | |
| 10235 | + | |
| 10236 | + | |
| 10237 | + | |
| 10238 | + | |
| 10239 | + | |
| 10240 | + | |
| 10241 | + | |
| 10242 | + | |
| 10243 | + | |
| 10244 | + | |
| 10245 | + | |
| 10246 | + | |
| 10247 | + | |
| 10248 | + | |
| 10249 | + | |
| 10250 | + | |
| 10251 | + | |
| 10252 | + | |
| 10253 | + | |
| 10254 | + | |
| 10255 | + | |
| 10256 | + | |
| 10257 | + | |
| 10258 | + | |
| 10259 | + | |
| 10260 | + | |
| 10261 | + | |
| 10262 | + | |
| 10263 | + | |
| 10264 | + | |
| 10265 | + | |
| 10266 | + | |
| 10267 | + | |
| 10268 | + | |
| 10269 | + | |
| 10270 | + | |
| 10271 | + | |
| 10272 | + | |
| 10273 | + | |
| 10274 | + | |
| 10275 | + | |
| 10276 | + | |
| 10277 | + | |
| 10278 | + | |
| 10279 | + | |
| 10280 | + | |
| 10281 | + | |
| 10282 | + | |
| 10283 | + | |
| 10284 | + | |
| 10285 | + | |
| 10286 | + | |
| 10287 | + | |
| 10288 | + | |
| 10289 | + | |
| 10290 | + | |
| 10291 | + | |
| 10292 | + | |
| 10293 | + | |
| 10294 | + | |
| 10295 | + | |
| 10296 | + | |
| 10297 | + | |
| 10298 | + | |
| 10299 | + | |
| 10300 | + | |
| 10301 | + | |
| 10302 | + | |
| 10303 | + | |
| 10304 | + | |
| 10305 | + | |
| 10306 | + | |
10224 | 10307 | | |
10225 | 10308 | | |
10226 | 10309 | | |
| |||
0 commit comments