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
----------------------------------------------------------------------