Commit 40f953e
committed
core/analyzer: analyze without writing to the catalog
A cast to a type the catalog did not hold, and an array expression whose
array type it did not hold, registered the type before reporting it. That
made analysis a writer: the catalog a query was analyzed against depended
on which queries had been analyzed before it, and a query could quietly
define a type.
An expression's type now carries the name the query used when the catalog
has no such type, so the same result is reported without inserting
anything. Nothing in the analyzer calls a catalog mutator any more.
Seeding is deterministic to match: the constant types were written in map
order, so building the same catalog twice produced two byte-different
databases and the cache stored one copy per run instead of one per catalog.
Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011MnoUabwBWW9gaEn2Nj7eG1 parent 961e6b0 commit 40f953e
4 files changed
Lines changed: 52 additions & 41 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | 5 | | |
7 | 6 | | |
8 | 7 | | |
| |||
43 | 42 | | |
44 | 43 | | |
45 | 44 | | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | 45 | | |
64 | 46 | | |
65 | 47 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
13 | 18 | | |
14 | 19 | | |
15 | 20 | | |
| |||
202 | 207 | | |
203 | 208 | | |
204 | 209 | | |
205 | | - | |
| 210 | + | |
206 | 211 | | |
207 | | - | |
| 212 | + | |
208 | 213 | | |
209 | 214 | | |
210 | 215 | | |
| |||
413 | 418 | | |
414 | 419 | | |
415 | 420 | | |
416 | | - | |
| 421 | + | |
| 422 | + | |
417 | 423 | | |
418 | 424 | | |
419 | | - | |
420 | | - | |
421 | | - | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
422 | 433 | | |
423 | | - | |
424 | | - | |
425 | | - | |
426 | | - | |
427 | | - | |
428 | | - | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
429 | 445 | | |
430 | 446 | | |
431 | | - | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
432 | 451 | | |
433 | 452 | | |
434 | 453 | | |
| |||
497 | 516 | | |
498 | 517 | | |
499 | 518 | | |
500 | | - | |
| 519 | + | |
501 | 520 | | |
502 | 521 | | |
503 | 522 | | |
| |||
710 | 729 | | |
711 | 730 | | |
712 | 731 | | |
713 | | - | |
714 | | - | |
715 | | - | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
716 | 735 | | |
| 736 | + | |
717 | 737 | | |
718 | | - | |
| 738 | + | |
719 | 739 | | |
720 | 740 | | |
721 | | - | |
| 741 | + | |
722 | 742 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
| 33 | + | |
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| |||
97 | 97 | | |
98 | 98 | | |
99 | 99 | | |
100 | | - | |
| 100 | + | |
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
414 | 414 | | |
415 | 415 | | |
416 | 416 | | |
417 | | - | |
| 417 | + | |
418 | 418 | | |
419 | 419 | | |
420 | 420 | | |
421 | 421 | | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
422 | 431 | | |
423 | 432 | | |
424 | 433 | | |
| |||
0 commit comments