diff --git a/hadoop-yarn-project/hadoop-yarn/bin/FederationStateStore/MySQL/FederationStateStoreStoredProcs.sql b/hadoop-yarn-project/hadoop-yarn/bin/FederationStateStore/MySQL/FederationStateStoreStoredProcs.sql index eae882e4a48..29f522e1ca6 100644 --- a/hadoop-yarn-project/hadoop-yarn/bin/FederationStateStore/MySQL/FederationStateStoreStoredProcs.sql +++ b/hadoop-yarn-project/hadoop-yarn/bin/FederationStateStore/MySQL/FederationStateStoreStoredProcs.sql @@ -91,12 +91,9 @@ CREATE PROCEDURE sp_addApplicationHomeSubCluster( IN applicationId_IN varchar(64), IN homeSubCluster_IN varchar(256), OUT storedHomeSubCluster_OUT varchar(256), OUT rowCount_OUT int) BEGIN - INSERT INTO applicationsHomeSubCluster + INSERT IGNORE INTO applicationsHomeSubCluster (applicationId,homeSubCluster) - (SELECT applicationId_IN, homeSubCluster_IN - FROM applicationsHomeSubCluster - WHERE applicationId = applicationId_IN - HAVING COUNT(*) = 0 ); + VALUES(applicationId_IN, homeSubCluster_IN); SELECT ROW_COUNT() INTO rowCount_OUT; SELECT homeSubCluster INTO storedHomeSubCluster_OUT FROM applicationsHomeSubCluster diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/federation/store/impl/HSQLDBFederationStateStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/federation/store/impl/HSQLDBFederationStateStore.java index 289a3a61126..11e7c1906a2 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/federation/store/impl/HSQLDBFederationStateStore.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/federation/store/impl/HSQLDBFederationStateStore.java @@ -133,12 +133,9 @@ + " IN homeSubCluster_IN varchar(256)," + " OUT storedHomeSubCluster_OUT varchar(256), OUT rowCount_OUT int)" + " MODIFIES SQL DATA BEGIN ATOMIC" - + " INSERT INTO applicationsHomeSubCluster " + + " INSERT IGNORE INTO applicationsHomeSubCluster " + " (applicationId,homeSubCluster) " - + " (SELECT applicationId_IN, homeSubCluster_IN" - + " FROM applicationsHomeSubCluster" - + " WHERE applicationId = applicationId_IN" - + " HAVING COUNT(*) = 0 );" + + " VALUES(applicationId_IN, homeSubCluster_IN);" + " GET DIAGNOSTICS rowCount_OUT = ROW_COUNT;" + " SELECT homeSubCluster INTO storedHomeSubCluster_OUT" + " FROM applicationsHomeSubCluster" diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/federation/store/impl/TestSQLFederationStateStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/federation/store/impl/TestSQLFederationStateStore.java index d4e6cc53f67..a114cd60720 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/federation/store/impl/TestSQLFederationStateStore.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/federation/store/impl/TestSQLFederationStateStore.java @@ -29,6 +29,7 @@ private static final String DATABASE_URL = "jdbc:hsqldb:mem:state"; private static final String DATABASE_USERNAME = "SA"; private static final String DATABASE_PASSWORD = ""; + private static final String MYSQL_COMPATIBILITY = ";sql.syntax_mys=true"; @Override protected FederationStateStore createStateStore() { @@ -42,7 +43,7 @@ protected FederationStateStore createStateStore() { conf.set(YarnConfiguration.FEDERATION_STATESTORE_SQL_PASSWORD, DATABASE_PASSWORD); conf.set(YarnConfiguration.FEDERATION_STATESTORE_SQL_URL, - DATABASE_URL + System.currentTimeMillis()); + DATABASE_URL + System.currentTimeMillis() + MYSQL_COMPATIBILITY); super.setConf(conf); return new HSQLDBFederationStateStore(); }