ParadeDB Operator
In order for ParadeDB to push down an aggregate, a ParadeDB text search operator must be present in the query.WHERE clause.
Join Support
Aggregate pushdown works across joins as well as single tables. When every participating table has a ParadeDB index, ParadeDB computes the result directly from the index’s columnar storage, without scanning the underlying table rows. The custom aggregate scan is enabled by default; to turn it off, runSET paradedb.enable_aggregate_custom_scan TO off;.
The following join shapes are supported:
ParadeDB falls back to native Postgres execution when any of the following are true:
- One or more tables in the join lacks a ParadeDB index
- The join has no equality join condition (e.g.
CROSS JOIN) - Join keys,
GROUP BYcolumns, or aggregate arguments are not indexed columns - The query uses window functions (
OVER ...),ROLLUP,CUBE,GROUPING SETS,LATERAL, orDISTINCT ON GROUP BYuses a scalar function likedate_trunc(...)orlower(...)(JSON sub-field access via->>is supported)- The aggregate argument or result is wrapped in an expression such as
COALESCE(SUM(...), 0)or a cast - The query uses
pdb.agg()(use standard SQL aggregate functions instead)