Updated Branches: refs/heads/trunk e57ae6aa9 -> 3aed03167
SQOOP-628: Postgres direct import fails on non-lowercase column names (Paul Butler via Jarek Jarcec Cecho) Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/3aed0316 Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/3aed0316 Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/3aed0316 Branch: refs/heads/trunk Commit: 3aed0316760fcfa97553fbffc61dcaf506040a34 Parents: e57ae6a Author: Jarek Jarcec Cecho <[email protected]> Authored: Fri Oct 12 11:01:08 2012 -0700 Committer: Jarek Jarcec Cecho <[email protected]> Committed: Fri Oct 12 11:01:08 2012 -0700 ---------------------------------------------------------------------- .../sqoop/manager/DirectPostgresqlManager.java | 9 +++++---- .../sqoop/manager/PostgresqlImportTest.java | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/sqoop/blob/3aed0316/src/java/org/apache/sqoop/manager/DirectPostgresqlManager.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/sqoop/manager/DirectPostgresqlManager.java b/src/java/org/apache/sqoop/manager/DirectPostgresqlManager.java index ea91fc6..7ac1a79 100644 --- a/src/java/org/apache/sqoop/manager/DirectPostgresqlManager.java +++ b/src/java/org/apache/sqoop/manager/DirectPostgresqlManager.java @@ -160,7 +160,7 @@ public class DirectPostgresqlManager if (!first) { sb.append(", "); } - sb.append(col); + sb.append(escapeColName(col)); first = false; } @@ -185,6 +185,7 @@ public class DirectPostgresqlManager StringBuilder sb = new StringBuilder(); boolean first = true; for (String col : cols) { + String colEscaped = escapeColName(col); if (!first) { sb.append(", "); } @@ -194,12 +195,12 @@ public class DirectPostgresqlManager } else { if ("bool".equalsIgnoreCase(columnTypes.get(col))) { sb.append(String.format("case when %s=true then 'TRUE' " - + "when %s=false then 'FALSE' end as %s", col, col, col)); + + "when %s=false then 'FALSE' end as %s", colEscaped, colEscaped, colEscaped)); } else if ("bit".equalsIgnoreCase(columnTypes.get(col))) { sb.append(String.format("case when %s=B'1' then 'TRUE' " - + "when %s=B'0' then 'FALSE' end as %s", col, col, col)); + + "when %s=B'0' then 'FALSE' end as %s", colEscaped, colEscaped, colEscaped)); } else { - sb.append(col); + sb.append(colEscaped); } } first = false; http://git-wip-us.apache.org/repos/asf/sqoop/blob/3aed0316/src/test/com/cloudera/sqoop/manager/PostgresqlImportTest.java ---------------------------------------------------------------------- diff --git a/src/test/com/cloudera/sqoop/manager/PostgresqlImportTest.java b/src/test/com/cloudera/sqoop/manager/PostgresqlImportTest.java index 267ccd0..512b1d5 100644 --- a/src/test/com/cloudera/sqoop/manager/PostgresqlImportTest.java +++ b/src/test/com/cloudera/sqoop/manager/PostgresqlImportTest.java @@ -160,7 +160,7 @@ public class PostgresqlImportTest extends ImportJobTestCase { + manager.escapeColName("id") + " INT NOT NULL PRIMARY KEY, " + manager.escapeColName("name") + " VARCHAR(24) NOT NULL, " + manager.escapeColName("start_date") + " DATE, " - + manager.escapeColName("salary") + " FLOAT, " + + manager.escapeColName("Salary") + " FLOAT, " + manager.escapeColName("dept") + " VARCHAR(32))"); st.executeUpdate("INSERT INTO " + fullTableName
