Rev 6600 | Rev 6999 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
---------------------------------------------------------- File created - Thursday-July-26-2018------------------------------------------------------------------------------------------------------------------ DDL for Type RELMGR_NUMBER_TAB_T--------------------------------------------------------CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_NUMBER_TAB_T" as TABLE of NUMBER/---------------------------------------------------------- DDL for Type RELMGR_PKG_DESTROY_ERR_T--------------------------------------------------------CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_PKG_DESTROY_ERR_T" AS OBJECT( msg VARCHAR(200),mtype CHAR(1))/---------------------------------------------------------- DDL for Type RELMGR_PKG_DESTROY_ERR_TAB_T--------------------------------------------------------CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_PKG_DESTROY_ERR_TAB_T"AS TABLE OF RELMGR_PKG_DESTROY_ERR_T;/---------------------------------------------------------- DDL for Type RELMGR_VARCHAR2_TAB_T--------------------------------------------------------CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_VARCHAR2_TAB_T"as TABLE of VARCHAR2(4000)/---------------------------------------------------------- DDL for Type TDICTIONARY--------------------------------------------------------CREATE OR REPLACE TYPE "RELEASE_MANAGER"."TDICTIONARY" ASTABLE OF VARCHAR2(4000)/---------------------------------------------------------- DDL for Sequence MICROSOFTSEQDTPROPERTIES--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."MICROSOFTSEQDTPROPERTIES" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 50 NOORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_ADDITIONAL_NOTES--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_ADDITIONAL_NOTES" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 37313 CACHE 20 ORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_BMCON_ID--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_BMCON_ID" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 401 CACHE 20 NOORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_BM_ID--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_BM_ID" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 6 NOCACHE ORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_BSA_ID--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_BSA_ID" MINVALUE 8 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 48 CACHE 20 NOORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_BUILD_INSTANCE--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_BUILD_INSTANCE" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 254039 CACHE 20 ORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_CR_ID--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_CR_ID" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 96052 CACHE 20 ORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_DAEMON_INSTRUCTION_ID--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_DAEMON_INSTRUCTION_ID" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 169770 CACHE 20 ORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_GBE_ID--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_GBE_ID" MINVALUE 40 MAXVALUE 9999999999999999999999990 INCREMENT BY 1 START WITH 1245 NOCACHE ORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_GROUP_EMAIL_ID--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_GROUP_EMAIL_ID" MINVALUE 1 MAXVALUE 999999999999999999999999 INCREMENT BY 1 START WITH 1186 CACHE 20 NOORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_MSG_ID--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_MSG_ID" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 582 CACHE 20 ORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_PKG_ID--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_PKG_ID" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 66589 CACHE 20 ORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_PROJ_ID--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_PROJ_ID" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 941 CACHE 20 ORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_PV_ID--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_PV_ID" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1259965 CACHE 20 ORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_RCON_ID--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_RCON_ID" MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 33943 CACHE 20 ORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_RELEASE_MOD--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_RELEASE_MOD" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 342814 CACHE 20 NOORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_RTAG_ID--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_RTAG_ID" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 37029 CACHE 20 ORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_SCHEDULED_ID--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_SCHEDULED_ID" MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 29733 CACHE 20 ORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_SDKTAG_ID--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_SDKTAG_ID" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 883 CACHE 20 NOORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_SDK_ID--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_SDK_ID" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 163 CACHE 20 NOORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_SESSION_NUM--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_SESSION_NUM" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1103850 CACHE 20 ORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_TESTRUN_ID--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_TESTRUN_ID" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 2948677 CACHE 20 NOORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_UNIT_TESTS--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_UNIT_TESTS" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 368596 CACHE 20 ORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_USER_ID--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_USER_ID" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 3961 CACHE 20 ORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_VCS_TYPE--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_VCS_TYPE" MINVALUE 1 MAXVALUE 255 INCREMENT BY 1 START WITH 63 CACHE 20 ORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_VIEW_ID--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_VIEW_ID" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 10221 CACHE 20 ORDER NOCYCLE ;---------------------------------------------------------- DDL for Sequence SEQ_VTREE_ID--------------------------------------------------------CREATE SEQUENCE "RELEASE_MANAGER"."SEQ_VTREE_ID" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 33848 CACHE 20 ORDER NOCYCLE ;---------------------------------------------------------- DDL for Table ABT_ACTION_LOG--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG"( "RCON_ID" NUMBER,"ACTION_DATETIME" DATE,"ACTION" VARCHAR2(4000 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."ABT_ACTION_LOG" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."ABT_ACTION_LOG" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."ABT_ACTION_LOG" TO "DM_READONLY";---------------------------------------------------------- DDL for Table ACTION_LOG--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."ACTION_LOG"( "USER_ID" NUMBER,"ACTION_DATETIME" DATE DEFAULT SYSDATE,"PV_ID" NUMBER,"DESCRIPTION" VARCHAR2(4000 BYTE),"ACTTYPE_ID" NUMBER,"ACTION_TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 308281344 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON COLUMN "RELEASE_MANAGER"."ACTION_LOG"."ACTION_DATETIME" IS 'To be deprecated. Use timestamp instead';GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "RELEASE_MANAGER_READ";GRANT DELETE ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";GRANT UPDATE ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";GRANT INSERT ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table ACTION_TYPE--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."ACTION_TYPE"( "ACTTYPE_ID" NUMBER,"NAME" VARCHAR2(255 BYTE),"DESCRIPTION" VARCHAR2(4000 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table ADDITIONAL_NOTES--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES"( "NOTE_ID" NUMBER,"PV_ID" NUMBER,"NOTE_TITLE" VARCHAR2(2000 BYTE),"NOTE_BODY" VARCHAR2(4000 BYTE),"MOD_DATE" DATE,"MOD_USER" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 55574528 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table ADVISORY_RIPPLE--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE"( "RTAG_ID" NUMBER,"PV_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."ADVISORY_RIPPLE" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."ADVISORY_RIPPLE" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."ADVISORY_RIPPLE" TO "DM_READONLY";---------------------------------------------------------- DDL for Table ARCHIVE_ACTION_LOG--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG"( "USER_ID" NUMBER,"DATE_TIME_STAMP" DATE,"RTAG_ID" NUMBER,"DESCRIPTION" VARCHAR2(4000 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 0 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" TO "DM_READONLY";---------------------------------------------------------- DDL for Table ARCHIVE_DATA--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."ARCHIVE_DATA"( "RTAG_ID" NUMBER(*,0),"PV_ID" NUMBER(*,0)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_DATA" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_DATA" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_DATA" TO "DM_READONLY";---------------------------------------------------------- DDL for Table AUTOBUILD_FAILURE--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE"( "GROUP_EMAIL_ID" NUMBER,"PROJ_ID" NUMBER,"VIEW_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table BUILD_ENVIRONMENTS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS"( "BE_ID" NUMBER,"BE_NAME" VARCHAR2(255 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "RELEASE_MANAGER_READ";GRANT UPDATE ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";GRANT INSERT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";GRANT DELETE ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table BUILD_ENV_DOCUMENTS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS"( "BE_ID" NUMBER,"DOC_NUM" VARCHAR2(255 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table BUILD_INSTANCES--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."BUILD_INSTANCES"( "BUILD_ID" NUMBER,"RTAG_ID" NUMBER,"PV_ID" NUMBER,"TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP,"REASON" CHAR(1 BYTE),"STATE" CHAR(1 BYTE) DEFAULT 'B') SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."BUILD_ID" IS 'Unique. Auto generated when row is created.';COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."RTAG_ID" IS 'Link the build to a Release';COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."PV_ID" IS 'Link the build to a Package';COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."TIMESTAMP" IS 'When the instance is created';COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."REASON" IS 'Reason for the build. Ripple(''R''), Test(''T''), NewVersion(''N''), Restore(''P'')';COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."STATE" IS 'Result of the build. ''B'', ''Buiding'', ''C'', ''Complete'', ''E'', ''Error'', ''S'', ''SysErr''';---------------------------------------------------------- DDL for Table BUILD_MACHINES--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."BUILD_MACHINES"( "BM_ID" NUMBER,"BM_NAME" VARCHAR2(20 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table BUILD_MACHINE_CONFIG--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG"( "BMCON_ID" NUMBER,"DISPLAY_NAME" VARCHAR2(50 BYTE),"MACHINE_HOSTNAME" VARCHAR2(50 BYTE),"DESCRIPTION" VARCHAR2(512 BYTE),"GBE_ID" NUMBER,"ACTIVE" CHAR(1 BYTE) DEFAULT 'Y') SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG"."ACTIVE" IS 'Allows user to select deamon, otherwise its not shown unless already in use.';GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table BUILD_ORDER--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."BUILD_ORDER"( "RTAG_ID" NUMBER,"STEP_NUM" NUMBER,"PV_ID" NUMBER,"UNRESOLVED" CHAR(1 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table BUILD_PLAN--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."BUILD_PLAN"( "RTAG_ID" NUMBER,"BUILD_ORDER" NUMBER,"PV_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_PLAN"."RTAG_ID" IS 'Identify target Release';COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_PLAN"."BUILD_ORDER" IS 'Sequence for build';COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_PLAN"."PV_ID" IS 'Package to build';---------------------------------------------------------- DDL for Table BUILD_SERVICE_CONFIG--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG"( "SERVICE" VARCHAR2(50 BYTE),"CONFIG" VARCHAR2(2000 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table BUILD_STANDARDS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."BUILD_STANDARDS"( "BS_ID" NUMBER,"BS_NAME" VARCHAR2(20 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table BUILD_STANDARDS_ADDENDUM--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM"( "BSA_ID" NUMBER,"BSA_NAME" VARCHAR2(4000 BYTE),"BS_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table CODE_REVIEWS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."CODE_REVIEWS"( "PV_ID" NUMBER,"DATE_OF_REVIEW" DATE,"TIME_SPENT" FLOAT(126),"REVIEW_REASON" VARCHAR2(4000 BYTE),"RTEAM_DOMAIN_EXPERT" VARCHAR2(4000 BYTE),"RTEAM_LANGUAGE_EXPERT" VARCHAR2(4000 BYTE),"RTEAM_PEER_DEVELOPER" VARCHAR2(4000 BYTE),"RTEAM_AUTHOR" VARCHAR2(4000 BYTE),"FILES_REVIEWED" VARCHAR2(4000 BYTE),"REVIEW_RESULTS" NUMBER,"ISSUES_RAISED" VARCHAR2(4000 BYTE),"REVIEW_COMMENTS" VARCHAR2(4000 BYTE),"FNC_S_MEETS_FUNCTIONALITY" CHAR(1 BYTE),"FNC_C_MEETS_FUNCTIONALITY" VARCHAR2(4000 BYTE),"RBS_S_BOUND_COND_HANDLED" CHAR(1 BYTE),"RBS_C_BOUND_COND_HANDLED" VARCHAR2(4000 BYTE),"RBS_S_CLASS_INTERF_PRECOND" CHAR(1 BYTE),"RBS_C_CLASS_INTERF_PRECOND" VARCHAR2(4000 BYTE),"RBS_S_NO_UNITIALISED_DATE" CHAR(1 BYTE),"RBS_C_NO_UNITIALISED_DATE" VARCHAR2(4000 BYTE),"RBS_S_EXCEP_HANDING" CHAR(1 BYTE),"RBS_C_EXCEP_HANDING" VARCHAR2(4000 BYTE),"RBS_S_RESOURCE_MNG" CHAR(1 BYTE),"RBS_C_RESOURCE_MNG" VARCHAR2(4000 BYTE),"RBS_S_TRANS_COMPLET" CHAR(1 BYTE),"RBS_C_TRANS_COMPLET" VARCHAR2(4000 BYTE),"RBS_S_THREADSAFETY" CHAR(1 BYTE),"RBS_C_THREADSAFETY" VARCHAR2(4000 BYTE),"RBS_S_RET_VALS" CHAR(1 BYTE),"RBS_C_RET_VALS" VARCHAR2(4000 BYTE),"RBS_S_CORR_ERR_HANDLING" CHAR(1 BYTE),"RBS_C_CORR_ERR_HANDLING" VARCHAR2(4000 BYTE),"RBS_S_SQL_STD" CHAR(1 BYTE),"RBS_C_SQL_STD" VARCHAR2(4000 BYTE),"MNT_S_EXT_REF" CHAR(1 BYTE),"MNT_C_EXT_REF" VARCHAR2(4000 BYTE),"MNT_S_CLASS_SIZE" CHAR(1 BYTE),"MNT_C_CLASS_SIZE" VARCHAR2(4000 BYTE),"MNT_S_METHOD_SIZE" CHAR(1 BYTE),"MNT_C_METHOD_SIZE" VARCHAR2(4000 BYTE),"MNT_S_APPROP_COMM" CHAR(1 BYTE),"MNT_C_APPROP_COMM" VARCHAR2(4000 BYTE),"MNT_S_IDENT_NAME_STD" CHAR(1 BYTE),"MNT_C_IDENT_NAME_STD" VARCHAR2(4000 BYTE),"MNT_S_SWITCH_HAVE_DEFAULTS" CHAR(1 BYTE),"MNT_C_SWITCH_HAVE_DEFAULTS" VARCHAR2(4000 BYTE),"MNT_S_NO_LIT_NUM" CHAR(1 BYTE),"MNT_C_NO_LIT_NUM" VARCHAR2(4000 BYTE),"MNT_S_NO_DEAD_CODE" CHAR(1 BYTE),"MNT_C_NO_DEAD_CODE" VARCHAR2(4000 BYTE),"DEI_S_STD_DES_PATT" CHAR(1 BYTE),"DEI_C_STD_DES_PATT" VARCHAR2(4000 BYTE),"DEI_S_APPROP_ALGOR" CHAR(1 BYTE),"DEI_C_APPROP_ALGOR" VARCHAR2(4000 BYTE),"DEI_S_APPROP_OBJ" CHAR(1 BYTE),"DEI_C_APPROP_OBJ" VARCHAR2(4000 BYTE),"DEI_S_APPROP_ERR_MSG" CHAR(1 BYTE),"DEI_C_APPROP_ERR_MSG" VARCHAR2(4000 BYTE),"DEI_S_STD_FRAMEW_COMP" CHAR(1 BYTE),"DEI_C_STD_FRAMEW_COMP" VARCHAR2(4000 BYTE),"DEI_S_APPROP_LOGGING" CHAR(1 BYTE),"DEI_C_APPROP_LOGGING" VARCHAR2(4000 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table CODE_REVIEW_URL--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL"( "CR_ID" NUMBER,"PV_ID" NUMBER,"PROJ_ID" NUMBER,"URL" VARCHAR2(4000 BYTE),"REASON" VARCHAR2(4000 BYTE),"DATE_OF_REVIEW" DATE,"LAST_MODIFIED" DATE) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 983040 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEW_URL" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEW_URL" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEW_URL" TO "DM_READONLY";---------------------------------------------------------- DDL for Table CQ_HISTORY--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."CQ_HISTORY"( "DBID" NUMBER(10,0),"ENTITY_DBID" NUMBER(10,0),"ENTITYDEF_ID" NUMBER(10,0),"ENTITYDEF_NAME" VARCHAR2(30 CHAR),"ACTION_TIMESTAMP" DATE,"USER_NAME" VARCHAR2(30 CHAR),"ACTION_NAME" VARCHAR2(30 CHAR),"OLD_STATE" VARCHAR2(30 CHAR),"NEW_STATE" VARCHAR2(30 CHAR),"EXPIRED_TIMESTAMP" DATE) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "DEPLOYMENT_MANAGER";GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "ACCESS_MANAGER";---------------------------------------------------------- DDL for Table CQ_ISSUES--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."CQ_ISSUES"( "PV_ID" NUMBER,"ISS_DB" NUMBER,"ISS_ID" NUMBER,"ISS_STATE" NUMBER,"MOD_DATE" DATE,"NOTES" VARCHAR2(255 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "RELEASE_MANAGER_READ";GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table CQ_SOFTWARE_ISSUE--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE"( "RATL_MASTERSHIP" NUMBER(10,0),"DBID" NUMBER(10,0),"IS_ACTIVE" NUMBER(10,0),"ID" VARCHAR2(13 CHAR),"STATE" NUMBER(10,0),"VERSION" NUMBER(10,0),"LOCK_VERSION" NUMBER(10,0),"LOCKED_BY" NUMBER(10,0),"IS_DUPLICATE" NUMBER(10,0),"UNDUPLICATE_STATE" VARCHAR2(50 CHAR),"HEADLINE" VARCHAR2(150 CHAR),"DESCRIPTION" CLOB,"PRIORITY" VARCHAR2(50 CHAR),"SUBMITTER" NUMBER(10,0),"SUBMIT_DATE" DATE,"OWNER" NUMBER(10,0),"APPROVER" NUMBER(10,0),"NOTE_ENTRY" CLOB,"NOTES_LOG" CLOB,"RESOLUTION_DATE" DATE,"ISSUE_TYPE" VARCHAR2(50 CHAR),"PACKAGE_REF" VARCHAR2(50 CHAR),"SOLUTION_APPROVED_DATE" DATE,"CLOSE_DATE" DATE,"BUILD_NUMBER" VARCHAR2(50 CHAR),"NEW_NUM" VARCHAR2(50 CHAR),"FOR_INFORMATION" CLOB,"PROP_SOL_DATE" DATE,"ARTIFACTS_TO_BE_UPDATED_1" CLOB,"ISSUE_ID" NUMBER(10,0),"SOLUTION_DATE" DATE,"KPI_SOLUTION_DATE" DATE,"TITLE" VARCHAR2(80 CHAR),"PROJECT" VARCHAR2(50 CHAR),"ORIGINATING_AREA" VARCHAR2(50 CHAR),"ESTIMATED_TIME_INHOURS" NUMBER(10,0),"RELEASE_PART1" NUMBER(10,0),"RELEASE_PART2" NUMBER(10,0),"RELEASE_PART3" NUMBER(10,0),"SOLUTION_RELEASE_PART1" NUMBER(10,0),"SOLUTION_RELEASE_PART2" NUMBER(10,0),"SOLUTION_RELEASE_PART3" NUMBER(10,0),"ORIGINAL_IMPLEMENT_DATE" DATE,"ISSUE_LABEL" VARCHAR2(50 CHAR),"PRODUCT" VARCHAR2(50 CHAR),"ORIGIN" VARCHAR2(50 CHAR),"CLONE_NOTE" CLOB,"SOLUTION_LABEL" VARCHAR2(50 CHAR),"REQUIRED_BY" DATE,"ITERATION_AFFECTED" VARCHAR2(50 CHAR),"MERGE_OLD_ID" VARCHAR2(150 CHAR),"COMMENTS" CLOB,"CHANGE_CONTROL" VARCHAR2(50 CHAR),"MERGE_COMMENTS" CLOB,"MERGE_CHANGE_CONTROL" VARCHAR2(50 CHAR),"AWAITING_INFO_DESC" CLOB,"REQUEST_CLOSE_DESC" CLOB,"ROOT_CAUSE" VARCHAR2(50 CHAR),"FLAGA" VARCHAR2(50 CHAR),"FLAGB" VARCHAR2(50 CHAR),"FLAGC" VARCHAR2(50 CHAR),"SCHEDULED_RELEASE" VARCHAR2(60 CHAR),"SEVERITY" VARCHAR2(50 CHAR),"CUSTOM_FIELD_01" CLOB,"CUSTOM_FIELD_02" CLOB,"CUSTOM_FIELD_03" CLOB,"CUSTOMER_REFERENCE" VARCHAR2(254 CHAR),"TEAMLEADER" NUMBER(10,0),"WIP" CLOB,"RELEASEINFO" CLOB,"SBOM" VARCHAR2(254 CHAR),"NEW_EXTERNAL_NOTE" CLOB,"EXTERNAL_NOTE_LOG" CLOB,"CUSTOMER_REFERENCE_2" VARCHAR2(50 CHAR),"CUSTOMER_REFERENCE_3" VARCHAR2(50 CHAR),"CUSTOMER_REFERENCE_4" VARCHAR2(50 CHAR),"CUSTOMER_REFERENCE_5" VARCHAR2(50 CHAR),"TEST_CASES" CLOB,"INTEGRATION_NOTES" CLOB,"UPDATED_DESIGN_NOTES" VARCHAR2(50 CHAR),"RELATED_DATABASE_PATCHES" VARCHAR2(50 CHAR),"AFFECTED_PACKAGES" VARCHAR2(50 CHAR),"CODEREVIEW_REFERENCE" CLOB,"RISK" VARCHAR2(50 CHAR),"DEPENDANT_DEVIS" VARCHAR2(50 CHAR),"CUSTOM_FIELD_04" CLOB,"CUSTOM_FIELD_05" CLOB,"ITERATION_FOUND" VARCHAR2(50 CHAR)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA"LOB ("DESCRIPTION") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("NOTE_ENTRY") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("NOTES_LOG") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("FOR_INFORMATION") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("ARTIFACTS_TO_BE_UPDATED_1") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("CLONE_NOTE") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("COMMENTS") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("MERGE_COMMENTS") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("AWAITING_INFO_DESC") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("REQUEST_CLOSE_DESC") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("CUSTOM_FIELD_01") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("CUSTOM_FIELD_02") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("CUSTOM_FIELD_03") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("WIP") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("RELEASEINFO") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("NEW_EXTERNAL_NOTE") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("EXTERNAL_NOTE_LOG") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("TEST_CASES") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("INTEGRATION_NOTES") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("CODEREVIEW_REFERENCE") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("CUSTOM_FIELD_04") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))LOB ("CUSTOM_FIELD_05") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "DEPLOYMENT_MANAGER";GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "ACCESS_MANAGER";---------------------------------------------------------- DDL for Table CQ_STATEDEF--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."CQ_STATEDEF"( "ID" NUMBER(10,0),"PACKAGE_OWNERSHIP" NUMBER(10,0),"NAME" VARCHAR2(255 CHAR),"ENTITYDEF_ID" NUMBER(10,0),"ORDINAL" NUMBER(10,0)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "DEPLOYMENT_MANAGER";GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "ACCESS_MANAGER";---------------------------------------------------------- DDL for Table CQ_USERS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."CQ_USERS"( "DBID" VARCHAR2(8 BYTE),"LOGIN_NAME" VARCHAR2(17 BYTE),"FULLNAME" VARCHAR2(30 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "DEPLOYMENT_MANAGER";GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "ACCESS_MANAGER";---------------------------------------------------------- DDL for Table DAEMON_ACTION_LOG--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG"( "USER_ID" NUMBER,"ACTION_DATETIME" DATE,"RCON_ID" NUMBER,"DESCRIPTION" VARCHAR2(4000 BYTE),"ACTTYPE_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_ACTION_LOG" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_ACTION_LOG" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_ACTION_LOG" TO "DM_READONLY";---------------------------------------------------------- DDL for Table DAEMON_INSTRUCTIONS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"( "DAEMON_INSTRUCTIONS_ID" NUMBER,"OP_CODE" NUMBER(*,0),"RTAG_ID" NUMBER,"PV_ID" NUMBER,"SCHEDULED_DATETIME" DATE,"REPEAT_SECS" NUMBER(*,0),"ADDED_DATETIME" DATE,"USER_ID" NUMBER,"IN_PROGRESS" CHAR(1 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."OP_CODE" IS 'The instruction op-code';COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."SCHEDULED_DATETIME" IS 'The datetime after which the instruction can be carried out.';COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."REPEAT_SECS" IS 'The number of seconds to add to scheduled_datetime when instruction is repeating';COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."ADDED_DATETIME" IS 'The datetime the instruction was added to the table - informational only';COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."USER_ID" IS 'The user who added the instruction to the table - informational only';GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" TO "DM_READONLY";---------------------------------------------------------- DDL for Table DASH_BOARD--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."DASH_BOARD"( "PROJ_ID" NUMBER,"RTAG_ID" NUMBER,"LAST_BUILD_TIME" DATE,"AUTOMATED_PACKAGES" NUMBER,"TOTAL_PACKAGES" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."DASH_BOARD" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."DASH_BOARD" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."DASH_BOARD" TO "DM_READONLY";---------------------------------------------------------- DDL for Table DEPRECATED_PACKAGES--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES"( "RTAG_ID" NUMBER,"PKG_ID" NUMBER,"COMMENTS" VARCHAR2(4000 BYTE),"V_EXT" VARCHAR2(50 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."DEPRECATED_PACKAGES" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."DEPRECATED_PACKAGES" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."DEPRECATED_PACKAGES" TO "DM_READONLY";---------------------------------------------------------- DDL for Table DO_NOT_RIPPLE--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE"( "RTAG_ID" NUMBER,"PV_ID" NUMBER,"ROOT_PV_ID" NUMBER,"ROOT_CAUSE" VARCHAR2(50 BYTE),"ROOT_FILE" VARCHAR2(100 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 655360 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "RELEASE_MANAGER_READ";GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table GBE_MACHTYPE--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."GBE_MACHTYPE"( "GBE_ID" NUMBER,"GBE_VALUE" VARCHAR2(20 BYTE),"BM_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table IGNORE_WARNINGS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS"( "RTAG_ID" NUMBER,"PV_ID" NUMBER,"DPV_ID" NUMBER,"IS_PATCH_IGNORE" CHAR(1 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table JIRA_ISSUES--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."JIRA_ISSUES"( "PV_ID" NUMBER,"ISS_KEY" VARCHAR2(4000 BYTE),"DATE_TIME_STAMP" DATE) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "RELEASE_MANAGER_READ";GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table LICENCES--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."LICENCES"( "LICENCE" NUMBER,"NAME" VARCHAR2(50 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."LICENCES" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."LICENCES" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."LICENCES" TO "DM_READONLY";---------------------------------------------------------- DDL for Table LICENCING--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."LICENCING"( "PV_ID" NUMBER,"LICENCE" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."LICENCING" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."LICENCING" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."LICENCING" TO "DM_READONLY";---------------------------------------------------------- DDL for Table LXR_STATE--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."LXR_STATE"( "RTAG_ID" NUMBER,"LXRSERVER" CHAR(1 BYTE) DEFAULT 'N') SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON COLUMN "RELEASE_MANAGER"."LXR_STATE"."RTAG_ID" IS 'Link to Release_Tags';COMMENT ON COLUMN "RELEASE_MANAGER"."LXR_STATE"."LXRSERVER" IS 'Written by server - I:Indexed, C:Closing, N:Not Known. May be InProgress.';COMMENT ON TABLE "RELEASE_MANAGER"."LXR_STATE" IS 'Contains data updated by the LXR server.This table is writable by a user known to the LXR Server';GRANT UPDATE ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";GRANT INSERT ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";GRANT DELETE ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";GRANT ALTER ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";---------------------------------------------------------- DDL for Table MEMBERS_GROUP--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."MEMBERS_GROUP"( "GROUP_EMAIL_ID" NUMBER,"USER_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table MESSAGE_BOARD--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."MESSAGE_BOARD"( "MSG_ID" NUMBER,"MSG_DETAILS" VARCHAR2(2000 BYTE),"SUBMITION_DATE" DATE,"EXPIRY_DATE" DATE,"DUE_DATE" DATE) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table MICROSOFTDTPROPERTIES--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES"( "ID" NUMBER,"OBJECTID" NUMBER,"PROPERTY" VARCHAR2(64 BYTE),"VALUE" VARCHAR2(255 BYTE),"LVALUE" LONG RAW,"VERSION" NUMBER DEFAULT (0)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table NOTE_MANAGER--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."NOTE_MANAGER"( "NID" VARCHAR2(30 BYTE),"LAST_USER" VARCHAR2(20 BYTE),"LAST_DATE" DATE,"DESCRIPTION" VARCHAR2(4000 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table NOTIFICATION_HISTORY--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY"( "RTAG_ID" NUMBER,"PV_ID" NUMBER,"USER_ID" NUMBER,"DATE_TIME_STAMP" DATE) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table PACKAGES--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."PACKAGES"( "PKG_ID" NUMBER,"PKG_NAME" VARCHAR2(255 BYTE),"SUNOS_ELECTRONIC_NAME" VARCHAR2(255 BYTE),"WIN_ELECTRONIC_NAME" VARCHAR2(255 BYTE),"DEFAULT_PEGGED" CHAR(1 BYTE),"DEFAULT_ADVISORY_RIPPLE" CHAR(1 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 196608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGES"."DEFAULT_PEGGED" IS 'Default pegged state for packages that are added to a release.';COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGES"."DEFAULT_ADVISORY_RIPPLE" IS 'Default advisiory ripple state for packages that are added to a release.';GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "RELEASE_MANAGER_READ";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER_READ";GRANT UPDATE ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";GRANT INSERT ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";GRANT DELETE ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table PACKAGE_BUILD_ENV--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV"( "PV_ID" NUMBER,"BE_ID" NUMBER,"BUILD_TYPE" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "RELEASE_MANAGER_READ";GRANT UPDATE ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";GRANT DELETE ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table PACKAGE_BUILD_INFO--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO"( "PV_ID" NUMBER,"BM_ID" NUMBER,"BSA_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table PACKAGE_DEPENDENCIES--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"( "PV_ID" NUMBER,"DPV_ID" NUMBER,"PKG_ID" NUMBER,"DPKG_ID" NUMBER,"BUILD_TYPE" CHAR(1 BYTE),"DISPLAY_ORDER" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 100663296 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."PV_ID" IS 'Package Version Identifier';COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."DPV_ID" IS 'Depends on this package version';COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."BUILD_TYPE" IS 'B:BuildPkgArchive, L:LinkPkgArchive';GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "RELEASE_MANAGER_READ";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table PACKAGE_DOCUMENTS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS"( "PV_ID" NUMBER,"TEST_ID" NUMBER,"DOC_ID" NUMBER,"DOC_NUM" VARCHAR2(50 BYTE),"IS_LATEST" CHAR(1 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table PACKAGE_INTEREST--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST"( "PKG_ID" NUMBER,"PROJ_ID" NUMBER,"USER_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_INTEREST" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_INTEREST" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_INTEREST" TO "DM_READONLY";---------------------------------------------------------- DDL for Table PACKAGE_METRICS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."PACKAGE_METRICS"( "PV_ID" NUMBER,"BRANCHES" NUMBER,"BRANCH_LIST" VARCHAR2(4000 BYTE),"CODE_FILES" NUMBER,"IGNORED_FILES" NUMBER,"DIRECTORIES" NUMBER,"DIRECTORY_DEPTH" NUMBER,"TOTAL_FILES" NUMBER,"MAKEFILES" NUMBER,"BLANK_LINES" NUMBER,"CODE_LINES" NUMBER,"COMMENT_LINES" NUMBER,"CREATED_STAMP" DATE) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 12582912 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_METRICS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_METRICS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_METRICS" TO "DM_READONLY";---------------------------------------------------------- DDL for Table PACKAGE_PATCHES--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES"( "PV_ID" NUMBER,"PATCH_ID" NUMBER,"INSTALL_ORDER" NUMBER,"PATCH_OBSOLETED_BY" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "RELEASE_MANAGER_READ";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table PACKAGE_PROCESSES--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES"( "PV_ID" NUMBER,"PROC_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DM_READONLY";GRANT UPDATE ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";GRANT DELETE ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table PACKAGE_VERSIONS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS"( "PV_ID" NUMBER,"PKG_ID" NUMBER,"PKG_VERSION" VARCHAR2(50 BYTE),"DLOCKED" CHAR(1 BYTE),"RELEASED_AT" NUMBER,"MODIFIED_STAMP" DATE,"MODIFIER_ID" NUMBER,"CREATED_STAMP" DATE,"CREATOR_ID" NUMBER,"COMMENTS" VARCHAR2(4000 BYTE),"V_MM" VARCHAR2(50 BYTE),"V_NMM" VARCHAR2(50 BYTE),"V_EXT" VARCHAR2(50 BYTE),"PKG_LABEL" VARCHAR2(60 BYTE),"SRC_PATH" VARCHAR2(2000 BYTE),"PV_DESCRIPTION" VARCHAR2(4000 BYTE),"OWNER_ID" NUMBER,"PV_OVERVIEW" VARCHAR2(4000 BYTE),"IS_PATCH" CHAR(1 BYTE),"LAST_PV_ID" NUMBER,"RELEASE_NOTES_INFO" VARCHAR2(1000 BYTE),"IS_DEPLOYABLE" CHAR(1 BYTE),"IS_BUILD_ENV_REQUIRED" CHAR(1 BYTE),"IS_OBSOLETE" CHAR(1 BYTE),"OBSOLETE_COMMENTS" VARCHAR2(4000 BYTE),"BUILD_TYPE" CHAR(1 BYTE),"CHANGE_TYPE" CHAR(1 BYTE),"LINK" VARCHAR2(4000 BYTE),"PATCH_ELECTRONIC_NAME" VARCHAR2(4000 BYTE),"BS_ID" NUMBER,"IS_AUTOBUILDABLE" CHAR(1 BYTE),"SBOM_PRIORITY" CHAR(1 BYTE),"RIPPLE_FIELD" CHAR(1 CHAR),"MAXIMUM_BUILD_TIME" NUMBER,"BUILD_TIME" NUMBER,"MAJOR_LIMIT" NUMBER(10,0),"MINOR_LIMIT" NUMBER(10,0),"PATCH_LIMIT" NUMBER(10,0),"BUILD_NUMBER_LIMIT" NUMBER(10,0),"VCS_TYPE_ID" NUMBER,"PKG_IDEXT" VARCHAR2(70 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 134217728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."RELEASED_AT" IS 'No longer used';COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."IS_DEPLOYABLE" IS 'null:No, NonNull:Yes Y:Yes';COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."BUILD_TYPE" IS 'A:Auto, M:Manual, U:UnBuildable';COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."IS_AUTOBUILDABLE" IS 'Y: Indicates that the package has been built on a build machine';COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."BUILD_TIME" IS 'Duration of last build';GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "RELEASE_MANAGER_READ";GRANT UPDATE ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";GRANT DELETE ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table PEGGED_VERSIONS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS"( "RTAG_ID" NUMBER,"PV_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."PEGGED_VERSIONS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PEGGED_VERSIONS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PEGGED_VERSIONS" TO "DM_READONLY";---------------------------------------------------------- DDL for Table PLANNED--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."PLANNED"( "RTAG_ID" NUMBER,"PV_ID" NUMBER,"VIEW_ID" NUMBER,"OPERATION" CHAR(1 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON COLUMN "RELEASE_MANAGER"."PLANNED"."OPERATION" IS 'A: Add existing version.S:Subtract existing Version.R:Add New Version';COMMENT ON TABLE "RELEASE_MANAGER"."PLANNED" IS 'This table contains WORK IN PROGRESS packages';GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "RELEASE_MANAGER_READ";GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table PLANNED_VERSIONS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."PLANNED_VERSIONS"( "PKG_ID" NUMBER,"PKG_VERSION" VARCHAR2(50 BYTE),"PLANNED_TIME" DATE) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."PLANNED_VERSIONS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PLANNED_VERSIONS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PLANNED_VERSIONS" TO "DM_READONLY";---------------------------------------------------------- DDL for Table PLATFORMS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."PLATFORMS"( "CODE" NUMBER,"NAME" VARCHAR2(255 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "RELEASE_MANAGER_READ";GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table PROCESSES--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."PROCESSES"( "PROC_ID" NUMBER,"PROC_NAME" VARCHAR2(255 BYTE),"PROC_DESCRIPTION" VARCHAR2(255 BYTE),"RUN_AS" VARCHAR2(255 BYTE),"PKG_OWNER" VARCHAR2(4000 BYTE),"IS_INTERFACE" CHAR(1 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "RELEASE_MANAGER_READ";GRANT UPDATE ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";GRANT INSERT ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";GRANT DELETE ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table PRODUCT_COMPONENTS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS"( "PV_ID" NUMBER,"OS_ID" NUMBER,"FILE_PATH" VARCHAR2(4000 BYTE),"FILE_NAME" VARCHAR2(4000 BYTE),"DESTINATION_PATH" VARCHAR2(4000 BYTE),"BYTE_SIZE" NUMBER,"CRC_CKSUM" VARCHAR2(2000 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 31457280 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "RELEASE_MANAGER_READ";GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table PRODUCT_STATES--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."PRODUCT_STATES"( "STATE_ID" NUMBER,"STATE" VARCHAR2(4000 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_STATES" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_STATES" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_STATES" TO "DM_READONLY";---------------------------------------------------------- DDL for Table PROJECTS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."PROJECTS"( "PROJ_ID" NUMBER,"PROJ_NAME" VARCHAR2(50 BYTE),"BASE_URL" VARCHAR2(4000 BYTE),"JIRA_KEY" VARCHAR2(16 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "RELEASE_MANAGER_READ";GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER_READ";GRANT UPDATE ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";GRANT INSERT ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";GRANT DELETE ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "ACCESS_MANAGER";---------------------------------------------------------- DDL for Table PROJECT_ACTION_LOG--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG"( "USER_ID" NUMBER,"ACTION_DATETIME" DATE,"PROJ_ID" NUMBER,"DESCRIPTION" VARCHAR2(4000 BYTE),"ACTTYPE_ID" NUMBER,"RTAG_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 851968 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table PROJECT_EXTENTIONS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."PROJECT_EXTENTIONS"( "PROJ_ID" NUMBER,"EXT_NAME" VARCHAR2(10 BYTE),"UCOMMENT" VARCHAR2(120 BYTE),"IS_VISIBLE" CHAR(1 BYTE) DEFAULT 'Y',"IS_COTS" CHAR(1 BYTE) DEFAULT 'N') SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "RELEASE_MANAGER_READ";GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table RELEASE_COMPONENTS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS"( "PV_ID" NUMBER,"FILE_NAME" VARCHAR2(255 BYTE),"FILE_PATH" VARCHAR2(2000 BYTE),"BYTE_SIZE" NUMBER,"CRC_CKSUM" VARCHAR2(50 BYTE),"CRC_MODCRC" VARCHAR2(50 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 2828009472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table RELEASE_CONFIG--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."RELEASE_CONFIG"( "RCON_ID" NUMBER,"RTAG_ID" NUMBER,"GBE_ID" NUMBER,"DAEMON_HOSTNAME" VARCHAR2(50 BYTE),"DAEMON_MODE" CHAR(1 CHAR),"GBE_BUILDFILTER" VARCHAR2(255 BYTE),"BMCON_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 196608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."GBE_ID" IS 'Do not use. Data should come from build_machine_config';COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."DAEMON_HOSTNAME" IS 'Do not use. Data should come from build_machine_config';COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."BMCON_ID" IS 'Link to the build_machine_config table';GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table RELEASE_CONTENT--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."RELEASE_CONTENT"( "RTAG_ID" NUMBER,"PV_ID" NUMBER,"BASE_VIEW_ID" NUMBER,"INSERT_STAMP" DATE,"INSERTOR_ID" NUMBER,"PKG_STATE" NUMBER,"PKG_ID" NUMBER,"DEPRECATED_STATE" NUMBER,"PRODUCT_STATE" NUMBER,"SDKTAG_ID" NUMBER,"RIPPLE_STOP" CHAR(1 BYTE),"PERSIST_RIPPLE_STOP" CHAR(1 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."PKG_ID" IS 'NotUsed any more. Was:Package that has been deprecated';COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."DEPRECATED_STATE" IS '6: Deprecated Package, 7: Deprecated Dependent';COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."SDKTAG_ID" IS 'Pkg imported via SDK';COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."RIPPLE_STOP" IS 's: Stop Ripple, w:Wait for Reset, g:GoBuild';COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."PERSIST_RIPPLE_STOP" IS 'Null:No';GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "RELEASE_MANAGER_READ";GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table RELEASE_LINKS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."RELEASE_LINKS"( "RTAG_ID" NUMBER,"REF_RTAG_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table RELEASE_METRICS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."RELEASE_METRICS"( "RTAG_ID" NUMBER,"TOTAL_PACKAGES" NUMBER,"AUTOBUILT" NUMBER,"LINES_OF_CODE" NUMBER,"UNIT_TESTED" NUMBER,"AUTOTESTED" NUMBER,"BRANCHES" NUMBER,"LAST_BUILD_TIME" DATE) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "DM_READONLY";---------------------------------------------------------- DDL for Table RELEASE_MODIFIED--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED"( "RTAG_ID" NUMBER,"TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP,"SEQNUM" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."RTAG_ID" IS 'Link to Release';COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."TIMESTAMP" IS 'Time of the modification';COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."SEQNUM" IS 'Unique number indicating change';COMMENT ON TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" IS 'This table conatins a single entry for each RELEASE_TAG.It is used by the build system to help detect changes to the content of a Release.A stored proceedure simplifies the use of this table: PK_RELEASE.SET_RELEASE_MODIFIEDThis should be called whenever the package_versions in the release have changed in sucha manner that the build daemons should examine the release. This includes:- Packages added and removed- Packages build status changed (re-included in the release )- Packages made Pending Build';---------------------------------------------------------- DDL for Table RELEASE_TAGS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."RELEASE_TAGS"( "RTAG_ID" NUMBER,"VTREE_ID" NUMBER,"RTAG_NAME" VARCHAR2(50 BYTE),"DESCRIPTION" VARCHAR2(4000 BYTE),"CREATED_STAMP" DATE,"CREATOR_ID" NUMBER,"OFFICIAL_STAMP" DATE,"RELEASOR_ID" NUMBER,"OFFICIAL" CHAR(1 BYTE),"REBUILD_ENV" CHAR(1 BYTE),"REBUILD_STAMP" NUMBER,"RTAG_VERSION" VARCHAR2(4000 BYTE),"RTAG_LIFE_CYCLE" NUMBER,"PARENT_RTAG_ID" NUMBER,"PROJ_ID" NUMBER,"DISPLAY_ORDER" NUMBER,"OWNER_EMAIL" VARCHAR2(1000 BYTE),"ASSOC_MASS_REF" NUMBER,"OWNER_PERSONAL_EMAIL" VARCHAR2(1000 BYTE),"CONFIG_SPEC_BRANCH" VARCHAR2(4000 BYTE),"PRODUCT_STATE_USED" CHAR(1 BYTE),"OFFICIAL_ID" NUMBER,"BUILD_AGE" NUMBER DEFAULT 31,"LXR" CHAR(1 BYTE) DEFAULT 'N') SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."CREATED_STAMP" IS 'Date Release was created';COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."CREATOR_ID" IS 'User who created the release';COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL_STAMP" IS 'Date OFFICIAL state was changed';COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."RELEASOR_ID" IS 'Not Used';COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL" IS 'State of release. A:Archived, Y:Closed, C:CCB Mode, R:Restricted, N: Open';COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."REBUILD_ENV" IS 'Y: Rebuild Package State';COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."REBUILD_STAMP" IS 'Not used ?';COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL_ID" IS 'User last changed OFFICIAL state';COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."BUILD_AGE" IS 'Days without building before warning is shown';COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."LXR" IS 'Y:Enable LXR';GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "RELEASE_MANAGER_READ";GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table RM_PACKAGE_ISSUES_DELETE_ME--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME"( "PKG_ID" NUMBER,"PKG_NAME" VARCHAR2(50 BYTE),"PV_ID" NUMBER,"PKG_VERSION" VARCHAR2(50 BYTE),"DPV_ID" NUMBER,"DPKG_NAME" VARCHAR2(50 BYTE),"DPKG_VERSION" VARCHAR2(50 BYTE),"ISS_DB" NUMBER,"ISS_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table RM_PKG_ISSUES--------------------------------------------------------CREATE GLOBAL TEMPORARY TABLE "RELEASE_MANAGER"."RM_PKG_ISSUES"( "PKG_ID" NUMBER,"PKG_NAME" VARCHAR2(50 BYTE),"PV_ID" NUMBER,"PKG_VERSION" VARCHAR2(50 BYTE),"DPV_ID" NUMBER,"DPKG_NAME" VARCHAR2(50 BYTE),"DPKG_VERSION" VARCHAR2(50 BYTE),"ISS_DB" NUMBER,"ISS_ID" NUMBER) ON COMMIT PRESERVE ROWS ;GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table RUNTIME_DEPENDENCIES--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES"( "PV_ID" NUMBER,"RTD_ID" NUMBER,"RTD_COMMENTS" VARCHAR2(2000 BYTE),"RTD_URL" VARCHAR2(2000 BYTE),"MOD_DATE" DATE,"MOD_USER" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table RUN_LEVEL--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."RUN_LEVEL"( "RCON_ID" NUMBER,"CURRENT_BUILD_FILES" CLOB,"CURRENT_RUN_LEVEL" NUMBER,"PAUSE" NUMBER,"CURRENT_PKG_ID_BEING_BUILT" NUMBER,"KEEP_ALIVE" DATE,"CURRENT_PV_ID" NUMBER,"LAST_BUILD" DATE DEFAULT sysdate) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA"LOB ("CURRENT_BUILD_FILES") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10NOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."RCON_ID" IS 'Link to the Release_config table';COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_BUILD_FILES" IS 'The current build file. Set by the Master, consumed by the Slaves.';COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_RUN_LEVEL" IS 'Daemon indiactes its current state. 1:Cannot Continue, 2:Paused, 3:Active, 4:Idle, 5:Waiting, 6:Publishing';COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."PAUSE" IS 'The daemon should pause at the end of the current build.Null:Run, 1:Pause, 2:Disable';COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_PKG_ID_BEING_BUILT" IS 'pkg_id of the package currently being built';COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."KEEP_ALIVE" IS 'DateTime of the last database enquiry made by the daemon. Used to locate dead daemons.';COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_PV_ID" IS 'The PV_ID of the package currently being built.';COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."LAST_BUILD" IS 'The DateTime that the last build started. This does not include dummy builds. Used to determine unused daemons.';GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "DM_READONLY";---------------------------------------------------------- DDL for Table RUN_LEVEL_SCHEDULE--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"( "SCHEDULED_ID" NUMBER,"SCHEDULED_PAUSE" DATE,"SCHEDULED_RESUME" DATE,"REPEAT" CHAR(1 BYTE),"INDEFINITE_PAUSE" CHAR(1 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_ID" IS 'Unique entry identifier';COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_PAUSE" IS 'Start DateTime of the outage';COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_RESUME" IS 'End DateTime of the outage';COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."REPEAT" IS '0:Once, 1:Daily, 7:Weekly';COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."INDEFINITE_PAUSE" IS 'Non Null indicates indefinite pause';GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "DM_READONLY";---------------------------------------------------------- DDL for Table SDK_CONTENT--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."SDK_CONTENT"( "SDKTAG_ID" NUMBER,"PV_ID" NUMBER,"SDKPKG_STATE" CHAR(1 BYTE) DEFAULT '-') SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."SDKTAG_ID" IS 'Ref to SDK TAG';COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."PV_ID" IS 'Ref to Package Versions';COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."SDKPKG_STATE" IS 'Package State: -:Not exposed, E:Exposed';---------------------------------------------------------- DDL for Table SDK_NAMES--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."SDK_NAMES"( "SDK_ID" NUMBER,"SDK_NAME" VARCHAR2(50 BYTE),"SDK_COMMENT" VARCHAR2(4000 BYTE),"VIEW_ID" NUMBER,"PROJ_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_ID" IS 'Auto Created when row is created';COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_NAME" IS 'Name of the SDK';COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_COMMENT" IS 'User comment';COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."VIEW_ID" IS 'Base View for display';COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."PROJ_ID" IS 'Project ID for Security context';---------------------------------------------------------- DDL for Table SDK_TAGS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."SDK_TAGS"( "SDKTAG_ID" NUMBER,"SDKTAG_NAME" VARCHAR2(50 BYTE),"DESCRIPTION" VARCHAR2(4000 BYTE),"SDK_ID" NUMBER,"RTAG_ID" NUMBER,"CREATED_STAMP" TIMESTAMP (6) DEFAULT SYSTIMESTAMP,"CREATOR_ID" NUMBER,"STATE_STAMP" TIMESTAMP (6) DEFAULT SYSTIMESTAMP,"STATE_ID" NUMBER,"SDK_STATE" CHAR(1 BYTE) DEFAULT 'U') SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDKTAG_ID" IS 'Unique ID. Created automatically';COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDKTAG_NAME" IS 'Name of the SDK Version';COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."DESCRIPTION" IS 'General description';COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDK_ID" IS 'Parent SDK';COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."RTAG_ID" IS 'Release within which this SDK is maintained';COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."CREATED_STAMP" IS 'When created';COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."CREATOR_ID" IS 'Who Created the version';COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."STATE_STAMP" IS 'Time of last change to this version';COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."STATE_ID" IS 'User id who made the last state change';COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDK_STATE" IS 'State: U-Under Development; R-Released; D-Deprecated';---------------------------------------------------------- DDL for Table TEMP_ENV_DEPS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS"( "SESSION_NUM" NUMBER,"PV_ID" NUMBER,"PKG_ID" NUMBER,"V_EXT" VARCHAR2(50 BYTE),"DPV_ID" NUMBER,"DPKG_ID" NUMBER,"DV_EXT" VARCHAR2(50 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" IS 'This table is used in the creation of the package_state informationData in the table is temporary. It should be cleared out after its been used.Data will only be used for a few seconds.The table is used to map DPV_IDs to PV_IDs, but only for DPV_IDs that are of interest';---------------------------------------------------------- DDL for Table TEMP_ENV_STATES--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES"( "SESSION_NUM" NUMBER,"LEVEL_NUM" NUMBER,"PV_ID" NUMBER,"PKG_ID" NUMBER,"V_EXT" VARCHAR2(50 BYTE),"TES_STATE" NUMBER,"BUILD_TYPE" CHAR(1 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table TEMP_SASH--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."TEMP_SASH"( "RTAG_ID" NUMBER,"PROJ_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table TEMP_TREE_BROWSE--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."TEMP_TREE_BROWSE"( "SESSION_NUM" NUMBER,"LEVEL_NUM" NUMBER,"PV_ID" NUMBER,"PKG_ID" NUMBER,"V_EXT" VARCHAR2(50 BYTE),"DIRECTION" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table TEST_RUN--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."TEST_RUN"( "TESTRUN_ID" NUMBER,"BUILD_ID" NUMBER,"PLATFORM" VARCHAR2(50 BYTE),"TYPE" VARCHAR2(1 BYTE),"TEST_NAME" VARCHAR2(200 BYTE),"TEST_OUTCOME" VARCHAR2(20 BYTE),"TIME_TAKEN" NUMBER,"FAIL_MESSAGE" CLOB) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA"LOB ("FAIL_MESSAGE") STORE AS BASICFILE (TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTIONNOCACHE LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TESTRUN_ID" IS 'Unique Id. Used to generate a primary key.';COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."PLATFORM" IS 'Target Platform';COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TYPE" IS 'P or D';COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TEST_OUTCOME" IS 'PASS/FAIL/SKIP';COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TIME_TAKEN" IS 'Test Duration in milliseconds';COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."FAIL_MESSAGE" IS 'Failure Message';---------------------------------------------------------- DDL for Table TEST_TYPES--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."TEST_TYPES"( "TEST_TYPE_ID" NUMBER,"TEST_TYPE_NAME" VARCHAR2(50 BYTE),"DISPLAY_ORDER" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "RELEASE_MANAGER_READ";GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table UNIT_TESTS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."UNIT_TESTS"( "TEST_ID" NUMBER,"PV_ID" NUMBER,"TEST_TYPES_FK" NUMBER,"TEST_SUMMARY" VARCHAR2(4000 BYTE),"COMPLETION_DATE" DATE,"COMPLETED_BY" NUMBER,"RESULTS_URL" VARCHAR2(2000 BYTE),"RESULTS_ATTACHMENT_NAME" VARCHAR2(2000 BYTE),"TEST_ACCEPTED" CHAR(1 BYTE),"ACCEPTANCE_DATE" DATE,"ACCEPTED_BY" NUMBER,"REVIEW_COMMENTS" VARCHAR2(4000 BYTE),"NUMOF_TEST" VARCHAR2(50 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 31457280 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "RELEASE_MANAGER_READ";GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table VALIDATION_RULES_DELETE_ME--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME"( "FIELD_NAME" VARCHAR2(1000 BYTE),"IS_REQUIRED" CHAR(1 BYTE),"IS_NUMERIC" CHAR(1 BYTE),"MIN_NUMERIC_VALUE" NUMBER,"MAX_NUMERIC_VALUE" NUMBER,"IS_DATE" CHAR(1 BYTE),"START_DATE" DATE,"END_DATE" DATE,"MIN_STRING_LENGTH" NUMBER,"MAX_STRING_LENGTH" NUMBER,"REGEXP" VARCHAR2(4000 BYTE),"REGEXP_DESCRIPTION" VARCHAR2(50 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table VCS_TYPE--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."VCS_TYPE"( "VCS_TYPE_ID" NUMBER,"NAME" VARCHAR2(128 BYTE),"TAG" VARCHAR2(32 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "DM_READONLY";---------------------------------------------------------- DDL for Table VIEWS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."VIEWS"( "VIEW_ID" NUMBER,"VIEW_NAME" VARCHAR2(30 BYTE),"OWNER_ID" NUMBER,"BASE_VIEW" CHAR(1 BYTE),"PUBLIC_READ" CHAR(1 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON COLUMN "RELEASE_MANAGER"."VIEWS"."OWNER_ID" IS '0:Public';COMMENT ON COLUMN "RELEASE_MANAGER"."VIEWS"."BASE_VIEW" IS 'Y:Base View';GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table VIEW_DEF--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."VIEW_DEF"( "VIEW_ID" NUMBER,"PKG_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;COMMENT ON COLUMN "RELEASE_MANAGER"."VIEW_DEF"."VIEW_ID" IS 'Non Base View ID';COMMENT ON COLUMN "RELEASE_MANAGER"."VIEW_DEF"."PKG_ID" IS 'Package ID';COMMENT ON TABLE "RELEASE_MANAGER"."VIEW_DEF" IS 'Packages in a non-baseview';GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table VIEW_SETTINGS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."VIEW_SETTINGS"( "USER_ID" NUMBER,"VIEW_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table VTREES--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."VTREES"( "VTREE_ID" NUMBER,"PROJ_ID" NUMBER,"VTREE_NAME" VARCHAR2(50 BYTE),"HIDE" CHAR(1 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "RELEASE_MANAGER_READ";GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table VTREES_WORLD--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."VTREES_WORLD"( "WORLD_ID" NUMBER,"VTREE_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "RELEASE_MANAGER_READ";GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Table WORK_IN_PROGRESS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS"( "RTAG_ID" NUMBER,"PV_ID" NUMBER,"VIEW_ID" NUMBER) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Table WORLDS--------------------------------------------------------CREATE TABLE "RELEASE_MANAGER"."WORLDS"( "WORLD_ID" NUMBER,"WORLD_NAME" VARCHAR2(30 BYTE),"WORLD_DESC" VARCHAR2(255 BYTE)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "DM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for View ENVIRONMENT_VIEW--------------------------------------------------------CREATE OR REPLACE FORCE VIEW "RELEASE_MANAGER"."ENVIRONMENT_VIEW" ("ENV_AREA", "PV_ID", "RTAG_ID", "VIEW_ID", "PKG_STATE", "DEPRECATED_STATE", "INSERTOR_ID", "INSERT_STAMP", "OPERATION") ASSELECT 2 AS ENV_AREA,rc.PV_ID,rc.RTAG_ID,rc.BASE_VIEW_ID AS VIEW_ID,rc.PKG_STATE,rc.DEPRECATED_STATE,rc.INSERTOR_ID,rc.INSERT_STAMP,' ' AS OPERATIONFROM RELEASE_CONTENT rcUNIONSELECT 0 AS ENV_AREA,wip.PV_ID,wip.RTAG_ID,wip.VIEW_ID,NULL AS PKG_STATE,NULL AS DEPRECATED_STATE,NULL AS INSERTOR_ID,NULL AS INSERT_STAMP,' ' AS OPERATIONFROM WORK_IN_PROGRESS wipUNIONSELECT 1 AS ENV_AREA,pl.PV_ID,pl.RTAG_ID,pl.VIEW_ID,NULL AS PKG_STATE,NULL AS DEPRECATED_STATE,NULL AS INSERTOR_ID,NULL AS INSERT_STAMP,pl.operationFROM PLANNED pl;GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for View RM_PKG_ISSUES_ID--------------------------------------------------------CREATE OR REPLACE FORCE VIEW "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" ("ISS_ID", "PKG_VERSION") ASSELECT DISTINCT ISS_ID, PKG_VERSION FROM RM_PACKAGE_ISSUES WHERE ISS_ID IS NOT NULL;GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" TO "RM_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" TO "MS_READONLY";GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" TO "RELEASE_MANAGER_READ";---------------------------------------------------------- DDL for Index PK_LICENCES--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_LICENCES" ON "RELEASE_MANAGER"."LICENCES" ("LICENCE")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_PKG_BUILD_ENV--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PKG_BUILD_ENV" ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ("PV_ID", "BE_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index SDK_NAMES_UK1--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_NAMES_UK1" ON "RELEASE_MANAGER"."SDK_NAMES" ("SDK_NAME")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_PACKAGES--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGES" ON "RELEASE_MANAGER"."PACKAGES" ("PKG_NAME")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_PACKAGES_ALIAS--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_PACKAGES_ALIAS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID", "PKG_ID", "V_EXT")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index CODE_REVIEW_URL_PK--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."CODE_REVIEW_URL_PK" ON "RELEASE_MANAGER"."CODE_REVIEW_URL" ("CR_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index SDK_NAMES_PK--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_NAMES_PK" ON "RELEASE_MANAGER"."SDK_NAMES" ("SDK_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_ACTION_TIMESTAMP--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_TIMESTAMP" ON "RELEASE_MANAGER"."ACTION_LOG" ("ACTION_TIMESTAMP")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_UT_COMPLETED--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_UT_COMPLETED" ON "RELEASE_MANAGER"."UNIT_TESTS" ("COMPLETION_DATE", "COMPLETED_BY")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_PV_ID_PKGDOC--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_PV_ID_PKGDOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_VIEW_SETTINGS--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEW_SETTINGS" ON "RELEASE_MANAGER"."VIEW_SETTINGS" ("USER_ID", "VIEW_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_PP_PV_ID--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_PP_PV_ID" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PK_VIEWS--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_VIEWS" ON "RELEASE_MANAGER"."VIEWS" ("VIEW_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index CQ_USERS_PK--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_USERS_PK" ON "RELEASE_MANAGER"."CQ_USERS" ("DBID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PK_PACKAGES--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PACKAGES" ON "RELEASE_MANAGER"."PACKAGES" ("PKG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PK_TEST_TYPES--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_TEST_TYPES" ON "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_ACTTYPE_ID--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_ACTTYPE_ID" ON "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_PROJ_ACTION_DATE_TIME--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_DATE_TIME" ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ("ACTION_DATETIME")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_RC_PKG_STATE--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_RC_PKG_STATE" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("PKG_STATE")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGINGSTORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PROCESSES_PK--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."PROCESSES_PK" ON "RELEASE_MANAGER"."PROCESSES" ("PROC_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_PACKAGE_DEPS_DPV_ID--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPV_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGINGSTORAGE(INITIAL 75497472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PACKAGE_VERSIONS_RNOTE--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."PACKAGE_VERSIONS_RNOTE" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("RELEASE_NOTES_INFO")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;---------------------------------------------------------- DDL for Index INX_PACKAGES_PKG_VERSION--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_VERSION" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_VERSION")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGINGSTORAGE(INITIAL 10485760 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_PACKAGE_METRICS--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_METRICS" ON "RELEASE_MANAGER"."PACKAGE_METRICS" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_PLATFORM--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PLATFORM" ON "RELEASE_MANAGER"."PLATFORMS" ("NAME")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_VIEWS--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEWS" ON "RELEASE_MANAGER"."VIEWS" ("VIEW_NAME", "OWNER_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PRODUCT_STATES_PK--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."PRODUCT_STATES_PK" ON "RELEASE_MANAGER"."PRODUCT_STATES" ("STATE_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PK_MESSAGE_BOARD--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_MESSAGE_BOARD" ON "RELEASE_MANAGER"."MESSAGE_BOARD" ("MSG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PK_BUILD_MACHINE_CONFIG--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_BUILD_MACHINE_CONFIG" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ("BMCON_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_MSGBOARD--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_MSGBOARD" ON "RELEASE_MANAGER"."MESSAGE_BOARD" ("EXPIRY_DATE", "DUE_DATE")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PK_VTREES--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_VTREES" ON "RELEASE_MANAGER"."VTREES" ("VTREE_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_UT_PART1--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_UT_PART1" ON "RELEASE_MANAGER"."UNIT_TESTS" ("PV_ID", "TEST_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_BUILD_ENV--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV" ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_NAME")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PK_RUN_LEVEL--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_RUN_LEVEL" ON "RELEASE_MANAGER"."RUN_LEVEL" ("RCON_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_ACTION_DATE_TIME--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_DATE_TIME" ON "RELEASE_MANAGER"."ACTION_LOG" ("ACTION_DATETIME")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 92274688 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_BUILD_MACHINE_CONFIG02--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_MACHINE_CONFIG02" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ("MACHINE_HOSTNAME")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index CQ_SOFTWARE_ISSUE_INDEX6--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX6" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("NEW_NUM")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index BUILD_MACHINES_PK--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_MACHINES_PK" ON "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_TTB_SESSION--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_TTB_SESSION" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("SESSION_NUM")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_RTD--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."UNQ_RTD" ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ("PV_ID", "RTD_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index BUILD_PLAN_PK--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_PLAN_PK" ON "RELEASE_MANAGER"."BUILD_PLAN" ("RTAG_ID", "BUILD_ORDER", "PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index SDK_CONTENT_INDEX1--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."SDK_CONTENT_INDEX1" ON "RELEASE_MANAGER"."SDK_CONTENT" ("SDKTAG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index CQ_STATEDEF_PK--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_STATEDEF_PK" ON "RELEASE_MANAGER"."CQ_STATEDEF" ("ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_RL_RTAG_ID--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_RL_RTAG_ID" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("RTAG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_VIEW_DEF--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEW_DEF" ON "RELEASE_MANAGER"."VIEW_DEF" ("VIEW_ID", "PKG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_PACKAGES_PKG_NAME--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_NAME" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGINGSTORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_PCOMP_FK_PV_ID--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_PCOMP_FK_PV_ID" ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index DAEMON_INSTRUCTIONS_UK1--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS_UK1" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("OP_CODE", "RTAG_ID", "PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_FILE_NAME--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_FILE_NAME" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" (UPPER("FILE_NAME"))PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 1147142144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_IS_PATCH_IGNORE--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_IS_PATCH_IGNORE" ON "RELEASE_MANAGER"."IGNORE_WARNINGS" ("IS_PATCH_IGNORE")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PK_TEST_RUN--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."PK_TEST_RUN" ON "RELEASE_MANAGER"."TEST_RUN" ("TESTRUN_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_BUILD_ENV_DOCS--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV_DOCS" ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" ("BE_ID", "DOC_NUM")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_PROJ_ACTION_LOG_PROJ--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_LOG_PROJ" ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ("PROJ_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index LICENCING_PK--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."LICENCING_PK" ON "RELEASE_MANAGER"."LICENCING" ("PV_ID", "LICENCE")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index BUILD_SERVICE_CONFIG_INDEX1--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG_INDEX1" ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" ("SERVICE")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index RELEASE_MODIFIED_PK--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."RELEASE_MODIFIED_PK" ON "RELEASE_MANAGER"."RELEASE_MODIFIED" ("RTAG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index CQ_HISTORY_INDEX2--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."CQ_HISTORY_INDEX2" ON "RELEASE_MANAGER"."CQ_HISTORY" ("ENTITYDEF_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_TTB_LEVEL_NUM--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_TTB_LEVEL_NUM" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("LEVEL_NUM")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_WORK_IN_PROGRESS--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_WORK_IN_PROGRESS" ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" ("RTAG_ID", "PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_PACKAGES_V_NMM--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_NMM" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_NMM", "PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGINGSTORAGE(INITIAL 9437184 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index TEST_RUN_IDX_BUILD_ID--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."TEST_RUN_IDX_BUILD_ID" ON "RELEASE_MANAGER"."TEST_RUN" ("BUILD_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;---------------------------------------------------------- DDL for Index UNQ_PLANNED--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."UNQ_PLANNED" ON "RELEASE_MANAGER"."PLANNED" ("RTAG_ID", "PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_TES_PKGEXT--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_TES_PKGEXT" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("PKG_ID", "V_EXT")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGINGSTORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_BUILD_MACHINE_CONFIG01--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_MACHINE_CONFIG01" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" (LOWER("DISPLAY_NAME"))PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index CQ_SOFTWARE_ISSUE_INDEX2--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX2" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("STATE")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index TEMP_ENV_DEPS_PK--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."TEMP_ENV_DEPS_PK" ON "RELEASE_MANAGER"."TEMP_ENV_DEPS" ("PV_ID", "SESSION_NUM", "DPV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_RELEASE_LINKS--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_LINKS" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("RTAG_ID", "REF_RTAG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_PKG_DOC--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PKG_DOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID", "DOC_NUM")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index LXR_STATE_PK--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."LXR_STATE_PK" ON "RELEASE_MANAGER"."LXR_STATE" ("RTAG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index DAEMON_INSTRUCTIONS_PK--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS_PK" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("DAEMON_INSTRUCTIONS_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_DAEMON_INST_SCHED_DATETIME--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_SCHED_DATETIME" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("SCHEDULED_DATETIME")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_TTB_PKG--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_TTB_PKG" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("PKG_ID", "V_EXT")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PACKAGE_VERSIONS_MODIFER_ID--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."PACKAGE_VERSIONS_MODIFER_ID" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("MODIFIER_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_VALIDATION_RULES--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VALIDATION_RULES" ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" ("FIELD_NAME")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index BUILD_STANDARDS_ADDENDUM_PK--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM_PK" ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ("BSA_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_PV_OWNER_ID--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_PV_OWNER_ID" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("OWNER_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_TES_TES_STATE--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_TES_TES_STATE" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("TES_STATE")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGINGSTORAGE(INITIAL 458752 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_AN_PART1--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_AN_PART1" ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" ("PV_ID", "NOTE_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_RELEASE_CONTENTS--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_CONTENTS" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("RTAG_ID", "PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGINGSTORAGE(INITIAL 10485760 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_ACTION_LOG_PV_ID--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_LOG_PV_ID" ON "RELEASE_MANAGER"."ACTION_LOG" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_TEST_TYPE_NAME--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_TEST_TYPE_NAME" ON "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_NAME")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PEGGED_VERSIONS_INDEX1--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."PEGGED_VERSIONS_INDEX1" ON "RELEASE_MANAGER"."PEGGED_VERSIONS" ("RTAG_ID", "PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PKNOTE_MANAGER1--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."PKNOTE_MANAGER1" ON "RELEASE_MANAGER"."NOTE_MANAGER" ("NID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_PACKAGES_V_MM--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_MM" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_MM", "PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGINGSTORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_CODE_REVIEW--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_CODE_REVIEW" ON "RELEASE_MANAGER"."CODE_REVIEWS" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_VTREES--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VTREES" ON "RELEASE_MANAGER"."VTREES" ("PROJ_ID", "VTREE_NAME")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_PACKAGE_DEPS_PKG_ID--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PKG_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PKG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGINGSTORAGE(INITIAL 83886080 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_PROJECTS--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PROJECTS" ON "RELEASE_MANAGER"."PROJECTS" ("PROJ_NAME")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_PACKAGES_V_EXT--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_EXT" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_EXT")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGINGSTORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PK_PROJECTS--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PROJECTS" ON "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_TES_PV--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_TES_PV" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGINGSTORAGE(INITIAL 851968 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index CQ_SOFTWARE_ISSUE_INDEX5--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX5" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PRODUCT")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_VTREE_WORLD--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VTREE_WORLD" ON "RELEASE_MANAGER"."VTREES_WORLD" ("WORLD_ID", "VTREE_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_IGW--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_IGW" ON "RELEASE_MANAGER"."IGNORE_WARNINGS" ("RTAG_ID", "PV_ID", "DPV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_DAEMON_INST_RTAG_ID--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_RTAG_ID" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("RTAG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index SDK_TAGS_PK--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_TAGS_PK" ON "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index CQ_SOFTWARE_ISSUE_INDEX7--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX7" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("DEPENDANT_DEVIS")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PK_NOTIFICATION_HISTORY--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_NOTIFICATION_HISTORY" ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ("RTAG_ID", "PV_ID", "USER_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_PACKAGE_DEPENDENCIES--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_DEPENDENCIES" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PV_ID", "DPV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 100663296 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PACKAGE_PATCHES_INDEX1--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."PACKAGE_PATCHES_INDEX1" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PV_ID", "PATCH_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_DATA" ;---------------------------------------------------------- DDL for Index INX_PACKAGE_DEPS_PV_ID--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PV_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGINGSTORAGE(INITIAL 75497472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index BUILD_STANDARDS_PK--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_PK" ON "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_CQ--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_CQ" ON "RELEASE_MANAGER"."CQ_ISSUES" ("PV_ID", "ISS_ID", "ISS_DB")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_PACKAGE_VERSIONS--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_VERSIONS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID", "PKG_VERSION")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_PV_ID_TEST_ID_PKGDOC--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_PV_ID_TEST_ID_PKGDOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID", "TEST_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_PACKAGE_PATCHES--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_PATCHES" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PATCH_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGINGSTORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index CQ_SOFTWARE_ISSUE_INDEX3--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX3" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PACKAGE_REF")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index CQ_SOFTWARE_ISSUE_INDEX4--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX4" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PROJECT")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_REL_COMPONENTS--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_REL_COMPONENTS" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" ("PV_ID", "FILE_NAME", "FILE_PATH")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 3489660928 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PK_PACKAGE_VERSIONS--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PACKAGE_VERSIONS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_RELEASE_METRICS--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_METRICS" ON "RELEASE_MANAGER"."RELEASE_METRICS" ("RTAG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_BUILD_ORDER--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ORDER" ON "RELEASE_MANAGER"."BUILD_ORDER" ("RTAG_ID", "PV_ID", "STEP_NUM")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PK_BUILD_ENVIRONMENTS--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_BUILD_ENVIRONMENTS" ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index CQ_SOFTWARE_ISSUE_INDEX1--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX1" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("DBID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_PACKAGE_DEPS_DPKG_ID--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPKG_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPKG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGINGSTORAGE(INITIAL 83886080 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_RL_REFRTAG_ID--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_RL_REFRTAG_ID" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("REF_RTAG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_RC_BASE_VIEW_ID--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_RC_BASE_VIEW_ID" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("BASE_VIEW_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGINGSTORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_DAEMON_INST_PV_ID--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_PV_ID" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_PROJECT_EXT--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PROJECT_EXT" ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" ("PROJ_ID", "EXT_NAME")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index VCS_TYPE_PK--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."VCS_TYPE_PK" ON "RELEASE_MANAGER"."VCS_TYPE" ("VCS_TYPE_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_PC_FILE_NAME--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_PC_FILE_NAME" ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" (UPPER("FILE_NAME"))PCTFREE 10 INITRANS 2 MAXTRANS 167 COMPUTE STATISTICSSTORAGE(INITIAL 18874368 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PK_RELEASE_TAGS--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_RELEASE_TAGS" ON "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index FK_PROJ_ID_RELEASE_TAGS--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."FK_PROJ_ID_RELEASE_TAGS" ON "RELEASE_MANAGER"."RELEASE_TAGS" ("PROJ_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_RCOMP_PV_ID--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_RCOMP_PV_ID" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" ("PV_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 724566016 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index MICROSOFT_PK_DTPROPERTIES--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."MICROSOFT_PK_DTPROPERTIES" ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ("ID", "PROPERTY")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index BUILD_ID--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_ID" ON "RELEASE_MANAGER"."BUILD_INSTANCES" ("BUILD_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index INX_UT_PV_TEST_TYPE--------------------------------------------------------CREATE INDEX "RELEASE_MANAGER"."INX_UT_PV_TEST_TYPE" ON "RELEASE_MANAGER"."UNIT_TESTS" ("PV_ID", "TEST_TYPES_FK")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index PK_WORLDS--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_WORLDS" ON "RELEASE_MANAGER"."WORLDS" ("WORLD_ID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index CQ_HISTORY_INDEX1--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_HISTORY_INDEX1" ON "RELEASE_MANAGER"."CQ_HISTORY" ("DBID")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- DDL for Index UNQ_AN_PART2--------------------------------------------------------CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_AN_PART2" ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" ("PV_ID", "NOTE_TITLE")PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ;---------------------------------------------------------- Constraints for Table RELEASE_TAGS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" ADD CONSTRAINT "PK_RELEASE_TAGS" PRIMARY KEY ("RTAG_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("PROJ_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("PARENT_RTAG_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("REBUILD_STAMP" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("REBUILD_ENV" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("OFFICIAL" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("RTAG_NAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table PACKAGE_DOCUMENTS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("DOC_NUM" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("DOC_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("PV_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table AUTOBUILD_FAILURE--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD PRIMARY KEY ("GROUP_EMAIL_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" MODIFY ("GROUP_EMAIL_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table RELEASE_METRICS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" ADD CONSTRAINT "UNQ_RELEASE_METRICS" UNIQUE ("RTAG_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" MODIFY ("RTAG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table RELEASE_COMPONENTS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" MODIFY ("PV_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table SDK_CONTENT--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("SDKPKG_STATE" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("PV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("SDKTAG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table ACTION_TYPE--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" ADD CONSTRAINT "UNQ_ACTTYPE_ID" PRIMARY KEY ("ACTTYPE_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" MODIFY ("NAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table PLANNED--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "UNIQUE_PV_RTAG" UNIQUE ("PV_ID", "RTAG_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("VIEW_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("PV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("RTAG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table SDK_TAGS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_PK" PRIMARY KEY ("SDKTAG_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDK_STATE" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDK_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDKTAG_NAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDKTAG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table RELEASE_MODIFIED--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" ADD CONSTRAINT "RELEASE_MODIFIED_PK" PRIMARY KEY ("RTAG_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" MODIFY ("RTAG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table PACKAGE_METRICS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" ADD CONSTRAINT "UNQ_PACKAGE_METRICS" UNIQUE ("PV_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" MODIFY ("PV_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table PACKAGE_BUILD_ENV--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" MODIFY ("BE_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" MODIFY ("PV_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table PROCESSES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PROCESSES" ADD CONSTRAINT "PROCESSES_PK" PRIMARY KEY ("PROC_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."PROCESSES" MODIFY ("PROC_NAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PROCESSES" MODIFY ("PROC_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table BUILD_SERVICE_CONFIG--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" MODIFY ("CONFIG" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" MODIFY ("SERVICE" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table PROJECT_ACTION_LOG--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("PROJ_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("ACTION_DATETIME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table ARCHIVE_ACTION_LOG--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("DESCRIPTION" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("RTAG_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("DATE_TIME_STAMP" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table VTREES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."VTREES" ADD CONSTRAINT "PK_VTREES" PRIMARY KEY ("VTREE_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("HIDE" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("VTREE_NAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("PROJ_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("VTREE_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table GBE_MACHTYPE--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" ADD PRIMARY KEY ("GBE_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("BM_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("GBE_VALUE" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("GBE_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table PACKAGE_INTEREST--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("USER_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("PROJ_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("PKG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table PACKAGES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PACKAGES" ADD CONSTRAINT "PK_PACKAGES" PRIMARY KEY ("PKG_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."PACKAGES" MODIFY ("PKG_NAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGES" MODIFY ("PKG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table IGNORE_WARNINGS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("DPV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("PV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table PRODUCT_COMPONENTS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" MODIFY ("OS_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" MODIFY ("PV_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table TEST_TYPES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" ADD CONSTRAINT "PK_TEST_TYPES" PRIMARY KEY ("TEST_TYPE_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" MODIFY ("TEST_TYPE_NAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" MODIFY ("TEST_TYPE_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table MICROSOFTDTPROPERTIES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ADD CONSTRAINT "MICROSOFT_PK_DTPROPERTIES" PRIMARY KEY ("ID", "PROPERTY")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("VERSION" CONSTRAINT "MICROSOFT_NN_VERSION" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("PROPERTY" CONSTRAINT "MICROSOFT_NN_PROPERTY" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("ID" CONSTRAINT "MICROSOFT_NN_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table PRODUCT_STATES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" ADD CONSTRAINT "PRODUCT_STATES_PK" PRIMARY KEY ("STATE_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" MODIFY ("STATE" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" MODIFY ("STATE_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table CODE_REVIEWS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEWS" MODIFY ("PV_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table RELEASE_CONTENT--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("PKG_STATE" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("INSERTOR_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("INSERT_STAMP" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("BASE_VIEW_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("PV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("RTAG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table WORLDS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."WORLDS" ADD CONSTRAINT "PK_WORLDS" PRIMARY KEY ("WORLD_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."WORLDS" MODIFY ("WORLD_NAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."WORLDS" MODIFY ("WORLD_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table PEGGED_VERSIONS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" MODIFY ("PV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" MODIFY ("RTAG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table ABT_ACTION_LOG--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" MODIFY ("RCON_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table LICENCING--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD CONSTRAINT "LICENCING_PK" PRIMARY KEY ("PV_ID", "LICENCE")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."LICENCING" MODIFY ("LICENCE" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."LICENCING" MODIFY ("PV_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table DASH_BOARD--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("TOTAL_PACKAGES" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("AUTOMATED_PACKAGES" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("LAST_BUILD_TIME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("RTAG_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("PROJ_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table BUILD_INSTANCES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_ID" PRIMARY KEY ("BUILD_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("STATE" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("TIMESTAMP" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("PV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("RTAG_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("BUILD_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table NOTE_MANAGER--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."NOTE_MANAGER" ADD CONSTRAINT "PKNOTE_MANAGER1" PRIMARY KEY ("NID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."NOTE_MANAGER" MODIFY ("NID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table NOTIFICATION_HISTORY--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "PK_NOTIFICATION_HISTORY" PRIMARY KEY ("RTAG_ID", "PV_ID", "USER_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("DATE_TIME_STAMP" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("USER_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("PV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("RTAG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table ACTION_LOG--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTION_TIMESTAMP" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("PV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTION_DATETIME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table RELEASE_LINKS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" MODIFY ("REF_RTAG_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" MODIFY ("RTAG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table VTREES_WORLD--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" MODIFY ("VTREE_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" MODIFY ("WORLD_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table DAEMON_ACTION_LOG--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" MODIFY ("RCON_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table BUILD_STANDARDS_ADDENDUM--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ADD CONSTRAINT "BUILD_STANDARDS_ADDENDUM_PK" PRIMARY KEY ("BSA_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BS_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BSA_NAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BSA_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table BUILD_MACHINES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" ADD CONSTRAINT "BUILD_MACHINES_PK" PRIMARY KEY ("BM_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" MODIFY ("BM_NAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" MODIFY ("BM_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table PLATFORMS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PLATFORMS" MODIFY ("NAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PLATFORMS" MODIFY ("CODE" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table WORK_IN_PROGRESS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("VIEW_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("PV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("RTAG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table CQ_ISSUES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("MOD_DATE" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_STATE" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_DB" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("PV_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table BUILD_ORDER--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("PV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("STEP_NUM" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("RTAG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table VALIDATION_RULES_DELETE_ME--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" MODIFY ("IS_REQUIRED" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" MODIFY ("FIELD_NAME" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table CODE_REVIEW_URL--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PK" PRIMARY KEY ("CR_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("DATE_OF_REVIEW" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("URL" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("PROJ_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("PV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("CR_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table RELEASE_CONFIG--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD PRIMARY KEY ("RCON_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" MODIFY ("RTAG_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" MODIFY ("RCON_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table PACKAGE_PROCESSES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" MODIFY ("PROC_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" MODIFY ("PV_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table PACKAGE_BUILD_INFO--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" MODIFY ("BM_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" MODIFY ("PV_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table VIEW_SETTINGS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" MODIFY ("VIEW_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" MODIFY ("USER_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table DEPRECATED_PACKAGES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("COMMENTS" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("PKG_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("RTAG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table BUILD_PLAN--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."BUILD_PLAN" ADD CONSTRAINT "BUILD_PLAN_PK" PRIMARY KEY ("RTAG_ID", "BUILD_ORDER", "PV_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;---------------------------------------------------------- Constraints for Table MESSAGE_BOARD--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" ADD CONSTRAINT "PK_MESSAGE_BOARD" PRIMARY KEY ("MSG_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("SUBMITION_DATE" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("MSG_DETAILS" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("MSG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table VCS_TYPE--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" ADD CONSTRAINT "VCS_TYPE_PK" PRIMARY KEY ("VCS_TYPE_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("TAG" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("NAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("VCS_TYPE_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table RUN_LEVEL--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD CONSTRAINT "PK_RUN_LEVEL" PRIMARY KEY ("RCON_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" MODIFY ("RCON_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table DO_NOT_RIPPLE--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" MODIFY ("PV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" MODIFY ("RTAG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table CQ_SOFTWARE_ISSUE--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ADD CONSTRAINT "CQ_SOFTWARE_ISSUE_PK" PRIMARY KEY ("DBID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" MODIFY ("DBID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table LICENCES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."LICENCES" ADD CONSTRAINT "PK_LICENCES" PRIMARY KEY ("LICENCE")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."LICENCES" MODIFY ("NAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."LICENCES" MODIFY ("LICENCE" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table UNIT_TESTS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("TEST_TYPES_FK" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("PV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("TEST_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table CQ_STATEDEF--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."CQ_STATEDEF" ADD CONSTRAINT "CQ_STATEDEF_PK" PRIMARY KEY ("ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."CQ_STATEDEF" MODIFY ("ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table TEMP_ENV_STATES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("TES_STATE" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("PKG_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("PV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("LEVEL_NUM" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("SESSION_NUM" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table CQ_USERS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."CQ_USERS" ADD CONSTRAINT "CQ_USERS_PK" PRIMARY KEY ("DBID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."CQ_USERS" MODIFY ("DBID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table TEMP_ENV_DEPS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" ADD CONSTRAINT "TEMP_ENV_DEPS_PK" PRIMARY KEY ("PV_ID", "SESSION_NUM", "DPV_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("DPKG_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("DPV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("PKG_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("PV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("SESSION_NUM" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table RUN_LEVEL_SCHEDULE--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" ADD PRIMARY KEY ("SCHEDULED_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" MODIFY ("SCHEDULED_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table SDK_NAMES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_PK" PRIMARY KEY ("SDK_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_UK1" UNIQUE ("SDK_NAME")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("PROJ_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("VIEW_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("SDK_NAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("SDK_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table PROJECT_EXTENTIONS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PROJECT_EXTENTIONS" MODIFY ("EXT_NAME" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table MEMBERS_GROUP--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" MODIFY ("GROUP_EMAIL_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table TEST_RUN--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" ADD CONSTRAINT "PK_TEST_RUN" PRIMARY KEY ("TESTRUN_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TEST_OUTCOME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TEST_NAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TYPE" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("PLATFORM" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("BUILD_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TESTRUN_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table BUILD_STANDARDS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" ADD CONSTRAINT "BUILD_STANDARDS_PK" PRIMARY KEY ("BS_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" MODIFY ("BS_NAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" MODIFY ("BS_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table RUNTIME_DEPENDENCIES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("MOD_USER" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("MOD_DATE" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("PV_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table DAEMON_INSTRUCTIONS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_UK1" UNIQUE ("OP_CODE", "RTAG_ID", "PV_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_PK" PRIMARY KEY ("DAEMON_INSTRUCTIONS_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" MODIFY ("OP_CODE" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" MODIFY ("DAEMON_INSTRUCTIONS_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table PACKAGE_VERSIONS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PK_PACKAGE_VERSIONS" PRIMARY KEY ("PV_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("BUILD_TYPE" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("LAST_PV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("OWNER_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("CREATOR_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("MODIFIER_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("DLOCKED" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PKG_VERSION" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PKG_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PV_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table BUILD_ENV_DOCUMENTS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" MODIFY ("DOC_NUM" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" MODIFY ("BE_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table LXR_STATE--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" ADD CONSTRAINT "LXR_STATE_PK" PRIMARY KEY ("RTAG_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" MODIFY ("RTAG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table BUILD_MACHINE_CONFIG--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ADD CONSTRAINT "PK_BUILD_MACHINE_CONFIG" PRIMARY KEY ("BMCON_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("ACTIVE" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("GBE_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("MACHINE_HOSTNAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("DISPLAY_NAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("BMCON_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table ADVISORY_RIPPLE--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" MODIFY ("PV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" MODIFY ("RTAG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table PROJECTS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PROJECTS" ADD CONSTRAINT "PK_PROJECTS" PRIMARY KEY ("PROJ_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."PROJECTS" MODIFY ("PROJ_NAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PROJECTS" MODIFY ("PROJ_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table PACKAGE_PATCHES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("INSTALL_ORDER" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("PATCH_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("PV_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table PACKAGE_DEPENDENCIES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("BUILD_TYPE" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("DPKG_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("PKG_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("DPV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("PV_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table JIRA_ISSUES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."JIRA_ISSUES" MODIFY ("PV_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table ADDITIONAL_NOTES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("MOD_USER" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("MOD_DATE" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("NOTE_TITLE" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("PV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("NOTE_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table ARCHIVE_DATA--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" MODIFY ("PV_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" MODIFY ("RTAG_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table BUILD_ENVIRONMENTS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ADD CONSTRAINT "PK_BUILD_ENVIRONMENTS" PRIMARY KEY ("BE_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" MODIFY ("BE_NAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" MODIFY ("BE_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table VIEWS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."VIEWS" ADD CONSTRAINT "PK_VIEWS" PRIMARY KEY ("VIEW_ID")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "RELEASE_MANAGER_INDX" ENABLE;ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("PUBLIC_READ" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("BASE_VIEW" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("OWNER_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("VIEW_NAME" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("VIEW_ID" NOT NULL ENABLE);---------------------------------------------------------- Constraints for Table VIEW_DEF--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."VIEW_DEF" MODIFY ("PKG_ID" NOT NULL ENABLE);ALTER TABLE "RELEASE_MANAGER"."VIEW_DEF" MODIFY ("VIEW_ID" NOT NULL ENABLE);---------------------------------------------------------- Ref Constraints for Table ABT_ACTION_LOG--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" ADD FOREIGN KEY ("RCON_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table ACTION_LOG--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" ADD CONSTRAINT "ACTION_LOG_FK1" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" ADD CONSTRAINT "REFACTION_TYPE48" FOREIGN KEY ("ACTTYPE_ID")REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table ADDITIONAL_NOTES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" ADD CONSTRAINT "FK_ADDITION_REF_PV_ID" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table ADVISORY_RIPPLE--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" ADD FOREIGN KEY ("RTAG_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" ADD FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table AUTOBUILD_FAILURE--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD FOREIGN KEY ("PROJ_ID")REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD FOREIGN KEY ("VIEW_ID")REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table BUILD_ENV_DOCUMENTS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" ADD CONSTRAINT "FK_BUILD_E_DOCS_REF_BUILD_ENV" FOREIGN KEY ("BE_ID")REFERENCES "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table BUILD_INSTANCES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_INSTANCES_FK1" FOREIGN KEY ("RTAG_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_INSTANCES_FK2" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;---------------------------------------------------------- Ref Constraints for Table BUILD_MACHINE_CONFIG--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ADD CONSTRAINT "FK_BM_GBE_ID" FOREIGN KEY ("GBE_ID")REFERENCES "RELEASE_MANAGER"."GBE_MACHTYPE" ("GBE_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table BUILD_ORDER--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" ADD CONSTRAINT "FK_BO_PV_ID" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" ADD CONSTRAINT "FK_BO_RTAG_ID" FOREIGN KEY ("RTAG_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table BUILD_PLAN--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."BUILD_PLAN" ADD CONSTRAINT "BUILD_PLAN_FK1" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;ALTER TABLE "RELEASE_MANAGER"."BUILD_PLAN" ADD CONSTRAINT "BUILD_PLAN_FK2" FOREIGN KEY ("RTAG_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;---------------------------------------------------------- Ref Constraints for Table BUILD_STANDARDS_ADDENDUM--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ADD CONSTRAINT "BUILD_STANDARDS_ADDENDUM_R01" FOREIGN KEY ("BS_ID")REFERENCES "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table CODE_REVIEWS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEWS" ADD CONSTRAINT "FK_CODE_REV_REF_PV_ID" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table CODE_REVIEW_URL--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PACKAGE_V_FK1" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PROJECT_V_FK1" FOREIGN KEY ("PROJ_ID")REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table CQ_ISSUES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" ADD CONSTRAINT "FK_CQ_PV_ID" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table DAEMON_ACTION_LOG--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" ADD FOREIGN KEY ("RCON_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" ADD FOREIGN KEY ("ACTTYPE_ID")REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table DAEMON_INSTRUCTIONS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_PV_ID_FK" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_RTAG_ID_FK" FOREIGN KEY ("RTAG_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table DASH_BOARD--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" ADD FOREIGN KEY ("PROJ_ID")REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" ADD FOREIGN KEY ("RTAG_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table DO_NOT_RIPPLE--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" ADD FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" ADD FOREIGN KEY ("RTAG_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table GBE_MACHTYPE--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" ADD CONSTRAINT "GBE_MACHTYPE_BUILD_MACHIN_FK1" FOREIGN KEY ("BM_ID")REFERENCES "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table IGNORE_WARNINGS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_DPV_ID" FOREIGN KEY ("DPV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_PV_ID" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_RTAG_ID" FOREIGN KEY ("RTAG_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table JIRA_ISSUES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."JIRA_ISSUES" ADD CONSTRAINT "FK_JIRA_PV_ID" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table LICENCING--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD FOREIGN KEY ("LICENCE")REFERENCES "RELEASE_MANAGER"."LICENCES" ("LICENCE") ENABLE;---------------------------------------------------------- Ref Constraints for Table LXR_STATE--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" ADD CONSTRAINT "LXR_STATE_FK1" FOREIGN KEY ("RTAG_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;---------------------------------------------------------- Ref Constraints for Table MEMBERS_GROUP--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" ADD FOREIGN KEY ("GROUP_EMAIL_ID")REFERENCES "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ("GROUP_EMAIL_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table NOTIFICATION_HISTORY--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "FK_NH_RTAG_ID" FOREIGN KEY ("RTAG_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "FK_NK_PV_ID" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") DISABLE;---------------------------------------------------------- Ref Constraints for Table PACKAGE_BUILD_ENV--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ADD CONSTRAINT "FK_PKG_BUILD_E_REF_BUILD_ENV" FOREIGN KEY ("BE_ID")REFERENCES "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ADD CONSTRAINT "FK_PKG_BUILD_E_REF_PKG_VERSION" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table PACKAGE_BUILD_INFO--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" ADD FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" ADD FOREIGN KEY ("BM_ID")REFERENCES "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table PACKAGE_DEPENDENCIES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK1" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK2" FOREIGN KEY ("DPV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK3" FOREIGN KEY ("DPKG_ID")REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ON DELETE CASCADE ENABLE;ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK4" FOREIGN KEY ("PKG_ID")REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ON DELETE CASCADE ENABLE;---------------------------------------------------------- Ref Constraints for Table PACKAGE_DOCUMENTS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ADD CONSTRAINT "FK_PKGDOCS_REF_PV" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table PACKAGE_INTEREST--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" ADD FOREIGN KEY ("PROJ_ID")REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table PACKAGE_METRICS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" ADD CONSTRAINT "FK_PACKAGE_METRICS_PV_ID" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table PACKAGE_PATCHES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" ADD CONSTRAINT "FK_PP_PATCH_ID" FOREIGN KEY ("PATCH_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" ADD CONSTRAINT "FK_PP_PV_ID" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table PACKAGE_PROCESSES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" ADD CONSTRAINT "PACKAGE_PROCESSES_R01" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" ADD CONSTRAINT "PACKAGE_PROCESSES_R02" FOREIGN KEY ("PROC_ID")REFERENCES "RELEASE_MANAGER"."PROCESSES" ("PROC_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table PACKAGE_VERSIONS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PACKAGE_VERSIONS_VCS_TYPE" FOREIGN KEY ("VCS_TYPE_ID")REFERENCES "RELEASE_MANAGER"."VCS_TYPE" ("VCS_TYPE_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PKG_NAME_EXISTS" FOREIGN KEY ("PKG_ID")REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD FOREIGN KEY ("BS_ID")REFERENCES "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table PEGGED_VERSIONS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" ADD CONSTRAINT "PEGGED_VERSIONS_PACKAG_FK1" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" ADD CONSTRAINT "PEGGED_VERSIONS_RELEAS_FK1" FOREIGN KEY ("RTAG_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table PLANNED--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFPACKAGE_VERSIONS54" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFRELEASE_TAGS53" FOREIGN KEY ("RTAG_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFVIEWS55" FOREIGN KEY ("VIEW_ID")REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table PLANNED_VERSIONS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PLANNED_VERSIONS" ADD FOREIGN KEY ("PKG_ID")REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table PRODUCT_COMPONENTS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" ADD CONSTRAINT "REFPACKAGE_VERSIONS49" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table PROJECT_ACTION_LOG--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ADD CONSTRAINT "REFACTION_TYPE63" FOREIGN KEY ("ACTTYPE_ID")REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ADD FOREIGN KEY ("RTAG_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") DISABLE;---------------------------------------------------------- Ref Constraints for Table RELEASE_COMPONENTS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" ADD CONSTRAINT "FK_RCONT_PV_ID" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table RELEASE_CONFIG--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD FOREIGN KEY ("RTAG_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD FOREIGN KEY ("GBE_ID")REFERENCES "RELEASE_MANAGER"."GBE_MACHTYPE" ("GBE_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table RELEASE_CONTENT--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD CONSTRAINT "RELEASE_CONTENT_FK1" FOREIGN KEY ("SDKTAG_ID")REFERENCES "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD FOREIGN KEY ("PKG_ID")REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD FOREIGN KEY ("PRODUCT_STATE")REFERENCES "RELEASE_MANAGER"."PRODUCT_STATES" ("STATE_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table RELEASE_LINKS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" ADD CONSTRAINT "REFRELEASE_TAGS56" FOREIGN KEY ("RTAG_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" ADD CONSTRAINT "REFRELEASE_TAGS58" FOREIGN KEY ("REF_RTAG_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table RELEASE_METRICS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" ADD CONSTRAINT "FK_RELEASE_METRICS_RTAG_ID" FOREIGN KEY ("RTAG_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table RELEASE_MODIFIED--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" ADD CONSTRAINT "RELEASE_MODIFIED_RELEASE__FK1" FOREIGN KEY ("RTAG_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;---------------------------------------------------------- Ref Constraints for Table RUNTIME_DEPENDENCIES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ADD CONSTRAINT "FK_RTD_PV_ID" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ADD CONSTRAINT "FK_RTD_RTD_ID" FOREIGN KEY ("RTD_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table RUN_LEVEL--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD FOREIGN KEY ("RCON_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD FOREIGN KEY ("CURRENT_PKG_ID_BEING_BUILT")REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table SDK_CONTENT--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" ADD CONSTRAINT "SDK_CONTENT_FK1" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" ADD CONSTRAINT "SDK_CONTENT_FK2" FOREIGN KEY ("SDKTAG_ID")REFERENCES "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table SDK_NAMES--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_FK1" FOREIGN KEY ("VIEW_ID")REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_FK2" FOREIGN KEY ("PROJ_ID")REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table SDK_TAGS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_FK1" FOREIGN KEY ("SDK_ID")REFERENCES "RELEASE_MANAGER"."SDK_NAMES" ("SDK_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_FK2" FOREIGN KEY ("RTAG_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table TEST_RUN--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" ADD CONSTRAINT "TEST_RUN_FK1" FOREIGN KEY ("BUILD_ID")REFERENCES "RELEASE_MANAGER"."BUILD_INSTANCES" ("BUILD_ID") ON DELETE CASCADE ENABLE;---------------------------------------------------------- Ref Constraints for Table UNIT_TESTS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" ADD CONSTRAINT "FK_UT_REF_PV_ID" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" ADD CONSTRAINT "FK_UT_REF_TEST_TYPES" FOREIGN KEY ("TEST_TYPES_FK")REFERENCES "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table VTREES_WORLD--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" ADD CONSTRAINT "FK_VW_REF_VTREE_ID" FOREIGN KEY ("VTREE_ID")REFERENCES "RELEASE_MANAGER"."VTREES" ("VTREE_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" ADD CONSTRAINT "FK_VW_REF_WORLD_ID" FOREIGN KEY ("WORLD_ID")REFERENCES "RELEASE_MANAGER"."WORLDS" ("WORLD_ID") ENABLE;---------------------------------------------------------- Ref Constraints for Table WORK_IN_PROGRESS--------------------------------------------------------ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFPACKAGE_VERSIONS51" FOREIGN KEY ("PV_ID")REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFRELEASE_TAGS50" FOREIGN KEY ("RTAG_ID")REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFVIEWS52" FOREIGN KEY ("VIEW_ID")REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;---------------------------------------------------------- DDL for Trigger TRIGGER_BSA_ID--------------------------------------------------------CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_BSA_ID"BEFORE INSERT ON BUILD_STANDARDS_ADDENDUMfor each rowBEGINselect SEQ_BSA_ID.nextvalinto :new.BSA_IDfrom DUAL;END;/ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_BSA_ID" ENABLE;---------------------------------------------------------- DDL for Trigger TRIGGER_BUILD_INSTANCE--------------------------------------------------------CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_BUILD_INSTANCE"BEFORE INSERT ON BUILD_INSTANCESfor each rowBEGINselect SEQ_BUILD_INSTANCE.nextvalinto :new.BUILD_IDfrom DUAL;END;/ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_BUILD_INSTANCE" ENABLE;---------------------------------------------------------- DDL for Trigger TRIGGER_SDK_NAMES--------------------------------------------------------CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_NAMES"BEFORE INSERT ON SDK_NAMESfor each rowBEGINselect SEQ_SDK_ID.nextvalinto :new.SDK_IDfrom DUAL;END;/ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_NAMES" ENABLE;---------------------------------------------------------- DDL for Trigger TRIGGER_SDK_TAGS--------------------------------------------------------CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_TAGS"BEFORE INSERT ON SDK_TAGSfor each rowBEGINselect SEQ_SDKTAG_ID.nextvalinto :new.SDKTAG_IDfrom DUAL;END;/ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_TAGS" ENABLE;---------------------------------------------------------- DDL for Trigger TRIGGER_TEST_RUNS--------------------------------------------------------CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_TEST_RUNS"BEFORE INSERT ON TEST_RUNfor each rowBEGINselect SEQ_TESTRUN_ID.nextvalinto :new.TESTRUN_IDfrom DUAL;END;/ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_TEST_RUNS" ENABLE;---------------------------------------------------------- DDL for Function CAN_EDIT_PKG_IN_PROJECT--------------------------------------------------------CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."CAN_EDIT_PKG_IN_PROJECT" ( nPvId IN NUMBER, nRtagId IN NUMBER ) RETURN NUMBER IS-- Returns 0 : Package is not editable in this Release-- 1 : Package is editable in this release/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */VExt PACKAGE_VERSIONS.V_EXT%TYPE;ProjId NUMBER;RowCount NUMBER;cReleaseMode CHAR(1);BEGIN/*--------------- Business Rules Here -------------------*/IF (nRtagId IS NULL) OR (nRtagId < 1)THENRETURN 0;END IF;/*-------------------------------------------------------*//*-- First Check. See if package is used through release reference --*/SELECT COUNT(rc.PV_ID) INTO RowCountFROM (SELECT rl.REF_RTAG_IDFROM RELEASE_LINKS rlWHERE rl.RTAG_ID = nRtagId) rl,RELEASE_CONTENT rcWHERE rc.RTAG_ID = rl.REF_RTAG_IDAND rc.PV_ID = nPvId;-- Decide if package can be editedIF RowCount > 0 THEN-- Package is referenced from other release, hence cannot be editedRETURN 0;END IF;-- Check if the package is included through an SDK referenceSELECT count(*) INTO RowCountFROM RELEASE_CONTENT rcWHERE rc.RTAG_ID = nRtagIdAND rc.PV_ID = nPvIdAND rc.SDKTAG_ID is not NULL ;IF RowCount > 0 THEN-- Package is imported via SDKRETURN 0;END IF;-- Pegged packages can be edited. Other checking needs to be done-- -- Check if the package is pegged-- SELECT count(*) INTO RowCount-- FROM pegged_versions-- WHERE RTAG_ID = nRtagId-- AND PV_ID = nPvId;-- IF RowCount > 0 THEN-- -- Package is Pegged-- RETURN 0;-- END IF;-- Check is only done for releases in restrictive modeSELECT rt.OFFICIAL INTO cReleaseModeFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nRtagId;IF cReleaseMode = 'N' OR cReleaseMode = 'R' OR cReleaseMode = 'C' THEN-- Do not do any further checking,-- Package is editable hereRETURN 1;END IF;/*-- Further checking --*/-- Get proj_idSELECT rt.PROJ_ID INTO ProjIdFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nRtagId;BEGIN-- Get v_extSELECT pv.V_EXT INTO VextFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = nPvId;EXCEPTIONWHEN NO_DATA_FOUND THENVext := NULL;END;--Temp Hack for Step ProjectIF ProjId != 281 THEN-- Find if package can be edited in this projectSELECT COUNT(pe.EXT_NAME) INTO RowCountFROM PROJECT_EXTENTIONS peWHERE pe.PROJ_ID != ProjIdAND pe.EXT_NAME = VExt;END IF;-- Decide if package can be editedIF RowCount > 0 THEN-- Package extension is found in other projects, hence NOT EDITABLERETURN 0;ELSERETURN 1;END IF;END CAN_EDIT_PKG_IN_PROJECT;/---------------------------------------------------------- DDL for Function DT_ADDUSEROBJECT--------------------------------------------------------CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."DT_ADDUSEROBJECT" RETURN NUMBER IS NEWOBJECTID NUMBER; BEGIN /* GET THE NEXT VALUE FROM THE SEQUENCE FOR THE OBJECT ID */ SELECT MICROSOFTSEQDTPROPERTIES.NEXTVAL INTO NEWOBJECTID FROM DUAL; /* ADD THE PARENT NODE FOR THE NEW OBJECT */ INSERT INTO MICROSOFTDTPROPERTIES ( ID, OBJECTID, PROPERTY ) VALUES ( NEWOBJECTID, NEWOBJECTID, 'DtgSchemaOBJECT' ); RETURN( NEWOBJECTID ); END DT_ADDUSEROBJECT;/---------------------------------------------------------- DDL for Function GET_AUTOMATED_LABEL--------------------------------------------------------CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_AUTOMATED_LABEL" ( nPvId IN NUMBER ) RETURN VARCHAR2 IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */sPkgName VARCHAR2(4000);sPkgVersion VARCHAR2(4000);sVext VARCHAR2(4000);cChangeType CHAR;cBuildType CHAR;BEGIN-- Get package detailsSELECT pkg.PKG_NAME, pv.V_EXT, pv.build_type, pv.change_type, pv.pkg_version INTO sPkgName, sVext,cBuildType, cChangeType, sPkgVersionFROM PACKAGE_VERSIONS pv,PACKAGES pkgWHERE pv.PKG_ID = pkg.PKG_IDAND pv.PV_ID = nPvId;-- Generate Label for manually built packageIf cBuildType = 'M' Thenreturn (sPkgName ||'_'|| sPkgVersion );End If;-- Generate Label for automated build with specified package versionIF cchangetype = 'F' Thenreturn (sPkgName ||'_'|| sPkgVersion ||'.WIP');End If;-- Generate Label for automated buildRETURN UPPER( sPkgName ||'.'|| nPvId || sVext ||'.WIP' );END GET_AUTOMATED_LABEL;/---------------------------------------------------------- DDL for Function GET_BUILD_NUMBER--------------------------------------------------------CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_BUILD_NUMBER" (s_version IN VARCHAR2) RETURN VARCHAR2IS/* ---------------------------------------------------------------------------Version: 1.0.0--------------------------------------------------------------------------- */BEGINIF is_number(s_version) AND LENGTH(s_version) > 3THENRETURN MOD(TO_NUMBER(s_version), 1000);ELSERETURN 0;END IF;END get_build_number;/---------------------------------------------------------- DDL for Function GET_PATCH_VERSION--------------------------------------------------------CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_PATCH_VERSION" (s_version IN VARCHAR2) RETURN VARCHAR2IS/* ---------------------------------------------------------------------------Version: 1.0.0--------------------------------------------------------------------------- */BEGINIF is_number(s_version) AND LENGTH(s_version) > 3THENRETURN FLOOR(TO_NUMBER(s_version) / 1000);ELSERETURN s_version;END IF;END get_patch_version;/---------------------------------------------------------- DDL for Function GET_PV_FIRST_MODIFIED--------------------------------------------------------CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" (v_pv_id NUMBER) RETURN DATE ISret DATE;BEGINSELECT q.modified_stampINTO retFROM (SELECT level AS lvl, pvc.pv_id, pvc.modified_stamp, pvc.change_typeFROM package_versions pvcSTART WITH pvc.pv_id = v_pv_idCONNECT BY NOCYCLE pvc.pv_id = PRIOR pvc.last_pv_id) QWHERE q.change_type IS NOT NULLAND rownum = 1ORDER BY q.lvl;RETURN ret;END;/GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "RM_READONLY";GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "DM_READONLY";GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Function GET_V_EXT--------------------------------------------------------CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_V_EXT" (SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE) RETURN VARCHAR2 IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;lastDot NUMBER;BEGINlastDot := INSTR (SSpkg_version, '.', -1);IF ( lastDot > 0 ) AND ( lastDot != LENGTH(SSpkg_version) )THEN-- YES dot separator found --SSV_EXT := SUBSTR (SSpkg_version, lastDot, LENGTH(SSpkg_version)-lastDot+1);IF IS_VERSION_EXTENSION ( SSV_EXT )THENRETURN SSV_EXT;ELSERETURN NULL;END IF;ELSE-- NO dot separator found --RETURN NULL;END IF;END GET_V_EXT;/---------------------------------------------------------- DDL for Function IN_LIST_NUMBER--------------------------------------------------------CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER" ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */sync_rtags RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();pos NUMBER;in_list VARCHAR2(4000) := sInList || ',';BEGINIF NOT sInList IS NULLTHENLOOPEXIT WHEN in_list IS NULL;pos := INSTR ( in_list, ',' );sync_rtags.extend;sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );in_list := SUBSTR ( in_list, pos+1 );END LOOP;END IF;RETURN sync_rtags;END IN_LIST_NUMBER;/---------------------------------------------------------- DDL for Function IN_LIST_NUMBER2--------------------------------------------------------CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER2" ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */sync_rtags RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();pos NUMBER;in_list VARCHAR2(32767) := sInList || ',';BEGINIF NOT sInList IS NULLTHENLOOPEXIT WHEN in_list IS NULL;pos := INSTR ( in_list, ',' );sync_rtags.extend;sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );in_list := SUBSTR ( in_list, pos+1 );END LOOP;END IF;RETURN sync_rtags;END IN_LIST_NUMBER2;/---------------------------------------------------------- DDL for Function IN_LIST_VARCHAR2--------------------------------------------------------CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_VARCHAR2" ( sInList IN VARCHAR2, cSeparator IN VARCHAR2 ) RETURN RELMGR_VARCHAR2_TAB_t IS/* ---------------------------------------------------------------------------Version: 3.1--------------------------------------------------------------------------- */cItemCollection RELMGR_VARCHAR2_TAB_t := RELMGR_VARCHAR2_TAB_t();pos NUMBER;in_list VARCHAR2(4000) := sInList || cSeparator;val VARCHAR2(4000);BEGINIF NOT sInList IS NULLTHENLOOPEXIT WHEN in_list IS NULL;pos := INSTR ( in_list, cSeparator );val := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );IF (NOT val IS NULL) THENcItemCollection.extend;cItemCollection(cItemCollection.count) := val;END IF;in_list := SUBSTR ( in_list, pos+1 );END LOOP;END IF;RETURN cItemCollection;END IN_LIST_VARCHAR2;/---------------------------------------------------------- DDL for Function IS_NUMBER--------------------------------------------------------CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IS_NUMBER" (p_val IN VARCHAR2) RETURN BOOLEANIStemp_num NUMBER;/* ---------------------------------------------------------------------------Version: 1.0.0--------------------------------------------------------------------------- */BEGINtemp_num := TO_NUMBER(p_val);RETURN true;EXCEPTION WHEN VALUE_ERROR THENRETURN false;END IS_NUMBER;/---------------------------------------------------------- DDL for Function IS_VERSION_EXTENSION--------------------------------------------------------CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IS_VERSION_EXTENSION" (SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE) RETURN BOOLEANIS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */BEGINIF LENGTH ( TRIM (TRANSLATE (SSV_EXT, '.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',' ') ) ) > 0THENRETURN FALSE;ELSERETURN TRUE;END IF;END IS_VERSION_EXTENSION;/---------------------------------------------------------- DDL for Function ORA_SYSDATE--------------------------------------------------------CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."ORA_SYSDATE"RETURN DATEIS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */BEGINRETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY' ),'DD-MON-YYYY' );END ORA_SYSDATE;/---------------------------------------------------------- DDL for Function ORA_SYSDATETIME--------------------------------------------------------CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."ORA_SYSDATETIME"RETURN DATEIS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */BEGINRETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY HH24:MI:SS' ),'DD-MON-YYYY HH24:MI:SS' );END ORA_SYSDATETIME;/---------------------------------------------------------- DDL for Function PERL_DBD_TESTFUNC--------------------------------------------------------CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."PERL_DBD_TESTFUNC" (a in integer, b in integer) return integer is c integer; begin if b is null then c := 0; else c := b; end if; return a * c + 1; end;/---------------------------------------------------------- DDL for Function RELEASE_MODE--------------------------------------------------------CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."RELEASE_MODE" ( nRtagId IN NUMBER ) RETURN CHAR IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */returnValue CHAR(1);BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/-- Get release modeSELECT rt.OFFICIAL INTO returnValueFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nRtagId;RETURN returnValue;END RELEASE_MODE;/---------------------------------------------------------- DDL for Package PK_APP_UTILS--------------------------------------------------------CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_APP_UTILS" IS/*------------------------------|| Last Modified: S.Vukovic|| Modified Date: 26/Apr/2005|| Spec Version: 1.0------------------------------*/TYPE typeCur IS REF CURSOR;/*================================================================================================*/PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur);/*================================================================================================*/END PK_APP_UTILS;/GRANT EXECUTE ON "RELEASE_MANAGER"."PK_APP_UTILS" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Package PK_BUILDAPI--------------------------------------------------------CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_BUILDAPI"IS/*================================================================================================*/PROCEDURE add_product_component (npvid IN NUMBER,sosname IN VARCHAR2,sorigfilepath IN VARCHAR2,sfilename IN VARCHAR2,sdestfilepath IN VARCHAR2,nbytesize IN NUMBER,scrccksum IN VARCHAR2);PROCEDURE remove_all_product_components (npvid IN NUMBER,sosname IN VARCHAR2);/*================================================================================================*/FUNCTION get_osid (sosname IN VARCHAR2)RETURN NUMBER;/*================================================================================================*/PROCEDURE update_build_service_info (sdatabaseserver IN VARCHAR2,sarchiveserver IN VARCHAR2,smailserver IN VARCHAR2,smailsender IN VARCHAR2,faultmlist IN VARCHAR2,sdiskspace IN VARCHAR2,ssbommanagement IN VARCHAR2,lxrserver IN VARCHAR2);/*================================================================================================*/PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2, sgbeclass IN NUMBER);/*================================================================================================*/PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER);/*================================================================================================*/PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2, sgbeclass IN NUMBER);/*================================================================================================*/PROCEDURE add_buildmachine (sbmvalue IN VARCHAR2);/*================================================================================================*/PROCEDURE remove_buildmachine (nbm_id IN NUMBER);/*================================================================================================*/PROCEDURE update_buildmachine (nbm_id IN NUMBER, sbmvalue IN VARCHAR2);/*================================================================================================*/PROCEDURE delete_daemon (srconidlist IN VARCHAR2);/*================================================================================================*/PROCEDURE remove_daemon (srconidlist IN VARCHAR2);/*================================================================================================*/PROCEDURE insert_schedule_info (dschedulepause IN DATE,dscheduleresume IN DATE,crepeat IN VARCHAR2,cindefinitepause IN VARCHAR2);/*================================================================================================*/PROCEDURE delete_schedule (nscheduleid IN NUMBER);/*================================================================================================*/PROCEDURE set_infinite_pause;/*================================================================================================*/PROCEDURE set_resume;/*================================================================================================*/PROCEDURE delete_out_of_date_schedule;/*================================================================================================*/PROCEDURE set_daemon_resume (nrconid IN NUMBER);/*================================================================================================*/PROCEDURE set_daemon_pause (nrconid IN NUMBER);/*================================================================================================*/PROCEDURE set_daemon_disable (nrconid NUMBER);/*================================================================================================*/PROCEDURE set_daemon_states (nrtagid NUMBER, nstate NUMBER);/*================================================================================================*/PROCEDURE mark_daemon_inst_in_progress( nInstId IN NUMBER );/*================================================================================================*/PROCEDURE mark_daemon_inst_completed( nInstId IN NUMBER );/*================================================================================================*/FUNCTION get_daemon_inst(nRtag_id IN NUMBER,nInst_id IN OUT NUMBER,nOp_code IN OUT NUMBER,nPv_id OUT NUMBER,nUser_id OUT NUMBER,nInProgress OUT NUMBER) RETURN NUMBER;/*================================================================================================*/PROCEDURE cleanup_stranded_daemon_insts;/*================================================================================================*/PROCEDURE insert_daemon_inst(nOp_code IN NUMBER,nRtag_id IN NUMBER,nPv_id IN NUMBER,nSchedDate IN DATE,nRepeatSecs IN NUMBER,nAddedDate IN DATE,nUser_id IN NUMBER);/*================================================================================================*/PROCEDURE del_daemon_inst( nInstId IN NUMBER );/*================================================================================================*/PROCEDURE del_daemon_inst_by_rtag_pvid(nOp_code IN NUMBER,nRtag_id IN NUMBER,nPv_id IN NUMBER);/*================================================================================================*/PROCEDURE update_daemon_inst(nInstId IN NUMBER,nOp_code IN NUMBER,nRtag_id IN NUMBER,nPv_id IN NUMBER,nSchedDate IN DATE,nRepeatSecs IN NUMBER,nAddedDate IN DATE,nUser_id IN NUMBER);/*================================================================================================*/FUNCTION daemon_ops_for_rtag_pvid(nRtag_id IN NUMBER,nPv_id IN NUMBER) RETURN VARCHAR2;/*================================================================================================*/FUNCTION daemon_ops_for_rtag(nRtag_id IN NUMBER) RETURN VARCHAR2;/*================================================================================================*/PROCEDURE add_daemon_config (nrtagid IN NUMBER,nbmcon_id IN NUMBER,sdaemon_mode IN VARCHAR2,sgbebuildfilter IN VARCHAR2);/*================================================================================================*/PROCEDURE update_daemon_config (nrconid IN NUMBER,nbmcon_id IN NUMBER,sdaemon_mode IN VARCHAR2,sgbebuildfilter IN VARCHAR2);/*================================================================================================*/PROCEDURE duplicate_daemon_config (nrtagid IN NUMBER,nbmcon_id IN NUMBER,sdaemonhostname IN VARCHAR2,ngbe_id IN NUMBER,sdaemon_mode IN VARCHAR2,sgbebuildfilter IN VARCHAR2);/*================================================================================================*/PROCEDURE add_build_machine (sdisplay_name IN VARCHAR2,smachine_hostname IN VARCHAR2,ngbeid IN NUMBER,sdescription IN VARCHAR2,sactive IN CHAR);/*================================================================================================*/PROCEDURE delete_build_machine (sbmcon_id_list IN VARCHAR2);/*================================================================================================*/PROCEDURE update_build_machine (nbmcon_id IN NUMBER,sdisplay_name IN VARCHAR2,smachine_hostname IN VARCHAR2,ngbeid IN NUMBER,sdescription IN VARCHAR2,sactive IN CHAR);/*================================================================================================*/PROCEDURE import_daemons ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER );/*================================================================================================*/PROCEDURE set_finite_pause ( duration IN NUMBER );PROCEDURE set_build_plan (rtagId IN NUMBER, nStartIndex IN NUMBER, pvList IN VARCHAR2);END pk_buildapi;/---------------------------------------------------------- DDL for Package PK_ENVIRONMENT--------------------------------------------------------CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_ENVIRONMENT" IS/*------------------------------|| Last Modified: G.Huddy|| Modified Date: 28/May/2008|| Spec Version: 1.2------------------------------*/TYPE typeCur IS REF CURSOR;/*================================================================================================*/FUNCTION SELECT_ENVIRONMENT_AREA ( cDlock IN PACKAGE_VERSIONS.DLOCKED%TYPE ) RETURN NUMBER;FUNCTION GET_PACKAGE_AREA ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;FUNCTION GET_VIEW_LOCATION ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;PROCEDURE ADD_PACKAGE ( PvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, imode IN CHAR default NULL );PROCEDURE ADD_PACKAGE_BULK ( PvIdList IN VARCHAR2, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, imode IN CHAR default NULL );PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );FUNCTION REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, ForceRemove IN CHAR ) RETURN NUMBER;PROCEDURE GET_ENVIRONMENT_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER, sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_RELEASED_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER, sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_PENDING_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER, sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_WORK_IN_PROGRESS_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER, sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;PROCEDURE MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE MAKE_UNRELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE MAKE_PENDING ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE MAKE_APPROVED ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE MAKE_REJECT ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE APPROVE_MERGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );PROCEDURE FIND_PACKAGE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, RecordSet OUT typeCur );PROCEDURE FIND_FILE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, nPageSize IN NUMBER, RecordSet OUT typeCur );PROCEDURE AUTO_MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, VExt INPACKAGE_VERSIONS.V_EXT%TYPE, SSV_EXT IN PACKAGE_VERSIONS.V_EXT%TYPE,CloneFromPvId IN NUMBER );PROCEDURE GET_PRODRELEASE_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_INTEGRATION_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_TEST_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_DEPLOY_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );PROCEDURE GET_REJECT_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );/*================================================================================================*/END PK_ENVIRONMENT;/---------------------------------------------------------- DDL for Package PK_LICENCING--------------------------------------------------------CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_LICENCING" IS/*------------------------------|| Last Modified: G.Huddy|| Modified Date: 19/Aug/2008|| Spec Version: 1.0------------------------------*/TYPE typeCur IS REF CURSOR;/*================================================================================================*/PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER );PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER );PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER );FUNCTION IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER;PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER );/*================================================================================================*/END PK_LICENCING;/---------------------------------------------------------- DDL for Package PK_PACKAGE--------------------------------------------------------CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PACKAGE"IS/*------------------------------|| Last Modified: Jeremy Tweddle|| Modified Date: 24/08/2007||------------------------------*/TYPE typecur IS REF CURSOR;/** Carriage-return line-feed character sequence.*/CRLF CONSTANT VARCHAR2(2 CHAR) := unistr('\000D\000A');/*================================================================================================*/PROCEDURE new_version (nlastpvid IN NUMBER,snewpkgversion IN VARCHAR2 DEFAULT NULL,cbuildtype IN CHAR,cchangetype IN CHAR,nsettopvid IN NUMBER DEFAULT NULL,nrtagid IN NUMBER,nuserid IN NUMBER,enumissues_state_imported IN NUMBER,returnpvid OUT NUMBER);PROCEDURE change_state (pvid IN NUMBER,newstate IN package_versions.dlocked%TYPE,userid IN NUMBER);PROCEDURE new_patch (snewpatchversion IN package_versions.pkg_version%TYPE,nparentpvid IN NUMBER,spatchidlist IN VARCHAR2,nuserid IN NUMBER,returnpatchid OUT NUMBER);PROCEDURE obsolete_patch (patchid IN NUMBER,isobsolete IN CHAR,obsoletecomments IN VARCHAR2,userid IN NUMBER);PROCEDURE obsolete_patches (spatchidlist IN VARCHAR2,isobsolete IN CHAR,obsoletecomments IN VARCHAR2,userid IN NUMBER);PROCEDURE destroy_package (pvid IN NUMBER,overridewarnings IN CHAR DEFAULT 'N',problemstring OUT VARCHAR2);PROCEDURE destroy_package_extended (pvid IN NUMBER,rtagid IN NUMBER,overridewarnings IN NUMBER DEFAULT 0,RESULTS OUT SYS_REFCURSOR);PROCEDURE add_process (nprocid IN processes.proc_id%TYPE,shealthtag IN processes.proc_name%TYPE,sprocdesc IN processes.proc_description%TYPE,scmdinterface IN processes.run_as%TYPE,spkgowner IN processes.pkg_owner%TYPE,sisinterface IN processes.is_interface%TYPE,npvid IN package_processes.pv_id%TYPE,nuserid IN NUMBER);PROCEDURE add_package_process (nprocidlist IN VARCHAR2,npvid IN package_processes.pv_id%TYPE,nuserid IN NUMBER);PROCEDURE remove_process (nprocid IN package_processes.proc_id%TYPE,npvid IN package_processes.pv_id%TYPE,nuserid IN NUMBER);PROCEDURE move_package (npvid IN package_versions.pv_id%TYPE,nrtagid IN release_tags.rtag_id%TYPE,nnewrtagid IN release_tags.rtag_id%TYPE,nuserid IN NUMBER);PROCEDURE modify_product_state (npvid IN package_versions.pv_id%TYPE,nrtagid IN release_tags.rtag_id%TYPE,nstateid IN product_states.state_id%TYPE,nuserid IN NUMBER);PROCEDURE add_code_review_url (npvid IN NUMBER,nprojid IN NUMBER,surl IN VARCHAR2,sreason IN VARCHAR2,ddateofreview IN VARCHAR2);PROCEDURE update_code_review_url (ncrid IN NUMBER,nprojid IN NUMBER,surl IN VARCHAR2,sreason IN VARCHAR2,ddateofreview IN VARCHAR2);PROCEDURE remove_code_review_url (ncrid IN NUMBER);PROCEDURE SET_RIPPLE_STOP (nPVID IN RELEASE_CONTENT.PV_ID%TYPE,nRtagId IN RELEASE_CONTENT.RTAG_ID%TYPE,nUserId IN NUMBER,cMode IN CHAR);/*================================================================================================*/END pk_package;/GRANT EXECUTE ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";GRANT DEBUG ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Package PK_PLANNED--------------------------------------------------------CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PLANNED" IS/*------------------------------|| Last Modified: G.Huddy|| Modified Date: 28/May/2008|| Spec Version: 1.1------------------------------*/TYPE typeCur IS REF CURSOR;/*================================================================================================*/PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, OPR IN CHAR DEFAULT 'R' );PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );PROCEDURE MERGE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, mergeOperation IN CHAR);/*================================================================================================*/END PK_PLANNED;/---------------------------------------------------------- DDL for Package PK_PROJECT--------------------------------------------------------CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PROJECT" ISTYPE typecur IS REF CURSOR;/*------------------------------------------------------------------------*/PROCEDURE update_base_url (nprojid IN projects.proj_id%TYPE,sbaseurl IN VARCHAR2);/*------------------------------------------------------------------------*/PROCEDURE update_project_config (nprojid IN projects.proj_id%TYPE,sbaseurl IN VARCHAR2,sjirakey IN VARCHAR2);/*------------------------------------------------------------------------*/END pk_project;/---------------------------------------------------------- DDL for Package PK_RELEASE--------------------------------------------------------CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_RELEASE" IS/*------------------------------|| Last Modified: S.Vukovic|| Modified Date: 12/Sep/2005|| Body Version: 3.0------------------------------*/TYPE typeCur IS REF CURSOR;/*================================================================================================*/PROCEDURE New_Release ( sReleaseName IN VARCHAR2, sReleaseComments IN VARCHAR2, nProjId IN NUMBER, nSourceRtagId IN NUMBER, sIsBranched IN CHAR, nUserId IN NUMBER,cOfficial IN CHAR DEFAULT 'N' );PROCEDURE Update_Release ( nRtagId IN NUMBER, sReleaseName IN VARCHAR2, sReleaseComments IN VARCHAR2, nParentRtagId IN NUMBER, nMASSRtagId IN NUMBER, nConfigSpecBranch IN VARCHAR2, sOwnerEmail IN VARCHAR2, nUserId IN NUMBER, cState IN VARCHAR, nBuildAge in NUMBER,cLxr in CHAR );PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER );PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER );PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER,nMode IN NUMBER default 0 );PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER );FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR ) RETURN NUMBER;PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER );PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );--PROCEDURE ADD_DEPRECATE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, nPkgId IN NUMBER );PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER );PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER );PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 );PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER );PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR );PROCEDURE SET_RELEASE_MODIFIED (nRtagId IN NUMBER );PROCEDURE ADD_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER, nUserId IN NUMBER, bDelete IN NUMBER, nInsertCount OUT NUMBER, curReturn OUT typeCur );PROCEDURE REMOVE_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER );FUNCTION CAN_ADD_PKG_TO_RELEASE ( nRtagId IN NUMBER, nPvid in NUMBER ) RETURN NUMBER;/*================================================================================================*/END PK_RELEASE;/---------------------------------------------------------- DDL for Package PK_RMAPI--------------------------------------------------------CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_RMAPI"ISTYPE typecur IS REF CURSOR;FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)RETURN typecur;FUNCTION wip_iteration_package (projname VARCHAR2,iterationname VARCHAR2,pkgname VARCHAR2)RETURN typecur;FUNCTION auto_make_vcsrelease (rtagid IN NUMBER,pkgname IN VARCHAR2,vext IN VARCHAR2,newpkgversion IN VARCHAR2,vcstag IN VARCHAR2,dependenciesimportlist IN VARCHAR2,isrippled IN NUMBER,username IN VARCHAR2)RETURN NUMBER;FUNCTION auto_make_vcsrelease2 (rtagid IN NUMBER,pkgname IN VARCHAR2,vext IN VARCHAR2,newpkgversion IN VARCHAR2,vcstag IN VARCHAR2,dependenciesimportlist IN relmgr_varchar2_tab_t,isrippled IN NUMBER,username IN VARCHAR2)RETURN NUMBER;PROCEDURE import_dependencies (pvid IN NUMBER,dependenciesimportlist IN VARCHAR2,userid IN NUMBER);PROCEDURE import_dependencies2 (pvid IN NUMBER,dependenciesimportlist IN relmgr_varchar2_tab_t,userid IN NUMBER);FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)RETURN VARCHAR2;FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)RETURN VARCHAR2;PROCEDURE update_dash_board (rtagid IN NUMBER);FUNCTION exclude_from_build (pvid IN NUMBER,spkgversion IN VARCHAR2,rtagid IN NUMBER,username IN VARCHAR2)RETURN NUMBER;FUNCTION exclude_indirect_from_build (pvid IN NUMBER,spkgversion IN VARCHAR2,rtagid IN NUMBER,username IN VARCHAR2,rootpvid IN NUMBER,rootcause IN VARCHAR2,rootfile IN VARCHAR2)RETURN NUMBER;PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2);FUNCTION insert_package_metrics (rtagid IN NUMBER,pkgname IN VARCHAR2,vext IN VARCHAR2,metricstring IN VARCHAR2)RETURN NUMBER;PROCEDURE update_release_metrics (rtagid IN NUMBER);FUNCTION return_vcs_tag(pvid IN NUMBER) RETURN VARCHAR2;PROCEDURE update_vcs_details(ipv_id IN NUMBER, vcstag IN VARCHAR2, user_id IN NUMBER);FUNCTION isSVN( pkgid IN NUMBER ) RETURN NUMBER;FUNCTION isSVNbyName( pkgname IN VARCHAR2 ) RETURN NUMBER;FUNCTION new_build_instance( rtag_id IN NUMBER, pv_id IN NUMBER, reason IN CHAR ) return NUMBER;FUNCTION update_build_instance( nbuild_id IN NUMBER, npv_id IN NUMBER default null, nstate IN CHAR default null ) return NUMBER;FUNCTION insert_test_run( build_id IN NUMBER, name IN VARCHAR2, outcome IN VARCHAR2, platform IN VARCHAR2, stype IN VARCHAR2, duration IN NUMBER default null, message IN CLOB default null) return NUMBER;END pk_rmapi;/GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "RM_READONLY";GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "MS_READONLY";GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "DM_READONLY";---------------------------------------------------------- DDL for Package PK_WORK_IN_PROGRESS--------------------------------------------------------CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS/*------------------------------|| Last Modified: S.Vukovic|| Modified Date: 2/May/2005|| Spec Version: 1.0------------------------------*/TYPE typeCur IS REF CURSOR;/*================================================================================================*/PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER );FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );/*================================================================================================*/END PK_WORK_IN_PROGRESS;/---------------------------------------------------------- DDL for Package RM_ISSUES--------------------------------------------------------CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."RM_ISSUES" ASTYPE T_Cur IS REF CURSOR;FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBER;FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBER;PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 );END Rm_Issues;/---------------------------------------------------------- DDL for Package Body PK_APP_UTILS--------------------------------------------------------CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_APP_UTILS" IS/*------------------------------|| Last Modified: S.Vukovic|| Modified Date: 26/Apr/2005|| Body Version: 1.0------------------------------*//*-------------------------------------------------------------------------------------------------------*/PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur) ISBEGINIF (NOT RtagId IS NULL) THEN-- Case with RTAG_ID presentOPEN records FORSELECT rt.PROJ_ID,rt.RTAG_ID AS RTAG_IDFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = TO_NUMBER(RtagId);ELSIF (NOT ProjId IS NULL) THEN-- Case with PROJ_ID presentOPEN records FORSELECT TO_NUMBER(ProjId) AS PROJ_ID,-1 AS RTAG_IDFROM DUAL;ELSE-- Case with none presentOPEN records FORSELECT -1 AS PROJ_ID,-1 AS RTAG_IDFROM DUAL;END IF;--RETURN records;END;/*-------------------------------------------------------------------------------------------------------*/END PK_APP_UTILS;/GRANT EXECUTE ON "RELEASE_MANAGER"."PK_APP_UTILS" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Package Body PK_BUILDAPI--------------------------------------------------------CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_BUILDAPI"IS/*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_product_component (npvid IN NUMBER,sosname IN VARCHAR2,sorigfilepath IN VARCHAR2,sfilename IN VARCHAR2,sdestfilepath IN VARCHAR2,nbytesize IN NUMBER,scrccksum IN VARCHAR2)ISnosid NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/-- OS Name Requirements --IF (sosname IS NULL)THENraise_application_error (-20000, 'OsName cannot be NULL.');END IF;-- File Requirements --IF (NOT sfilename IS NULL)THENIF (nbytesize IS NULL)THENraise_application_error (-20000, 'Byte Size cannot be NULL.');ELSIF (scrccksum IS NULL)THENraise_application_error (-20000, 'CRC CKSUM cannot be NULL.');END IF;END IF;-- Folder Requirements ---- No requirements for now./*-------------------------------------------------------*/-- Get OsIdnosid := get_osid (sosname);-- Insert component entryINSERT INTO product_components(pv_id, os_id, file_path, file_name, destination_path,byte_size, crc_cksum)VALUES (npvid, nosid, sorigfilepath, sfilename, sdestfilepath,nbytesize, scrccksum);EXCEPTIONWHEN DUP_VAL_ON_INDEXTHENraise_application_error (-20000,'Cannot have duplicate product components.');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE remove_all_product_components (npvid IN NUMBER,sosname IN VARCHAR2)ISnosid NUMBER;BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/-- Get OsIdnosid := get_osid (sosname);-- Delete component entryDELETE FROM product_components pcWHERE pc.pv_id = npvid AND pc.os_id = nosid;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION get_osid (sosname IN VARCHAR2)RETURN NUMBERIScode NUMBER;BEGIN-- Get Platform Code --SELECT pf.codeINTO codeFROM platforms pfWHERE UPPER (pf.NAME) = UPPER (sosname);RETURN code;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error(-20000,'Platform '|| sosname|| ' is not valid. It needs to be added to PLATFORMS table in Release Manager.');RAISE;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE update_build_service_info (sdatabaseserver IN VARCHAR2,sarchiveserver IN VARCHAR2,smailserver IN VARCHAR2,smailsender IN VARCHAR2,faultmlist IN VARCHAR2,sdiskspace IN VARCHAR2,ssbommanagement IN VARCHAR2,lxrserver IN VARCHAR2)ISBEGINUPDATE build_service_configSET config = sdatabaseserverWHERE service = 'DATABASE SERVER';UPDATE build_service_configSET config = sarchiveserverWHERE service = 'ARCHIVE SERVER';UPDATE build_service_configSET config = smailserverWHERE service = 'MAIL SERVER';UPDATE build_service_configSET config = smailsenderWHERE service = 'BUILD FAILURE MAIL SENDER';UPDATE build_service_configSET config = faultmlistWHERE service = 'FAULT EMAIL ADDRESS LIST';UPDATE build_service_configSET config = sdiskspaceWHERE service = 'DPKG_ARCHIVE DISK SPACE USED';UPDATE build_service_configSET config = ssbommanagementWHERE service = 'SBOM MANAGEMENT';UPDATE build_service_configSET config = lxrserverWHERE service = 'LXR SERVER';END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2, sgbeclass IN NUMBER)ISgbe_id NUMBER;BEGIN-- Get GBE_IDSELECT seq_gbe_id.NEXTVALINTO gbe_idFROM DUAL;INSERT INTO gbe_machtype(gbe_id, gbe_value, bm_id )VALUES (gbe_id, sgbevalue, sgbeclass );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER)ISBEGINDELETE FROM gbe_machtypeWHERE gbe_id = ngbe_id;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2, sgbeclass IN NUMBER)ISBEGINUPDATE gbe_machtypeSET gbe_value = sgbevalue,bm_id = sgbeclassWHERE gbe_id = ngbe_id;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_buildmachine (sbmvalue IN VARCHAR2)ISbm_id NUMBER;BEGIN-- Get BM_IDSELECT seq_bm_id.NEXTVALINTO bm_idFROM DUAL;INSERT INTO build_machines(bm_id, bm_name)VALUES (bm_id, sbmvalue );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE remove_buildmachine (nbm_id IN NUMBER)ISBEGINDELETE FROM build_machinesWHERE bm_id = nbm_id;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE update_buildmachine (nbm_id IN NUMBER, sbmvalue IN VARCHAR2)ISBEGINUPDATE build_machinesSET bm_name = sbmvalueWHERE bm_id = nbm_id;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE delete_daemon (srconidlist IN VARCHAR2)ISBEGIN-- Entries in the daemon_action_log, run_level and abt_action_log tables must be deleted first.DELETE FROM daemon_action_logWHERE rcon_id IN (SELECT *FROM THE(SELECT CAST(in_list_number (srconidlist) AS relmgr_number_tab_t)FROM DUAL));DELETE FROM run_levelWHERE rcon_id IN (SELECT *FROM THE(SELECT CAST(in_list_number (srconidlist) AS relmgr_number_tab_t)FROM DUAL));DELETE FROM abt_action_logWHERE rcon_id IN (SELECT *FROM THE(SELECT CAST(in_list_number (srconidlist) AS relmgr_number_tab_t)FROM DUAL));-- Once entries in daemon_action_log, run_level and abt_action_log are removed, the daemon is deleted.DELETE FROM release_configWHERE rcon_id IN (SELECT *FROM THE(SELECT CAST(in_list_number (srconidlist) AS relmgr_number_tab_t)FROM DUAL));END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE remove_daemon (srconidlist IN VARCHAR2)ISoRconIdList RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();BEGINoRconIdList := IN_LIST_NUMBER ( srconidlist );-- Break the linkage between the release_config and the build_machine_config-- Delete the linkage between the two tables.UPDATE release_configSET daemon_hostname = NULL,bmcon_id = NULLWHERE rcon_id IN ( SELECT * FROM TABLE ( CAST ( oRconIdList AS RELMGR_NUMBER_TAB_t ) ) );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE insert_schedule_info (dschedulepause IN DATE,dscheduleresume IN DATE,crepeat IN VARCHAR2,cindefinitepause IN VARCHAR2)ISnscheduledid NUMBER;BEGIN-- Get Next Available Scheduled IdSELECT seq_scheduled_id.NEXTVALINTO nscheduledidFROM DUAL;INSERT INTO run_level_scheduleVALUES (nscheduledid, dschedulepause, dscheduleresume, crepeat,cindefinitepause);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE delete_schedule (nscheduleid IN NUMBER)ISBEGINDELETE FROM run_level_scheduleWHERE scheduled_id = nscheduleid;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE set_infinite_pauseISnscheduledid NUMBER;BEGIN-- Get Next Available Scheduled IdSELECT seq_scheduled_id.NEXTVALINTO nscheduledidFROM DUAL;INSERT INTO run_level_scheduleVALUES (nscheduledid, ora_sysdatetime, NULL, NULL, 'P');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE set_finite_pause (duration IN NUMBER)ISnscheduledid NUMBER;currentDate DATE := ora_sysdatetime;BEGIN-- Get Next Available Scheduled IdSELECT seq_scheduled_id.NEXTVALINTO nscheduledidFROM DUAL;INSERT INTO run_level_scheduleVALUES (nscheduledid, currentDate, currentDate + duration/(24*60), 0, 'F');COMMIT;-- Ensure that we have only ONE finite pause by deleting all old ones-- Under race conditions the last one winsDELETE FROM run_level_scheduleWHERE SCHEDULED_ID < nscheduledidAND INDEFINITE_PAUSE = 'F';END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE set_resumeISBEGINDELETE FROM run_level_scheduleWHERE indefinite_pause in ('F', 'P' );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE delete_out_of_date_scheduleISBEGINDELETE FROM run_level_scheduleWHERE scheduled_resume < ora_sysdatetime AND repeat = 0;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE set_daemon_resume (nrconid IN NUMBER)ISBEGINUPDATE run_levelSET PAUSE = NULLWHERE rcon_id = nrconid;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE set_daemon_pause (nrconid IN NUMBER)ISBEGINUPDATE run_levelSET PAUSE = 1WHERE rcon_id = nrconid;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE set_daemon_disable (nrconid NUMBER)ISBEGINUPDATE run_levelSET PAUSE = 2WHERE rcon_id = nrconid;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE set_daemon_states (nrtagid NUMBER, nstate NUMBER)ISBEGINUPDATE run_levelSET pause = nstateWHERE rcon_id IN(SELECT rc.rcon_id FROM release_config rc WHERE rc.rtag_id = nrtagid);END;/*-------------------------------------------------------------------------------------------------------*/-- inserts a new daemon instruction-- This is for use by the Release Manager Website code.--PROCEDURE insert_daemon_inst( nOp_code IN NUMBER, nRtag_id IN NUMBER, nPv_id IN NUMBER, nSchedDate IN DATE, nRepeatSecs IN NUMBER, nAddedDate IN DATE, nUser_id IN NUMBER) ISnInstId NUMBER;BEGIN-- Get Next Available Scheduled IdSELECT seq_daemon_instruction_id.NEXTVALINTO nInstIdFROM DUAL;INSERT INTO Daemon_InstructionsVALUES (nInstId, nOp_code, nRtag_id,nPv_id, nSchedDate, nRepeatSecs,nAddedDate, nUser_id, '0');-- Mark the Release as modified for build purposesPK_RELEASE.SET_RELEASE_MODIFIED(nRtag_id);EXCEPTIONWHEN DUP_VAL_ON_INDEXTHENraise_application_error (-20000,'Table already contains a record with the specified OPERATION, RELEASE, and PACKAGE VERSION');WHEN OTHERSTHENraise;END insert_daemon_inst;/*-------------------------------------------------------------------------------------------------------*/-- Deletes a daemon instruction matching the specified instruction ID--PROCEDURE del_daemon_inst( nInstId IN NUMBER) ISBEGINDELETE FROM Daemon_InstructionsWHERE DAEMON_INSTRUCTIONS_ID = nInstId;END del_daemon_inst;/*-------------------------------------------------------------------------------------------------------*/-- Deletes a daemon instruction matching the specified op-code, ratag, and pv_id--PROCEDURE del_daemon_inst_by_rtag_pvid(nOp_code IN NUMBER,nRtag_id IN NUMBER,nPv_id IN NUMBER) ISBEGINDELETE FROM Daemon_InstructionsWHERE OP_CODE = nOp_codeAND RTAG_ID = nRtag_idAND PV_ID = nPv_id;END del_daemon_inst_by_rtag_pvid;/*-------------------------------------------------------------------------------------------------------*/-- Updates a daemon instruction-- This is for use by the Release Manager Website code.--PROCEDURE update_daemon_inst( nInstId IN NUMBER, nOp_code IN NUMBER, nRtag_id IN NUMBER, nPv_id IN NUMBER, nSchedDate IN DATE, nRepeatSecs IN NUMBER, nAddedDate IN DATE, nUser_id IN NUMBER) ISCURSOR daemon_inst_cur ISSELECT *FROM daemon_instructions diWHERE di.DAEMON_INSTRUCTIONS_ID = nInstId;daemon_inst_rec daemon_inst_cur%ROWTYPE;exc_inst_removed EXCEPTION;BEGINOPEN daemon_inst_cur;FETCH daemon_inst_curINTO daemon_inst_rec;IF daemon_inst_cur%FOUND THENUPDATE Daemon_InstructionsSET op_code = nOp_code,rtag_id = nRtag_id,pv_id = nPv_id,scheduled_datetime = nSchedDate,repeat_secs = nRepeatSecs,added_datetime = nAddedDate,user_id = nUser_id,in_progress = '0'WHERE daemon_instructions_id = nInstId;ELSEraise exc_inst_removed;END IF;CLOSE daemon_inst_cur;-- Mark the Release as modified for build purposesPK_RELEASE.SET_RELEASE_MODIFIED(nRtag_id);EXCEPTIONWHEN DUP_VAL_ON_INDEXTHENraise_application_error (-20000,'Table already contains a record with the specified OPERATION, RELEASE, and PACKAGE VERSION');WHEN exc_inst_removedTHENraise_application_error (-20000,'Record was probably deleted by the Buildtool during your edit-form session. Please create a new Daemon Instruction.');WHEN OTHERSTHENraise;END update_daemon_inst;/*-------------------------------------------------------------------------------------------------------*/-- Returns a comma-separated list of operation codes found for a given rtag and pv_id combination-- This is for use by the Release Manager Website code.--FUNCTION daemon_ops_for_rtag_pvid(nRtag_id IN NUMBER,nPv_id IN NUMBER) RETURN VARCHAR2ISCURSOR daemon_inst_cur ISSELECT di.OP_CODEFROM daemon_instructions diWHERE di.RTAG_ID = nRtag_idAND di.PV_ID = nPv_id;daemon_inst_rec daemon_inst_cur%ROWTYPE;sRetList VARCHAR2(4000) := '';BEGINOPEN daemon_inst_cur;FETCH daemon_inst_curINTO daemon_inst_rec;WHILE daemon_inst_cur%FOUNDLOOPsRetList := sRetList || daemon_inst_rec.op_code || ',';FETCH daemon_inst_curINTO daemon_inst_rec;END LOOP;CLOSE daemon_inst_cur;RETURN sRetList;END daemon_ops_for_rtag_pvid;/*-------------------------------------------------------------------------------------------------------*/-- Returns a comma-separated list of operation codes found for a given rtag-- This is for use by the Release Manager Website code.--FUNCTION daemon_ops_for_rtag(nRtag_id IN NUMBER) RETURN VARCHAR2ISCURSOR daemon_inst_cur ISSELECT di.OP_CODEFROM daemon_instructions diWHERE di.RTAG_ID = nRtag_id;daemon_inst_rec daemon_inst_cur%ROWTYPE;sRetList VARCHAR2(4000) := '';BEGINOPEN daemon_inst_cur;FETCH daemon_inst_curINTO daemon_inst_rec;WHILE daemon_inst_cur%FOUNDLOOPsRetList := sRetList || daemon_inst_rec.op_code || ',';FETCH daemon_inst_curINTO daemon_inst_rec;END LOOP;CLOSE daemon_inst_cur;RETURN sRetList;END daemon_ops_for_rtag;/*-------------------------------------------------------------------------------------------------------*/-- Gets a record from the daemon instruction table that can be carried out now and returns the fields-- in the record a daemon will need-- The Buildtool should use this to find a job to do for a particular release. It should then call-- mark_daemon_inst_in_progress(inst_id) before carrying out the work, and then call-- mark_daemon_inst_completed(inst_id) to signal its completion.-- Can be called repeatedly to get a full list of all instructions for a release, by passing back in-- the instruction ID obtained from the previous call (the 1st call should use 0)-- Can be called repeatedly to get a full list of all instructions of a specific op-code value for a release,-- by passing back in an op-code value of 0 or higher (use -1 if no op-code filtering is needed)-- Returns 1 if a record was found, else 0.--FUNCTION get_daemon_inst(nRtag_id IN NUMBER,nInst_id IN OUT NUMBER,nOp_code IN OUT NUMBER,nPv_id OUT NUMBER,nUser_id OUT NUMBER,nInProgress OUT NUMBER) RETURN NUMBERISCURSOR daemon_inst_cur ISSELECT di.daemon_instructions_id, di.op_code, di.pv_id ,di.user_id, di.in_progressFROM daemon_instructions diWHERE di.rtag_id = nRtag_idAND di.daemon_instructions_id > nInst_idAND di.scheduled_datetime <= ora_sysdatetimeAND ((nOp_code = -1) OR (nOp_code = di.op_code))AND rownum <= 1ORDER BY di.daemon_instructions_id;daemon_inst_rec daemon_inst_cur%ROWTYPE;BEGINOPEN daemon_inst_cur;FETCH daemon_inst_curINTO daemon_inst_rec;-- If we found a record, return it.IF daemon_inst_cur%FOUND THENnInst_id := daemon_inst_rec.daemon_instructions_id;nOp_code := daemon_inst_rec.op_code;nPv_id := daemon_inst_rec.pv_id;nUser_id := daemon_inst_rec.user_id;IF daemon_inst_rec.in_progress = '1' THENnInProgress := 1;ELSEnInProgress := 0;END IF;CLOSE daemon_inst_cur;RETURN 1;END IF;CLOSE daemon_inst_cur;RETURN 0;END get_daemon_inst;/*-------------------------------------------------------------------------------------------------------*/-- Marks a daemon instruction as being processed by a daemon-- The Buildtool should use this before it embarks on the work the instruction commands--PROCEDURE mark_daemon_inst_in_progress( nInstId IN NUMBER )ISBEGINUPDATE Daemon_InstructionsSET in_progress = '1'WHERE daemon_instructions_id = nInstId;END mark_daemon_inst_in_progress;/*-------------------------------------------------------------------------------------------------------*/-- Once the Buildtool has finished carrying out the daemon instruction, it should call this stored-- procedure in order to either delete the instruction or update it in the case where it is a repeating-- instruction.--PROCEDURE mark_daemon_inst_completed( nInstId IN NUMBER )ISrepSecs NUMBER;schedDate DATE;CURSOR daemon_inst_cur ISSELECT di.REPEAT_SECS AS repSecs, di.SCHEDULED_DATETIME AS schedDateFROM daemon_instructions diWHERE di.daemon_instructions_id = nInstId;daemon_inst_rec daemon_inst_cur%ROWTYPE;BEGINOPEN daemon_inst_cur;FETCH daemon_inst_curINTO daemon_inst_rec;IF daemon_inst_cur%FOUND THEN-- if instruction repeats daily, add 1 day to the scheduled time and update the recordIF daemon_inst_rec.repSecs = 86400 THENUPDATE Daemon_InstructionsSET scheduled_datetime = daemon_inst_rec.schedDate + 1,in_progress = '0'WHERE daemon_instructions_id = nInstId;ELSE-- Delete the daemon instruction, we are done with itdel_daemon_inst(nInstId);END IF;END IF;CLOSE daemon_inst_cur;EXCEPTIONWHEN OTHERSTHENraise;END mark_daemon_inst_completed;/*-------------------------------------------------------------------------------------------------------*/-- This function deletes any old daemon instruction that appears stranded due to a problem that might-- have occured during buildtool operation such as might occur if the buildtool or the machine it was-- hosted on came down whilst it was processing a daemon instruction.PROCEDURE cleanup_stranded_daemon_instsISBEGIN-- delete records at least two days oldDELETE FROM daemon_instructions diWHERE (di.scheduled_datetime + 5) <= ora_sysdatetime;END cleanup_stranded_daemon_insts;/*-------------------------------------------------------------------------------------------------------*/--This function supersedes function, add_daemon. Done for DEVI-046806PROCEDURE add_daemon_config (nrtagid IN NUMBER,nbmcon_id IN NUMBER,sdaemon_mode IN VARCHAR2,sgbebuildfilter IN VARCHAR2)ISnrecordnumber NUMBER;nrconid NUMBER;sdaemonhostname VARCHAR2(50);ngbeid NUMBER;BEGIN-- Get RCON_IDSELECT seq_rcon_id.NEXTVALINTO nrconidFROM DUAL;SELECT COUNT (*)INTO nrecordnumberFROM release_configWHERE rtag_id = nrtagid;SELECT machine_hostname,gbe_id INTO sdaemonhostname,ngbeidFROM build_machine_configWHERE bmcon_id = nbmcon_id;INSERT INTO release_config(rcon_id, rtag_id, daemon_hostname, daemon_mode,gbe_id, gbe_buildfilter, bmcon_id)VALUES (nrconid, nrtagid, sdaemonhostname, sdaemon_mode,ngbeid, sgbebuildfilter, nbmcon_id);-- A newly configured daemon should initially be paused (DEVI-047277)INSERT INTO run_level(rcon_id, pause)VALUES (nrconid, 2);END;/*-------------------------------------------------------------------------------------------------------*/--This function supersedes function, update_daemon. Done for DEVI-046806PROCEDURE update_daemon_config (nrconid IN NUMBER,nbmcon_id IN NUMBER,sdaemon_mode IN VARCHAR2,sgbebuildfilter IN VARCHAR2)ISsdaemonhostname VARCHAR2(50);ngbeid NUMBER;BEGINSELECT machine_hostname,gbe_id INTO sdaemonhostname,ngbeidFROM build_machine_configWHERE bmcon_id = nbmcon_id;UPDATE release_configSET daemon_hostname = sdaemonhostname,gbe_id = ngbeid,daemon_mode = sdaemon_mode,gbe_buildfilter = sgbebuildfilter,bmcon_id = nbmcon_idWHERE rcon_id = nrconid;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_build_machine (sdisplay_name IN VARCHAR2,smachine_hostname IN VARCHAR2,ngbeid IN NUMBER,sdescription IN VARCHAR2,sactive IN CHAR)ISnrecordnumber NUMBER;nbmcon_id NUMBER;BEGIN-- Get BMCON_IDSELECT seq_bmcon_id.NEXTVAL INTO nbmcon_id FROM DUAL;INSERT INTO build_machine_config(bmcon_id, display_name, machine_hostname,gbe_id,description,active)VALUES (nbmcon_id,sdisplay_name,smachine_hostname,ngbeid,sdescription, NVL(sactive,'N'));EXCEPTIONWHEN DUP_VAL_ON_INDEXTHENraise_application_error (-20000,'Cannot have duplicate machines.');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE duplicate_daemon_config (nrtagid IN NUMBER,nbmcon_id IN NUMBER,sdaemonhostname IN VARCHAR2,ngbe_id IN NUMBER,sdaemon_mode IN VARCHAR2,sgbebuildfilter IN VARCHAR2)ISnrecordnumber NUMBER;nrconid NUMBER;BEGIN-- Get RCON_IDSELECT seq_rcon_id.NEXTVALINTO nrconidFROM DUAL;INSERT INTO release_config(rcon_id, rtag_id, daemon_hostname, daemon_mode,gbe_id, gbe_buildfilter, bmcon_id)VALUES (nrconid, nrtagid, sdaemonhostname, sdaemon_mode,ngbe_id, sgbebuildfilter, nbmcon_id);-- A newly configured daemon should initially be disabled (DEVI-047277)INSERT INTO run_level(rcon_id, pause)VALUES (nrconid, 2);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE delete_build_machine (sbmcon_id_list IN VARCHAR2)ISBEGINDELETE FROM build_machine_configWHERE bmcon_id IN (SELECT * FROM THE(SELECT CAST(in_list_number (sbmcon_id_list) AS relmgr_number_tab_t)FROM DUAL));END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE update_build_machine (nbmcon_id IN NUMBER,sdisplay_name IN VARCHAR2,smachine_hostname IN VARCHAR2,ngbeid IN NUMBER,sdescription IN VARCHAR2,sactive IN CHAR)ISBEGINUPDATE build_machine_configSET display_name = sdisplay_name,machine_hostname = smachine_hostname,gbe_id = ngbeid,description = sdescription,active = NVL(sactive, 'N')WHERE bmcon_id = nbmcon_id;EXCEPTIONWHEN DUP_VAL_ON_INDEXTHENraise_application_error (-20000,'Cannot have duplicate machines.');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE import_daemons ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER ) ISsSourceLocation VARCHAR2(4000);sTargetLocation VARCHAR2(4000);ProjId NUMBER;cReleaseMode CHAR(1);RconId NUMBER;-- this cursor gets the source release daemon configurations, ensuring that the-- first record will be the master daemon, and subsequent records will be the slaves.CURSOR curSrcReleaseConfigs ISSELECT daemon_hostname, gbe_id, gbe_buildfilter, bmcon_id, daemon_modeFROM RELEASE_CONFIG rcWHERE rc.RTAG_ID = nSourceRtagIdORDER BY rc.daemon_mode;recSrcReleaseConfigs curSrcReleaseConfigs%ROWTYPE;-- this cursor looks for target release daemonsCURSOR curTgtReleaseConfigs ISSELECT rcon_idFROM RELEASE_CONFIG rcWHERE rc.RTAG_ID = nTargetRtagId;recTgtReleaseConfigs curTgtReleaseConfigs%ROWTYPE;-- this cursor looks for target release daemon run level entriesCURSOR curTgtReleaseConfigRunLevel ISSELECT current_run_levelFROM RUN_LEVEL rlWHERE rl.RCON_ID = recTgtReleaseConfigs.rcon_id;recTgtReleaseConfigRunLevel curTgtReleaseConfigRunLevel%ROWTYPE;BEGIN/*--------------- Business Rules Here -------------------*/IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );END IF;IF (nSourceRtagId = nTargetRtagId) THENRAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );END IF;-- Check if Target release is in OPEN modeSELECT rt.OFFICIAL INTO cReleaseModeFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nTargetRtagId;IF (cReleaseMode != 'N') THENRAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the contents.' );END IF;-- check that the target release's daemons are all paused before we allow an import operationOPEN curTgtReleaseConfigs;FETCH curtgtReleaseConfigs INTO recTgtReleaseConfigs;WHILE curTgtReleaseConfigs%FOUNDLOOPOPEN curTgtReleaseConfigRunLevel;FETCH curTgtReleaseConfigRunLevel INTO recTgtReleaseConfigRunLevel;IF curTgtReleaseConfigRunLevel%FOUND THENIF (recTgtReleaseConfigRunLevel.current_run_level IS NULL) OR(recTgtReleaseConfigRunLevel.current_run_level <> 2) THENRAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );END IF;ELSE-- we don't know what the daemon run level is so err on the side of cautionRAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );END IF;CLOSE curTgtReleaseConfigRunLevel;FETCH curTgtReleaseConfigs INTO recTgtReleaseConfigs;END LOOP;CLOSE curTgtReleaseConfigs;/*-------------------------------------------------------*/--Import Release Configuration InformationOPEN curSrcReleaseConfigs;FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;WHILE curSrcReleaseConfigs%FOUNDLOOP-- add a daemon to the target releasePK_BUILDAPI.duplicate_daemon_config( nTargetRtagId,recSrcReleaseConfigs.bmcon_id,recSrcReleaseConfigs.daemon_hostname,recSrcReleaseConfigs.gbe_id,recSrcReleaseConfigs.daemon_mode ,recSrcReleaseConfigs.gbe_buildfilter );FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;END LOOP;CLOSE curSrcReleaseConfigs;/* Log Project Action */-- Get Source LocationSELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']' INTO sSourceLocationFROM RELEASE_TAGS rt,PROJECTS prWHERE rt.PROJ_ID = pr.PROJ_IDAND rt.RTAG_ID = nSourceRtagId;-- Get Target LocationSELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']' INTO sTargetLocationFROM RELEASE_TAGS rt,PROJECTS prWHERE rt.PROJ_ID = pr.PROJ_IDAND rt.RTAG_ID = nTargetRtagId;-- Get project idSELECT rt.PROJ_ID INTO ProjIdFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nTargetRtagId;Log_Project_Action ( ProjId, 'import_daemon_configuration', nUserId, 'SOURCE: '|| sSourceLocation ||' TARGET: '|| sTargetLocation, nTargetRtagId );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE set_build_plan (rtagId IN NUMBER, nStartIndex IN NUMBER, pvList IN VARCHAR2)ISnPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();SeqNum NUMBER;BEGIN-- Remove all the old entries, on first usageIF nStartIndex = 0 thenDELETE BUILD_PLAN WHERE RTAG_ID = rtagId;SeqNum := 0;ELSESELECT COUNT(*) into SeqNum from BUILD_PLAN WHERE RTAG_ID = rtagId;END IF;-- Set start sequence numbernPvIdCollector := IN_LIST_NUMBER ( pvList );FOR i IN 1..nPvIdCollector.COUNTLOOP-- Update build plan with orderINSERT INTO BUILD_PLAN (RTAG_ID, BUILD_ORDER, PV_ID) VALUES (rtagId, SeqNum, nPvIdCollector(i));SeqNum := SeqNum + 1;END LOOP;END;END pk_buildapi;/---------------------------------------------------------- DDL for Package Body PK_ENVIRONMENT--------------------------------------------------------CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_ENVIRONMENT"IS/*-------------------------------------------------------------------------------------------------------*/FUNCTION select_environment_area (cdlock IN package_versions.dlocked%TYPE)RETURN NUMBERISBEGIN/*|| N - unlocked|| Y - release and locked|| P - penging approval|| A - approved package ready for auto-build*/IF cdlock = 'N' OR cdlock = 'R'THEN-- WORK IN PROGRESS --RETURN 0;ELSIF cdlock = 'P' OR cdlock = 'A'THEN-- PENDING --RETURN 1;ELSIF cdlock = 'Y'THEN-- RELEASED --RETURN 2;ELSE-- NOT FOUND --raise_application_error(-20000,'Cannot decide where to place package. [cDlock='|| cdlock|| ']');END IF;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION get_package_area (pvid IN NUMBER, rtagid IN NUMBER)RETURN NUMBERISenvtab NUMBER := -1;CURSOR curareaISSELECT 2 AS envtabFROM release_content rcWHERE rc.rtag_id = rtagid AND rc.pv_id = pvidUNIONSELECT 0 AS envtabFROM work_in_progress wipWHERE wip.rtag_id = rtagid AND wip.pv_id = pvidUNIONSELECT 1 AS envtabFROM planned plWHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;recarea curarea%ROWTYPE;BEGINOPEN curarea;FETCH curareaINTO recarea;IF curarea%FOUNDTHENenvtab := recarea.envtab;END IF;CLOSE curarea;RETURN envtab;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION get_view_location (pvid IN NUMBER, rtagid IN NUMBER)RETURN NUMBERISispatch package_versions.dlocked%TYPE;viewid NUMBER := -1;CURSOR curviewISSELECT rc.base_view_id AS view_idFROM release_content rcWHERE rc.rtag_id = rtagid AND rc.pv_id = pvidUNIONSELECT wip.view_id AS view_idFROM work_in_progress wipWHERE wip.rtag_id = rtagid AND wip.pv_id = pvidUNIONSELECT pl.view_id AS view_idFROM planned plWHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;recview curview%ROWTYPE;BEGIN-- Get dlock stateSELECT pv.is_patchINTO ispatchFROM package_versions pvWHERE pv.pv_id = pvid;-- Decide which view id should package go under.IF (ispatch != 'Y') OR (ispatch IS NULL)THEN-- Get VIEW ID of PackageOPEN curview;FETCH curviewINTO recview;IF curview%FOUNDTHENviewid := recview.view_id;ELSEraise_application_error(-20000,'Cannot find view_id to proceed. [PvId='|| pvid|| ']. The current version may not exist in the release anymore.');END IF;CLOSE curview;ELSE-- Get VIEW ID of Patch (view id of parent package)SELECT rc.base_view_idINTO viewidFROM release_content rc, package_patches ppvWHERE rc.rtag_id = rtagidAND rc.pv_id = ppv.pv_idAND ppv.patch_id = pvid;END IF;RETURN viewid;END;/*-------------------------------------------------------------------------------------------------------*/-- Add a package to the specified release-- Default imode: Will determine the tab ( WIP, PENDING, RELEASE ) to add the package-- Otherwise will Add the package to the PENDING set--PROCEDURE add_package (pvid IN NUMBER,viewid IN NUMBER,rtagid IN NUMBER,userid IN NUMBER,imode IN CHAR default NULL)ISdlocked package_versions.dlocked%TYPE;envtab NUMBER;pendOpr CHAR := 'R';BEGINIF can_edit_pkg_in_project (pvid, rtagid) = 1THENIF iMode IS NULL THEN-- Determine the tab to use based on the package lock state-- Get dlock stateSELECT pv.dlockedINTO dlockedFROM package_versions pvWHERE pv.pv_id = pvid;-- Get which area should go underenvtab := select_environment_area (dlocked);ELSE-- Assume that the package is to be added to Pendingenvtab := 1;pendOpr := 'A';END IF;-- Add PackageIF envtab = 0THEN-- WORK IN PROGRESS --pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);ELSIF envtab = 1THEN-- PENDING --pk_planned.add_package (pvid, viewid, rtagid, userid, pendOpr);ELSIF envtab = 2THEN-- RELEASED ---- NOTE: this package will be replaced with matching packagepk_release.add_package (pvid, viewid, rtagid, userid);-- Now do post Release Actionspk_release.run_post_actions (pvid, rtagid);END IF;END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_package_bulk (pvidlist IN VARCHAR2,viewid IN NUMBER,rtagid IN NUMBER,userid IN NUMBER,imode IN CHAR DEFAULT NULL)ISnidcollector relmgr_number_tab_t := relmgr_number_tab_t();dlocked package_versions.dlocked%TYPE;pvid NUMBER;envtab NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/IF (pvidlist IS NULL)THENraise_application_error (-20000,'Please select at least one package.');END IF;/*-------------------------------------------------------*/nidcollector := in_list_number (pvidlist);FOR i IN 1 .. nidcollector.COUNTLOOPpvid := nidcollector (i);add_package (pvid, viewid, rtagid, userid, imode);END LOOP;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE replace_package (newpvid IN NUMBER,oldpvid IN NUMBER,rtagid IN NUMBER,userid IN NUMBER)ISdlocked package_versions.dlocked%TYPE;viewid NUMBER;envtab NUMBER;ROWCOUNT NUMBER;creleasemode CHAR (1);npkgid NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/-- Check if oldPvId exists. It could have been removedSELECT COUNT (pv.pv_id)INTO ROWCOUNTFROM package_versions pvWHERE pv.pv_id = oldpvid;/*-------------------------------------------------------*//* This procedure is usually used by "History" option in Release Manager */-- Get dlock stateSELECT pv.dlockedINTO dlockedFROM package_versions pvWHERE pv.pv_id = newpvid;-- Get VIEW_ID ---IF ROWCOUNT = 1THENviewid := get_view_location (oldpvid, rtagid);ELSE-- Set ViewID to defaultviewid := 7;END IF;-- Get which area should go underenvtab := select_environment_area (dlocked);-- Replace packageIF envtab = 0THEN-- WORK IN PROGRESS ---- Delete old packagepk_work_in_progress.remove_package (oldpvid, rtagid, userid);-- Add new packagepk_work_in_progress.add_package (newpvid, viewid, rtagid, userid);ELSIF envtab = 1THEN-- PENDING ---- Delete old packagepk_planned.remove_package (oldpvid, rtagid, userid);-- Add new packagepk_planned.add_package (newpvid, viewid, rtagid, userid);ELSIF envtab = 2THEN-- RELEASED ---- Replace Packagepk_release.replace_package(newpvid, oldpvid, rtagid, userid);-- Now do post Release Actionspk_release.run_post_actions (newpvid, rtagid);END IF;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION remove_package (pvid IN NUMBER,rtagid IN NUMBER,userid IN NUMBER,forceremove IN CHAR)RETURN NUMBERISenvtab NUMBER;isused BOOLEAN;recordcount NUMBER;BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/-- Find location of packageenvtab := get_package_area (pvid, rtagid);-- Remove PackageIF envtab = 0THEN-- WORK IN PROGRESS ---- Delete packagepk_work_in_progress.remove_package (pvid, rtagid, userid);RETURN 0;ELSIF envtab = 1THEN-- PENDING ---- Delete packagepk_planned.remove_package (pvid, rtagid, userid);RETURN 0;ELSIF envtab = 2THEN-- RELEASED ---- Check if is used by other packagesisused := TRUE;IF forceremove = 'N'THENselect count(dpv.PKG_ID) INTO recordcount from(SELECT rc.pv_idFROM RELEASE_CONTENT rc, PEGGED_VERSIONS pegWHERE rc.rtag_id = rtagidAND peg.RTAG_ID(+) = rc.RTAG_IDAND peg.PV_ID(+) = rc.PV_IDAND peg.rtag_id is nullAND rc.SDKTAG_ID is null) arc,PACKAGE_DEPENDENCIES dep,PACKAGE_VERSIONS pv,PACKAGE_VERSIONS dpv,PACKAGE_VERSIONS bpvwhere dep.PV_ID = arc.pv_idAND dep.pv_id = pv.pv_idAND dep.dpv_id = dpv.PV_IDAND dpv.PKG_ID = bpv.PKG_IDAND NVL(dpv.V_EXT, '.NULL') = NVL(bpv.V_EXT, '.NULL')AND bpv.pv_id = pvid;IF recordcount > 0THENRETURN 1; -- Return 1 as package being usedELSEisused := FALSE;END IF;END IF;IF forceremove = 'Y' OR NOT isusedTHEN-- Delete old packagepk_release.remove_package (pvid, rtagid, userid);-- Delete old package's pegging infoDELETE FROM PEGGED_VERSIONS pegv WHERE pegv.RTAG_ID = rtagid AND pegv.PV_ID = pvid;-- Delete old package's advisory ripple infoDELETE FROM ADVISORY_RIPPLE avr WHERE avr.RTAG_ID = rtagid AND avr.PV_ID = pvid;-- Now do post Release Actionspk_release.run_post_actions (pvid, rtagid);RETURN 0;END IF;END IF;END;/*-------------------------------------------------------------------------------------------------------*/-- DEVI-45275 added the return of the new "operation" column in the recordset.PROCEDURE get_environment_items (viewtype IN NUMBER,userid IN NUMBER,rtagid IN NUMBER,sviewidshowlist IN VARCHAR2,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count because views can give false countSELECT COUNT (pl.pv_id)INTO ntruerecordcountFROM environment_view plWHERE pl.rtag_id = rtagid;IF viewtype = 1THEN/*--- GUEST VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_description,rel.operationFROM environment_view rel, views viWHERE rel.view_id = vi.view_idAND rtag_id = rtagidAND rel.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name,DECODE (rel.pkg_state,NULL, 0,rel.pkg_state) AS pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_description,rel.operationFROM environment_view rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = vi.view_idAND rel.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);ELSIF viewtype = 2THEN/*--- PERSONAL VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_description,rel.operationFROM environment_view rel,view_settings vs,views viWHERE rel.view_id = vi.view_idAND vs.view_id = rel.view_idAND vs.user_id = useridAND rtag_id = rtagidAND rel.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name,DECODE (rel.pkg_state,NULL, 0,rel.pkg_state) AS pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_description,rel.operationFROM environment_view rel,PACKAGES pkg,package_versions pv,views vi,view_settings vsWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = vi.view_idAND vs.view_id = vi.view_idAND vs.user_id = useridAND rel.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagidUNION/* Private Views collapsed */SELECT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,NULL AS pkg_version, NULL AS dlocked,NULL AS pv_description,rel.operationFROM view_settings vs,view_def vd,views vi,environment_view rel,package_versions pvWHERE vs.view_id = vi.view_idAND rel.pv_id = pv.pv_idAND vd.pkg_id = pv.pkg_idAND vd.view_id = vi.view_idAND vi.base_view = 'N'AND rel.rtag_id = rtagidAND vs.user_id = useridAND vi.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Private Views expanded */SELECT vi.view_id, vi.view_name,DECODE (rel.pkg_state,NULL, 0,rel.pkg_state) AS pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_description,rel.operationFROM users usr,view_settings vs,view_def vd,views vi,environment_view rel,PACKAGES pkg,package_versions pvWHERE vs.user_id = usr.user_idAND vs.view_id = vi.view_idAND vd.view_id = vi.view_idAND pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.rtag_id = rtagidAND vd.pkg_id = pkg.pkg_idAND vi.base_view = 'N'AND vi.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND usr.user_id = userid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_released_items (viewtype IN NUMBER,userid IN NUMBER,rtagid IN NUMBER,sviewidshowlist IN VARCHAR2,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count because views can give false countSELECT COUNT (rc.pv_id)INTO ntruerecordcountFROM release_content rcWHERE rc.rtag_id = rtagid;IF viewtype = 1THEN/*--- GUEST VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_descriptionFROM release_content rel, views viWHERE rel.base_view_id = vi.view_idAND rtag_id = rtagidAND rel.base_view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND rel.base_view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);ELSIF viewtype = 2THEN/*--- PERSONAL VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_descriptionFROM release_content rel,view_settings vs,views viWHERE rel.base_view_id = vi.view_idAND vs.view_id = rel.base_view_idAND vs.user_id = useridAND rtag_id = rtagidAND rel.base_view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views vi,view_settings vsWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND vs.view_id = vi.view_idAND vs.user_id = useridAND rel.base_view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagidUNION/* Private Views collapsed */SELECT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,NULL AS pkg_version, NULL AS dlocked,NULL AS pv_descriptionFROM view_settings vs,view_def vd,views vi,release_content rel,package_versions pvWHERE vs.view_id = vi.view_idAND rel.pv_id = pv.pv_idAND vd.pkg_id = pv.pkg_idAND vd.view_id = vi.view_idAND vi.base_view = 'N'AND rel.rtag_id = rtagidAND vs.user_id = useridAND vi.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Private Views expanded */SELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM users usr,view_settings vs,view_def vd,views vi,release_content rel,PACKAGES pkg,package_versions pvWHERE vs.user_id = usr.user_idAND vs.view_id = vi.view_idAND vd.view_id = vi.view_idAND pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.rtag_id = rtagidAND vd.pkg_id = pkg.pkg_idAND vi.base_view = 'N'AND vi.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND usr.user_id = userid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_work_in_progress_items (viewtype IN NUMBER,userid IN NUMBER,rtagid IN NUMBER,sviewidshowlist IN VARCHAR2,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count because views can give false countSELECT COUNT (wip.pv_id)INTO ntruerecordcountFROM work_in_progress wipWHERE wip.rtag_id = rtagid;IF viewtype = 1THEN/*--- GUEST VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_descriptionFROM work_in_progress rel, views viWHERE rel.view_id = vi.view_idAND rtag_id = rtagidAND rel.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name, 0 AS pkg_state,--rel.pkg_state,TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,pkg.pkg_name, pv.pkg_version, pv.dlocked,pv.pv_descriptionFROM work_in_progress rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = vi.view_idAND rel.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);ELSIF viewtype = 2THEN/*--- PERSONAL VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_descriptionFROM work_in_progress rel,view_settings vs,views viWHERE rel.view_id = vi.view_idAND vs.view_id = rel.view_idAND vs.user_id = useridAND rtag_id = rtagidAND rel.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name, 0 AS pkg_state,--rel.pkg_state,TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,pkg.pkg_name, pv.pkg_version, pv.dlocked,pv.pv_descriptionFROM work_in_progress rel,PACKAGES pkg,package_versions pv,views vi,view_settings vsWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = vi.view_idAND vs.view_id = vi.view_idAND vs.user_id = useridAND rel.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagidUNION/* Private Views collapsed */SELECT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,NULL AS pkg_version, NULL AS dlocked,NULL AS pv_descriptionFROM view_settings vs,view_def vd,views vi,work_in_progress rel,package_versions pvWHERE vs.view_id = vi.view_idAND rel.pv_id = pv.pv_idAND vd.pkg_id = pv.pkg_idAND vd.view_id = vi.view_idAND vi.base_view = 'N'AND rel.rtag_id = rtagidAND vs.user_id = useridAND vi.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Private Views expanded */SELECT vi.view_id, vi.view_name, 0 AS pkg_state,--rel.pkg_state,TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,pkg.pkg_name, pv.pkg_version, pv.dlocked,pv.pv_descriptionFROM users usr,view_settings vs,view_def vd,views vi,work_in_progress rel,PACKAGES pkg,package_versions pvWHERE vs.user_id = usr.user_idAND vs.view_id = vi.view_idAND vd.view_id = vi.view_idAND pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.rtag_id = rtagidAND vd.pkg_id = pkg.pkg_idAND vi.base_view = 'N'AND vi.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND usr.user_id = userid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/-- DEVI-45275 added the return of the new "operation" column in the recordset.PROCEDURE get_pending_items (viewtype IN NUMBER,userid IN NUMBER,rtagid IN NUMBER,sviewidshowlist IN VARCHAR2,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count because views can give false countSELECT COUNT (pl.pv_id)INTO ntruerecordcountFROM planned plWHERE pl.rtag_id = rtagid;IF viewtype = 1THEN/*--- GUEST VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_description,rel.operationFROM planned rel, views viWHERE rel.view_id = vi.view_idAND rtag_id = rtagidAND rel.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name, 0 AS pkg_state,--rel.pkg_state,TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,pkg.pkg_name, pv.pkg_version, pv.dlocked,pv.pv_description,rel.operationFROM planned rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = vi.view_idAND rel.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);ELSIF viewtype = 2THEN/*--- PERSONAL VIEW ---*/OPEN recordset FORSELECT *FROM (/* Base Views collapsed */SELECT DISTINCT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id,NULL AS pkg_name, NULL AS pkg_version,NULL AS dlocked, NULL AS pv_description,rel.operationFROM planned rel, view_settings vs, views viWHERE rel.view_id = vi.view_idAND vs.view_id = rel.view_idAND vs.user_id = useridAND rtag_id = rtagidAND rel.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Base Views expanded */SELECT vi.view_id, vi.view_name, 0 AS pkg_state,--rel.pkg_state,TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,pkg.pkg_name, pv.pkg_version, pv.dlocked,pv.pv_description,rel.operationFROM planned rel,PACKAGES pkg,package_versions pv,views vi,view_settings vsWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = vi.view_idAND vs.view_id = vi.view_idAND vs.user_id = useridAND rel.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND rtag_id = rtagidUNION/* Private Views collapsed */SELECT vi.view_id, vi.view_name,TO_NUMBER (NULL) AS pkg_state,TO_NUMBER (NULL) AS deprecated_state,TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,NULL AS pkg_version, NULL AS dlocked,NULL AS pv_description,rel.operationFROM view_settings vs,view_def vd,views vi,planned rel,package_versions pvWHERE vs.view_id = vi.view_idAND rel.pv_id = pv.pv_idAND vd.pkg_id = pv.pkg_idAND vd.view_id = vi.view_idAND vi.base_view = 'N'AND rel.rtag_id = rtagidAND vs.user_id = useridAND vi.view_id NOT IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))UNION/* Private Views expanded */SELECT vi.view_id, vi.view_name, 0 AS pkg_state,--rel.pkg_state,TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,pkg.pkg_name, pv.pkg_version, pv.dlocked,pv.pv_description,rel.operationFROM users usr,view_settings vs,view_def vd,views vi,planned rel,PACKAGES pkg,package_versions pvWHERE vs.user_id = usr.user_idAND vs.view_id = vi.view_idAND vd.view_id = vi.view_idAND pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.rtag_id = rtagidAND vd.pkg_id = pkg.pkg_idAND vi.base_view = 'N'AND vi.view_id IN (SELECT *FROM THE(SELECT CAST(in_list_number(sviewidshowlist) AS relmgr_number_tab_t)FROM DUAL))AND usr.user_id = userid) ordORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_view_content (rtagid IN NUMBER,viewid IN NUMBER,recordset OUT typecur)ISisbaseview CHAR (1);BEGIN-- Check if the view is BASE VIEWSELECT vi.base_viewINTO isbaseviewFROM views viWHERE vi.view_id = viewid;IF (IsBaseView IN ('Y', 'S'))THEN-- Get Base view contentOPEN recordset FORSELECT DECODE (rel.pkg_state,NULL, 0,rel.pkg_state) AS pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_description,pv.build_type,rel.operationFROM environment_view rel, PACKAGES pkg, package_versions pvWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.view_id = viewidAND rel.rtag_id = rtagidORDER BY UPPER (pkg.pkg_name);ELSE-- Get non base view contentOPEN recordset FORSELECT DECODE (rel.pkg_state,NULL, 0,rel.pkg_state) AS pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_description,pv.build_type,rel.operationFROM environment_view rel,PACKAGES pkg,package_versions pv,view_def vdWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.rtag_id = rtagidAND vd.view_id = viewidAND vd.pkg_id = pv.pkg_idORDER BY UPPER (pkg.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION get_package_view (pvid IN NUMBER, rtagid IN NUMBER)RETURN NUMBERISenvtab NUMBER;returnvalue NUMBER;return_not_found NUMBER := -1;BEGINenvtab := get_package_area (pvid, rtagid);IF envtab = 0THEN-- WORK IN PROGRESS --returnvalue := pk_work_in_progress.get_package_view (pvid, rtagid);ELSIF envtab = 1THEN-- PENDING --returnvalue := pk_planned.get_package_view (pvid, rtagid);ELSIF envtab = 2THEN-- RELEASED --returnvalue := pk_release.get_package_view (pvid, rtagid);ELSE-- This may be a Patch not located anywhere but unlockedreturnvalue := return_not_found;END IF;RETURN returnvalue;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE make_release (pvid IN NUMBER, -- NEW PKG pvidrtagid IN NUMBER, -- Release Iduserid IN NUMBER -- User performing Release)ISviewid NUMBER;envtab NUMBER;ispatch CHAR (1) := NULL;buildtype CHAR (1) := NULL;BEGIN-- Check if package is patchSELECT pv.is_patch, pv.build_typeINTO ispatch, buildtypeFROM package_versions pvWHERE pv.pv_id = pvid;-- Get ViewIdviewid := get_package_view (pvid, rtagid);-- Remove from current areaenvtab := pk_environment.get_package_area (pvid, rtagid);-- Make sure that package was in work-in-progress or pending before makeing it release-- Exclude patches, ripple buildsIF (envtab < 0)THEN-- Not found in work-in-progress or pendingIF (ispatch IS NULL) AND (buildtype = 'M')THENraise_application_error (-20000,'This package cannot be released here.');END IF;END IF;IF envtab = 0THEN-- WORK IN PROGRESS --pk_work_in_progress.remove_package (pvid, rtagid, userid);ELSIF envtab = 1THEN-- PENDING --pk_planned.remove_package (pvid, rtagid, userid);END IF;-- Change package state-- Set dlocked state to mark the package a 'Released and Locked'pk_package.change_state (pvid, 'Y', userid);-- Make sure it is valid BASE VIEWIF viewid < 1THENviewid := 7; -- This is default base viewEND IF;IF (ispatch IS NULL)THEN-- Add (Replace) package to new areapk_release.add_package (pvid, viewid, rtagid, userid);END IF;-- Now do post Release Actionspk_release.run_post_actions (pvid, rtagid);-- The release has changed and there may now be invalid rtag_id/pv_id combinations in-- the DO_NOT_RIPPLE and ADVISORY_RIPPLE Tables so perform a clean-up operation upon them.clean_do_not_ripple(rtagid);clean_advisory_ripple(rtagid);END;/*-------------------------------------------------------------------------------------------------------*/-- Release a specified package into a specified release---- Similar to 'make_release', but it attempts to handle the case where a package-version-- is being replaced with one with a different package-suffix, but it doesn't-- handle all the cases well.---- The current build system cannot do this automatically - yet----PROCEDURE auto_make_release (pvid IN NUMBER, -- NEW PKG pvidrtagid IN NUMBER, -- Release Iduserid IN NUMBER, -- User performing Releasevext IN package_versions.v_ext%TYPE, -- Package Extension for original pkgssv_ext IN package_versions.v_ext%TYPE, -- Package Extension for new packageclonefrompvid IN NUMBER -- PVID of Original)ISviewid NUMBER;envtab NUMBER;clone_removal NUMBER := 0;clone_viewid NUMBER := -1;clone_envtab NUMBER := -1;ispatch CHAR (1) := NULL;buildtype CHAR (1) := NULL;BEGIN-- Check if package is patchSELECT pv.is_patch, pv.build_typeINTO ispatch, buildtypeFROM package_versions pvWHERE pv.pv_id = pvid;---- Determine the viewid and environment for the new package--viewid := get_package_view (pvid, rtagid);envtab := pk_environment.get_package_area (pvid, rtagid);---- If changing pkgExt, then we need to delete the orig package, not just replace it--IF (clonefrompvid is NOT NULL) AND (vext <> ssv_ext)THENclone_removal := 1;clone_viewid := get_package_view (clonefrompvid, rtagid);clone_envtab := pk_environment.get_package_area (clonefrompvid, rtagid);END IF;---- Make sure that package was in work-in-progress or pending before makeing it release-- Exclude patches, ripple builds--IF (envtab < 0)THEN-- Not found in work-in-progress or pendingIF (ispatch IS NULL) AND (buildtype = 'M')THENraise_application_error (-20000,'This package cannot be released here.');END IF;END IF;---- Remove the package from the WIP or PENDING tab-- Do NOT remove from the release area.-- This will be handled later with a process that-- will do a 'replace' so that meta data is not lost--IF envtab = 0THEN-- WORK IN PROGRESS --pk_work_in_progress.remove_package (pvid, rtagid, userid);ELSIF envtab = 1THEN-- PENDING --pk_planned.remove_package (pvid, rtagid, userid);END IF;---- If we are changing the pkgExt, then fully remove the base package-- This includes removing it from the 'release' area.--IF clone_removal = 1THENIF clone_envtab = 0THEN-- WORK IN PROGRESS --pk_work_in_progress.remove_package (clonefrompvid, rtagid, userid);ELSIF clone_envtab = 1THEN-- PENDING --pk_planned.remove_package (clonefrompvid, rtagid, userid);ELSIF clone_envtab = 2THEN-- RELEASED --pk_release.remove_package (clonefrompvid, rtagid, userid);END IF;END IF;-- Change package state-- Set dlocked state to mark the package a 'Released and Locked'pk_package.change_state (pvid, 'Y', userid);-- Make sure it is valid BASE VIEW-- If its not specified, give it a default (7) viewIF viewid < 1THENIF clone_viewid >= 0THENviewid := clone_viewid;ELSEviewid := 7;END IF;END IF;IF (ispatch IS NULL)THEN-- Add (Replace) package to new areapk_release.add_package (pvid, viewid, rtagid, userid);END IF;-- Now do post Release Actionspk_release.run_post_actions (pvid, rtagid);-- Now update the Dash_Board Table (DEPRECATED)pk_rmapi.update_dash_board (rtagid);-- The release has changed and there may now be invalid rtag_id/pv_id combinations in-- the DO_NOT_RIPPLE and ADVISORY_RIPPLE Tables so perform a clean-up operation upon them.clean_do_not_ripple(rtagid);clean_advisory_ripple(rtagid);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE make_unrelease (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)ISviewid NUMBER;envtab NUMBER;BEGIN-- Get ViewId--ViewId := PK_RELEASE.GET_PACKAGE_VIEW ( PvId, RtagId );viewid := get_package_view (pvid, rtagid);-- Remove from current areaenvtab := pk_environment.get_package_area (pvid, rtagid);IF envtab = 2THEN-- RELEASE AREA --pk_release.remove_package (pvid, rtagid, userid);ELSIF envtab = 1THEN-- PENDING --pk_planned.remove_package (pvid, rtagid, userid);END IF;-- Change package statepk_package.change_state (pvid, 'N', userid);-- Make sure it is valid BASE VIEWIF viewid < 1THENviewid := 7; -- This is default base viewEND IF;-- Add package to new areapk_work_in_progress.add_package (pvid, viewid, rtagid, userid);-- Now do post Release Actionspk_release.run_post_actions (pvid, rtagid);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE make_pending (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)ISviewid NUMBER;ispatch CHAR (1) := NULL;buildtype CHAR (1) := NULL;BEGIN-- Check if package is patchSELECT pv.is_patch, pv.build_typeINTO ispatch, buildtypeFROM package_versions pvWHERE pv.pv_id = pvid;-- Get ViewIdviewid := get_package_view (pvid, rtagid);--ViewId := PK_WORK_IN_PROGRESS.GET_PACKAGE_VIEW ( PvId, RtagId );IF (ispatch IS NULL)THEN-- Remove from current areapk_work_in_progress.remove_package (pvid, rtagid, userid);-- Change package statepk_package.change_state (pvid, 'P', userid);-- Add package to new areapk_planned.add_package (pvid, viewid, rtagid, userid);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE make_approved (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)ISBEGIN-- Change package statepk_package.change_state (pvid, 'A', userid);-- Flag Release has changed for the purposes of buildingPK_RELEASE.SET_RELEASE_MODIFIED(rtagid);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE make_reject (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)ISviewid NUMBER;operation CHAR;BEGIN-- Get ViewIdviewid := get_package_view (pvid, rtagid);-- ViewId := PK_PLANNED.GET_PACKAGE_VIEW ( PvId, RtagId );-- DEVI-45275-- If the package version is an official version that is to be rejected from a merge operation-- then find out in order to prevent it being added back to work-in-progress table . This will-- be denoted by the operation field in the planned table being A or Soperation := ' ';SELECT(CASE WHEN pl.operation IS NOT NULL THEN pl.operation ELSE ' ' END) INTO operationFROM planned plWHERE pl.PV_ID = pvidAND pl.RTAG_ID = rtagid;-- Remove from current areapk_planned.remove_package (pvid, rtagid, userid);-- DEVI-45275 - Prevent merge candidate from being added back to work-in-progress table .IF operation <> 'A' AND operation <> 'S'THEN-- Change package statepk_package.change_state (pvid, 'R', userid);-- Add package to new areapk_work_in_progress.add_package (pvid, viewid, rtagid, userid);ELSElog_action (pvid, 'action', userid, 'Rejected Package Merge');END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE change_package_view (pvid IN NUMBER,rtagid IN NUMBER,newviewid IN NUMBER)ISenvtab NUMBER;BEGINenvtab := pk_environment.get_package_area (pvid, rtagid);IF envtab = 0THEN-- WORK IN PROGRESS --pk_work_in_progress.change_package_view (pvid, rtagid, newviewid);ELSIF envtab = 1THEN-- PENDING --pk_planned.change_package_view (pvid, rtagid, newviewid);ELSIF envtab = 2THEN-- RELEASED --pk_release.change_package_view (pvid, rtagid, newviewid);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE find_package (skeyword IN VARCHAR2,nrtagid IN NUMBER,nsearcharea IN NUMBER,recordset OUT typecur)ISBEGINIF nsearcharea = 0THEN/* Search Work In Progress */OPEN recordset FORSELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,pv.modified_stamp, usr.full_name, usr.user_emailFROM views vi,work_in_progress rc,PACKAGES pkg,package_versions pv,users usrWHERE rc.view_id = vi.view_idAND rc.pv_id = pv.pv_idAND pkg.pkg_id = pv.pkg_idAND pv.modifier_id = usr.user_idAND rc.rtag_id = nrtagidAND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)ORDER BY UPPER (pkg.pkg_name);ELSIF nsearcharea = 1THEN/* Search Pending */OPEN recordset FORSELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,pv.modified_stamp, usr.full_name, usr.user_emailFROM views vi,planned rc,PACKAGES pkg,package_versions pv,users usrWHERE rc.view_id = vi.view_idAND rc.pv_id = pv.pv_idAND pkg.pkg_id = pv.pkg_idAND pv.modifier_id = usr.user_idAND rc.rtag_id = nrtagidAND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)ORDER BY UPPER (pkg.pkg_name);ELSIF nsearcharea = 2THEN/* Search Released */OPEN recordset FORSELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,pv.modified_stamp, usr.full_name, usr.user_emailFROM views vi,release_content rc,PACKAGES pkg,package_versions pv,users usrWHERE rc.base_view_id = vi.view_idAND rc.pv_id = pv.pv_idAND pkg.pkg_id = pv.pkg_idAND pv.modifier_id = usr.user_idAND rc.rtag_id = nrtagidAND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)ORDER BY UPPER (pkg.pkg_name);ELSIF nsearcharea = 3THEN/* Search ALL */OPEN recordset FORSELECT rc.env_area, vi.view_name, pv.dlocked, pkg.pkg_name,pv.pv_id, pv.pkg_version, pv.comments,pv.modified_stamp, usr.full_name, usr.user_emailFROM views vi,environment_view rc,PACKAGES pkg,package_versions pv,users usrWHERE rc.view_id = vi.view_idAND rc.pv_id = pv.pv_idAND pkg.pkg_id = pv.pkg_idAND pv.modifier_id = usr.user_idAND rc.rtag_id = nrtagidAND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)ORDER BY UPPER (pkg.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE find_file (skeyword IN VARCHAR2,nrtagid IN NUMBER,nsearcharea IN NUMBER,npagesize IN NUMBER,recordset OUT typecur)ISBEGINIF nsearcharea = 0THEN/* Search Work In Progress */OPEN recordset FORSELECT qry.*FROM (/* File search on Packages */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksumFROM work_in_progress rc,PACKAGES pkg,package_versions pv,release_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)UNION ALL/* File search on Products */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksumFROM work_in_progress rc,PACKAGES pkg,package_versions pv,product_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)) qryWHERE ROWNUM <= npagesizeORDER BY UPPER (qry.pkg_name);ELSIF nsearcharea = 1THEN/* Search Pending */OPEN recordset FORSELECT qry.*FROM (/* File search on Packages */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksumFROM planned rc,PACKAGES pkg,package_versions pv,release_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)UNION ALL/* File search on Products */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksumFROM planned rc,PACKAGES pkg,package_versions pv,product_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)) qryWHERE ROWNUM <= npagesizeORDER BY UPPER (qry.pkg_name);ELSIF nsearcharea = 2THEN/* Search Released */OPEN recordset FORSELECT qry.*FROM (/* File search on Packages */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksum,NULL AS patch_idFROM release_content rc,PACKAGES pkg,package_versions pv,release_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)UNION ALL/* File search on Products */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksum,NULL AS patch_idFROM release_content rc,PACKAGES pkg,package_versions pv,product_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)UNION ALL/* File search on Patches */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksum,DECODE (art.file_path,NULL, pp.patch_id,NULL) AS patch_idFROM release_content rc,PACKAGES pkg,package_versions pv,release_components art,package_patches ppWHERE pv.pv_id = pp.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.rtag_id = nrtagidAND art.pv_id = pp.patch_idAND rc.pv_id = pp.pv_idAND UPPER (art.file_name) LIKE UPPER (skeyword)) qryWHERE ROWNUM <= npagesizeORDER BY UPPER (qry.pkg_name);ELSIF nsearcharea = 3THEN/* Search ALL */OPEN recordset FORSELECT qry.*FROM (/* File search on Packages */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksum,NULL AS patch_idFROM environment_view rc,PACKAGES pkg,package_versions pv,release_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)UNION ALL/* File search on Products */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksum,NULL AS patch_idFROM environment_view rc,PACKAGES pkg,package_versions pv,product_components artWHERE rc.pv_id = art.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.pv_id = pv.pv_idAND rc.rtag_id = nrtagidAND UPPER (art.file_name) LIKE UPPER (skeyword)UNION ALL/* File search on Patches */SELECT art.file_name, art.file_path, pkg.pkg_name,pv.pv_id, pv.pkg_version, art.crc_cksum,DECODE (art.file_path,NULL, pp.patch_id,NULL) AS patch_idFROM release_content rc,PACKAGES pkg,package_versions pv,release_components art,package_patches ppWHERE pv.pv_id = pp.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.rtag_id = nrtagidAND art.pv_id = pp.patch_idAND rc.pv_id = pp.pv_idAND UPPER (art.file_name) LIKE UPPER (skeyword)) qryWHERE ROWNUM <= npagesizeORDER BY UPPER (qry.pkg_name);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_prodrelease_items (rtagid IN NUMBER,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count n the number of integration productsSELECT COUNT (rc.pv_id)INTO ntruerecordcountFROM release_content rcWHERE rc.rtag_id = rtagid;OPEN recordset FORSELECT vi.view_id, vi.view_name, rel.pkg_state, --rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND pv.is_deployable = 'Y'AND rtag_id = rtagidAND pv.pv_id NOT IN (SELECT DISTINCT prod_idFROM deployment_manager.os_contents)AND rel.product_state IS NULLORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_integration_items (rtagid IN NUMBER,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count n the number of integration productsSELECT COUNT (rc.pv_id)INTO ntruerecordcountFROM release_content rcWHERE rc.rtag_id = rtagid AND rc.product_state = 1;OPEN recordset FORSELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND pv.is_deployable = 'Y'AND rtag_id = rtagidAND rel.product_state IN (1, 5)ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_test_items (rtagid IN NUMBER,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count n the number of test productsSELECT COUNT (rc.pv_id)INTO ntruerecordcountFROM release_content rcWHERE rc.rtag_id = rtagid AND rc.product_state = 2;OPEN recordset FORSELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND pv.is_deployable = 'Y'AND rtag_id = rtagidAND rel.product_state = 2ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_deploy_items (rtagid IN NUMBER,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count n the number of deploy productsSELECT COUNT (rc.pv_id)INTO ntruerecordcountFROM release_content rcWHERE rc.rtag_id = rtagid AND rc.product_state = 3;OPEN recordset FORSELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND pv.is_deployable = 'Y'AND rtag_id = rtagidAND rel.product_state IN (3, 5)AND pv.pv_id NOT IN (SELECT DISTINCT prod_idFROM deployment_manager.os_contents)ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE get_reject_items (rtagid IN NUMBER,ntruerecordcount OUT NUMBER,recordset OUT typecur)ISBEGIN-- Get true record count n the number of reject productsSELECT COUNT (rc.pv_id)INTO ntruerecordcountFROM release_content rcWHERE rc.rtag_id = rtagid AND rc.product_state = 4;OPEN recordset FORSELECT vi.view_id, vi.view_name, rel.pkg_state,rel.deprecated_state, pv.pv_id, pkg.pkg_name,pv.pkg_version, pv.dlocked, pv.pv_descriptionFROM release_content rel,PACKAGES pkg,package_versions pv,views viWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.base_view_id = vi.view_idAND pv.is_deployable = 'Y'AND rtag_id = rtagidAND rel.product_state = 4ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);END;/*-------------------------------------------------------------------------------------------------------*/-- DEVI-45275 - this procedure performs the merge of an existing package version in the planned table-- to the release_content table.PROCEDURE approve_merge (PvId IN NUMBER,RtagId IN NUMBER,UserId IN NUMBER)ISviewid NUMBER;envtab NUMBER;oper CHAR;BEGIN-- Get ViewIdviewid := get_package_view (pvid, rtagid);-- Get the view tabenvtab := pk_environment.get_package_area (pvid, rtagid);-- Make sure that package was in pending before merging it to releasedIF (envtab <> 1)THEN-- Not found in pendingraise_application_error (-20000,'This package cannot be released here.');END IF;-- Get the planned operation type A=Add, S=SubtractSELECT ev.operation INTO operFROM environment_view evWHERE ev.rtag_id = RtagIdAND ev.pv_id = PvIdAND (ev.operation = 'A' OR ev.operation = 'S');-- Remove from Pendingpk_planned.remove_package (PvId, RtagId, UserId);-- Either add to the release, or remove from the release as the operation commandsIF oper = 'A'THENpk_release.add_package(PvId, viewId, RtagId, UserId);ELSIF oper = 'S'THENpk_release.remove_package(PvId, RtagId, UserId);-- Delete old package's pegging infoDELETE FROM PEGGED_VERSIONS pegv WHERE pegv.RTAG_ID = RtagId AND pegv.PV_ID = PvId;-- Delete old package's advisory ripple infoDELETE FROM ADVISORY_RIPPLE avr WHERE avr.RTAG_ID = RtagId AND avr.PV_ID = PvId;END IF;touch_release(RtagId);END;/*-------------------------------------------------------------------------------------------------------*/END pk_environment;/---------------------------------------------------------- DDL for Package Body PK_LICENCING--------------------------------------------------------CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_LICENCING" IS/*------------------------------|| Last Modified: G.Huddy|| Modified Date: 19/Aug/2008|| Body Version: 1.0------------------------------*/PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) ISBEGINIF IS_LICENCED(PvId, licenceId) = 0 THEN-- Add entry to licencing tableINSERT INTO licencing (pv_id, licence)VALUES (PvId, licenceId);-- log action-- TODOEND IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) ISBEGINIF NOT IS_LICENCED(PvId, licenceId) = 0 THEN-- Delete entry from licencing tableDELETE FROM licencingWHERE pv_id = PvIdAND licence = licenceId;-- log action-- TODOEND IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER ) ISCURSOR licencing_curISSELECT *FROM licencingWHERE pv_id = fromPvId;licencing_rec licencing_cur%ROWTYPE;BEGIN-- For each licence association that the Last PV_ID had, create a similar-- arrangement for the new PV_ID-- NOTE that any additional licencing associations the new PV_ID has that the old one-- does not have, are retained. The assumption is that the user has made those and so we do not-- have any right to destroy them without asking them.OPEN licencing_cur;FETCH licencing_curINTO licencing_rec;WHILE licencing_cur%FOUNDLOOPADD_LICENCE ( toPvId, licencing_rec.licence, UserId );FETCH licencing_curINTO licencing_rec;END LOOP;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER ISfound NUMBER;BEGINSELECT COUNT(*) INTO foundFROM licencingWHERE pv_id = PvIdAND licence = LicenceId;RETURN found;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER ) ISCURSOR licencing_curISSELECT *FROM licencingWHERE pv_id = PvId;licencing_rec licencing_cur%ROWTYPE;BEGIN-- For each licence association that the PV_ID had, remove itOPEN licencing_cur;FETCH licencing_curINTO licencing_rec;WHILE licencing_cur%FOUNDLOOPREMOVE_LICENCE ( PvId, licencing_rec.licence, UserId );FETCH licencing_curINTO licencing_rec;END LOOP;END;/*-------------------------------------------------------------------------------------------------------*/END PK_LICENCING;/---------------------------------------------------------- DDL for Package Body PK_PACKAGE--------------------------------------------------------CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PACKAGE"IS/*-------------------------------------------------------------------------------------------------------*/PROCEDURE new_version (nlastpvid IN NUMBER,snewpkgversion IN VARCHAR2 DEFAULT NULL,cbuildtype IN CHAR,cchangetype IN CHAR,nsettopvid IN NUMBER DEFAULT NULL,nrtagid IN NUMBER,nuserid IN NUMBER,enumissues_state_imported IN NUMBER,returnpvid OUT NUMBER)ISorigpkg_id package_versions.pkg_id%TYPE;origdlocked package_versions.dlocked%TYPE;ssv_mm package_versions.v_mm%TYPE;ssv_nmm package_versions.v_nmm%TYPE;ssv_ext package_versions.v_ext%TYPE;spackageversion VARCHAR2 (4000);nissuestypes NUMBER;nviewid NUMBER;reccount NUMBER;isreleased package_versions.dlocked%TYPE := 'N';slabel VARCHAR2 (4000) := NULL;uchangetype CHAR := cchangetype;CURSOR package_versions_curISSELECT pv.pv_id, pv.is_patch, pv.dlockedFROM package_versions pvWHERE pv.pkg_version = snewpkgversionAND pv.pkg_id IN (SELECT DISTINCT origpv.pkg_idFROM package_versions origpvWHERE origpv.pv_id = nlastpvid);package_versions_rec package_versions_cur%ROWTYPE;CURSOR clone_package_versions_curISSELECT DISTINCT pkg_id, dlockedFROM package_versionsWHERE pv_id = nlastpvid;clone_package_versions_rec clone_package_versions_cur%ROWTYPE;BEGINspackageversion := snewpkgversion;IF nsettopvid IS NULLTHEN-- SetToPv_id is not supplied, hence proceed./* ---------------------------------------------------- *//* Find id package_version exists *//* ---------------------------------------------------- */OPEN package_versions_cur;FETCH package_versions_curINTO package_versions_rec;IF package_versions_cur%NOTFOUNDTHEN--- Create brand new package ---SELECT seq_pv_id.NEXTVALINTO returnpvidFROM DUAL;-- Split Version to get extention + othersplit_version (spackageversion, ssv_mm, ssv_nmm, ssv_ext);-- Get previous package to clone fromOPEN clone_package_versions_cur;FETCH clone_package_versions_curINTO clone_package_versions_rec;origpkg_id := clone_package_versions_rec.pkg_id;origdlocked := clone_package_versions_rec.dlocked;CLOSE clone_package_versions_cur;-- Automated built configIF ( cbuildtype = 'M' ) THENuchangetype := 'F';END IF;-- Automated version numbering-- Make sure that version is still uniqueIF (uchangetype != 'F') THENspackageversion := '(' || returnpvid || ')' || ssv_ext;END IF;-- Clone Package Version Details --INSERT INTO package_versions(pv_id, pkg_id, pkg_version, dlocked, created_stamp,creator_id, modified_stamp, modifier_id, v_mm, v_nmm,v_ext, src_path, pv_description, pv_overview,last_pv_id, owner_id, is_deployable,is_build_env_required, build_type, change_type,bs_id, is_autobuildable, ripple_field, build_time)SELECT returnpvid AS pv_id, origpkg_id AS pkg_id,spackageversion AS pkg_version, 'N' AS dlocked,ora_sysdate AS created_stamp, nuserid AS creator_id,ora_sysdatetime AS modified_stamp,nuserid AS modifier_id, ssv_mm AS v_mm,ssv_nmm AS v_nmm, ssv_ext AS v_ext, pv.src_path,pv.pv_description, pv.pv_overview,nlastpvid AS last_pv_id, pv.owner_id, pv.is_deployable,pv.is_build_env_required, cbuildtype, uchangetype,pv.bs_id, pv.is_autobuildable, pv.ripple_field, pv.build_timeFROM package_versions pvWHERE pv.pv_id = nlastpvid;-- Set Issues Type for cloning ---IF origdlocked = 'Y'THENnissuestypes := enumissues_state_imported;ELSEnissuestypes := NULL;END IF;basic_clone (nlastpvid,returnpvid,nrtagid,nuserid,origpkg_id,nissuestypes);-- Update Label for versioning purposesslabel := get_automated_label (returnpvid);UPDATE package_versions pvSET pv.pkg_label = slabelWHERE pv.pv_id = returnpvid;ELSE--- Package already exists, hence reuse ---returnpvid := package_versions_rec.pv_id;isreleased := package_versions_rec.dlocked;END IF;CLOSE package_versions_cur;ELSEreturnpvid := nsettopvid;END IF;END new_version;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE change_state (pvid IN NUMBER,newstate IN package_versions.dlocked%TYPE,userid IN NUMBER)ISBEGIN-- Set package in Released modeUPDATE package_versions pvSET pv.dlocked = newstate,pv.modified_stamp = ora_sysdatetime,pv.modifier_id = useridWHERE pv.pv_id = pvid;-- Log action --IF newstate = 'Y'THEN-- RELEASED --log_action (pvid, 'makeofficial', userid, 'Package state change to: Released');ELSIF newstate = 'N'THEN-- UNLOCKED --log_action (pvid, 'makeunofficial',userid, 'Package state change to: Ulocked');ELSIF newstate = 'P'THEN-- PENDING APPROVAL --log_action (pvid, 'add_to_planned',userid,'Package state change to: Pending Approval');ELSIF newstate = 'R'THEN-- REJECTED --log_action (pvid,'reject_package',userid,'Package state change to: Rejected');ELSIF newstate = 'A'THEN-- APPROVED --log_action (pvid, 'approve_package', userid, 'Package state change to: Approved');END IF;END;/*-------------------------------------------------------------------------------------------------------*/-- This function has been deprecated and can be deleted-- Replaced with destroy_package_extendedPROCEDURE destroy_package (pvid IN NUMBER,overridewarnings IN CHAR DEFAULT 'N',problemstring OUT VARCHAR2)ISLOCKED CHAR;pkgid NUMBER;ROWCOUNT NUMBER;lastPvid NUMBER;BEGIN/*|| This will destroy all package details from database.|| It will only be used to remove unwanted work in progress packages,|| or mistaken versions*//*--------------- Business Rules Here -------------------*/problemstring := NULL;IF overridewarnings = 'N'THEN-- Package must not be officialSELECT pv.dlockedINTO LOCKEDFROM package_versions pvWHERE pv.pv_id = pvid;IF LOCKED = 'Y'THENproblemstring :=problemstring|| '- Package is locked and released.'||PK_PACKAGE.crlf;END IF;-- Cannot remove if used in BOMsSELECT COUNT (osc.prod_id)INTO ROWCOUNTFROM deployment_manager.os_contents oscWHERE osc.prod_id = pvid;IF ROWCOUNT > 0THENproblemstring :=problemstring|| '- Package is part of Bill-Of-Material (BOM) in Deployment Manager.'||PK_PACKAGE.crlf;END IF;-- Cannot remove if used in an SDKSELECT COUNT (sc.pv_id)INTO ROWCOUNTFROM sdk_content scWHERE sc.pv_id = pvid;IF ROWCOUNT > 0THENproblemstring :=problemstring|| '- Package is part of an SDK.'||PK_PACKAGE.crlf;END IF;-- Cannot remove if Referenced as build dependencySELECT COUNT (dep.pv_id)INTO ROWCOUNTFROM package_dependencies depWHERE dep.dpv_id = pvid;IF ROWCOUNT > 0THENproblemstring :=problemstring|| '- Package is referenced by other package as build dependency.'||PK_PACKAGE.crlf;END IF;-- Cannot remove if Referenced as runtime dependencySELECT COUNT (rd.pv_id)INTO ROWCOUNTFROM runtime_dependencies rdWHERE rd.rtd_id = pvid;IF ROWCOUNT > 0THENproblemstring :=problemstring|| '- Package is referenced by other package as runtime dependency.'||PK_PACKAGE.crlf;END IF;-- Cannot remove if Referenced as patchSELECT COUNT (pp.pv_id)INTO ROWCOUNTFROM package_patches ppWHERE pp.patch_id = pvid;IF ROWCOUNT > 0THENproblemstring :=problemstring|| '- Package is used as patch by other package.'||PK_PACKAGE.crlf;END IF;-- Cannot remove if a Daemon InstructionSELECT COUNT (di.pv_id)INTO ROWCOUNTFROM DAEMON_INSTRUCTIONS diWHERE di.pv_id = pvid;IF ROWCOUNT > 0THENproblemstring :=problemstring|| '- Package is in use for a Daemon Instruction.'||PK_PACKAGE.crlf;END IF;END IF;/*-------------------------------------------------------*/IF (problemstring IS NULL)THEN--- Remove From Work in ProgressDELETE FROM work_in_progress wipWHERE wip.pv_id = pvid;--- Remove From PendingDELETE FROM planned plWHERE pl.pv_id = pvid;--- Remove From Released areaDELETE FROM release_content rcWHERE rc.pv_id = pvid;---Remove From Package ProcessesDELETE FROM package_processes ppWHERE pp.pv_id = pvid;--- Remove DependenciesDELETE FROM package_dependencies depWHERE dep.pv_id = pvid;DELETE FROM package_dependencies depWHERE dep.dpv_id = pvid;--- Remove Runtime dependenciesDELETE FROM runtime_dependencies rtdWHERE rtd.pv_id = pvid;DELETE FROM runtime_dependencies rtdWHERE rtd.rtd_id = pvid;--- Remove componentsDELETE FROM product_components pcWHERE pc.pv_id = pvid;DELETE FROM release_components rcWHERE rc.pv_id = pvid;--- Remove From Notification HistoryDELETE FROM notification_history nhWHERE nh.pv_id = pvid;--- Remove From Ignore WarningsDELETE FROM ignore_warnings iwWHERE iw.pv_id = pvid;--- Remove From Additional NotesDELETE FROM additional_notes anWHERE an.pv_id = pvid;--- Remove From CQ IssuesDELETE FROM cq_issues cqWHERE cq.pv_id = pvid;--- Remove from Package PatchesDELETE FROM package_patches ppWHERE pp.pv_id = pvid;DELETE FROM package_patches ppWHERE pp.patch_id = pvid;--- Remove From Package DocumentsDELETE FROM package_documents pdWHERE pd.pv_id = pvid;--- Remove from Code ReviewDELETE FROM code_reviews crWHERE cr.pv_id = pvid;--- Remove from Code Review URLDELETE FROM code_review_url cruWHERE cru.pv_id = pvid;--- Remove from Unit TestsDELETE FROM unit_tests utWHERE ut.pv_id = pvid;--- Remove from Package BuildEnvDELETE FROM package_build_env pbeWHERE pbe.pv_id = pvid;--- Remove from Package Build InfoDELETE FROM package_build_info pbiWHERE pbi.pv_id = pvid;--- Remove from Build PlanDELETE FROM BUILD_PLAN bpWHERE bp.pv_id = pvid;--- Remove from Build InstancesDELETE FROM BUILD_INSTANCES biWHERE bi.pv_id = pvid;--- Remove from Build OrderDELETE FROM build_order boWHERE bo.pv_id = pvid;--- Remove from LicencingPK_LICENCING.REMOVE_ALL_LICENCING( pvid, 0 );--- Remove from Note ManagerDELETE FROM note_manager nmWHERE nm.nid = pvid;--- Remove from Action logDELETE FROM action_log alWHERE al.pv_id = pvid;--- Remove from Do Not RippleDELETE FROM DO_NOT_RIPPLE dnrWHERE dnr.PV_ID = pvid;--- Remove from SDKDELETE FROM SDK_CONTENT scWHERE sc.PV_ID = pvid;-- Remove from daemon InstructionDELETE FROM DAEMON_INSTRUCTIONS diWHERE di.PV_ID = pvid;--- Remove from Advisory RippleDELETE FROM ADVISORY_RIPPLE arWHERE ar.PV_ID = pvid;--- Remove from Jira IssuesDELETE FROM JIRA_ISSUES jiraWHERE jira.PV_ID = pvid;--- Remove from Package MetricsDELETE FROM package_metrics pmWHERE pm.pv_id = pvid;-- Delete from Pegged VersionsDELETE FROM pegged_versions pegvWHERE pegv.pv_id = pvid;--- Finally Remove From Package Versions--- Get Package nameSELECT pv.pkg_id, pv.LAST_PV_IDINTO pkgid, lastPvidFROM package_versions pvWHERE pv.pv_id = pvid;--- Relink packages last_pv_idIF lastPvid is NOT NULL AND pvid != lastPvid THENUPDATE package_versions pvSET pv.LAST_PV_ID = lastPvidWHERE pv.LAST_PV_ID = pvid;END IF;--- Delete the versionDELETE FROM package_versions pvWHERE pv.pv_id = pvid;--- Remove package name if not used any moreSELECT COUNT (pv.pv_id)INTO ROWCOUNTFROM package_versions pvWHERE pv.pkg_id = pkgid;IF ROWCOUNT < 1THENDELETE FROM PACKAGES pkgWHERE pkg.pkg_id = pkgid;END IF;END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE destroy_package_extended (pvid IN NUMBER,rtagid IN NUMBER,overridewarnings IN NUMBER DEFAULT 0,RESULTS OUT SYS_REFCURSOR-- pvid - The pvid of the package to delete-- rtagid - Package is allowed to exist in this release-- overridewarnings-- 0 - Do not delete, just test-- 1 - Delete package if there are only advisory warnings-- 2 - Delete package even if there are FoolHardy warnings-- Results [OUTPUT]-- Message Text, Error Level-- Where error Level is-- 'A' - Advisory.-- 'F' - Foolhardy. Will damage releases, SBOMs and other packages)ISLOCKED CHAR;pkgid NUMBER;ROWCOUNT NUMBER;lastPvid NUMBER;vartbl RELMGR_PKG_DESTROY_ERR_TAB_T := RELMGR_PKG_DESTROY_ERR_TAB_T();ii NUMBER;-- Add message to table that will be returnedPROCEDURE ADD_MESSAGE( p1 IN VARCHAR2, p2 IN CHAR)ISBEGINii := ii + 1;vartbl.extend;vartbl(ii) := RELMGR_PKG_DESTROY_ERR_T(p1,UPPER(p2));END;BEGIN/*|| This will destroy all package details from database.|| It will only be used to remove unwanted work in progress packages,|| or mistaken versions*//*--------------- Business Rules Here -------------------*/ii := 0;IF overridewarnings < 1THEN-- Package must not be officialSELECT pv.dlockedINTO LOCKEDFROM package_versions pvWHERE pv.pv_id = pvid;IF LOCKED = 'Y'THENADD_MESSAGE ('Package Version is locked and released.', 'A');END IF;-- Cannot remove if a WIPSELECT COUNT (pv_id)INTO ROWCOUNTFROM work_in_progress wipWHERE wip.pv_id = pvid AND wip.RTAG_ID != rtagid;IF ROWCOUNT > 0THENADD_MESSAGE ('Version is in use as a WIP.', 'A');END IF;-- Cannot remove if a PENDINGSELECT COUNT (pv_id)INTO ROWCOUNTFROM planned plWHERE pl.pv_id = pvid AND pl.RTAG_ID != rtagid;IF ROWCOUNT > 0THENADD_MESSAGE ('Version is Pending in a release.', 'A');END IF;-- Cannot remove if in a ReleaseSELECT COUNT (pv_id)INTO ROWCOUNTFROM release_content rcWHERE pv_id = pvid AND rc.RTAG_ID != rtagid;IF ROWCOUNT > 1THENADD_MESSAGE ('Version is a part of another Releases.', 'A');END IF;-- Cannot remove if a Daemon InstructionSELECT COUNT (di.pv_id)INTO ROWCOUNTFROM DAEMON_INSTRUCTIONS diWHERE di.pv_id = pvid;IF ROWCOUNT > 0THENADD_MESSAGE ('Version has outstanding Daemon Instruction.', 'A');END IF;END IF;IF overridewarnings < 2THEN-- Cannot remove if used in BOMsSELECT COUNT (osc.prod_id)INTO ROWCOUNTFROM deployment_manager.os_contents oscWHERE osc.prod_id = pvid;IF ROWCOUNT > 0THENADD_MESSAGE ('Version is part of Bill-Of-Material (BOM) in Deployment Manager.', 'F');END IF;-- Cannot remove if used in BOMs - Base EnvSELECT COUNT (bec.prod_id)INTO ROWCOUNTFROM deployment_manager.base_env_contents becWHERE bec.prod_id = pvid;IF ROWCOUNT > 0THENADD_MESSAGE ('Version is part of Base Environment in Deployment Manager.', 'F');END IF;-- Cannot remove if used in an SDKSELECT COUNT (sc.pv_id)INTO ROWCOUNTFROM sdk_content scWHERE sc.pv_id = pvid;IF ROWCOUNT > 0THENADD_MESSAGE ('Version is part of an SDK', 'F');END IF;-- Cannot remove if Referenced as build dependencySELECT COUNT (dep.pv_id)INTO ROWCOUNTFROM package_dependencies depWHERE dep.dpv_id = pvid;IF ROWCOUNT > 0THENADD_MESSAGE ('Version is referenced by a package as build dependency.', 'F');END IF;-- Cannot remove if Referenced as runtime dependencySELECT COUNT (rd.pv_id)INTO ROWCOUNTFROM runtime_dependencies rdWHERE rd.rtd_id = pvid;IF ROWCOUNT > 0THENADD_MESSAGE ('Version is referenced by other package as a runtime dependency.', 'F');END IF;-- Cannot remove if Referenced as patchSELECT COUNT (pp.pv_id)INTO ROWCOUNTFROM package_patches ppWHERE pp.patch_id = pvid;IF ROWCOUNT > 0THENADD_MESSAGE ('Version is used as a patch by other package.', 'F');END IF;END IF;/*-------------------------------------------------------*/IF (ii = 0 AND overridewarnings > 0)THEN--- Remove From Work in ProgressDELETE FROM work_in_progress wipWHERE wip.pv_id = pvid;--- Remove From PendingDELETE FROM planned plWHERE pl.pv_id = pvid;--- Remove From Released areaDELETE FROM release_content rcWHERE rc.pv_id = pvid;---Remove From Package ProcessesDELETE FROM package_processes ppWHERE pp.pv_id = pvid;--- Remove DependenciesDELETE FROM package_dependencies depWHERE dep.pv_id = pvid;DELETE FROM package_dependencies depWHERE dep.dpv_id = pvid;--- Remove Runtime dependenciesDELETE FROM runtime_dependencies rtdWHERE rtd.pv_id = pvid;DELETE FROM runtime_dependencies rtdWHERE rtd.rtd_id = pvid;--- Remove componentsDELETE FROM product_components pcWHERE pc.pv_id = pvid;DELETE FROM release_components rcWHERE rc.pv_id = pvid;--- Remove From Notification HistoryDELETE FROM notification_history nhWHERE nh.pv_id = pvid;--- Remove From Ignore WarningsDELETE FROM ignore_warnings iwWHERE iw.pv_id = pvid;--- Remove From Additional NotesDELETE FROM additional_notes anWHERE an.pv_id = pvid;--- Remove From CQ IssuesDELETE FROM cq_issues cqWHERE cq.pv_id = pvid;--- Remove from Package PatchesDELETE FROM package_patches ppWHERE pp.pv_id = pvid;DELETE FROM package_patches ppWHERE pp.patch_id = pvid;--- Remove From Package DocumentsDELETE FROM package_documents pdWHERE pd.pv_id = pvid;--- Remove from Code ReviewDELETE FROM code_reviews crWHERE cr.pv_id = pvid;--- Remove from Code Review URLDELETE FROM code_review_url cruWHERE cru.pv_id = pvid;--- Remove from Unit TestsDELETE FROM unit_tests utWHERE ut.pv_id = pvid;--- Remove from Package BuildEnvDELETE FROM package_build_env pbeWHERE pbe.pv_id = pvid;--- Remove from Package Build InfoDELETE FROM package_build_info pbiWHERE pbi.pv_id = pvid;--- Remove from Build PlanDELETE FROM BUILD_PLAN bpWHERE bp.pv_id = pvid;--- Remove from Build InstancesDELETE FROM BUILD_INSTANCES biWHERE bi.pv_id = pvid;--- Remove from Build OrderDELETE FROM build_order boWHERE bo.pv_id = pvid;--- Remove from LicencingPK_LICENCING.REMOVE_ALL_LICENCING( pvid, 0 );--- Remove from Note ManagerDELETE FROM note_manager nmWHERE nm.nid = pvid;--- Remove from Action logDELETE FROM action_log alWHERE al.pv_id = pvid;--- Remove from Do Not RippleDELETE FROM DO_NOT_RIPPLE dnrWHERE dnr.PV_ID = pvid;--- Remove from SDKDELETE FROM SDK_CONTENT scWHERE sc.PV_ID = pvid;-- Remove from daemon InstructionDELETE FROM DAEMON_INSTRUCTIONS diWHERE di.PV_ID = pvid;--- Remove from Advisory RippleDELETE FROM ADVISORY_RIPPLE arWHERE ar.PV_ID = pvid;--- Remove from Jira IssuesDELETE FROM JIRA_ISSUES jiraWHERE jira.PV_ID = pvid;--- Remove from Package MetricsDELETE FROM package_metrics pmWHERE pm.pv_id = pvid;-- Delete from Pegged VersionsDELETE FROM pegged_versions pegvWHERE pegv.pv_id = pvid;--- Finally Remove From Package Versions--- Get Package nameSELECT pv.pkg_id, pv.LAST_PV_IDINTO pkgid, lastPvidFROM package_versions pvWHERE pv.pv_id = pvid;--- Relink packages last_pv_idIF lastPvid is NOT NULL AND pvid != lastPvid THENUPDATE package_versions pvSET pv.LAST_PV_ID = lastPvidWHERE pv.LAST_PV_ID = pvid;END IF;--- Delete the versionDELETE FROM package_versions pvWHERE pv.pv_id = pvid;--- Remove package name if not used any moreSELECT COUNT (pv.pv_id)INTO ROWCOUNTFROM package_versions pvWHERE pv.pkg_id = pkgid;IF ROWCOUNT < 1THENDELETE FROM PACKAGES pkgWHERE pkg.pkg_id = pkgid;END IF;END IF;--- Return table of reasons the package shouldn't be destroyedopen RESULTS for select * from table(vartbl);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE new_patch (snewpatchversion IN package_versions.pkg_version%TYPE,nparentpvid IN NUMBER,spatchidlist IN VARCHAR2,nuserid IN NUMBER,returnpatchid OUT NUMBER)ISpatchpv_id NUMBER;parpkg_id NUMBER;lastinstallorder NUMBER;ispatchdlocked package_versions.dlocked%TYPE;ssv_mm package_versions.v_mm%TYPE;ssv_nmm package_versions.v_nmm%TYPE;ssv_ext package_versions.v_ext%TYPE;opatchdepcollector relmgr_number_tab_t := relmgr_number_tab_t ();CURSOR parent_curISSELECT pv.*, pkg.pkg_nameFROM package_versions pv, PACKAGES pkgWHERE pv.pv_id = nparentpvid AND pv.pkg_id = pkg.pkg_id;parent_rec parent_cur%ROWTYPE;CURSOR patch_curISSELECT pv.*, pg.pkg_nameFROM package_versions pv, PACKAGES pgWHERE pv.pkg_id = parpkg_idAND pv.pkg_version = snewpatchversionAND pv.pkg_id = pg.pkg_id;patch_rec patch_cur%ROWTYPE;CURSOR releases_curISSELECT rc.pv_idFROM release_content rcWHERE rc.pv_id = patch_rec.pv_id;releases_rec releases_cur%ROWTYPE;BEGIN-- Get Last Install OrderSELECT COUNT (*)INTO lastinstallorderFROM package_patches ppWHERE pp.pv_id = nparentpvid;-- Get parent detailsOPEN parent_cur;FETCH parent_curINTO parent_rec;parpkg_id := parent_rec.pkg_id;-- Find if patch exists in databaseOPEN patch_cur;FETCH patch_curINTO patch_rec;-- Parent must be officialIF parent_rec.dlocked = 'Y'THENIF patch_cur%NOTFOUNDTHENispatchdlocked := 'N';-- Create new patch version --SELECT seq_pv_id.NEXTVALINTO patchpv_idFROM DUAL;split_version (snewpatchversion, ssv_mm, ssv_nmm, ssv_ext);INSERT INTO package_versions(pv_id, pkg_id, pkg_version,dlocked, created_stamp, creator_id,modified_stamp, modifier_id, v_mm, v_nmm, v_ext,src_path,pv_description,owner_id, is_patch, last_pv_id, build_type, is_build_env_required, bs_id,is_autobuildable, ripple_field)VALUES (patchpv_id, parpkg_id, snewpatchversion,ispatchdlocked, ora_sysdate, nuserid,ora_sysdatetime, nuserid, ssv_mm, ssv_nmm, ssv_ext,parent_rec.src_path,'This is a patch to '|| parent_rec.pkg_name|| ' '|| parent_rec.pkg_version,nuserid, 'Y', patchpv_id, 'M', 'N', 3, 'N', parent_rec.ripple_field);INSERT INTO package_patches(pv_id, patch_id, install_order)(SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,lastinstallorder + 1 AS install_orderFROM package_versions pvWHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');/* LOG ACTION */log_action (patchpv_id, 'new_version', nuserid, 'Patch version created: ' || snewpatchversion );log_action (nparentpvid, 'patch_add', nuserid, 'New patch created and attached: ' || snewpatchversion );ELSEpatchpv_id := patch_rec.pv_id;ispatchdlocked := patch_rec.dlocked;-- Find if pv_id exists in release content (i.e. it cannot be a patch)OPEN releases_cur;FETCH releases_curINTO releases_rec;IF releases_cur%NOTFOUNDTHEN-- This pv_id is trully a patch, hence add Y to column IS_PATCHUPDATE package_versionsSET is_patch = 'Y'WHERE pv_id = patchpv_id;INSERT INTO package_patches(pv_id, patch_id, install_order)(SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,lastinstallorder + 1 AS install_orderFROM package_versions pvWHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');END IF;CLOSE releases_cur;/* LOG ACTION */log_action (nparentpvid, 'patch_add', nuserid, 'Patch version was found and attached: ' || snewpatchversion );END IF;END IF;/* Create Patch Dependencies */opatchdepcollector := in_list_number (spatchidlist);-- Make sure patch is unofficial before altering its dependenciesIF (opatchdepcollector.COUNT > 0) AND (ispatchdlocked = 'N')THEN-- Delete Existing DependenciesDELETE FROM package_dependencies depWHERE dep.pv_id = patchpv_id;-- Insert new dependenciesINSERT INTO package_dependencies(pv_id, dpv_id, pkg_id, dpkg_id, build_type)SELECT patchpv_id AS pv_id, pv.pv_id AS dpv_id,parpkg_id AS pkg_id, pv.pkg_id AS dpkg_id,'L' AS build_typeFROM package_versions pvWHERE pv.pv_id IN (SELECT *FROM TABLE(CAST(opatchdepcollector AS relmgr_number_tab_t)));END IF;-- Return patch_idreturnpatchid := patchpv_id;CLOSE parent_cur;CLOSE patch_cur;EXCEPTIONWHEN DUP_VAL_ON_INDEXTHENraise_application_error (-20000,'Patch version '|| snewpatchversion|| ' already exist.');END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE obsolete_patch (patchid IN NUMBER,isobsolete IN CHAR,obsoletecomments IN VARCHAR2,userid IN NUMBER)ISBEGIN-- Update patchUPDATE package_versions pvSET pv.is_obsolete = isobsolete,pv.obsolete_comments = obsoletecommentsWHERE pv.pv_id = patchid;/*-- Update patch childrenUPDATE PACKAGE_VERSIONS pv SETpv.IS_OBSOLETE = IsObsolete,pv.OBSOLETE_COMMENTS = ObsoleteCommentsWHERE pv.PV_ID IN (SELECT DISTINCT dep.DPV_IDFROM PACKAGE_DEPENDENCIES depWHERE dep.PV_ID = PatchId);-- Update patch parentUPDATE PACKAGE_VERSIONS pv SETpv.IS_OBSOLETE = IsObsolete,pv.OBSOLETE_COMMENTS = ObsoleteCommentsWHERE pv.PV_ID IN (SELECT DISTINCT dep.PV_IDFROM PACKAGE_DEPENDENCIES depWHERE dep.DPV_ID = PatchId);*//* LOG ACTION */IF isobsolete IS NOT NULLTHENlog_action (patchid, 'patch_obsolete', userid, 'Obsolete patch. ' || obsoletecomments );ELSElog_action (patchid, 'patch_obsolete', userid, 'Undo patch obsolete.' );END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE obsolete_patches (spatchidlist IN VARCHAR2,isobsolete IN CHAR,obsoletecomments IN VARCHAR2,userid IN NUMBER)ISBEGIN/*--------------- Business Rules Here -------------------*/IF spatchidlist IS NULLTHENraise_application_error (-20000,'Please select one or more Patches.');END IF;/*-------------------------------------------------------*/-- Update patchUPDATE package_versions pvSET pv.is_obsolete = isobsolete,pv.obsolete_comments = obsoletecommentsWHERE pv.pv_id IN (SELECT *FROM THE(SELECT CAST(in_list_number (spatchidlist) AS relmgr_number_tab_t)FROM DUAL));/*-- Update patch childrenUPDATE PACKAGE_VERSIONS pv SETpv.IS_OBSOLETE = IsObsolete,pv.OBSOLETE_COMMENTS = ObsoleteCommentsWHERE pv.PV_ID IN (SELECT DISTINCT dep.DPV_IDFROM PACKAGE_DEPENDENCIES depWHERE dep.PV_ID = PatchId);-- Update patch parentUPDATE PACKAGE_VERSIONS pv SETpv.IS_OBSOLETE = IsObsolete,pv.OBSOLETE_COMMENTS = ObsoleteCommentsWHERE pv.PV_ID IN (SELECT DISTINCT dep.PV_IDFROM PACKAGE_DEPENDENCIES depWHERE dep.DPV_ID = PatchId);*//* LOG ACTIONIF IsObsolete IS NOT NULL THENLog_Action ( PatchId, 'patch_obsolete', UserId, 'Obsolete patch. '|| ObsoleteComments );ELSELog_Action ( PatchId, 'patch_obsolete', UserId, 'Undo patch obsolete.' );END IF; */END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_process (nprocid IN processes.proc_id%TYPE,shealthtag IN processes.proc_name%TYPE,sprocdesc IN processes.proc_description%TYPE,scmdinterface IN processes.run_as%TYPE,spkgowner IN processes.pkg_owner%TYPE,sisinterface IN processes.is_interface%TYPE,npvid IN package_processes.pv_id%TYPE,nuserid IN NUMBER)ISpkgname VARCHAR2 (100);BEGININSERT INTO processes(proc_id, proc_name, proc_description, run_as, pkg_owner,is_interface)VALUES (nprocid, shealthtag, sprocdesc, scmdinterface, spkgowner,sisinterface);pk_package.add_package_process (nprocid, npvid, nuserid);END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE add_package_process (nprocidlist IN VARCHAR2,npvid IN package_processes.pv_id%TYPE,nuserid IN NUMBER)ISprocessname VARCHAR2 (4000);CURSOR proc_curISSELECT prc.proc_idFROM processes prcWHERE prc.proc_id IN (SELECT *FROM THE(SELECT CAST(in_list_number (nprocidlist) AS relmgr_number_tab_t)FROM DUAL));proc_rec proc_cur%ROWTYPE;BEGINOPEN proc_cur;FETCH proc_curINTO proc_rec;WHILE proc_cur%FOUNDLOOPINSERT INTO package_processes (proc_id, pv_id)VALUES (proc_rec.proc_id, npvid);SELECT prc.proc_nameINTO processnameFROM processes prcWHERE prc.proc_id = proc_rec.proc_id;-- Log Action --log_action (npvid, 'process_add', nuserid, 'Added process with health tag ' || processname );FETCH proc_curINTO proc_rec;END LOOP;CLOSE proc_cur;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE remove_process (nprocid IN package_processes.proc_id%TYPE,npvid IN package_processes.pv_id%TYPE,nuserid IN NUMBER)ISprocessname VARCHAR2 (4000);BEGINSELECT prc.proc_nameINTO processnameFROM processes prcWHERE prc.proc_id = nprocid;DELETE FROM package_processesWHERE proc_id = nprocid AND pv_id = npvid;-- Log Action --log_action (npvid, 'process_remove', nuserid, 'Removed process with health tag ' || processname );END;/*-------------------------------------------------------------------------------------------------------*//*** Author: Rupesh Solanki** Purpose: To move package versions from one release to another** Release: 4th September 2006*/PROCEDURE move_package (npvid IN package_versions.pv_id%TYPE,nrtagid IN release_tags.rtag_id%TYPE,nnewrtagid IN release_tags.rtag_id%TYPE,nuserid IN NUMBER)ISoldrtag_name VARCHAR2(4000);newrtag_name VARCHAR2(4000);BEGINSELECT rtag_name into oldrtag_nameFROM RELEASE_TAGSWHERE rtag_id = nrtagid;SELECT rtag_name into newrtag_nameFROM RELEASE_TAGSWHERE rtag_id = nnewrtagid;/* Table Work In Progress*/UPDATE WORK_IN_PROGRESSSET RTAG_ID = nnewrtagidWHERE RTAG_ID = nrtagidAND PV_ID = npvid;/* Table PLANNED*/UPDATE PLANNEDSET RTAG_ID = nnewrtagidWHERE RTAG_ID = nrtagidAND PV_ID = npvid;/* Table PEGGED_VERSIONS */DELETE FROM PEGGED_VERSIONS pegvWHERE pegv.RTAG_ID = nrtagidAND pegv.PV_ID = npvid;/* Table ADVISORY_RIPPLE*/DELETE FROM ADVISORY_RIPPLEWHERE RTAG_ID = nrtagidAND PV_ID = npvid;-- Log Action --log_action (npvid, 'move_package_version', nuserid, 'Moved package version from ' || oldrtag_name || ' to ' || newrtag_name );END;/*-------------------------------------------------------------------------------------------------------*//*** Author: Rupesh Solanki** Purpose: To modify the product state from integration to test to deployment** Release: 25th January 2006*/PROCEDURE modify_product_state (npvid IN package_versions.pv_id%TYPE,nrtagid IN release_tags.rtag_id%TYPE,nstateid IN product_states.state_id%TYPE,nuserid IN NUMBER) ISsStateName VARCHAR2(4000);sRtagName VARCHAR2(4000);BEGINUPDATE RELEASE_CONTENTSET PRODUCT_STATE = nstateidWHERE PV_ID = npvidAND RTAG_ID = nrtagid;SELECT STATE INTO sStateNameFROM PRODUCT_STATESWHERE STATE_ID = nstateid;SELECT RTAG_NAME into sRtagNameFROM RELEASE_TAGSWHERE RTAG_ID = nrtagid;-- Log Action --log_action (npvid, 'modify_product_state', nuserid, sStateName || ' in '|| sRtagName );END;/*-------------------------------------------------------------------------------------------------------*//*** Author: Jeremy Tweddle** Date: 24/Aug/2007*/PROCEDURE add_code_review_url (npvid IN NUMBER,nprojid IN NUMBER,surl IN VARCHAR2,sreason IN VARCHAR2,ddateofreview IN VARCHAR2) ISncrid NUMBER;BEGINSELECT seq_cr_id.NEXTVAL INTO ncrid FROM DUAL;INSERT INTO code_review_url ( cr_id, pv_id, proj_id, url, reason, date_of_review, last_modified )VALUES ( ncrid, npvid, nprojid, surl, sreason, TO_DATE( ddateofreview,'DD/MM/YYYY' ), ora_sysdate );END;/*-------------------------------------------------------------------------------------------------------*//*** Author: Jeremy Tweddle** Date: 22/Aug/2007*/PROCEDURE update_code_review_url (ncrid IN NUMBER,nprojid IN NUMBER,surl IN VARCHAR2,sreason IN VARCHAR2,ddateofreview IN VARCHAR2) ISBEGINUPDATE code_review_urlSET url = surl,proj_id = nprojid,reason = sreason,date_of_review = TO_DATE( ddateofreview,'DD/MM/YYYY' ),last_modified = ora_sysdateWHERE cr_id = ncrid;END;/*-------------------------------------------------------------------------------------------------------*//*** Author: Jeremy Tweddle** Date: 22/Aug/2007*/PROCEDURE remove_code_review_url (ncrid IN NUMBER) ISBEGINDELETE FROM code_review_urlWHERE cr_id = ncrid;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURESET_RIPPLE_STOP (nPVID IN RELEASE_CONTENT.PV_ID%TYPE,nRtagId IN RELEASE_CONTENT.RTAG_ID%TYPE,nUserId IN NUMBER,cMode IN CHAR) ISReleaseLocation VARCHAR2(4000);sMode VARCHAR(100);cData CHAR;BEGINIF (nPVID IS NULL) THENRAISE_APPLICATION_ERROR (-20000, 'PvId not set' );END IF;IF (nRtagId IS NULL) THENRAISE_APPLICATION_ERROR (-20001, 'rTagId not set' );END IF;cData := cMode;If cMode = 's' THENsMode := 'ripple_stop';ELSIF cMode = 'w' THENsMode := 'ripple_wait';ELSIF cMode = 'r' THENsMode := 'ripple_removed';cData := NULL;ELSIF cMode = 'g' THENsMode := 'ripple_resume';ELSERAISE_APPLICATION_ERROR (-20002, 'Unknown mode:' || cMode );END IF;-- Update the valueUPDATE RELEASE_CONTENTSET RIPPLE_STOP = cDataWHERE RTAG_ID = nRtagIdAND PV_ID = nPVID;-- Mark Release Changed for buildPK_RELEASE.SET_RELEASE_MODIFIED(nRtagId);/* LOG ACTION */SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = nRtagId;Log_Action ( nPVID, sMode, nUserId, 'Location: '|| ReleaseLocation);END SET_RIPPLE_STOP;END pk_package;/GRANT EXECUTE ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";GRANT DEBUG ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Package Body PK_PLANNED--------------------------------------------------------CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PLANNED" IS/*------------------------------|| Last Modified: G.Huddy|| Modified Date: 05/Aug/2008|| Body Version: 1.2------------------------------*//*-------------------------------------------------------------------------------------------------------*/PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, OPR IN CHAR DEFAULT 'R' ) ISoldPvId NUMBER;ReleaseLocation VARCHAR2(4000);IsPatch CHAR(1) := NULL;sLocation VARCHAR2(4000) := NULL;nRtagIdLocation NUMBER;BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/IF OPR = 'R' THENBEGIN-- Check if Exists in "Work in progress" anywhere in the world, except "Closed mode" releasesSELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME, rt.RTAG_ID INTO sLocation, nRtagIdLocationFROM PLANNED pl,RELEASE_TAGS rt,PROJECTS projWHERE pl.PV_ID = newPvIdAND pl.RTAG_ID = rt.RTAG_IDAND rt.OFFICIAL != 'Y'AND rt.PROJ_ID = proj.PROJ_ID;EXCEPTIONWHEN NO_DATA_FOUND THENsLocation := NULL;END;IF (sLocation IS NULL) OR (nRtagIdLocation = RtagId) THEN-- Add to "Pending" areaINSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )VALUES( RtagId, newPvId, ViewId, OPR );/* LOG ACTION */SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );ELSERAISE_APPLICATION_ERROR (-20000, 'This version is already in Pending Area at '|| sLocation ||'.' );END IF;ELSE-- Not adding a WIP. Merging a package versionMERGE_PACKAGE ( newPvId, ViewId, RtagId, UserId, OPR );END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) ISReleaseLocation VARCHAR2(4000);BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/-- Get release location for logging pusposesSELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;-- Ensure that package is not marked as Pending any moreUPDATE package_versionsSET DLOCKED = 'N'WHERE PV_ID = PvIdAND DLOCKED != 'Y';-- Delete from Work In ProgressDELETEFROM PLANNED plWHERE pl.RTAG_ID = RtagIdAND pl.PV_ID = PvId;Log_Action ( PvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER ISReturnValue NUMBER;BEGINSELECT pl.VIEW_ID INTO ReturnValueFROM PLANNED plWHERE pl.RTAG_ID = RtagIdAND pl.PV_ID = PvId;RETURN ReturnValue;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) ISIsBaseView CHAR(1);BEGIN-- Check if the view is BASE VIEWSELECT vi.BASE_VIEW INTO IsBaseViewFROM VIEWS viWHERE vi.VIEW_ID = ViewId;IF (IsBaseView IN ('Y', 'S')) THEN-- Get Base view contentOPEN RecordSet FORSELECT 0 AS PKG_STATE,NULL AS DEPRECATED_STATE,pv.pv_id,pkg.pkg_name,pv.pkg_version,pv.dlocked,pv.pv_description,pv.BUILD_TYPE,rel.operationFROM PLANNED rel,packages pkg,package_versions pvWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.VIEW_ID = ViewIdAND rel.RTAG_ID = RtagIdORDER BY UPPER(pkg.PKG_NAME);ELSE-- Get non base view contentOPEN RecordSet FORSELECT 0 AS PKG_STATE,NULL AS DEPRECATED_STATE,pv.pv_id,pkg.pkg_name,pv.pkg_version,pv.dlocked,pv.pv_description,pv.BUILD_TYPE,rel.operationFROM PLANNED rel,packages pkg,package_versions pv,VIEW_DEF vdWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.RTAG_ID = RtagIdAND vd.VIEW_ID = ViewIdAND vd.PKG_ID = pv.PKG_IDORDER BY UPPER(pkg.PKG_NAME);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) ISBEGINUPDATE PLANNED pl SETpl.VIEW_ID = NewViewIdWHERE pl.PV_ID = PvIdAND pl.RTAG_ID = RtagId;END;/*-------------------------------------------------------------------------------------------------------*/-- DEVI-45275 This new function supports the ability to insert into the planned table, and existing-- version of a package as part of a release-to-release merge operation carried out within release manager.-- DEVI-49594 This function has subsequently been changed to allow a merge operation to cancel its-- opposite operation, if the opposite already exists in the planned table. This supports user activity-- via the Release Manager merge manager displayPROCEDURE MERGE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, mergeOperation IN CHAR ) ISReleaseLocation VARCHAR2(4000);entryExists NUMBER;existingOperation CHAR;BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/-- Determine if the specified PV_ID already exists in the planned table....SELECT COUNT (pl.pv_id) INTO entryExistsFROM PLANNED plWHERE pl.pv_id = newPvIdAND pl.rtag_id = RtagIdAND pl.view_id = ViewId;-- If the specified PV_ID already exists in the planned table....IF entryExists = 1 THEN-- Get the operation for the existing entrySELECT pl.operation INTO existingOperationFROM PLANNED plWHERE pl.pv_id = newPvIdAND pl.rtag_id = RtagIdAND pl.view_id = ViewId;-- Is the specified merge operation the opposite of the existing entry?-- If it is not, then there is nothing to do, otherwise...-- NOTE: A = Add, S = SubtractIF (mergeOperation = 'S' AND existingOperation = 'A')OR (mergeOperation = 'A' AND existingOperation = 'S') THEN-- It is the opposite, so effectively it cancels the existing entry-- Remove the entry from the planned tableDELETEFROM PLANNED plWHERE pl.pv_id = newPvIdAND pl.rtag_id = RtagIdAND pl.view_id = ViewId;-- Log actionSELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;Log_Action ( newPvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );END IF;ELSE-- Add to Planned tabledINSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )VALUES( RtagId, newPvId, ViewId, mergeOperation );-- Log ActionSELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );END IF;END;/*-------------------------------------------------------------------------------------------------------*/END PK_PLANNED;/---------------------------------------------------------- DDL for Package Body PK_PROJECT--------------------------------------------------------CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PROJECT" IS/*------------------------------------------------------------------------*/PROCEDURE update_base_url (nprojid IN projects.proj_id%TYPE,sbaseurl IN VARCHAR2) ISBEGINUPDATE projectsSET base_url = sbaseurlWHERE proj_id = nprojid;END update_base_url;/*------------------------------------------------------------------------*/PROCEDURE update_project_config (nprojid IN projects.proj_id%TYPE,sbaseurl IN VARCHAR2,sjirakey IN VARCHAR2) ISBEGINUPDATE projectsSET base_url = sbaseurl,jira_key = sjirakeyWHERE proj_id = nprojid;END update_project_config;/*------------------------------------------------------------------------*/END pk_project;/---------------------------------------------------------- DDL for Package Body PK_RELEASE--------------------------------------------------------CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_RELEASE" IS/*-------------------------------------------------------------------------------------------------------*/PROCEDURE New_Release ( sReleaseName IN VARCHAR2,sReleaseComments IN VARCHAR2,nProjId IN NUMBER,nSourceRtagId IN NUMBER,sIsBranched IN CHAR,nUserId IN NUMBER,cOfficial IN CHAR DEFAULT 'N') ISRtagId NUMBER;ParentRtagId NUMBER;RecCount NUMBER := 0;VtreeId NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/-- Check for missing parametersIF (sReleaseName IS NULL) OR (nUserId IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId );END IF;-- Check for duplicate Release NamesSELECT COUNT(rt.RTAG_ID) INTO RecCountFROM RELEASE_TAGS rtWHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )AND rt.PROJ_ID = nProjId;IF (RecCount > 0) THENRAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');END IF;/*-------------------------------------------------------*/-- Get rtag_idSELECT SEQ_RTAG_ID.NEXTVAL INTO RtagId FROM DUAL;SELECT SEQ_VTREE_ID.NEXTVAL INTO VtreeId FROM DUAL;-- Get Parent RtagIdParentRtagId := GET_PARENT_RTAG ( RtagId, nSourceRtagId, sIsBranched );-- If the parent RTAG is NOT in this project then we cannot use it.-- We must re-assign the parent to be the new release's RTAG_ID instead-- else it will not show up in the projects release tree (DEVI-55480)SELECT COUNT(rt.RTAG_ID) INTO RecCountFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = ParentRtagIdAND rt.PROJ_ID = nProjId;IF (RecCount = 0) THENParentRtagId := RtagId;END IF;-- Create new releaseINSERT INTO RELEASE_TAGS ( RTAG_ID, RTAG_NAME, DESCRIPTION, CREATED_STAMP, CREATOR_ID,OFFICIAL, REBUILD_ENV, REBUILD_STAMP,PARENT_RTAG_ID, PROJ_ID, VTREE_ID )VALUES ( RtagId,sReleaseName,sReleaseComments,ORA_SYSDATE,nUserId,cOfficial,'N',0,ParentRtagId,nProjId,VtreeId );-- If a source release is provided, clone its config spec branch information into the new release (DEVI-56650)IF (NOT nSourceRtagId IS NULL)THENUPDATE RELEASE_TAGS rtdSET rtd.config_spec_branch = (SELECT rts.CONFIG_SPEC_BRANCH FROM RELEASE_TAGS rts WHERE rts.RTAG_ID = nSourceRtagId)WHERE rtd.RTAG_ID = RtagId;END IF;-- Update display OrderUPDATE_DISPLAY_ORDER ( nProjId );/* Log Project Action */Log_Project_Action ( nProjId, 'new_release', nUserId, sReleaseName, RtagId );-- Import Release ContentsIF (NOT nSourceRtagId IS NULL) THENImport_Release_Contents ( nSourceRtagId, RtagId, nUserId, 1 );END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER ) ISBEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/UPDATE RELEASE_TAGS urt SETurt.DISPLAY_ORDER = (SELECT qry.REC_NUMFROM (SELECT rel.*, ROWNUM AS REC_NUMFROM (SELECT rt.RTAG_ID,rt.DISPLAY_ORDER,DECODE( rt.PARENT_RTAG_ID,rt.RTAG_ID, 0, rt.PARENT_RTAG_ID ) AS PARENT_RTAG_IDFROM RELEASE_TAGS rtWHERE rt.PROJ_ID = nProjId) relSTART WITH rel.PARENT_RTAG_ID = 0CONNECT BY PRIOR rel.RTAG_ID = rel.PARENT_RTAG_IDORDER SIBLINGS BY rel.DISPLAY_ORDER) qryWHERE qry.RTAG_ID = urt.RTAG_ID)WHERE urt.PROJ_ID = nProjId;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER ) ISnIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();SeqNum NUMBER;BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/nIdCollector := IN_LIST_NUMBER ( sRtagIdList );-- Set start sequence numberSeqNum := 1;FOR i IN 1..nIdCollector.COUNTLOOP-- Update new display orderUPDATE RELEASE_TAGS rt SETrt.DISPLAY_ORDER = SeqNumWHERE rt.PROJ_ID = nProjIdAND rt.RTAG_ID = nIdCollector(i);SeqNum := SeqNum + 1;END LOOP;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE Update_Release ( nRtagId IN NUMBER,sReleaseName IN VARCHAR2,sReleaseComments IN VARCHAR2,nParentRtagId IN NUMBER,nMASSRtagId IN NUMBER,nConfigSpecBranch IN VARCHAR2,sOwnerEmail IN VARCHAR2,nUserId IN NUMBER,cState IN VARCHAR,nBuildAge in NUMBER,cLxr in CHAR) ISRecCount NUMBER := 0;ProjId NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/-- Check for missing parametersIF (sReleaseName IS NULL) OR (nUserId IS NULL) OR (nRtagId IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId ||', nRtagId='|| nRtagId);END IF;-- Check for duplicate Release NamesSELECT rt.PROJ_ID INTO ProjIdFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nRtagId;SELECT COUNT(rt.RTAG_ID) INTO RecCountFROM RELEASE_TAGS rtWHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )AND rt.RTAG_ID != nRtagIdAND rt.PROJ_ID = ProjId;IF (RecCount > 0) THENRAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');END IF;/*-------------------------------------------------------*/-- Update release detailsUPDATE RELEASE_TAGS rt SETrt.RTAG_NAME = sReleaseName,rt.DESCRIPTION = sReleaseComments,rt.PARENT_RTAG_ID = nParentRtagId,rt.ASSOC_MASS_REF = nMASSRtagId,rt.CONFIG_SPEC_BRANCH = nConfigSpecBranch,rt.OWNER_EMAIL = sOwnerEmail,rt.PRODUCT_STATE_USED = cState,rt.BUILD_AGE = nBuildAge,rt.LXR = cLxrWHERE rt.RTAG_ID = nRtagId;-- Update display OrderUPDATE_DISPLAY_ORDER ( ProjId );/* Log Project Action */Log_Project_Action ( ProjId, 'update_release', nUserId, 'Release Name: <br>Release Comments:', nRtagId );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER ) ISRecCount NUMBER := 0;sReleaseId VARCHAR2(4000);ProjId NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/IF (nRtagId IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId );END IF;-- Check for any kidsSELECT COUNT( rt.RTAG_ID ) INTO RecCountFROM RELEASE_TAGS rtWHERE rt.PARENT_RTAG_ID = nRtagIdAND rt.RTAG_ID != rt.PARENT_RTAG_ID;IF (RecCount > 0) THENRAISE_APPLICATION_ERROR (-20000, 'Cannot destroy this release. You need to destroy its children releases first.' );END IF;/*-------------------------------------------------------*/-- Clear the release contentsClean_Release_Contents ( nRtagId, nUserId );/* Log Project Action */SELECT rt.PROJ_ID, rt.RTAG_NAME ||'['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']' INTO ProjId, sReleaseIdFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nRtagId;Log_Project_Action ( ProjId, 'destroy_release', nUserId, sReleaseId, nRtagId );-- Remove ReleaseDELETEFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nRtagId;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER, nMode IN NUMBER default 0 ) ISsSourceLocation VARCHAR2(4000);sTargetLocation VARCHAR2(4000);ProjId NUMBER;cReleaseMode CHAR(1);RconId NUMBER;-- this cursor gets the source release daemon configurations, ensuring that the-- first record will be the master daemon, and subsequent records will be the slaves.CURSOR curSrcReleaseConfigs ISSELECT daemon_hostname, gbe_id, gbe_buildfilter, bmcon_id, daemon_modeFROM RELEASE_CONFIG rcWHERE rc.RTAG_ID = nSourceRtagIdORDER BY rc.daemon_mode;recSrcReleaseConfigs curSrcReleaseConfigs%ROWTYPE;-- this cursor looks for target release daemonsCURSOR curTgtReleaseConfigs ISSELECT rcon_idFROM RELEASE_CONFIG rcWHERE rc.RTAG_ID = nTargetRtagId;recTgtReleaseConfigs curTgtReleaseConfigs%ROWTYPE;-- this cursor looks for target release daemon run level entriesCURSOR curTgtReleaseConfigRunLevel ISSELECT current_run_levelFROM RUN_LEVEL rlWHERE rl.RCON_ID = recTgtReleaseConfigs.rcon_id;recTgtReleaseConfigRunLevel curTgtReleaseConfigRunLevel%ROWTYPE;BEGIN/*--------------- Business Rules Here -------------------*/IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );END IF;IF (nSourceRtagId = nTargetRtagId) THENRAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );END IF;-- Check if Target release is in OPEN modeIF nMode = 0 THENSELECT rt.OFFICIAL INTO cReleaseModeFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nTargetRtagId;IF (cReleaseMode != 'N') THENRAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the contents.' );END IF;END IF;-- check that the target release's daemons are all paused before we allow an import operationOPEN curTgtReleaseConfigs;FETCH curtgtReleaseConfigs INTO recTgtReleaseConfigs;WHILE curTgtReleaseConfigs%FOUNDLOOPOPEN curTgtReleaseConfigRunLevel;FETCH curTgtReleaseConfigRunLevel INTO recTgtReleaseConfigRunLevel;IF curTgtReleaseConfigRunLevel%FOUND THENIF (recTgtReleaseConfigRunLevel.current_run_level IS NULL) OR(recTgtReleaseConfigRunLevel.current_run_level <> 2) THENRAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );END IF;ELSE-- we don't know what the daemon run level is so err on the side of cautionRAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );END IF;CLOSE curTgtReleaseConfigRunLevel;FETCH curTgtReleaseConfigs INTO recTgtReleaseConfigs;END LOOP;CLOSE curTgtReleaseConfigs;/*-------------------------------------------------------*/-- Clean target contentsClean_Release_Contents ( nTargetRtagId, nUserId );-- Import Released Area ContentsINSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE, PKG_ID, DEPRECATED_STATE,PRODUCT_STATE,SDKTAG_ID )SELECT nTargetRtagId AS RTAG_ID,rc.PV_ID,rc.BASE_VIEW_ID,rc.INSERT_STAMP,rc.INSERTOR_ID,rc.PKG_STATE,rc.PKG_ID,rc.DEPRECATED_STATE,rc.PRODUCT_STATE,rc.SDKTAG_IDFROM RELEASE_CONTENT rcWHERE rc.RTAG_ID = nSourceRtagId;-- Import any Pegged Version settings from the source releaseINSERT INTO PEGGED_VERSIONS ( RTAG_ID, PV_ID )SELECT nTargetRtagId AS RTAG_ID,pegv.PV_IDFROM PEGGED_VERSIONS pegvWHERE pegv.RTAG_ID = nSourceRtagId;-- Import any Advisory Ripple settings from the source releaseINSERT INTO ADVISORY_RIPPLE ( RTAG_ID, PV_ID )SELECT nTargetRtagId AS RTAG_ID,avr.PV_IDFROM ADVISORY_RIPPLE avrWHERE avr.RTAG_ID = nSourceRtagId;--Import Release Configuration InformationOPEN curSrcReleaseConfigs;FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;WHILE curSrcReleaseConfigs%FOUNDLOOP-- add a daemon to the target releasePK_BUILDAPI.duplicate_daemon_config( nTargetRtagId,recSrcReleaseConfigs.bmcon_id,recSrcReleaseConfigs.daemon_hostname,recSrcReleaseConfigs.gbe_id,recSrcReleaseConfigs.daemon_mode ,recSrcReleaseConfigs.gbe_buildfilter );FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;END LOOP;CLOSE curSrcReleaseConfigs;-- Import Ignore Warning statesINSERT INTO IGNORE_WARNINGS ( RTAG_ID, PV_ID, DPV_ID )SELECT nTargetRtagId AS RTAG_ID,igw.PV_ID,igw.DPV_IDFROM IGNORE_WARNINGS igwWHERE igw.rtag_id = nSourceRtagId;/* Log Project Action */-- Get Source LocationSELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']' INTO sSourceLocationFROM RELEASE_TAGS rt,PROJECTS prWHERE rt.PROJ_ID = pr.PROJ_IDAND rt.RTAG_ID = nSourceRtagId;-- Get Target LocationSELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']' INTO sTargetLocationFROM RELEASE_TAGS rt,PROJECTS prWHERE rt.PROJ_ID = pr.PROJ_IDAND rt.RTAG_ID = nTargetRtagId;-- Get project idSELECT rt.PROJ_ID INTO ProjIdFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nTargetRtagId;Log_Project_Action ( ProjId, 'import_release_contents', nUserId, 'SOURCE: '|| sSourceLocation ||' TARGET: '|| sTargetLocation, nTargetRtagId );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER ) ISRecCount NUMBER;rconIdList VARCHAR2(4000);BEGIN/*--------------- Business Rules Here -------------------*/IF (nRtagId IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId );END IF;-- Check if other release references this releaseSELECT COUNT( rl.RTAG_ID ) INTO RecCountFROM RELEASE_LINKS rlWHERE rl.REF_RTAG_ID = nRtagId;IF (RecCount > 0) THENRAISE_APPLICATION_ERROR (-20000, 'This release is referenced by other release and cannot be destroyed.' );END IF;/*-------------------------------------------------------*/-- Delete Release linksDELETEFROM RELEASE_LINKS rlWHERE rl.RTAG_ID = nRtagId;-- Delete ignore warningDELETEFROM IGNORE_WARNINGS iwWHERE iw.RTAG_ID = nRtagId;-- Delete Build Order cached calculationsDELETEFROM BUILD_ORDER boWHERE bo.RTAG_ID = nRtagId;-- Delete Notification HistoryDELETEFROM NOTIFICATION_HISTORY nhWHERE nh.RTAG_ID = nRtagId;-- Delete Released Area ContentsDELETEFROM RELEASE_CONTENT rcWHERE rc.RTAG_ID = nRtagId;-- Delete Work In Progress Area ContentsDELETEFROM WORK_IN_PROGRESS wipWHERE wip.RTAG_ID = nRtagId;-- Delete Pending Area ContentsDELETEFROM PLANNED plWHERE pl.RTAG_ID = nRtagId;-- Delete Deprecated PackagesDELETEFROM DEPRECATED_PACKAGES dpWHERE dp.RTAG_ID = nRtagId;-- Delete Project Action LogDELETEFROM PROJECT_ACTION_LOG palWHERE pal.RTAG_ID = nRtagId;-- Delete Do Not Ripple ContentsDELETEFROM DO_NOT_RIPPLE dnrWHERE dnr.RTAG_ID = nRtagId;-- Delete Dash Board ContentsDELETEFROM DASH_BOARD dbWHERE db.RTAG_ID = nRtagId;-- Delete Advisory Ripple ContentsDELETEFROM ADVISORY_RIPPLE adrWHERE adr.RTAG_ID = nRtagId;-- Delete Archive Action LogDELETEFROM ARCHIVE_ACTION_LOG aalWHERE aal.RTAG_ID = nRtagId;-- Delete Daemons For This ReleaseFOR rcon IN (SELECT rc.RCON_ID FROM RELEASE_CONFIG rc WHERE rc.RTAG_ID = nRtagId )LOOPrconIdList := rconIdList || rcon.RCON_ID || ',';END LOOP;pk_buildapi.DELETE_DAEMON(rconIdList);-- Delete Release Metrics ContentsDELETEFROM RELEASE_METRICS rmWHERE rm.RTAG_ID = nRtagId;-- Delete Release Configuration ContentsDELETEFROM RELEASE_CONFIG rcWHERE rc.RTAG_ID = nRtagId;-- Delete Pegged Version ContentsDELETEFROM PEGGED_VERSIONS pegvWHERE pegv.RTAG_ID = nRtagId;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR ) RETURN NUMBER ISnSourceParentRtagId NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/IF (nRtagId IS NULL) OR (cIsBranch IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId ||', cIsBranch= '|| cIsBranch );END IF;/*-------------------------------------------------------*/IF ( nSourceRtagId IS NULL ) THEN-- Create new on main branchRETURN nRtagId;ELSE-- Create from source rtag_id-- Find parent of Source RtagIdSELECT rt.PARENT_RTAG_ID INTO nSourceParentRtagIdFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nSourceRtagId;IF (UPPER(cIsBranch) = 'Y') THENRETURN nSourceRtagId;ELSEIF (nSourceRtagId = nSourceParentRtagId) THENRETURN nRtagId;ELSERETURN nSourceParentRtagId;END IF;END IF;END IF;END;/*-------------------------------------------------------------------------------------------------------*/-- PROCEDURE Get_Next_Version ( nSourceRtagId IN NUMBER,-- sNextVersion OUT VARCHAR2,-- nNextLifeCycle OUT NUMBER,-- nParentRtagId OUT NUMBER,-- nProjId IN NUMBER ) IS---- SourceBranchCount NUMBER;-- ProjRootVersion VARCHAR2(4000);-- LastLifeCycle NUMBER;-- ROOT_VERSION_NOT_FOUND NUMBER := -1;-- SET_PARENT_AS_YOURSELF NUMBER := -1;---- SourceProjId NUMBER;-- SourceVersion RELEASE_TAGS.RTAG_VERSION%TYPE;-- SourceLifeCycle RELEASE_TAGS.RTAG_LIFE_CYCLE%TYPE;---- BEGIN-- /*--------------- Business Rules Here -------------------*/-- /*-------------------------------------------------------*/------ BEGIN-- -- Get Project root version-- SELECT rt.RTAG_VERSION INTO ProjRootVersion-- FROM RELEASE_TAGS rt-- WHERE rt.PROJ_ID = nProjId-- AND rt.RTAG_ID = rt.PARENT_RTAG_ID;---- EXCEPTION-- WHEN NO_DATA_FOUND THEN-- ProjRootVersion := ROOT_VERSION_NOT_FOUND;-- END;---------- BEGIN-- -- Get info for source rtagid-- SELECT rt.PROJ_ID, rt.RTAG_VERSION, rt.RTAG_LIFE_CYCLE INTO SourceProjId, SourceVersion, SourceLifeCycle-- FROM RELEASE_TAGS rt-- WHERE rt.RTAG_ID = nSourceRtagId;---- EXCEPTION-- WHEN NO_DATA_FOUND THEN-- SourceProjId := NULL;-- SourceVersion := NULL;-- SourceLifeCycle := NULL;-- END;------ IF (nSourceRtagId IS NULL) OR ( SourceProjId != nProjId ) THEN---- /* Blank Release Required OR Release imported from other project */---- IF (ProjRootVersion = ROOT_VERSION_NOT_FOUND) THEN-- /* No Releases found in the project, hence calculate next version available. */---- -- Set parent rtag-- nParentRtagId := SET_PARENT_AS_YOURSELF;------ BEGIN-- -- Get Next Available Global Root Version-- SELECT MAX( TO_NUMBER( rt.RTAG_VERSION ) ) INTO ProjRootVersion-- FROM RELEASE_TAGS rt-- WHERE rt.RTAG_ID = rt.PARENT_RTAG_ID;---- -- Set Next Rtag Version-- sNextVersion := CAST( ProjRootVersion + 1 AS VARCHAR2 );---- -- Restart Lifecycle-- nNextLifeCycle := 0;------ EXCEPTION-- WHEN NO_DATA_FOUND THEN-- -- Release Manager has no releases, hence start from 1-- sNextVersion := '1';-- nNextLifeCycle := 0;---- END;-------- ELSE-- /* Releases found in this project. */---- SELECT qry.RTAG_ID, qry.RTAG_LIFE_CYCLE INTO nParentRtagId, LastLifeCycle-- FROM (-- SELECT rt.RTAG_ID, rt.RTAG_LIFE_CYCLE-- FROM RELEASE_TAGS rt-- WHERE rt.PROJ_ID = nProjId-- AND rt.RTAG_VERSION = ProjRootVersion-- ORDER BY rt.RTAG_LIFE_CYCLE DESC-- ) qry-- WHERE ROWNUM = 1;------ -- Set same Rtag Version-- sNextVersion := ProjRootVersion;---- -- Increase Lifecycle-- nNextLifeCycle := LastLifeCycle + 1;---- END IF;-------- ELSE-- /* Create Release From other release within this project */---- -- Set parent id-- nParentRtagId := nSourceRtagId;------ -- Get number of source branches-- SELECT COUNT(rt.RTAG_ID) INTO SourceBranchCount-- FROM RELEASE_TAGS rt-- WHERE rt.PROJ_ID = nProjId-- AND rt.PARENT_RTAG_ID = nSourceRtagId;------ IF SourceBranchCount = 0 THEN-- /* Release is Head (i.e. Tip on its branch ) */---- -- Set Next Rtag Version-- sNextVersion := SourceVersion;---- -- Increase Lifecycle-- nNextLifeCycle := SourceLifeCycle + 1;------ ELSIF SourceBranchCount = 1 THEN-- /* Release IS NOT Head, but can be branched */---- -- Set Next Rtag Version-- sNextVersion := SourceVersion ||'.'|| SourceLifeCycle;---- -- Reset Lifecycle to 1-- nNextLifeCycle := 1;------ ELSE-- -- Limit of two branches is reached-- RAISE_APPLICATION_ERROR (-20000, 'This release is already branched and cannot be branched again. ');---- END IF;-------------- END IF;------ END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) ISIsBaseView CHAR(1);BEGIN-- Check if the view is BASE VIEWSELECT vi.BASE_VIEW INTO IsBaseViewFROM VIEWS viWHERE vi.VIEW_ID = ViewId;IF (IsBaseView IN ('Y', 'S')) THEN-- Get Base view contentOPEN RecordSet FORSELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,rel.deprecated_state,pv.pv_id,pkg.pkg_name,pv.pkg_version,pv.dlocked,pv.pv_description,pv.BUILD_TYPEFROM release_content rel,packages pkg,package_versions pvWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.BASE_VIEW_ID = ViewIdAND rel.RTAG_ID = RtagIdORDER BY UPPER(pkg.PKG_NAME);ELSE-- Get non base view contentOPEN RecordSet FORSELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,rel.deprecated_state,pv.pv_id,pkg.pkg_name,pv.pkg_version,pv.dlocked,pv.pv_description,pv.BUILD_TYPEFROM release_content rel,packages pkg,package_versions pv,VIEW_DEF vdWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND vd.VIEW_ID = ViewIdAND vd.PKG_ID = pv.PKG_IDAND rel.RTAG_ID = RtagIdORDER BY UPPER(pkg.PKG_NAME);END IF;END;/*-------------------------------------------------------------------------------------------------------*/-- Add or Replace a package to the specified releasePROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) ISReleaseLocation VARCHAR2(4000);nPkgId NUMBER;sVExt VARCHAR2(4000);IsPatch PACKAGE_VERSIONS.IS_PATCH%TYPE := 'N';default_pegged CHAR := 'N';default_advisory_ripple CHAR := 'N';-- Find package for replacementCURSOR curReplacePkg ISSELECT pv.PV_IDFROM RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE rc.PV_ID = pv.PV_IDAND rc.RTAG_ID = RtagIdAND pv.PKG_ID = nPkgIdAND NVL( pv.V_EXT, 'LINK_A_NULL' ) = NVL( sVExt, 'LINK_A_NULL' );recReplacePkg curReplacePkg%ROWTYPE;BEGIN-- Get is_patch, pkg_id and v_extSELECT pv.IS_PATCH, pv.PKG_ID, pv.V_EXTINTO IsPatch, nPkgId, sVExtFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = newPvId;-- Never put patch in relesed areaIF (IsPatch != 'Y') OR (IsPatch IS NULL) THEN-- Try to get a package to be replaced with this new one.-- Use unique constraint of PKG_ID and V_EXTOPEN curReplacePkg;FETCH curReplacePkg INTO recReplacePkg;IF curReplacePkg%FOUND THEN-- Replace packageREPLACE_PACKAGE ( newPvId, recReplacePkg.PV_ID, RtagId, UserId );ELSE-- Add new packageINSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )VALUES( RtagId, newPvId, ViewId, Ora_Sysdate, UserId, 0);-- Insert default package flags-- Get Package Level defaultsSELECT pkg.default_pegged, pkg.DEFAULT_ADVISORY_RIPPLEINTO default_pegged, default_advisory_rippleFROM PACKAGES pkgWHERE pkg.PKG_ID = nPkgId;-- Apply to the newly inserted packageIF default_pegged = 'Y' THENINSERT INTO PEGGED_VERSIONS ( RTAG_ID, PV_ID ) VALUES (RtagId, newPvId);-- Log_Action ( newPvId, 'action', UserId, 'Set default package peg' );END IF;IF default_advisory_ripple = 'Y' THENINSERT INTO ADVISORY_RIPPLE ( RTAG_ID, PV_ID ) VALUES (RtagId, newPvId);-- Log_Action ( newPvId, 'action', UserId, 'Set default advisory ripple' );END IF;-- Mark Release as changedSET_RELEASE_MODIFIED(RtagId);RUN_POST_ACTIONS(newPvId, RtagId);/* LOG ACTION */SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );END IF;CLOSE curReplacePkg;END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) ISReleaseLocation VARCHAR2(4000);sPkgVersion VARCHAR2(4000);nSdkTag NUMBER;cPersistRippleStop CHAR;cRippleStop CHAR;BEGIN-- Extract essential informationSELECT SDKTAG_ID, PERSIST_RIPPLE_STOP INTO nSdkTag, cPersistRippleStop FROM RELEASE_CONTENTWHERE rtag_id = RtagIdAND pv_id = oldPvId;-- Trap SDK Replacement-- This is a last ditch check. The application should not allow this condition to happenIf nSdkTag IS NOT NULL THENraise_application_error (-20000, 'Attempt to replace a package provided by an SDK.');END IF;-- Determine new value for ripple_stopcRippleStop := NULL;IF cPersistRippleStop is NOT NULL THENcRippleStop := 's';END IF;-- Replace PackageUPDATE RELEASE_CONTENTSET pv_id = newPvId,insert_stamp = Ora_Sysdate,insertor_id = UserId,product_state = NULL,ripple_stop = cRippleStopWHERE rtag_id = RtagIdAND pv_id = oldPvId;-- update the pegging tableUPDATE PEGGED_VERSIONSSET pv_id = newPvIdWHERE rtag_id = RtagIdAND pv_id = oldPvId;-- update the advisory_ripple tableUPDATE ADVISORY_RIPPLESET pv_id = newPvIdWHERE rtag_id = RtagIdAND pv_id = oldPvId;/* LOG ACTION */SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;SELECT pv.PKG_VERSION INTO sPkgVersionFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = newPvId;SET_RELEASE_MODIFIED(RtagId);Log_Action ( oldPvId, 'replaced_with', UserId, 'Replacing with: '|| sPkgVersion ||' at '|| ReleaseLocation );Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) ISReleaseLocation VARCHAR2(4000);nSdkTag NUMBER;BEGIN-- Trap SDK Package Deletion-- This is a last ditch check. The application should not allow this condition to happenSELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENTWHERE rtag_id = RtagIdAND pv_id = PvId;If nSdkTag IS NOT NULL THENraise_application_error (-20000, 'Attempt to delete a package provided by an SDK.');END IF;-- Delete old packageDELETEFROM RELEASE_CONTENT rcWHERE rc.PV_ID = PvIdAND rc.RTAG_ID = RtagId;/* LOG ACTION */SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;Log_Action ( PvId, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) ISReleaseLocation VARCHAR2(4000);CURSOR curMatchingPackage ISSELECT mpv.PV_IDFROM RELEASE_CONTENT rc,PACKAGE_VERSIONS mpv,PACKAGE_VERSIONS pvWHERE rc.PV_ID = mpv.PV_IDAND rc.RTAG_ID = RtagIdAND pv.PV_ID = PvIdAND pv.PKG_ID = mpv.PKG_IDAND NVL( pv.V_EXT, '|LINK_A_NULL|' ) = NVL( mpv.V_EXT, '|LINK_A_NULL|' );recMatchingPackage curMatchingPackage%ROWTYPE;BEGINOPEN curMatchingPackage;FETCH curMatchingPackage INTO recMatchingPackage;IF curMatchingPackage%FOUND THEN-- Delete old packageDELETEFROM RELEASE_CONTENT rcWHERE rc.PV_ID = recMatchingPackage.PV_IDAND rc.RTAG_ID = RtagId;/* LOG ACTION */SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;Log_Action ( recMatchingPackage.PV_ID, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );END IF;CLOSE curMatchingPackage;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER ISReturnValue NUMBER;BEGINSELECT rc.BASE_VIEW_ID INTO ReturnValueFROM RELEASE_CONTENT rcWHERE rc.RTAG_ID = RtagIdAND rc.PV_ID = PvId;RETURN ReturnValue;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER ) ISBEGIN-- Reset Ignore warnings up-the-treeRESET_IGNORE_WARNINGS ( TO_CHAR(PvId), RtagId );-- Refresh Package statesTOUCH_RELEASE ( RtagId );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER ) ISCURSOR curReleases ISSELECT rc.RTAG_IDFROM RELEASE_CONTENT rcWHERE rc.PV_ID = PvId;recReleases curReleases%ROWTYPE;BEGINOPEN curReleases;FETCH curReleases INTO recReleases;WHILE curReleases%FOUNDLOOPRUN_POST_ACTIONS ( PvId, recReleases.RTAG_ID );FETCH curReleases INTO recReleases;END LOOP;CLOSE curReleases;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) ISBEGINUPDATE RELEASE_CONTENT rc SETrc.BASE_VIEW_ID = NewViewIdWHERE rc.PV_ID = PvIdAND rc.RTAG_ID = RtagId;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 ) ISRowCount NUMBER;CURSOR curPackageClash ISSELECT pkg.PKG_NAME,er.*FROM (/* Get existing referenced packages */SELECT pv.PKG_ID,pv.V_EXTFROM RELEASE_LINKS rl,RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE rl.RTAG_ID = nRtagIdAND rl.REF_RTAG_ID = rc.RTAG_IDAND rc.PV_ID = pv.PV_ID) er,(/* Get current reference packages */SELECT pv.PKG_ID,pv.V_EXTFROM RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE rc.RTAG_ID = nRefRtagIdAND rc.PV_ID = pv.PV_ID) cr,PACKAGES PKGWHERE er.PKG_ID = cr.PKG_IDAND NVL(er.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')AND er.PKG_ID = pkg.PKG_ID;recPackageClash curPackageClash%ROWTYPE;BEGIN/*--------------- Business Rules Here -------------------*/IF (nRtagId = 0) OR ( nRtagId IS NULL ) THENRAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );END IF;IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THENRAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );END IF;/*-------------------------------------------------------*/ProblemString := NULL;-- Check if release already has referencesSELECT COUNT(rl.RTAG_ID) INTO RowCountFROM RELEASE_LINKS rlWHERE rl.RTAG_ID = nRtagId;IF RowCount > 0 THEN-- Found existing references-- Make sure there is no package clashesOPEN curPackageClash;FETCH curPackageClash INTO recPackageClash;IF curPackageClash%FOUND THENProblemString := ProblemString ||'Following is partial list of package already referenced from other release:'|| PK_PACKAGE.CRLF;WHILE curPackageClash%FOUNDLOOPEXIT WHEN LENGTH( ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT || PK_PACKAGE.CRLF ) > 200; -- Do not allow variable overflowProblemString := ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT || PK_PACKAGE.CRLF;FETCH curPackageClash INTO recPackageClash;END LOOP;END IF;CLOSE curPackageClash;ELSE-- No references found, hence reference a release-- Remove exising package from this release to be referencedREMOVE_RELEASE_REFERENCE ( nRtagId, nRefRtagId);-- Add new linked packages to releaseINSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE)SELECT nRtagId,rc.PV_ID,rc.BASE_VIEW_ID,rc.INSERT_STAMP,rc.INSERTOR_ID,rc.PKG_STATEFROM RELEASE_CONTENT rcWHERE rc.RTAG_ID = nRefRtagId;-- Copy ignore warnings for referenced packagesINSERT INTO IGNORE_WARNINGS iw (RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE)SELECT nRtagId,iw.PV_ID,iw.DPV_ID,iw.IS_PATCH_IGNOREFROM IGNORE_WARNINGS iw,RELEASE_CONTENT rcWHERE iw.RTAG_ID = rc.RTAG_IDAND iw.PV_ID = rc.PV_IDAND rc.RTAG_ID = nRefRtagId;-- Reference releaseINSERT INTO RELEASE_LINKS (RTAG_ID, REF_RTAG_ID)VALUES ( nRtagId, nRefRtagId );-- Refresh Package statesTOUCH_RELEASE ( nRtagId );END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER ) ISBEGIN/*--------------- Business Rules Here -------------------*/IF (nRtagId = 0) OR ( nRtagId IS NULL ) THENRAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );END IF;IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THENRAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );END IF;/*-------------------------------------------------------*/-- Remove ignore warnings for those packages who use referenced packagesDELETE FROM IGNORE_WARNINGS iwWHERE iw.RTAG_ID = nRtagIdAND iw.DPV_ID IN (SELECT dep.DPV_IDFROM (/* Get referenced packages */SELECT pv.PKG_ID,pv.V_EXTFROM RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE rc.RTAG_ID = nRefRtagIdAND rc.PV_ID = pv.PV_ID) cr,(/* Get all dependencies for current release */SELECT DISTINCTpv.PKG_ID,pv.V_EXT,dep.DPV_IDFROM RELEASE_CONTENT rc,PACKAGE_DEPENDENCIES dep,PACKAGE_VERSIONS pvWHERE rc.RTAG_ID = nRtagIdAND rc.PV_ID = dep.PV_IDAND dep.PV_ID = pv.PV_ID) depWHERE dep.PKG_ID = cr.PKG_IDAND NVL(dep.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|'));-- Remove ignore warnings for those package which are going to be replaced with the referenceDELETE FROM IGNORE_WARNINGS iwWHERE iw.RTAG_ID = nRtagIdAND iw.PV_ID IN (SELECT pv.PV_IDFROM (/* Get referenced packages */SELECT pv.PKG_ID,pv.V_EXTFROM RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE rc.RTAG_ID = nRefRtagIdAND rc.PV_ID = pv.PV_ID) cr,RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE pv.PKG_ID = cr.PKG_IDAND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')AND rc.RTAG_ID = nRtagIdAND rc.PV_ID = pv.PV_ID);-- Remove matching packages from releaseDELETE FROM RELEASE_CONTENT rcWHERE rc.RTAG_ID = nRtagIdAND rc.PV_ID IN (SELECT pv.PV_IDFROM (/* Get referenced packages */SELECT pv.PKG_ID,pv.V_EXTFROM RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE rc.RTAG_ID = nRefRtagIdAND rc.PV_ID = pv.PV_ID) cr,RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE pv.PKG_ID = cr.PKG_IDAND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')AND rc.RTAG_ID = nRtagIdAND rc.PV_ID = pv.PV_ID);-- Remove Reference releaseDELETEFROM RELEASE_LINKS rlWHERE rl.RTAG_ID = nRtagIdAND rl.REF_RTAG_ID = nRefRtagId;-- Refresh Package statesTOUCH_RELEASE ( nRtagId );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR ) IScReleaseMode CHAR(1);cPvMode CHAR(1);BEGIN-- Get Release ModeSELECT rt.OFFICIAL INTO cReleaseModeFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = RtagId;-- Get Package ModeSELECT pv.DLOCKED INTO cPvModeFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = PvId;-- Only check if package is lockedIF (cPvMode = 'Y') THENIF (cReleaseMode != 'N') AND (Permission != 'Y')THENRAISE_APPLICATION_ERROR (-20000, 'Cannot add package to this release. Release needs to be in Open Mode.' );END IF;END IF;END;/*-----------------------------------------------------------------------------*/PROCEDURE SET_RELEASE_MODIFIED (nRtagId IN NUMBER ) IS---- Set flags to indicate that the specified release has changed for the-- purposes of building. (Not every single change)---- Used by Build System to streamline build decisions-- Bump a sequence number-- Set a TimeStamp---- Care must be taken to avoid concuency issues-- Must Insert or Update in a safe manner---- This should be called whenever the package_versions in the release have changed in such-- a manner that the build daemons should examine the release. This includes:-- - Packages added, removed and version updated-- - Packages build status changed (re-included in the release)-- - Packages made Pending Build-- - Daemon instruction add/updated (Test Build)---- Note: Not yet used (10-Oct-2014)-- Uses SEQ_RELEASE_MOD and Table: RELEASE_MODIFIEDBEGINLOOPBEGINMERGE INTO RELEASE_MODIFIED USING dual ON ( RTAG_ID=nRtagId )WHEN MATCHED THEN UPDATE SET SEQNUM=SEQ_RELEASE_MOD.NEXTVAL,TIMESTAMP=CURRENT_TIMESTAMPWHEN NOT MATCHED THEN INSERT (RTAG_ID,TIMESTAMP,SEQNUM)VALUES (nRtagId, CURRENT_TIMESTAMP,SEQ_RELEASE_MOD.NEXTVAL );EXIT; -- success? -> exit loopEXCEPTIONWHEN NO_DATA_FOUND THEN -- the entry was concurrently deletedNULL; -- exception? -> no op, i.e. continue loopingWHEN DUP_VAL_ON_INDEX THEN -- an entry was concurrently insertedNULL; -- exception? -> no op, i.e. continue loopingEND;END LOOP;END;/*-------------------------------------------------------------------------------------------------------*/-- ADD_RELEASE_SDK-- ADD an SDK Reference to a Release-- Args: nRtagId - RTAG_ID of Release to Process-- nSdktagId - SDKTAG_ID of SDK to add to Release-- nUserId - User IF of user performing the action-- bDelete - Delete conflicting (non sdk) packages from the release 0:False-- nInsertCount - Returns: Number of Packages inserted: -1 is an error-- curReturn - Returns: On error a table of PV_IDs of packages causing the conflict--PROCEDURE ADD_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER, nUserId IN NUMBER, bDelete IN NUMBER, nInsertCount OUT NUMBER, curReturn OUT typeCur )ISvartbl RELMGR_NUMBER_TAB_T := RELMGR_NUMBER_TAB_T();ii NUMBER;view_id NUMBER;-- Detect clashing packages-- Packages provided by the SDK that are present in the ReleaseCURSOR curPackageClashISSELECT release.pvidFROM-- Alias and pvid from SDK(SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,pv.PV_ID AS pvidFROM SDK_CONTENT sc, PACKAGE_VERSIONS pvWHERE sc.SDKTAG_ID = nSdktagIdAND sc.SDKPKG_STATE = 'E'AND pv.PV_ID = sc.PV_ID) sdk,-- Alias and pvid from Release(SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,pv.PV_ID AS pvidFROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pvWHERE rc.rtag_id = nRtagIdAND rc.PV_ID = pv.PV_ID) RELEASEWHERE sdk.pkgAlias = release.pkgAlias;-- Detect packages in the release that are provided by the SDK-- Do not include packages provided by an SDK - these cannot be replacedCURSOR curPackageReplacableISSELECT release.pvidFROM-- Alias and pvid from SDK(SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,pv.PV_ID AS pvidFROM SDK_CONTENT sc, PACKAGE_VERSIONS pvWHERE sc.SDKTAG_ID = nSdktagIdAND sc.SDKPKG_STATE = 'E'AND pv.PV_ID = sc.PV_ID) sdk,-- Alias and pvid from Release-- Excluding those import by any SDK(SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,pv.PV_ID AS pvidFROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pvWHERE rc.rtag_id = nRtagIdAND rc.PV_ID = pv.PV_IDAND rc.SDKTAG_ID is NULL) RELEASEWHERE sdk.pkgAlias = release.pkgAlias;BEGIN/*--------------- Business Rules Here -------------------*/IF (nRtagId = 0) OR ( nRtagId IS NULL ) THENRAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );END IF;IF (nSdktagId = 0) OR ( nSdktagId IS NULL ) THENRAISE_APPLICATION_ERROR (-20000, 'nSdktagId is not supplied. [nSdktagId='|| nSdktagId ||']' );END IF;/*-------------------------------------------------------*/-- Delete packages from the release if they are provided by the SDK-- provided they are not provided by another SDKIF bDelete != 0 THENFOR rdata IN curPackageClash LOOPDELETE FROM RELEASE_CONTENT rcWHERE rc.RTAG_ID = nRtagIdAND rc.PV_ID = rdata.pvid;END LOOP;-- Remove exising package from this release to be referencedREMOVE_RELEASE_SDK ( nRtagId, nSdktagId);END IF;-- Detect and report package clashes-- Packages provided by the SDK that are (still) in the releaseii := 1;FOR rdata IN curPackageClash LOOPvartbl.extend;--vartbl(ii) := TABLE_PVID(rdata.pvid);vartbl(ii) := rdata.pvid;ii := ii + 1;END LOOP;-- Make sure there is no package clashesIF ii != 1 THENnInsertCount := -1;open curReturn for select * from table(vartbl);--curReturn := vartbl;RETURN;END IF;-- Determine the target view_idSELECT sn.VIEW_ID into view_id FROM SDK_TAGS st, SDK_NAMES sn WHERE sn.SDK_ID = st.SDK_ID AND st.SDKTAG_ID = nSdktagId;-- Add SDK exported packages to releaseINSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE, SDKTAG_ID)SELECT nRtagId, sc.PV_ID, view_id, sysdate, nUserId, 11, nSdktagIdFROM SDK_CONTENT scWHERE sc.SDKTAG_ID = nSdktagIdAND sc.SDKPKG_STATE = 'E';nInsertCount := sql%ROWCOUNT;-- Refresh Package statesTOUCH_RELEASE ( nRtagId );SET_RELEASE_MODIFIED(nRtagId);END;/*-------------------------------------------------------------------------------------------------------*/-- Name: REMOVE_RELEASE_SDK-- Desc: Remove an SDK from the specified Release-- It is not an error to remove an SDK that is not attached to the release-- Args: nRtagId - RTAG_ID of the Release to Process-- nSdktagId - SDKTAG_ID to remove--PROCEDURE REMOVE_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER ) ISBEGIN/*--------------- Business Rules Here -------------------*/IF (nRtagId = 0) OR ( nRtagId IS NULL ) THENRAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );END IF;IF (nSdktagId = 0) OR ( nSdktagId IS NULL ) THENRAISE_APPLICATION_ERROR (-20000, 'nSdktagId is not supplied. [nSdktagId='|| nSdktagId ||']' );END IF;/*-------------------------------------------------------*/-- Remove matching packages from releaseDELETE FROM RELEASE_CONTENT rcWHERE rc.RTAG_ID = nRtagIdAND rc.SDKTAG_ID = nSdktagId;-- Refresh Package statesTOUCH_RELEASE ( nRtagId );SET_RELEASE_MODIFIED(nRtagId);END;---------------------------------------------------------------------------------- CAN_ADD_PKG_TO_RELEASE-- Test if a Package (pvid) can be added to a given release-- The test will not allwo an exiting package to be replaced IF it is imported via an-- SDK---- Returns: 0 - Package cannot be replaced-- 1 - Package can be replaced-- 2 - Package will be added--FUNCTION CAN_ADD_PKG_TO_RELEASE ( nRtagId IN NUMBER, nPvid in NUMBER ) RETURN NUMBER ISsAlias VARCHAR2(4000);-- Find package for proccessing-- Use unique constraint of PKG_ID and V_EXTCURSOR curReplacePkg ISSELECT pv.PV_IDFROM RELEASE_CONTENT rc,PACKAGE_VERSIONS pvWHERE rc.PV_ID = pv.PV_IDAND rc.RTAG_ID = nRtagIdAND pv.PKG_ID || NVL( pv.V_EXT, 'LINK_A_NULL' ) = sAlias;recReplacePkg curReplacePkg%ROWTYPE;nSdkTag NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/IF (nRtagId = 0) OR ( nRtagId IS NULL ) THENRAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );END IF;IF (nPvid = 0) OR ( nPvid IS NULL ) THENRAISE_APPLICATION_ERROR (-20000, 'nPvid is not supplied. [nPvid='|| nPvid ||']' );END IF;-- Find pkg Alias for provided packageSELECT pv.PKG_ID || NVL( pv.V_EXT, 'LINK_A_NULL' )INTO sAliasFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = nPvid;-- Find Package that may be replacedOPEN curReplacePkg;FETCH curReplacePkg INTO recReplacePkg;IF curReplacePkg%FOUND THENSELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENTWHERE rtag_id = nRtagIdAND pv_id = recReplacePkg.PV_ID;If nSdkTag IS NOT NULL THENRETURN 0;ELSERETURN 1;END IF;END IF;-- No package found, so it can be addedRETURN 2;EXCEPTIONWHEN NO_DATA_FOUND THENRAISE_APPLICATION_ERROR (-20000, 'nPvid is not valid. [nPvid='|| nPvid ||']' );END;/*-------------------------------------------------------------------------------------------------------*/END PK_RELEASE;/---------------------------------------------------------- DDL for Package Body PK_RMAPI--------------------------------------------------------CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_RMAPI"IS/*-------------------------------------------------------------------------------------------------------*/FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)RETURN typecurISnpvid NUMBER := 0;RECORDS typecur;BEGINBEGIN-- Get PV_ID --SELECT pv.pv_idINTO npvidFROM PACKAGES pkg, package_versions pvWHERE pv.pkg_id = pkg.pkg_idAND pkg.pkg_name = pkgnameAND pv.pkg_version = pkgversion;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error (-20000, 'Package Not Found!');--WHEN OTHERS THEN-- Consider logging the error and then re-raiseRAISE;END;-- Finally get package dependencies --OPEN RECORDS FORSELECT dpv.pv_id, dpkg.pkg_name, dpv.pkg_versionFROM package_dependencies dep, PACKAGES dpkg, package_versions dpvWHERE dep.pv_id = npvidAND dpv.pkg_id = dpkg.pkg_idAND dpv.pv_id = dep.dpv_id;RETURN RECORDS;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION wip_iteration_package (projname VARCHAR2,iterationname VARCHAR2,pkgname VARCHAR2)RETURN typecurISnrtagid NUMBER := 0;RECORDS typecur;BEGINBEGIN-- Get latest rtag_id --SELECT rt.rtag_idINTO nrtagidFROM projects proj, release_tags rtWHERE rt.proj_id = proj.proj_idAND UPPER (proj.proj_name) = UPPER (projname)AND UPPER (rt.rtag_name) = UPPER (iterationname);IF (nrtagid IS NULL)THENraise_application_error (-20000,'Work In Progress is Not Found!');END IF;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error (-20000,'Work In Progress is Not Found!');RAISE;END;-- Finally get package dependencies --OPEN RECORDS FORSELECT pv.pkg_version, pv.dlocked AS is_official, pv.pkg_label,pv.src_pathFROM PACKAGES pkg, package_versions pv, work_in_progress wipWHERE pv.pkg_id = pkg.pkg_idAND wip.pv_id = pv.pv_idAND wip.rtag_id = nrtagidAND pkg.pkg_name = pkgname;RETURN RECORDS;END;/*-------------------------------------------------------------------------------------------------------*/-- Use:-- Used by the Automated Build System to release a new package-- Returns:-- Use application errors to indicate programming errors-- Use negative return codes to indicate correctable user problems-- Positive return code is the new PVID of the package---- Note: Being deprecated in favor of auto_make_vcsrelease2FUNCTION auto_make_vcsrelease (rtagid IN NUMBER,pkgname IN VARCHAR2,vext IN VARCHAR2,newpkgversion IN VARCHAR2,vcstag IN VARCHAR2,dependenciesimportlist IN VARCHAR2,isrippled IN NUMBER,username IN VARCHAR2)RETURN NUMBERISpkgid NUMBER;pvid NUMBER := 0;userid NUMBER;dlocked VARCHAR2 (20) := NULL;clonefrompvid NUMBER;ssv_mm package_versions.v_mm%TYPE;ssv_nmm package_versions.v_nmm%TYPE;ssv_ext package_versions.v_ext%TYPE;return_package_not_found NUMBER := -1;return_package_already_exists NUMBER := -2;return_not_approved NUMBER := -3;return_migrated_pkg NUMBER := -4;return_svn_path_changed NUMBER := -5;x_vcstypeid NUMBER;x_tag VARCHAR2(32);x_label VARCHAR2(60);x_srcpath VARCHAR2(2000);p_srcpath VARCHAR2(2000);-- Regular expression constituentsToken VARCHAR2(16) := '([^:]+)'; -- a token is anything except a ':' characterSeperator VARCHAR2(4) := '::'; -- tokens will be seperated by '::'BOL VARCHAR2(4) := '^';Anything VARCHAR2(4) := '.*';ReplaceToken1 VARCHAR2(4) := '\1';ReplaceToken2 VARCHAR2(4) := '\2';ReplaceToken3 VARCHAR2(4) := '\3';iprev_modifier_id NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/IF (rtagid IS NULL)THENraise_application_error (-20000, 'RtagId must be supplied.');END IF;IF (pkgname IS NULL)THENraise_application_error (-20000, 'PkgName must be supplied.');END IF;IF (newpkgversion IS NULL)THENraise_application_error (-20000, 'PkgVersion must be supplied.');END IF;IF (vcstag IS NULL)THENraise_application_error (-20000, 'PkgVcsTag must be supplied.');END IF;IF (isrippled IS NULL) OR (isrippled < 0) OR (isrippled > 1)THENraise_application_error (-20000, 'IsRippled must be set to 1 (Is rippled build) or 0 (Is planned build).');END IF;IF (username IS NULL)THENraise_application_error (-20000, 'UserName must be supplied.');END IF;-- Parse the PkgVcsTag-- Sets up-- x_tag, x_label, x_srcpathBEGIN-- Extract the first token - this will be the short tag name for the VCS (eg. 'CC', 'SVN', etc)x_tag := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Anything, ReplaceToken1);-- Decode the short tagCASE x_tagWHEN 'CC' THEN-- extract the 2nd and 3rd tokens, those being the source path and label respectivelyx_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);x_label := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);-- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so-- check for that error as well as the obvious zero-length string conditions.IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THENraise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');END IF;IF isSVNbyName(pkgname) > 0 THEN-- Don't allow migrated packages to be released from a CC labelreturn return_migrated_pkg;END IF;WHEN 'SVN' THEN-- extract the 2nd token, that being the subversion tagx_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);x_label := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);-- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so-- check for that error as well as the obvious zero-length string conditions.IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THENraise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');END IF;WHEN 'UC' THEN-- nothing to extract, just assign defaultsx_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);x_label := 'N/A';ELSEraise_application_error (-20000, 'Unrecognised VCS Tag!');END CASE;END;-- Get the VCS_TYPE_ID for the version control system.BEGINSELECT vt.vcs_type_idINTO x_vcstypeidFROM VCS_TYPE vtWHERE vt.tag = x_tag;EXCEPTIONWHEN NO_DATA_FOUND THENraise_application_error (-20000, 'Database is missing a version control system tag (' || x_tag || ')!' );END;-- Get user_idBEGINSELECT usr.user_idINTO useridFROM users usrWHERE UPPER (usr.user_name) = UPPER (username)AND usr.is_disabled IS NULL;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error (-20000, 'UserName: ' || username || ' is not valid or disabled.' );END;/*-------------------------------------------------------*/-- Create package if necessaryIF isrippled = 1THEN/* Ripple Build */BEGIN-- Make sure that package does not existSELECT pv.pv_idINTO pvidFROM package_versions pv, PACKAGES pkgWHERE pv.pkg_id = pkg.pkg_idAND pkg.pkg_name = pkgnameAND pv.pkg_version = newpkgversion;EXCEPTIONWHEN NO_DATA_FOUNDTHENpvid := 0;END;IF (pvid = 0)THEN-- Split current version in partssplit_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);BEGIN-- Find package to be replaced with the ripple packageIF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')THENSELECT pv.pv_id, pv.src_pathINTO clonefrompvid, p_srcpathFROM PACKAGES pkg, package_versions pv,release_content rcWHERE rc.pv_id = pv.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.rtag_id = rtagidAND pkg.pkg_name = pkgnameAND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|');ELSESELECT pv.pv_id, pv.src_pathINTO clonefrompvid, p_srcpathFROM PACKAGES pkg, package_versions pv,release_content rcWHERE rc.pv_id = pv.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.rtag_id = rtagidAND pkg.pkg_name = pkgnameAND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');END IF;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error(-20000,'Cannot get CloneFromPvId. VExt='|| vext|| ', RtagId='|| rtagid|| ', PkgName='|| pkgname|| ', SSV_EXT='|| ssv_ext);END;IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')THEN-- Create packageseed_package_names_versions (pkgname,newpkgversion,userid,pvid,clonefrompvid);ELSE-- Create package (now both the same)seed_package_names_versions (pkgname,newpkgversion,userid,pvid,clonefrompvid);END IF;-- Update Package reason for releaseUPDATE package_versions pvSET pv.comments = 'Rippled Build.',pv.build_type = 'Y'WHERE pv.pv_id = pvid;ELSE-- Package already exists, it was built previously, and has just been re-built again probably due to the-- fact that the archive was cleaned of the original build artifacts at some point, and those artifacts-- are now needed once more. As such, we need to ensure that a new release note generation occurs so-- reset the package_versions[pvid].release_notes_info field to enable that to happen.UPDATE package_versions pvSET pv.release_notes_info = null,pv.modified_stamp = ora_sysdatetimeWHERE pv.pv_id = pvid;--DEVI-066151log_action (pvid, 'package_rebuilt', userid, 'Package Re-built...');RETURN return_package_already_exists;END IF;ELSE/* Auto build from Pending area */-- Find package in pending areaBEGINSELECT pv.pv_id, pv.dlocked, pv.src_pathINTO pvid, dlocked, p_srcpathFROM planned pl, package_versions pv, PACKAGES pkgWHERE pl.pv_id = pv.pv_idAND pv.pkg_id = pkg.pkg_idAND pl.rtag_id = rtagidAND pkg.pkg_name = pkgnameAND pv.dlocked = 'A'AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|')AND rownum = 1ORDER BY pv.modified_stamp;EXCEPTIONWHEN NO_DATA_FOUNDTHENpvid := 0;END;IF (pvid = 0)THEN-- Package does not exist in pending area, hence report itRETURN return_package_not_found;ELSIF (dlocked != 'A')THEN-- Package is not approved for autobuildRETURN return_not_approved;END IF;END IF;-- Ensure Source Path does not change-- Do not expect the SVN development branch to change-- From the previous packageIF ( x_tag = 'SVN' AND p_srcpath != x_srcpath )THENreturn return_svn_path_changed;END IF;BEGIN-- Import Dependenciesimport_dependencies (pvid, dependenciesimportlist, userid);END;BEGIN-- Split current version in partssplit_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);-- Update Package DetailsUPDATE package_versions pvSET pv.pkg_version = newpkgversion,pv.v_ext = ssv_ext,pv.v_mm = ssv_mm,pv.v_nmm = ssv_nmm,pv.src_path = x_srcpath,pv.pkg_label = x_label,pv.vcs_type_id = x_vcstypeidWHERE pv.pv_id = pvid;EXCEPTIONWHEN DUP_VAL_ON_INDEXTHEN-- Package already exists, hence cannot be used for ripple buildRETURN return_package_already_exists;END;-- Update the is_autobuildableUPDATE package_versionsSET is_autobuildable = 'Y'WHERE pv_id = pvid;-- DEVI-063601-- For planned builds the modifier_id shouldn't be set to buildadm.-- To ensure this the modifier_id is obtained so it can be restored after-- the function pk_environment.auto_make_release is called.-- This function calls, change_state, which sets the modifier_id to the-- specified userid, which for auto builds is buildadm.SELECT pv.modifier_id INTO iprev_modifier_idFROM package_versions pv WHERE pv.pv_id = pvid;-- Now release packagepk_environment.auto_make_release (pvid,rtagid,userid,vext,ssv_ext,clonefrompvid);-- DEVI-063601-- if it is a planned build then restore the modifier_id to the previous modifierUPDATE package_versions pv SET pv.modifier_id = iprev_modifier_idWHERE pv.pv_id = pvid;--Now clean the PLANNED_VERSIONS tableSELECT pkg_idINTO pkgidFROM PACKAGESWHERE pkg_name = pkgname;DELETE FROM planned_versionsWHERE pkg_id = pkgid AND pkg_version = newpkgversion;RETURN pvid;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE import_dependencies (pvid IN NUMBER,dependenciesimportlist IN VARCHAR2,userid IN NUMBER)IS/*|| DependenciesImportList Format:|| "pkgA","1.0.0";"pkgB","2.0.0";|| OR 'pkgA','1.0.0';'pkgB','2.0.0';*/TYPE tdictionary IS TABLE OF VARCHAR2 (4000)INDEX BY VARCHAR2 (4000);seperator VARCHAR2 (2) := '||';pkgname VARCHAR2 (4000);pkgversion VARCHAR2 (4000);buildtype VARCHAR2 (50);pkgid NUMBER;vext VARCHAR2 (4000);dpvid NUMBER;slist VARCHAR2 (4000);cbuildtypes tdictionary;dependencyrow NUMBER;sdependency VARCHAR2 (4000);first_pos VARCHAR2 (4000);second_pos VARCHAR2 (4000);third_pos VARCHAR2 (4000);forth_pos VARCHAR2 (4000);citemcollection relmgr_varchar2_tab_t := relmgr_varchar2_tab_t ();CURSOR curbuildtypeISSELECT dpv.pkg_id || seperator || dpv.v_ext AS pkgid_ext,dep.build_typeFROM package_dependencies dep, package_versions dpvWHERE dep.pv_id = pvid AND dep.dpv_id = dpv.pv_id;recbuildtype curbuildtype%ROWTYPE;BEGINslist := dependenciesimportlist;-- Preformat StringIF NOT slist IS NULLTHENslist := REPLACE (slist, ' '); -- Remove spacesslist := REPLACE (slist, UTL_TCP.crlf);-- Remove new line and carriage-return charactersslist := REPLACE (slist, '''', '"'); -- Replace ' with "END IF;-- Get Current DependenciesOPEN curbuildtype;FETCH curbuildtypeINTO recbuildtype;WHILE curbuildtype%FOUNDLOOPcbuildtypes (recbuildtype.pkgid_ext) := recbuildtype.build_type;FETCH curbuildtypeINTO recbuildtype;END LOOP;CLOSE curbuildtype;-- Separate dependencies with ; separatorcitemcollection := in_list_varchar2 (slist, ';');BEGIN-- Remove old dependenciesDELETE FROM package_dependencies depWHERE dep.pv_id = pvid;-- Loop through dependenciesFOR dependencyrow IN 1 .. citemcollection.COUNTLOOP-- Extract pkg_name and pkg_versionsdependency := citemcollection (dependencyrow);first_pos := INSTR (sdependency, '"', 1, 1);second_pos := INSTR (sdependency, '"', 1, 2);third_pos := INSTR (sdependency, '"', 1, 3);forth_pos := INSTR (sdependency, '"', 1, 4);pkgname :=SUBSTR (sdependency,(first_pos + 1),(second_pos - first_pos - 1));pkgversion :=SUBSTR (sdependency,(third_pos + 1),(forth_pos - third_pos - 1));-- Dependency must exits to be linked againstBEGINSELECT pv.pv_id, pv.pkg_id, pv.v_extINTO dpvid, pkgid, vextFROM package_versions pv, PACKAGES pkgWHERE pv.pkg_id = pkg.pkg_idAND pkg.pkg_name = pkgnameAND pv.pkg_version = pkgversion;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error(-20000,'Dependency ['|| pkgname|| ' '|| pkgversion|| '] does not exist yet and cannot be used!');END;-- Get Build Type (i.e. BuildPackageArchive or LinkPackageArchive)BEGINbuildtype := cbuildtypes (pkgid || seperator || vext);IF buildtype IS NULLTHEN-- Set build type to LinkPackageArchive by defaultbuildtype := 'L';END IF;EXCEPTIONWHEN NO_DATA_FOUNDTHENbuildtype := 'L';END;-- Insert Dependenciesupdate_package_dependency (pvid,pkgname,pkgversion,buildtype,userid,0);END LOOP;END;END;/*-------------------------------------------------------------------------------------------------------*/-- Use:-- Used by the Automated Build System to release a new package-- Returns:-- Use application errors to indicate programming errors-- Use negative return codes to indicate correctable user problems-- Positive return code is the new PVID of the packageFUNCTION auto_make_vcsrelease2 (rtagid IN NUMBER,pkgname IN VARCHAR2,vext IN VARCHAR2,newpkgversion IN VARCHAR2,vcstag IN VARCHAR2,dependenciesimportlist IN relmgr_varchar2_tab_t,isrippled IN NUMBER,username IN VARCHAR2)RETURN NUMBERISpkgid NUMBER;pvid NUMBER := 0;userid NUMBER;dlocked VARCHAR2 (20) := NULL;clonefrompvid NUMBER;ssv_mm package_versions.v_mm%TYPE;ssv_nmm package_versions.v_nmm%TYPE;ssv_ext package_versions.v_ext%TYPE;return_package_not_found NUMBER := -1;return_package_already_exists NUMBER := -2;return_not_approved NUMBER := -3;return_migrated_pkg NUMBER := -4;return_svn_path_changed NUMBER := -5;x_vcstypeid NUMBER;x_tag VARCHAR2(32);x_label VARCHAR2(60);x_srcpath VARCHAR2(2000);p_srcpath VARCHAR2(2000);-- Regular expression constituentsToken VARCHAR2(16) := '([^:]+)'; -- a token is anything except a ':' characterSeperator VARCHAR2(4) := '::'; -- tokens will be seperated by '::'BOL VARCHAR2(4) := '^';Anything VARCHAR2(4) := '.*';ReplaceToken1 VARCHAR2(4) := '\1';ReplaceToken2 VARCHAR2(4) := '\2';ReplaceToken3 VARCHAR2(4) := '\3';iprev_modifier_id NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/IF (rtagid IS NULL)THENraise_application_error (-20000, 'RtagId must be supplied.');END IF;IF (pkgname IS NULL)THENraise_application_error (-20000, 'PkgName must be supplied.');END IF;IF (newpkgversion IS NULL)THENraise_application_error (-20000, 'PkgVersion must be supplied.');END IF;IF (vcstag IS NULL)THENraise_application_error (-20000, 'PkgVcsTag must be supplied.');END IF;IF (isrippled IS NULL) OR (isrippled < 0) OR (isrippled > 1)THENraise_application_error (-20000, 'IsRippled must be set to 1 (Is rippled build) or 0 (Is planned build).');END IF;IF (username IS NULL)THENraise_application_error (-20000, 'UserName must be supplied.');END IF;-- Parse the PkgVcsTag-- Sets up-- x_tag, x_label, x_srcpathBEGIN-- Extract the first token - this will be the short tag name for the VCS (eg. 'CC', 'SVN', etc)x_tag := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Anything, ReplaceToken1);-- Decode the short tagCASE x_tagWHEN 'CC' THEN-- extract the 2nd and 3rd tokens, those being the source path and label respectivelyx_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);x_label := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);-- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so-- check for that error as well as the obvious zero-length string conditions.IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THENraise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');END IF;IF isSVNbyName(pkgname) > 0 THEN-- Don't allow migrated packages to be released from a CC labelreturn return_migrated_pkg;END IF;WHEN 'SVN' THEN-- extract the 2nd token, that being the subversion tagx_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);x_label := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);-- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so-- check for that error as well as the obvious zero-length string conditions.IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THENraise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');END IF;WHEN 'UC' THEN-- nothing to extract, just assign defaultsx_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);x_label := 'N/A';ELSEraise_application_error (-20000, 'Unrecognised VCS Tag!');END CASE;END;-- Get the VCS_TYPE_ID for the version control system.BEGINSELECT vt.vcs_type_idINTO x_vcstypeidFROM VCS_TYPE vtWHERE vt.tag = x_tag;EXCEPTIONWHEN NO_DATA_FOUND THENraise_application_error (-20000, 'Database is missing a version control system tag (' || x_tag || ')!' );END;-- Get user_idBEGINSELECT usr.user_idINTO useridFROM users usrWHERE UPPER (usr.user_name) = UPPER (username)AND usr.is_disabled IS NULL;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error (-20000, 'UserName: ' || username || ' is not valid or disabled.' );END;/*-------------------------------------------------------*/-- Create package if necessaryIF isrippled = 1THEN/* Ripple Build */BEGIN-- Make sure that package does not existSELECT pv.pv_idINTO pvidFROM package_versions pv, PACKAGES pkgWHERE pv.pkg_id = pkg.pkg_idAND pkg.pkg_name = pkgnameAND pv.pkg_version = newpkgversion;EXCEPTIONWHEN NO_DATA_FOUNDTHENpvid := 0;END;IF (pvid = 0)THEN-- Split current version in partssplit_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);BEGIN-- Find package to be replaced with the ripple packageIF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')THENSELECT pv.pv_id, pv.src_pathINTO clonefrompvid, p_srcpathFROM PACKAGES pkg, package_versions pv,release_content rcWHERE rc.pv_id = pv.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.rtag_id = rtagidAND pkg.pkg_name = pkgnameAND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|');ELSESELECT pv.pv_id, pv.src_pathINTO clonefrompvid, p_srcpathFROM PACKAGES pkg, package_versions pv,release_content rcWHERE rc.pv_id = pv.pv_idAND pv.pkg_id = pkg.pkg_idAND rc.rtag_id = rtagidAND pkg.pkg_name = pkgnameAND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');END IF;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error(-20000,'Cannot get CloneFromPvId. VExt='|| vext|| ', RtagId='|| rtagid|| ', PkgName='|| pkgname|| ', SSV_EXT='|| ssv_ext);END;IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')THEN-- Create packageseed_package_names_versions (pkgname,newpkgversion,userid,pvid,clonefrompvid);ELSE-- Create package (now both the same)seed_package_names_versions (pkgname,newpkgversion,userid,pvid,clonefrompvid);END IF;-- Update Package reason for releaseUPDATE package_versions pvSET pv.comments = 'Rippled Build.',pv.build_type = 'Y'WHERE pv.pv_id = pvid;ELSE-- Package already exists, it was built previously, and has just been re-built again probably due to the-- fact that the archive was cleaned of the original build artifacts at some point, and those artifacts-- are now needed once more. As such, we need to ensure that a new release note generation occurs so-- reset the package_versions[pvid].release_notes_info field to enable that to happen.UPDATE package_versions pvSET pv.release_notes_info = null,pv.modified_stamp = ora_sysdatetimeWHERE pv.pv_id = pvid;--DEVI-066151log_action (pvid, 'package_rebuilt', userid, 'Package Re-built...');RETURN return_package_already_exists;END IF;ELSE/* Auto build from Pending area */-- Find package in pending areaBEGINSELECT pv.pv_id, pv.dlocked, pv.src_pathINTO pvid, dlocked, p_srcpathFROM planned pl, package_versions pv, PACKAGES pkgWHERE pl.pv_id = pv.pv_idAND pv.pkg_id = pkg.pkg_idAND pl.rtag_id = rtagidAND pkg.pkg_name = pkgnameAND pv.dlocked = 'A'AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|')AND rownum = 1ORDER BY pv.modified_stamp;EXCEPTIONWHEN NO_DATA_FOUNDTHENpvid := 0;END;IF (pvid = 0)THEN-- Package does not exist in pending area, hence report itRETURN return_package_not_found;ELSIF (dlocked != 'A')THEN-- Package is not approved for autobuildRETURN return_not_approved;END IF;END IF;-- Ensure Source Path does not change-- Do not expect the SVN development branch to change-- From the previous packageIF ( x_tag = 'SVN' AND p_srcpath != x_srcpath )THENreturn return_svn_path_changed;END IF;BEGIN-- Import Dependenciesimport_dependencies2 (pvid, dependenciesimportlist, userid);END;BEGIN-- Split current version in partssplit_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);-- Update Package DetailsUPDATE package_versions pvSET pv.pkg_version = newpkgversion,pv.v_ext = ssv_ext,pv.v_mm = ssv_mm,pv.v_nmm = ssv_nmm,pv.src_path = x_srcpath,pv.pkg_label = x_label,pv.vcs_type_id = x_vcstypeidWHERE pv.pv_id = pvid;EXCEPTIONWHEN DUP_VAL_ON_INDEXTHEN-- Package already exists, hence cannot be used for ripple buildRETURN return_package_already_exists;END;-- Update the is_autobuildableUPDATE package_versionsSET is_autobuildable = 'Y'WHERE pv_id = pvid;-- DEVI-063601-- For planned builds the modifier_id shouldn't be set to buildadm.-- To ensure this the modifier_id is obtained so it can be restored after-- the function pk_environment.auto_make_release is called.-- This function calls, change_state, which sets the modifier_id to the-- specified userid, which for auto builds is buildadm.SELECT pv.modifier_id INTO iprev_modifier_idFROM package_versions pv WHERE pv.pv_id = pvid;-- Now release packagepk_environment.auto_make_release (pvid,rtagid,userid,vext,ssv_ext,clonefrompvid);-- DEVI-063601-- if it is a planned build then restore the modifier_id to the previous modifierUPDATE package_versions pv SET pv.modifier_id = iprev_modifier_idWHERE pv.pv_id = pvid;--Now clean the PLANNED_VERSIONS tableSELECT pkg_idINTO pkgidFROM PACKAGESWHERE pkg_name = pkgname;DELETE FROM planned_versionsWHERE pkg_id = pkgid AND pkg_version = newpkgversion;RETURN pvid;END;/*-------------------------------------------------------------------------------------------------------*/-- import package dependencies (2nd attenpt)-- Package dependencies are an array of strings. Each string is of the form-- 'PkgName','PkgVersion','PkgType'-- The use of an array of package dependencies allows packages with very long-- list of dependencies. More than can be put in to a VARCHAR2--PROCEDURE import_dependencies2 (pvid IN NUMBER,dependenciesimportlist IN relmgr_varchar2_tab_t,userid IN NUMBER)ISTYPE tdictionary IS TABLE OF VARCHAR2 (4000) INDEX BY VARCHAR2 (4000);seperator VARCHAR2 (2) := '||';pkgname VARCHAR2 (4000);pkgversion VARCHAR2 (4000);pkgtype VARCHAR2 (50);pkgid NUMBER;vext VARCHAR2 (4000);dpvid NUMBER;cbuildtypes tdictionary;dependencyrow NUMBER;sdependency VARCHAR2 (4000);citemcollection relmgr_varchar2_tab_t;CURSOR curbuildtypeISSELECT dpv.pkg_id || seperator || dpv.v_ext AS pkgid_ext,dep.build_typeFROM package_dependencies dep, package_versions dpvWHERE dep.pv_id = pvid AND dep.dpv_id = dpv.pv_id;recbuildtype curbuildtype%ROWTYPE;BEGIN-- Get Current DependenciesOPEN curbuildtype;FETCH curbuildtypeINTO recbuildtype;WHILE curbuildtype%FOUNDLOOPcbuildtypes (recbuildtype.pkgid_ext) := recbuildtype.build_type;FETCH curbuildtype INTO recbuildtype;END LOOP;CLOSE curbuildtype;BEGIN-- Remove old dependenciesDELETE FROM package_dependencies depWHERE dep.pv_id = pvid;-- Loop through dependenciesFOR dependencyrow IN 1 .. dependenciesimportlist.COUNTLOOP-- Extract pkg_name and pkg_version and type(optional)sdependency := dependenciesimportlist (dependencyrow);sdependency := REPLACE(sdependency, '''');sdependency := REPLACE(sdependency, '"');-- Remove empty dependencyIF LENGTH(sdependency) > 0 THENcitemcollection := in_list_varchar2 (sdependency, ',');IF citemcollection.COUNT < 2THENraise_application_error(-20000,'Dependency ['|| sdependency|| '] must have at least two ; separated fields!');END IF;pkgname := citemcollection(1);pkgversion := citemcollection(2);IF citemcollection.COUNT >= 3THENpkgtype := citemcollection(3);ELSEpkgtype := NULL;END IF;-- Dependency must exits to be linked againstBEGINSELECT pv.pv_id, pv.pkg_id, pv.v_extINTO dpvid, pkgid, vextFROM package_versions pv, PACKAGES pkgWHERE pv.pkg_id = pkg.pkg_idAND pkg.pkg_name = pkgnameAND pv.pkg_version = pkgversion;EXCEPTIONWHEN NO_DATA_FOUNDTHENraise_application_error(-20000,'Dependency ['|| pkgname|| ' '|| pkgversion|| '] does not exist yet and cannot be used!');END;-- Get Build Type (i.e. BuildPackageArchive or LinkPackageArchive)IF pkgtype IS NULLTHENBEGINpkgtype := cbuildtypes (pkgid || seperator || vext);IF pkgtype IS NULLTHEN-- Set build type to LinkPackageArchive by defaultpkgtype := 'L';END IF;EXCEPTIONWHEN NO_DATA_FOUNDTHENpkgtype := 'L';END;END IF;-- Limit to known typesIF UPPER(pkgtype) like('B%') THENpkgtype := 'B';ELSEpkgtype := 'L';END IF;-- Insert Dependenciesupdate_package_dependency (pvid,pkgname,pkgversion,pkgtype,userid,0);END IF;END LOOP;END;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)RETURN VARCHAR2ISpkgversion VARCHAR2 (4000);BEGINBEGINSELECT pv.pkg_versionINTO pkgversionFROM PACKAGES pkg, release_content rc, package_versions pvWHERE pv.pv_id = rc.pv_idAND pkg.pkg_id = pv.pkg_idAND pkg.pkg_name = pkgnameAND rc.rtag_id = rtagid;RETURN pkgversion;END;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)RETURN VARCHAR2ISpkgversion VARCHAR2 (4000);BEGINBEGINSELECT pv.pkg_versionINTO pkgversionFROM PACKAGES pkg, work_in_progress wip, package_versions pvWHERE pv.pv_id = wip.pv_idAND pkg.pkg_id = pv.pkg_idAND pkg.pkg_name = pkgnameAND wip.rtag_id = rtagid;IF pkgversion IS NULLTHENSELECT pv.pkg_versionINTO pkgversionFROM PACKAGES pkg, planned pl, package_versions pvWHERE pv.pv_id = pl.pv_idAND pkg.pkg_id = pv.pkg_idAND pkg.pkg_name = pkgnameAND pl.rtag_id = rtagid;END IF;RETURN pkgversion;END;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE update_dash_board (rtagid IN NUMBER)ISprojid NUMBER;projiddb NUMBER;total NUMBER;auto_total NUMBER;rtagiddb NUMBER;BEGINSELECT COUNT (*)INTO totalFROM release_content rc, package_versions pvWHERE pv.pv_id = rc.pv_id AND rc.rtag_id = rtagid;SELECT COUNT (*)INTO auto_totalFROM release_content rc, package_versions pvWHERE pv.pv_id = rc.pv_idAND pv.is_autobuildable = 'Y'AND rc.rtag_id = rtagid;BEGINSELECT rtag_idINTO rtagiddbFROM dash_boardWHERE rtag_id = rtagid;SELECT proj_idINTO projiddbFROM dash_boardWHERE rtag_id = rtagid;EXCEPTIONWHEN NO_DATA_FOUNDTHENrtagiddb := '';END;IF rtagiddb IS NULLTHENSELECT proj_idINTO projidFROM release_tagsWHERE rtag_id = rtagid;INSERT INTO dash_board(proj_id, rtag_id, last_build_time, automated_packages,total_packages)VALUES (projid, rtagid, ora_sysdatetime, auto_total,total);ELSEUPDATE dash_boardSET last_build_time = ora_sysdatetime,automated_packages = auto_total,total_packages = totalWHERE proj_id = projiddb AND rtag_id = rtagiddb;END IF;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION exclude_from_build (pvid IN NUMBER,spkgversion IN VARCHAR2,rtagid IN NUMBER,username IN VARCHAR2)RETURN NUMBERISuserid NUMBER;outerrcode NUMBER;pkgid NUMBER;CURSOR dnr_duplicate_curISSELECT *FROM do_not_rippleWHERE pv_id = pvid AND rtag_id = rtagid;dnr_duplicate_rec dnr_duplicate_cur%ROWTYPE;BEGINouterrcode := -1; -- Set default return error code to ERROR state/*--------------- Business Rules Here -------------------*/IF (rtagid IS NULL)THENRETURN outerrcode;-- raise_application_error (-20000, 'RtagId must be supplied.');END IF;IF (pvid IS NULL)THENRETURN outerrcode;-- raise_application_error (-20000, 'PvId must be supplied.');END IF;IF (username IS NULL)THENRETURN outerrcode;-- raise_application_error (-20000, 'UserName must be supplied.');END IF;-- Get user_idBEGINSELECT usr.user_idINTO useridFROM users usrWHERE UPPER (usr.user_name) = UPPER (username)AND usr.is_disabled IS NULL;EXCEPTIONWHEN NO_DATA_FOUNDTHENRETURN outerrcode;-- raise_application_error (-20000,-- 'UserName '-- || username-- || ' is not valid or disabled.'-- );END;OPEN dnr_duplicate_cur;FETCH dnr_duplicate_curINTO dnr_duplicate_rec;IF dnr_duplicate_cur%FOUNDTHENouterrcode := 0;END IF;IF dnr_duplicate_cur%NOTFOUNDTHEN/* No duplicate recordset */unripple_package (pvid, rtagid, userid);outerrcode := 0; -- Set return to SUCCESSEND IF;CLOSE dnr_duplicate_cur;SELECT pkg_idINTO pkgidFROM package_versionsWHERE pv_id = pvid;DELETE FROM planned_versionsWHERE pkg_id = pkgid AND pkg_version = spkgversion;RETURN outerrcode;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION exclude_indirect_from_build (pvid IN NUMBER,spkgversion IN VARCHAR2,rtagid IN NUMBER,username IN VARCHAR2,rootpvid IN NUMBER,rootcause IN VARCHAR2,rootfile IN VARCHAR2)RETURN NUMBERISuserid NUMBER;outerrcode NUMBER;pkgid NUMBER;CURSOR dnr_duplicate_curISSELECT *FROM do_not_rippleWHERE pv_id = pvid AND rtag_id = rtagid;dnr_duplicate_rec dnr_duplicate_cur%ROWTYPE;BEGINouterrcode := -1; -- Set default return error code to ERROR state/*--------------- Business Rules Here -------------------*/IF (rtagid IS NULL)THENRETURN outerrcode;-- raise_application_error (-20000, 'RtagId must be supplied.');END IF;IF (pvid IS NULL)THENRETURN outerrcode;-- raise_application_error (-20000, 'PvId must be supplied.');END IF;IF (username IS NULL)THENRETURN outerrcode;-- raise_application_error (-20000, 'UserName must be supplied.');END IF;-- Get user_idBEGINSELECT usr.user_idINTO useridFROM users usrWHERE UPPER (usr.user_name) = UPPER (username)AND usr.is_disabled IS NULL;EXCEPTIONWHEN NO_DATA_FOUNDTHENRETURN outerrcode;-- raise_application_error (-20000,-- 'UserName '-- || username-- || ' is not valid or disabled.'-- );END;/* No duplicate recordset */unripple_package_indirect (pvid, rtagid, userid, rootpvid, rootcause, rootfile);outerrcode := 0; -- Set return to SUCCESSSELECT pkg_idINTO pkgidFROM package_versionsWHERE pv_id = pvid;DELETE FROM planned_versionsWHERE pkg_id = pkgid AND pkg_version = spkgversion;RETURN outerrcode;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2)ISBEGININSERT INTO abt_action_log(rcon_id, action_datetime, action)VALUES (rconid, ora_sysdatetime, action);END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION insert_package_metrics (rtagid IN NUMBER,pkgname IN VARCHAR2,vext IN VARCHAR2,metricstring IN VARCHAR2)RETURN NUMBERIScitemcollection relmgr_varchar2_tab_t := relmgr_varchar2_tab_t ();lv_pvid NUMBER := 0;rownumber NUMBER;rowcontent VARCHAR2(4000);metricname VARCHAR2(1000);metricvalue VARCHAR2(4000);return_insert_error NUMBER := -1;return_insert_success NUMBER := 0;/* Metrics */lv_branches NUMBER;lv_branchlist VARCHAR2(4000);lv_codefiles NUMBER;lv_ignoredfiles NUMBER;lv_directories NUMBER;lv_directorydepth NUMBER;lv_totalfiles NUMBER;lv_makefiles NUMBER;lv_blanklines NUMBER;lv_codelines NUMBER;lv_commentlines NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/IF (rtagid IS NULL)THENRETURN return_insert_error;END IF;IF (pkgname IS NULL)THENRETURN return_insert_error;END IF;IF (metricstring IS NULL)THENRETURN return_insert_error;END IF;BEGINSELECT pv.pv_idINTO lv_pvidFROM package_versions pv, packages pkg, release_content rcWHERE pv.pkg_id = pkg.pkg_idAND rc.rtag_id = rtagidAND pv.pv_id = rc.pv_idAND pkg.pkg_name = pkgnameAND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');EXCEPTIONWHEN NO_DATA_FOUNDTHENlv_pvid := 0;END;citemcollection := in_list_varchar2 (metricstring, ';');FOR rownumber IN 1 .. citemcollection.COUNTLOOProwcontent := citemcollection(rownumber);metricvalue := SUBSTR(rowcontent, (INSTR(rowcontent, '=') + 1));metricname := REGEXP_REPLACE(rowcontent, '=.*$', '');IF metricname = 'ccbranch.count' THEN lv_branches := metricvalue;ELSIF metricname = 'ccbranch.list' THEN lv_branchlist := metricvalue;ELSIF metricname = 'code.files' THEN lv_codefiles := metricvalue;ELSIF metricname = 'code.ignored' THEN lv_ignoredfiles := metricvalue;ELSIF metricname = 'count.dir' THEN lv_directories := metricvalue;ELSIF metricname = 'count.dirdepth' THEN lv_directorydepth := metricvalue;ELSIF metricname = 'count.file' THEN lv_totalfiles := metricvalue;ELSIF metricname = 'count.makefile' THEN lv_makefiles := metricvalue;ELSIF metricname = 'lines.blank' THEN lv_blanklines := metricvalue;ELSIF metricname = 'lines.code' THEN lv_codelines := metricvalue;ELSIF metricname = 'lines.comment' THEN lv_commentlines := metricvalue;END IF;END LOOP;IF (lv_pvid > 0)THEN-- Delete any existing entries for this package version to makes sure our data is untaintedDELETE FROM package_metrics pmWHERE pm.pv_id = lv_pvid;-- Insert the new data into the metrics tableINSERT INTO package_metrics(pv_id, branches, branch_list, code_files, ignored_files, directories, directory_depth,total_files, makefiles, blank_lines, code_lines, comment_lines, created_stamp)VALUES (lv_pvid, lv_branches, lv_branchlist, lv_codefiles, lv_ignoredfiles, lv_directories, lv_directorydepth,lv_totalfiles, lv_makefiles, lv_blanklines, lv_codelines, lv_commentlines, ora_sysdatetime);-- Now update the Release_Metrics Tableupdate_release_metrics(rtagid);RETURN return_insert_success;ELSERETURN return_insert_error;END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE update_release_metrics (rtagid IN NUMBER)ISlv_totalpackages NUMBER;lv_autobuilt NUMBER;lv_linesofcode NUMBER;lv_unittested NUMBER;lv_autotested NUMBER;lv_numOfbranches NUMBER;lv_lastbuildtime DATE;BEGINIF (rtagid > 0)THEN-- Get the total number of packages in this release and the number of-- those that are autobuiltSELECT COUNT (DISTINCT rc.pv_id),COUNT (DISTINCT autobuilt_qry.pv_id)INTO lv_totalpackages, lv_autobuiltFROM release_content rc,package_versions pv,(SELECT rc.pv_idFROM release_content rc,package_versions pvWHERE pv.is_autobuildable = 'Y'AND pv.pv_id = rc.pv_idAND rc.rtag_id = rtagid) autobuilt_qryWHERE pv.pv_id = rc.pv_idAND rc.rtag_id = rtagidAND autobuilt_qry.pv_id (+) = rc.pv_id;-- Get the build time of the last package built in this release and the-- total number of lines of codeSELECT MAX(pm.created_stamp),SUM(pm.code_lines)INTO lv_lastbuildtime, lv_linesofcodeFROM package_metrics pm, release_content rcWHERE pm.pv_id = rc.pv_idAND rc.rtag_id = rtagid;-- Get the number of packages with unit tests in this release and the-- number of those that are autotestedSELECT COUNT(DISTINCT ut.pv_id) INTO lv_unittestedFROM unit_tests ut,release_content rcWHERE ut.pv_id = rc.pv_idAND rc.rtag_id = rtagidAND ut.test_types_fk != 1;SELECT COUNT(DISTINCT ut.pv_id) INTO lv_autotestedFROM unit_tests ut,release_content rcWHERE ut.pv_id = rc.pv_idAND rc.rtag_id = rtagidAND ut.test_types_fk = 7;-- Count the number of unique branches in the packages in this release.-- SELECT COUNT(DISTINCT branch) INTO lv_numOfbranches-- FROM (-- SELECT pv_id,-- regexp_substr(str, '[^,]+', 1, level) branch,-- level lv,-- lag(level, 1, 0) over (partition by pv_id order by level) lg-- FROM (-- SELECT pm.pv_id,-- ','||pm.branch_list str-- FROM package_metrics pm,-- release_content rc-- WHERE pm.pv_id = rc.pv_id-- AND rc.rtag_id = rtagid-- )-- CONNECT BY regexp_substr(str, '[^,]+', 1, LEVEL) IS NOT NULL-- )-- WHERE lv != lg;UPDATE release_metrics rmSET rm.total_packages = lv_totalpackages,rm.autobuilt = lv_autobuilt,rm.lines_of_code = lv_linesofcode,rm.unit_tested = lv_unittested,rm.autotested = lv_autotested,-- rm.branches = lv_numOfbranches,rm.last_build_time = lv_lastbuildtimeWHERE rtag_id = rtagid;IF (SQL%ROWCOUNT = 0)THENINSERT INTO release_metrics(rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,autotested, last_build_time)VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,lv_autotested, lv_lastbuildtime);END IF;-- IF (SQL%ROWCOUNT = 0)-- THEN-- INSERT INTO release_metrics-- (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,-- autotested, branches, last_build_time-- )-- VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,-- lv_autotested, lv_numOfbranches, lv_lastbuildtime-- );-- END IF;-- ELSE-- raise_application_error (-20000, 'RtagId must be supplied.');END IF;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION return_vcs_tag(pvid IN NUMBER) RETURN VARCHAR2ISvcstypeid NUMBER;vcstag VARCHAR2(32);label VARCHAR2(60);srcpath VARCHAR2(2000);vcstypeid_cc NUMBER;vcstypeid_uc NUMBER;BEGIN-- Get the VCS_TYPE_ID for the ClearCase version control system. We do this so that we make no assumptions about-- what the primary key value is for the ClearCase VCS entry.BEGINSELECT vt.vcs_type_idINTO vcstypeid_ccFROM VCS_TYPE vtWHERE vt.tag = 'CC';EXCEPTIONWHEN NO_DATA_FOUND THENraise_application_error (-20000, 'Database is missing compulsory CC version control system tag!');END;-- Get the VCS_TYPE_ID for the Uncontrolled version control system. We do this so that we make no assumptions about-- what the primary key value is for the Uncontrolled VCS entry.BEGINSELECT vt.vcs_type_idINTO vcstypeid_ucFROM VCS_TYPE vtWHERE vt.tag = 'UC';EXCEPTIONWHEN NO_DATA_FOUND THENraise_application_error (-20000, 'Database is missing compulsory UC version control system tag!');END;-- Get the PKG_LABEL, SRC_PATH, VCS_TYPE_ID for the package version-- As additional VCS types are introduced, we may have to extend what this SELECT statement returnsBEGINSELECT pv.pkg_label, pv.src_path,(CASE WHEN pv.pkg_label = 'N/A' AND pv.vcs_type_id IS NULL THEN vcstypeid_ucWHEN pv.vcs_type_id IS NULL THEN vcstypeid_ccELSE pv.vcs_type_id END) AS vcs_type_idINTO label, srcpath, vcstypeidFROM PACKAGE_VERSIONS pvWHERE pv.pv_id = pvid;EXCEPTIONWHEN NO_DATA_FOUND THENraise_application_error (-20000, 'Package Version Not Found!');END;-- Get the VCS TAG for the VCS_TYPE_ID.BEGINSELECT vt.tagINTO vcstagFROM VCS_TYPE vtWHERE vt.vcs_type_id = vcstypeid;EXCEPTIONWHEN NO_DATA_FOUND THENraise_application_error (-20000, 'Could not get VCS Tag for the package version!');END;-- Return value depending upon which VCS Tag is being used.-- As additional VCS types are introduced, we have to add additional WHEN clausesCASE vcstagWHEN 'CC' THENRETURN vcstag || '::' || srcpath || '::' || label;WHEN 'SVN' THENRETURN vcstag || '::' || srcpath || '::' || label;ELSERETURN vcstag || '::';END CASE;END;/*-------------------------------------------------------------------------------------------------------*//*-------------------------------------------------------------------------------------------------------Name: update_vcs_detailsDescription: Updates the Version Control System (vcs) details specified in the vcstagparameter for the specified package version.The specified package vcstag is parsed and split into 3 fields:vcs type, src path, labelThese fields are then stored for the specified pv_id in the package_versions, table.An action is recorded in the action log and provides information for tracking andfor restoring the previous vcs settings if a recovery is required.Paramters:ipv_id: Package version identifiervcstag: Full version control tag.Examples:"SVN::AUPERASVN01/DPG_SWBase/tools/trunk::daf_tools_25.1.7027.cr@1234""CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr"user_id: Identifier of the user that is performing this function.*/PROCEDURE update_vcs_details(ipv_id IN NUMBER, vcstag IN VARCHAR2, user_id IN NUMBER)ISivcs_type_id NUMBER;svcs_type VARCHAR2(128);ssrc_path VARCHAR2(512);spkg_label VARCHAR2(512);spattern VARCHAR2(64);saction_desc VARCHAR2(2048);old_vcs_type VARCHAR2(128);old_src_path VARCHAR2(512);old_pkg_label VARCHAR2(512);old_pkg_vcstag VARCHAR2(1024);i NUMBER;vcount NUMBER;BEGIN-- Split vcs tag into fields: vcs type, src path, label-- Fields are separated by '::'-- e.g "CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr"-- The below regular expression pattern has groups to achieve this.spattern:= '^([^:]*)::([^:]*)(::(.*))?$';--As Oracle 10g does not allow REGEXP_SUBSTR to return a group,--REGEXP_REPLACE is used instead (Note: Oracle 11g has this enhancement).SELECT REGEXP_REPLACE(vcstag,spattern, '\1') INTO svcs_type FROM DUAL;SELECT REGEXP_REPLACE(vcstag,spattern, '\2') INTO ssrc_path FROM DUAL;SELECT REGEXP_REPLACE(vcstag,spattern, '\4') INTO spkg_label FROM DUAL;-- Validate vcs typeBEGINSELECT vc.vcs_type_id INTO ivcs_type_id FROM vcs_type vc WHERE UPPER(svcs_type) = UPPER(vc.tag);EXCEPTIONWHEN NO_DATA_FOUND THENraise_application_error (-20000, 'Invalid vcs type: ' || '"' || svcs_type || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');--RAISE;END;-- If ClearcaseIF (ivcs_type_id = 2) THEN-- Validate source pathIF NOT REGEXP_LIKE(ssrc_path,'^(\\|\/)[a-z]+[0-9a-z_\.\-\\\/ -]*$','i') THENraise_application_error (-20000, 'Invalid CC src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');END IF;-- Validate label-- For clearcase the label must be specified. For subversion it is not required.IF NOT REGEXP_LIKE(spkg_label,'^[0-9a-z_\.\-]+$','i') THENraise_application_error (-20000, 'Invalid CC label:' || '"' || spkg_label || '"' || ' for package version:' || ipv_id || ', vcstag:' || '"' || vcstag || '"');END IF;-- if SubversionELSIF (ivcs_type_id = 23) THEN-- general validity-- Not as picky as the RM Data entryIF NOT REGEXP_LIKE(ssrc_path,'^([0-9a-z_\.\-]+)(\/([0-9a-z_\.\-]+))+$','i') THENraise_application_error (-20000, 'Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');END IF;-- Validate Tag-- May be a Peg or a LabelIF NOT REGEXP_LIKE(spkg_label,'^@?[0-9]+$','i') THENIF NOT REGEXP_LIKE(spkg_label,'^[0-9a-z_\.\-]+($|@[0-9]+)','i') THENraise_application_error (-20000, 'Invalid SVN tag:' || '"' || spkg_label || '"' || ' for package version:' || ipv_id || ', vcstag:' || '"' || vcstag || '"');END IF;END IF;-- Check for suitable endingIF NOT REGEXP_LIKE(ssrc_path,'(\/tags$)|(\/branches\/)|(\/trunk$)','i') THENraise_application_error (-20000, 'Must end in /trunk or /tags/ or /branches/.... Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');END IF;-- Check for combined use of tags, branches, trunk or repeats of each-- Count occurrences of /tags or /branches/ or /trunkvcount:=0;i:=1;WHILE i > 0 LOOPi:=REGEXP_INSTR(ssrc_path,'(\/tags(\/|$))|(\/branches(\/|$))|(\/trunk(\/|$))',i,1,1,'i');IF i > 0 THEN-- if found then increment countvcount:=vcount+1;i:=i-1; -- move index back to "/"END IF;END LOOP;IF vcount = 0 THENraise_application_error (-20000, 'Must contain exactly one of the keywords /trunk, /tags, /branches/. Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');END IF;IF vcount > 1 THENraise_application_error (-20000, 'Combined use of /trunk, /tags, or /branches/. Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');END IF;END IF;BEGIN-- Get current vcs tag for specified package versionSELECT pv.src_path, pv.pkg_label, vc.tag as vcs_typeINTO old_src_path, old_pkg_label, old_vcs_typeFROM package_versions pv, vcs_type vcWHERE pv.pv_id = ipv_idAND pv.vcs_type_id = vc.vcs_type_id (+);EXCEPTIONWHEN NO_DATA_FOUND THENraise_application_error (-20000, 'Package version not found: ' || ipv_id);END;old_pkg_vcstag:= old_vcs_type || '::' || old_src_path;IF (old_pkg_label IS NOT NULL) THENold_pkg_vcstag:=old_pkg_vcstag || '::' || old_pkg_label;END IF;-- Create action description-- This description will contain the old and new tags.-- Its purpose is to provide information for tracking and for restoring previous vcs settings if a recovery is required.-- An example of the action description is below:-- OldTag:CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr NewTag:SVN::DPG_SWBase/tools/tags/daf_tools_25.1.7027.crsaction_desc:='OldTag:' || old_pkg_vcstag || ' ' || 'NewTag:' || vcstag;-- Store new vcs detailsUPDATE package_versions SETsrc_path = ssrc_path,pkg_label = spkg_label,vcs_type_id = ivcs_type_idWHEREpv_id = ipv_id;-- Store action in action log so that we can back track and also restore vcs settings if required.log_action (ipv_id,'VcsConversion',user_id,saction_desc);END update_vcs_details;/*-------------------------------------------------------------------------------------------------------Name: isSVNDescription: Determine if any of the packages versions are controlled under SVNIntended to be used to prevent users from releasing a packagethat has been migrated to SVNParamters: pkgid: Package IDReturns: Number of versions under SVN version control*/FUNCTION isSVN( pkgid IN NUMBER )RETURN NUMBERISsvncount NUMBER := 0;BEGINSELECT COUNT(*) INTO svncount FROM PACKAGE_VERSIONS pv WHERE pv.PKG_ID = pkgid AND pv.VCS_TYPE_ID = 23;RETURN (svncount);END;/*-------------------------------------------------------------------------------------------------------Name: isSVNbyNameDescription: Determine if any of the packages versions are controlled under SVNIntended to be used to prevent users from releasing a packagethat has been migrated to SVNParamters: pkgname: Package NameReturns: Number of versions under SVN version control*/FUNCTION isSVNbyName( pkgname IN VARCHAR2 )RETURN NUMBERISsvncount NUMBER := 0;BEGINSELECT COUNT(*) INTO svncount FROM PACKAGE_VERSIONS pv, PACKAGES pkg WHERE pkg.pkg_name = pkgname AND pv.PKG_ID = pkg.pkg_id AND pv.VCS_TYPE_ID = 23;RETURN (svncount);END;/*-------------------------------------------------------------------------------------------------------Name: new_build_instanceDescription: Create a new entry in the BUILD_INSTANCE tableThe BUILD_ID will be allocated.The timestamp will be createdParamters: rtag_id: Release ID - must existpv_id: Package ID - must existreason: Reason code for the buildReturns: BUILD_ID for the new entryReturns -1 on error, PV_ID or RTAG_ID do not exist*/FUNCTION new_build_instance( rtag_id IN NUMBER, pv_id IN NUMBER , reason IN CHAR)RETURN NUMBERISbuild_id NUMBER := 0;BEGININSERT into BUILD_INSTANCES (RTAG_ID, PV_ID, REASON)values( rtag_id, pv_id, reason)returning BUILD_ID into build_id;return build_id;EXCEPTIONWHEN OTHERS THENreturn -1;END;/*-------------------------------------------------------------------------------------------------------Name: update_build_instanceDescription: Update fields in an existing build instanceReturns: -1 on error*/FUNCTION update_build_instance(nbuild_id IN NUMBER,npv_id IN NUMBER DEFAULT NULL,nstate IN CHAR DEFAULT NULL )RETURN NUMBERISBEGINIF ( npv_id IS NOT NULL AND npv_id > 0 ) THENUPDATE BUILD_INSTANCES SET PV_ID = npv_id WHERE BUILD_ID = nbuild_id;IF SQL%NOTFOUND THENRETURN -2;END IF;END IF;IF ( nstate IS NOT NULL ) THENIF (LENGTH(nstate) = 1 ) THENUPDATE BUILD_INSTANCES SET STATE = nstate WHERE BUILD_ID = nbuild_id;IF SQL%NOTFOUND THENRETURN -3;END IF;ELSERETURN -4;END IF;END IF;RETURN 1;EXCEPTIONWHEN OTHERS THENRETURN -1;END;/*-------------------------------------------------------------------------------------------------------Name: insert_test_runDescription: Insert data into the test_run tableParamters: See belowReturns: 1 on successReturns -1 on error*/FUNCTION insert_test_run(build_id IN NUMBER,name IN VARCHAR2,outcome IN VARCHAR2,platform IN VARCHAR2,stype IN VARCHAR2,duration IN NUMBER default null,message IN CLOB default null) return NUMBERISsName VARCHAR2(1000) := name;sNameLen NUMBER;BEGINsNameLen := LENGTH(sName);IF sNameLen >= 199 ThensName := '...' || SUBSTR(sName, sNameLen - 196);END IF;INSERT into TEST_RUN(BUILD_ID, TEST_NAME, TEST_OUTCOME, TIME_TAKEN,FAIL_MESSAGE,PLATFORM, TYPE)VALUES(build_id,sName,outcome, duration, message, platform, stype);return 1;EXCEPTIONWHEN OTHERS THENreturn -1;END;END;/GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "RM_READONLY";GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "MS_READONLY";GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "DM_READONLY";---------------------------------------------------------- DDL for Package Body PK_WORK_IN_PROGRESS--------------------------------------------------------CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS/*------------------------------|| Last Modified: S.Vukovic|| Modified Date: 2/May/2005|| Body Version: 1.0------------------------------*//*-------------------------------------------------------------------------------------------------------*/PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) ISoldPvId NUMBER;ReleaseLocation VARCHAR2(4000);sLocation VARCHAR2(4000) := NULL;BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/BEGIN-- Check if Exists in "Work in progress" anywhere in the world in a non-closed ReleaseSELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME INTO sLocationFROM WORK_IN_PROGRESS wip,RELEASE_TAGS rt,PROJECTS projWHERE wip.PV_ID = newPvIdAND wip.RTAG_ID = rt.RTAG_IDAND rt.OFFICIAL in ('N','R','C')AND rt.PROJ_ID = proj.PROJ_ID;EXCEPTIONWHEN NO_DATA_FOUND THENsLocation := NULL;END;IF (sLocation IS NULL) THEN-- Add to "Work in progress"INSERT INTO WORK_IN_PROGRESS ( RTAG_ID, PV_ID, VIEW_ID )VALUES( RtagId, newPvId, ViewId );/* LOG ACTION */SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;Log_Action ( newPvId, 'work_in_progress', UserId, 'Location: '|| ReleaseLocation );ELSERAISE_APPLICATION_ERROR (-20000, 'This version is already in Work-In-Progress Area at '|| sLocation ||'.' );END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) ISReleaseLocation VARCHAR2(4000);BEGIN/*--------------- Business Rules Here -------------------*//*-------------------------------------------------------*/-- Get release location for logging pusposesSELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;-- Ensure that package is not marked as Pending/Rejected any moreUPDATE package_versionsSET DLOCKED = 'N'WHERE PV_ID = PvIdAND DLOCKED != 'Y';-- Delete from Work In ProgressDELETEFROM WORK_IN_PROGRESS wipWHERE wip.RTAG_ID = RtagIdAND wip.PV_ID = PvId;Log_Action ( PvId, 'delete_from_wip', UserId, 'Location: '|| ReleaseLocation );END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER ) ISnIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();ReleaseLocation VARCHAR2(4000);PvId NUMBER;BEGIN/*--------------- Business Rules Here -------------------*/IF (PvIdList IS NULL)THENRAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );END IF;/*-------------------------------------------------------*/nIdCollector := IN_LIST_NUMBER ( PvIdList );-- Get release location for logging pusposesSELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = RtagId;FOR i IN 1..nIdCollector.COUNTLOOPPvId := nIdCollector(i);-- Delete from Work In ProgressDELETEFROM WORK_IN_PROGRESS wipWHERE wip.RTAG_ID = RtagIdAND wip.PV_ID = PvId;Log_Action ( PvId, 'remove_from_work_in_progress', UserId, 'Location: '|| ReleaseLocation );END LOOP;END;/*-------------------------------------------------------------------------------------------------------*/FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER ISReturnValue NUMBER;BEGINSELECT wip.VIEW_ID INTO ReturnValueFROM WORK_IN_PROGRESS wipWHERE wip.RTAG_ID = RtagIdAND wip.PV_ID = PvId;RETURN ReturnValue;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) ISIsBaseView CHAR(1);BEGIN-- Check if the view is BASE VIEWSELECT vi.BASE_VIEW INTO IsBaseViewFROM VIEWS viWHERE vi.VIEW_ID = ViewId;IF (IsBaseView IN ('Y', 'S')) THEN-- Get Base view contentOPEN RecordSet FORSELECT 0 AS PKG_STATE,NULL AS DEPRECATED_STATE,pv.pv_id,pkg.pkg_name,pv.pkg_version,pv.dlocked,pv.pv_description,pv.BUILD_TYPEFROM WORK_IN_PROGRESS rel,packages pkg,package_versions pvWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND rel.VIEW_ID = ViewIdAND rel.RTAG_ID = RtagIdORDER BY UPPER(pkg.PKG_NAME);ELSE-- Get non base view contentOPEN RecordSet FORSELECT 0 AS PKG_STATE,NULL AS DEPRECATED_STATE,pv.pv_id,pkg.pkg_name,pv.pkg_version,pv.dlocked,pv.pv_description,pv.BUILD_TYPEFROM WORK_IN_PROGRESS rel,packages pkg,package_versions pv,VIEW_DEF vdWHERE pv.pkg_id = pkg.pkg_idAND rel.pv_id = pv.pv_idAND vd.VIEW_ID = ViewIdAND vd.PKG_ID = pv.PKG_IDAND rel.RTAG_ID = RtagIdORDER BY UPPER(pkg.PKG_NAME);END IF;END;/*-------------------------------------------------------------------------------------------------------*/PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) ISBEGINUPDATE WORK_IN_PROGRESS wip SETwip.VIEW_ID = NewViewIdWHERE wip.PV_ID = PvIdAND wip.RTAG_ID = RtagId;END;/*-------------------------------------------------------------------------------------------------------*/END PK_WORK_IN_PROGRESS;/---------------------------------------------------------- DDL for Package Body RM_ISSUES--------------------------------------------------------CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."RM_ISSUES" AS-- Private Implementation -----------------------------------------------------FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBERASBEGIN-- start boundary caseIF ( XXstart < XX ) THENRETURN 1;ELSIF ( XXstart = XX ) THEN-- need to consider YYIF ( YYstart < YY ) THENRETURN 1;ELSIF ( YYstart = YY ) THEN-- need to consider ZZIF ( ZZstart <= ZZ ) THENRETURN 1;ELSERETURN 0;END IF;ELSERETURN 0;END IF;ELSERETURN 0;END IF;EXCEPTIONWHEN OTHERS THENRETURN -1;END;FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBERASBEGIN-- end boundary caseIF ( XX < XXend ) THENRETURN 1;ELSIF ( XX = XXend ) THEN-- need to consider YYIF ( YY < YYend ) THENRETURN 1;ELSIF ( YY = YYend ) THEN-- need to consider ZZIF ( ZZ <= ZZend ) THENRETURN 1;ELSERETURN 0;END IF;ELSERETURN 0;END IF;ELSERETURN 0;END IF;EXCEPTIONWHEN OTHERS THENRETURN -1;END;/*- version format: XX.YY.ZZ.abc*/FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBERASXXstart NUMBER := 0;XXend NUMBER := 0;XX NUMBER := 0;YYstart NUMBER := 0;YYend NUMBER := 0;YY NUMBER := 0;ZZstart NUMBER := 0;ZZend NUMBER := 0;ZZ NUMBER := 0;first_dot NUMBER := 0;second_dot NUMBER := 0;third_dot NUMBER := 0;ProjExtstart VARCHAR2(10);ProjExtend VARCHAR2(10);ProjExt VARCHAR2(10);BEGIN-- strip the version numberfirst_dot := INSTR(version_start, '.', 1, 1);second_dot := INSTR(version_start, '.', 1, 2);third_dot := INSTR(version_start, '.', 1, 3);XXstart := TO_NUMBER( SUBSTR( version_start, 1, first_dot - 1 ) );YYstart := TO_NUMBER( SUBSTR( version_start, first_dot + 1, second_dot - ( first_dot + 1 ) ) );ZZstart := TO_NUMBER( SUBSTR( version_start, second_dot + 1, third_dot - ( second_dot + 1 ) ) );ProjExtstart := SUBSTR( version_start, third_dot + 1, LENGTH(version_start) - third_dot );first_dot := INSTR(version_end, '.', 1, 1);second_dot := INSTR(version_end, '.', 1, 2);third_dot := INSTR(version_end, '.', 1, 3);XXend := TO_NUMBER( SUBSTR( version_end, 1, first_dot - 1 ) );YYend := TO_NUMBER( SUBSTR( version_end, first_dot + 1, second_dot - ( first_dot + 1 ) ) );ZZend := TO_NUMBER( SUBSTR( version_end, second_dot + 1, third_dot - ( second_dot + 1 ) ) );ProjExtend := SUBSTR( version_end, third_dot + 1, LENGTH(version_end) - third_dot );first_dot := INSTR(version, '.', 1, 1);second_dot := INSTR(version, '.', 1, 2);third_dot := INSTR(version, '.', 1, 3);XX := TO_NUMBER( SUBSTR( version, 1, first_dot - 1 ) );YY := TO_NUMBER( SUBSTR( version, first_dot + 1, second_dot - ( first_dot + 1 ) ) );ZZ := TO_NUMBER( SUBSTR( version, second_dot + 1, third_dot - ( second_dot + 1 ) ) );ProjExt := SUBSTR( version, third_dot + 1, LENGTH(version) - third_dot );-- only include versions if all project extensions are the sameIF ( ProjExtstart = ProjExt AND ProjExt = ProjExtend ) THENIF ( VerIsGrtrThanOrEqlToStart( XXstart, XX, YYstart, YY, ZZstart, ZZ ) = 1 AND VerIsLessThanOrEqlToEnd( XXend, XX, YYend, YY, ZZend, ZZ ) = 1 ) THENRETURN 1;ELSERETURN 0;END IF;ELSERETURN 0;END IF;EXCEPTIONWHEN OTHERS THENRETURN -1;END;FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBERASpkg_id NUMBER;BEGINSELECTp.PKG_IDINTOpkg_idFROMPACKAGES pWHEREp.PKG_NAME = pkgName;RETURN pkg_id;EXCEPTIONWHEN OTHERS THENdbms_output.put_line('GetPkgId exception: ' || SQLERRM );RETURN -1;END;-- Public Implementation ------------------------------------------------------/*-- Proc: AllIssues - Gets all issues for a package from dependent packages one level deep---- INPUT PARAMETERS:---- pkg_name - The name of the top level package to get issues for-- version_start - The start version for the comparison-- version_end - The end version for the comparison*/PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )ASpkgId NUMBER;BEGIN-- get pkg_id of the input package:pkgId := GetPkgId( pkg_name );OPEN vCursor FORSELECTpv.PKG_ID,pv.PKG_VERSION,pv.PV_ID,i_pkg.ISS_ID,( SELECT pkg_name FROM PACKAGES WHERE pkg_id = pd.DPKG_ID ) AS DPV_NAME,pd.DPKG_ID,( SELECT pkg_version FROM PACKAGE_VERSIONS WHERE pv_id = pd.DPV_ID ) AS DPV_VER,pd.DPV_ID,i_dpkg.ISS_ID AS ISSUE_IDFROMPACKAGE_VERSIONS pvLEFT OUTER JOIN CQ_ISSUES i_pkg ON pv.PV_ID = i_pkg.PV_IDLEFT OUTER JOIN PACKAGE_DEPENDENCIES pd ON pv.PV_ID = pd.PV_IDLEFT OUTER JOIN CQ_ISSUES i_dpkg ON pd.DPV_ID = i_dpkg.PV_IDWHEREpv.PKG_ID = pkgIdANDVersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1AND( i_dpkg.ISS_ID IS NOT NULL OR i_pkg.ISS_ID IS NOT NULL )ORDER BYpv.PKG_ID,pv.PV_ID,pd.DPKG_ID,pd.DPV_ID;EXCEPTIONWHEN OTHERS THENdbms_output.put_line('AllIssues exception: ' || SQLERRM );END;-- NOTE: make RM_PACKAGE_ISSUES a temporary table when tested ok/*-- Proc: LoadIssuesTable---- Populates Package_Issues table with details of issues from all dependent packages.-- This will be for all package versions of the input pkg_name between the-- version_start and version_end.---- INPUT PARAMETERS:---- pkg_name - The name of the top level package to get issues for-- version_start - The start version for the comparison-- version_end - The end version for the comparison*/PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )ASpkgId NUMBER;CURSOR pack_vers_cur ISSELECTpv.PV_ID,pv.PKG_VERSION,pv.PKG_ID,p.PKG_NAMEFROMPACKAGE_VERSIONS pvJOIN PACKAGES p ON pv.PKG_ID = p.PKG_IDWHEREpv.PKG_ID = pkgIdANDVersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1;BEGINDELETE FROM RELEASE_MANAGER.RM_PKG_ISSUES; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/-- get the pkg_id we are finding issues forpkgId := GetPkgId( pkg_name );-- find all the top level packages we are dealing with and recursively process their issues and their dependent package issues.FOR pack_ver_rec IN pack_vers_curLOOPInsertIssuesForDepends( pack_ver_rec.PV_ID, pack_ver_rec.PKG_ID, pack_ver_rec.PKG_NAME, pack_ver_rec.PV_ID, pack_ver_rec.PKG_VERSION );COMMIT;END LOOP;-- The output cursor - shows the individual versions of the top level package then were reported onOPEN vCursor FORSELECT DISTINCT ISS_ID, PKG_VERSION FROM RM_PKG_ISSUES WHERE ISS_ID IS NOT NULL; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*//*removedSELECTPKG_VERSIONFROMRELEASE_MANAGER.RM_PACKAGE_ISSUES;*/EXCEPTIONWHEN OTHERS THENdbms_output.put_line('LoadIssuesTable exception: ' || SQLERRM );END;/*-- Proc: InsertIssuesForDepends---- Used by LoadIssuesTable to recursively find issues for all dependent packages---- INPUT PARAMETERS:---- pvID - The package version id of the package to get issues for-- top_pkgID - The package id of the top level package to get issues for - should be the same as pvID when called from LoadIssuesTable (different when called recursively)-- top_pkgName - The package name of the top level package-- top_pvID - The package version id of the top level package-- top_pkgVer - The package version description of the top level package*/PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 )ASpkgId NUMBER;issCnt NUMBER := 0;pkgCheck NUMBER := 0;depCheck NUMBER := 0;dpkgName VARCHAR(50);dpkgVersion VARCHAR(50);CURSOR dep_packs_cur ISSELECTDPV_IDFROMPACKAGE_DEPENDENCIESWHEREPV_ID = pvID;BEGIN-- check to see if the package has been processed previouslySELECTCOUNT(*)INTOpkgCheckFROMRM_PKG_ISSUES /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/WHEREDPV_ID = pvID;dbms_output.put_line('pkgCheck: ' || pkgCheck );-- Package not already processed (no cyclic dependency) - process itIF ( pkgCheck = 0 ) THEN-- check to see if this package version has any issues assigned to itSELECTCOUNT(*)INTOissCntFROMCQ_ISSUES iWHEREi.PV_ID = pvID;dbms_output.put_line('issCnt: ' || issCnt );-- Always enter a marker row into the table even if there are no issues for the package.-- This allows us to pick up any cyclic dependencies.IF ( issCnt > 0 ) THEN-- get issues and insert into RM_PACKAGE_ISSUES/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )SELECT DISTINCTtop_pkgID AS PKG_ID,top_pkgName AS PKG_NAME,top_pvID AS PV_ID,top_pkgVer AS PKG_VERSION,pv.PV_ID AS DPV_ID,p.PKG_NAME AS DPKG_NAME,pv.PKG_VERSION AS DPKG_VERSION,ci.ISS_DB,ci.ISS_IDFROMPACKAGE_VERSIONS pvJOIN PACKAGES p ON pv.PKG_ID = p.PKG_IDJOIN CQ_ISSUES ci ON pv.PV_ID = ci.PV_IDWHEREpv.PV_ID = pvID;ELSE-- get the dpkg details - there will always be a row returned hereSELECTp.PKG_NAMEINTOdpkgNameFROMPACKAGE_VERSIONS pvJOIN PACKAGES p ON pv.PKG_ID = p.PKG_IDWHEREpv.PV_ID = pvID;SELECTpv.PKG_VERSIONINTOdpkgVersionFROMPACKAGE_VERSIONS pvWHEREpv.PV_ID = pvID;-- enter a marker row/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )VALUES (top_pkgID,top_pkgName,top_pvID,top_pkgVer,pvID,dpkgName,dpkgVersion,NULL,NULL );END IF;-- If this package version has dependencies then recurseSELECTCOUNT(*)INTOdepCheckFROMPACKAGE_DEPENDENCIESWHEREPV_ID = pvID;IF ( depCheck > 0 ) THEN-- get dependencies and call this function recursively for each oneFOR dep_rec IN dep_packs_curLOOPInsertIssuesForDepends( dep_rec.DPV_ID, top_pkgID, top_pkgName, top_pvID, top_pkgVer );END LOOP;END IF;END IF;/*EXCEPTIONWHEN OTHERS THENno exception handling required*/END;END Rm_Issues;/---------------------------------------------------------- DDL for Procedure ADD_AUTOBUILD_FAILURE_INFO--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_AUTOBUILD_FAILURE_INFO" (nprojid IN NUMBER,nviewid IN NUMBER,suserlist IN VARCHAR2)ISgroupid NUMBER;/******************************************************************************NAME: ADD_AUTOBUILD_FAILUREPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 11/04/2006 Rupesh Solanki Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: ADD_AUTOBUILD_FAILURESysdate: 11/04/2006Date and Time: 11/04/2006, 9:28:28 AM, and 11/04/2006 9:28:28 AMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/BEGINBEGINSELECT group_email_idINTO groupidFROM autobuild_failureWHERE proj_id = nprojid AND view_id = nviewid;EXCEPTIONWHEN NO_DATA_FOUNDTHEN-- Create Next Sequence Id ---SELECT seq_group_email_id.NEXTVALINTO groupidFROM DUAL;INSERT INTO autobuild_failure(group_email_id, proj_id, view_id)VALUES (groupid, nprojid, nviewid);END;add_view_members (groupid, suserlist);END add_autobuild_failure_info;/---------------------------------------------------------- DDL for Procedure ADD_COMPONENT--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_COMPONENT" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE,sFileName IN RELEASE_COMPONENTS.FILE_NAME%TYPE,sFilePath IN RELEASE_COMPONENTS.FILE_PATH%TYPE DEFAULT NULL,nByteSize IN RELEASE_COMPONENTS.BYTE_SIZE%TYPE,sCRCcksum IN RELEASE_COMPONENTS.CRC_CKSUM%TYPE DEFAULT NULL,sCRCmodcrc IN RELEASE_COMPONENTS.CRC_MODCRC%TYPE DEFAULT NULL) IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */BEGIN--- Insert into RELEASE_COMPONENTSINSERT INTO RELEASE_COMPONENTS ( PV_ID, FILE_NAME, FILE_PATH, BYTE_SIZE, CRC_CKSUM, CRC_MODCRC )VALUES ( nPvId, sFileName, sFilePath, nByteSize, sCRCcksum, sCRCmodcrc );END Add_Component;/---------------------------------------------------------- DDL for Procedure ADD_PACKAGE_INTEREST--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_PACKAGE_INTEREST" (nProjId IN PROJECTS.PROJ_ID%TYPE,nPkgIdList IN VARCHAR2,nUserId IN NUMBER )ISnpkgidcollector relmgr_number_tab_t := relmgr_number_tab_t ();nPkgId NUMBER;alreadyExists NUMBER;BEGINnpkgidcollector := in_list_number2 (nPkgIdList);FOR i IN 1..npkgidcollector.COUNTLOOPnPkgId := npkgidcollector(i);--- Ensure it doesn't already existSELECT COUNT(*)INTO alreadyExistsFROM PACKAGE_INTERESTWHERE USER_ID = nUserIdAND PKG_ID = nPkgIdAND PROJ_ID = nProjId;IF ( alreadyExists = 0 ) THEN--- Insert into PACKAGE_INTEREST TABLEINSERTINTO PACKAGE_INTEREST (PROJ_ID, PKG_ID, USER_ID )VALUES (nProjId, nPkgId, nUserId );END IF;END LOOP;END ADD_PACKAGE_INTEREST;/---------------------------------------------------------- DDL for Procedure ADD_RUNTIME_DEPENDENCY--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_RUNTIME_DEPENDENCY" ( NNpv_id IN NUMBER,SSrtd_name IN PACKAGES.pkg_name%TYPE,SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,NNuser_id IN NUMBER) IS/* ---------------------------------------------------------------------------Version: 3.1--------------------------------------------------------------------------- */retRTD_ID NUMBER;CURSOR rtd_cur ISSELECT rtd_id FROM runtime_dependencies WHERE pv_id = NNpv_id AND rtd_id = retRTD_ID;rtd_rec rtd_cur%ROWTYPE;BEGIN--- Seed database with package_name and version if required ---Seed_Package_Names_Versions ( SSrtd_name, SSrtd_version, NNuser_id, retRTD_ID );OPEN rtd_cur;FETCH rtd_cur INTO rtd_rec;IF rtd_cur%NOTFOUNDTHEN/* Make sure it does not exists already as runtime dependency */--- Add new Runtime Dependency ---INSERT INTO runtime_dependencies ( pv_id, rtd_id, mod_date, mod_user )VALUES ( NNpv_id, retRTD_ID, ORA_SYSDATE , NNuser_id );/* LOG ACTION */Log_Action ( NNpv_id, 'runtime_add', NNuser_id,'Runtime package: '|| SSrtd_name ||' '|| SSrtd_version );END IF;END Add_Runtime_Dependency;/---------------------------------------------------------- DDL for Procedure ADD_VIEW_MEMBERS--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_VIEW_MEMBERS" (nGroupId IN NUMBER, sUserList IN VARCHAR2) IS/******************************************************************************NAME: ADD_VIEW_MEMBERSPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 11/04/2006 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: ADD_VIEW_MEMBERSSysdate: 11/04/2006Date and Time: 11/04/2006, 9:52:58 AM, and 11/04/2006 9:52:58 AMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/CURSOR user_cur ISSELECT u.USER_IDFROM USERS uWHERE u.USER_ID IN (SELECT *FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserList ) AS RELMGR_NUMBER_TAB_t ) FROM dual ));user_rec user_cur%ROWTYPE;BEGINOPEN user_cur;FETCH user_cur INTO user_rec;WHILE user_cur%FOUNDLOOPINSERT INTO MEMBERS_GROUP (GROUP_EMAIL_ID, USER_ID)VALUES ( nGroupId, user_rec.USER_ID);FETCH user_cur INTO user_rec;END LOOP;END ADD_VIEW_MEMBERS;/---------------------------------------------------------- DDL for Procedure BASIC_CLONE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."BASIC_CLONE" (nFROMpv_id IN NUMBER,nTOpv_id IN NUMBER,nRtag_id IN NUMBER,nUser_id IN NUMBER,nTOpkg_id IN NUMBER DEFAULT NULL,enumISSUES_STATE_IMPORTED IN NUMBER DEFAULT NULL ) ISFromVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;major NUMBER;minor NUMBER;patch NUMBER;buildn NUMBER;from_vcs_type_id NUMBER;BEGIN------------------------------ Version Control System ------------------------------------------SELECT vcs_type_idINTO from_vcs_type_idFROM package_versions WHERE pv_id = nFROMpv_id;UPDATE package_versionsSET vcs_type_id = from_vcs_type_idWHERE pv_id = nTOpv_id;------------------------------------- Limits ---------------------------------------------------select major_limit, minor_limit, patch_limit, build_number_limitinto major, minor, patch, buildnfrom package_versions where pv_id=nFROMpv_id;UPDATE package_versions SETmajor_limit = major,minor_limit = minor,patch_limit = patch,build_number_limit = buildnWHERE PV_ID = nTOpv_id;------------------------------------- Clone Dependencies ---------------------------------------------------IF NOT nRtag_id IS NULLTHEN-- Auto Update Dependencies --INSERT INTO PACKAGE_DEPENDENCIESSELECT nTOpv_id AS pv_id,DECODE(nUser_id,frc.modifier_id,frc.pv_id,DECODE(frc.dlocked,'Y',frc.pv_id,dep.dpv_id)) AS dpv_id,nTOpkg_id AS pkg_id,dep.dpkg_id,dep.build_type,dep.display_orderFROM PACKAGE_DEPENDENCIES dep,PACKAGE_VERSIONS pv,(/* Full Release Contents used for reference*/SELECT rpv.pv_id, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext, rpv.modifier_id, rpv.dlockedFROM RELEASE_CONTENT rel, PACKAGE_VERSIONS rpvWHERE rel.pv_id = rpv.pv_id AND rtag_id = nRtag_id) frcWHERE dep.pv_id = nFROMpv_idAND dep.dpv_id = pv.pv_idAND pv.pkg_id = frc.pkg_id(+)AND NVL(pv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+);ELSE-- Clone Dependencies --INSERT INTO PACKAGE_DEPENDENCIESSELECT nTOpv_id AS pv_id,dep.dpv_id,nTOpkg_id AS pkg_id,dep.dpkg_id,dep.build_type,dep.display_orderFROM PACKAGE_DEPENDENCIES depWHERE dep.pv_id = nFROMpv_id;END IF;----------------------------------------- Clone Issues -------------------------------------------------------IF enumISSUES_STATE_IMPORTED IS NULLTHEN/* All Issues */INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notesFROM CQ_ISSUESWHERE pv_id = nFROMpv_id;ELSE/* Outstanding Issues Only */INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notesFROM CQ_ISSUESWHERE pv_id = nFROMpv_idAND iss_state = enumISSUES_STATE_IMPORTED;END IF;------------------------------------ Clone Runtime Dependencies -----------------------------------------------INSERT INTO RUNTIME_DEPENDENCIES (pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user)SELECT nTOpv_id AS pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_userFROM RUNTIME_DEPENDENCIES WHERE pv_id = nFROMpv_id;--------------------------------------- Clone Additional Notes ------------------------------------------------INSERT INTO ADDITIONAL_NOTES ( NOTE_ID, PV_ID, NOTE_TITLE, NOTE_BODY, MOD_DATE, MOD_USER )SELECT an.NOTE_ID,nTOpv_id AS PV_ID,an.NOTE_TITLE,an.NOTE_BODY,an.MOD_DATE,an.MOD_USERFROM ADDITIONAL_NOTES anWHERE an.PV_ID = nFROMpv_id;-------------------------------------------- Clone Unit Tests --------------------------------------------------- Only clone 'Auto Unit Test', 'Interactive Unit Test' and 'Autobuild UTF'-- Only clone the basic information: TEST_SUMMARYINSERT INTO UNIT_TESTS (TEST_ID,PV_ID,TEST_TYPES_FK,TEST_SUMMARY)SELECT ut.TEST_ID,nTOpv_id AS PV_ID,ut.TEST_TYPES_FK,ut.TEST_SUMMARYFROM UNIT_TESTS utWHERE ut.PV_ID = nFROMpv_idAND ut.TEST_TYPES_FK IN (5,6,7);-------------------------------------------- Clone Package Documents ------------------------------------------INSERT INTO PACKAGE_DOCUMENTS ( PV_ID, TEST_ID, DOC_NUM, DOC_ID, IS_LATEST )SELECT nTOpv_id AS PV_ID,pd.test_id,pd.doc_num,pd.doc_id,pd.IS_LATESTFROM PACKAGE_DOCUMENTS pdWHERE pd.PV_ID = nFROMpv_id;-------------------------------------------- Clone Build Environments -----------------------------------------INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID, BUILD_TYPE )SELECT nTOpv_id AS PV_ID,pkgbe.BE_ID,pkgbe.BUILD_TYPEFROM PACKAGE_BUILD_ENV pkgbeWHERE pkgbe.PV_ID = nFROMpv_id;---------------------------------------------Clone Package Build Info------------------------------------------INSERT INTO PACKAGE_BUILD_INFO (PV_ID, BM_ID, BSA_ID)SELECT nTOpv_id AS PV_ID,pkgbinfo.BM_ID,pkgbinfo.BSA_IDFROM PACKAGE_BUILD_INFO pkgbinfoWHERE pkgbinfo.PV_ID = nFROMpv_id;---------------------------------------------Clone Package Version Processes-----------------------------------INSERT INTO PACKAGE_PROCESSES ( PV_ID, PROC_ID )SELECT nTOpv_id AS PV_ID,pp.PROC_IDFROM PACKAGE_PROCESSES ppWHERE pp.PV_ID = nFROMpv_id;---------------------------------------------Clone Licencing Associations-----------------------------------PK_LICENCING.CLONE_LICENCING(nFROMpv_id, nTOpv_id, nUser_id);---------------------------------------------------------------------------------------------------------------/* LOG ACTION */SELECT pv.PKG_VERSION INTO FromVersionFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = nFROMpv_id;Log_Action ( nTOpv_id, 'clone_from', nUser_id,'Details cloned from: '|| FromVersion );---------------------------------------------------------------------------------------------------------------END Basic_Clone;/---------------------------------------------------------- DDL for Procedure BUILD_TREE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."BUILD_TREE" ( nRtag_id IN NUMBER,retSessionNum OUT NUMBER ) IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */rowCnt NUMBER := 0; -- Iterations counteriteration NUMBER := 1; -- Maximum number of iterations allowed.maxIterations NUMBER := 50; -- This will prevent infinite loops if cyrcular dependencies are foundUP_THE_TREE CONSTANT NUMBER DEFAULT 1;DOWN_THE_TREE CONSTANT NUMBER DEFAULT -1;sessionNum NUMBER;levelNum NUMBER;BEGINSELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;/*|| Start UP THE TREE*//* Packages with no dependencies */INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )SELECT sessionNum AS SESSION_NUM,iteration AS LEVEL_NUM,UP_THE_TREE AS DIRECTION,rc.pv_id, pv.pkg_id, pv.v_extFROM release_content rc,package_versions pvWHERE rc.rtag_id = nRtag_idAND rc.pv_id = pv.pv_idMINUSSELECT sessionNum AS SESSION_NUM,iteration AS LEVEL_NUM,UP_THE_TREE AS DIRECTION,dep.pv_id, pv.pkg_id, pv.v_extFROM package_dependencies dep,package_versions pvWHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtag_id )AND dep.pv_id = pv.pv_id;/* Browse UP the build tree */iteration := iteration + 1;LOOPINSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )SELECT DISTINCTsessionNum AS SESSION_NUM,iteration AS LEVEL_NUM,UP_THE_TREE AS DIRECTION,rdep.pv_id, rdep.pkg_id, rdep.v_extFROM (SELECT dep.pv_id, pv.pkg_id, pv.v_ext, dep.dpv_id, dpv.pkg_id AS dpkg_id, dpv.v_ext AS dv_extFROM package_dependencies dep,release_content rc,package_versions pv,package_versions dpvWHERE dep.pv_id = rc.pv_idAND rc.rtag_id = nRtag_idAND dep.pv_id = pv.pv_idAND dep.dpv_id = dpv.pv_id) rdep,temp_tree_browse ttbWHERE rdep.dpkg_id = ttb.pkg_idAND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext,'|LINK_A_NULL|')AND ttb.SESSION_NUM = sessionNumAND ttb.LEVEL_NUM = iteration - 1MINUS/* Packages with all depencencies NOT matched */SELECT DISTINCTsessionNum AS SESSION_NUM,iteration AS LEVEL_NUM,UP_THE_TREE AS DIRECTION,rdep.pv_id, rdep.pkg_id, rdep.v_extFROM (SELECT dep.pv_id, pv.pkg_id, pv.v_ext, dep.dpv_id, dpv.pkg_id AS dpkg_id, dpv.v_ext AS dv_extFROM package_dependencies dep,release_content rc,package_versions pv,package_versions dpvWHERE dep.pv_id = rc.pv_idAND rc.rtag_id = nRtag_idAND dep.pv_id = pv.pv_idAND dep.dpv_id = dpv.pv_id) rdep,(SELECT tb.*FROM temp_tree_browse tbWHERE tb.SESSION_NUM = sessionNum) ttbWHERE rdep.dpkg_id = ttb.pkg_id (+)AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext (+),'|LINK_A_NULL|')AND ttb.SESSION_NUM IS NULL;rowCnt := SQL%ROWCOUNT;IF rowCnt > 0 THENiteration := iteration + 1;END IF;EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);END LOOP;/*---------------------------------------------------------------------------------------------------------------------*//* Check for unresolved dependencies||*//* UNRESOLVED */SELECT COUNT(*) INTO rowCntFROM (SELECT pv.pv_id, pv.pkg_id, pv.v_extFROM release_content rc,package_versions pvWHERE rc.rtag_id = nRtag_idAND rc.pv_id = pv.pv_idMINUSSELECT ttb.pv_id, ttb.pkg_id, ttb.v_extFROM temp_tree_browse ttbWHERE ttb.session_num = sessionNum);IF rowCnt > 0THEN/* Circular dependencies detected.|| Try to resolve build order from the top now.|| Start DOWN THE TREE*/iteration := 0;/* Top Level packages */INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )SELECT sessionNum AS SESSION_NUM,iteration AS LEVEL_NUM,DOWN_THE_TREE AS DIRECTION,pv.pv_id, pv.pkg_id, pv.v_extFROM (/* Packages no one depends on ( Top level packages )*/(/* All parents*/SELECT pv.pkg_id, pv.v_extFROM package_dependencies dep,release_content rc,package_versions pvWHERE dep.pv_id = rc.pv_idAND rc.rtag_id = nRtag_idAND dep.pv_id = pv.pv_idMINUS/* All children */SELECT dpv.pkg_id, dpv.v_extFROM package_dependencies dep,release_content rc,package_versions dpvWHERE dep.pv_id = rc.pv_idAND rc.rtag_id = nRtag_idAND dep.dpv_id = dpv.pv_id)MINUS/* Packages with resolved dependencies from UP THE TREE */SELECT ttb.pkg_id, ttb.v_extFROM temp_tree_browse ttbWHERE ttb.session_num = sessionNum) tpkg,package_versions pv,release_content rcWHERE rc.rtag_id = nRtag_idAND rc.pv_id = pv.pv_idAND tpkg.pkg_id = pv.pkg_idAND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');/* Keep taking packages which no one depende on */iteration := iteration - 1;LOOPINSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )SELECT sessionNum AS SESSION_NUM,iteration AS LEVEL_NUM,DOWN_THE_TREE AS DIRECTION,pv.pv_id, pv.pkg_id, pv.v_extFROM (/* All Unresolved */(SELECT pv.pkg_id, pv.v_extFROM release_content rc,package_versions pvWHERE rc.rtag_id = nRtag_idAND rc.pv_id = pv.pv_idMINUSSELECT ttb.pkg_id, ttb.v_extFROM temp_tree_browse ttbWHERE ttb.session_num = sessionNum)MINUS(/* Children of Unresolved */SELECT dpv.pkg_id, dpv.V_EXTFROM (SELECT pv.pv_id, pv.pkg_id, pv.v_extFROM release_content rc,package_versions pvWHERE rc.rtag_id = nRtag_idAND rc.pv_id = pv.pv_idMINUSSELECT ttb.pv_id, ttb.pkg_id, ttb.v_extFROM temp_tree_browse ttbWHERE ttb.session_num = sessionNum) unr,package_dependencies dep,package_versions dpvWHERE unr.pv_id = dep.pv_idAND dep.dpv_id = dpv.pv_id)) tpkg,package_versions pv,release_content rcWHERE rc.rtag_id = nRtag_idAND rc.pv_id = pv.pv_idAND tpkg.pkg_id = pv.pkg_idAND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');rowCnt := SQL%ROWCOUNT;IF rowCnt > 0 THENiteration := iteration - 1;END IF;EXIT WHEN (rowCnt < 1);END LOOP;END IF;/*---------------------------------------------------------------------------------------------------------------------*//*|| Save results from temp table*//* Clean up build_order table */DELETE FROM BUILD_ORDER WHERE rtag_id = nRtag_id;/* Save UP THE TREE */INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )SELECT nRtag_id AS rtag_id,ttb.level_num AS step_num,ttb.PV_IDFROM temp_tree_browse ttbWHERE ttb.session_num = sessionNumAND ttb.direction = UP_THE_TREE;/*Get last step_num */SELECT MAX(ttb.level_num) + 1 INTO levelNumFROM temp_tree_browse ttb WHERE ttb.session_num = sessionNum AND ttb.DIRECTION = UP_THE_TREE;/* UNRESOLVED */SELECT COUNT(*) INTO rowCntFROM (SELECT pv.pv_id, pv.pkg_id, pv.v_extFROM release_content rc,package_versions pvWHERE rc.rtag_id = nRtag_idAND rc.pv_id = pv.pv_idMINUSSELECT ttb.pv_id, ttb.pkg_id, ttb.v_extFROM temp_tree_browse ttbWHERE ttb.session_num = sessionNum);IF rowCnt > 0THEN/* Save unresolved packages */INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID, UNRESOLVED )SELECT nRtag_id AS rtag_id,levelNum AS step_num,upv.PV_ID,'Y' AS UNRESOLVEDFROM (SELECT pv.pv_id, pv.pkg_id, pv.v_extFROM release_content rc,package_versions pvWHERE rc.rtag_id = nRtag_idAND rc.pv_id = pv.pv_idMINUSSELECT ttb.pv_id, ttb.pkg_id, ttb.v_extFROM temp_tree_browse ttbWHERE ttb.session_num = sessionNum) upv;END IF;/* Save DOWN THE TREE */levelNum := 1000;INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )SELECT nRtag_id AS rtag_id,levelNum + ttb.level_num AS step_num,ttb.PV_IDFROM temp_tree_browse ttbWHERE ttb.session_num = sessionNumAND ttb.direction = DOWN_THE_TREE;/*---------------------------------------------------------------------------------------------------------------------*//* Clean up temp table */DELETE FROM TEMP_TREE_BROWSE WHERE session_num = sessionNum;retSessionNum := sessionNum;END Build_Tree;/---------------------------------------------------------- DDL for Procedure CHANGE_PACKAGE_STATE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHANGE_PACKAGE_STATE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS/* ---------------------------------------------------------------------------Version: 4.0--------------------------------------------------------------------------- */BEGIN-- Unlock PackageUPDATE RELEASE_CONTENT rc SETrc.PKG_STATE = 0WHERE rc.PV_ID = nPvIdAND rc.RTAG_ID = nRtagId;END Change_Package_State;/---------------------------------------------------------- DDL for Procedure CHANGE_RELEASE_MODE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHANGE_RELEASE_MODE" ( nModeCode IN NUMBER, nRtagId IN NUMBER, UserId IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */cMode CHAR(1) := NULL;nProjId NUMBER;BEGIN/*Author: Rupesh SolankiModified: 24th October 2006Reason: Added the archive mode state into Release Manager|| 1 - Open Mode|| 2 - Restrictive Mode|| 3 - Closed Mode|| 4 - CCB Mode|| 5 - Archive Mode|| 6 - Preserve Mode*/-- Get project IdSELECT rt.PROJ_ID INTO nProjIdFROM RELEASE_TAGS rtWHERE rt.RTAG_ID = nRtagId;IF nModeCode = 1 THEN-- Open ModecMode := 'N';/* LOG ACTION */Log_Project_Action ( nProjId, 'set_to_open_mode', UserId, 'Release is set to Open Mode', nRtagId );ELSIF nModeCode = 2 THEN-- Restrictive ModecMode := 'R';/* LOG ACTION */Log_Project_Action ( nProjId, 'set_to_restrictive_mode', UserId, 'Release is set to Restrictive Mode', nRtagId );ELSIF nModeCode = 3 THEN-- Closed ModecMode := 'Y';/* LOG ACTION */Log_Project_Action ( nProjId, 'set_to_closed_mode', UserId, 'Release is set to Closed Mode', nRtagId );ELSIF nModeCode = 4 THEN-- CCB ModecMode := 'C';/* LOG ACTION */Log_Project_Action ( nProjId, 'set_to_ccb_mode', UserId, 'Release is set to CCB Mode', nRtagId );ELSIF nModeCode = 5 THEN-- Archive ModecMode := 'A';/* LOG ACTION */Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Archive Mode', nRtagId );ELSIF nModeCode = 6 THEN-- Archive ModecMode := 'P';/* LOG ACTION */Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Preserve Mode', nRtagId );END IF;-- Now update tableIF NOT cMode IS NULL THENUPDATE RELEASE_TAGS rt SETrt.OFFICIAL = cMode,rt.OFFICIAL_STAMP = ORA_SYSDATETIME,rt.OFFICIAL_ID = UserIdWHERE rt.RTAG_ID = nRtagId;END IF;END CHANGE_RELEASE_MODE;/---------------------------------------------------------- DDL for Procedure CHECK_NEW_PATCHES--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHECK_NEW_PATCHES" (nrtagid IN release_content.rtag_id%TYPE)IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */BEGIN/*--------------- Business Rules Here -------------------*//*IF nRtagId NOT IN (SELECT RTAG_ID FROM RELEASE_TAGS ) THENRAISE_APPLICATION_ERROR (-20000, 'Please contact the person in charge of Release Manager now.' );END IF/*-------------------------------------------------------*/UPDATE release_content rcSET rc.pkg_state = 5 -- enumPKG_STATE_NEW_PATCHWHERE rc.pv_id IN (SELECT prod.pv_idFROM (SELECT pp.pv_id AS orig_parent_id,COUNT (*) AS num_of_patchesFROM release_content rc, package_patches ppWHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagidGROUP BY pp.pv_id) orig,(SELECT prodpp.pv_id, pp.pv_id AS parent_id,COUNT (*) AS num_of_patchesFROM release_content rc,package_patches pp,package_dependencies dep,package_versions pv,package_patches prodppWHERE rc.pv_id = pp.pv_idAND rc.rtag_id = nrtagidAND pp.patch_id = dep.dpv_idAND dep.pv_id = pv.pv_idAND pv.is_patch = 'Y'AND pv.dlocked = 'Y'AND prodpp.patch_id = dep.pv_idGROUP BY prodpp.pv_id, pp.pv_id) prod,release_content rcWHERE orig.orig_parent_id = prod.pv_idAND orig.num_of_patches != prod.num_of_patchesAND rc.rtag_id = nrtagidAND rc.pv_id = prod.pv_idAND rc.pkg_state = 0UNIONSELECT prodpp.pv_idFROM release_content rc,package_patches pp,package_dependencies dep,package_versions pv,package_patches prodppWHERE rc.pv_id = pp.pv_idAND rc.rtag_id = nrtagidAND pp.patch_id = dep.dpv_idAND dep.pv_id = pv.pv_idAND pv.is_patch = 'Y'AND pv.dlocked = 'Y'AND prodpp.patch_id = dep.pv_idGROUP BY prodpp.pv_id, pp.pv_idMINUSSELECT pp.pv_idFROM release_content rc, package_patches ppWHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagidGROUP BY pp.pv_id);END check_new_patches;/---------------------------------------------------------- DDL for Procedure CLEAN_ADVISORY_RIPPLE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAN_ADVISORY_RIPPLE" (nrtagid IN NUMBER)IS/******************************************************************************NAME: clean_advisory_ripplePURPOSE: To delete entries from the advisory_ripple table based uponan RTAG_ID onlyThis is a tidy-up operation performed against the advisory_rippletable, ensuring that the table does not have rtag_id/pv_idcombinations that cannot be found in the release's wip/pending/releasetabs.******************************************************************************/BEGIN-- Delete any invalid rtag_id/pv_id combination from the advisory_ripple table.-- An invalid rtag_id/pv_id combination is one that cannot be found in the-- work_in_progress, planned, or release_content table.-- NOTE: Planned operations that represent pending additive/subtractive merge-- operations are ignored because they have not been approved yet and so-- cannot be said to be "in the release".DELETE FROM advisory_rippleWHERE rtag_id = nrtagidAND pv_id not in((SELECT pv_id FROM release_content WHERE rtag_id = nrtagid)UNION(SELECT pv_id FROM work_in_progress WHERE rtag_id = nrtagid)UNION(SELECT pv_id FROM planned WHERE rtag_id = nrtagid AND (operation is null OR operation = 'R')));END clean_advisory_ripple;/---------------------------------------------------------- DDL for Procedure CLEAN_DO_NOT_RIPPLE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAN_DO_NOT_RIPPLE" (nrtagid IN NUMBER)IS/******************************************************************************NAME: clean_do_not_ripplePURPOSE: To delete entries from the do_not_ripple table based uponan RTAG_ID onlyThis is a tidy-up operation performed against the do_not_rippletable, ensuring that the table does not have rtag_id/pv_idcombinations that cannot be found in the release's wip/pending/releasetabs.******************************************************************************/BEGIN-- Delete any invalid rtag_id/pv_id combination from the do_not_ripple table.-- An invalid rtag_id/pv_id combination is one that cannot be found in the-- work_in_progress, planned, or release_content table.-- NOTE: Planned operations that represent pending additive/subtractive merge-- operations are ignored because they have not been approved yet and so-- cannot be said to be "in the release".DELETE FROM do_not_rippleWHERE rtag_id = nrtagidAND pv_id not in((SELECT pv_id FROM release_content WHERE rtag_id = nrtagid)UNION(SELECT pv_id FROM work_in_progress WHERE rtag_id = nrtagid)UNION(SELECT pv_id FROM planned WHERE rtag_id = nrtagid AND (operation is null OR operation = 'R')));END clean_do_not_ripple;/---------------------------------------------------------- DDL for Procedure CLEAR_ADVISORY_RIPPLE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAR_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,nUserId IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 4.0--------------------------------------------------------------------------- */BEGIN-- Clear Advisory Ripple PackageDELETE FROM ADVISORY_RIPPLEWHERE PV_ID = nPvIdAND RTAG_ID = nRtagId;/* LOG ACTION */Log_Action ( nPvId, 'clear_advisory_ripple', nUserId );/*Rebuild_Environment(nRtagId);*/END Clear_Advisory_Ripple;/---------------------------------------------------------- DDL for Procedure CLONED_PACKAGE_PROCESSES--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLONED_PACKAGE_PROCESSES"ISproc_id NUMBER;/******************************************************************************NAME: DELETE_DO_NOT_RIPPLEPURPOSE: TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGEIS RELEASEDREVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 21/04/2006 Rupesh Solanki 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: DELETE_DO_NOT_RIPPLESysdate: 21/04/2006Date and Time: 21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/CURSOR ripple_curISselect distinct proc_id, prod_id from deployment_manager.processes_config;ripple_rec ripple_cur%ROWTYPE;BEGINOPEN ripple_cur;FETCH ripple_curINTO ripple_rec;WHILE ripple_cur%FOUNDLOOPinsert into package_processes (PROC_ID, PV_ID)values( ripple_rec.proc_id, ripple_rec.prod_id);FETCH ripple_curINTO ripple_rec;END LOOP;END CLONED_PACKAGE_PROCESSES;/---------------------------------------------------------- DDL for Procedure CLONED_PROCESSES--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLONED_PROCESSES"ISproc_id NUMBER;/******************************************************************************NAME: DELETE_DO_NOT_RIPPLEPURPOSE: TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGEIS RELEASEDREVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 21/04/2006 Rupesh Solanki 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: DELETE_DO_NOT_RIPPLESysdate: 21/04/2006Date and Time: 21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/CURSOR ripple_curISselect distinct pkg_health_tag, cmd_interface, pkg_owner, is_interface from deployment_manager.processes_config;ripple_rec ripple_cur%ROWTYPE;BEGINOPEN ripple_cur;FETCH ripple_curINTO ripple_rec;WHILE ripple_cur%FOUNDLOOPselect deployment_manager.seq_proc_id.nextval into proc_id from dual;insert into processes (PROC_ID, PROC_NAME, RUN_AS, PKG_OWNER, IS_INTERFACE)values(proc_id, ripple_rec.pkg_health_tag, ripple_rec.cmd_interface, ripple_rec.pkg_owner, ripple_rec.is_interface);FETCH ripple_curINTO ripple_rec;END LOOP;END CLONED_PROCESSES;/---------------------------------------------------------- DDL for Procedure DELETE_AUTOBUILD_FAILURE_INFO--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DELETE_AUTOBUILD_FAILURE_INFO"IS/******************************************************************************NAME: DELETE_AUTOBUILD_FAILURE_INFOPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 2/06/2006 Rupesh Solanki 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: DELETE_AUTOBUILD_FAILURE_INFOSysdate: 2/06/2006Date and Time: 2/06/2006, 8:44:25 AM, and 2/06/2006 8:44:25 AMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/BEGINDELETE FROM autobuild_failureWHERE group_email_id NOT IN (SELECT group_email_idFROM members_group);END delete_autobuild_failure_info;/---------------------------------------------------------- DDL for Procedure DEPRECATE_PACKAGE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DEPRECATE_PACKAGE" (nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,nRtagId IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,nPkgId IN DEPRECATED_PACKAGES.PKG_ID%TYPE,sComments IN DEPRECATED_PACKAGES.COMMENTS%TYPE,nUserId IN NUMBER)ISext VARCHAR2(50);BEGIN--Extract the package version extensionSELECT V_EXT INTO extFROM PACKAGE_VERSIONSWHERE PV_ID = nPvId;-- Deprecate PackageINSERT INTO DEPRECATED_PACKAGES( RTAG_ID, PKG_ID, COMMENTS, V_EXT )VALUES ( nRtagId, nPkgId, sComments, ext );-- Update Release Contents entry-- Process PackageName.ext for the package. ie: Allow multiple-- versions of the package to be in the release.UPDATE RELEASE_CONTENTSETDEPRECATED_STATE = 6WHERE RTAG_ID = nRtagIdAND PV_ID IN (SELECT PV.PV_IDFROM PACKAGE_VERSIONS PVWHERE PV.PKG_ID = nPkgIdAND NVL(PV.V_EXT, '.NULL') = NVL(ext,'.NULL'));-- Update consumers of the package-- Update ALL packages in the ReleaseREBUILD_DEPRECATE_STATE(nRtagId);END Deprecate_Package;/---------------------------------------------------------- DDL for Procedure DT_DROPUSEROBJECTBYID--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DT_DROPUSEROBJECTBYID" ( PARAM_ID IN NUMBER ) AS BEGIN DELETE FROM MICROSOFTDTPROPERTIES WHERE OBJECTID = PARAM_ID; END DT_DROPUSEROBJECTBYID;/---------------------------------------------------------- DDL for Procedure DT_SETPROPERTYBYID--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DT_SETPROPERTYBYID" (PARAM_ID IN NUMBER,PARAM_PROPERTY IN VARCHAR2,PARAM_VALUE IN VARCHAR2,PARAM_LVALUE IN LONG RAW )ASBEGINDECLAREX NUMBER(38);BEGINSELECT COUNT(*)INTO XFROM MICROSOFTDTPROPERTIESWHERE OBJECTID=PARAM_IDAND PROPERTY =PARAM_PROPERTY;IF X = 0 THENINSERTINTO MICROSOFTDTPROPERTIES(ID,PROPERTY,OBJECTID,VALUE,LVALUE,VERSION)VALUES(MICROSOFTSEQDTPROPERTIES.NEXTVAL,PARAM_PROPERTY,PARAM_ID,PARAM_VALUE,PARAM_LVALUE,0);ELSEUPDATE MICROSOFTDTPROPERTIESSET VALUE =PARAM_VALUE,LVALUE =PARAM_LVALUE,VERSION =VERSION+1WHERE OBJECTID=PARAM_IDAND PROPERTY =PARAM_PROPERTY;END IF;END;END DT_SETPROPERTYBYID;/---------------------------------------------------------- DDL for Procedure IGNORE_DEPENDENCY_WARNINGS--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."IGNORE_DEPENDENCY_WARNINGS" ( nRtagId IN IGNORE_WARNINGS.RTAG_ID%TYPE,nPvId IN IGNORE_WARNINGS.PV_ID%TYPE,sIgnoreIdList IN VARCHAR2,bDoPatchIgnore IN BOOLEAN DEFAULT FALSE,nUserId IN NUMBER DEFAULT NULL ) IS/* ---------------------------------------------------------------------------Updates the ignore warnings table - this is really two functions in one.1) One function updates the table based on a list of dependent PV_IDs and a parent PV_IDand is called from the RM website's SetIgnoreWarnings() function after a user changesthe ignore warnings checkboxes and submits the form.This can (at time of writing this) only be done within releases that are not builddaemon enabled. The ignore warnings feature is a feature we would like to see the endof in an ideal world.The SetIgnoreWarnings() website function now calls Touch_Release so there is no need todo so in this stored procedure, thereby making this stored procedure much more precise inthat it only updates the ignore_warnings table (action log table too although that is justa log and doesn't affect any subsequent business rules behaviour) and it cares nothingabout website presentation layer states, etc.2) The other function updates the table for out of sync dependencies that have in factbeen satisfied by patches made to some other product in the release.This seems to be a seldom used feature in current projects.It is probably the most often taken path through this function given that it occurs whenthis function is called from Rebuild_Environment, and that is called in many circumstancesfrom the RM website whenever the seems to be a possibility that the state of a packagein a release might have changed and therefore affects the state of other packages inthat same release.Parameter Usage:when called from | when called fromRebuild_Environment | SetIgnoreWarnings()stored procedure. | in the Website--------------------------------------+----------------------------nRtagId RTAG_ID | RTAG_IDnPvId NULL | PV_IDsIgnoreIdList NULL | list of dependent PV_ID'sbDoPatchIgnore TRUE | FALSEnUserId NULL | current user ID--------------------------------------------------------------------------- */oIgnoreIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();ReleaseLocation VARCHAR2(4000);ActionTypeId NUMBER;BEGINIF (NOT bDoPatchIgnore) THEN/* Manual Ignore Warnings - this execution path is the one taken when called from SetIgnoreWarnings() in the Website*/oIgnoreIdCollector := IN_LIST_NUMBER ( sIgnoreIdList );/* Log Action */-- Get Release LocationSELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.PROJ_ID = proj.PROJ_IDAND rt.RTAG_ID = nRtagId;-- Get Action Type Id for IGNORE_ONSELECT act.ACTTYPE_ID INTO ActionTypeIdFROM ACTION_TYPE actWHERE act.NAME = 'ignore_on';-- Get Ignored (Current MINUS Old)INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )SELECT nUserId, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeIdFROM (SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_IDFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )MINUSSELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_IDFROM IGNORE_WARNINGS igwWHERE igw.RTAG_ID = nRtagIdAND igw.PV_ID = nPvId) qry,PACKAGE_VERSIONS pv,PACKAGES pkg,RELEASE_CONTENT rc,PACKAGE_VERSIONS rpvWHERE pv.PKG_ID = pkg.PKG_IDAND rc.RTAG_ID = nRtagIdAND rc.PV_ID = rpv.PV_IDAND rpv.PKG_ID = pv.PKG_IDAND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )AND qry.DPV_ID = pv.PV_ID;-- Get Action Type Id for IGNORE_OFFSELECT act.ACTTYPE_ID INTO ActionTypeIdFROM ACTION_TYPE actWHERE act.NAME = 'ignore_off';-- Get UnIgnored (Old MINUS Current)INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )SELECT nUserId, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeIdFROM (SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_IDFROM IGNORE_WARNINGS igwWHERE igw.RTAG_ID = nRtagIdAND igw.PV_ID = nPvIdMINUSSELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_IDFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )) qry,PACKAGE_VERSIONS pv,PACKAGES pkg,RELEASE_CONTENT rc,PACKAGE_VERSIONS rpvWHERE pv.PKG_ID = pkg.PKG_IDAND rc.RTAG_ID = nRtagIdAND rc.PV_ID = rpv.PV_IDAND rpv.PKG_ID = pv.PKG_IDAND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )AND qry.DPV_ID = pv.PV_ID;-- Delete Current Ignore WarningsDELETEFROM IGNORE_WARNINGS igwWHERE igw.RTAG_ID = nRtagIdAND igw.PV_ID = nPvIdAND igw.IS_PATCH_IGNORE IS NULL;IF (oIgnoreIdCollector.COUNT > 0) THEN-- Insert Ignore WarningsINSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID )SELECT nRtagId,nPvId,pv.PV_ID AS DPV_IDFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) );END IF;ELSE/* Patch Ignore Warnings - this execution path is the one taken when called from the Rebuild_Environment stored procedure */-- Delete Current Patch Ignore WarningsDELETEFROM IGNORE_WARNINGS igwWHERE igw.RTAG_ID = nRtagIdAND igw.IS_PATCH_IGNORE = 'Y';-- Delete Manual Ignores that need to be Patch IgnoresDELETEFROM IGNORE_WARNINGS igwWHERE ( RTAG_ID, PV_ID, DPV_ID ) IN(SELECT DISTINCTnRtagId,err.PV_ID,err.ERR_DPV AS DPV_IDFROM (/* Full Release Contents used for reference*/SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_extFROM release_content rel, package_versions rpvWHERE rel.pv_id = rpv.pv_idAND rtag_id = nRtagId) frc,(/* DPV_IDs not fount in release*/SELECT dep.pv_id, dep.dpv_id AS err_dpvFROM package_dependencies depWHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )) err,(SELECT DISTINCT pp.PV_ID, dep.DPV_IDFROM PACKAGE_PATCHES pp,PACKAGE_DEPENDENCIES dep,RELEASE_CONTENT rcWHERE rc.RTAG_ID = nRtagIdAND rc.PV_ID = pp.PV_IDAND dep.PV_ID = pp.PATCH_ID) pp,package_versions errpkg,package_versions errpvWHERE err.err_dpv = errpv.pv_idAND errpv.pkg_id = frc.pkg_id(+)AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)AND err.pv_id = errpkg.pv_idAND err.PV_ID = pp.PV_IDAND frc.PV_ID = pp.DPV_ID);/*----------------------------------------------------- Make sure that select statement above and below are same---------------------------------------------------*/-- Insert Patch IgnoresINSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE )SELECT DISTINCTnRtagId,err.PV_ID,err.ERR_DPV AS DPV_ID,'Y'FROM (/* Full Release Contents used for reference*/SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_extFROM release_content rel, package_versions rpvWHERE rel.pv_id = rpv.pv_idAND rtag_id = nRtagId) frc,(/* DPV_IDs not fount in release*/SELECT dep.pv_id, dep.dpv_id AS err_dpvFROM package_dependencies depWHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )) err,(SELECT DISTINCT pp.PV_ID, dep.DPV_IDFROM PACKAGE_PATCHES pp,PACKAGE_DEPENDENCIES dep,RELEASE_CONTENT rcWHERE rc.RTAG_ID = nRtagIdAND rc.PV_ID = pp.PV_IDAND dep.PV_ID = pp.PATCH_ID) pp,package_versions errpkg,package_versions errpvWHERE err.err_dpv = errpv.pv_idAND errpv.pkg_id = frc.pkg_id(+)AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)AND err.pv_id = errpkg.pv_idAND err.PV_ID = pp.PV_IDAND frc.PV_ID = pp.DPV_ID;END IF;END Ignore_Dependency_Warnings;/---------------------------------------------------------- DDL for Procedure INSERT_INTO_PACKAGE_BUILD_INFO--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."INSERT_INTO_PACKAGE_BUILD_INFO" IS/******************************************************************************NAME: INSERT_INTO_PACKAGE_BUILD_INFOPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 6/12/2006 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: INSERT_INTO_PACKAGE_BUILD_INFOSysdate: 6/12/2006Date and Time: 6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/CURSOR curInfo ISSELECT PV_IDFROM PACKAGE_BUILD_ENVWHERE BE_ID IN (11, 12);recInfo curInfo%ROWTYPE;BEGINOPEN curInfo;FETCH curInfo INTO recInfo;WHILE curInfo%FOUNDLOOPINSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID, BSA_ID )VALUES( recInfo.PV_ID, 2, 5);UPDATE PACKAGE_VERSIONS SET BS_ID = 2 WHERE PV_ID = recInfo.PV_ID;FETCH curInfo INTO recInfo;END LOOP;CLOSE curInfo;END INSERT_INTO_PACKAGE_BUILD_INFO;/---------------------------------------------------------- DDL for Procedure INSERT_MULTIPLE_STICKY_NOTES--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."INSERT_MULTIPLE_STICKY_NOTES" IS/******************************************************************************NAME: INSERT_MULTIPLE_STICKY_NOTESPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 6/12/2006 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: INSERT_MULTIPLE_STICKY_NOTESSysdate: 6/12/2006Date and Time: 6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/CURSOR curInfo ISSELECT PV_IDFROM PACKAGE_BUILD_ENVWHERE BE_ID IN (11, 12);recInfo curInfo%ROWTYPE;BEGINOPEN curInfo;FETCH curInfo INTO recInfo;WHILE curInfo%FOUNDLOOPINSERT INTO NOTE_MANAGER ( NID, LAST_USER, LAST_DATE, DESCRIPTION )VALUES( recInfo.PV_ID, 'awehalle', ORA_SYSDATETIME, '' );FETCH curInfo INTO recInfo;END LOOP;CLOSE curInfo;END INSERT_MULTIPLE_STICKY_NOTES;/---------------------------------------------------------- DDL for Procedure LEVEL_N_CONFLICTS--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LEVEL_N_CONFLICTS" (nnrtag_id IN NUMBER,nnsession_num IN NUMBER,nnrowcnt OUT NUMBER,nniteration IN NUMBER)IS/* ---------------------------------------------------------------------------Version: 3.0.1--------------------------------------------------------------------------- */previteration NUMBER := nniteration - 1;BEGIN-- Map broken dependency information from a package into a consumer-- package. ie: Ripple need-to-build info up the dependency tree./* --------- LEVEL 1 CONFILCTS -----------|| Following states are used:|| 0 -> NOT FOUND|| 1 -> MAJOR|| 2 -> MINOR MINOR*/INSERT INTO temp_env_statesSELECT DISTINCT nnsession_num AS session_num, nniteration AS level_num,dpv.pv_id, dpv.pkg_id, dpv.v_ext,DECODE (tes.tes_state, 2, 2, 1) AS MESSAGE,'X'FROM TEMP_ENV_DEPS dpv,temp_env_states tesWHERE dpv.SESSION_NUM = nnsession_numAND dpv.dpkg_id = tes.pkg_idAND NVL (dpv.dv_ext, '|LINK_A_NULL|') = NVL (tes.v_ext, '|LINK_A_NULL|')AND tes.session_num = nnsession_numAND tes.level_num = previteration;nnrowcnt := SQL%ROWCOUNT;END level_n_conflicts;/---------------------------------------------------------- DDL for Procedure LEVEL_ONE_CONFLICTS--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LEVEL_ONE_CONFLICTS" (nnrtag_id IN NUMBER,nnsession_num IN NUMBER)ISBEGIN-- Prepare the TEMP_ENV_DEPS table-- This table maps package-versions to their dependencies and is-- used to walk up the dependency tree.-- This table consists of PV_ID -> DPV_ID in the release in which we are interested-- ie: Those that ARE NOT a part of:-- Pegged Package-- SDK imported package-- Marked with an ignore warnings-- Marked as an advisory ripple---- This table speeds up the process by a huge (really huge) amount--INSERT into TEMP_ENV_DEPS(SELECT DISTINCT nnsession_num AS session_num,pv.pv_id, pv.pkg_id, pv.v_ext,dpv.pv_id as dpv_id, dpv.pkg_id as dpkg_id, dpv.v_ext as dv_extFROM release_content rel,package_dependencies dep,package_versions dpv,package_versions pvWHERE rel.pv_id = dep.pv_idAND rel.rtag_id = nnrtag_idAND dep.pv_id = pv.pv_idAND dep.dpv_id = dpv.pv_id--AND rel.SDKTAG_ID is null--AND NOT dep.pv_id IN (SELECT pegv.pv_id FROM PEGGED_VERSIONS pegv WHERE pegv.rtag_id = nnrtag_id)AND NOT (dep.pv_id, dep.dpv_id) in (SELECT igw.pv_id, igw.DPV_ID from ignore_warnings igw where igw.rtag_id = nnrtag_id));/* --------- LEVEL 1 CONFILCTS -----------|| Following states are used:|| 0 -> NOT FOUND|| 1 -> MAJOR|| 2 -> MINOR MINOR*/INSERT INTO temp_env_states(SELECT nnsession_num AS session_num,1 AS level_num,rd.pv_id,rd.pkg_id,rd.v_ext,DECODE (rd.v_nmm,NULL, 0,pv2.v_nmm, DECODE (rd.v_mm,pv2.v_mm, 0,2),1) AS MESSAGE,rd.build_typefrom (SELECT DISTINCT err.pv_id, errpkg.pkg_id, errpkg.v_ext,frc.build_type,frc.v_nmm,frc.v_mm,errpv.pv_id as errpv_idFROM (/* Full Release Contents used for reference*/SELECT rel.rtag_id, rpv.pv_id, rpv.pkg_id,NVL (rpv.v_ext, '|LINK_A_NULL|') AS v_ext,rpv.pkg_version, rpv.v_nmm, rpv.v_mm,(SELECT COUNT(*) FROM ADVISORY_RIPPLE avr WHERE avr.rtag_id = rel.rtag_id AND avr.pv_id = rel.pv_id ) AS IsAvr,rpv.build_typeFROM release_content rel,package_versions rpvWHERE rel.pv_id = rpv.pv_idAND rtag_id = nnrtag_id) frc,(/* DPV_IDs not found in release. Excluding:Those from pegged versionsThose from packages imported via an SDK*/SELECT dep.pv_id, dep.dpv_id AS err_dpvFROM package_dependencies depWHERE dep.pv_id IN (SELECT pv_id FROM release_content WHERE rtag_id = nnrtag_id AND release_content.SDKTAG_ID is NULL)AND NOT dep.pv_id IN (SELECT pegv.pv_id FROM PEGGED_VERSIONS pegv WHERE pegv.rtag_id = nnrtag_id)AND NOT dep.dpv_id IN (SELECT pv_id FROM release_content WHERE rtag_id = nnrtag_id)/* INCLUDE Unbuildable packages to force missing */UNIONSELECT bpv.pv_id, bpv.pv_id as err_dpvFROM package_versions bpv, release_content brcWHERE bpv.build_type = 'U' AND brc.rtag_id = nnrtag_id AND bpv.pv_id = brc.pv_idMINUS/* MINUS Dependencies to be ignored */SELECT igw.pv_id, igw.dpv_id AS err_dpvFROM ignore_warnings igwWHERE igw.rtag_id = nnrtag_id) err,package_versions errpkg,package_versions errpvWHERE err.err_dpv = errpv.pv_idAND errpv.pkg_id = frc.pkg_id(+)AND NVL (errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)AND err.pv_id = errpkg.pv_idAND NVL(frc.IsAvr,0) = 0) rd,package_versions pv2where rd.errpv_id = pv2.PV_ID);END level_one_conflicts;/---------------------------------------------------------- DDL for Procedure LOCK_PACKAGE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,nUserId IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 4.0--------------------------------------------------------------------------- */BEGIN-- Lock PackageUPDATE PACKAGE_VERSIONS pv SETpv.DLOCKED = 'Y'WHERE pv.PV_ID = nPvId;/* LOG ACTION */Log_Action ( nPvId, 'lock_package', nUserId );END Lock_Package;/---------------------------------------------------------- DDL for Procedure LOG_ACTION--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,enumActionTypeName IN ACTION_TYPE.NAME%TYPE,nUserId IN ACTION_LOG.USER_ID%TYPE,sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL ) IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */ActionTypeId NUMBER;BEGIN-- Get Action Type FKSELECT act.ACTTYPE_ID INTO ActionTypeIdFROM ACTION_TYPE actWHERE act.NAME = enumActionTypeName;INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )VALUES ( nUserId, nPvId, sAdditionalComments, ActionTypeId );END Log_Action;/---------------------------------------------------------- DDL for Procedure LOG_ACTION_BULK--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION_BULK" ( nPvIdList IN VARCHAR2,enumActionTypeName IN ACTION_TYPE.NAME%TYPE,nUserId IN ACTION_LOG.USER_ID%TYPE,sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL ) IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */ActionTypeId NUMBER;oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();BEGINoPvIdCollector := IN_LIST_NUMBER ( nPvIdList );-- Get Action Type FKSELECT act.ACTTYPE_ID INTO ActionTypeIdFROM ACTION_TYPE actWHERE act.NAME = enumActionTypeName;-- Log ActionINSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )SELECT nUserId,pv.PV_ID,sAdditionalComments,ActionTypeIdFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );END Log_Action_Bulk;/---------------------------------------------------------- DDL for Procedure LOG_DAEMON_ACTION--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_DAEMON_ACTION" ( nRconId IN NUMBER,enumActionTypeName IN VARCHAR2,nUserId IN NUMBER,sAdditionalComments IN VARCHAR2 DEFAULT NULL ) IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */ActionTypeId NUMBER;BEGIN-- Get Action Type FKSELECT act.ACTTYPE_ID INTO ActionTypeIdFROM ACTION_TYPE actWHERE act.NAME = enumActionTypeName;INSERT INTO DAEMON_ACTION_LOGVALUES ( nUserId, ORA_SYSDATETIME, nRconId, sAdditionalComments, ActionTypeId );END Log_Daemon_Action;/---------------------------------------------------------- DDL for Procedure LOG_PROJECT_ACTION--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_PROJECT_ACTION" ( nProjId IN NUMBER,enumActionTypeName IN VARCHAR2,nUserId IN NUMBER,sAdditionalComments IN VARCHAR2 DEFAULT NULL,nRtagId IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */ActionTypeId NUMBER;BEGIN-- Get Action Type FKSELECT act.ACTTYPE_ID INTO ActionTypeIdFROM ACTION_TYPE actWHERE act.NAME = enumActionTypeName;INSERT INTO PROJECT_ACTION_LOG ( USER_ID, ACTION_DATETIME, PROJ_ID, DESCRIPTION, ACTTYPE_ID, RTAG_ID)VALUES ( nUserId, ORA_SYSDATETIME, nProjId, sAdditionalComments, ActionTypeId, nRtagId);END Log_Project_Action;/---------------------------------------------------------- DDL for Procedure NEW_ADDITIONAL_NOTE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_ADDITIONAL_NOTE" ( pnPv_id IN NUMBER,psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,pnUser_id IN NUMBER,outErrCode OUT NUMBER) IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */newID NUMBER;CURSOR an_duplicate_cur ISSELECT note_idFROM ADDITIONAL_NOTESWHERE pv_id = pnPv_idAND note_title = psNote_title;an_duplicate_rec an_duplicate_cur%ROWTYPE;BEGINoutErrCode := -1; -- Set default return error code to ERROR stateOPEN an_duplicate_cur;FETCH an_duplicate_cur INTO an_duplicate_rec;IF an_duplicate_cur%NOTFOUNDTHEN/* No duplicate titles */-- Get new ID --SELECT SEQ_ADDITIONAL_NOTES.NEXTVAL INTO newID FROM DUAL;--- Add Additional Note ---INSERT INTO ADDITIONAL_NOTES ( note_id, pv_id, note_title, note_body, mod_date, mod_user )VALUES ( newID, pnPv_id, psNote_title, psNote_body, Ora_Sysdate, pnUser_id );outErrCode := 0; -- Set return to SUCCESSEND IF;CLOSE an_duplicate_cur;END New_Additional_Note;/---------------------------------------------------------- DDL for Procedure NEW_PACKAGE_NAME--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_PACKAGE_NAME" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,retPKG_ID OUT NUMBER ) IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */CURSOR packages_cur ISSELECT pkg.pkg_idFROM packages pkgWHERE pkg.pkg_name = SSpkg_name;packages_rec packages_cur%ROWTYPE;BEGIN/* ---------------------------------------------------- *//* Find if package name exists *//* ---------------------------------------------------- */OPEN packages_cur;FETCH packages_cur INTO packages_rec;IF packages_cur%NOTFOUNDTHEN-- Create new pkg_name --SELECT SEQ_PKG_ID.nextval INTO retPKG_ID FROM DUAL;INSERT INTO packages ( pkg_id, pkg_name )VALUES ( retPKG_ID, SSpkg_name );ELSEretPKG_ID := packages_rec.pkg_id;END IF;CLOSE packages_cur;END New_Package_Name;/---------------------------------------------------------- DDL for Procedure NEW_PATCH--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_PATCH" ( SSpatch_version IN PACKAGE_VERSIONS.pkg_version%TYPE,NNparent_id IN NUMBER,sPatchIdList IN VARCHAR2,NNuser_id IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 3.5--------------------------------------------------------------------------- */patchPv_id NUMBER;parPkg_id NUMBER;LastInstallOrder NUMBER;isPatchDlocked PACKAGE_VERSIONS.DLOCKED%TYPE;SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;oPatchDepCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();CURSOR parent_cur ISSELECT pv.*, pkg.pkg_nameFROM package_versions pv,packages pkgWHERE pv.pv_id = NNparent_idAND pv.pkg_id = pkg.pkg_id;parent_rec parent_cur%ROWTYPE;CURSOR patch_cur ISSELECT pv.*, pg.pkg_nameFROM package_versions pv,packages pgWHERE pv.pkg_id = parPkg_idAND pv.pkg_version = SSpatch_versionAND pv.pkg_id = pg.pkg_id;patch_rec patch_cur%ROWTYPE;CURSOR releases_cur ISSELECT rc.pv_idFROM release_content rcWHERE rc.pv_id = patch_rec.pv_id;releases_rec releases_cur%ROWTYPE;BEGIN-- Get Last Install OrderSELECT Count(*) INTO LastInstallOrderFROM PACKAGE_PATCHES ppWHERE pp.PV_ID = NNparent_id;-- Get parent detailsOPEN parent_cur;FETCH parent_cur INTO parent_rec;parPkg_id := parent_rec.pkg_id;-- Find if patch exists in databaseOPEN patch_cur;FETCH patch_cur INTO patch_rec;-- Parent must be officialIF parent_rec.dlocked = 'Y' THENIF patch_cur%NOTFOUNDTHENisPatchDlocked := 'N';-- Create new patch version --SELECT SEQ_PV_ID.nextval INTO patchPv_id FROM DUAL;Split_version ( SSpatch_version, SSV_MM, SSV_NMM, SSV_EXT );INSERT INTO package_versions ( pv_id, pkg_id, pkg_version, dlocked, created_stamp, creator_id, modified_stamp, modifier_id, V_MM, V_NMM, V_EXT, src_path, pv_description, owner_id, is_patch, LAST_PV_ID, bs_id, is_autobuildable, ripple_field )VALUES (patchPv_id,parPkg_id,SSpatch_version,isPatchDlocked,ORA_SYSDATE,NNuser_id,ORA_SYSDATETIME,NNuser_id,SSV_MM,SSV_NMM,SSV_EXT,parent_rec.src_path,'This is a patch to ' || parent_rec.pkg_name || ' ' || parent_rec.pkg_version,NNuser_id,'Y',patchPv_id,parent_rec.bs_id,parent_rec.is_autobuildable,parent_rec.ripple_field);INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )( SELECT NNparent_id AS pv_id,pv.pv_id AS patch_id,LastInstallOrder + 1 AS INSTALL_ORDERFROM package_versions pvWHERE pv.pv_id = patchPv_idAND pv.is_patch = 'Y' );/* LOG ACTION */Log_Action ( patchPv_id, 'new_version', NNuser_id, 'Patch version created: '|| SSpatch_version );Log_Action ( NNparent_id, 'patch_add', NNuser_id, 'New patch created and attached: '|| SSpatch_version );ELSEpatchPv_id := patch_rec.pv_id;isPatchDlocked := patch_rec.dlocked;-- Find if pv_id exists in release content (i.e. it cannot be a patch)OPEN releases_cur;FETCH releases_cur INTO releases_rec;IF releases_cur%NOTFOUNDTHEN-- This pv_id is trully a patch, hence add Y to column IS_PATCHUPDATE package_versions SETis_patch = 'Y'WHERE pv_id = patchPv_id;INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )( SELECT NNparent_id AS pv_id,pv.pv_id AS patch_id,LastInstallOrder + 1 AS INSTALL_ORDERFROM package_versions pvWHERE pv.pv_id = patchPv_idAND pv.is_patch = 'Y' );END IF;CLOSE releases_cur;/* LOG ACTION */Log_Action ( NNparent_id, 'patch_add', NNuser_id, 'Patch version was found and attached: '|| SSpatch_version );END IF;END IF;/* Create Patch Dependencies */oPatchDepCollector := IN_LIST_NUMBER ( sPatchIdList );-- Make sure patch is unofficial before altering its dependenciesIF (oPatchDepCollector.COUNT > 0) AND (isPatchDlocked = 'N') THEN-- Delete Existing DependenciesDELETEFROM PACKAGE_DEPENDENCIES depWHERE dep.PV_ID = patchPv_id;-- Insert new dependenciesINSERT INTO PACKAGE_DEPENDENCIES ( PV_ID, DPV_ID, PKG_ID, DPKG_ID, BUILD_TYPE )SELECT patchPv_id AS PV_ID,pv.PV_ID AS DPV_ID,parPkg_id AS PKG_ID,pv.PKG_ID AS DPKG_ID,'L' AS BUILD_TYPEFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPatchDepCollector AS RELMGR_NUMBER_TAB_t ) ) );END IF;CLOSE parent_cur;CLOSE patch_cur;END New_Patch;/---------------------------------------------------------- DDL for Procedure NEW_UNIT_TEST--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_UNIT_TEST" ( nPv_id IN NUMBER,nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,sNumOfTest IN UNIT_TESTS.NUMOF_TEST%TYPE,sDpkg_path IN VARCHAR2,sResults IN VARCHAR2,sCompletion_date IN VARCHAR2,nCompleted_by IN NUMBER,enumTEST_TYPE_AUTOMATIC IN NUMBER,enumTEST_TYPE_NOT_DONE IN NUMBER,outFileName OUT VARCHAR2) IS/* ---------------------------------------------------------------------------Version: 3.2.0--------------------------------------------------------------------------- */FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';newID NUMBER;ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;BEGIN-- Get new ID --SELECT SEQ_UNIT_TESTS.NEXTVAL INTO newID FROM DUAL;IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THENResultsURL := sResults;ELSEIF (sResults <> '') OR ( NOT sResults IS NULL ) THENoutFileName := FILENAME_PREFIX || newID ||'_'|| sResults;ResultsAttachment := sDpkg_path || '/' || outFileName;END IF;END IF;-- Remove NOT_DONE entry if existsDELETE FROM UNIT_TESTSWHERE pv_id = nPv_idAND test_types_fk = enumTEST_TYPE_NOT_DONE;--- Add Additional Note ---INSERT INTO UNIT_TESTS ( TEST_ID,PV_ID,TEST_TYPES_FK,TEST_SUMMARY,COMPLETION_DATE,COMPLETED_BY,RESULTS_URL,RESULTS_ATTACHMENT_NAME,NUMOF_TEST )VALUES (newID,nPv_id,nTestTypeId,sTest_summary,TO_DATE( sCompletion_date,'DD/MM/YYYY' ),nCompleted_by,ResultsURL,ResultsAttachment,sNumOfTest );END New_Unit_Test;/---------------------------------------------------------- DDL for Procedure PAOLO_BUILD_TREE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."PAOLO_BUILD_TREE" ( nRtag_id IN NUMBER ) ISsessionNumber NUMBER := 0;iteration NUMBER := 1;rowCnt NUMBER := 0;maxIterations NUMBER := 50;BEGININSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )SELECT sessionNumber, iteration, rc.PV_IDFROM RELEASE_CONTENT rcWHERE rc.RTAG_ID = nRtag_id;iteration := iteration + 1;LOOPINSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )SELECT sessionNumber,iteration,dep.DPV_IDFROM TEMP_TREE_BROWSE ttb,PACKAGE_DEPENDENCIES depWHERE dep.PV_ID = ttb.PV_IDAND ttb.LEVEL_NUM = iteration - 1MINUSSELECT sessionNumber, iteration, ttb.PV_IDFROM TEMP_TREE_BROWSE ttb;rowCnt := SQL%ROWCOUNT;IF rowCnt > 0 THENiteration := iteration + 1;END IF;EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);END LOOP;END PAOLO_Build_Tree;/---------------------------------------------------------- DDL for Procedure REBUILD_DEPRECATE_STATE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REBUILD_DEPRECATE_STATE" ( nRtagId IN INT ) ASBEGIN-- Clear the 'calculated' values from the Release Conetnts--UPDATE RELEASE_CONTENTSET DEPRECATED_STATE = NULLWHERE RTAG_ID = nRtagIdAND DEPRECATED_STATE != 6AND DEPRECATED_STATE is NOT NULL;---- Insert new calculated values into the table-- Use of 'AAA' speeds up the CONNECT BY PRIOR query (lots)UPDATE RELEASE_CONTENTSET DEPRECATED_STATE = 7WHERE RTAG_ID = nRtagIdAND DEPRECATED_STATE is nullAND PV_ID in (WITH AAA AS(SELECT pd.*FROM PACKAGE_DEPENDENCIES pd,RELEASE_CONTENT RC1WHERE rc1.rtag_id = nRtagIdAND RC1.PV_ID = pd.PV_ID)SELECT DISTINCT qry.PV_IDFROM(SELECT dep.*,LEVEL AS LEVEL_NUMFROM AAA depSTART WITH dep.DPV_ID IN (SELECT rc.pv_id as pv_idFROM RELEASE_CONTENT rcWHERE rc.rtag_id = nRtagIdAND rc.DEPRECATED_STATE = 6 )CONNECT BY PRIOR dep.PV_ID = dep.DPV_ID) qry,PACKAGES pkg,PACKAGE_VERSIONS pv,RELEASE_CONTENT rcWHERE qry.PV_ID = pv.PV_IDAND pv.PKG_ID = pkg.PKG_IDAND rc.RTAG_ID = nRtagIdAND rc.PV_ID = qry.PV_ID);END REBUILD_DEPRECATE_STATE;/---------------------------------------------------------- DDL for Procedure REBUILD_ENVIRONMENT--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REBUILD_ENVIRONMENT" ( NNrtag_id IN NUMBER ) IS---- Recalculate the package_state-- Triggered by the Web Interface--rowCnt NUMBER := 0;iteration NUMBER := 2; -- Iterations countermaxIterations NUMBER := 30; -- Maximum number of iterations allowed.-- This will prevent infinite loops if cyrcular dependencies are foundsessionNum NUMBER;BEGINSELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;-- Redo Patch Ignore warningsIgnore_Dependency_Warnings ( NNrtag_id, NULL, NULL, TRUE );Level_One_Conflicts ( NNrtag_id, sessionNum );--commit;LOOPLevel_N_Conflicts ( NNrtag_id, sessionNum, rowCnt, iteration );--commit;iteration := iteration + 1;EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);END LOOP;Update_Package_States ( NNrtag_id, sessionNum );DELETE FROM temp_env_states WHERE session_num = sessionNum;DELETE FROM TEMP_ENV_DEPS WHERE session_num = sessionNum;-- Flag Packages with New Patches Available-- Temp deleted 28-Mar-2017-- Reason: It takes a very long time and we dont use patches any more-- Check_New_Patches ( NNrtag_id );Clean_Do_Not_Ripple( NNrtag_id );/* Circular Dependency Flag *//*IF iteration > maxIterationsTHENUPDATE release_tags SETcircular_dependency = 'Y'WHERE rtag_id = NNrtag_id;ELSEUPDATE release_tags SETcircular_dependency = NULLWHERE rtag_id = NNrtag_id;END IF;*/END Rebuild_Environment;/---------------------------------------------------------- DDL for Procedure REMOVE_COMPONENTS--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_COMPONENTS" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE ) IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */BEGIN--- Delete From RELEASE_COMPONENTSDELETE FROM RELEASE_COMPONENTSWHERE PV_ID = nPvId;END Remove_Components;/---------------------------------------------------------- DDL for Procedure REMOVE_DOCUMENT--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_DOCUMENT" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,nDocId IN PACKAGE_DOCUMENTS.DOC_ID%TYPE,nUserId IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */DocNumber PACKAGE_DOCUMENTS.DOC_NUM%TYPE;BEGIN-- Get Doc NumSELECT pd.DOC_NUM INTO DocNumberFROM PACKAGE_DOCUMENTS pdWHERE pd.PV_ID = nPvIdAND pd.DOC_ID = nDocId;-- Delete DocumentDELETEFROM PACKAGE_DOCUMENTS pdWHERE pd.PV_ID = nPvIdAND pd.DOC_ID = nDocId;/* LOG ACTION */Log_Action ( nPvId, 'document_remove', nUserId, 'Document number: '|| DocNumber );END Remove_Document;/---------------------------------------------------------- DDL for Procedure REMOVE_PACKAGE_INTEREST--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PACKAGE_INTEREST" (nProjId IN PROJECTS.PROJ_ID%TYPE,nPkgId IN PACKAGES.PKG_ID%TYPE,nUserId IN NUMBER) IS/******************************************************************************NAME: REMOVE_PACKAGE_INTERESTPURPOSE: To remove interest in a given package per projectREVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 12/05/2006 Rupesh Solanki 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: REMOVE_PACKAGE_INTERESTSysdate: 12/05/2006Date and Time: 12/05/2006, 11:28:50 AM, and 12/05/2006 11:28:50 AMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/BEGIN--Delete from PACKAGE_INTERESTDELETE FROM PACKAGE_INTERESTWHERE PROJ_ID = nProjIdAND PKG_ID = nPkgIdAND USER_ID = nUserId;END REMOVE_PACKAGE_INTEREST;/---------------------------------------------------------- DDL for Procedure REMOVE_PATCH--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PATCH" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,nUserId IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 4.0--------------------------------------------------------------------------- */PatchVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;CURSOR curPatch ISSELECT pp.PV_ID,pp.PATCH_ID,ROWNUM AS NEW_INSTALL_ORDERFROM PACKAGE_PATCHES ppWHERE pp.PV_ID = nPvIdORDER BY pp.INSTALL_ORDER;recPatch curPatch%ROWTYPE;BEGIN-- Delete PatchDELETEFROM PACKAGE_PATCHES ppWHERE pp.PV_ID = nPvIdAND pp.PATCH_ID = nPatchId;-- Redo Install OrderOPEN curPatch;FETCH curPatch INTO recPatch;WHILE curPatch%FOUNDLOOPUPDATE PACKAGE_PATCHES pp SETpp.INSTALL_ORDER = recPatch.NEW_INSTALL_ORDERWHERE pp.PV_ID = nPvIdAND pp.PATCH_ID = recPatch.PATCH_ID;FETCH curPatch INTO recPatch;END LOOP;CLOSE curPatch;/* LOG ACTION */SELECT pv.PKG_VERSION INTO PatchVersionFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = nPatchId;Log_Action ( nPvId, 'patch_remove', nUserId, 'Version: '|| PatchVersion );END Remove_Patch;/---------------------------------------------------------- DDL for Procedure REMOVE_PROJECT_VIEW_OWNER--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PROJECT_VIEW_OWNER" (nProjId IN NUMBER,nViewId IN NUMBER,sUserIdList IN VARCHAR2,nUserId IN NUMBER ) ISGroupId NUMBER;/******************************************************************************NAME: UPDATE_VIEWPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 10/04/2006 Rupesh Solanki 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: UPDATE_VIEWSysdate: 10/04/2006Date and Time: 10/04/2006, 1:55:19 PM, and 10/04/2006 1:55:19 PMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/BEGINSELECT GROUP_EMAIL_ID into GroupIdFROM AUTOBUILD_FAILUREWHERE PROJ_ID = nProjIdAND VIEW_ID = nViewId;DELETE FROM MEMBERS_GROUPWHERE GROUP_EMAIL_ID = GroupIdAND USER_ID IN (SELECT * FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual ));END REMOVE_PROJECT_VIEW_OWNER;/---------------------------------------------------------- DDL for Procedure REMOVE_RELEASE_CONTENT--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_RELEASE_CONTENT" ( sPvIdList IN VARCHAR2,sNotPvIdList IN VARCHAR2,nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();oNotPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();BEGINoPvIdCollector := IN_LIST_NUMBER ( sPvIdList );oNotPvIdCollector := IN_LIST_NUMBER ( sNotPvIdList );-- Delete From Release ContentDELETEFROM RELEASE_CONTENTWHERE rtag_id = nRTagIdAND pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )AND NOT pv_id IN ( SELECT * FROM TABLE ( CAST ( oNotPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );END Remove_Release_Content;/---------------------------------------------------------- DDL for Procedure REMOVE_RUNTIME--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_RUNTIME" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,nRuntimeId IN RUNTIME_DEPENDENCIES.RTD_ID%TYPE,nUserId IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */RuntimeDependency VARCHAR2(4000);BEGIN-- Get Runtime dependencySELECT pkg.PKG_NAME ||' '|| pv.PKG_VERSION INTO RuntimeDependencyFROM RUNTIME_DEPENDENCIES rtd,PACKAGES pkg,PACKAGE_VERSIONS pvWHERE rtd.PV_ID = nPvIdAND pv.PKG_ID = pkg.PKG_IDAND rtd.RTD_ID = pv.PV_IDAND rtd.RTD_ID = nRuntimeId;-- Delete DocumentDELETEFROM RUNTIME_DEPENDENCIES rtdWHERE rtd.PV_ID = nPvIdAND rtd.RTD_ID = nRuntimeId;/* LOG ACTION */Log_Action ( nPvId, 'runtime_remove', nUserId, 'Runtime package: '|| RuntimeDependency );END Remove_Runtime;/---------------------------------------------------------- DDL for Procedure RENAME_PACKAGE_VERSION--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RENAME_PACKAGE_VERSION" ( NNpv_id IN NUMBER,SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,cBuildType IN CHAR,cChangeType IN CHAR,NNuser_id IN NUMBER,errMessage OUT VARCHAR2 ) IS/* ---------------------------------------------------------------------------Version: 3.2--------------------------------------------------------------------------- */sPackageVersion VARCHAR2(4000);sLabel VARCHAR2(4000) := NULL;sChangeType VARCHAR2(100) := NULL;uChangeType CHAR := cChangeType;OldPkgVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;CURSOR package_versions_cur ISSELECT pv_idFROM package_versionsWHERE pkg_id IN ( SELECT pkg_id FROM package_versions WHERE pv_id = NNpv_id )AND pkg_version = SSpkg_version;package_versions_rec package_versions_cur%ROWTYPE;BEGIN/* ---------------------------------------------------- *//* Find if package_version exists *//* ---------------------------------------------------- */errMessage := NULL;-- Get previous versionSELECT pv.PKG_VERSION INTO OldPkgVersionFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID = NNpv_id;sPackageVersion := SSpkg_version;IF OldPkgVersion != sPackageVersion THENOPEN package_versions_cur;FETCH package_versions_cur INTO package_versions_rec;IF package_versions_cur%NOTFOUNDTHEN-- Split current version in partsSplit_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );-- Automated built configIF ( cBuildType = 'M' ) THENuChangeType := 'F';END IF;-- Automated version numbering-- Make sure that version is still uniqueIF (uChangeType != 'F') THENsPackageVersion := '('|| NNpv_id ||')'|| SSV_EXT;END IF;-- Packge version not found, hence rename it.UPDATE package_versionsSET pkg_version = sPackageVersion,v_mm = SSV_MM,v_nmm = SSV_NMM,v_ext = SSV_EXT,modified_stamp = ORA_SYSDATETIME,modifier_id = NNuser_id,build_type = cBuildType,change_type = uChangeType,pkg_label = NULLWHERE pv_id = NNpv_id;sLabel := GET_AUTOMATED_LABEL( NNpv_id );UPDATE PACKAGE_VERSIONS pv SETpv.PKG_LABEL = sLabelWHERE pv_id = NNpv_id;/* LOG ACTION */IF (cChangeType = 'F') THENLog_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| sPackageVersion );ELSEIF cChangeType = 'M' THENsChangeType := 'Major Change';ELSIF cChangeType = 'N' THENsChangeType := 'Minor Change';ELSIF cChangeType = 'P' THENsChangeType := 'Patch Change';ELSEsChangeType := 'Unknown Change';END IF;Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| sPackageVersion || ',' || sChangeType );END IF;ELSE-- Package version exists. Cannot proceed.errMessage := 'enum_MSG_VERSION_EXISTS';END IF;CLOSE package_versions_cur;END IF;END Rename_Package_Version;/---------------------------------------------------------- DDL for Procedure RESET_IGNORE_WARNINGS--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RESET_IGNORE_WARNINGS" ( sPvIdList IN VARCHAR2,nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS/* ---------------------------------------------------------------------------Version: 5.0--------------------------------------------------------------------------- */oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();BEGINoPvIdCollector := IN_LIST_NUMBER ( sPvIdList );-- Remove Ignore WarningsDELETEFROM ignore_warningsWHERE (rtag_id, pv_id, dpv_id) IN(SELECT igw.rtag_id, igw.pv_id, igw.dpv_idFROM ignore_warnings igw,package_versions dpv,package_versions pvWHERE igw.dpv_id = dpv.pv_idAND igw.rtag_id = nRTagIdAND dpv.pkg_id = pv.pkg_idAND NVL(dpv.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|')AND pv.pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) ));END Reset_Ignore_Warnings;/---------------------------------------------------------- DDL for Procedure RIPPLE_PACKAGE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RIPPLE_PACKAGE" (sPvIdList IN VARCHAR2,nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,nUserId IN NUMBER) IS/* ---------------------------------------------------------------------------Version: 4.1--------------------------------------------------------------------------- */BEGINIF (sPvIdList IS NULL) THENRAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );END IF;-- Ripple PackageDELETE FROM DO_NOT_RIPPLEWHERE RTAG_ID = nRtagIdAND PV_ID IN (SELECT *FROM THE (SELECT CAST( IN_LIST_NUMBER( sPvIdList )AS RELMGR_NUMBER_TAB_t )FROM DUAL));-- Mark Release Changed for buildPK_RELEASE.SET_RELEASE_MODIFIED(nRtagId);/* LOG ACTION */Log_Action_Bulk ( sPvIdList, 'ripple_package', nUserId );END Ripple_Package;/---------------------------------------------------------- DDL for Procedure SEED_PACKAGE_NAMES_VERSIONS--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,NNuser_id IN NUMBER,retPV_ID OUT NUMBER,nCloneFromPvId IN NUMBER DEFAULT NULL,nBuildType IN CHAR DEFAULT 'U',nChangeType IN CHAR DEFAULT 'F') IS/* ---------------------------------------------------------------------------Version: 5.0--------------------------------------------------------------------------- */parPkg_id NUMBER;parPv_id NUMBER;cloneFrom_pv_id NUMBER;SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;spackageversion VARCHAR2 (4000);slabel VARCHAR2 (4000) := NULL;CURSOR packages_cur ISSELECT pkg_id FROM PACKAGESWHERE pkg_name = SSpkg_name;packages_rec packages_cur%ROWTYPE;CURSOR package_versions_cur ISSELECT pv_id FROM PACKAGE_VERSIONSWHERE pkg_id = parPkg_idAND pkg_version = SSpkg_version;package_versions_rec package_versions_cur%ROWTYPE;CURSOR clone_package_versions_cur ISSELECT MAX(pv_id) AS pv_idFROM PACKAGE_VERSIONSWHERE pkg_id = parPkg_idAND NVL(v_ext,'LINK_A_NULL') = NVL(SSV_EXT,'LINK_A_NULL');clone_package_versions_rec clone_package_versions_cur%ROWTYPE;BEGIN/* -------------------------------------------- *//* Find if pkg_name exists and seed if required *//* -------------------------------------------- */OPEN packages_cur;FETCH packages_cur INTO packages_rec;IF packages_cur%NOTFOUNDTHEN/* INSERT into packages table */SELECT SEQ_PKG_ID.NEXTVAL INTO parPkg_id FROM DUAL;INSERT INTO PACKAGES ( pkg_id, pkg_name ) VALUES ( parPkg_id, SSpkg_name );ELSEparPkg_id := packages_rec.pkg_id;END IF;CLOSE packages_cur;/* ---------------------------------------------------- *//* Find if package_version exists and seed if required *//* ---------------------------------------------------- */OPEN package_versions_cur;FETCH package_versions_cur INTO package_versions_rec;IF package_versions_cur%NOTFOUNDTHENSELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;/* Generate automated version Number */Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );spackageversion := SSpkg_version;IF ( nChangeType <> 'F' )THENspackageversion := '(' || parPv_id || ')' || SSV_EXT;END If;/* Determine clone source for new package-versionUse nCloneFromPvId - iff providedUse most recently created pkgName/pkgExtension - if it existsElse create a brand new package-version*/IF ( NOT nCloneFromPvId IS NULL) THENcloneFrom_pv_id := nCloneFromPvId;ELSE/* Find similar pkg_name + ext to clone from */OPEN clone_package_versions_cur;FETCH clone_package_versions_cur INTO clone_package_versions_rec;CLOSE clone_package_versions_cur;IF ( NOT clone_package_versions_rec.pv_id IS NULL) THENcloneFrom_pv_id := clone_package_versions_rec.pv_id;ELSEcloneFrom_pv_id := NULL;END IF;END IF;IF NOT cloneFrom_pv_id IS NULLTHEN-- Clone Package Version Details --INSERT INTO PACKAGE_VERSIONS ( pv_id, pkg_id, pkg_version, dlocked, created_stamp, creator_id, modified_stamp, modifier_id, V_MM, V_NMM, V_EXT,src_path, pv_description, PV_OVERVIEW, LAST_PV_ID, owner_id, BUILD_TYPE, IS_BUILD_ENV_REQUIRED, bs_id, is_autobuildable, is_deployable, ripple_field,change_type )SELECT parPv_id AS pv_id,parPkg_id AS pkg_id,spackageversion AS pkg_version,'N' AS dlocked,Ora_Sysdate AS created_stamp,NNuser_id AS creator_id,Ora_Sysdatetime AS modified_stamp,NNuser_id AS modifier_id,SSV_MM AS V_MM,SSV_NMM AS V_NMM,SSV_EXT AS V_EXT,pv.src_path,pv.pv_description,pv.PV_OVERVIEW,cloneFrom_pv_id AS LAST_PV_ID,pv.owner_id,nBuildType AS BUILD_TYPE,pv.IS_BUILD_ENV_REQUIRED,pv.BS_ID,pv.is_autobuildable,pv.IS_DEPLOYABLE,pv.ripple_field,nChangeType AS change_typeFROM PACKAGE_VERSIONS pvWHERE pv.pv_id = cloneFrom_pv_id;Basic_Clone ( cloneFrom_pv_id, parPv_id, NULL, NNuser_id, parPkg_id, 0 );ELSE/* BRAND NEW version + ext */INSERT INTO PACKAGE_VERSIONS ( pv_id, pkg_id, pkg_version, dlocked, created_stamp, creator_id, modified_stamp, modifier_id, V_MM, V_NMM, V_EXT, owner_id, LAST_PV_ID, BUILD_TYPE, ripple_field, change_type )VALUES (parPv_id,parPkg_id,spackageversion,'N',Ora_Sysdate,NNuser_id,Ora_Sysdatetime,NNuser_id,SSV_MM,SSV_NMM,SSV_EXT,NNuser_id,parPv_id,nBuildType,'b',nChangeType);END IF;/* Insert initial package label */slabel := get_automated_label (parPv_id);UPDATE package_versions pvSET pv.pkg_label = slabelWHERE pv.pv_id = parPv_id;retPV_ID := parPv_id;/* LOG ACTION */Log_Action ( parPv_id, 'new_version', NNuser_id,'New package version: '|| spackageversion );ELSEretPV_ID := package_versions_rec.pv_id;END IF;CLOSE package_versions_cur;END Seed_Package_Names_Versions;/GRANT EXECUTE ON "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" TO "DEPLOYMENT_MANAGER";---------------------------------------------------------- DDL for Procedure SET_ADVISORY_RIPPLE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,nUserId IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 4.0--------------------------------------------------------------------------- */BEGIN-- Set Advisory Ripple PackageINSERT INTO ADVISORY_RIPPLE (RTAG_ID, PV_ID)VALUES (nRtagId, nPvId);/* LOG ACTION */Log_Action ( nPvId, 'set_advisory_ripple', nUserId );/*Rebuild_Environment(nRtagId);*/END Set_Advisory_Ripple;/---------------------------------------------------------- DDL for Procedure SET_PACKAGE_BUILD_ENV--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,sBuildEnvIdList IN VARCHAR2 ) IS/* ---------------------------------------------------------------------------Last Modified: Rupesh SolankiVersion: 3.0.1--------------------------------------------------------------------------- */BEGIN-- Delete Current Build Env settingsDELETE FROM PACKAGE_BUILD_ENVWHERE pv_id = nPvId;-- Delet Current Package Build Info SettingsDELETE FROM PACKAGE_BUILD_INFOWHERE pv_id = nPvId;-- Reset flag to NUPDATE PACKAGE_VERSIONS SETIS_BUILD_ENV_REQUIRED = 'N'WHERE PV_ID = nPvId;-- Set new Build EnvIF NOT sBuildEnvIdList IS NULL THEN-- Insert into PACKAGE_BUILD_ENVINSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )SELECT nPvId AS PV_ID,be.BE_IDFROM BUILD_ENVIRONMENTS beWHERE be.BE_ID IN (SELECT *FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual ));-- Insert into PACKAGE_BUILD_INFOINSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )SELECT nPvId AS PV_ID,be.BM_IDFROM BUILD_MACHINES beWHERE be.BM_ID IN (SELECT *FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual ));-- Set flag to YUPDATE PACKAGE_VERSIONS SETIS_BUILD_ENV_REQUIRED = 'Y'WHERE PV_ID = nPvId;END IF;END Set_Package_Build_Env;/---------------------------------------------------------- DDL for Procedure SET_PACKAGE_BUILD_ENV_TEMP--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV_TEMP" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,sBuildEnvIdList IN VARCHAR2,nBuildStandard IN PACKAGE_VERSIONS.BS_ID%TYPE) IS/* ---------------------------------------------------------------------------Last Modified: Rupesh SolankiVersion: 3.0.1--------------------------------------------------------------------------- */nBsCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();BsId NUMBER;HackBsId NUMBER;BEGINnBsCollector := IN_LIST_NUMBER ( sBuildEnvIdList );-- Delete Current Build Env settingsDELETE FROM PACKAGE_BUILD_ENVWHERE pv_id = nPvId;-- Delet Current Package Build Info SettingsDELETE FROM PACKAGE_BUILD_INFOWHERE pv_id = nPvId;-- Reset flag to NUPDATE PACKAGE_VERSIONS SETIS_BUILD_ENV_REQUIRED = 'N'WHERE PV_ID = nPvId;-- Set new Build EnvIF NOT sBuildEnvIdList IS NULL THENFOR i IN 1..nBsCollector.COUNTLOOPBsId := nBsCollector(i);IF nBuildStandard = 2 THENIF BsId = 1 THENHackBsId := 11;ELSEHackBsId := 12;END IF;-- Insert into PACKAGE_BUILD_ENVINSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )SELECT nPvId AS PV_ID,be.BE_IDFROM BUILD_ENVIRONMENTS beWHERE be.BE_ID IN ( HackBsId );-- Insert into PACKAGE_BUILD_INFOINSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )SELECT nPvId AS PV_ID,be.BM_IDFROM BUILD_MACHINES beWHERE be.BM_ID IN ( BsId );-- Set flag to YUPDATE PACKAGE_VERSIONS SETIS_BUILD_ENV_REQUIRED = 'Y'WHERE PV_ID = nPvId;ELSE-- Insert into PACKAGE_BUILD_ENVINSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )SELECT nPvId AS PV_ID,be.BE_IDFROM BUILD_ENVIRONMENTS beWHERE be.BE_ID IN ( BsId );-- Insert into PACKAGE_BUILD_INFOINSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )SELECT nPvId AS PV_ID,be.BM_IDFROM BUILD_MACHINES beWHERE be.BM_ID IN ( BsId );-- Set flag to YUPDATE PACKAGE_VERSIONS SETIS_BUILD_ENV_REQUIRED = 'Y'WHERE PV_ID = nPvId;END IF;END LOOP;END IF;END Set_Package_Build_Env_Temp;/---------------------------------------------------------- DDL for Procedure SET_TO_AUTOBUILDABLE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_TO_AUTOBUILDABLE" (nrtagid IN NUMBER,spvidlist IN VARCHAR2)IS/******************************************************************************NAME: SET_TO_AUTOBUILDABLEPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 15/12/2006 Rupesh Solanki 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: SET_TO_AUTOBUILDABLESysdate: 15/12/2006Date and Time: 15/12/2006, 11:42:29 AM, and 15/12/2006 11:42:29 AMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/npvidcollector relmgr_number_tab_t := relmgr_number_tab_t ();PvId NUMBER;BEGINnpvidcollector := in_list_number2 (spvidlist);UPDATE package_versionsSET is_autobuildable = 'N'WHERE pv_id IN (SELECT pv_idFROM release_contentWHERE rtag_id = nrtagid);FOR i IN 1..npvidcollector.COUNTLOOPPvId := npvidcollector(i);UPDATE package_versionsset is_autobuildable = 'Y'where pv_id = PvId;END LOOP;END set_to_autobuildable;/---------------------------------------------------------- DDL for Procedure SHIFT_INSTALL_ORDER--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SHIFT_INSTALL_ORDER" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,nToInstallOrder IN PACKAGE_PATCHES.INSTALL_ORDER%TYPE ) IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */currInstallOrder NUMBER;FromInstallOrder NUMBER;BEGIN-- Get Current Install OrderSELECT pp.INSTALL_ORDER INTO currInstallOrderFROM PACKAGE_PATCHES ppWHERE pp.PV_ID = nPvIdAND pp.PATCH_ID = nPatchId;IF currInstallOrder > nToInstallOrderTHENFromInstallOrder := nToInstallOrder;-- Shift others UpUPDATE PACKAGE_PATCHES pp SETpp.INSTALL_ORDER = pp.INSTALL_ORDER + 1WHERE pp.PV_ID = nPvIdAND pp.PATCH_ID != nPatchIdAND pp.INSTALL_ORDER BETWEEN FromInstallOrder AND currInstallOrder - 1;ELSIF currInstallOrder < nToInstallOrderTHENFromInstallOrder := currInstallOrder + 1;-- Shift others DownUPDATE PACKAGE_PATCHES pp SETpp.INSTALL_ORDER = pp.INSTALL_ORDER - 1WHERE pp.PV_ID = nPvIdAND pp.PATCH_ID != nPatchIdAND pp.INSTALL_ORDER BETWEEN FromInstallOrder AND nToInstallOrder;END IF;-- Move Patch to new install orderUPDATE PACKAGE_PATCHES pp SETpp.INSTALL_ORDER = nToInstallOrderWHERE pp.PV_ID = nPvIdAND pp.PATCH_ID = nPatchId;END Shift_Install_Order;/---------------------------------------------------------- DDL for Procedure SPLIT_VERSION--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SPLIT_VERSION" ( SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,SSV_MM OUT PACKAGE_VERSIONS.V_MM%TYPE,SSV_NMM OUT PACKAGE_VERSIONS.V_NMM%TYPE,SSV_EXT OUT PACKAGE_VERSIONS.V_EXT%TYPE ) IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */TYPE VERSION_COMPONENTS_TYPE IS TABLE OF VARCHAR2(50)INDEX BY BINARY_INTEGER;version_components VERSION_COMPONENTS_TYPE;lastDot NUMBER := 0;currDot NUMBER := 0;BEGINcurrDot := INSTR ( SSpkg_version, '.', -1 ); -- Find 1st dot from the rightIF ( currDot > 0 )THEN-- YES dot separator found --SSV_EXT := GET_V_EXT( SSpkg_version );IF NOT SSV_EXT IS NULLTHENlastDot := currDot;currDot := INSTR ( SSpkg_version, '.', -1, 2 ); -- Find 2nd dot from the rightIF ( currDot > 0 )THEN-- XXXX.M.ESSV_MM := SUBSTR ( SSpkg_version, currDot + 1, lastDot - currDot - 1);SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot ) || SSV_EXT;ELSE-- XXXX.ESSV_MM := NULL;SSV_NMM := SSpkg_version;END IF;ELSE-- XXXX.MSSV_MM := SUBSTR ( SSpkg_version, currDot + 1, LENGTH(SSpkg_version) - currDot );SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot );END IF;ELSE-- NO dot separator found ---- XXXXXXSSV_MM := NULL;SSV_NMM := SSpkg_version;SSV_EXT := NULL;END IF;END Split_Version;/---------------------------------------------------------- DDL for Procedure SWITCH_REPRODUCIBLE_PACKAGE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SWITCH_REPRODUCIBLE_PACKAGE" (nPvId IN NUMBER, nUserId IN NUMBER)ISAuto CHAR;/******************************************************************************NAME: SWITCH_REPRODUCIBLE_PACKAGEPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 14/12/2006 Rupesh Solanki 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: SWITCH_REPRODUCIBLE_PACKAGESysdate: 14/12/2006Date and Time: 14/12/2006, 11:35:15 AM, and 14/12/2006 11:35:15 AMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/BEGINSELECT IS_AUTOBUILDABLE into AutoFROM PACKAGE_VERSIONSWHERE PV_ID = nPvId;IF Auto = 'N' ThenUPDATE PACKAGE_VERSIONSSET IS_AUTOBUILDABLE = 'Y'WHERE PV_ID = nPvId;/* LOG ACTION */Log_Action ( nPvId, 'reproducible_package', nUserId );ElseUPDATE PACKAGE_VERSIONSSET IS_AUTOBUILDABLE = 'N'WHERE PV_ID = nPvId;/* LOG ACTION */Log_Action ( nPvId, 'unreproducible_package', nUserId );End If;END SWITCH_REPRODUCIBLE_PACKAGE;/---------------------------------------------------------- DDL for Procedure SYNC_PROJECTS_NEW_VERSION--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SYNC_PROJECTS_NEW_VERSION" ( nPv_id IN NUMBER,sSyncRtagsInList IN VARCHAR2,nUser_id IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */CURSOR sync_rtags_cur ISSELECT rc.RTAG_ID, rc.BASE_VIEW_ID, pv.pv_idFROM release_content rc,package_versions pv,package_versions opvWHERE rc.pv_id = pv.pv_idAND opv.pkg_id = pv.pkg_idAND NVL(opv.v_ext, '|LINK_A_NULL|') = NVL(pv.v_ext, '|LINK_A_NULL|')AND opv.pv_id = nPv_idAND rtag_id IN ( SELECT *FROM THE (SELECT CAST( IN_LIST_NUMBER( sSyncRtagsInList ) AS RELMGR_NUMBER_TAB_t )FROM dual));sync_rtags_rec sync_rtags_cur%ROWTYPE;BEGINOPEN sync_rtags_cur;FETCH sync_rtags_cur INTO sync_rtags_rec;WHILE sync_rtags_cur%FOUNDLOOPDELETE FROM RELEASE_CONTENTWHERE rtag_id = sync_rtags_rec.rtag_idAND pv_id = sync_rtags_rec.pv_id;INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )VALUES ( sync_rtags_rec.rtag_id,nPv_id,sync_rtags_rec.BASE_VIEW_ID,Ora_Sysdate,nUser_id,0);-- UPDATE RELEASE_CONTENT-- SET pv_id = nPv_id,-- insert_stamp = Ora_Sysdate,-- insertor_id = nUser_id-- WHERE rtag_id = sync_rtags_rec.rtag_id-- AND pv_id = sync_rtags_rec.pv_id;FETCH sync_rtags_cur INTO sync_rtags_rec;END LOOP;CLOSE sync_rtags_cur;END Sync_Projects_New_Version;/---------------------------------------------------------- DDL for Procedure TOUCH_RELEASE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE" ( nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS/* ---------------------------------------------------------------------------The purpose of this procedure is to flag in the database that the specifiedrelease has changed to an extent that the procedure Rebuild_Environmentshould be called at the next opportunity in order that the package stateicons are all re-evaluated.The package state icons are controlled using the pkg_state column in therelease_content table, and Rebuild_Environment updates that column.It will be through user action in the website that Rebuild_Environment willbe called, for example:a) when setting/clearing ignore warnings checkboxesb) when someone opens a page upon a rtag/pvid and rebuild_en flag is setc) when someone opens the build order report formd) when someone modifies dependencies of a package+ other scenarios (?)--------------------------------------------------------------------------- */BEGIN-- Touch Release for RebuildUPDATE RELEASE_TAGS rt SETrt.REBUILD_ENV = 'Y',rt.REBUILD_STAMP = 0WHERE rt.RTAG_ID = nRtagId;END Touch_Release;/---------------------------------------------------------- DDL for Procedure TOUCH_RELEASE_BULK--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE_BULK" ( nRtagIdList IN VARCHAR2 ) IS/* ---------------------------------------------------------------------------Version: 3.0--------------------------------------------------------------------------- */oRTagIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();BEGINoRTagIdCollector := IN_LIST_NUMBER ( nRtagIdList );-- Touch Release for RebuildUPDATE RELEASE_TAGS rt SETrt.REBUILD_ENV = 'Y',rt.REBUILD_STAMP = 0WHERE rt.RTAG_ID IN ( SELECT * FROM TABLE ( CAST ( oRTagIdCollector AS RELMGR_NUMBER_TAB_t ) ) );END Touch_Release_Bulk;/---------------------------------------------------------- DDL for Procedure TO_INSERT_VTREE_ID--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TO_INSERT_VTREE_ID" IS/******************************************************************************NAME: TO_INSERT_VTREE_IDPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 2/02/2007 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: TO_INSERT_VTREE_IDSysdate: 2/02/2007Date and Time: 2/02/2007, 8:42:56 AM, and 2/02/2007 8:42:56 AMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/VTreeId NUMBER;CURSOR curInfo ISSELECT RTAG_IDFROM RELEASE_TAGSWHERE VTREE_ID IS NULL;recInfo curInfo%ROWTYPE;BEGINOPEN curInfo;FETCH curInfo INTO recInfo;WHILE curInfo%FOUNDLOOPSELECT SEQ_VTREE_ID.nextval INTO VTreeId FROM DUAL;UPDATE RELEASE_TAGSSET VTREE_ID = VTreeIdWHERE RTAG_ID = recInfo.RTAG_ID;FETCH curInfo INTO recInfo;END LOOP;CLOSE curInfo;END TO_INSERT_VTREE_ID;/---------------------------------------------------------- DDL for Procedure UNDEPRECATE_PACKAGE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNDEPRECATE_PACKAGE" (nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,nRtagId IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,nPkgId IN DEPRECATED_PACKAGES.PKG_ID%TYPE,nUserId IN NUMBER)ISext VARCHAR2(50);BEGIN--Extract the package extensionSELECT V_EXT INTO extFROM PACKAGE_VERSIONSWHERE PV_ID = nPvId;-- Undeprecate PackageDELETEFROM DEPRECATED_PACKAGESWHERE RTAG_ID = nRtagIdAND PKG_ID = nPkgIdAND NVL(V_EXT,'.NULL') = NVL(ext,'.NULL');-- Update Release Contents entry-- Process PackageName.ext for the package. ie: Allow multiple-- versions of the package to be in the release.UPDATE RELEASE_CONTENTSETDEPRECATED_STATE = NULLWHERE RTAG_ID = nRtagIdAND PV_ID IN (SELECT PV.PV_IDFROM PACKAGE_VERSIONS PVWHERE PV.PKG_ID = nPkgIdAND NVL(PV.V_EXT, '.NULL') = NVL(ext,'.NULL'));-- Update consumers of the package-- Update ALL packages in the ReleaseREBUILD_DEPRECATE_STATE(nRtagId);END Undeprecate_Package;/---------------------------------------------------------- DDL for Procedure UNLOCK_PACKAGE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNLOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,nUserId IN NUMBER ) IS/* ---------------------------------------------------------------------------Author: Rupesh SolankiVersion: 4.0--------------------------------------------------------------------------- */STATE CHAR;BEGINSELECT DLOCKED INTO STATEFROM PACKAGE_VERSIONSWHERE PV_ID = nPvId;IF STATE = 'A' THEN --It was made official for autobuilds-- Unlock PackageUPDATE PACKAGE_VERSIONS pv SETpv.DLOCKED = 'P'WHERE pv.PV_ID = nPvId;ELSE-- Unlock PackageUPDATE PACKAGE_VERSIONS pv SETpv.DLOCKED = 'N'WHERE pv.PV_ID = nPvId;END IF;/* LOG ACTION */Log_Action ( nPvId, 'unlock_package', nUserId );END Unlock_Package;/---------------------------------------------------------- DDL for Procedure UNRIPPLE_PACKAGE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE" (sPvIdList IN VARCHAR2,nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,nUserId IN NUMBER) IS/* ---------------------------------------------------------------------------Version: 4.1--------------------------------------------------------------------------- */oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();BEGINIF (sPvIdList IS NULL) THENRAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );END IF;oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );-- UnRipple PackageINSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID )SELECT nRtagId, pv.PV_IDFROM PACKAGE_VERSIONS pvWHERE pv.PV_ID IN (SELECT *FROM TABLE (CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t )));/* LOG ACTION */Log_Action_Bulk ( sPvIdList, 'unripple_package', nUserId );END UnRipple_Package;/---------------------------------------------------------- DDL for Procedure UNRIPPLE_PACKAGE_INDIRECT--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE_INDIRECT" (nPvId IN NUMBER,nRtagId IN NUMBER,nUserId IN NUMBER,nrootCausePvId IN NUMBER,srootCause IN VARCHAR2,srootFile IN VARCHAR2) ISReleaseLocation VARCHAR2(4000);BEGIN-- UnRipple Packagedelete from do_not_ripple where rtag_id=nRtagId and pv_id=nPvId;INSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID, ROOT_PV_ID, ROOT_CAUSE, ROOT_FILE ) values (nRtagId, nPvId, nrootCausePvId, srootCause, srootFile);-- Do not log if RootCause is -2IF nrootCausePvId IS NOT NULL AND nrootCausePvId = -2 THENRETURN;END IF;/* LOG ACTION */SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocationFROM PROJECTS proj,RELEASE_TAGS rtWHERE rt.RTAG_ID = nRtagIdAND rt.PROJ_ID = proj.PROJ_ID;/* LOG ACTION */Log_Action ( nPvId, 'unripple_package', nUserId, 'Location: '|| ReleaseLocation );END UnRipple_Package_Indirect;/---------------------------------------------------------- DDL for Procedure UPDATE_ADDITIONAL_NOTE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_ADDITIONAL_NOTE" ( pnNote_id IN NUMBER,pnPv_id IN NUMBER,psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,pnUser_id IN NUMBER,outErrCode OUT NUMBER) IS/* ---------------------------------------------------------------------------Version: 3.0.1--------------------------------------------------------------------------- */newID NUMBER;/* Disallow duplicate Note Titles */CURSOR an_duplicate_cur ISSELECT COUNT(*) AS cnt_noteFROM ADDITIONAL_NOTESWHERE pv_id = pnPv_idAND note_id != pnNote_idAND note_title = psNote_title;an_duplicate_rec an_duplicate_cur%ROWTYPE;BEGINoutErrCode := -1; -- Set default return error code to ERROR stateOPEN an_duplicate_cur;FETCH an_duplicate_cur INTO an_duplicate_rec;IF an_duplicate_rec.cnt_note < 1THEN--- Update Additional Note ---UPDATE ADDITIONAL_NOTES SETnote_title = psNote_title,note_body = psNote_body,mod_date = Ora_Sysdate,mod_user = pnUser_idWHERE note_id = pnNote_idAND pv_id = pnPv_id;outErrCode := 0; -- Set return to SUCCESSEND IF;CLOSE an_duplicate_cur;END Update_Additional_Note;/---------------------------------------------------------- DDL for Procedure UPDATE_DEPRECATION_STATE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_DEPRECATION_STATE" (nnrtag_id IN NUMBER) ASrecno NUMBER;CURSOR deprecate_cur ISSELECT rc.pv_idFROM release_content rcWHERE rtag_id = nnrtag_idAND deprecated_state IN(7);deprecate_rec deprecate_cur % rowtype;BEGINOPEN deprecate_cur;FETCH deprecate_curINTO deprecate_rec;WHILE deprecate_cur % FOUNDLOOPSELECT COUNT(*)INTO recnoFROM package_dependencies pd,release_content rcWHERE pd.pv_id = deprecate_rec.pv_idAND rc.pv_id = pd.dpv_idAND rc.rtag_id = nnrtag_idAND rc.deprecated_state IN(6, 7);IF recno = 0 THENUPDATE release_contentSET pkg_id = NULL, deprecated_state = NULLWHERE pv_id = deprecate_rec.pv_idAND rtag_id = nnrtag_id;END IF;FETCH deprecate_curINTO deprecate_rec;END LOOP;END;/---------------------------------------------------------- DDL for Procedure UPDATE_MISC_VIEW--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_MISC_VIEW" IS/******************************************************************************NAME: UPDATE_MISC_VIEWPURPOSE:REVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 16/03/2007 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: UPDATE_MISC_VIEWSysdate: 16/03/2007Date and Time: 16/03/2007, 8:56:29 AM, and 16/03/2007 8:56:29 AMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/CURSOR view_cur /*Create a record set to store the ripple data*/ISSELECT pkg.pkg_id, rc.base_view_idFROM package_versions pv, packages pkg, release_content rcwhere rc.rtag_id = 2362and rc.pv_id = pv.pv_idand pv.pkg_id = pkg.pkg_id;view_rec view_cur%ROWTYPE;BEGINOPEN view_cur;FETCH view_curINTO view_rec;WHILE view_cur%FOUNDLOOPupdate release_contentset base_view_id = view_rec.base_view_idwhere rtag_id = 8027and pv_id IN(select pv.pv_id from release_content rc, package_versions pvwhere rc.rtag_id = 8027and pv.pv_id = rc.pv_idand pv.pkg_id = view_rec.pkg_id);FETCH view_curINTO view_rec;END LOOP;END UPDATE_MISC_VIEW;/---------------------------------------------------------- DDL for Procedure UPDATE_PACKAGE_DEPENDENCY--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_DEPENDENCY" ( NNpv_id IN NUMBER,SSdep_name IN PACKAGES.pkg_name%TYPE,SSdep_version IN PACKAGE_VERSIONS.pkg_version%TYPE,CCbuild_type IN PACKAGE_DEPENDENCIES.build_type%TYPE,NNuser_id IN NUMBER,NNdelete_old_dependency IN NUMBER) IS/* ---------------------------------------------------------------------------Version: 3.3--------------------------------------------------------------------------- */retPV_ID NUMBER;SSV_EXT PACKAGE_VERSIONS.v_ext%TYPE;DepIsPatch PACKAGE_VERSIONS.is_patch%TYPE;PvIsPatch PACKAGE_VERSIONS.is_patch%TYPE;NNpkg_id NUMBER;NNdpkg_id NUMBER;BEGIN--- Seed database with package_name and version if required ---Seed_Package_Names_Versions ( SSdep_name, SSdep_version, NNuser_id, retPV_ID );-- get v_ext,pkg_id of current dependencySELECT v_ext, pkg_id, is_patch INTO SSV_EXT, NNdpkg_id, DepIsPatchFROM PACKAGE_VERSIONSWHERE pv_id = retPV_ID;-- get pkg_id of parent packageSELECT pkg_id, is_patch INTO NNpkg_id, PvIsPatchFROM PACKAGE_VERSIONSWHERE pv_id = NNpv_id;IF ( (PvIsPatch IS NULL) AND (DepIsPatch IS NULL) ) OR( (PvIsPatch IS NOT NULL) )THENIF NNdelete_old_dependency = 1 THEN/* Used for CUSTOM dependency add/edit */--- Remove old dependency ---IF (PvIsPatch IS NULL) THEN-- Do it for PackagesDELETE FROM PACKAGE_DEPENDENCIESWHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN(SELECT dep.*FROM PACKAGE_DEPENDENCIES dep,PACKAGE_VERSIONS dpv,PACKAGE_VERSIONS pvWHERE dep.dpv_id = dpv.pv_idAND dep.pv_id = NNpv_idAND pv.pv_id = retPV_IDAND dpv.pkg_id = pv.pkg_idAND NVL(dpv.v_ext, '|LINK_A_NULL|') = NVL(SSV_EXT, '|LINK_A_NULL|'));ELSE-- Do it for PatchesDELETE FROM PACKAGE_DEPENDENCIESWHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN(SELECT dep.*FROM PACKAGE_DEPENDENCIES depWHERE dep.dpv_id = retPV_IDAND dep.pv_id = NNpv_id);END IF;END IF;/* NOTE: for JATS, ANTS dependency update, it is expected that all dependencies are removed. */--- Add new dependency ---INSERT INTO PACKAGE_DEPENDENCIES ( pv_id, dpv_id, pkg_id, dpkg_id, build_type )VALUES ( NNpv_id, retPV_ID, NNpkg_id, NNdpkg_id, CCbuild_type );END IF;END Update_Package_Dependency;/---------------------------------------------------------- DDL for Procedure UPDATE_PACKAGE_STATES--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_STATES" ( NNrtag_id IN NUMBER,NNsession_num IN NUMBER ) IS/* ============= STATE RULES =================== *//*MNR MRR MN MR | pkg_state------------------------------------0 0 0 0 | OK0 0 0 1 | MAJOR0 0 1 0 | MINOR0 0 1 1 | MAJOR------------------------------------0 1 0 0 | MAJOR_READY0 1 0 1 | MAJOR0 1 1 0 | MAJOR0 1 1 1 | MAJOR------------------------------------1 0 0 0 | MINOR_READY1 0 0 1 | MAJOR1 0 1 0 | MINOR1 0 1 1 | MAJOR------------------------------------1 1 0 0 | MAJOR_READY1 1 0 1 | MAJOR1 1 1 0 | MAJOR1 1 1 1 | MAJOR------------------------------------*/BEGIN/*----------------------------------------------|| MINOR READY*/----------------------------------------------UPDATE release_contentSET pkg_state = 4WHERE rtag_id = NNrtag_idAND pv_id IN(SELECT DISTINCT pv_idFROM temp_env_statesWHERE session_num = NNsession_numAND level_num = 1AND tes_state = 2);/*----------------------------------------------|| MAJOR READY*/----------------------------------------------UPDATE release_contentSET pkg_state = 3WHERE rtag_id = NNrtag_idAND pv_id IN(SELECT DISTINCT pv_idFROM temp_env_statesWHERE session_num = NNsession_numAND level_num = 1AND tes_state IN (0,1));/*----------------------------------------------|| MINOR*/----------------------------------------------UPDATE release_contentSET pkg_state = 2WHERE rtag_id = NNrtag_idAND pv_id IN(SELECT DISTINCT pv_idFROM temp_env_statesWHERE session_num = NNsession_numAND level_num >= 2AND tes_state = 2MINUSSELECT pv_idFROM release_contentWHERE rtag_id = NNrtag_idAND pkg_state = 3);/*----------------------------------------------|| MAJOR*/----------------------------------------------UPDATE release_contentSET pkg_state = 1WHERE rtag_id = NNrtag_idAND pv_id IN(SELECT DISTINCT pv_idFROM temp_env_statesWHERE session_num = NNsession_numAND level_num >= 2AND tes_state IN (0,1)/* MAJOR EXCEPTION - When package has Major Ready and Minor */UNIONSELECT DISTINCT tes.pv_idFROM temp_env_states tes,release_content rcWHERE tes.session_num = NNsession_numAND tes.level_num >= 2AND tes.tes_state = 2AND rtag_id = NNrtag_idAND rc.pv_id = tes.pv_idAND rc.pkg_state = 3);/*----------------------------------------------|| OK*/----------------------------------------------UPDATE release_contentSET pkg_state = 0WHERE rtag_id = NNrtag_idAND pv_id IN(SELECT rc.pv_idFROM release_content rcWHERE rc.rtag_id = NNrtag_idAND NOT rc.pv_id IN(SELECT DISTINCT pv_idFROM temp_env_states WHERE session_num = NNsession_num));Update_Deprecation_State (NNrtag_id);/*----------------------------------------------|| PEGGED VERSIONS DEPENDENT*/----------------------------------------------UPDATE release_contentSET pkg_state = 10WHERE rtag_id = NNrtag_idAND pv_id IN(SELECT DISTINCT pv_idFROM pegged_versions pegvWHERE pegv.rtag_id = NNrtag_id);/*----------------------------------------------|| ADVISORY RIPPLE*/----------------------------------------------UPDATE release_contentSET pkg_state = 8WHERE rtag_id = NNrtag_idAND pv_id IN(SELECT DISTINCT pv_idFROM advisory_ripple arWHERE ar.rtag_id = NNrtag_id)AND pv_id IN(SELECT DISTINCT pv_idFROM release_content rcWHERE rc.rtag_id = NNrtag_id);/*----------------------------------------------|| SDK Imported*/----------------------------------------------UPDATE release_contentSET pkg_state = 11WHERE rtag_id = NNrtag_idAND sdktag_id is not null;/*----------------------------------------------|| UnBuildable*/----------------------------------------------UPDATE release_contentSET pkg_state = 13WHERE rtag_id = NNrtag_idAND pv_id in (select pv_id from temp_env_states WHERE session_num = NNsession_num AND build_type = 'U');END Update_Package_States;/---------------------------------------------------------- DDL for Procedure UPDATE_PROCESSES--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PROCESSES"ISproc_id NUMBER;/******************************************************************************NAME: DELETE_DO_NOT_RIPPLEPURPOSE: TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGEIS RELEASEDREVISIONS:Ver Date Author Description--------- ---------- --------------- ------------------------------------1.0 21/04/2006 Rupesh Solanki 1. Created this procedure.NOTES:Automatically available Auto Replace Keywords:Object Name: DELETE_DO_NOT_RIPPLESysdate: 21/04/2006Date and Time: 21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PMUsername: (set in TOAD Options, Procedure Editor)Table Name: (set in the "New PL/SQL Object" dialog)******************************************************************************/CURSOR ripple_curISselect proc_id, proc_name, run_as, pkg_owner, is_interface from processes;ripple_rec ripple_cur%ROWTYPE;BEGINOPEN ripple_cur;FETCH ripple_curINTO ripple_rec;WHILE ripple_cur%FOUNDLOOPupdate deployment_manager.processes_configset proc_id = ripple_rec.proc_idwhere pkg_health_tag = ripple_rec.proc_nameand cmd_interface IS NULLand pkg_owner IS NULLand is_interface IS NULL;FETCH ripple_curINTO ripple_rec;END LOOP;END UPDATE_PROCESSES;/---------------------------------------------------------- DDL for Procedure UPDATE_RUNTIME_DEPENDENCY--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_RUNTIME_DEPENDENCY" ( NNpv_id IN RUNTIME_DEPENDENCIES.pv_id%TYPE,NNrtd_id IN RUNTIME_DEPENDENCIES.rtd_id%TYPE,SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,SSrtd_url IN RUNTIME_DEPENDENCIES.rtd_url%TYPE,SSrtd_comments IN RUNTIME_DEPENDENCIES.rtd_comments%TYPE,NNuser_id IN NUMBER ) IS/* ---------------------------------------------------------------------------Version: 3.0.1--------------------------------------------------------------------------- */retRTD_ID NUMBER;CURSOR rtd_cur ISSELECT pv.pkg_version, pkg.pkg_nameFROM runtime_dependencies rtd,package_versions pv,packages pkgWHERE rtd.rtd_id = pv.pv_idAND pv.pkg_id = pkg.pkg_idAND rtd.pv_id = NNpv_idAND rtd.rtd_id = NNrtd_id;rtd_rec rtd_cur%ROWTYPE;CURSOR old_rtd_cur ISSELECT pv.pv_idFROM package_versions pvWHERE pv.pkg_id IN ( SELECT rtdpv.pkg_idFROM package_versions rtdpvWHERE rtdpv.pv_id = NNrtd_id )AND pv.pkg_version = SSrtd_version;old_rtd_rec old_rtd_cur%ROWTYPE;BEGIN-- Get current runtime dependency detailsOPEN rtd_cur;FETCH rtd_cur INTO rtd_rec;IF rtd_rec.pkg_version != SSrtd_version THEN-- Version has changed, hence create new runtime dependency --/* NOTE: You must create new version as updating just a version will affectall packages using this runtime dependency and user does not expect that.It is safer to create new version */OPEN old_rtd_cur;FETCH old_rtd_cur INTO old_rtd_rec;IF old_rtd_cur%NOTFOUNDTHEN-- Version not found, hence Create New version --Seed_Package_Names_Versions ( rtd_rec.pkg_name, SSrtd_version, NNuser_id, retRTD_ID );-- Update runtime dependency table --UPDATE runtime_dependencies SETrtd_id = retRTD_ID,rtd_url = SSrtd_url,rtd_comments = SSrtd_commentsWHERE pv_id = NNpv_idAND rtd_id = NNrtd_id;ELSE-- Update runtime dependency table --UPDATE runtime_dependencies SETrtd_id = old_rtd_rec.pv_id,rtd_url = SSrtd_url,rtd_comments = SSrtd_commentsWHERE pv_id = NNpv_idAND rtd_id = NNrtd_id;END IF;CLOSE old_rtd_cur;ELSE-- Version has not changed, hence update everithing except version --UPDATE runtime_dependencies SETrtd_url = SSrtd_url,rtd_comments = SSrtd_commentsWHERE pv_id = NNpv_idAND rtd_id = NNrtd_id;END IF;CLOSE rtd_cur;END Update_Runtime_Dependency;/---------------------------------------------------------- DDL for Procedure UPDATE_UNIT_TEST--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST" ( nTest_id IN NUMBER,nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,nPv_id IN NUMBER,nUserId IN NUMBER,sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,sNumof_test IN UNIT_TESTS.NUMOF_TEST%TYPE,sCompletion_date IN VARCHAR2,sDpkg_path IN VARCHAR2,enumTEST_TYPE_AUTOMATIC IN NUMBER,sResults IN VARCHAR2,outFileName OUT VARCHAR2) IS/* ---------------------------------------------------------------------------Version: 3.1.0--------------------------------------------------------------------------- */FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;BEGINIF nTestTypeId = enumTEST_TYPE_AUTOMATIC THENResultsURL := sResults;ELSEIF (sResults <> '') OR ( NOT sResults IS NULL ) THENoutFileName := FILENAME_PREFIX || nTest_id ||'_'|| sResults;ResultsAttachment := sDpkg_path || '/' || outFileName;END IF;END IF;--- Update Unit Test ---UPDATE UNIT_TESTS SETTEST_SUMMARY = sTest_summary,NUMOF_TEST = sNumof_test,COMPLETION_DATE = TO_DATE( sCompletion_date,'DD/MM/YYYY' ),COMPLETED_BY = nUserId,RESULTS_URL = ResultsURL,RESULTS_ATTACHMENT_NAME = ResultsAttachmentWHERE TEST_ID = nTest_idAND PV_ID = nPv_id;END Update_Unit_Test;/---------------------------------------------------------- DDL for Procedure UPDATE_UNIT_TEST_ACCEPTANCE--------------------------------------------------------set define off;CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST_ACCEPTANCE" ( pnTest_id IN NUMBER,pnPv_id IN NUMBER,sAccepted IN UNIT_TESTS.TEST_ACCEPTED%TYPE,sAcceptanceDate IN VARCHAR2,sAcceptedBy IN NUMBER,sReviewComments IN UNIT_TESTS.REVIEW_COMMENTS%TYPE,cUpdateAcceptedStateOnly IN CHAR) IS/* ---------------------------------------------------------------------------Version: 3.0.0--------------------------------------------------------------------------- */BEGINIF cUpdateAcceptedStateOnly = 'Y'THEN--- Update Accepted State Only ---IF ( sAccepted IS NULL )THEN-- Clear alleptanceUPDATE UNIT_TESTS SETTEST_ACCEPTED = NULL,ACCEPTANCE_DATE = NULL,ACCEPTED_BY = NULL,REVIEW_COMMENTS = NULLWHERE TEST_ID = pnTest_idAND PV_ID = pnPv_id;ELSEUPDATE UNIT_TESTS SETTEST_ACCEPTED = sAccepted,ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),ACCEPTED_BY = sAcceptedByWHERE TEST_ID = pnTest_idAND PV_ID = pnPv_id;END IF;ELSE--- Update Unit Test Acceptance ---UPDATE UNIT_TESTS SETTEST_ACCEPTED = sAccepted,REVIEW_COMMENTS = sReviewComments,ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),ACCEPTED_BY = sAcceptedByWHERE TEST_ID = pnTest_idAND PV_ID = pnPv_id;END IF;END Update_Unit_Test_Acceptance;/---------------------------------------------------------- DDL for Synonymn APPLICATIONS--------------------------------------------------------CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."APPLICATIONS" FOR "ACCESS_MANAGER"."APPLICATIONS";---------------------------------------------------------- DDL for Synonymn APPLICATION_PAGES--------------------------------------------------------CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."APPLICATION_PAGES" FOR "ACCESS_MANAGER"."APPLICATION_PAGES";---------------------------------------------------------- DDL for Synonymn CONTROL_OBJECTS--------------------------------------------------------CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."CONTROL_OBJECTS";---------------------------------------------------------- DDL for Synonymn DATA_PERMISSIONS--------------------------------------------------------CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."DATA_PERMISSIONS" FOR "ACCESS_MANAGER"."DATA_PERMISSIONS";---------------------------------------------------------- DDL for Synonymn DATA_TABLES--------------------------------------------------------CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."DATA_TABLES" FOR "ACCESS_MANAGER"."DATA_TABLES";---------------------------------------------------------- DDL for Synonymn PAGE_CONTROL_OBJECTS--------------------------------------------------------CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PAGE_CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."PAGE_CONTROL_OBJECTS";---------------------------------------------------------- DDL for Synonymn PERMISSION_TYPES--------------------------------------------------------CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PERMISSION_TYPES" FOR "ACCESS_MANAGER"."PERMISSION_TYPES";---------------------------------------------------------- DDL for Synonymn PK_AMUTILS--------------------------------------------------------CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PK_AMUTILS" FOR "ACCESS_MANAGER"."PK_AMUTILS";---------------------------------------------------------- DDL for Synonymn PK_SECURITY--------------------------------------------------------CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PK_SECURITY" FOR "ACCESS_MANAGER"."PK_SECURITY";---------------------------------------------------------- DDL for Synonymn ROLES--------------------------------------------------------CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."ROLES" FOR "ACCESS_MANAGER"."ROLES";---------------------------------------------------------- DDL for Synonymn ROLE_PRIVILEGES--------------------------------------------------------CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."ROLE_PRIVILEGES" FOR "ACCESS_MANAGER"."ROLE_PRIVILEGES";---------------------------------------------------------- DDL for Synonymn USERS--------------------------------------------------------CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USERS" FOR "ACCESS_MANAGER"."USERS";---------------------------------------------------------- DDL for Synonymn USER_APPLICATIONS--------------------------------------------------------CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USER_APPLICATIONS" FOR "ACCESS_MANAGER"."USER_APPLICATIONS";---------------------------------------------------------- DDL for Synonymn USER_ROLES--------------------------------------------------------CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USER_ROLES" FOR "ACCESS_MANAGER"."USER_ROLES";