public class HintStrategyTable extends Object
HintStrategys.
Every hint must register a HintStrategy into the collection.
With a hint strategies mapping, the hint strategy table is used as a tool
to decide i) if the given hint was registered; ii) which hints are suitable for the rel with
a given hints collection; iii) if the hint options are valid.
The hint strategy table is immutable. To create one, use
builder().
Match of hint name is case insensitive.
HintPredicate| Modifier and Type | Class and Description |
|---|---|
static class |
HintStrategyTable.Builder
Builder for
HintStrategyTable. |
static class |
HintStrategyTable.HintErrorLogger
Implementation of
Litmus that returns
a status code, it logs warnings for fail check and does not throw. |
| Modifier and Type | Field and Description |
|---|---|
static HintStrategyTable |
EMPTY
Empty strategies.
|
| Modifier and Type | Method and Description |
|---|---|
List<RelHint> |
apply(List<RelHint> hints,
RelNode rel)
Applies this
HintStrategyTable hint strategies to the given relational
expression and the hints. |
static HintStrategyTable.Builder |
builder()
Returns a
HintStrategyTable builder. |
boolean |
isRuleExcluded(Hintable hintable,
RelOptRule rule)
Returns whether the
hintable has hints that imply
the given rule should be excluded. |
boolean |
validateHint(RelHint hint)
Checks if the given hint is valid.
|
public static final HintStrategyTable EMPTY
public List<RelHint> apply(List<RelHint> hints, RelNode rel)
HintStrategyTable hint strategies to the given relational
expression and the hints.hints - Hints that may attach to the relrel - Relational expressionrelpublic boolean validateHint(RelHint hint)
hint - The hintpublic boolean isRuleExcluded(Hintable hintable, RelOptRule rule)
hintable has hints that imply
the given rule should be excluded.public static HintStrategyTable.Builder builder()
HintStrategyTable builder.Copyright © 2012-2022 Apache Software Foundation. All Rights Reserved.