Michael>If we want to calibrate

A part of the question is "What should Aggregate#computeSelfCost return?"

A) There's an option to make that method abstract so every sub-class
defines its own cost implementation.
It might be sad, and it might look like a NLogN duplication all over the
place.

B) On the other hand, if there's a generic implementation in Aggregate
class, then it should be aligned
with Enumerable* / Bindable* / Cassandra* and so on costs.

For instance, if EnumerableHashJoin uses "0.5 units per hashed cell", then
Aggregate should use the same units,
so the optimizer can properly tell the cost difference between
EnumerableHashSemiJoin(A, B) vs EnumerableHashJoin(A, Aggregate(B))

Vladimir

Reply via email to