You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by hs...@apache.org on 2015/09/24 23:56:39 UTC

sqoop git commit: SQOOP-2445. Sqoop2: Generic JDBC: Prevent use of tableColumns and sql at the same time

Repository: sqoop
Updated Branches:
  refs/heads/sqoop2 6be57ae7e -> a70975c66


SQOOP-2445. Sqoop2: Generic JDBC: Prevent use of tableColumns and sql at the same time

(Jarcec via Hari)


Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/a70975c6
Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/a70975c6
Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/a70975c6

Branch: refs/heads/sqoop2
Commit: a70975c6694a3fd09c70ac267f345fe6bd33aa99
Parents: 6be57ae
Author: Hari Shreedharan <hs...@apache.org>
Authored: Thu Sep 24 14:55:42 2015 -0700
Committer: Hari Shreedharan <hs...@apache.org>
Committed: Thu Sep 24 14:55:42 2015 -0700

----------------------------------------------------------------------
 .../jdbc/GenericJdbcFromInitializer.java        | 21 ++------
 .../jdbc/configuration/FromJobConfig.java       |  5 +-
 .../connector/jdbc/TestFromInitializer.java     | 57 --------------------
 3 files changed, 7 insertions(+), 76 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sqoop/blob/a70975c6/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcFromInitializer.java
----------------------------------------------------------------------
diff --git a/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcFromInitializer.java b/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcFromInitializer.java
index cddbb04..5a357bd 100644
--- a/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcFromInitializer.java
+++ b/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcFromInitializer.java
@@ -285,25 +285,10 @@ public class GenericJdbcFromInitializer extends Initializer<LinkConfiguration, F
       }
     } else {
       assert tableSql.contains(GenericJdbcConnectorConstants.SQL_CONDITIONS_TOKEN);
+      dataSql = tableSql;
 
-      if (tableColumns == null) {
-        dataSql = tableSql;
-
-        String[] queryColumns = executor.getQueryColumns(dataSql.replace(GenericJdbcConnectorConstants.SQL_CONDITIONS_TOKEN, "1 = 0"));
-        fieldNames = executor.columnList(queryColumns);
-      } else {
-        StringBuilder builder = new StringBuilder();
-        builder.append("SELECT ");
-        builder.append(tableColumns);
-        builder.append(" FROM ");
-        builder.append("(");
-        builder.append(tableSql);
-        builder.append(") ");
-        builder.append(GenericJdbcConnectorConstants.SUBQUERY_ALIAS);
-        dataSql = builder.toString();
-
-        fieldNames = tableColumns;
-      }
+      String[] queryColumns = executor.getQueryColumns(dataSql.replace(GenericJdbcConnectorConstants.SQL_CONDITIONS_TOKEN, "1 = 0"));
+      fieldNames = executor.columnList(queryColumns);
     }
 
     LOG.info("Using dataSql: " + dataSql);

http://git-wip-us.apache.org/repos/asf/sqoop/blob/a70975c6/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/configuration/FromJobConfig.java
----------------------------------------------------------------------
diff --git a/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/configuration/FromJobConfig.java b/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/configuration/FromJobConfig.java
index ec1c3b7..adbd457 100644
--- a/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/configuration/FromJobConfig.java
+++ b/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/configuration/FromJobConfig.java
@@ -64,7 +64,10 @@ public class FromJobConfig {
         addMessage(Status.ERROR, "Both schema name and SQL cannot be specified");
       }
       if (config.sql != null && config.partitionColumn == null) {
-        addMessage(Status.ERROR, "Partition column is required on query based import.");
+        addMessage(Status.ERROR, "Partition column is required on query based import");
+      }
+      if(config.sql != null && config.columns != null) {
+        addMessage(Status.ERROR, "Can't use sql import and specify columns at the same time");
       }
     }
   }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/a70975c6/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestFromInitializer.java
----------------------------------------------------------------------
diff --git a/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestFromInitializer.java b/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestFromInitializer.java
index 31fafb1..ab31932 100644
--- a/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestFromInitializer.java
+++ b/connector/connector-generic-jdbc/src/test/java/org/apache/sqoop/connector/jdbc/TestFromInitializer.java
@@ -314,34 +314,6 @@ public class TestFromInitializer {
 
   @Test
   @SuppressWarnings("unchecked")
-  public void testTableSqlWithTableColumns() throws Exception {
-    LinkConfiguration linkConfig = new LinkConfiguration();
-    FromJobConfiguration jobConfig = new FromJobConfiguration();
-
-    linkConfig.linkConfig.jdbcDriver = GenericJdbcTestConstants.DRIVER;
-    linkConfig.linkConfig.connectionString = GenericJdbcTestConstants.URL;
-    jobConfig.fromJobConfig.sql = schemalessTableSql;
-    jobConfig.fromJobConfig.columns = tableColumns;
-    jobConfig.fromJobConfig.partitionColumn = "DCOL";
-
-    MutableContext context = new MutableMapContext();
-    InitializerContext initializerContext = new InitializerContext(context);
-
-    @SuppressWarnings("rawtypes")
-    Initializer initializer = new GenericJdbcFromInitializer();
-    initializer.initialize(initializerContext, linkConfig, jobConfig);
-
-    verifyResult(context,
-        "SELECT ICOL,VCOL FROM (" + schemalessTableSql + ") SQOOP_SUBQUERY_ALIAS",
-        tableColumns,
-        "\"DCOL\"",
-        String.valueOf(Types.DOUBLE),
-        String.valueOf((double)START),
-        String.valueOf((double)(START+NUMBER_OF_ROWS-1)));
-  }
-
-  @Test
-  @SuppressWarnings("unchecked")
   public void testTableNameWithSchema() throws Exception {
     LinkConfiguration linkConfig = new LinkConfiguration();
     FromJobConfiguration jobConfig = new FromJobConfiguration();
@@ -473,35 +445,6 @@ public class TestFromInitializer {
     assertEquals(getSchema("Query"), schema);
   }
 
-  @Test
-  @SuppressWarnings("unchecked")
-  public void testTableSqlWithTableColumnsWithSchema() throws Exception {
-    LinkConfiguration linkConfig = new LinkConfiguration();
-    FromJobConfiguration jobConfig = new FromJobConfiguration();
-
-    linkConfig.linkConfig.jdbcDriver = GenericJdbcTestConstants.DRIVER;
-    linkConfig.linkConfig.connectionString = GenericJdbcTestConstants.URL;
-    jobConfig.fromJobConfig.schemaName = schemaName;
-    jobConfig.fromJobConfig.sql = tableSql;
-    jobConfig.fromJobConfig.columns = tableColumns;
-    jobConfig.fromJobConfig.partitionColumn = "DCOL";
-
-    MutableContext context = new MutableMapContext();
-    InitializerContext initializerContext = new InitializerContext(context);
-
-    @SuppressWarnings("rawtypes")
-    Initializer initializer = new GenericJdbcFromInitializer();
-    initializer.initialize(initializerContext, linkConfig, jobConfig);
-
-    verifyResult(context,
-        "SELECT ICOL,VCOL FROM (" + tableSql + ") SQOOP_SUBQUERY_ALIAS",
-        tableColumns,
-        "\"DCOL\"",
-        String.valueOf(Types.DOUBLE),
-        String.valueOf((double)START),
-        String.valueOf((double)(START+NUMBER_OF_ROWS-1)));
-  }
-
   /**
    * Asserts expected content inside the generated context.
    *