Repository: kylin
Updated Branches:
  refs/heads/master 9fef04d9a -> 34a65baec


minor, fix 'CREATE-TABLE-AS-SELECT cannot create external table'


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

Branch: refs/heads/master
Commit: 83fb144f2c3df127a2b893f96a05507b8de01e7f
Parents: 81ed301
Author: Cheng Wang <cheng.w...@kyligence.io>
Authored: Tue May 23 19:41:21 2017 +0800
Committer: hongbin ma <m...@kyligence.io>
Committed: Tue May 23 19:46:02 2017 +0800

----------------------------------------------------------------------
 .../java/org/apache/kylin/source/hive/HiveMRInput.java  | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/83fb144f/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMRInput.java
----------------------------------------------------------------------
diff --git 
a/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMRInput.java 
b/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMRInput.java
index dffba8a..15d4456 100644
--- a/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMRInput.java
+++ b/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMRInput.java
@@ -190,14 +190,16 @@ public class HiveMRInput implements IMRInput {
             HiveCmdBuilder hiveCmdBuilder = new HiveCmdBuilder();
             hiveCmdBuilder.addStatement(hiveInitStatements);
             for (TableDesc lookUpTableDesc : lookupViewsTables) {
+                String identity = lookUpTableDesc.getIdentity();
+                String intermediate = lookUpTableDesc.getMaterializedName();
                 if (lookUpTableDesc.isView()) {
                     StringBuilder createIntermediateTableHql = new 
StringBuilder();
-                    createIntermediateTableHql.append("DROP TABLE IF EXISTS " 
+ lookUpTableDesc.getMaterializedName() + ";\n");
-                    createIntermediateTableHql.append("CREATE EXTERNAL TABLE 
IF NOT EXISTS " + lookUpTableDesc.getMaterializedName() + "\n");
-                    createIntermediateTableHql.append("LOCATION '" + 
jobWorkingDir + "/" + lookUpTableDesc.getMaterializedName() + "'\n");
-                    createIntermediateTableHql.append("AS SELECT * FROM " + 
lookUpTableDesc.getIdentity() + ";\n");
+                    createIntermediateTableHql.append("DROP TABLE IF EXISTS " 
+ intermediate + ";\n");
+                    createIntermediateTableHql.append("CREATE EXTERNAL TABLE 
IF NOT EXISTS " + intermediate + " LIKE " + identity + "\n");
+                    createIntermediateTableHql.append("LOCATION '" + 
jobWorkingDir + "/" + intermediate + "';\n");
+                    createIntermediateTableHql.append("INSERT OVERWRITE TABLE 
" + intermediate + " SELECT * FROM " + identity + ";\n");
                     
hiveCmdBuilder.addStatement(createIntermediateTableHql.toString());
-                    hiveViewIntermediateTables = hiveViewIntermediateTables + 
lookUpTableDesc.getMaterializedName() + ";";
+                    hiveViewIntermediateTables = hiveViewIntermediateTables + 
intermediate + ";";
                 }
             }
 

Reply via email to