Commit 3cc4daa
perf: avoid full snapshot mapping in _resolve_table/_resolve_tables
_resolve_table always merged the environment-wide snapshot->table-name
mapping and handed it to exp.replace_tables, which re-normalizes
(parses) every mapping key on every call, even to resolve a single
table. _resolve_tables did the same for property expressions
(virtual_properties, session_properties) that contain no table
reference at all. For an environment with N promoted views, this made
"Updating virtual layer" O(N^2) in pure Python.
_resolve_table now looks up only the one relevant snapshot/table_mapping
entry instead of building the full mapping (table_name arrives already
normalized to the same key format snapshots/table_mapping use, via
d.normalize_model_name at both call sites). _resolve_tables now skips
building the mapping and calling replace_tables entirely when the
expression has no exp.Table node to replace.
Fixes #6017 (one of three sub-issues split out of #6014).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HyFdP5xRu9D368mjGcYDLn
Signed-off-by: mday-io <mdaytn@gmail.com>1 parent 8d0b4de commit 3cc4daa
2 files changed
Lines changed: 151 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
330 | 330 | | |
331 | 331 | | |
332 | 332 | | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
333 | 351 | | |
334 | 352 | | |
335 | | - | |
336 | | - | |
337 | | - | |
338 | | - | |
| 353 | + | |
339 | 354 | | |
340 | 355 | | |
341 | 356 | | |
| |||
365 | 380 | | |
366 | 381 | | |
367 | 382 | | |
368 | | - | |
369 | | - | |
370 | | - | |
371 | | - | |
372 | 383 | | |
373 | 384 | | |
374 | 385 | | |
| |||
410 | 421 | | |
411 | 422 | | |
412 | 423 | | |
413 | | - | |
414 | | - | |
415 | | - | |
416 | | - | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
417 | 440 | | |
418 | 441 | | |
419 | 442 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9748 | 9748 | | |
9749 | 9749 | | |
9750 | 9750 | | |
| 9751 | + | |
| 9752 | + | |
| 9753 | + | |
| 9754 | + | |
| 9755 | + | |
| 9756 | + | |
| 9757 | + | |
| 9758 | + | |
| 9759 | + | |
| 9760 | + | |
| 9761 | + | |
| 9762 | + | |
| 9763 | + | |
| 9764 | + | |
| 9765 | + | |
| 9766 | + | |
| 9767 | + | |
| 9768 | + | |
| 9769 | + | |
| 9770 | + | |
| 9771 | + | |
| 9772 | + | |
| 9773 | + | |
| 9774 | + | |
| 9775 | + | |
| 9776 | + | |
| 9777 | + | |
| 9778 | + | |
| 9779 | + | |
| 9780 | + | |
| 9781 | + | |
| 9782 | + | |
| 9783 | + | |
| 9784 | + | |
| 9785 | + | |
| 9786 | + | |
| 9787 | + | |
| 9788 | + | |
| 9789 | + | |
| 9790 | + | |
| 9791 | + | |
| 9792 | + | |
| 9793 | + | |
| 9794 | + | |
| 9795 | + | |
| 9796 | + | |
| 9797 | + | |
| 9798 | + | |
| 9799 | + | |
| 9800 | + | |
| 9801 | + | |
| 9802 | + | |
| 9803 | + | |
| 9804 | + | |
| 9805 | + | |
| 9806 | + | |
| 9807 | + | |
| 9808 | + | |
| 9809 | + | |
| 9810 | + | |
| 9811 | + | |
| 9812 | + | |
| 9813 | + | |
| 9814 | + | |
| 9815 | + | |
| 9816 | + | |
| 9817 | + | |
| 9818 | + | |
| 9819 | + | |
| 9820 | + | |
| 9821 | + | |
| 9822 | + | |
| 9823 | + | |
| 9824 | + | |
| 9825 | + | |
| 9826 | + | |
| 9827 | + | |
| 9828 | + | |
| 9829 | + | |
| 9830 | + | |
| 9831 | + | |
| 9832 | + | |
| 9833 | + | |
| 9834 | + | |
| 9835 | + | |
| 9836 | + | |
| 9837 | + | |
| 9838 | + | |
| 9839 | + | |
| 9840 | + | |
| 9841 | + | |
| 9842 | + | |
| 9843 | + | |
| 9844 | + | |
| 9845 | + | |
| 9846 | + | |
| 9847 | + | |
| 9848 | + | |
| 9849 | + | |
| 9850 | + | |
| 9851 | + | |
| 9852 | + | |
| 9853 | + | |
| 9854 | + | |
| 9855 | + | |
| 9856 | + | |
| 9857 | + | |
| 9858 | + | |
| 9859 | + | |
| 9860 | + | |
| 9861 | + | |
| 9862 | + | |
| 9863 | + | |
| 9864 | + | |
| 9865 | + | |
| 9866 | + | |
9751 | 9867 | | |
9752 | 9868 | | |
9753 | 9869 | | |
| |||
0 commit comments