From 500b75ae4b990fd0e28ea4f3cb5a93d1e68b0d89 Mon Sep 17 00:00:00 2001 From: Jarek Jarcec Cecho Date: Thu, 4 Sep 2014 11:26:13 +0200 Subject: [PATCH] SQOOP-1395: Potential naming conflict in Avro schema (Qian Xu via Jarek Jarcec Cecho) --- src/java/org/apache/sqoop/orm/AvroSchemaGenerator.java | 4 ++-- src/java/org/apache/sqoop/orm/TableClassName.java | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/java/org/apache/sqoop/orm/AvroSchemaGenerator.java b/src/java/org/apache/sqoop/orm/AvroSchemaGenerator.java index 806bacef..3c913a83 100644 --- a/src/java/org/apache/sqoop/orm/AvroSchemaGenerator.java +++ b/src/java/org/apache/sqoop/orm/AvroSchemaGenerator.java @@ -71,8 +71,8 @@ public Schema generate() throws IOException { TableClassName tableClassName = new TableClassName(options); String shortClassName = tableClassName.getShortClassForTable(tableName); - String avroTableName = (tableName == null ? "QueryResult" : tableName); - String avroName = (shortClassName == null ? avroTableName : shortClassName); + String avroTableName = (tableName == null ? TableClassName.QUERY_RESULT : tableName); + String avroName = "sqoop_import_" + (shortClassName == null ? avroTableName : shortClassName); String avroNamespace = tableClassName.getPackageForTable(); String doc = "Sqoop import of " + avroTableName; diff --git a/src/java/org/apache/sqoop/orm/TableClassName.java b/src/java/org/apache/sqoop/orm/TableClassName.java index 88ab6226..13aa3018 100644 --- a/src/java/org/apache/sqoop/orm/TableClassName.java +++ b/src/java/org/apache/sqoop/orm/TableClassName.java @@ -33,6 +33,8 @@ public class TableClassName { public static final Log LOG = LogFactory.getLog( TableClassName.class.getName()); + public static final String QUERY_RESULT = "QueryResult"; + private final SqoopOptions options; public TableClassName(final SqoopOptions opts) { @@ -84,7 +86,7 @@ public String getClassForTable(String tableName) { String queryName = tableName; if (null == queryName) { - queryName = "QueryResult"; + queryName = QUERY_RESULT; } String packageName = options.getPackageName();