Updated Branches: refs/heads/trunk 7573450e1 -> b02ddc397
SQOOP-820: Escape table name in export job only if it's required by connector (Jarek Jarcec Cecho via Cheolsoo Park) Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/b02ddc39 Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/b02ddc39 Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/b02ddc39 Branch: refs/heads/trunk Commit: b02ddc39757771fb387c2688ccd0cee74cf6032c Parents: 7573450 Author: Cheolsoo Park <[email protected]> Authored: Tue Jan 8 10:06:56 2013 -0800 Committer: Cheolsoo Park <[email protected]> Committed: Tue Jan 8 10:06:56 2013 -0800 ---------------------------------------------------------------------- src/java/org/apache/sqoop/manager/ConnManager.java | 10 ++++++++++ .../apache/sqoop/manager/PostgresqlManager.java | 5 +++++ .../org/apache/sqoop/manager/SQLServerManager.java | 5 +++++ .../org/apache/sqoop/mapreduce/JdbcExportJob.java | 7 ++++++- 4 files changed, 26 insertions(+), 1 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/sqoop/blob/b02ddc39/src/java/org/apache/sqoop/manager/ConnManager.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/sqoop/manager/ConnManager.java b/src/java/org/apache/sqoop/manager/ConnManager.java index 21eea93..115186f 100644 --- a/src/java/org/apache/sqoop/manager/ConnManager.java +++ b/src/java/org/apache/sqoop/manager/ConnManager.java @@ -451,6 +451,16 @@ public abstract class ConnManager { } /** + * Return true if Sqoop common code should automatically escape table name + * when saving it to mapreduce configuration object when during export. + * + * @return True if table name should be escaped + */ + public boolean escapeTableNameOnExport() { + return false; + } + + /** * Perform any shutdown operations on the connection. */ public abstract void close() throws SQLException; http://git-wip-us.apache.org/repos/asf/sqoop/blob/b02ddc39/src/java/org/apache/sqoop/manager/PostgresqlManager.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/sqoop/manager/PostgresqlManager.java b/src/java/org/apache/sqoop/manager/PostgresqlManager.java index 7e6284e..facdc74 100644 --- a/src/java/org/apache/sqoop/manager/PostgresqlManager.java +++ b/src/java/org/apache/sqoop/manager/PostgresqlManager.java @@ -81,6 +81,11 @@ public class PostgresqlManager return escapeIdentifier(tableName); } + @Override + public boolean escapeTableNameOnExport() { + return true; + } + protected String escapeIdentifier(String identifier) { if (identifier == null) { return null; http://git-wip-us.apache.org/repos/asf/sqoop/blob/b02ddc39/src/java/org/apache/sqoop/manager/SQLServerManager.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/sqoop/manager/SQLServerManager.java b/src/java/org/apache/sqoop/manager/SQLServerManager.java index 0c39599..ed9eaf8 100644 --- a/src/java/org/apache/sqoop/manager/SQLServerManager.java +++ b/src/java/org/apache/sqoop/manager/SQLServerManager.java @@ -157,6 +157,11 @@ public class SQLServerManager return escapeObjectName(tableName); } + @Override + public boolean escapeTableNameOnExport() { + return true; + } + /** * Escape database object name (database, table, column, schema). * http://git-wip-us.apache.org/repos/asf/sqoop/blob/b02ddc39/src/java/org/apache/sqoop/mapreduce/JdbcExportJob.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/sqoop/mapreduce/JdbcExportJob.java b/src/java/org/apache/sqoop/mapreduce/JdbcExportJob.java index 7c52110..00bd910 100644 --- a/src/java/org/apache/sqoop/mapreduce/JdbcExportJob.java +++ b/src/java/org/apache/sqoop/mapreduce/JdbcExportJob.java @@ -129,7 +129,12 @@ public class JdbcExportJob extends ExportJobBase { if (null == colNames) { colNames = mgr.getColumnNames(tableName); } - DBOutputFormat.setOutput(job, mgr.escapeTableName(tableName), colNames); + + if (mgr.escapeTableNameOnExport()) { + DBOutputFormat.setOutput(job, mgr.escapeTableName(tableName), colNames); + } else { + DBOutputFormat.setOutput(job, tableName, colNames); + } job.setOutputFormatClass(getOutputFormatClass()); job.getConfiguration().set(SQOOP_EXPORT_TABLE_CLASS_KEY, tableClassName);
