Used to plan the aggregate operator for expressions based on the AggregateFunction2 interface.
Select the proper physical plan for join based on joining keys and size of logical plan.
Plans special cases of limit operators.
Used to plan aggregation queries that are computed incrementally as part of a StreamingQuery.
This strategy is just for explaining Dataset/DataFrame
created by spark.readStream
.