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 2015/09/23 09:10:32 UTC

tajo git commit: TAJO-1768: Move Tajo into Java 8.

Repository: tajo
Updated Branches:
  refs/heads/master aa699c709 -> 20174415c


TAJO-1768: Move Tajo into Java 8.

Closes #692


Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/20174415
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/20174415
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/20174415

Branch: refs/heads/master
Commit: 20174415cc36fc96235940c5687972046c4a0634
Parents: aa699c7
Author: Hyunsik Choi <hy...@apache.org>
Authored: Wed Sep 23 00:08:49 2015 -0700
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Wed Sep 23 00:08:49 2015 -0700

----------------------------------------------------------------------
 .travis.yml                                     |  2 +-
 CHANGES                                         | 10 ++++++
 pom.xml                                         |  8 ++---
 .../org/apache/tajo/catalog/DDLBuilder.java     | 33 ++++++++++++------
 .../org/apache/tajo/jdbc/MetaDataTuple.java     |  2 +-
 .../java/org/apache/tajo/storage/NullTuple.java |  2 +-
 .../java/org/apache/tajo/storage/Tuple.java     |  2 +-
 .../java/org/apache/tajo/storage/VTuple.java    |  2 +-
 .../org/apache/tajo/tuple/memory/HeapTuple.java |  2 +-
 .../apache/tajo/tuple/memory/UnSafeTuple.java   |  2 +-
 .../tajo/engine/planner/physical/KeyTuple.java  |  4 +--
 .../org/apache/tajo/plan/LogicalOptimizer.java  |  6 ++--
 .../org/apache/tajo/plan/expr/FunctionEval.java |  3 +-
 .../GreedyHeuristicJoinOrderAlgorithm.java      | 15 ++++----
 .../org/apache/tajo/plan/util/ExprFinder.java   |  4 +--
 tajo-project/pom.xml                            | 10 +++---
 .../org/apache/tajo/storage/FrameTuple.java     |  2 +-
 .../java/org/apache/tajo/storage/LazyTuple.java |  2 +-
 tajo-storage/tajo-storage-pgsql/pom.xml         |  4 +--
 .../tajo/storage/pgsql/TestPgSQLQueryTests.java |  1 +
 .../TestPgSQLQueryTests/testTPCH_Q5.result      | 36 ++++++++++----------
 21 files changed, 89 insertions(+), 63 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index 671a31f..59e2b7e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -19,7 +19,7 @@ git:
   depth: 150
 
 jdk:
-  - oraclejdk7
+  - oraclejdk8
 
 env: PATH=$PATH:$HOME/local/bin
 

http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 5e929ab..81a1e1a 100644
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,16 @@ Tajo Change Log
 
 Release 0.12.0 - unreleased
 
+  NEW FEATURES
+
+  IMPROVEMENT
+  
+    TAJO-1768: Move Tajo into Java 8.
+
+  BUG FIXES
+
+  SUB TASKS
+
 Release 0.11.0 - unreleased
 
   NEW FEATURES

http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index cac0233..3e17e28 100644
--- a/pom.xml
+++ b/pom.xml
@@ -73,7 +73,7 @@
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-    <tajo.version>0.9.0-SNAPSHOT</tajo.version>
+    <tajo.version>0.12.0-SNAPSHOT</tajo.version>
     <tajo.root>${basedir}</tajo.root>
   </properties>
 
@@ -121,8 +121,8 @@
           <artifactId>maven-compiler-plugin</artifactId>
           <version>3.3</version>
           <configuration>
-            <source>1.7</source>
-            <target>1.7</target>
+            <source>1.8</source>
+            <target>1.8</target>
             <encoding>${project.build.sourceEncoding}</encoding>
           </configuration>
         </plugin>
@@ -136,7 +136,7 @@
                 <version>[3.0.2,)</version>
               </requireMavenVersion>
               <requireJavaVersion>
-                <version>1.7</version>
+                <version>1.8</version>
               </requireJavaVersion>
             </rules>
           </configuration>

http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java
index 920fe83..af0656d 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java
@@ -22,8 +22,10 @@ import org.apache.tajo.catalog.partition.PartitionMethodDesc;
 import org.apache.tajo.catalog.proto.CatalogProtos.PartitionDescProto;
 import org.apache.tajo.util.KeyValueSet;
 
+import java.util.Comparator;
 import java.util.List;
-import java.util.Map;
+import java.util.Map.Entry;
+import java.util.function.Consumer;
 
 public class DDLBuilder {
 
@@ -114,19 +116,28 @@ public class DDLBuilder {
     sb.append(" USING " +  CatalogUtil.getBackwardCompitablityStoreType(meta.getStoreType()));
   }
 
-  private static void buildWithClause(StringBuilder sb, TableMeta meta) {
+  private static void buildWithClause(final StringBuilder sb, TableMeta meta) {
     KeyValueSet options = meta.getOptions();
     if (options != null && options.size() > 0) {
-      boolean first = true;
+
       sb.append(" WITH (");
-      for (Map.Entry<String, String> entry : meta.getOptions().getAllKeyValus().entrySet()) {
-        if (first) {
-          first = false;
-        } else {
-          sb.append(", ");
-        }
-        sb.append("'").append(entry.getKey()).append("'='").append(entry.getValue()).append("'");
-      }
+
+      meta.getOptions().getAllKeyValus().entrySet().stream()
+          .sorted(Comparator.comparing(e -> e.getKey())) // sort them for a determined table property string.
+          .forEach(new Consumer<Entry<String, String>>() {
+            boolean first = true;
+
+            @Override
+            public void accept(Entry<String, String> e) {
+              if (first) {
+                first = false;
+              } else {
+                sb.append(", ");
+              }
+              sb.append("'").append(e.getKey()).append("'='").append(e.getValue()).append("'");
+            }
+          });
+
       sb.append(")");
     }
   }

http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/tajo-client/src/main/java/org/apache/tajo/jdbc/MetaDataTuple.java
----------------------------------------------------------------------
diff --git a/tajo-client/src/main/java/org/apache/tajo/jdbc/MetaDataTuple.java b/tajo-client/src/main/java/org/apache/tajo/jdbc/MetaDataTuple.java
index e96bb44..bb20c0a 100644
--- a/tajo-client/src/main/java/org/apache/tajo/jdbc/MetaDataTuple.java
+++ b/tajo-client/src/main/java/org/apache/tajo/jdbc/MetaDataTuple.java
@@ -62,7 +62,7 @@ public class MetaDataTuple implements Tuple {
   }
 
   @Override
-  public void put(int fieldId, Tuple tuple) {
+  public void insertTuple(int fieldId, Tuple tuple) {
     this.put(fieldId, tuple.asDatum(fieldId));
   }
 

http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/tajo-common/src/main/java/org/apache/tajo/storage/NullTuple.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/storage/NullTuple.java b/tajo-common/src/main/java/org/apache/tajo/storage/NullTuple.java
index 967efce..b0630db 100644
--- a/tajo-common/src/main/java/org/apache/tajo/storage/NullTuple.java
+++ b/tajo-common/src/main/java/org/apache/tajo/storage/NullTuple.java
@@ -91,7 +91,7 @@ public class NullTuple implements Tuple, Cloneable {
   }
 
   @Override
-  public void put(int fieldId, Tuple tuple) {
+  public void insertTuple(int fieldId, Tuple tuple) {
     throw new UnsupportedOperationException();
   }
 

http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/tajo-common/src/main/java/org/apache/tajo/storage/Tuple.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/storage/Tuple.java b/tajo-common/src/main/java/org/apache/tajo/storage/Tuple.java
index f4a61e6..728f5a5 100644
--- a/tajo-common/src/main/java/org/apache/tajo/storage/Tuple.java
+++ b/tajo-common/src/main/java/org/apache/tajo/storage/Tuple.java
@@ -32,7 +32,7 @@ public interface Tuple extends Cloneable {
 
   boolean isBlankOrNull(int fieldid);
 
-  void put(int fieldId, Tuple tuple);
+  void insertTuple(int fieldId, Tuple tuple);
 
   void put(int fieldId, Datum value);
 

http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/tajo-common/src/main/java/org/apache/tajo/storage/VTuple.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/storage/VTuple.java b/tajo-common/src/main/java/org/apache/tajo/storage/VTuple.java
index e8d0b05..0ad7202 100644
--- a/tajo-common/src/main/java/org/apache/tajo/storage/VTuple.java
+++ b/tajo-common/src/main/java/org/apache/tajo/storage/VTuple.java
@@ -68,7 +68,7 @@ public class VTuple implements Tuple, Cloneable {
   }
 
   @Override
-  public void put(int fieldId, Tuple tuple) {
+  public void insertTuple(int fieldId, Tuple tuple) {
     this.put(fieldId, tuple.asDatum(fieldId));
   }
 

http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/tajo-common/src/main/java/org/apache/tajo/tuple/memory/HeapTuple.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/tuple/memory/HeapTuple.java b/tajo-common/src/main/java/org/apache/tajo/tuple/memory/HeapTuple.java
index 5d2fdc9..9f508b3 100644
--- a/tajo-common/src/main/java/org/apache/tajo/tuple/memory/HeapTuple.java
+++ b/tajo-common/src/main/java/org/apache/tajo/tuple/memory/HeapTuple.java
@@ -100,7 +100,7 @@ public class HeapTuple extends ZeroCopyTuple implements Cloneable {
   }
 
   @Override
-  public void put(int fieldId, Tuple tuple) {
+  public void insertTuple(int fieldId, Tuple tuple) {
     throw new TajoRuntimeException(new UnsupportedException());
   }
 

http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/tajo-common/src/main/java/org/apache/tajo/tuple/memory/UnSafeTuple.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/tuple/memory/UnSafeTuple.java b/tajo-common/src/main/java/org/apache/tajo/tuple/memory/UnSafeTuple.java
index 3dc8c23..ec167f8 100644
--- a/tajo-common/src/main/java/org/apache/tajo/tuple/memory/UnSafeTuple.java
+++ b/tajo-common/src/main/java/org/apache/tajo/tuple/memory/UnSafeTuple.java
@@ -142,7 +142,7 @@ public class UnSafeTuple extends ZeroCopyTuple {
   }
 
   @Override
-  public void put(int fieldId, Tuple tuple) {
+  public void insertTuple(int fieldId, Tuple tuple) {
     throw new TajoRuntimeException(new UnsupportedException());
   }
 

http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/KeyTuple.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/KeyTuple.java b/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/KeyTuple.java
index 0c4267e..7ee36e3 100644
--- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/KeyTuple.java
+++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/KeyTuple.java
@@ -46,8 +46,8 @@ public class KeyTuple extends VTuple implements Cloneable {
   }
 
   @Override
-  public void put(int fieldId, Tuple tuple) {
-    super.put(fieldId, tuple);
+  public void insertTuple(int fieldId, Tuple tuple) {
+    super.insertTuple(fieldId, tuple);
     updateHashCode();
   }
 

http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalOptimizer.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalOptimizer.java b/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalOptimizer.java
index ecb478c..3c51cd6 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalOptimizer.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalOptimizer.java
@@ -438,11 +438,11 @@ public class LogicalOptimizer {
       }
 
       if (joinNode.getLeftChild() instanceof RelationNode) {
-        joinGraphContext.accumulatedCost = getCost(joinNode.getLeftChild()) * getCost(joinNode.getRightChild())
-            * filterFactor;
+        joinGraphContext.accumulatedCost = getCost((RelationNode)joinNode.getLeftChild()) *
+            getCost((LogicalNode)joinNode.getRightChild())* filterFactor;
       } else {
         joinGraphContext.accumulatedCost = joinGraphContext.accumulatedCost +
-            (joinGraphContext.accumulatedCost * getCost(joinNode.getRightChild()) * filterFactor);
+            (joinGraphContext.accumulatedCost * getCost((RelationNode)joinNode.getRightChild()) * filterFactor);
       }
 
       return joinNode;

http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/tajo-plan/src/main/java/org/apache/tajo/plan/expr/FunctionEval.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/expr/FunctionEval.java b/tajo-plan/src/main/java/org/apache/tajo/plan/expr/FunctionEval.java
index dd9121b..e4bb46c 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/expr/FunctionEval.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/expr/FunctionEval.java
@@ -25,6 +25,7 @@ import org.apache.tajo.catalog.FunctionDesc;
 import org.apache.tajo.catalog.Schema;
 import org.apache.tajo.common.TajoDataTypes;
 import org.apache.tajo.common.TajoDataTypes.DataType;
+import org.apache.tajo.datum.Datum;
 import org.apache.tajo.storage.Tuple;
 import org.apache.tajo.storage.VTuple;
 import org.apache.tajo.util.TUtil;
@@ -57,7 +58,7 @@ public abstract class FunctionEval extends EvalNode implements Cloneable {
 
   protected final Tuple evalParams(Tuple tuple) {
     for (int i = 0; i < argEvals.length; i++) {
-      params.put(i, argEvals[i].eval(tuple));
+      params.put(i, (Datum)argEvals[i].eval(tuple));
     }
     return params;
   }

http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/GreedyHeuristicJoinOrderAlgorithm.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/GreedyHeuristicJoinOrderAlgorithm.java b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/GreedyHeuristicJoinOrderAlgorithm.java
index aedf31e..14f3ef5 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/GreedyHeuristicJoinOrderAlgorithm.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/GreedyHeuristicJoinOrderAlgorithm.java
@@ -437,7 +437,7 @@ public class GreedyHeuristicJoinOrderAlgorithm implements JoinOrderAlgorithm {
 
     case PROJECTION:
       ProjectionNode projectionNode = (ProjectionNode) node;
-      cost = getCost(projectionNode.getChild());
+      cost = getCost((LogicalNode) projectionNode.getChild());
       break;
 
     case JOIN:
@@ -446,15 +446,17 @@ public class GreedyHeuristicJoinOrderAlgorithm implements JoinOrderAlgorithm {
       if (joinNode.hasJoinQual()) {
         filterFactor = Math.pow(DEFAULT_SELECTION_FACTOR,
             AlgebraicUtil.toConjunctiveNormalFormArray(joinNode.getJoinQual()).length);
-        cost = getCost(joinNode.getLeftChild()) * getCost(joinNode.getRightChild()) * filterFactor;
+        cost = getCost((LogicalNode)joinNode.getLeftChild()) *
+            getCost((LogicalNode)joinNode.getRightChild()) * filterFactor;
       } else {
-        cost = Math.pow(getCost(joinNode.getLeftChild()) * getCost(joinNode.getRightChild()), 2);
+        cost = Math.pow(getCost((LogicalNode)joinNode.getLeftChild()) *
+            getCost((LogicalNode)joinNode.getRightChild()), 2);
       }
       break;
 
     case SELECTION:
       SelectionNode selectionNode = (SelectionNode) node;
-      cost = getCost(selectionNode.getChild()) *
+      cost = getCost((LogicalNode)selectionNode.getChild()) *
           Math.pow(DEFAULT_SELECTION_FACTOR, AlgebraicUtil.toConjunctiveNormalFormArray(selectionNode.getQual()).length);
       break;
 
@@ -474,7 +476,8 @@ public class GreedyHeuristicJoinOrderAlgorithm implements JoinOrderAlgorithm {
 
     case UNION:
       UnionNode unionNode = (UnionNode) node;
-      cost = getCost(unionNode.getLeftChild()) + getCost(unionNode.getRightChild());
+      cost = getCost((LogicalNode)unionNode.getLeftChild()) +
+          getCost((LogicalNode)unionNode.getRightChild());
       break;
 
     case EXCEPT:
@@ -484,7 +487,7 @@ public class GreedyHeuristicJoinOrderAlgorithm implements JoinOrderAlgorithm {
     default:
       // all binary operators (join, union, except, and intersect) are handled in the above cases.
       // So, we need to handle only unary nodes in default.
-      cost = getCost(((UnaryNode) node).getChild());
+      cost = getCost((LogicalNode)((UnaryNode) node).getChild());
       break;
     }
 

http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/tajo-plan/src/main/java/org/apache/tajo/plan/util/ExprFinder.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/util/ExprFinder.java b/tajo-plan/src/main/java/org/apache/tajo/plan/util/ExprFinder.java
index 57a7644..8475e92 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/util/ExprFinder.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/util/ExprFinder.java
@@ -44,14 +44,14 @@ public class ExprFinder extends SimpleAlgebraVisitor<ExprFinder.Context, Object>
   }
 
   public static <T extends Expr> Set<T> finds(Expr expr, OpType type) {
-    return (Set<T>) new HashSet<>(findsInOrder(expr, type));
+    return new HashSet<>(findsInOrder(expr, type));
   }
 
   public static <T extends Expr> List<T> findsInOrder(Expr expr, OpType type) {
     Context<T> context = new Context<>(type);
     ExprFinder finder = new ExprFinder();
     try {
-      finder.visit(context, new Stack<Expr>(), expr);
+      finder.visit(context, new Stack<>(), expr);
     } catch (TajoException e) {
       throw new TajoInternalError(e);
     }

http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/tajo-project/pom.xml
----------------------------------------------------------------------
diff --git a/tajo-project/pom.xml b/tajo-project/pom.xml
index ee27fe3..ce546c1 100644
--- a/tajo-project/pom.xml
+++ b/tajo-project/pom.xml
@@ -385,8 +385,8 @@
           <artifactId>maven-compiler-plugin</artifactId>
           <version>3.3</version>
           <configuration>
-            <source>1.7</source>
-            <target>1.7</target>
+            <source>1.8</source>
+            <target>1.8</target>
             <encoding>${project.build.sourceEncoding}</encoding>
           </configuration>
         </plugin>
@@ -400,7 +400,7 @@
                 <version>[3.0.2,)</version>
               </requireMavenVersion>
               <requireJavaVersion>
-                <version>1.7</version>
+                <version>1.8</version>
               </requireJavaVersion>
             </rules>
           </configuration>
@@ -611,8 +611,8 @@
         <artifactId>maven-compiler-plugin</artifactId>
         <version>3.3</version>
         <configuration>
-          <source>1.7</source>
-          <target>1.7</target>
+          <source>1.8</source>
+          <target>1.8</target>
           <encoding>${project.build.sourceEncoding}</encoding>
         </configuration>
       </plugin>

http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FrameTuple.java
----------------------------------------------------------------------
diff --git a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FrameTuple.java b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FrameTuple.java
index ce47337..8a114ce 100644
--- a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FrameTuple.java
+++ b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FrameTuple.java
@@ -96,7 +96,7 @@ public class FrameTuple implements Tuple, Cloneable {
   }
 
   @Override
-  public void put(int fieldId, Tuple tuple) {
+  public void insertTuple(int fieldId, Tuple tuple) {
     throw new TajoRuntimeException(new UnsupportedException());
   }
 

http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/LazyTuple.java
----------------------------------------------------------------------
diff --git a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/LazyTuple.java b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/LazyTuple.java
index 819e4d0..72ffde7 100644
--- a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/LazyTuple.java
+++ b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/LazyTuple.java
@@ -83,7 +83,7 @@ public class LazyTuple implements Tuple, Cloneable {
   }
 
   @Override
-  public void put(int fieldId, Tuple tuple) {
+  public void insertTuple(int fieldId, Tuple tuple) {
     this.put(fieldId, tuple.asDatum(fieldId));
   }
 

http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/tajo-storage/tajo-storage-pgsql/pom.xml
----------------------------------------------------------------------
diff --git a/tajo-storage/tajo-storage-pgsql/pom.xml b/tajo-storage/tajo-storage-pgsql/pom.xml
index 50f3d88..cd5f2cc 100644
--- a/tajo-storage/tajo-storage-pgsql/pom.xml
+++ b/tajo-storage/tajo-storage-pgsql/pom.xml
@@ -42,8 +42,8 @@
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
         <configuration>
-          <source>1.7</source>
-          <target>1.7</target>
+          <source>1.8</source>
+          <target>1.8</target>
           <encoding>${project.build.sourceEncoding}</encoding>
         </configuration>
       </plugin>

http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLQueryTests.java
----------------------------------------------------------------------
diff --git a/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLQueryTests.java b/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLQueryTests.java
index 5b52105..5614bba 100644
--- a/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLQueryTests.java
+++ b/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLQueryTests.java
@@ -110,6 +110,7 @@ public class TestPgSQLQueryTests extends QueryTestCaseBase {
 
   @SimpleTest
   @Test
+  @Option(sort = true)
   public void testTPCH_Q5() throws Exception {
     runSimpleTests();
   }

http://git-wip-us.apache.org/repos/asf/tajo/blob/20174415/tajo-storage/tajo-storage-pgsql/src/test/resources/results/TestPgSQLQueryTests/testTPCH_Q5.result
----------------------------------------------------------------------
diff --git a/tajo-storage/tajo-storage-pgsql/src/test/resources/results/TestPgSQLQueryTests/testTPCH_Q5.result b/tajo-storage/tajo-storage-pgsql/src/test/resources/results/TestPgSQLQueryTests/testTPCH_Q5.result
index 09f3cad..f249da0 100644
--- a/tajo-storage/tajo-storage-pgsql/src/test/resources/results/TestPgSQLQueryTests/testTPCH_Q5.result
+++ b/tajo-storage/tajo-storage-pgsql/src/test/resources/results/TestPgSQLQueryTests/testTPCH_Q5.result
@@ -1,27 +1,27 @@
 n_name,revenue
 -------------------------------
-ROMANIA,1798128.2
-SAUDI ARABIA,1798128.2
-IRAQ,1798128.2
-UNITED STATES,1798128.2
+ALGERIA,1798128.2
+ARGENTINA,1798128.2
+BRAZIL,1798128.2
+CANADA,1798128.2
+CHINA,1798128.2
 EGYPT,1798128.2
 ETHIOPIA,1798128.2
-ALGERIA,1798128.2
+FRANCE,1798128.2
+GERMANY,1798128.2
+INDIA,1798128.2
+INDONESIA,1798128.2
 IRAN,1798128.2
-MOZAMBIQUE,1798128.2
+IRAQ,1798128.2
+JAPAN,1798128.2
+JORDAN,1798128.2
 KENYA,1798128.2
-VIETNAM,1798128.2
 MOROCCO,1798128.2
-GERMANY,1798128.2
+MOZAMBIQUE,1798128.2
 PERU,1798128.2
-CANADA,1798128.2
-INDONESIA,1798128.2
-JAPAN,1798128.2
-INDIA,1798128.2
-CHINA,1798128.2
-FRANCE,1798128.2
-UNITED KINGDOM,1798128.2
-BRAZIL,1798128.2
+ROMANIA,1798128.2
 RUSSIA,1798128.2
-JORDAN,1798128.2
-ARGENTINA,1798128.2
+SAUDI ARABIA,1798128.2
+UNITED KINGDOM,1798128.2
+UNITED STATES,1798128.2
+VIETNAM,1798128.2