You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
DBNull three-valued logic in WHERE/JOIN predicates was fixed in Wave 13 (issue #186). Unit-level coverage in QueryEngineTests.cs includes hand-built AST tests, but none of the integration tests in AnsiSqlScenarioTests.cs or MySqlScenarioTests.cs exercise nullable column predicates through a parsed SQL string. Hand-built AST tests bypass the grammar''s column-type inference path.
Proposed Work
Add to AnsiSqlScenarioTests.cs:
Scenario_NullableColumn_IsNull_FiltersCorrectly — WHERE col IS NULL returns only null rows
Scenario_NullableColumn_IsNotNull_FiltersCorrectly — WHERE col IS NOT NULL returns only non-null rows
Discovered by: /uber-report 2026-05-10 (SqlBuildingBlocks QA)
Context
DBNull three-valued logic in WHERE/JOIN predicates was fixed in Wave 13 (issue #186). Unit-level coverage in
QueryEngineTests.csincludes hand-built AST tests, but none of the integration tests inAnsiSqlScenarioTests.csorMySqlScenarioTests.csexercise nullable column predicates through a parsed SQL string. Hand-built AST tests bypass the grammar''s column-type inference path.Proposed Work
Add to
AnsiSqlScenarioTests.cs:Scenario_NullableColumn_IsNull_FiltersCorrectly—WHERE col IS NULLreturns only null rowsScenario_NullableColumn_IsNotNull_FiltersCorrectly—WHERE col IS NOT NULLreturns only non-null rowsScenario_NullableColumn_EqualityWithNull_ExcludesNullRows—WHERE nullable_col = 5excludes null rows (SQL three-valued logic)Each test must use a parsed SQL string. Nullable column declared via
typeof(int?)inAddTableto exercise theAllowDBNullunwrap path.Acceptance Criteria
QueryEnginedotnet test --configuration Release