You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by ji...@apache.org on 2015/03/27 04:01:07 UTC
[6/6] tajo git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/tajo into index_support
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into index_support
Conflicts:
tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogService.java
tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java
tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/11300ef6
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/11300ef6
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/11300ef6
Branch: refs/heads/index_support
Commit: 11300ef63bd57562e302f5affbe325050566510e
Parents: db292ac b1e174e
Author: Jihoon Son <ji...@apache.org>
Authored: Fri Mar 27 12:01:06 2015 +0900
Committer: Jihoon Son <ji...@apache.org>
Committed: Fri Mar 27 12:01:06 2015 +0900
----------------------------------------------------------------------
CHANGES | 11 +
.../tajo/catalog/AbstractCatalogClient.java | 45 ++-
.../src/main/proto/CatalogProtocol.proto | 7 +-
.../org/apache/tajo/catalog/AlterTableDesc.java | 21 +-
.../org/apache/tajo/catalog/AlterTableType.java | 2 +-
.../apache/tajo/catalog/CatalogConstants.java | 5 +
.../org/apache/tajo/catalog/CatalogService.java | 21 +-
.../AlreadyExistsPartitionException.java | 33 ++
.../exception/NoSuchPartitionException.java | 39 ++
.../tajo/catalog/partition/PartitionDesc.java | 97 +++--
.../tajo/catalog/partition/PartitionKey.java | 147 +++++++
.../src/main/proto/CatalogProtos.proto | 30 +-
.../tajo/catalog/store/HCatalogStore.java | 129 +++++--
.../tajo/catalog/store/TestHCatalogStore.java | 77 +++-
.../org/apache/tajo/catalog/CatalogServer.java | 100 +++--
.../InfoSchemaMetadataDictionary.java | 2 +
.../PartitionKeysTableDescriptor.java | 46 +++
.../dictionary/PartitionsTableDescriptor.java | 3 +-
.../tajo/catalog/store/AbstractDBStore.java | 334 +++++++++++-----
.../store/AbstractMySQLMariaDBStore.java | 14 +
.../apache/tajo/catalog/store/CatalogStore.java | 14 +-
.../org/apache/tajo/catalog/store/MemStore.java | 109 ++++--
.../src/main/resources/schemas/derby/derby.xml | 27 +-
.../schemas/mariadb/partition_keys.sql | 6 +
.../resources/schemas/mariadb/partitions.sql | 13 +-
.../resources/schemas/mysql/partition_keys.sql | 6 +
.../main/resources/schemas/mysql/partitions.sql | 13 +-
.../main/resources/schemas/oracle/oracle.xml | 45 ++-
.../resources/schemas/postgresql/postgresql.xml | 16 +-
.../org/apache/tajo/catalog/TestCatalog.java | 73 +++-
.../planner/physical/HashLeftOuterJoinExec.java | 3 +-
.../NonForwardQueryResultSystemScanner.java | 6 +-
.../tajo/webapp/QueryExecutorServlet.java | 2 +-
.../apache/tajo/engine/query/TestJoinQuery.java | 23 +-
.../testComplexJoinsWithCaseWhen.sql | 11 +
.../testComplexJoinsWithCaseWhen2.sql | 9 +
.../TestJoinQuery/testCrossJoinAndCaseWhen.sql | 18 -
.../TestJoinQuery/testInnerJoinAndCaseWhen.sql | 18 +
.../TestJoinQuery/testJoinWithOrPredicates.sql | 6 +
.../testComplexJoinsWithCaseWhen.result | 27 ++
.../testComplexJoinsWithCaseWhen2.result | 27 ++
.../testCrossJoinAndCaseWhen.result | 27 --
.../testInnerJoinAndCaseWhen.result | 27 ++
.../testJoinWithOrPredicates.result | 4 +
tajo-docs/src/main/sphinx/getting_started.rst | 2 +-
.../tajo/jdbc/util/TestQueryStringDecoder.java | 14 +-
.../org/apache/tajo/plan/LogicalPlanner.java | 60 ++-
.../plan/rewrite/rules/FilterPushDownRule.java | 384 +++++++++----------
.../rewrite/rules/ProjectionPushDownRule.java | 5 +-
.../org/apache/tajo/plan/util/PlannerUtil.java | 25 +-
tajo-project/pom.xml | 2 +-
51 files changed, 1622 insertions(+), 563 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/11300ef6/tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/11300ef6/tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtocol.proto
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/11300ef6/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java
----------------------------------------------------------------------
diff --cc tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java
index f19f77f,8265e38..721bcf1
--- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogConstants.java
@@@ -52,8 -53,11 +53,12 @@@ public class CatalogConstants
public static final String COL_TABLESPACE_PK = "SPACE_ID";
public static final String COL_DATABASES_PK = "DB_ID";
public static final String COL_TABLES_PK = "TID";
+ public static final String COL_INDEXES_PK = "INDEX_ID";
public static final String COL_TABLES_NAME = "TABLE_NAME";
+
+ public static final String COL_PARTITIONS_PK = "PARTITION_ID";
+ public static final String COL_COLUMN_NAME = "COLUMN_NAME";
+ public static final String COL_PARTITION_VALUE = "PARTITION_VALUE";
public static final String INFORMATION_SCHEMA_DB_NAME = "information_schema";
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/11300ef6/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogService.java
----------------------------------------------------------------------
diff --cc tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogService.java
index dd26a27,86b773b..c356097
--- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogService.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogService.java
@@@ -19,18 -19,25 +19,19 @@@
package org.apache.tajo.catalog;
import org.apache.tajo.catalog.partition.PartitionMethodDesc;
+import org.apache.tajo.catalog.proto.CatalogProtos.*;
+ import org.apache.tajo.catalog.proto.CatalogProtos;
+ import org.apache.tajo.catalog.proto.CatalogProtos.ColumnProto;
+ import org.apache.tajo.catalog.proto.CatalogProtos.DatabaseProto;
-import org.apache.tajo.catalog.proto.CatalogProtos.IndexProto;
+ import org.apache.tajo.catalog.proto.CatalogProtos.TableDescriptorProto;
+ import org.apache.tajo.catalog.proto.CatalogProtos.TableOptionProto;
+ import org.apache.tajo.catalog.proto.CatalogProtos.TablePartitionProto;
+ import org.apache.tajo.catalog.proto.CatalogProtos.TableStatsProto;
import org.apache.tajo.common.TajoDataTypes.DataType;
import java.util.Collection;
import java.util.List;
--import static org.apache.tajo.catalog.proto.CatalogProtos.AlterTablespaceProto;
--import static org.apache.tajo.catalog.proto.CatalogProtos.FunctionType;
--import static org.apache.tajo.catalog.proto.CatalogProtos.TablespaceProto;
--import static org.apache.tajo.catalog.proto.CatalogProtos.UpdateTableStatsProto;
--
--
public interface CatalogService {
/**
http://git-wip-us.apache.org/repos/asf/tajo/blob/11300ef6/tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto
----------------------------------------------------------------------
diff --cc tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto
index f10aa42,3abd840..c91df23
--- a/tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto
+++ b/tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto
@@@ -173,16 -186,15 +175,15 @@@ message TableOptionProto
}
message TablePartitionProto {
- required int32 pid = 1;
+ required int32 partition_id = 1;
required int32 tid = 2;
optional string partitionName = 3;
- required int32 ordinalPosition = 4;
- optional string path = 5;
+ optional string path = 4;
}
-message GetIndexByColumnRequest {
+message GetIndexByColumnNamesRequest {
required TableIdentifierProto tableIdentifier = 1;
- required string columnName = 2;
+ repeated string columnNames = 2;
}
message IndexNameProto {
http://git-wip-us.apache.org/repos/asf/tajo/blob/11300ef6/tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/11300ef6/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/11300ef6/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/11300ef6/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/CatalogStore.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/11300ef6/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java
----------------------------------------------------------------------
diff --cc tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java
index 51eab7d,470f09d..454405d
--- a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java
+++ b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java
@@@ -26,11 -26,10 +26,12 @@@ import com.google.common.collect.Maps
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.tajo.TajoConstants;
+import org.apache.tajo.catalog.CatalogConstants;
import org.apache.tajo.catalog.CatalogUtil;
import org.apache.tajo.catalog.FunctionDesc;
+import org.apache.tajo.catalog.Schema;
import org.apache.tajo.catalog.exception.*;
+ import org.apache.tajo.catalog.partition.PartitionDesc;
import org.apache.tajo.catalog.proto.CatalogProtos;
import org.apache.tajo.catalog.proto.CatalogProtos.ColumnProto;
import org.apache.tajo.catalog.proto.CatalogProtos.DatabaseProto;
http://git-wip-us.apache.org/repos/asf/tajo/blob/11300ef6/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/derby.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/11300ef6/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/oracle/oracle.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/11300ef6/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/postgresql/postgresql.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/11300ef6/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/11300ef6/tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultSystemScanner.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/11300ef6/tajo-core/src/main/java/org/apache/tajo/webapp/QueryExecutorServlet.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/11300ef6/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/11300ef6/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/FilterPushDownRule.java
----------------------------------------------------------------------
diff --cc tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/FilterPushDownRule.java
index a257296,a6a7c78..de6ee5c
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/FilterPushDownRule.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/FilterPushDownRule.java
@@@ -18,7 -18,9 +18,10 @@@
package org.apache.tajo.plan.rewrite.rules;
- import com.google.common.collect.*;
+ import com.google.common.collect.BiMap;
+ import com.google.common.collect.HashBiMap;
+ import com.google.common.collect.ImmutableSet;
++import com.google.common.collect.Sets;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.tajo.OverridableConf;
@@@ -48,10 -53,8 +55,10 @@@ public class FilterPushDownRule extend
private final static Log LOG = LogFactory.getLog(FilterPushDownRule.class);
private static final String NAME = "FilterPushDown";
+ private CatalogService catalog;
+
static class FilterPushDownContext {
- Set<EvalNode> pushingDownFilters = new HashSet<EvalNode>();
+ Set<EvalNode> pushingDownFilters = TUtil.newHashSet();
public void clear() {
pushingDownFilters.clear();
@@@ -839,12 -833,12 +839,12 @@@
@Override
public LogicalNode visitScan(FilterPushDownContext context, LogicalPlan plan,
- LogicalPlan.QueryBlock block, ScanNode scanNode,
+ LogicalPlan.QueryBlock block, final ScanNode scanNode,
Stack<LogicalNode> stack) throws PlanningException {
- List<EvalNode> matched = Lists.newArrayList();
+ List<EvalNode> matched = TUtil.newList();
// find partition column and check matching
- Set<String> partitionColumns = new HashSet<String>();
+ Set<String> partitionColumns = TUtil.newHashSet();
TableDesc table = scanNode.getTableDesc();
boolean hasQualifiedName = false;
if (table.hasPartition()) {
http://git-wip-us.apache.org/repos/asf/tajo/blob/11300ef6/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/ProjectionPushDownRule.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/11300ef6/tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java
----------------------------------------------------------------------