mini\Table\Wrappers\ExistsTable class

Documentation

Filters outer table rows based on existence in inner table

Implements WHERE EXISTS / NOT EXISTS semantics with memory-bounded algorithms:

  • Sort-merge when at least one side is indexed on correlation column
  • Block hash when neither side is indexed (processes outer in chunks)
// EXISTS (SELECT 1 FROM t2 WHERE t2.id = t1.id AND t2.cat = 'C5')
$filtered = $innerTable->eq('cat', 'C5');
$result = new ExistsTable($outerTable, $filtered, [['t1.id', 't2.id']], false);

// NOT EXISTS
$result = new ExistsTable($outerTable, $filtered, [['t1.id', 't2.id']], true);

Inheritance

Extends: mini\Table\AbstractTable

Implements: mini\Table\Contracts\SetInterface IteratorAggregate Countable Traversable mini\Table\Contracts\TableInterface

Properties (7)

private array $correlations
private bool $negated
protected ?Closure $compareFn
protected ?int $limit
protected int $offset

Methods (40)

Documentation missing

Documentation missing

Sort-merge EXISTS: sort both sides and merge to find matches

Sort-merge NOT EXISTS: yield outer rows that have NO match in inner

Block hash EXISTS: process outer in chunks, scan inner for each chunk

Build composite hash key from row values

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Documentation missing

public __clone()
inherited from mini\Table\AbstractTable

Hook for subclasses to customize clone behavior

public getRowKeyColumns()
inherited from mini\Table\AbstractTable

Get column name(s) that the row key represents

protected getCompareFn()
inherited from mini\Table\AbstractTable

Get the string comparison function for sorting

public limit()
inherited from mini\Table\AbstractTable

Documentation missing

public offset()
inherited from mini\Table\AbstractTable

Documentation missing

public getLimit()
inherited from mini\Table\AbstractTable

Documentation missing

public getOffset()
inherited from mini\Table\AbstractTable

Documentation missing

public withAlias()
inherited from mini\Table\AbstractTable

Documentation missing

public getTableAlias()
inherited from mini\Table\AbstractTable

Get the current table alias (null if not set)

public union()
inherited from mini\Table\AbstractTable

Documentation missing

public except()
inherited from mini\Table\AbstractTable

Documentation missing

public distinct()
inherited from mini\Table\AbstractTable

Documentation missing

public exists()
inherited from mini\Table\AbstractTable

Documentation missing

public has()
inherited from mini\Table\AbstractTable

Check if value(s) exist in the table's projected columns

protected getPrimaryKeyColumn()
inherited from mini\Table\AbstractTable

Get the primary key column definition (cached)

public final getIterator()
inherited from mini\Table\AbstractTable

Iterate over rows with visible columns only

public getColumns()
inherited from mini\Table\AbstractTable

Get columns available for output

public getAllColumns()
inherited from mini\Table\AbstractTable

Get all column definitions regardless of projection

public columns()
inherited from mini\Table\AbstractTable

Narrow to specific columns

public load()
inherited from mini\Table\AbstractTable

Load a single row by its row ID

public getProperty()
inherited from mini\Table\AbstractTable

Get a property value

public hasProperty()
inherited from mini\Table\AbstractTable

Check if a property exists (including null values)

public withProperty()
inherited from mini\Table\AbstractTable

Return table with property set

Source

src/Table/Wrappers/ExistsTable.php:28-367