Repository: ambari Updated Branches: refs/heads/trunk b3f8c1d01 -> d42a5b390
AMBARI-5154. Upgrade from 1.4.4 to 1.5.0 failed on Oracle DB. (swagle) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/d42a5b39 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/d42a5b39 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/d42a5b39 Branch: refs/heads/trunk Commit: d42a5b3904ff4320e28442b804dcbe32884d4cfc Parents: b3f8c1d Author: Siddharth Wagle <[email protected]> Authored: Wed Mar 19 17:19:48 2014 -0700 Committer: Siddharth Wagle <[email protected]> Committed: Wed Mar 19 17:22:37 2014 -0700 ---------------------------------------------------------------------- .../ambari/server/orm/DBAccessorImpl.java | 21 ++++++-------------- .../server/upgrade/UpgradeCatalog150.java | 8 ++++---- .../main/resources/Ambari-DDL-MySQL-CREATE.sql | 4 ++-- .../main/resources/Ambari-DDL-Oracle-CREATE.sql | 2 +- .../resources/Ambari-DDL-Postgres-CREATE.sql | 4 ++-- 5 files changed, 15 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/d42a5b39/ambari-server/src/main/java/org/apache/ambari/server/orm/DBAccessorImpl.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/DBAccessorImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/DBAccessorImpl.java index 9f8a359..e54dc9a 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/orm/DBAccessorImpl.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/DBAccessorImpl.java @@ -39,6 +39,7 @@ import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; +import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.util.Arrays; @@ -135,14 +136,8 @@ public class DBAccessorImpl implements DBAccessor { public boolean tableExists(String tableName) throws SQLException { boolean result = false; DatabaseMetaData metaData = getDatabaseMetaData(); - String schemaFilter = null; - if (getDbType().equals(Configuration.ORACLE_DB_NAME)) { - // Optimization to not query everything - schemaFilter = configuration.getDatabaseUser(); - } - ResultSet res = metaData.getTables(null, schemaFilter, - convertObjectName(tableName), new String[] { "TABLE" }); + ResultSet res = metaData.getTables(null, null, convertObjectName(tableName), new String[] { "TABLE" }); if (res != null) { try { @@ -195,14 +190,8 @@ public class DBAccessorImpl implements DBAccessor { public boolean tableHasColumn(String tableName, String columnName) throws SQLException { boolean result = false; DatabaseMetaData metaData = getDatabaseMetaData(); - String schemaFilter = null; - if (getDbType().equals(Configuration.ORACLE_DB_NAME)) { - // Optimization to not query everything - schemaFilter = configuration.getDatabaseUser(); - } - ResultSet rs = metaData.getColumns(null, schemaFilter, - convertObjectName(tableName), convertObjectName(columnName)); + ResultSet rs = metaData.getColumns(null, null, convertObjectName(tableName), convertObjectName(columnName)); if (rs != null) { try { @@ -274,7 +263,9 @@ public class DBAccessorImpl implements DBAccessor { } catch (SQLException e) { LOG.warn("Add FK constraint failed" + ", constraintName = " + constraintName + - ", tableName = " + tableName, e); + ", tableName = " + tableName + ", errorCode = " + e.getErrorCode() + + ", message = " + e.getMessage()); + LOG.debug("Exception on add FK constraint.", e); if (!ignoreFailure) { throw e; } http://git-wip-us.apache.org/repos/asf/ambari/blob/d42a5b39/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog150.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog150.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog150.java index ee5acb5..3c1ad47 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog150.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog150.java @@ -280,7 +280,7 @@ public class UpgradeCatalog150 extends AbstractUpgradeCatalog { String msg = String.format("Table \"%s\" was not created during schema upgrade", tableName); LOG.error(msg); throw new AmbariException(msg); - }else if (!dbAccessor.tableHasData(tableName)) { + } else if (!dbAccessor.tableHasData(tableName)) { String query; if (getDbType().equals(Configuration.POSTGRES_DB_NAME)) { query = getPostgresRequestUpgradeQuery(); @@ -301,7 +301,7 @@ public class UpgradeCatalog150 extends AbstractUpgradeCatalog { dbAccessor.addFKConstraint("stage", "FK_stage_request_id", "request_id", "request", "request_id", true); dbAccessor.addFKConstraint("request", "FK_request_cluster_id", "cluster_id", "clusters", "cluster_id", true); dbAccessor.addFKConstraint("request", "FK_request_schedule_id", "request_schedule_id", "requestschedule", "schedule_id", true); - dbAccessor.addFKConstraint("requestschedulebatchrequest", "FK_requestschedulebatchrequest_schedule_id", "schedule_id", "requestschedule", "schedule_id", true); + dbAccessor.addFKConstraint("requestschedulebatchrequest", "FK_rsbatchrequest_schedule_id", "schedule_id", "requestschedule", "schedule_id", true); dbAccessor.addFKConstraint("hostconfigmapping", "FK_hostconfigmapping_cluster_id", "cluster_id", "clusters", "cluster_id", true); dbAccessor.addFKConstraint("hostconfigmapping", "FK_hostconfigmapping_host_name", "host_name", "hosts", "host_name", true); dbAccessor.addFKConstraint("configgroup", "FK_configgroup_cluster_id", "cluster_id", "clusters", "cluster_id", true); @@ -310,7 +310,7 @@ public class UpgradeCatalog150 extends AbstractUpgradeCatalog { dbAccessor.addFKConstraint("configgrouphostmapping", "FK_cghostm_configgroup_id", "config_group_id", "configgroup", "group_id", true); dbAccessor.addFKConstraint("configgrouphostmapping", "FK_cghostm_host_name", "host_name", "hosts", "host_name", true); dbAccessor.addFKConstraint("clusterconfigmapping", "FK_clustercfgmap_cluster_id", "cluster_id", "clusters", "cluster_id", true); - dbAccessor.addFKConstraint("requestresourcefilter", "FK_requestresourcefilter_req_id", "request_id", "request", "request_id", true); + dbAccessor.addFKConstraint("requestresourcefilter", "FK_reqresfilter_req_id", "request_id", "request", "request_id", true); dbAccessor.addFKConstraint("hostgroup", "FK_hostgroup_blueprint_name", "blueprint_name", "blueprint", "blueprint_name", true); dbAccessor.addFKConstraint("hostgroup_component", "FK_component_blueprint_name", "blueprint_name", "hostgroup", "blueprint_name", true); dbAccessor.addFKConstraint("hostgroup_component", "FK_component_hostgroup_name", "hostgroup_name", "hostgroup", "name", true); @@ -658,7 +658,7 @@ public class UpgradeCatalog150 extends AbstractUpgradeCatalog { return "INSERT INTO request" + "(request_id, cluster_id, request_context, start_time, end_time, create_time) " + "SELECT DISTINCT s.request_id, s.cluster_id, s.request_context, " + - "nvl(cmd.start_time, -1), nvl(cmd.end_time, -1), -1" + + "nvl(cmd.start_time, -1), nvl(cmd.end_time, -1), -1 " + "FROM " + "(SELECT DISTINCT request_id, cluster_id, request_context FROM stage ) s " + "LEFT JOIN " + http://git-wip-us.apache.org/repos/asf/ambari/blob/d42a5b39/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql index 3225c1c..5f08340 100644 --- a/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql +++ b/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql @@ -92,11 +92,11 @@ ALTER TABLE confgroupclusterconfigmapping ADD CONSTRAINT FK_confgroupclusterconf ALTER TABLE configgroup ADD CONSTRAINT FK_configgroup_cluster_id FOREIGN KEY (cluster_id) REFERENCES clusters (cluster_id); ALTER TABLE configgrouphostmapping ADD CONSTRAINT FK_configgrouphostmapping_configgroup_id FOREIGN KEY (config_group_id) REFERENCES configgroup (group_id); ALTER TABLE configgrouphostmapping ADD CONSTRAINT FK_configgrouphostmapping_host_name FOREIGN KEY (host_name) REFERENCES hosts (host_name); -ALTER TABLE requestschedulebatchrequest ADD CONSTRAINT FK_requestschedulebatchrequest_schedule_id FOREIGN KEY (schedule_id) REFERENCES ambari.requestschedule (schedule_id); +ALTER TABLE requestschedulebatchrequest ADD CONSTRAINT FK_rsbatchrequest_schedule_id FOREIGN KEY (schedule_id) REFERENCES requestschedule (schedule_id); ALTER TABLE hostgroup ADD FOREIGN KEY (blueprint_name) REFERENCES blueprint(blueprint_name); ALTER TABLE hostgroup_component ADD FOREIGN KEY (blueprint_name, hostgroup_name) REFERENCES hostgroup(blueprint_name, name); ALTER TABLE blueprint_configuration ADD FOREIGN KEY (blueprint_name) REFERENCES blueprint(blueprint_name); -ALTER TABLE requestresourcefilter ADD CONSTRAINT FK_requestresourcefilter_req_id FOREIGN KEY (request_id) REFERENCES request (request_id); +ALTER TABLE requestresourcefilter ADD CONSTRAINT FK_reqresfilter_req_id FOREIGN KEY (request_id) REFERENCES request (request_id); INSERT INTO ambari_sequences(sequence_name, value) values ('cluster_id_seq', 1); http://git-wip-us.apache.org/repos/asf/ambari/blob/d42a5b39/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql index 2aabe57..36df81b 100644 --- a/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql +++ b/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql @@ -84,7 +84,7 @@ ALTER TABLE requestschedulebatchrequest ADD CONSTRAINT FK_rsbatchrequest_schedul ALTER TABLE hostgroup ADD FOREIGN KEY (blueprint_name) REFERENCES blueprint(blueprint_name); ALTER TABLE hostgroup_component ADD FOREIGN KEY (blueprint_name, hostgroup_name) REFERENCES hostgroup(blueprint_name, name); ALTER TABLE blueprint_configuration ADD FOREIGN KEY (blueprint_name) REFERENCES blueprint(blueprint_name); -ALTER TABLE requestresourcefilter ADD CONSTRAINT FK_requestresourcefilter_req_id FOREIGN KEY (request_id) REFERENCES request (request_id); +ALTER TABLE requestresourcefilter ADD CONSTRAINT FK_reqresfilter_req_id FOREIGN KEY (request_id) REFERENCES request (request_id); INSERT INTO ambari_sequences(sequence_name, value) values ('host_role_command_id_seq', 0); INSERT INTO ambari_sequences(sequence_name, value) values ('user_id_seq', 1); http://git-wip-us.apache.org/repos/asf/ambari/blob/d42a5b39/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql index f7760d4..e415359 100644 --- a/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql +++ b/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql @@ -158,10 +158,10 @@ ALTER TABLE ambari.confgroupclusterconfigmapping ADD CONSTRAINT FK_confgroupclus ALTER TABLE ambari.confgroupclusterconfigmapping ADD CONSTRAINT FK_confgroupclusterconfigmapping_group_id FOREIGN KEY (config_group_id) REFERENCES ambari.configgroup (group_id); ALTER TABLE ambari.configgrouphostmapping ADD CONSTRAINT FK_configgrouphostmapping_configgroup_id FOREIGN KEY (config_group_id) REFERENCES ambari.configgroup (group_id); ALTER TABLE ambari.configgrouphostmapping ADD CONSTRAINT FK_configgrouphostmapping_host_name FOREIGN KEY (host_name) REFERENCES ambari.hosts (host_name); -ALTER TABLE ambari.requestschedulebatchrequest ADD CONSTRAINT FK_requestschedulebatchrequest_schedule_id FOREIGN KEY (schedule_id) REFERENCES ambari.requestschedule (schedule_id); +ALTER TABLE ambari.requestschedulebatchrequest ADD CONSTRAINT FK_rsbatchrequest_schedule_id FOREIGN KEY (schedule_id) REFERENCES ambari.requestschedule (schedule_id); ALTER TABLE ambari.hostgroup ADD FOREIGN KEY (blueprint_name) REFERENCES ambari.blueprint(blueprint_name); ALTER TABLE ambari.hostgroup_component ADD FOREIGN KEY (blueprint_name, hostgroup_name) REFERENCES ambari.hostgroup(blueprint_name, name); -ALTER TABLE ambari.requestresourcefilter ADD CONSTRAINT FK_requestresourcefilter_req_id FOREIGN KEY (request_id) REFERENCES ambari.request (request_id); +ALTER TABLE ambari.requestresourcefilter ADD CONSTRAINT FK_reqresfilter_req_id FOREIGN KEY (request_id) REFERENCES ambari.request (request_id); ---------inserting some data-----------
