mini\Table\Wrappers\BarrierTable final class

Documentation

Barrier that prevents filter/order pushdown to preserve result set membership

When a table has LIMIT/OFFSET applied, further filtering should operate on those specific rows, not modify the underlying query. BarrierTable acts as a boundary that prevents filter pushdown.

// Without barrier: eq() modifies query, still returns 10 rows
$users->order('age DESC')->limit(10)->eq('gender', 'male');  // 10 males

// With barrier: eq() filters the 10 rows we already selected
BarrierTable::from($users->order('age DESC')->limit(10))
    ->eq('gender', 'male');  // ~5 males from the original 10

Inheritance

Extends: mini\Table\Wrappers\AbstractTableWrapper

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

Properties (4)

protected mini\Table\AbstractTable $source
protected ?Closure $compareFn
protected ?int $limit
protected int $offset

Methods (37)

Freeze a table if it has pagination, otherwise return as-is

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Get the source table this wrapper delegates to

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Documentation missing

Hook for subclasses to customize clone behavior

Get column name(s) that the row key represents

Documentation missing

Get the current table alias (null if not set)

Documentation missing

Documentation missing

Documentation missing

Documentation missing

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

Get the primary key column definition (cached)

Iterate over rows with visible columns only

Return table with property set

Source

src/Table/Wrappers/BarrierTable.php:29-168