TAJO-2057: Remove redundant class loading in plan optimizer.
Closes #943
diff --git a/CHANGES b/CHANGES
index 39b78d2..51bfa62 100644
--- a/CHANGES
+++ b/CHANGES
@@ -8,6 +8,8 @@
IMPROVEMENT
+ TAJO-2057: Remove redundant class loading in plan optimizer. (jinho)
+
TAJO-2032: Change tajo.rest.service.port to be the general style in TAJO.
(Byunghwa Yun via jihoon)
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/exprrewrite/EvalTreeOptimizer.java b/tajo-plan/src/main/java/org/apache/tajo/plan/exprrewrite/EvalTreeOptimizer.java
index a8a3ff3..4d742c7 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/exprrewrite/EvalTreeOptimizer.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/exprrewrite/EvalTreeOptimizer.java
@@ -35,9 +35,9 @@
public class EvalTreeOptimizer {
private static final Log LOG = LogFactory.getLog(EvalTreeOptimizer.class);
- private List<EvalTreeOptimizationRule> rules = Lists.newArrayList();
+ private static List<EvalTreeOptimizationRule> rules = Lists.newArrayList();
- public EvalTreeOptimizer() {
+ static {
Set<Class> functionClasses = ClassUtil.findClasses(EvalTreeOptimizationRule.class,
EvalTreeOptimizationRule.class.getPackage().getName() + ".rules");
@@ -66,6 +66,9 @@
});
}
+ public EvalTreeOptimizer() {
+ }
+
public EvalNode optimize(LogicalPlanner.PlanContext context, EvalNode node) {
Preconditions.checkNotNull(node);
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/BaseLogicalPlanPreprocessEngine.java b/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/BaseLogicalPlanPreprocessEngine.java
index f02faef..93ba8ea 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/BaseLogicalPlanPreprocessEngine.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/BaseLogicalPlanPreprocessEngine.java
@@ -42,7 +42,7 @@
}
/** class logger */
- private Log LOG = LogFactory.getLog(BaseLogicalPlanPreprocessEngine.class);
+ private static Log LOG = LogFactory.getLog(BaseLogicalPlanPreprocessEngine.class);
/** a map for pre-process phases */
private Map<String, LogicalPlanPreprocessPhase> preprocessPhases = new LinkedHashMap<>();
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/BaseLogicalPlanPreprocessPhaseProvider.java b/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/BaseLogicalPlanPreprocessPhaseProvider.java
index 80805d8..2259b34 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/BaseLogicalPlanPreprocessPhaseProvider.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/BaseLogicalPlanPreprocessPhaseProvider.java
@@ -18,16 +18,21 @@
package org.apache.tajo.plan.rewrite;
-import java.util.ArrayList;
+import com.google.common.collect.Lists;
+
import java.util.Collection;
import java.util.List;
public class BaseLogicalPlanPreprocessPhaseProvider extends LogicalPlanPreprocessPhaseProvider {
- @Override
- public Collection<Class<? extends LogicalPlanPreprocessPhase>> getPhases() {
- List phases = new ArrayList<>();
+ private static List<Class<? extends LogicalPlanPreprocessPhase>> phases = Lists.newArrayList();
+
+ static {
phases.add(BaseSchemaBuildPhase.class);
phases.add(SelfDescSchemaBuildPhase.class);
+ }
+
+ @Override
+ public Collection<Class<? extends LogicalPlanPreprocessPhase>> getPhases() {
return phases;
}
}
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/BaseLogicalPlanRewriteEngine.java b/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/BaseLogicalPlanRewriteEngine.java
index 21a0905..fda15ee 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/BaseLogicalPlanRewriteEngine.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/BaseLogicalPlanRewriteEngine.java
@@ -34,7 +34,7 @@
*/
public class BaseLogicalPlanRewriteEngine implements LogicalPlanRewriteEngine {
/** class logger */
- private Log LOG = LogFactory.getLog(BaseLogicalPlanRewriteEngine.class);
+ private static Log LOG = LogFactory.getLog(BaseLogicalPlanRewriteEngine.class);
private final StorageService storage;