From e1fb1d7df65202fb718d94591dc6adb7f832a8d0 Mon Sep 17 00:00:00 2001 From: Jihun Kang Date: Thu, 29 Jan 2015 11:06:11 +0900 Subject: [PATCH 1/2] TAJO-1313: Tajo-dump creates DDLs for information_schema tables --- .../java/org/apache/tajo/cli/tools/TajoDump.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/tajo-client/src/main/java/org/apache/tajo/cli/tools/TajoDump.java b/tajo-client/src/main/java/org/apache/tajo/cli/tools/TajoDump.java index 750ead0cb0..ceec77f243 100644 --- a/tajo-client/src/main/java/org/apache/tajo/cli/tools/TajoDump.java +++ b/tajo-client/src/main/java/org/apache/tajo/cli/tools/TajoDump.java @@ -19,11 +19,13 @@ package org.apache.tajo.cli.tools; import com.google.protobuf.ServiceException; + import org.apache.commons.cli.*; import org.apache.tajo.auth.UserRoleInfo; import org.apache.tajo.catalog.CatalogUtil; import org.apache.tajo.catalog.DDLBuilder; import org.apache.tajo.catalog.TableDesc; +import org.apache.tajo.catalog.proto.CatalogProtos.StoreType; import org.apache.tajo.client.TajoClient; import org.apache.tajo.client.TajoClientImpl; import org.apache.tajo.conf.TajoConf; @@ -116,6 +118,10 @@ public static void main(String [] args) throws ParseException, IOException, Serv System.exit(0); } + + private static boolean isAcceptableDumpingDatabase(String databaseName) { + return (databaseName == null || !databaseName.equalsIgnoreCase("information_schema")); + } public static void dump(TajoClient client, UserRoleInfo userInfo, String baseDatabaseName, boolean isDumpingAllDatabases, boolean includeUserName, boolean includeDate, PrintWriter out) @@ -128,7 +134,9 @@ public static void dump(TajoClient client, UserRoleInfo userInfo, String baseDat Collections.sort(sorted); for (String databaseName : sorted) { - dumpDatabase(client, databaseName, out); + if (isAcceptableDumpingDatabase(databaseName)) { + dumpDatabase(client, databaseName, out); + } } } else { dumpDatabase(client, baseDatabaseName, out); @@ -166,6 +174,11 @@ private static void dumpDatabase(TajoClient client, String databaseName, PrintWr for (String tableName : tableNames) { try { TableDesc table = client.getTableDesc(CatalogUtil.buildFQName(databaseName, tableName)); + + if (table.getMeta().getStoreType() == StoreType.SYSTEM) { + continue; + } + if (table.isExternal()) { writer.write(DDLBuilder.buildDDLForExternalTable(table)); } else { From 54b1a80a7bb2fa08ad9d06e3a246f07eeb051927 Mon Sep 17 00:00:00 2001 From: Jihun Kang Date: Mon, 2 Feb 2015 15:41:54 +0900 Subject: [PATCH 2/2] Moved string object to CatalogContstants class --- .../main/java/org/apache/tajo/catalog/CatalogConstants.java | 2 ++ .../src/main/java/org/apache/tajo/cli/tools/TajoDump.java | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git 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 index 6ec52b9172..a8c5c9b3c9 100644 --- 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 @@ -53,4 +53,6 @@ public class CatalogConstants { public static final String COL_DATABASES_PK = "DB_ID"; public static final String COL_TABLES_PK = "TID"; public static final String COL_TABLES_NAME = "TABLE_NAME"; + + public static final String INFORMATION_SCHEMA_DB_NAME = "information_schema"; } diff --git a/tajo-client/src/main/java/org/apache/tajo/cli/tools/TajoDump.java b/tajo-client/src/main/java/org/apache/tajo/cli/tools/TajoDump.java index ceec77f243..7f38a5dde8 100644 --- a/tajo-client/src/main/java/org/apache/tajo/cli/tools/TajoDump.java +++ b/tajo-client/src/main/java/org/apache/tajo/cli/tools/TajoDump.java @@ -22,6 +22,7 @@ import org.apache.commons.cli.*; import org.apache.tajo.auth.UserRoleInfo; +import org.apache.tajo.catalog.CatalogConstants; import org.apache.tajo.catalog.CatalogUtil; import org.apache.tajo.catalog.DDLBuilder; import org.apache.tajo.catalog.TableDesc; @@ -120,7 +121,7 @@ public static void main(String [] args) throws ParseException, IOException, Serv } private static boolean isAcceptableDumpingDatabase(String databaseName) { - return (databaseName == null || !databaseName.equalsIgnoreCase("information_schema")); + return (databaseName == null || !databaseName.equalsIgnoreCase(CatalogConstants.INFORMATION_SCHEMA_DB_NAME)); } public static void dump(TajoClient client, UserRoleInfo userInfo, String baseDatabaseName,