13 lines
542 B
Python
13 lines
542 B
Python
from catopt_query.canonical import CanonicalPlan
|
|
from catopt_query.solver import optimize_across_shards
|
|
from catopt_query.protocol import PlanDelta
|
|
|
|
|
|
def test_solver_composes_plans():
|
|
p1 = CanonicalPlan(projection=["a"], predicates=["a>0"], estimated_cost=1.0)
|
|
p2 = CanonicalPlan(projection=["b"], predicates=["b<5"], estimated_cost=2.0)
|
|
delta = optimize_across_shards([p1, p2], bandwidth_budget=10.0)
|
|
assert isinstance(delta, PlanDelta)
|
|
assert "projections" in delta.changes
|
|
assert "aggregated_cost" in delta.changes
|