Skip to content

Read Primitives — Predicate Ordering with Subquery

Read Primitives benchmark · all Read Primitives queries

Order filter predicates by selectivity with subquery predicate

Representative SQL

Rendered for DataFusion with default parameters.

SELECT
o_orderkey,
o_totalprice
FROM orders
WHERE
o_totalprice > 100000
AND o_orderdate >= CAST('1995-01-01' AS DATE)
AND o_custkey IN (
SELECT
c_custkey
FROM customer
WHERE
c_mktsegment = 'BUILDING' AND c_nationkey = 1
)

Representative DataFrame

Expression family (Polars, PySpark, DataFusion), default parameters.

def predicate_ordering_subquery_expression_impl(ctx: DataFrameContext) -> Any:
orders, customer = _tables(ctx, "orders", "customer")
col = ctx.col
lit = ctx.lit
building_customers = customer.filter(
(col("c_mktsegment") == lit("BUILDING")) & (col("c_nationkey") == lit(1))
).select("c_custkey")
return (
orders.filter((col("o_totalprice") > lit(100000)) & (col("o_orderdate") >= lit(date(1995, 1, 1))))
.join(building_customers, left_on="o_custkey", right_on="c_custkey", how="semi")
.select("o_orderkey", "o_totalprice")
)

Get the exact query for your run

The blocks above are representative. To get the precise statement a specific platform runs at a specific scale, substitute your own values:

from benchbox import ReadPrimitives
bench = ReadPrimitives(scale_factor=0.01) # your scale factor
queries = bench.get_queries(dialect="datafusion") # your platform's dialect; drop dialect= for native SQL
print(queries['predicate_ordering_subquery'])

For the DataFrame form:

from benchbox.core.query_catalog import get_dataframe_render
print(get_dataframe_render('read_primitives', 'predicate_ordering_subquery', family="expression").source) # or family="pandas"

Source

Query text: benchbox/core/read_primitives/queries.py