Repository navigation
fix(query): preserve empty-set exclusion semantics in dataset SQL - #82
Merged
xiaour merged 1 commit intoOct 28, 2026
Merged
Conversation
This was referenced Oct 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Dataset SQL compiled both IN[] and NOT_IN[] as false. An empty exclusion therefore removed every row, rejected every aggregate group, or zeroed metric-scoped conditional sums instead of excluding nothing.
Compile empty NOT_IN as true in row/HAVING and metric-predicate paths; preserve empty IN as false. Existing predicate conjunctions, bound parameters and row-policy validation remain intact. No baseline changes or test skips.
Validation: four new assertions fail before the fix;29 SQL/dialect/permission tests pass afterward. Execute generated SQL against real in-memory SQLite rows (including NULL) for all three scopes. Verify enforced row restrictions and parameter ordering are retained, and empty permission-policy values still throw for both set operators. Independent review found no actionable issues. Based directly on main87c2966.
中文:修复空排除列表错误地清空结果或指标的问题,保持行级权限的拒绝规则不变。
Full combined verification of#80–#82 on main87c2966:811 passed,5 failed,15 skipped; unchanged main794 passed,5 failed,15 skipped. The failing test names match exactly;17 new regression tests pass, with no new skips. Diagnostic runs use node --test --test-force-exit because existing failed tests retain resources. Architecture guard36 errors/2 warnings (baseline shape37 errors); fixture eval14/14 with2 L3 judge results pending. Baseline file unchanged. Combined branch codex/oct27-functional-fixes-integration at319fbbb; no upstream merge performed. CI is not claimed fully green.