You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by hy...@apache.org on 2014/10/01 17:39:29 UTC
git commit: TAJO-1055: ExecutorPreCompiler does not cache correctly
compiled TupleComparators.
Repository: tajo
Updated Branches:
refs/heads/block_iteration 890a96c33 -> a5e27a293
TAJO-1055: ExecutorPreCompiler does not cache correctly compiled TupleComparators.
Closes #152
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/a5e27a29
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/a5e27a29
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/a5e27a29
Branch: refs/heads/block_iteration
Commit: a5e27a2932aeb71d5f5e2c36a3f9eeb287d3bbfa
Parents: 890a96c
Author: Hyunsik Choi <hy...@apache.org>
Authored: Fri Sep 19 14:16:52 2014 -0700
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Wed Oct 1 08:38:57 2014 -0700
----------------------------------------------------------------------
.../tajo/engine/codegen/ExecutorPreCompiler.java | 1 +
.../org/apache/tajo/storage/BaseTupleComparator.java | 13 +++++--------
2 files changed, 6 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/a5e27a29/tajo-core/src/main/java/org/apache/tajo/engine/codegen/ExecutorPreCompiler.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/codegen/ExecutorPreCompiler.java b/tajo-core/src/main/java/org/apache/tajo/engine/codegen/ExecutorPreCompiler.java
index 815ac69..e9b91d7 100644
--- a/tajo-core/src/main/java/org/apache/tajo/engine/codegen/ExecutorPreCompiler.java
+++ b/tajo-core/src/main/java/org/apache/tajo/engine/codegen/ExecutorPreCompiler.java
@@ -45,6 +45,7 @@ public class ExecutorPreCompiler extends BasicLogicalPlanVisitor<ExecutorPreComp
public static void compile(CompilationContext context, LogicalNode node) throws PlanningException {
instance.visit(context, null, null, node, new Stack<LogicalNode>());
context.compiledEvals = Collections.unmodifiableMap(context.compiledEvals);
+ context.compiledComparators = Collections.unmodifiableMap(context.compiledComparators);
}
public static Map<Pair<Schema, EvalNode>, EvalNode> compile(TajoClassLoader classLoader, LogicalNode node)
http://git-wip-us.apache.org/repos/asf/tajo/blob/a5e27a29/tajo-storage/src/main/java/org/apache/tajo/storage/BaseTupleComparator.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/main/java/org/apache/tajo/storage/BaseTupleComparator.java b/tajo-storage/src/main/java/org/apache/tajo/storage/BaseTupleComparator.java
index c3f77e7..d008b35 100644
--- a/tajo-storage/src/main/java/org/apache/tajo/storage/BaseTupleComparator.java
+++ b/tajo-storage/src/main/java/org/apache/tajo/storage/BaseTupleComparator.java
@@ -39,11 +39,7 @@ public class BaseTupleComparator extends TupleComparator implements ProtoObject<
private final int[] sortKeyIds;
private final boolean[] asc;
@SuppressWarnings("unused")
- private final boolean[] nullFirsts;
-
- private Datum left;
- private Datum right;
- private int compVal;
+ private final boolean[] nullFirsts;
/**
* @param schema The schema of input tuples
@@ -108,9 +104,10 @@ public class BaseTupleComparator extends TupleComparator implements ProtoObject<
@Override
public int compare(Tuple tuple1, Tuple tuple2) {
+ int compVal = 0;
for (int i = 0; i < sortKeyIds.length; i++) {
- left = tuple1.get(sortKeyIds[i]);
- right = tuple2.get(sortKeyIds[i]);
+ Datum left = tuple1.get(sortKeyIds[i]);
+ Datum right = tuple2.get(sortKeyIds[i]);
if (left.isNull() || right.isNull()) {
if (!left.equals(right)) {
@@ -144,7 +141,7 @@ public class BaseTupleComparator extends TupleComparator implements ProtoObject<
@Override
public int hashCode() {
- return Objects.hashCode(sortKeyIds);
+ return Objects.hashCode(sortSpecs);
}
@Override