MCPcopy Create free account
hub / github.com/apache/calcite / Programs

Class Programs

core/src/main/java/org/apache/calcite/tools/Programs.java:67–474  ·  view source on GitHub ↗

Utilities for creating Programs.

Source from the content-addressed store, hash-verified

65 * Utilities for creating {@link Program}s.
66 */
67public class Programs {
68 @Deprecated // to be removed before 2.0
69 public static final ImmutableList<RelOptRule> CALC_RULES = RelOptRules.CALC_RULES;
70
71 /** Program that converts filters and projects to {@link Calc}s. */
72 public static final Program CALC_PROGRAM =
73 calc(DefaultRelMetadataProvider.INSTANCE);
74
75 /** Program that expands sub-queries. */
76 public static final Program SUB_QUERY_PROGRAM =
77 subQuery(DefaultRelMetadataProvider.INSTANCE);
78
79 public static final ImmutableSet<RelOptRule> RULE_SET =
80 ImmutableSet.of(
81 EnumerableRules.ENUMERABLE_TABLE_SCAN_RULE,
82 EnumerableRules.ENUMERABLE_JOIN_RULE,
83 EnumerableRules.ENUMERABLE_MERGE_JOIN_RULE,
84 EnumerableRules.ENUMERABLE_CORRELATE_RULE,
85 EnumerableRules.ENUMERABLE_CONDITIONAL_CORRELATE_RULE,
86 EnumerableRules.ENUMERABLE_PROJECT_RULE,
87 EnumerableRules.ENUMERABLE_FILTER_RULE,
88 EnumerableRules.ENUMERABLE_AGGREGATE_RULE,
89 EnumerableRules.ENUMERABLE_SORT_RULE,
90 EnumerableRules.ENUMERABLE_LIMIT_RULE,
91 EnumerableRules.ENUMERABLE_UNION_RULE,
92 EnumerableRules.ENUMERABLE_MERGE_UNION_RULE,
93 EnumerableRules.ENUMERABLE_INTERSECT_RULE,
94 EnumerableRules.ENUMERABLE_MINUS_RULE,
95 EnumerableRules.ENUMERABLE_TABLE_MODIFICATION_RULE,
96 EnumerableRules.ENUMERABLE_VALUES_RULE,
97 EnumerableRules.ENUMERABLE_WINDOW_RULE,
98 EnumerableRules.ENUMERABLE_MATCH_RULE,
99 CoreRules.PROJECT_TO_SEMI_JOIN,
100 CoreRules.JOIN_ON_UNIQUE_TO_SEMI_JOIN,
101 CoreRules.JOIN_TO_SEMI_JOIN,
102 CoreRules.MATCH,
103 CalciteSystemProperty.COMMUTE.value()
104 ? CoreRules.JOIN_ASSOCIATE
105 : CoreRules.PROJECT_MERGE,
106 CoreRules.AGGREGATE_STAR_TABLE,
107 CoreRules.AGGREGATE_PROJECT_STAR_TABLE,
108 CoreRules.FILTER_SCAN,
109 CoreRules.FILTER_PROJECT_TRANSPOSE,
110 CoreRules.FILTER_INTO_JOIN,
111 CoreRules.AGGREGATE_EXPAND_DISTINCT_AGGREGATES,
112 CoreRules.AGGREGATE_REDUCE_FUNCTIONS,
113 CoreRules.FILTER_AGGREGATE_TRANSPOSE,
114 CoreRules.JOIN_COMMUTE,
115 JoinPushThroughJoinRule.RIGHT,
116 JoinPushThroughJoinRule.LEFT,
117 CoreRules.SORT_PROJECT_TRANSPOSE);
118
119 // private constructor for utility class
120 private Programs() {}
121
122 /** Creates a program that executes a rule set. */
123 public static Program of(RuleSet ruleSet) {
124 return new RuleSetProgram(ruleSet);

Callers

nothing calls this directly

Calls 4

calcMethod · 0.95
subQueryMethod · 0.95
ofMethod · 0.65
valueMethod · 0.45

Tested by

no test coverage detected