mini\Database\ExpressionEvaluator::evaluateIn()
Method
private
Signature
private function evaluateIn(mini\Parsing\SQL\AST\InOperation $node, ?object $row, array $context): ?int
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
$node |
mini\Parsing\SQL\AST\InOperation |
required | Documentation missing |
$row |
?object |
required | Documentation missing |
$context |
array |
required | Documentation missing |
Returns
?int
Documentation
Evaluate IN/NOT IN with proper three-valued NULL logic
SQL IN semantics:
- If left is NULL: result is NULL (unless empty list: IN()=FALSE, NOT IN()=TRUE)
- If definite match found: IN=TRUE, NOT IN=FALSE
- If no match but NULLs in list: result is NULL
- If no match and no NULLs: IN=FALSE, NOT IN=TRUE