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

Reply via email to