Commit dba0424
Merge branch 'fix/479-optional-match-join-planning-family'
Post-WITH OPTIONAL MATCH predicate handling: pure-anchor WHERE
conjuncts now move into the LEFT JOIN ON (safe for any LEFT JOIN,
previously only optional-alias conjuncts were moved); and a
general-purpose predicate walker bug that silently dropped IS NULL
operators and corrupted NOT(...) OR ... into NOT(...) AND ... is fixed
at its root cause (broader than originally filed — reproduces on plain
non-WITH cross-alias predicates too).
Three related issues (#478, #461, #479) are deferred with "KNOWN
BROKEN" characterization tests rather than risking another naive fix
that's worse than the original bug (this exact family already burned
that once, per #479's own ground-truth experiment) — they need
structural planner/join-extraction work, precisely characterized for
a future slice.
Fixes #472
Fixes #473
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>3 files changed
Lines changed: 368 additions & 45 deletions
File tree
- src
- query_planner/analyzer
- render_plan
- tests/rust/integration
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1707 | 1707 | | |
1708 | 1708 | | |
1709 | 1709 | | |
1710 | | - | |
1711 | | - | |
1712 | | - | |
1713 | | - | |
| 1710 | + | |
| 1711 | + | |
| 1712 | + | |
| 1713 | + | |
| 1714 | + | |
| 1715 | + | |
| 1716 | + | |
| 1717 | + | |
| 1718 | + | |
| 1719 | + | |
| 1720 | + | |
| 1721 | + | |
| 1722 | + | |
| 1723 | + | |
1714 | 1724 | | |
1715 | 1725 | | |
1716 | 1726 | | |
1717 | 1727 | | |
1718 | 1728 | | |
1719 | 1729 | | |
1720 | 1730 | | |
1721 | | - | |
| 1731 | + | |
1722 | 1732 | | |
1723 | 1733 | | |
1724 | 1734 | | |
| |||
1843 | 1853 | | |
1844 | 1854 | | |
1845 | 1855 | | |
1846 | | - | |
1847 | | - | |
| 1856 | + | |
| 1857 | + | |
| 1858 | + | |
| 1859 | + | |
| 1860 | + | |
| 1861 | + | |
| 1862 | + | |
| 1863 | + | |
| 1864 | + | |
| 1865 | + | |
| 1866 | + | |
| 1867 | + | |
| 1868 | + | |
1848 | 1869 | | |
1849 | 1870 | | |
1850 | 1871 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13076 | 13076 | | |
13077 | 13077 | | |
13078 | 13078 | | |
13079 | | - | |
13080 | | - | |
13081 | | - | |
13082 | | - | |
13083 | | - | |
13084 | | - | |
13085 | | - | |
13086 | | - | |
13087 | | - | |
| 13079 | + | |
| 13080 | + | |
| 13081 | + | |
| 13082 | + | |
| 13083 | + | |
| 13084 | + | |
| 13085 | + | |
| 13086 | + | |
| 13087 | + | |
| 13088 | + | |
| 13089 | + | |
| 13090 | + | |
| 13091 | + | |
| 13092 | + | |
| 13093 | + | |
| 13094 | + | |
| 13095 | + | |
| 13096 | + | |
13088 | 13097 | | |
13089 | 13098 | | |
13090 | | - | |
13091 | 13099 | | |
13092 | | - | |
13093 | | - | |
13094 | | - | |
13095 | | - | |
13096 | | - | |
13097 | | - | |
13098 | | - | |
13099 | | - | |
13100 | | - | |
13101 | | - | |
13102 | | - | |
13103 | | - | |
13104 | | - | |
13105 | | - | |
13106 | | - | |
13107 | | - | |
13108 | | - | |
13109 | | - | |
13110 | | - | |
13111 | | - | |
13112 | | - | |
13113 | | - | |
13114 | | - | |
13115 | | - | |
| 13100 | + | |
| 13101 | + | |
| 13102 | + | |
| 13103 | + | |
| 13104 | + | |
| 13105 | + | |
| 13106 | + | |
| 13107 | + | |
| 13108 | + | |
| 13109 | + | |
| 13110 | + | |
| 13111 | + | |
| 13112 | + | |
| 13113 | + | |
| 13114 | + | |
| 13115 | + | |
| 13116 | + | |
| 13117 | + | |
| 13118 | + | |
13116 | 13119 | | |
13117 | | - | |
13118 | | - | |
13119 | 13120 | | |
13120 | 13121 | | |
13121 | | - | |
| 13122 | + | |
| 13123 | + | |
| 13124 | + | |
13122 | 13125 | | |
13123 | 13126 | | |
13124 | 13127 | | |
13125 | | - | |
| 13128 | + | |
13126 | 13129 | | |
13127 | 13130 | | |
13128 | 13131 | | |
| |||
0 commit comments