diff --git a/src/java/org/apache/sqoop/manager/DirectPostgresqlManager.java b/src/java/org/apache/sqoop/manager/DirectPostgresqlManager.java index ea91fc69..7ac1a79f 100644 --- a/src/java/org/apache/sqoop/manager/DirectPostgresqlManager.java +++ b/src/java/org/apache/sqoop/manager/DirectPostgresqlManager.java @@ -160,7 +160,7 @@ private String getColumnListStr(String [] cols) { if (!first) { sb.append(", "); } - sb.append(col); + sb.append(escapeColName(col)); first = false; } @@ -185,6 +185,7 @@ private String getSelectListColumnsStr(String [] cols, String tableName) { StringBuilder sb = new StringBuilder(); boolean first = true; for (String col : cols) { + String colEscaped = escapeColName(col); if (!first) { sb.append(", "); } @@ -194,12 +195,12 @@ private String getSelectListColumnsStr(String [] cols, String tableName) { } 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; diff --git a/src/test/com/cloudera/sqoop/manager/PostgresqlImportTest.java b/src/test/com/cloudera/sqoop/manager/PostgresqlImportTest.java index 267ccd04..512b1d55 100644 --- a/src/test/com/cloudera/sqoop/manager/PostgresqlImportTest.java +++ b/src/test/com/cloudera/sqoop/manager/PostgresqlImportTest.java @@ -160,7 +160,7 @@ public void setUpData(String tableName, String schema) { + 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