You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by hj...@apache.org on 2014/12/05 09:21:33 UTC
[29/29] tajo git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/tajo into hbase_storage
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into hbase_storage
Conflicts:
tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/1526b7d1
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/1526b7d1
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/1526b7d1
Branch: refs/heads/hbase_storage
Commit: 1526b7d1073c24c653ce17b93df3290c65ffe4e2
Parents: 0073ef2 ab2efce
Author: HyoungJun Kim <ba...@babokim-MacBook-Pro.local>
Authored: Fri Dec 5 17:20:19 2014 +0900
Committer: HyoungJun Kim <ba...@babokim-MacBook-Pro.local>
Committed: Fri Dec 5 17:20:19 2014 +0900
----------------------------------------------------------------------
CHANGES | 7 +-
.../org/apache/tajo/client/TestTajoClient.java | 37 +++-
.../tajo/engine/eval/TestIntervalType.java | 172 ++++++++---------
.../engine/function/TestDateTimeFunctions.java | 184 +++++++++----------
.../org/apache/tajo/plan/LogicalPlanner.java | 20 +-
.../org/apache/tajo/plan/util/PlannerUtil.java | 17 ++
6 files changed, 248 insertions(+), 189 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/1526b7d1/CHANGES
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/1526b7d1/tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java
----------------------------------------------------------------------
diff --cc tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java
index b5d2db3,c55c203..4e61de4
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java
@@@ -21,11 -21,15 +21,13 @@@ package org.apache.tajo.plan.util
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
+ import org.apache.tajo.OverridableConf;
+ import org.apache.tajo.SessionVars;
import org.apache.tajo.algebra.*;
import org.apache.tajo.annotation.Nullable;
-import org.apache.tajo.catalog.Column;
-import org.apache.tajo.catalog.Schema;
-import org.apache.tajo.catalog.SchemaUtil;
-import org.apache.tajo.catalog.SortSpec;
+import org.apache.tajo.catalog.*;
import org.apache.tajo.catalog.proto.CatalogProtos;
+import org.apache.tajo.catalog.proto.CatalogProtos.StoreType;
import org.apache.tajo.common.TajoDataTypes.DataType;
import org.apache.tajo.plan.*;
import org.apache.tajo.plan.expr.*;
@@@ -33,11 -37,15 +35,16 @@@ import org.apache.tajo.plan.logical.*
import org.apache.tajo.plan.visitor.BasicLogicalPlanVisitor;
import org.apache.tajo.plan.visitor.ExplainLogicalPlanVisitor;
import org.apache.tajo.plan.visitor.SimpleAlgebraVisitor;
+ import org.apache.tajo.storage.StorageConstants;
+ import org.apache.tajo.util.KeyValueSet;
import org.apache.tajo.util.TUtil;
+import java.io.IOException;
import java.util.*;
+ import static org.apache.tajo.catalog.proto.CatalogProtos.StoreType.CSV;
+ import static org.apache.tajo.catalog.proto.CatalogProtos.StoreType.TEXTFILE;
+
public class PlannerUtil {
public static boolean checkIfDDLPlan(LogicalNode node) {
@@@ -776,108 -784,13 +783,118 @@@
return explains.toString();
}
+ public static void applySessionToTableProperties(OverridableConf sessionVars,
+ CatalogProtos.StoreType storeType,
+ KeyValueSet tableProperties) {
+ if (storeType == CSV || storeType == TEXTFILE) {
+ if (sessionVars.containsKey(SessionVars.NULL_CHAR)) {
+ tableProperties.set(StorageConstants.TEXT_NULL, sessionVars.get(SessionVars.NULL_CHAR));
+ }
+ }
+ }
++
+ public static boolean isFileStorageType(String storageType) {
+ if (storageType.equalsIgnoreCase("hbase")) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ public static boolean isFileStorageType(StoreType storageType) {
+ if (storageType== StoreType.HBASE) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ public static StoreType getStoreType(LogicalPlan plan) {
+ LogicalRootNode rootNode = plan.getRootBlock().getRoot();
+ NodeType nodeType = rootNode.getChild().getType();
+ if (nodeType == NodeType.CREATE_TABLE) {
+ return ((CreateTableNode)rootNode.getChild()).getStorageType();
+ } else if (nodeType == NodeType.INSERT) {
+ return ((InsertNode)rootNode.getChild()).getStorageType();
+ } else {
+ return null;
+ }
+ }
+
+ public static String getStoreTableName(LogicalPlan plan) {
+ LogicalRootNode rootNode = plan.getRootBlock().getRoot();
+ NodeType nodeType = rootNode.getChild().getType();
+ if (nodeType == NodeType.CREATE_TABLE) {
+ return ((CreateTableNode)rootNode.getChild()).getTableName();
+ } else if (nodeType == NodeType.INSERT) {
+ return ((InsertNode)rootNode.getChild()).getTableName();
+ } else {
+ return null;
+ }
+ }
+
+ public static TableDesc getTableDesc(CatalogService catalog, LogicalNode node) throws IOException {
+ if (node.getType() == NodeType.CREATE_TABLE) {
+ return createTableDesc((CreateTableNode)node);
+ }
+ String tableName = null;
+ InsertNode insertNode = null;
+ if (node.getType() == NodeType.INSERT) {
+ insertNode = (InsertNode)node;
+ tableName = insertNode.getTableName();
+ } else {
+ return null;
+ }
+
+ if (tableName != null) {
+ String[] tableTokens = tableName.split("\\.");
+ if (tableTokens.length >= 2) {
+ if (catalog.existsTable(tableTokens[0], tableTokens[1])) {
+ return catalog.getTableDesc(tableTokens[0], tableTokens[1]);
+ }
+ }
+ } else {
+ if (insertNode.getPath() != null) {
+ //insert ... location
+ return createTableDesc(insertNode);
+ }
+ }
+ return null;
+ }
+
+ private static TableDesc createTableDesc(CreateTableNode createTableNode) {
+ TableMeta meta = new TableMeta(createTableNode.getStorageType(), createTableNode.getOptions());
+
+ TableDesc tableDescTobeCreated =
+ new TableDesc(
+ createTableNode.getTableName(),
+ createTableNode.getTableSchema(),
+ meta,
+ createTableNode.getPath() != null ? createTableNode.getPath().toUri() : null);
+
+ tableDescTobeCreated.setExternal(createTableNode.isExternal());
+
+ if (createTableNode.hasPartition()) {
+ tableDescTobeCreated.setPartitionMethod(createTableNode.getPartitionMethod());
+ }
+
+ return tableDescTobeCreated;
+ }
+
+ private static TableDesc createTableDesc(InsertNode insertNode) {
+ TableMeta meta = new TableMeta(insertNode.getStorageType(), insertNode.getOptions());
+
+ TableDesc tableDescTobeCreated =
+ new TableDesc(
+ insertNode.getTableName(),
+ insertNode.getTableSchema(),
+ meta,
+ insertNode.getPath() != null ? insertNode.getPath().toUri() : null);
+
+ if (insertNode.hasPartition()) {
+ tableDescTobeCreated.setPartitionMethod(insertNode.getPartitionMethod());
+ }
+
+ return tableDescTobeCreated;
+ }
}