From 5eecadb1d798624c4e797a7eaadff5736b51f0c6 Mon Sep 17 00:00:00 2001 From: "qianhao.zhou" Date: Mon, 1 Dec 2014 16:17:53 +0800 Subject: [PATCH] fix sync error on tables with same name but different db issue: https://github.com/KylinOLAP/Kylin/issues/84 --- .../kylinolap/metadata/tool/HiveSourceTableLoader.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/metadata/src/main/java/com/kylinolap/metadata/tool/HiveSourceTableLoader.java b/metadata/src/main/java/com/kylinolap/metadata/tool/HiveSourceTableLoader.java index 040ba8d..3e4cca3 100644 --- a/metadata/src/main/java/com/kylinolap/metadata/tool/HiveSourceTableLoader.java +++ b/metadata/src/main/java/com/kylinolap/metadata/tool/HiveSourceTableLoader.java @@ -28,6 +28,7 @@ import java.util.Set; import java.util.UUID; +import com.kylinolap.metadata.MetadataManager; import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; @@ -75,6 +76,20 @@ metaTmpDir.delete(); metaTmpDir.mkdirs(); + for (String database: db2tables.keySet()) { + for (String table: db2tables.get(database)) { + TableDesc tableDesc = MetadataManager.getInstance(config).getTableDesc(table); + if (tableDesc == null) { + continue; + } + if (tableDesc.getDatabase().equalsIgnoreCase(database)) { + continue; + } else { + throw new UnsupportedOperationException(String.format("there is already a table[%s] in database[%s]", tableDesc.getName(), tableDesc.getDatabase())); + } + } + } + // extract from hive Set loadedTables = Sets.newHashSet(); for (String database : db2tables.keySet()) {