#
# Copyright (c) 2018, 2020 Oracle and/or its affiliates. All rights reserved.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v. 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0,
# or the Eclipse Distribution License v. 1.0 which is available at
# http://www.eclipse.org/org/documents/edl-v10.php.
#
# SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
#


ALTER TABLE JPA22_XML_FORK_COSTS DROP FOREIGN KEY FK_JPA22_XML_FORK_COSTS_ID
ALTER TABLE JPA22_XML_DDL_ORGANIZER DROP FOREIGN KEY FK_JPA22_XMLOrganizer_Race
ALTER TABLE JPA22_XML_DDL_SHOE DROP FOREIGN KEY FK_JPA22_XMLRunner_ShoeTag
ALTER TABLE JPA22_XML_DDL_SHOE DROP FOREIGN KEY FK_JPA22_XMLShoes_Runner
ALTER TABLE JPA22_XML_DDL_SPRINTER DROP FOREIGN KEY FK_JPA22_XML_Sprinter
ALTER TABLE JPA22_XML_FORK_USES DROP FOREIGN KEY FK_JPA22_XML_FORK_USES_XMLFork_ID
ALTER TABLE JPA22_XML_FORK_FORK_USERS DROP FOREIGN KEY FK_JPA22_XML_FORK_FORK_USERS_FORK_ID
ALTER TABLE JPA22_XML_FORK_FORK_USERS DROP FOREIGN KEY FK_JPA22_XML_FORK_FORK_USERS_FORK_USER_ID
ALTER TABLE JPA22_XML_DDL_RUNNERS_RACES DROP FOREIGN KEY FK_JPA22_XMLRunners_Races_Inverse
ALTER TABLE JPA22_XML_DDL_RUNNERS_RACES DROP FOREIGN KEY FK_JPA22_XMLRunners_Races
ALTER TABLE JPA22_XML_DDL_RUNNER_ACS DROP FOREIGN KEY FK_JPA22_XMLAccomplishments
ALTER TABLE JPA22_XML_DDL_ENDORSEMENTS DROP FOREIGN KEY FK_JPA22_XMLEndorsements_Key
ALTER TABLE JPA22_XML_DDL_ENDORSEMENTS DROP FOREIGN KEY FK_JPA22_XMLEndorsements
ALTER TABLE JPA22_XML_DDL_RUNNER_PBS DROP FOREIGN KEY FK_JPA22_XML_Runner_PBS
DROP INDEX INDEX_JPA22_XML_FORK_STYLE_COLOR ON JPA22_XML_FORK
DROP TABLE JPA22_XML_FORK
DROP INDEX INDEX_JPA22_XML_FORK_COSTS ON JPA22_XML_FORK_COSTS
DROP TABLE JPA22_XML_FORK_COSTS
DROP TABLE JPA22_XML_DDL_ORGANIZER
DROP TABLE JPA22_XML_DDL_ENDORSER
DROP TABLE JPA22_XML_DDL_RACE
DROP TABLE JPA22_XML_DDL_RUNNER
DROP TABLE JPA22_XML_DDL_SHOE_TAG
DROP TABLE JPA22_XML_FORK_USER
DROP TABLE JPA22_XML_DDL_SHOE
DROP TABLE JPA22_XML_DDL_SPRINTER
DROP INDEX JPA22_XML_FORK_USES_INDEX ON JPA22_XML_FORK_USES
DROP TABLE JPA22_XML_FORK_USES
DROP INDEX JPA22_XML_FORK_USERS_INDEX ON JPA22_XML_FORK_FORK_USERS
DROP TABLE JPA22_XML_FORK_FORK_USERS
DROP TABLE JPA22_XML_DDL_RUNNERS_RACES
DROP TABLE JPA22_XML_DDL_RUNNER_ACS
DROP TABLE JPA22_XML_DDL_ENDORSEMENTS
DROP TABLE JPA22_XML_DDL_RUNNER_PBS
DROP INDEX INDEX_JPA22_XML_TABLE_GENERATOR ON JPA22_XML_PK_SEQ
DELETE FROM JPA22_XML_PK_SEQ WHERE XML_SEQ_NAME = 'XML_UTENSIL_SEQ'
DELETE FROM SEQUENCE WHERE SEQ_NAME = 'SEQ_GEN'
