Repository: sqoop Updated Branches: refs/heads/branch-1.99.4 fbdd940eb -> 05711d141
SQOOP-1725: Sqoop2: Connector upgrade in 1.99.4 fails with delete configs (Veena Basavaraj via Abraham Elmahrek) Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/05711d14 Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/05711d14 Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/05711d14 Branch: refs/heads/branch-1.99.4 Commit: 05711d14118ab89861c45067b9680d0eaaeb52bb Parents: fbdd940 Author: Abraham Elmahrek <[email protected]> Authored: Thu Nov 13 14:57:06 2014 -0800 Committer: Abraham Elmahrek <[email protected]> Committed: Thu Nov 13 14:57:06 2014 -0800 ---------------------------------------------------------------------- .../sqoop/repository/derby/DerbyRepositoryHandler.java | 7 ++++++- .../derby/DerbySchemaInsertUpdateDeleteSelectQuery.java | 12 ++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/sqoop/blob/05711d14/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepositoryHandler.java ---------------------------------------------------------------------- diff --git a/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepositoryHandler.java b/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepositoryHandler.java index 37766bf..aa3a1e4 100644 --- a/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepositoryHandler.java +++ b/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepositoryHandler.java @@ -1294,11 +1294,14 @@ public class DerbyRepositoryHandler extends JdbcRepositoryHandler { private void updateConnectorAndDeleteConfigs(MConnector mConnector, Connection conn) { PreparedStatement updateConnectorStatement = null; PreparedStatement deleteConfig = null; + PreparedStatement deleteConfigDirection = null; PreparedStatement deleteInput = null; try { updateConnectorStatement = conn.prepareStatement(STMT_UPDATE_CONFIGURABLE); deleteInput = conn.prepareStatement(STMT_DELETE_INPUTS_FOR_CONFIGURABLE); + deleteConfigDirection = conn.prepareStatement(STMT_DELETE_DIRECTIONS_FOR_CONFIGURABLE); deleteConfig = conn.prepareStatement(STMT_DELETE_CONFIGS_FOR_CONFIGURABLE); + updateConnectorStatement.setString(1, mConnector.getUniqueName()); updateConnectorStatement.setString(2, mConnector.getClassName()); updateConnectorStatement.setString(3, mConnector.getVersion()); @@ -1309,15 +1312,17 @@ public class DerbyRepositoryHandler extends JdbcRepositoryHandler { throw new SqoopException(DerbyRepoError.DERBYREPO_0038); } deleteInput.setLong(1, mConnector.getPersistenceId()); + deleteConfigDirection.setLong(1, mConnector.getPersistenceId()); deleteConfig.setLong(1, mConnector.getPersistenceId()); deleteInput.executeUpdate(); + deleteConfigDirection.executeUpdate(); deleteConfig.executeUpdate(); } catch (SQLException e) { logException(e, mConnector); throw new SqoopException(DerbyRepoError.DERBYREPO_0038, e); } finally { - closeStatements(updateConnectorStatement, deleteConfig, deleteInput); + closeStatements(updateConnectorStatement, deleteConfig, deleteConfigDirection, deleteInput); } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/05711d14/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbySchemaInsertUpdateDeleteSelectQuery.java ---------------------------------------------------------------------- diff --git a/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbySchemaInsertUpdateDeleteSelectQuery.java b/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbySchemaInsertUpdateDeleteSelectQuery.java index a50027c..f349a75 100644 --- a/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbySchemaInsertUpdateDeleteSelectQuery.java +++ b/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbySchemaInsertUpdateDeleteSelectQuery.java @@ -628,6 +628,18 @@ public final class DerbySchemaInsertUpdateDeleteSelectQuery { public static final String STMT_SELECT_SQ_CONFIG_DIRECTIONS = STMT_SELECT_SQ_CONFIG_DIRECTIONS_ALL + " WHERE " + COLUMN_SQ_CFG_DIR_CONFIG + " = ?"; + + // Delete the config directions for a connector + public static final String STMT_DELETE_DIRECTIONS_FOR_CONFIGURABLE = + "DELETE FROM " + TABLE_SQ_CONFIG_DIRECTIONS + + " WHERE " + + COLUMN_SQ_CFG_DIR_CONFIG + + " IN (SELECT " + + COLUMN_SQ_CFG_ID + + " FROM " + TABLE_SQ_CONFIG + + " WHERE " + + COLUMN_SQ_CFG_CONFIGURABLE + " = ?)"; + private DerbySchemaInsertUpdateDeleteSelectQuery() {
