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/05/07 07:23:12 UTC

[1/2] git commit: TAJO-812: Some methods of TajoDatabaseMetaData should result in an empty tuple list instead of SQLFeatureNotSupportedException.

Repository: tajo
Updated Branches:
  refs/heads/TAJO-812 [created] f9a018756


TAJO-812: Some methods of TajoDatabaseMetaData should result in an empty tuple list instead of SQLFeatureNotSupportedException.


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

Branch: refs/heads/TAJO-812
Commit: 291384cc3ac54087c7fa58934e9098e1390a9933
Parents: 08bcc2d
Author: Hyunsik Choi <hy...@apache.org>
Authored: Wed May 7 12:51:55 2014 +0900
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Wed May 7 12:51:55 2014 +0900

----------------------------------------------------------------------
 .../java/org/apache/tajo/client/TajoClient.java |  4 ++
 .../apache/tajo/jdbc/TajoDatabaseMetaData.java  | 41 +++++++++++++-------
 .../apache/tajo/jdbc/TajoMetaDataResultSet.java | 16 +++++++-
 .../org/apache/tajo/rpc/NettyClientBase.java    | 19 +++++++++
 .../org/apache/tajo/rpc/NettyServerBase.java    |  2 -
 5 files changed, 64 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tajo/blob/291384cc/tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java
----------------------------------------------------------------------
diff --git a/tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java b/tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java
index 3c85662..c14579b 100644
--- a/tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java
+++ b/tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java
@@ -104,6 +104,10 @@ public class TajoClient implements Closeable {
     this.baseDatabase = baseDatabase != null ? baseDatabase : null;
   }
 
+  public void setSessionId(TajoIdProtos.SessionIdProto sessionId) {
+      this.sessionId = sessionId;
+  }
+
   public boolean isConnected() {
     try {
       return connPool.getConnection(tajoMasterAddr, TajoMasterClientProtocol.class, false).isConnected();

http://git-wip-us.apache.org/repos/asf/tajo/blob/291384cc/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java
----------------------------------------------------------------------
diff --git a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java
index c06014d..767cba3 100644
--- a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java
+++ b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java
@@ -21,10 +21,7 @@ import com.google.common.collect.Lists;
 import com.google.protobuf.ServiceException;
 import org.apache.tajo.TajoConstants;
 import org.apache.tajo.annotation.Nullable;
-import org.apache.tajo.catalog.CatalogConstants;
-import org.apache.tajo.catalog.CatalogUtil;
-import org.apache.tajo.catalog.Column;
-import org.apache.tajo.catalog.TableDesc;
+import org.apache.tajo.catalog.*;
 import org.apache.tajo.client.ResultSetUtil;
 import org.apache.tajo.client.TajoClient;
 import org.apache.tajo.common.TajoDataTypes.Type;
@@ -582,28 +579,44 @@ public class TajoDatabaseMetaData implements DatabaseMetaData {
   }
 
   @Override
-  public ResultSet getPrimaryKeys(String catalog, String schema, String table)
-      throws SQLException {
-    throw new SQLFeatureNotSupportedException("primary keys not supported");
+  public ResultSet getPrimaryKeys(String catalog, String schema, String table) throws SQLException {
+    return new TajoMetaDataResultSet(
+        Arrays.asList("TABLE_CAT", "TABLE_SCHEM", "TABLE_NAME", "COLUMN_NAME", "KEY_SEQ", "PK_NAME")
+        , Arrays.asList(Type.VARCHAR, Type.VARCHAR, Type.VARCHAR, Type.VARCHAR, Type.INT4, Type.VARCHAR)
+        , new ArrayList<MetaDataTuple>());
   }
 
+  private final static Schema importedExportedSchema = new Schema()
+      .addColumn("PKTABLE_CAT", Type.VARCHAR)   // 0
+      .addColumn("PKTABLE_SCHEM", Type.VARCHAR) // 1
+      .addColumn("PKTABLE_NAME", Type.VARCHAR)  // 2
+      .addColumn("PKCOLUMN_NAME", Type.VARCHAR) // 3
+      .addColumn("FKTABLE_CAT", Type.VARCHAR)   // 4
+      .addColumn("FKTABLE_SCHEM", Type.VARCHAR) // 5
+      .addColumn("FKTABLE_NAME", Type.VARCHAR)  // 6
+      .addColumn("FKCOLUMN_NAME", Type.VARCHAR) // 7
+      .addColumn("KEY_SEQ", Type.INT2)          // 8
+      .addColumn("UPDATE_RULE", Type.INT2)      // 9
+      .addColumn("DELETE_RULE", Type.INT2)      // 10
+      .addColumn("FK_NAME", Type.VARCHAR)       // 11
+      .addColumn("PK_NAME", Type.VARCHAR)       // 12
+      .addColumn("DEFERRABILITY", Type.INT2);   // 13
+
   @Override
-  public ResultSet getImportedKeys(String catalog, String schema, String table)
-      throws SQLException {
-    throw new SQLFeatureNotSupportedException("imported keys not supported");
+  public ResultSet getImportedKeys(String catalog, String schema, String table) throws SQLException {
+    return new TajoMetaDataResultSet(importedExportedSchema, new ArrayList<MetaDataTuple>());
   }
 
   @Override
-  public ResultSet getExportedKeys(String catalog, String schema, String table)
-      throws SQLException {
-    throw new SQLFeatureNotSupportedException("exported keys not supported");
+  public ResultSet getExportedKeys(String catalog, String schema, String table) throws SQLException {
+    return new TajoMetaDataResultSet(importedExportedSchema, new ArrayList<MetaDataTuple>());
   }
 
   @Override
   public ResultSet getCrossReference(String parentCatalog, String parentSchema, String parentTable,
                                      String foreignCatalog, String foreignSchema, String foreignTable)
       throws SQLException {
-    throw new SQLFeatureNotSupportedException("cross reference not supported");
+    return new TajoMetaDataResultSet(importedExportedSchema, new ArrayList<MetaDataTuple>());
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/tajo/blob/291384cc/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoMetaDataResultSet.java
----------------------------------------------------------------------
diff --git a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoMetaDataResultSet.java b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoMetaDataResultSet.java
index fb0a834..faa058d 100644
--- a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoMetaDataResultSet.java
+++ b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoMetaDataResultSet.java
@@ -1,4 +1,4 @@
-package org.apache.tajo.jdbc; /**
+/**
  * 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
@@ -16,6 +16,8 @@ package org.apache.tajo.jdbc; /**
  * limitations under the License.
  */
 
+package org.apache.tajo.jdbc;
+
 import org.apache.tajo.catalog.Schema;
 import org.apache.tajo.common.TajoDataTypes.Type;
 import org.apache.tajo.datum.Datum;
@@ -28,6 +30,12 @@ import java.util.List;
 public class TajoMetaDataResultSet extends TajoResultSetBase {
   private List<MetaDataTuple> values;
 
+  public TajoMetaDataResultSet(Schema schema, List<MetaDataTuple> values) {
+    init();
+    this.schema = schema;
+    setDataTuples(values);
+  }
+
   public TajoMetaDataResultSet(List<String> columns, List<Type> types, List<MetaDataTuple> values) {
     init();
     schema = new Schema();
@@ -38,8 +46,12 @@ public class TajoMetaDataResultSet extends TajoResultSetBase {
         schema.addColumn(columnName, types.get(index++));
       }
     }
+    setDataTuples(values);
+  }
+
+  protected void setDataTuples(List<MetaDataTuple> values) {
     this.values = values;
-    totalRow = values == null ? 0 : values.size();
+    this.totalRow = values == null ? 0 : values.size();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/tajo/blob/291384cc/tajo-rpc/src/main/java/org/apache/tajo/rpc/NettyClientBase.java
----------------------------------------------------------------------
diff --git a/tajo-rpc/src/main/java/org/apache/tajo/rpc/NettyClientBase.java b/tajo-rpc/src/main/java/org/apache/tajo/rpc/NettyClientBase.java
index fa4b941..fe41267 100644
--- a/tajo-rpc/src/main/java/org/apache/tajo/rpc/NettyClientBase.java
+++ b/tajo-rpc/src/main/java/org/apache/tajo/rpc/NettyClientBase.java
@@ -24,15 +24,19 @@ import org.apache.tajo.util.NetUtils;
 import org.jboss.netty.bootstrap.ClientBootstrap;
 import org.jboss.netty.channel.Channel;
 import org.jboss.netty.channel.ChannelFuture;
+import org.jboss.netty.channel.ChannelFutureListener;
 import org.jboss.netty.channel.ChannelPipelineFactory;
 import org.jboss.netty.channel.socket.ClientSocketChannelFactory;
 
 import java.io.Closeable;
 import java.io.IOException;
 import java.net.InetSocketAddress;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
 
 public abstract class NettyClientBase implements Closeable {
   private static Log LOG = LogFactory.getLog(NettyClientBase.class);
+  private static final int CLIENT_CONNECTION_TIMEOUT_SEC = 60;
 
   protected ClientBootstrap bootstrap;
   private ChannelFuture channelFuture;
@@ -71,6 +75,21 @@ public abstract class NettyClientBase implements Closeable {
     }
     this.channelFuture = bootstrap.connect(addr);
     this.channelFuture.awaitUninterruptibly();
+
+    final CountDownLatch latch = new CountDownLatch(1);
+    this.channelFuture.addListener(new ChannelFutureListener() {
+      @Override
+      public void operationComplete(ChannelFuture future) throws Exception {
+        latch.countDown();
+      }
+    });
+
+    try {
+      latch.await(CLIENT_CONNECTION_TIMEOUT_SEC, TimeUnit.SECONDS);
+    } catch (InterruptedException e) {
+    }
+
+
     if (!channelFuture.isSuccess()) {
       throw new RuntimeException(channelFuture.getCause());
     }

http://git-wip-us.apache.org/repos/asf/tajo/blob/291384cc/tajo-rpc/src/main/java/org/apache/tajo/rpc/NettyServerBase.java
----------------------------------------------------------------------
diff --git a/tajo-rpc/src/main/java/org/apache/tajo/rpc/NettyServerBase.java b/tajo-rpc/src/main/java/org/apache/tajo/rpc/NettyServerBase.java
index 9ee098d..e75418d 100644
--- a/tajo-rpc/src/main/java/org/apache/tajo/rpc/NettyServerBase.java
+++ b/tajo-rpc/src/main/java/org/apache/tajo/rpc/NettyServerBase.java
@@ -68,8 +68,6 @@ public class NettyServerBase {
   public void init(ChannelPipelineFactory pipeline, int workerNum) {
     ChannelFactory factory = RpcChannelFactory.createServerChannelFactory(serviceName, workerNum);
 
-    DefaultChannelFuture.setUseDeadLockChecker(false);
-
     pipelineFactory = pipeline;
     bootstrap = new ServerBootstrap(factory);
     bootstrap.setPipelineFactory(pipelineFactory);


[2/2] git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into TAJO-812

Posted by hy...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into TAJO-812


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

Branch: refs/heads/TAJO-812
Commit: f9a018756cec68a8e245ab269c195b9b84bfafe2
Parents: 291384c 70567fc
Author: Hyunsik Choi <hy...@apache.org>
Authored: Wed May 7 12:52:23 2014 +0900
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Wed May 7 12:52:23 2014 +0900

----------------------------------------------------------------------
 CHANGES                                         |  10 +-
 .../org/apache/tajo/catalog/CatalogUtil.java    |   5 +-
 .../org/apache/tajo/catalog/DDLBuilder.java     |   3 +-
 .../java/org/apache/tajo/catalog/Options.java   | 155 -------------------
 .../java/org/apache/tajo/catalog/TableDesc.java |   3 +-
 .../java/org/apache/tajo/catalog/TableMeta.java |  19 +--
 .../tajo/catalog/json/TableMetaAdapter.java     |  10 +-
 .../src/main/proto/CatalogProtos.proto          |  10 +-
 .../apache/tajo/catalog/TestKeyValueSet.java    |  64 ++++++++
 .../org/apache/tajo/catalog/TestOptions.java    |  63 --------
 .../tajo/catalog/store/HCatalogStore.java       |   5 +-
 .../tajo/catalog/store/TestHCatalogStore.java   |  24 +--
 .../tajo/catalog/store/AbstractDBStore.java     |  11 +-
 .../org/apache/tajo/catalog/TestCatalog.java    |  16 +-
 .../java/org/apache/tajo/client/TajoClient.java |  11 +-
 .../java/org/apache/tajo/util/KeyValueSet.java  | 155 +++++++++++++++++++
 .../src/main/proto/PrimitiveProtos.proto        |   9 ++
 .../tajo/engine/planner/LogicalPlanner.java     |   9 +-
 .../apache/tajo/engine/planner/PlannerUtil.java |   5 +-
 .../engine/planner/global/GlobalPlanner.java    |   6 +-
 .../engine/planner/logical/CreateTableNode.java |   4 +-
 .../planner/logical/PersistentStoreNode.java    |  10 +-
 .../apache/tajo/engine/query/QueryContext.java  |   6 +-
 .../tajo/master/TajoMasterClientService.java    |  13 +-
 .../tajo/master/querymaster/SubQuery.java       |   3 +-
 .../org/apache/tajo/master/session/Session.java |   8 +-
 .../apache/tajo/LocalTajoTestingUtility.java    |   3 +-
 .../org/apache/tajo/TajoTestingCluster.java     |   4 +-
 .../test/java/org/apache/tajo/TpchTestBase.java |   4 +-
 .../apache/tajo/engine/eval/ExprTestBase.java   |   3 +-
 .../engine/planner/TestLogicalOptimizer.java    |   5 +-
 .../tajo/engine/planner/TestLogicalPlanner.java |   5 +-
 .../tajo/engine/planner/TestPlannerUtil.java    |   5 +-
 .../planner/physical/TestPhysicalPlanner.java   |   5 +-
 .../apache/tajo/engine/query/TestCTASQuery.java |   4 +-
 .../tajo/engine/query/TestNullValues.java       |  10 +-
 .../apache/tajo/master/TestGlobalPlanner.java   |  88 +++++++++++
 .../tajo/worker/TestRangeRetrieverHandler.java  |   5 +-
 .../org/apache/tajo/storage/StorageUtil.java    |   5 +-
 .../apache/tajo/storage/TestMergeScanner.java   |   4 +-
 .../org/apache/tajo/storage/TestStorages.java   |  15 +-
 .../apache/tajo/storage/v2/TestStorages.java    |   4 +-
 42 files changed, 466 insertions(+), 340 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tajo/blob/f9a01875/tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java
----------------------------------------------------------------------