| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
|
Pre-PR validation: 6/6 ✅
a) Deterministic repro? ✅ b) Root cause explained? ✅ c) Fix matches root cause? ✅ d) Test intent preserved? / New tests added? ✅ e) Both directions demonstrated? ✅ f) Fix is general, not a narrow patch? ✅ |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Test-only PR. Review: are the gaps real, is the test right.
Adds test coverage for 1 untested code path, found during automated review of PR #118433.
That PR: (1) Rewrites the NULL and overflow handling of the arrayIntersect emission loop in src/Functions/array/arrayIntersect.cpp: NULL is emitted only when null_count == args (:821), a NULL element always continues instead of falling into the lookup (:838), an element flagged by …
1. arrayIntersect untested with a repeated NULL or two NULL rows in a block
src/Functions/array/arrayIntersect.cpp:829, src/Functions/array/arrayIntersect.cpp:773
Risk: FunctionArrayIntersect::execute keeps the NULL of the intersection in two pieces of per-row state that this PR rewrote: null_count (arrayIntersect.cpp:682, consumed by the new gate at :821) and null_added (:773, consumed at :829). No test in the corpus has ever given the function an …
Unique vs PR tests: The PR's 05111 covers which rows may hold a NULL (one NULL per array, and in its table only the last row emits one) and 05182 covers overflowed elements without any NULL. Neither ever puts two NULLs into one argument, so the !null_added short circuit at :829 is never taken, and …
Try it on ClickHouse Fiddle
cc @alexey-milovidov (author of #118433) — could you take a look, and add the can be tested label if this looks good?
Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes into CHANGELOG.md):
Not applicable — test-only change.
Documentation entry for user-facing changes