Class HoistRemoteEnrichLimit
java.lang.Object
org.elasticsearch.xpack.esql.rule.Rule<Enrich,LogicalPlan>
org.elasticsearch.xpack.esql.rule.ParameterizedRule<Enrich,LogicalPlan,LogicalOptimizerContext>
org.elasticsearch.xpack.esql.optimizer.rules.logical.OptimizerRules.ParameterizedOptimizerRule<Enrich,LogicalOptimizerContext>
org.elasticsearch.xpack.esql.optimizer.rules.logical.HoistRemoteEnrichLimit
- All Implemented Interfaces:
OptimizerRules.CoordinatorOnly,OptimizerRules.LocalAware<LogicalPlan>
public final class HoistRemoteEnrichLimit
extends OptimizerRules.ParameterizedOptimizerRule<Enrich,LogicalOptimizerContext>
implements OptimizerRules.CoordinatorOnly
Locate any LIMIT that is "visible" under remote ENRICH, and make a copy of it above the ENRICH. The original limit is marked as local.
This allows the correct semantics of the remote application of limit. Enrich itself does not change the cardinality,
but the limit needs to be taken twice, locally on the node and again on the coordinator.
This runs only on LogicalPlanOptimizer not on local one.
-
Field Summary
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected LogicalPlanrule(Enrich en, LogicalOptimizerContext ctx) Methods inherited from class org.elasticsearch.xpack.esql.optimizer.rules.logical.OptimizerRules.ParameterizedOptimizerRule
applyMethods inherited from class org.elasticsearch.xpack.esql.rule.ParameterizedRule
applyMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.elasticsearch.xpack.esql.optimizer.rules.logical.OptimizerRules.CoordinatorOnly
local
-
Constructor Details
-
HoistRemoteEnrichLimit
public HoistRemoteEnrichLimit()
-
-
Method Details
-
rule
- Specified by:
rulein classOptimizerRules.ParameterizedOptimizerRule<Enrich,LogicalOptimizerContext>
-