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

Source

src/Database/ExpressionEvaluator.php:349-428