Repository: tajo
Updated Branches:
  refs/heads/index_support 55e46301e -> 15f0fdc0c


http://git-wip-us.apache.org/repos/asf/tajo/blob/dbf91f54/tajo-core/src/test/java/org/apache/tajo/client/TestTajoClient.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/client/TestTajoClient.java 
b/tajo-core/src/test/java/org/apache/tajo/client/TestTajoClient.java
index 921a136..765a084 100644
--- a/tajo-core/src/test/java/org/apache/tajo/client/TestTajoClient.java
+++ b/tajo-core/src/test/java/org/apache/tajo/client/TestTajoClient.java
@@ -18,12 +18,11 @@
 
 package org.apache.tajo.client;
 
-import net.jcip.annotations.NotThreadSafe;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
 import com.google.protobuf.ServiceException;
-
+import net.jcip.annotations.NotThreadSafe;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.fs.FileStatus;
@@ -40,7 +39,6 @@ import org.apache.tajo.ipc.ClientProtos;
 import org.apache.tajo.ipc.ClientProtos.QueryHistoryProto;
 import org.apache.tajo.ipc.ClientProtos.QueryInfoProto;
 import org.apache.tajo.ipc.ClientProtos.StageHistoryProto;
-import org.apache.tajo.jdbc.TajoResultSet;
 import org.apache.tajo.storage.StorageConstants;
 import org.apache.tajo.storage.StorageUtil;
 import org.apache.tajo.util.CommonTestingUtil;
@@ -69,7 +67,7 @@ public class TestTajoClient {
   public static void setUp() throws Exception {
     cluster = TpchTestBase.getInstance().getTestingCluster();
     conf = cluster.getConfiguration();
-    client = new TajoClientImpl(conf);
+    client = cluster.newTajoClient();
     testDir = CommonTestingUtil.getTestDir();
   }
 
@@ -248,7 +246,7 @@ public class TestTajoClient {
 
     assertFalse(client.existTable(tableName));
 
-    client.createExternalTable(tableName, BackendTestingUtil.mockupSchema, 
tablePath, BackendTestingUtil.mockupMeta);
+    client.createExternalTable(tableName, BackendTestingUtil.mockupSchema, 
tablePath.toUri(), BackendTestingUtil.mockupMeta);
     assertTrue(client.existTable(tableName));
     client.dropTable(tableName);
     assertFalse(client.existTable(tableName));
@@ -266,7 +264,7 @@ public class TestTajoClient {
 
     assertFalse(client.existTable(tableName));
 
-    client.createExternalTable(tableName, BackendTestingUtil.mockupSchema, 
tablePath, BackendTestingUtil.mockupMeta);
+    client.createExternalTable(tableName, BackendTestingUtil.mockupSchema, 
tablePath.toUri(), BackendTestingUtil.mockupMeta);
     assertTrue(client.existTable(tableName));
     client.dropTable(tableName, true);
     assertFalse(client.existTable(tableName));
@@ -400,7 +398,7 @@ public class TestTajoClient {
     assertNotNull(tablePath);
     assertFalse(client.existTable(tableName1));
 
-    client.createExternalTable("table3", BackendTestingUtil.mockupSchema, 
tablePath, BackendTestingUtil.mockupMeta);
+    client.createExternalTable("table3", BackendTestingUtil.mockupSchema, 
tablePath.toUri(), BackendTestingUtil.mockupMeta);
     assertTrue(client.existTable(tableName1));
 
     TableDesc desc = client.getTableDesc(tableName1);
@@ -663,7 +661,7 @@ public class TestTajoClient {
       assertNotNull(queryStatus);
       assertTrue(TajoClientUtil.isQueryComplete(queryStatus.getState()));
 
-      TajoResultSet resultSet = (TajoResultSet) client.getQueryResult(queryId);
+      ResultSet resultSet = client.getQueryResult(queryId);
       assertNotNull(resultSet);
 
       int count = 0;
@@ -678,27 +676,6 @@ public class TestTajoClient {
   }
 
   @Test
-  public void testNullCharSession() throws Exception {
-    String sql =
-        "select\n" +
-            "  c_custkey,\n" +
-            "  orders.o_orderkey,\n" +
-            "  orders.o_orderstatus \n" +
-            "from\n" +
-            "  orders full outer join customer on c_custkey = o_orderkey\n" +
-            "order by\n" +
-            "  c_custkey,\n" +
-            "  orders.o_orderkey;\n";
-
-    Map<String, String> variables = new HashMap<String, String>();
-    variables.put(SessionVars.NULL_CHAR.keyname(), "\\\\T");
-    client.updateSessionVariables(variables);
-    TajoResultSet resultDesc = 
(TajoResultSet)client.executeQueryAndGetResult(sql);
-    resultDesc.close();
-    assertNullCharSessionVar(resultDesc.getTableDesc());
-  }
-
-  @Test
   public void testNullCharSessionInCTAS() throws Exception {
     String sql =
         "create table nullcharsession as select\n" +
@@ -714,7 +691,7 @@ public class TestTajoClient {
     Map<String, String> variables = new HashMap<String, String>();
     variables.put(SessionVars.NULL_CHAR.keyname(), "\\\\T");
     client.updateSessionVariables(variables);
-    TajoResultSet res = (TajoResultSet)client.executeQueryAndGetResult(sql);
+    ResultSet res = client.executeQueryAndGetResult(sql);
     res.close();
 
     TableDesc resultDesc = client.getTableDesc("nullcharsession");

http://git-wip-us.apache.org/repos/asf/tajo/blob/dbf91f54/tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinBroadcast.java
----------------------------------------------------------------------
diff --git 
a/tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinBroadcast.java 
b/tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinBroadcast.java
index 39b58d0..48aea26 100644
--- 
a/tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinBroadcast.java
+++ 
b/tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinBroadcast.java
@@ -30,8 +30,8 @@ import org.apache.tajo.datum.Int4Datum;
 import org.apache.tajo.datum.TextDatum;
 import org.apache.tajo.engine.planner.global.ExecutionBlock;
 import org.apache.tajo.engine.planner.global.MasterPlan;
+import org.apache.tajo.jdbc.FetchResultSet;
 import org.apache.tajo.plan.logical.NodeType;
-import org.apache.tajo.jdbc.TajoResultSet;
 import org.apache.tajo.querymaster.QueryMasterTask;
 import org.apache.tajo.storage.*;
 import org.apache.tajo.util.FileUtil;
@@ -337,11 +337,12 @@ public class TestJoinBroadcast extends QueryTestCaseBase {
   @Test
   public final void testBroadcastBasicJoin() throws Exception {
     ResultSet res = executeQuery();
-    TajoResultSet ts = (TajoResultSet)res;
+    assertEquals(FetchResultSet.class, res.getClass());
+    FetchResultSet resultSet = (FetchResultSet)res;
     assertResultSet(res);
     cleanupQuery(res);
 
-    MasterPlan plan = getQueryPlan(ts.getQueryId());
+    MasterPlan plan = getQueryPlan(resultSet.getQueryId());
     ExecutionBlock rootEB = plan.getRoot();
 
     /*
@@ -361,10 +362,13 @@ public class TestJoinBroadcast extends QueryTestCaseBase {
   @Test
   public final void testBroadcastTwoPartJoin() throws Exception {
     ResultSet res = executeQuery();
+    assertEquals(FetchResultSet.class, res.getClass());
+    FetchResultSet resultSet = (FetchResultSet)res;
+
     assertResultSet(res);
     cleanupQuery(res);
 
-    MasterPlan plan = getQueryPlan(((TajoResultSet)res).getQueryId());
+    MasterPlan plan = getQueryPlan(resultSet.getQueryId());
     ExecutionBlock rootEB = plan.getRoot();
 
     /*

http://git-wip-us.apache.org/repos/asf/tajo/blob/dbf91f54/tajo-core/src/test/java/org/apache/tajo/engine/query/TestNullValues.java
----------------------------------------------------------------------
diff --git 
a/tajo-core/src/test/java/org/apache/tajo/engine/query/TestNullValues.java 
b/tajo-core/src/test/java/org/apache/tajo/engine/query/TestNullValues.java
index 4981e89..66848e6 100644
--- a/tajo-core/src/test/java/org/apache/tajo/engine/query/TestNullValues.java
+++ b/tajo-core/src/test/java/org/apache/tajo/engine/query/TestNullValues.java
@@ -20,11 +20,14 @@ package org.apache.tajo.engine.query;
 
 import org.apache.tajo.IntegrationTest;
 import org.apache.tajo.TajoTestingCluster;
+import org.apache.tajo.TpchTestBase;
 import org.apache.tajo.catalog.Schema;
 import org.apache.tajo.client.TajoClient;
 import org.apache.tajo.common.TajoDataTypes.Type;
 import org.apache.tajo.storage.StorageConstants;
 import org.apache.tajo.util.KeyValueSet;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -40,6 +43,18 @@ import static org.junit.Assert.*;
 @Category(IntegrationTest.class)
 public class TestNullValues {
 
+  private static TajoClient client;
+
+  @BeforeClass
+  public static void setUp() throws Exception {
+    client =  TpchTestBase.getInstance().getTestingCluster().newTajoClient();
+  }
+
+  @AfterClass
+  public static void tearDown() {
+    client.close();
+  }
+
   @Test
   public final void testIsNull() throws Exception {
     String [] table = new String[] {"nulltable1"};
@@ -57,7 +72,7 @@ public class TestNullValues {
     opts.set(StorageConstants.TEXT_DELIMITER, 
StorageConstants.DEFAULT_FIELD_DELIMITER);
     ResultSet res = TajoTestingCluster
         .run(table, schemas, opts, new String[][]{data},
-            "select * from nulltable1 where col3 is null");
+            "select * from nulltable1 where col3 is null", client);
 
     try {
       assertTrue(res.next());
@@ -84,7 +99,7 @@ public class TestNullValues {
     opts.set(StorageConstants.TEXT_DELIMITER, 
StorageConstants.DEFAULT_FIELD_DELIMITER);
     ResultSet res = TajoTestingCluster
         .run(table, schemas, opts, new String[][]{data},
-            "select * from nulltable2 where col1 is not null");
+            "select * from nulltable2 where col1 is not null", client);
     try {
       assertTrue(res.next());
       assertEquals(1, res.getInt(1));
@@ -119,7 +134,7 @@ public class TestNullValues {
     opts.set(StorageConstants.TEXT_DELIMITER, ",");
     ResultSet res = TajoTestingCluster
         .run(table, schemas, opts, new String[][]{data},
-            "select * from nulltable3 where col1 is null and col2 is null and 
col3 is null and col4 = 43578");
+            "select * from nulltable3 where col1 is null and col2 is null and 
col3 is null and col4 = 43578", client);
     try {
       assertTrue(res.next());
       assertEquals(43578, res.getLong(4));
@@ -153,7 +168,8 @@ public class TestNullValues {
     opts.set(StorageConstants.TEXT_NULL, "\\\\N");
     ResultSet res = TajoTestingCluster
         .run(table, schemas, opts, new String[][]{data},
-            "select * from nulltable4 where col1 is null and col2 is null and 
col3 is null and col5 is null and col4 = 43578");
+            "select * from nulltable4 where col1 is null and col2 is null and 
col3 is null and col5 is null and col4 = 43578"
+            , client);
     try {
       assertTrue(res.next());
       assertEquals(43578, res.getLong(4));
@@ -168,7 +184,6 @@ public class TestNullValues {
     String tableName = "nulltable5";
     ResultSet res = null;
 
-    TajoClient client = TajoTestingCluster.newTajoClient();
     try {
       res = runNullTableQuery(tableName, "select col1, col2, col3, col4 from " 
+ tableName, client);
       int numRows = 0;
@@ -199,8 +214,6 @@ public class TestNullValues {
       if (res != null) {
         res.close();
       }
-
-      client.close();
     }
   }
 
@@ -214,7 +227,6 @@ public class TestNullValues {
         "col4 " +
         "from " + tableName;
 
-    TajoClient client = TajoTestingCluster.newTajoClient();
     ResultSet res = null;
 
     try {
@@ -246,8 +258,6 @@ public class TestNullValues {
       if (res != null) {
         res.close();
       }
-
-      client.close();
     }
   }
 

http://git-wip-us.apache.org/repos/asf/tajo/blob/dbf91f54/tajo-core/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java
----------------------------------------------------------------------
diff --git 
a/tajo-core/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 
b/tajo-core/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java
index 0df4001..9ba8a56 100644
--- a/tajo-core/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java
+++ b/tajo-core/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java
@@ -28,7 +28,7 @@ import org.apache.tajo.client.QueryStatus;
 import org.apache.tajo.common.TajoDataTypes.Type;
 import org.apache.tajo.conf.TajoConf;
 import org.apache.tajo.conf.TajoConf.ConfVars;
-import org.apache.tajo.jdbc.TajoResultSet;
+import org.apache.tajo.ipc.ClientProtos;
 import org.apache.tajo.plan.rewrite.BaseLogicalPlanRewriteRuleProvider;
 import org.apache.tajo.plan.rewrite.LogicalPlanRewriteRule;
 import org.apache.tajo.storage.StorageConstants;
@@ -439,11 +439,10 @@ public class TestSelectQuery extends QueryTestCaseBase {
       Thread t = new Thread() {
         public void run() {
           try {
-            TajoResultSet res = (TajoResultSet) 
client.executeQueryAndGetResult("select l_orderkey from lineitem");
-            QueryStatus status = client.getQueryStatus(res.getQueryId());
+            ClientProtos.SubmitQueryResponse response = 
client.executeQuery("select l_orderkey from lineitem");
+            QueryStatus status = client.getQueryStatus(new 
QueryId(response.getQueryId()));
             assertEquals(QueryState.QUERY_ERROR, status.getState());
             assertEquals(NullPointerException.class.getName(), 
status.getErrorMessage());
-            cleanupQuery(res);
           } catch (Exception e) {
             fail(e.getMessage());
           }

http://git-wip-us.apache.org/repos/asf/tajo/blob/dbf91f54/tajo-core/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java
----------------------------------------------------------------------
diff --git 
a/tajo-core/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java 
b/tajo-core/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java
index cacef96..b48720a 100644
--- 
a/tajo-core/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java
+++ 
b/tajo-core/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java
@@ -37,9 +37,10 @@ import org.apache.tajo.engine.planner.global.DataChannel;
 import org.apache.tajo.engine.planner.global.ExecutionBlock;
 import org.apache.tajo.engine.planner.global.MasterPlan;
 import org.apache.tajo.ipc.ClientProtos;
-import org.apache.tajo.jdbc.TajoResultSet;
-import org.apache.tajo.querymaster.QueryMasterTask;
+import org.apache.tajo.jdbc.FetchResultSet;
+import org.apache.tajo.jdbc.TajoMemoryResultSet;
 import org.apache.tajo.plan.logical.NodeType;
+import org.apache.tajo.querymaster.QueryMasterTask;
 import org.apache.tajo.storage.StorageConstants;
 import org.apache.tajo.util.CommonTestingUtil;
 import org.apache.tajo.util.KeyValueSet;
@@ -867,8 +868,14 @@ public class TestTablePartitions extends QueryTestCaseBase 
{
   }
 
   private MasterPlan getQueryPlan(ResultSet res) {
-    QueryId queryId = ((TajoResultSet)res).getQueryId();
-    for (TajoWorker eachWorker: testingCluster.getTajoWorkers()) {
+    QueryId queryId;
+    if (res instanceof TajoMemoryResultSet) {
+      queryId = ((TajoMemoryResultSet) res).getQueryId();
+    } else {
+      queryId = ((FetchResultSet) res).getQueryId();
+    }
+
+    for (TajoWorker eachWorker : testingCluster.getTajoWorkers()) {
       QueryMasterTask queryMasterTask = 
eachWorker.getWorkerContext().getQueryMaster().getQueryMasterTask(queryId, 
true);
       if (queryMasterTask != null) {
         return queryMasterTask.getQuery().getPlan();

http://git-wip-us.apache.org/repos/asf/tajo/blob/dbf91f54/tajo-core/src/test/java/org/apache/tajo/ha/TestHAServiceHDFSImpl.java
----------------------------------------------------------------------
diff --git 
a/tajo-core/src/test/java/org/apache/tajo/ha/TestHAServiceHDFSImpl.java 
b/tajo-core/src/test/java/org/apache/tajo/ha/TestHAServiceHDFSImpl.java
index f8642ed..7c91e22 100644
--- a/tajo-core/src/test/java/org/apache/tajo/ha/TestHAServiceHDFSImpl.java
+++ b/tajo-core/src/test/java/org/apache/tajo/ha/TestHAServiceHDFSImpl.java
@@ -24,7 +24,6 @@ import org.apache.hadoop.net.NetUtils;
 import org.apache.tajo.TajoConstants;
 import org.apache.tajo.TajoTestingCluster;
 import org.apache.tajo.client.TajoClient;
-import org.apache.tajo.client.TajoClientImpl;
 import org.apache.tajo.conf.TajoConf;
 import org.apache.tajo.master.TajoMaster;
 import org.apache.tajo.service.ServiceTracker;
@@ -32,9 +31,7 @@ import org.apache.tajo.service.ServiceTrackerFactory;
 import org.junit.Test;
 
 import static junit.framework.TestCase.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
 
 public class TestHAServiceHDFSImpl  {
   private TajoTestingCluster cluster;
@@ -53,7 +50,7 @@ public class TestHAServiceHDFSImpl  {
 
     cluster.startMiniCluster(1);
     conf = cluster.getConfiguration();
-    client = new TajoClientImpl(conf);
+    client = cluster.newTajoClient();
 
     try {
       FileSystem fs = cluster.getDefaultFileSystem();
@@ -89,7 +86,7 @@ public class TestHAServiceHDFSImpl  {
       assertFalse(cluster.getMaster().isActiveMaster());
       assertTrue(backupMaster.isActiveMaster());
 
-      client = new TajoClientImpl(conf);
+      client = cluster.newTajoClient();
       verifyDataBaseAndTable();
     } finally {
       client.close();

http://git-wip-us.apache.org/repos/asf/tajo/blob/dbf91f54/tajo-core/src/test/java/org/apache/tajo/jdbc/TestResultSet.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/jdbc/TestResultSet.java 
b/tajo-core/src/test/java/org/apache/tajo/jdbc/TestResultSet.java
index 632724b..524c6e8 100644
--- a/tajo-core/src/test/java/org/apache/tajo/jdbc/TestResultSet.java
+++ b/tajo-core/src/test/java/org/apache/tajo/jdbc/TestResultSet.java
@@ -21,6 +21,8 @@
  */
 package org.apache.tajo.jdbc;
 
+import com.google.common.collect.Lists;
+import com.google.protobuf.ByteString;
 import org.apache.hadoop.fs.Path;
 import org.apache.tajo.IntegrationTest;
 import org.apache.tajo.TajoConstants;
@@ -32,7 +34,6 @@ import org.apache.tajo.catalog.TableDesc;
 import org.apache.tajo.catalog.TableMeta;
 import org.apache.tajo.catalog.proto.CatalogProtos.StoreType;
 import org.apache.tajo.catalog.statistics.TableStats;
-import org.apache.tajo.client.QueryClientImpl;
 import org.apache.tajo.client.TajoClient;
 import org.apache.tajo.common.TajoDataTypes.Type;
 import org.apache.tajo.conf.TajoConf;
@@ -47,6 +48,7 @@ import org.junit.experimental.categories.Category;
 import java.io.IOException;
 import java.sql.*;
 import java.util.Calendar;
+import java.util.List;
 import java.util.TimeZone;
 
 import static org.junit.Assert.*;
@@ -59,6 +61,7 @@ public class TestResultSet {
   private static FileStorageManager sm;
   private static TableMeta scoreMeta;
   private static Schema scoreSchema;
+  private static List<ByteString> serializedData;
 
   @BeforeClass
   public static void setup() throws Exception {
@@ -75,7 +78,10 @@ public class TestResultSet {
     Path p = sm.getTablePath("score");
     sm.getFileSystem().mkdirs(p);
     Appender appender = sm.getAppender(scoreMeta, scoreSchema, new Path(p, 
"score"));
+    RowStoreUtil.RowStoreEncoder encoder = 
RowStoreUtil.createEncoder(scoreSchema);
+    serializedData = Lists.newArrayList();
     appender.init();
+
     int deptSize = 100;
     int tupleNum = 10000;
     Tuple tuple;
@@ -87,6 +93,7 @@ public class TestResultSet {
       tuple.put(1, DatumFactory.createInt4(i + 1));
       written += key.length() + Integer.SIZE;
       appender.addTuple(tuple);
+      serializedData.add(ByteString.copyFrom(encoder.toBytes(tuple)));
     }
     appender.close();
     stats.setNumRows(tupleNum);
@@ -105,8 +112,10 @@ public class TestResultSet {
   }
 
   @Test
-  public void test() throws Exception {
-    TajoResultSet rs = new TajoResultSet(TajoTestingCluster.newTajoClient(), 
null, conf, desc);
+  public void testMemoryResultSet() throws Exception {
+    TajoMemoryResultSet rs = new TajoMemoryResultSet(null, desc.getSchema(),
+        serializedData, desc.getStats().getNumRows().intValue(), null);
+
     ResultSetMetaData meta = rs.getMetaData();
     assertNotNull(meta);
     Schema schema = scoreSchema;
@@ -134,7 +143,7 @@ public class TestResultSet {
     if(util.isHCatalogStoreRunning()) return;
 
     ResultSet res = null;
-    TajoClient client = TajoTestingCluster.newTajoClient();
+    TajoClient client = util.newTajoClient();
     try {
       String tableName = "datetimetable";
       String query = "select col1, col2, col3 from " + tableName;

http://git-wip-us.apache.org/repos/asf/tajo/blob/dbf91f54/tajo-core/src/test/java/org/apache/tajo/master/scheduler/TestFifoScheduler.java
----------------------------------------------------------------------
diff --git 
a/tajo-core/src/test/java/org/apache/tajo/master/scheduler/TestFifoScheduler.java
 
b/tajo-core/src/test/java/org/apache/tajo/master/scheduler/TestFifoScheduler.java
index 0a8a51c..874461f 100644
--- 
a/tajo-core/src/test/java/org/apache/tajo/master/scheduler/TestFifoScheduler.java
+++ 
b/tajo-core/src/test/java/org/apache/tajo/master/scheduler/TestFifoScheduler.java
@@ -23,7 +23,6 @@ import org.apache.tajo.TajoProtos;
 import org.apache.tajo.TajoTestingCluster;
 import org.apache.tajo.benchmark.TPCH;
 import org.apache.tajo.client.TajoClient;
-import org.apache.tajo.client.TajoClientImpl;
 import org.apache.tajo.client.TajoClientUtil;
 import org.apache.tajo.conf.TajoConf;
 import org.apache.tajo.ipc.ClientProtos;
@@ -48,7 +47,7 @@ public class TestFifoScheduler {
     cluster = new TajoTestingCluster();
     cluster.startMiniClusterInLocal(1);
     conf = cluster.getConfiguration();
-    client = new TajoClientImpl(cluster.getConfiguration());
+    client = cluster.newTajoClient();
     File file = TPCH.getDataFile("lineitem");
     client.executeQueryAndGetResult("create external table default.lineitem 
(l_orderkey int, l_partkey int) "
         + "using text location 'file://" + file.getAbsolutePath() + "'");
@@ -85,7 +84,7 @@ public class TestFifoScheduler {
     cluster.waitForQuerySubmitted(queryId);
 
     assertEquals(TajoProtos.QueryState.QUERY_SUCCEEDED, 
client.getQueryStatus(queryId2).getState());
-    ResultSet resSet = TajoClientUtil.createResultSet(conf, client, res2);
+    ResultSet resSet = TajoClientUtil.createResultSet(client, res2, 1);
     assertNotNull(resSet);
   }
 

http://git-wip-us.apache.org/repos/asf/tajo/blob/dbf91f54/tajo-core/src/test/java/org/apache/tajo/querymaster/TestKillQuery.java
----------------------------------------------------------------------
diff --git 
a/tajo-core/src/test/java/org/apache/tajo/querymaster/TestKillQuery.java 
b/tajo-core/src/test/java/org/apache/tajo/querymaster/TestKillQuery.java
index 1edaa15..8fb8e73 100644
--- a/tajo-core/src/test/java/org/apache/tajo/querymaster/TestKillQuery.java
+++ b/tajo-core/src/test/java/org/apache/tajo/querymaster/TestKillQuery.java
@@ -25,7 +25,6 @@ import org.apache.tajo.benchmark.TPCH;
 import org.apache.tajo.catalog.CatalogService;
 import org.apache.tajo.catalog.proto.CatalogProtos;
 import org.apache.tajo.client.TajoClient;
-import org.apache.tajo.client.TajoClientImpl;
 import org.apache.tajo.conf.TajoConf;
 import org.apache.tajo.engine.parser.SQLAnalyzer;
 import org.apache.tajo.engine.planner.global.GlobalPlanner;
@@ -69,7 +68,7 @@ public class TestKillQuery {
     cluster = new TajoTestingCluster();
     cluster.startMiniClusterInLocal(1);
     conf = cluster.getConfiguration();
-    client = new TajoClientImpl(cluster.getConfiguration());
+    client = cluster.newTajoClient();
     File file = TPCH.getDataFile("lineitem");
     client.executeQueryAndGetResult("create external table default.lineitem 
(l_orderkey int, l_partkey int) "
         + "using text location 'file://" + file.getAbsolutePath() + "'");

http://git-wip-us.apache.org/repos/asf/tajo/blob/dbf91f54/tajo-core/src/test/java/org/apache/tajo/querymaster/TestQueryProgress.java
----------------------------------------------------------------------
diff --git 
a/tajo-core/src/test/java/org/apache/tajo/querymaster/TestQueryProgress.java 
b/tajo-core/src/test/java/org/apache/tajo/querymaster/TestQueryProgress.java
index 7c61670..f9ed367 100644
--- a/tajo-core/src/test/java/org/apache/tajo/querymaster/TestQueryProgress.java
+++ b/tajo-core/src/test/java/org/apache/tajo/querymaster/TestQueryProgress.java
@@ -18,20 +18,22 @@
 
 package org.apache.tajo.querymaster;
 
-import org.apache.tajo.*;
+import org.apache.tajo.IntegrationTest;
+import org.apache.tajo.QueryId;
+import org.apache.tajo.TajoTestingCluster;
+import org.apache.tajo.TpchTestBase;
 import org.apache.tajo.client.QueryStatus;
 import org.apache.tajo.client.TajoClient;
-import org.apache.tajo.client.TajoClientImpl;
 import org.apache.tajo.client.TajoClientUtil;
 import org.apache.tajo.conf.TajoConf;
 import org.apache.tajo.ipc.ClientProtos;
-
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 @Category(IntegrationTest.class)
 public class TestQueryProgress {
@@ -43,7 +45,7 @@ public class TestQueryProgress {
   public static void setUp() throws Exception {
     cluster = TpchTestBase.getInstance().getTestingCluster();
     conf = cluster.getConfiguration();
-    client = new TajoClientImpl(conf);
+    client = cluster.newTajoClient();
   }
 
   @AfterClass

http://git-wip-us.apache.org/repos/asf/tajo/blob/dbf91f54/tajo-core/src/test/java/org/apache/tajo/worker/TestHistory.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/worker/TestHistory.java 
b/tajo-core/src/test/java/org/apache/tajo/worker/TestHistory.java
index 9a51422..df6d714 100644
--- a/tajo-core/src/test/java/org/apache/tajo/worker/TestHistory.java
+++ b/tajo-core/src/test/java/org/apache/tajo/worker/TestHistory.java
@@ -25,10 +25,9 @@ import org.apache.tajo.TajoTestingCluster;
 import org.apache.tajo.TaskAttemptId;
 import org.apache.tajo.benchmark.TPCH;
 import org.apache.tajo.client.TajoClient;
-import org.apache.tajo.client.TajoClientImpl;
 import org.apache.tajo.conf.TajoConf;
-import org.apache.tajo.master.TajoMaster;
 import org.apache.tajo.master.QueryInfo;
+import org.apache.tajo.master.TajoMaster;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -52,7 +51,7 @@ public class TestHistory {
     cluster.startMiniClusterInLocal(1);
     master = cluster.getMaster();
     conf = cluster.getConfiguration();
-    client = new TajoClientImpl(cluster.getConfiguration());
+    client = cluster.newTajoClient();
     File file = TPCH.getDataFile("lineitem");
     client.executeQueryAndGetResult("create external table default.lineitem 
(l_orderkey int, l_partkey int) "
         + "using text location 'file://" + file.getAbsolutePath() + "'");

http://git-wip-us.apache.org/repos/asf/tajo/blob/dbf91f54/tajo-dist/pom.xml
----------------------------------------------------------------------
diff --git a/tajo-dist/pom.xml b/tajo-dist/pom.xml
index 2ddc517..7d2473e 100644
--- a/tajo-dist/pom.xml
+++ b/tajo-dist/pom.xml
@@ -144,8 +144,7 @@
                       run rm -rf lib/tajo-*-${project.version}.jar
 
                       run mkdir -p share/jdbc-dist
-                      run cp -r 
$ROOT/tajo-jdbc/target/tajo-jdbc-${project.version}.jar ./share/jdbc-dist
-                      run cp -r $ROOT/tajo-jdbc/target/lib/* ./share/jdbc-dist
+                      run cp -r 
$ROOT/tajo-jdbc/target/tajo-jdbc-${project.version}-jar-with-dependencies.jar 
./share/jdbc-dist/tajo-jdbc-${project.version}.jar
 
                       if [ -f 
$ROOT/tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/target/lib/parquet-hive-bundle-*.jar
 ]
                       then

http://git-wip-us.apache.org/repos/asf/tajo/blob/dbf91f54/tajo-jdbc/pom.xml
----------------------------------------------------------------------
diff --git a/tajo-jdbc/pom.xml b/tajo-jdbc/pom.xml
index 9847416..ab5e09e 100644
--- a/tajo-jdbc/pom.xml
+++ b/tajo-jdbc/pom.xml
@@ -68,22 +68,20 @@
         </executions>
       </plugin>
       <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-dependency-plugin</artifactId>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <version>2.4.1</version>
+        <configuration>
+          <descriptorRefs>
+            <descriptorRef>jar-with-dependencies</descriptorRef>
+          </descriptorRefs>
+        </configuration>
         <executions>
           <execution>
-            <id>copy-dependencies</id>
+            <id>make-assembly</id>
             <phase>package</phase>
             <goals>
-              <goal>copy-dependencies</goal>
+              <goal>single</goal>
             </goals>
-            <configuration>
-              <includeScope>compile</includeScope>
-              <outputDirectory>${project.build.directory}/lib</outputDirectory>
-              <overWriteReleases>false</overWriteReleases>
-              <overWriteSnapshots>false</overWriteSnapshots>
-              <overWriteIfNewer>true</overWriteIfNewer>
-            </configuration>
           </execution>
         </executions>
       </plugin>
@@ -98,22 +96,6 @@
     </dependency>
     <dependency>
       <groupId>org.apache.tajo</groupId>
-      <artifactId>tajo-catalog-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.tajo</groupId>
-      <artifactId>tajo-storage-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.tajo</groupId>
-      <artifactId>tajo-storage-hdfs</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.tajo</groupId>
-      <artifactId>tajo-rpc</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.tajo</groupId>
       <artifactId>tajo-client</artifactId>
     </dependency>
     <dependency>
@@ -121,33 +103,6 @@
       <artifactId>junit</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-client</artifactId>
-      <scope>provided</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>protobuf-java</artifactId>
-          <groupId>com.google.protobuf</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>hadoop-mapreduce-client-app</artifactId>
-          <groupId>org.apache.hadoop</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>hadoop-yarn-api</artifactId>
-          <groupId>org.apache.hadoop</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
-          <groupId>org.apache.hadoop</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>hadoop-mapreduce-client-core</artifactId>
-          <groupId>org.apache.hadoop</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
   </dependencies>
 
   <profiles>

http://git-wip-us.apache.org/repos/asf/tajo/blob/dbf91f54/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/JdbcConnection.java
----------------------------------------------------------------------
diff --git a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/JdbcConnection.java 
b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/JdbcConnection.java
index 2264b62..0919eee 100644
--- a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/JdbcConnection.java
+++ b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/JdbcConnection.java
@@ -19,22 +19,21 @@
 package org.apache.tajo.jdbc;
 
 import com.google.protobuf.ServiceException;
-
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.tajo.TajoConstants;
-import org.apache.tajo.client.*;
-import org.apache.tajo.conf.TajoConf;
+import org.apache.tajo.client.CatalogAdminClient;
+import org.apache.tajo.client.QueryClient;
+import org.apache.tajo.client.TajoClient;
+import org.apache.tajo.client.TajoClientImpl;
 import org.apache.tajo.jdbc.util.QueryStringDecoder;
-import org.apache.tajo.service.ServiceTracker;
-import org.apache.tajo.util.NetUtils;
+import org.apache.tajo.rpc.RpcUtils;
+import org.apache.tajo.util.KeyValueSet;
 
 import java.io.IOException;
 import java.net.URI;
 import java.sql.*;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
+import java.util.*;
 import java.util.concurrent.Executor;
 import java.util.concurrent.atomic.AtomicBoolean;
 
@@ -100,16 +99,15 @@ public class JdbcConnection implements Connection {
       throw new SQLException("Invalid JDBC URI: " + rawURI, "TAJO-001");
     }
 
-    TajoConf tajoConf = new TajoConf();
+    KeyValueSet clientProperties = new KeyValueSet();
     if(properties != null) {
       for(Map.Entry<Object, Object> entry: properties.entrySet()) {
-        tajoConf.set(entry.getKey().toString(), entry.getValue().toString());
+        clientProperties.set(entry.getKey().toString(), 
entry.getValue().toString());
       }
     }
 
     try {
-      ServiceTracker serviceTracker = new 
DummyServiceTracker(NetUtils.createSocketAddr(hostName, port));
-      tajoClient = new TajoClientImpl(tajoConf, serviceTracker, databaseName);
+      tajoClient = new TajoClientImpl(RpcUtils.createSocketAddr(hostName, 
port), databaseName, clientProperties);
     } catch (Exception e) {
       throw new SQLException("Cannot create TajoClient instance:" + 
e.getMessage(), "TAJO-002");
     }

http://git-wip-us.apache.org/repos/asf/tajo/blob/dbf91f54/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDriver.java
----------------------------------------------------------------------
diff --git a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDriver.java 
b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDriver.java
index 73c3060..3190f5a 100644
--- a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDriver.java
+++ b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDriver.java
@@ -16,8 +16,6 @@ package org.apache.tajo.jdbc; /**
  * limitations under the License.
  */
 
-import org.apache.tajo.conf.TajoConf;
-
 import java.io.Closeable;
 import java.io.IOException;
 import java.sql.*;
@@ -33,8 +31,6 @@ public class TajoDriver implements Driver, Closeable {
 
   public static final String TAJO_JDBC_URL_PREFIX = "jdbc:tajo:";
 
-  protected static TajoConf jdbcTajoConf = new TajoConf();
-
   static {
     try {
       DriverManager.registerDriver(new TajoDriver());

http://git-wip-us.apache.org/repos/asf/tajo/blob/dbf91f54/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoStatement.java
----------------------------------------------------------------------
diff --git a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoStatement.java 
b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoStatement.java
index 7f89b46..57cd066 100644
--- a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoStatement.java
+++ b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoStatement.java
@@ -20,6 +20,7 @@ package org.apache.tajo.jdbc;
 import com.google.common.collect.Lists;
 import com.google.protobuf.ServiceException;
 import org.apache.tajo.client.TajoClient;
+import org.apache.tajo.client.TajoClientUtil;
 
 import java.sql.*;
 import java.util.HashMap;
@@ -168,7 +169,7 @@ public class TajoStatement implements Statement {
       throw new SQLException(e.getMessage(), e);
     }
 
-    return new TajoResultSet(client, null);
+    return TajoClientUtil.createNullResultSet();
   }
 
   public static ResultSet unSetSessionVariable(TajoClient client, String sql) 
throws SQLException {
@@ -187,7 +188,7 @@ public class TajoStatement implements Statement {
       throw new SQLException(e.getMessage(), e);
     }
 
-    return new TajoResultSet(client, null);
+    return TajoClientUtil.createNullResultSet();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/tajo/blob/dbf91f54/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/RowStoreUtil.java
----------------------------------------------------------------------
diff --git 
a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/RowStoreUtil.java
 
b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/RowStoreUtil.java
index 24b6280..33db798 100644
--- 
a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/RowStoreUtil.java
+++ 
b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/RowStoreUtil.java
@@ -24,8 +24,8 @@ import org.apache.tajo.common.TajoDataTypes;
 import org.apache.tajo.datum.DatumFactory;
 import org.apache.tajo.datum.IntervalDatum;
 import org.apache.tajo.datum.ProtobufDatum;
+import org.apache.tajo.exception.UnknownDataTypeException;
 import org.apache.tajo.exception.UnsupportedException;
-import org.apache.tajo.storage.exception.UnknownDataTypeException;
 import org.apache.tajo.tuple.offheap.RowWriter;
 import org.apache.tajo.util.BitArray;
 

http://git-wip-us.apache.org/repos/asf/tajo/blob/dbf91f54/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/exception/UnknownDataTypeException.java
----------------------------------------------------------------------
diff --git 
a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/exception/UnknownDataTypeException.java
 
b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/exception/UnknownDataTypeException.java
deleted file mode 100644
index d18b5a0..0000000
--- 
a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/exception/UnknownDataTypeException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.tajo.storage.exception;
-
-public class UnknownDataTypeException extends Exception {
-
-  private static final long serialVersionUID = -2630390595968966164L;
-
-  public UnknownDataTypeException() {
-
-  }
-
-  public UnknownDataTypeException(String message) {
-    super(message);
-  }
-}

Reply via email to