Subversion Repositories DevTools

Rev

Rev 7000 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4040 dpurdie 1
--------------------------------------------------------
7039 dpurdie 2
--  File created - Wednesday-May-08-2019   
6999 dpurdie 3
--------------------------------------------------------
4
--------------------------------------------------------
4040 dpurdie 5
--  DDL for Type RELMGR_NUMBER_TAB_T
6
--------------------------------------------------------
1373 dpurdie 7
 
5172 dpurdie 8
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_NUMBER_TAB_T" as TABLE of NUMBER
1373 dpurdie 9
 
6999 dpurdie 10
/
11
--------------------------------------------------------
12
--  DDL for Type RELMGR_PKG_DESTROY_ERR_T
13
--------------------------------------------------------
6031 dpurdie 14
 
15
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_PKG_DESTROY_ERR_T" AS OBJECT 
16
( msg VARCHAR(200),
17
  mtype CHAR(1)
18
)
19
 
6999 dpurdie 20
/
21
--------------------------------------------------------
22
--  DDL for Type RELMGR_PKG_DESTROY_ERR_TAB_T
23
--------------------------------------------------------
6031 dpurdie 24
 
25
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_PKG_DESTROY_ERR_TAB_T" 
26
AS TABLE OF RELMGR_PKG_DESTROY_ERR_T;
27
 
6999 dpurdie 28
/
4040 dpurdie 29
--------------------------------------------------------
30
--  DDL for Type RELMGR_VARCHAR2_TAB_T
31
--------------------------------------------------------
32
 
5172 dpurdie 33
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_VARCHAR2_TAB_T" 
4040 dpurdie 34
as TABLE of VARCHAR2(4000)
35
 
6999 dpurdie 36
/
4040 dpurdie 37
--------------------------------------------------------
38
--  DDL for Type TDICTIONARY
39
--------------------------------------------------------
40
 
5892 dpurdie 41
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."TDICTIONARY" AS
42
  TABLE OF VARCHAR2(4000)
4040 dpurdie 43
 
6999 dpurdie 44
/
4040 dpurdie 45
--------------------------------------------------------
46
--  DDL for Sequence MICROSOFTSEQDTPROPERTIES
47
--------------------------------------------------------
48
 
6999 dpurdie 49
   CREATE SEQUENCE  "RELEASE_MANAGER"."MICROSOFTSEQDTPROPERTIES"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 50 NOORDER  NOCYCLE ;
4040 dpurdie 50
--------------------------------------------------------
51
--  DDL for Sequence SEQ_ADDITIONAL_NOTES
52
--------------------------------------------------------
53
 
6999 dpurdie 54
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_ADDITIONAL_NOTES"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 38175 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 55
--------------------------------------------------------
6999 dpurdie 56
--  DDL for Sequence SEQ_BLAT_MOD
57
--------------------------------------------------------
58
 
59
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BLAT_MOD"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 261 CACHE 20 NOORDER  NOCYCLE ;
60
--------------------------------------------------------
61
--  DDL for Sequence SEQ_BLAT_SERVER_ID
62
--------------------------------------------------------
63
 
64
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BLAT_SERVER_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 81 CACHE 20 NOORDER  NOCYCLE ;
65
--------------------------------------------------------
4040 dpurdie 66
--  DDL for Sequence SEQ_BMCON_ID
67
--------------------------------------------------------
68
 
6999 dpurdie 69
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BMCON_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 361 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 70
--------------------------------------------------------
71
--  DDL for Sequence SEQ_BM_ID
72
--------------------------------------------------------
73
 
6999 dpurdie 74
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BM_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 6 NOCACHE  ORDER  NOCYCLE ;
75
--------------------------------------------------------
76
--  DDL for Sequence SEQ_BSA_ID
77
--------------------------------------------------------
5172 dpurdie 78
 
6999 dpurdie 79
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BSA_ID"  MINVALUE 8 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 48 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 80
--------------------------------------------------------
6999 dpurdie 81
--  DDL for Sequence SEQ_BUILD_INSTANCE
82
--------------------------------------------------------
5172 dpurdie 83
 
7039 dpurdie 84
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BUILD_INSTANCE"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 252972 CACHE 20 ORDER  NOCYCLE ;
6999 dpurdie 85
--------------------------------------------------------
4040 dpurdie 86
--  DDL for Sequence SEQ_CR_ID
87
--------------------------------------------------------
88
 
7039 dpurdie 89
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_CR_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 95472 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 90
--------------------------------------------------------
91
--  DDL for Sequence SEQ_DAEMON_INSTRUCTION_ID
92
--------------------------------------------------------
93
 
7039 dpurdie 94
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_DAEMON_INSTRUCTION_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 180075 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 95
--------------------------------------------------------
96
--  DDL for Sequence SEQ_GBE_ID
97
--------------------------------------------------------
98
 
6999 dpurdie 99
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_GBE_ID"  MINVALUE 40 MAXVALUE 9999999999999999999999990 INCREMENT BY 1 START WITH 1245 NOCACHE  ORDER  NOCYCLE ;
4040 dpurdie 100
--------------------------------------------------------
101
--  DDL for Sequence SEQ_GROUP_EMAIL_ID
102
--------------------------------------------------------
103
 
6999 dpurdie 104
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_GROUP_EMAIL_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999 INCREMENT BY 1 START WITH 1186 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 105
--------------------------------------------------------
106
--  DDL for Sequence SEQ_MSG_ID
107
--------------------------------------------------------
108
 
6999 dpurdie 109
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_MSG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 582 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 110
--------------------------------------------------------
111
--  DDL for Sequence SEQ_PKG_ID
112
--------------------------------------------------------
113
 
7039 dpurdie 114
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PKG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 68263 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 115
--------------------------------------------------------
116
--  DDL for Sequence SEQ_PROJ_ID
117
--------------------------------------------------------
118
 
6999 dpurdie 119
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PROJ_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1041 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 120
--------------------------------------------------------
121
--  DDL for Sequence SEQ_PV_ID
122
--------------------------------------------------------
123
 
7039 dpurdie 124
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PV_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1244788 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 125
--------------------------------------------------------
126
--  DDL for Sequence SEQ_RCON_ID
127
--------------------------------------------------------
128
 
7039 dpurdie 129
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RCON_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 37110 CACHE 20 ORDER  NOCYCLE ;
6999 dpurdie 130
--------------------------------------------------------
131
--  DDL for Sequence SEQ_RELEASE_MOD
132
--------------------------------------------------------
5172 dpurdie 133
 
7039 dpurdie 134
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RELEASE_MOD"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 309203 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 135
--------------------------------------------------------
136
--  DDL for Sequence SEQ_RTAG_ID
137
--------------------------------------------------------
138
 
7039 dpurdie 139
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RTAG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 39911 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 140
--------------------------------------------------------
141
--  DDL for Sequence SEQ_SCHEDULED_ID
142
--------------------------------------------------------
143
 
7039 dpurdie 144
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SCHEDULED_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 30134 CACHE 20 ORDER  NOCYCLE ;
6999 dpurdie 145
--------------------------------------------------------
146
--  DDL for Sequence SEQ_SDKTAG_ID
147
--------------------------------------------------------
5172 dpurdie 148
 
7039 dpurdie 149
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SDKTAG_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1623 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 150
--------------------------------------------------------
6999 dpurdie 151
--  DDL for Sequence SEQ_SDK_ID
152
--------------------------------------------------------
5172 dpurdie 153
 
6999 dpurdie 154
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SDK_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 163 CACHE 20 NOORDER  NOCYCLE ;
155
--------------------------------------------------------
4040 dpurdie 156
--  DDL for Sequence SEQ_SESSION_NUM
157
--------------------------------------------------------
158
 
7039 dpurdie 159
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SESSION_NUM"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1113544 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 160
--------------------------------------------------------
6999 dpurdie 161
--  DDL for Sequence SEQ_TESTRUN_ID
162
--------------------------------------------------------
5892 dpurdie 163
 
7039 dpurdie 164
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_TESTRUN_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 2577583 CACHE 20 NOORDER  NOCYCLE ;
6999 dpurdie 165
--------------------------------------------------------
4040 dpurdie 166
--  DDL for Sequence SEQ_UNIT_TESTS
167
--------------------------------------------------------
168
 
7039 dpurdie 169
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_UNIT_TESTS"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 376316 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 170
--------------------------------------------------------
171
--  DDL for Sequence SEQ_USER_ID
172
--------------------------------------------------------
173
 
6999 dpurdie 174
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_USER_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 3961 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 175
--------------------------------------------------------
176
--  DDL for Sequence SEQ_VCS_TYPE
177
--------------------------------------------------------
178
 
6999 dpurdie 179
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VCS_TYPE"  MINVALUE 1 MAXVALUE 255 INCREMENT BY 1 START WITH 63 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 180
--------------------------------------------------------
181
--  DDL for Sequence SEQ_VIEW_ID
182
--------------------------------------------------------
183
 
6999 dpurdie 184
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VIEW_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 10341 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 185
--------------------------------------------------------
186
--  DDL for Sequence SEQ_VTREE_ID
187
--------------------------------------------------------
188
 
7039 dpurdie 189
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VTREE_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 36590 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 190
--------------------------------------------------------
191
--  DDL for Table ABT_ACTION_LOG
192
--------------------------------------------------------
193
 
5172 dpurdie 194
  CREATE TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" 
4040 dpurdie 195
   (	"RCON_ID" NUMBER, 
196
	"ACTION_DATETIME" DATE, 
5172 dpurdie 197
	"ACTION" VARCHAR2(4000 BYTE)
198
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 199
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
200
 NOCOMPRESS LOGGING
5172 dpurdie 201
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 202
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
203
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
204
  TABLESPACE "RELEASE_MANAGER_DATA" ;
205
  GRANT SELECT ON "RELEASE_MANAGER"."ABT_ACTION_LOG" TO "RM_READONLY";
206
  GRANT SELECT ON "RELEASE_MANAGER"."ABT_ACTION_LOG" TO "MS_READONLY";
6999 dpurdie 207
  GRANT SELECT ON "RELEASE_MANAGER"."ABT_ACTION_LOG" TO "DM_READONLY";
4040 dpurdie 208
--------------------------------------------------------
209
--  DDL for Table ACTION_LOG
210
--------------------------------------------------------
211
 
5172 dpurdie 212
  CREATE TABLE "RELEASE_MANAGER"."ACTION_LOG" 
4040 dpurdie 213
   (	"USER_ID" NUMBER, 
5172 dpurdie 214
	"ACTION_DATETIME" DATE DEFAULT SYSDATE, 
4040 dpurdie 215
	"PV_ID" NUMBER, 
5172 dpurdie 216
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
217
	"ACTTYPE_ID" NUMBER, 
218
	"ACTION_TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP
219
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 220
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
221
 NOCOMPRESS LOGGING
5172 dpurdie 222
  STORAGE(INITIAL 308281344 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 223
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
224
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 225
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 226
 
227
   COMMENT ON COLUMN "RELEASE_MANAGER"."ACTION_LOG"."ACTION_DATETIME" IS 'To be deprecated. Use timestamp instead';
6031 dpurdie 228
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "RM_READONLY";
229
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "MS_READONLY";
5892 dpurdie 230
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "DM_READONLY";
231
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "RELEASE_MANAGER_READ";
6031 dpurdie 232
  GRANT DELETE ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";
233
  GRANT UPDATE ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";
234
  GRANT INSERT ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 235
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 236
--------------------------------------------------------
237
--  DDL for Table ACTION_TYPE
238
--------------------------------------------------------
239
 
5172 dpurdie 240
  CREATE TABLE "RELEASE_MANAGER"."ACTION_TYPE" 
4040 dpurdie 241
   (	"ACTTYPE_ID" NUMBER, 
5172 dpurdie 242
	"NAME" VARCHAR2(255 BYTE), 
243
	"DESCRIPTION" VARCHAR2(4000 BYTE)
244
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 245
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
246
 NOCOMPRESS LOGGING
5172 dpurdie 247
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 248
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
249
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
250
  TABLESPACE "RELEASE_MANAGER_DATA" ;
251
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "RM_READONLY";
252
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "MS_READONLY";
5892 dpurdie 253
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "DM_READONLY";
6999 dpurdie 254
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 255
--------------------------------------------------------
256
--  DDL for Table ADDITIONAL_NOTES
257
--------------------------------------------------------
258
 
5172 dpurdie 259
  CREATE TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" 
4040 dpurdie 260
   (	"NOTE_ID" NUMBER, 
261
	"PV_ID" NUMBER, 
5172 dpurdie 262
	"NOTE_TITLE" VARCHAR2(2000 BYTE), 
263
	"NOTE_BODY" VARCHAR2(4000 BYTE), 
4040 dpurdie 264
	"MOD_DATE" DATE, 
265
	"MOD_USER" NUMBER
5172 dpurdie 266
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 267
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
268
 NOCOMPRESS LOGGING
5172 dpurdie 269
  STORAGE(INITIAL 55574528 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 270
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
271
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
272
  TABLESPACE "RELEASE_MANAGER_DATA" ;
273
  GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "RM_READONLY";
274
  GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "MS_READONLY";
5892 dpurdie 275
  GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "DM_READONLY";
6999 dpurdie 276
  GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 277
--------------------------------------------------------
278
--  DDL for Table ADVISORY_RIPPLE
279
--------------------------------------------------------
280
 
5172 dpurdie 281
  CREATE TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" 
4040 dpurdie 282
   (	"RTAG_ID" NUMBER, 
283
	"PV_ID" NUMBER
5172 dpurdie 284
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 285
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
286
 NOCOMPRESS LOGGING
5172 dpurdie 287
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 288
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
289
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
290
  TABLESPACE "RELEASE_MANAGER_DATA" ;
291
  GRANT SELECT ON "RELEASE_MANAGER"."ADVISORY_RIPPLE" TO "RM_READONLY";
292
  GRANT SELECT ON "RELEASE_MANAGER"."ADVISORY_RIPPLE" TO "MS_READONLY";
6999 dpurdie 293
  GRANT SELECT ON "RELEASE_MANAGER"."ADVISORY_RIPPLE" TO "DM_READONLY";
4040 dpurdie 294
--------------------------------------------------------
295
--  DDL for Table ARCHIVE_ACTION_LOG
296
--------------------------------------------------------
297
 
5172 dpurdie 298
  CREATE TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" 
4040 dpurdie 299
   (	"USER_ID" NUMBER, 
300
	"DATE_TIME_STAMP" DATE, 
301
	"RTAG_ID" NUMBER, 
5172 dpurdie 302
	"DESCRIPTION" VARCHAR2(4000 BYTE)
303
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 304
  PCTFREE 10 PCTUSED 0 INITRANS 1 MAXTRANS 255 
305
 NOCOMPRESS LOGGING
5172 dpurdie 306
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 307
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
308
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
309
  TABLESPACE "RELEASE_MANAGER_DATA" ;
310
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" TO "RM_READONLY";
311
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" TO "MS_READONLY";
6999 dpurdie 312
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" TO "DM_READONLY";
4040 dpurdie 313
--------------------------------------------------------
314
--  DDL for Table ARCHIVE_DATA
315
--------------------------------------------------------
316
 
5172 dpurdie 317
  CREATE TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" 
4040 dpurdie 318
   (	"RTAG_ID" NUMBER(*,0), 
319
	"PV_ID" NUMBER(*,0)
5172 dpurdie 320
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 321
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
322
 NOCOMPRESS LOGGING
5172 dpurdie 323
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 324
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
325
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
326
  TABLESPACE "RELEASE_MANAGER_DATA" ;
327
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_DATA" TO "RM_READONLY";
328
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_DATA" TO "MS_READONLY";
6999 dpurdie 329
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_DATA" TO "DM_READONLY";
4040 dpurdie 330
--------------------------------------------------------
331
--  DDL for Table AUTOBUILD_FAILURE
332
--------------------------------------------------------
333
 
5172 dpurdie 334
  CREATE TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" 
4040 dpurdie 335
   (	"GROUP_EMAIL_ID" NUMBER, 
336
	"PROJ_ID" NUMBER, 
337
	"VIEW_ID" NUMBER
5172 dpurdie 338
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 339
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
340
 NOCOMPRESS LOGGING
5172 dpurdie 341
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 342
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
343
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
344
  TABLESPACE "RELEASE_MANAGER_DATA" ;
345
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "RM_READONLY";
346
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "MS_READONLY";
5892 dpurdie 347
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "DM_READONLY";
6999 dpurdie 348
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 349
--------------------------------------------------------
6999 dpurdie 350
--  DDL for Table BLAT_PROJECTS
351
--------------------------------------------------------
352
 
353
  CREATE TABLE "RELEASE_MANAGER"."BLAT_PROJECTS" 
354
   (	"BLAT_ID" NUMBER, 
355
	"PROJ_ID" NUMBER, 
356
	"BP_ENABLED" CHAR(1 BYTE) DEFAULT 'Y'
357
   ) SEGMENT CREATION IMMEDIATE 
358
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
359
 NOCOMPRESS LOGGING
360
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
361
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
362
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
363
  TABLESPACE "RELEASE_MANAGER_DATA" ;
364
 
365
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_PROJECTS"."BLAT_ID" IS 'Ref into BLAT_SERVERS';
366
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_PROJECTS"."PROJ_ID" IS 'Transfer entire project';
367
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_PROJECTS"."BP_ENABLED" IS 'y: Enabled';
368
--------------------------------------------------------
369
--  DDL for Table BLAT_RELEASES
370
--------------------------------------------------------
371
 
372
  CREATE TABLE "RELEASE_MANAGER"."BLAT_RELEASES" 
373
   (	"BLAT_ID" NUMBER, 
374
	"RTAG_ID" NUMBER, 
375
	"BR_ENABLED" CHAR(1 BYTE) DEFAULT 'Y', 
376
	"BR_EXCLUDE" CHAR(1 BYTE) DEFAULT 'N'
377
   ) SEGMENT CREATION IMMEDIATE 
378
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
379
 NOCOMPRESS LOGGING
380
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
381
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
382
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
383
  TABLESPACE "RELEASE_MANAGER_DATA" ;
384
 
385
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_RELEASES"."BLAT_ID" IS 'Ref into BLAT_SERVERS';
386
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_RELEASES"."RTAG_ID" IS 'RTAG_ID to transfer';
387
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_RELEASES"."BR_ENABLED" IS 'y:Enabled';
388
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_RELEASES"."BR_EXCLUDE" IS 'N:Include, else Exclude';
389
--------------------------------------------------------
390
--  DDL for Table BLAT_SERVERS
391
--------------------------------------------------------
392
 
393
  CREATE TABLE "RELEASE_MANAGER"."BLAT_SERVERS" 
394
   (	"BLAT_ID" NUMBER, 
395
	"BLAT_SERVER_NAME" NVARCHAR2(100), 
396
	"BLAT_DISPLAY_NAME" VARCHAR2(20 BYTE), 
397
	"BLAT_DESCRIPTION" VARCHAR2(1000 BYTE), 
398
	"BLAT_ENABLE" CHAR(1 BYTE) DEFAULT 'Y', 
399
	"BLAT_MODE" CHAR(1 BYTE) DEFAULT 'N', 
400
	"BLAT_TIMESTAMP" TIMESTAMP (6), 
401
	"BLAT_SEQNUM" NUMBER DEFAULT 0
402
   ) SEGMENT CREATION IMMEDIATE 
403
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
404
 NOCOMPRESS LOGGING
405
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
406
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
407
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
408
  TABLESPACE "RELEASE_MANAGER_DATA" ;
409
 
410
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_SERVERS"."BLAT_ID" IS 'Unique ID';
411
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_SERVERS"."BLAT_SERVER_NAME" IS 'Name of the Blat server';
412
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_SERVERS"."BLAT_DISPLAY_NAME" IS 'Name displayed to the user';
413
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_SERVERS"."BLAT_DESCRIPTION" IS 'A field of comments';
414
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_SERVERS"."BLAT_ENABLE" IS 'Y:Enabled';
415
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_SERVERS"."BLAT_MODE" IS 'n:Normal, p:All Projects, E: Entire Archive';
416
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_SERVERS"."BLAT_TIMESTAMP" IS 'Time of config chnage';
417
   COMMENT ON COLUMN "RELEASE_MANAGER"."BLAT_SERVERS"."BLAT_SEQNUM" IS 'Indicated config has changed';
418
--------------------------------------------------------
4040 dpurdie 419
--  DDL for Table BUILD_ENVIRONMENTS
420
--------------------------------------------------------
421
 
5172 dpurdie 422
  CREATE TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" 
4040 dpurdie 423
   (	"BE_ID" NUMBER, 
5172 dpurdie 424
	"BE_NAME" VARCHAR2(255 BYTE)
425
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 426
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
427
 NOCOMPRESS LOGGING
5172 dpurdie 428
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 429
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
430
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
431
  TABLESPACE "RELEASE_MANAGER_DATA" ;
432
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "RM_READONLY";
433
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "MS_READONLY";
5892 dpurdie 434
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DM_READONLY";
435
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "RELEASE_MANAGER_READ";
6031 dpurdie 436
  GRANT UPDATE ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";
437
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";
438
  GRANT INSERT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 439
  GRANT DELETE ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 440
--------------------------------------------------------
441
--  DDL for Table BUILD_ENV_DOCUMENTS
442
--------------------------------------------------------
443
 
5172 dpurdie 444
  CREATE TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" 
4040 dpurdie 445
   (	"BE_ID" NUMBER, 
5172 dpurdie 446
	"DOC_NUM" VARCHAR2(255 BYTE)
447
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 448
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
449
 NOCOMPRESS LOGGING
5172 dpurdie 450
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 451
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
452
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
453
  TABLESPACE "RELEASE_MANAGER_DATA" ;
454
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "RM_READONLY";
455
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "MS_READONLY";
5892 dpurdie 456
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "DM_READONLY";
6999 dpurdie 457
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "RELEASE_MANAGER_READ";
458
--------------------------------------------------------
459
--  DDL for Table BUILD_INSTANCES
460
--------------------------------------------------------
5172 dpurdie 461
 
462
  CREATE TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" 
463
   (	"BUILD_ID" NUMBER, 
464
	"RTAG_ID" NUMBER, 
465
	"PV_ID" NUMBER, 
466
	"TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP, 
467
	"REASON" CHAR(1 BYTE), 
468
	"STATE" CHAR(1 BYTE) DEFAULT 'B'
469
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 470
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
471
 NOCOMPRESS LOGGING
5172 dpurdie 472
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 473
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
474
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 475
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 476
 
477
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."BUILD_ID" IS 'Unique. Auto generated when row is created.';
478
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."RTAG_ID" IS 'Link the build to a Release';
479
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."PV_ID" IS 'Link the build to a Package';
480
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."TIMESTAMP" IS 'When the instance is created';
481
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."REASON" IS 'Reason for the build. Ripple(''R''), Test(''T''), NewVersion(''N''), Restore(''P'')';
6999 dpurdie 482
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."STATE" IS 'Result of the build. ''B'', ''Buiding'', ''C'', ''Complete'', ''E'', ''Error'', ''S'', ''SysErr''';
4040 dpurdie 483
--------------------------------------------------------
484
--  DDL for Table BUILD_MACHINES
485
--------------------------------------------------------
486
 
5172 dpurdie 487
  CREATE TABLE "RELEASE_MANAGER"."BUILD_MACHINES" 
4040 dpurdie 488
   (	"BM_ID" NUMBER, 
5172 dpurdie 489
	"BM_NAME" VARCHAR2(20 BYTE)
490
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 491
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
492
 NOCOMPRESS LOGGING
5172 dpurdie 493
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 494
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
495
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
496
  TABLESPACE "RELEASE_MANAGER_DATA" ;
497
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "RM_READONLY";
498
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "MS_READONLY";
5892 dpurdie 499
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "DM_READONLY";
6999 dpurdie 500
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 501
--------------------------------------------------------
502
--  DDL for Table BUILD_MACHINE_CONFIG
503
--------------------------------------------------------
504
 
5172 dpurdie 505
  CREATE TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" 
4040 dpurdie 506
   (	"BMCON_ID" NUMBER, 
5172 dpurdie 507
	"DISPLAY_NAME" VARCHAR2(50 BYTE), 
508
	"MACHINE_HOSTNAME" VARCHAR2(50 BYTE), 
509
	"DESCRIPTION" VARCHAR2(512 BYTE), 
510
	"GBE_ID" NUMBER, 
511
	"ACTIVE" CHAR(1 BYTE) DEFAULT 'Y'
512
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 513
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
514
 NOCOMPRESS LOGGING
5172 dpurdie 515
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 516
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
517
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 518
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 519
 
520
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG"."ACTIVE" IS 'Allows user to select deamon, otherwise its not shown unless already in use.';
6031 dpurdie 521
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "RM_READONLY";
522
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "MS_READONLY";
5892 dpurdie 523
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "DM_READONLY";
6999 dpurdie 524
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 525
--------------------------------------------------------
526
--  DDL for Table BUILD_ORDER
527
--------------------------------------------------------
528
 
5172 dpurdie 529
  CREATE TABLE "RELEASE_MANAGER"."BUILD_ORDER" 
4040 dpurdie 530
   (	"RTAG_ID" NUMBER, 
531
	"STEP_NUM" NUMBER, 
532
	"PV_ID" NUMBER, 
5172 dpurdie 533
	"UNRESOLVED" CHAR(1 BYTE)
534
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 535
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
536
 NOCOMPRESS LOGGING
5172 dpurdie 537
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 538
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
539
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
540
  TABLESPACE "RELEASE_MANAGER_DATA" ;
541
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "RM_READONLY";
542
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "MS_READONLY";
5892 dpurdie 543
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "DM_READONLY";
6999 dpurdie 544
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "RELEASE_MANAGER_READ";
545
--------------------------------------------------------
546
--  DDL for Table BUILD_PLAN
547
--------------------------------------------------------
5892 dpurdie 548
 
549
  CREATE TABLE "RELEASE_MANAGER"."BUILD_PLAN" 
550
   (	"RTAG_ID" NUMBER, 
551
	"BUILD_ORDER" NUMBER, 
552
	"PV_ID" NUMBER
553
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 554
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
555
 NOCOMPRESS LOGGING
5892 dpurdie 556
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 557
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
558
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 559
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5892 dpurdie 560
 
561
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_PLAN"."RTAG_ID" IS 'Identify target Release';
562
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_PLAN"."BUILD_ORDER" IS 'Sequence for build';
6999 dpurdie 563
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_PLAN"."PV_ID" IS 'Package to build';
4040 dpurdie 564
--------------------------------------------------------
565
--  DDL for Table BUILD_SERVICE_CONFIG
566
--------------------------------------------------------
567
 
5172 dpurdie 568
  CREATE TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" 
569
   (	"SERVICE" VARCHAR2(50 BYTE), 
570
	"CONFIG" VARCHAR2(2000 BYTE)
571
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 572
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
573
 NOCOMPRESS LOGGING
5172 dpurdie 574
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 575
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
576
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
577
  TABLESPACE "RELEASE_MANAGER_DATA" ;
578
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "RM_READONLY";
579
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "MS_READONLY";
5892 dpurdie 580
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "DM_READONLY";
6999 dpurdie 581
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 582
--------------------------------------------------------
583
--  DDL for Table BUILD_STANDARDS
584
--------------------------------------------------------
585
 
5172 dpurdie 586
  CREATE TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" 
4040 dpurdie 587
   (	"BS_ID" NUMBER, 
5172 dpurdie 588
	"BS_NAME" VARCHAR2(20 BYTE)
589
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 590
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
591
 NOCOMPRESS LOGGING
5172 dpurdie 592
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 593
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
594
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
595
  TABLESPACE "RELEASE_MANAGER_DATA" ;
596
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "RM_READONLY";
597
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "MS_READONLY";
5892 dpurdie 598
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "DM_READONLY";
6999 dpurdie 599
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 600
--------------------------------------------------------
601
--  DDL for Table BUILD_STANDARDS_ADDENDUM
602
--------------------------------------------------------
603
 
5172 dpurdie 604
  CREATE TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" 
4040 dpurdie 605
   (	"BSA_ID" NUMBER, 
5172 dpurdie 606
	"BSA_NAME" VARCHAR2(4000 BYTE), 
4040 dpurdie 607
	"BS_ID" NUMBER
5172 dpurdie 608
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 609
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
610
 NOCOMPRESS LOGGING
5172 dpurdie 611
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 612
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
613
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
614
  TABLESPACE "RELEASE_MANAGER_DATA" ;
615
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "RM_READONLY";
616
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "MS_READONLY";
5892 dpurdie 617
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "DM_READONLY";
6999 dpurdie 618
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 619
--------------------------------------------------------
620
--  DDL for Table CODE_REVIEWS
621
--------------------------------------------------------
622
 
5172 dpurdie 623
  CREATE TABLE "RELEASE_MANAGER"."CODE_REVIEWS" 
4040 dpurdie 624
   (	"PV_ID" NUMBER, 
625
	"DATE_OF_REVIEW" DATE, 
626
	"TIME_SPENT" FLOAT(126), 
5172 dpurdie 627
	"REVIEW_REASON" VARCHAR2(4000 BYTE), 
628
	"RTEAM_DOMAIN_EXPERT" VARCHAR2(4000 BYTE), 
629
	"RTEAM_LANGUAGE_EXPERT" VARCHAR2(4000 BYTE), 
630
	"RTEAM_PEER_DEVELOPER" VARCHAR2(4000 BYTE), 
631
	"RTEAM_AUTHOR" VARCHAR2(4000 BYTE), 
632
	"FILES_REVIEWED" VARCHAR2(4000 BYTE), 
4040 dpurdie 633
	"REVIEW_RESULTS" NUMBER, 
5172 dpurdie 634
	"ISSUES_RAISED" VARCHAR2(4000 BYTE), 
635
	"REVIEW_COMMENTS" VARCHAR2(4000 BYTE), 
636
	"FNC_S_MEETS_FUNCTIONALITY" CHAR(1 BYTE), 
637
	"FNC_C_MEETS_FUNCTIONALITY" VARCHAR2(4000 BYTE), 
638
	"RBS_S_BOUND_COND_HANDLED" CHAR(1 BYTE), 
639
	"RBS_C_BOUND_COND_HANDLED" VARCHAR2(4000 BYTE), 
640
	"RBS_S_CLASS_INTERF_PRECOND" CHAR(1 BYTE), 
641
	"RBS_C_CLASS_INTERF_PRECOND" VARCHAR2(4000 BYTE), 
642
	"RBS_S_NO_UNITIALISED_DATE" CHAR(1 BYTE), 
643
	"RBS_C_NO_UNITIALISED_DATE" VARCHAR2(4000 BYTE), 
644
	"RBS_S_EXCEP_HANDING" CHAR(1 BYTE), 
645
	"RBS_C_EXCEP_HANDING" VARCHAR2(4000 BYTE), 
646
	"RBS_S_RESOURCE_MNG" CHAR(1 BYTE), 
647
	"RBS_C_RESOURCE_MNG" VARCHAR2(4000 BYTE), 
648
	"RBS_S_TRANS_COMPLET" CHAR(1 BYTE), 
649
	"RBS_C_TRANS_COMPLET" VARCHAR2(4000 BYTE), 
650
	"RBS_S_THREADSAFETY" CHAR(1 BYTE), 
651
	"RBS_C_THREADSAFETY" VARCHAR2(4000 BYTE), 
652
	"RBS_S_RET_VALS" CHAR(1 BYTE), 
653
	"RBS_C_RET_VALS" VARCHAR2(4000 BYTE), 
654
	"RBS_S_CORR_ERR_HANDLING" CHAR(1 BYTE), 
655
	"RBS_C_CORR_ERR_HANDLING" VARCHAR2(4000 BYTE), 
656
	"RBS_S_SQL_STD" CHAR(1 BYTE), 
657
	"RBS_C_SQL_STD" VARCHAR2(4000 BYTE), 
658
	"MNT_S_EXT_REF" CHAR(1 BYTE), 
659
	"MNT_C_EXT_REF" VARCHAR2(4000 BYTE), 
660
	"MNT_S_CLASS_SIZE" CHAR(1 BYTE), 
661
	"MNT_C_CLASS_SIZE" VARCHAR2(4000 BYTE), 
662
	"MNT_S_METHOD_SIZE" CHAR(1 BYTE), 
663
	"MNT_C_METHOD_SIZE" VARCHAR2(4000 BYTE), 
664
	"MNT_S_APPROP_COMM" CHAR(1 BYTE), 
665
	"MNT_C_APPROP_COMM" VARCHAR2(4000 BYTE), 
666
	"MNT_S_IDENT_NAME_STD" CHAR(1 BYTE), 
667
	"MNT_C_IDENT_NAME_STD" VARCHAR2(4000 BYTE), 
668
	"MNT_S_SWITCH_HAVE_DEFAULTS" CHAR(1 BYTE), 
669
	"MNT_C_SWITCH_HAVE_DEFAULTS" VARCHAR2(4000 BYTE), 
670
	"MNT_S_NO_LIT_NUM" CHAR(1 BYTE), 
671
	"MNT_C_NO_LIT_NUM" VARCHAR2(4000 BYTE), 
672
	"MNT_S_NO_DEAD_CODE" CHAR(1 BYTE), 
673
	"MNT_C_NO_DEAD_CODE" VARCHAR2(4000 BYTE), 
674
	"DEI_S_STD_DES_PATT" CHAR(1 BYTE), 
675
	"DEI_C_STD_DES_PATT" VARCHAR2(4000 BYTE), 
676
	"DEI_S_APPROP_ALGOR" CHAR(1 BYTE), 
677
	"DEI_C_APPROP_ALGOR" VARCHAR2(4000 BYTE), 
678
	"DEI_S_APPROP_OBJ" CHAR(1 BYTE), 
679
	"DEI_C_APPROP_OBJ" VARCHAR2(4000 BYTE), 
680
	"DEI_S_APPROP_ERR_MSG" CHAR(1 BYTE), 
681
	"DEI_C_APPROP_ERR_MSG" VARCHAR2(4000 BYTE), 
682
	"DEI_S_STD_FRAMEW_COMP" CHAR(1 BYTE), 
683
	"DEI_C_STD_FRAMEW_COMP" VARCHAR2(4000 BYTE), 
684
	"DEI_S_APPROP_LOGGING" CHAR(1 BYTE), 
685
	"DEI_C_APPROP_LOGGING" VARCHAR2(4000 BYTE)
686
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 687
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
688
 NOCOMPRESS LOGGING
5172 dpurdie 689
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 690
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
691
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
692
  TABLESPACE "RELEASE_MANAGER_DATA" ;
693
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "RM_READONLY";
694
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "MS_READONLY";
5892 dpurdie 695
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "DM_READONLY";
6999 dpurdie 696
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 697
--------------------------------------------------------
698
--  DDL for Table CODE_REVIEW_URL
699
--------------------------------------------------------
700
 
5172 dpurdie 701
  CREATE TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" 
4040 dpurdie 702
   (	"CR_ID" NUMBER, 
703
	"PV_ID" NUMBER, 
704
	"PROJ_ID" NUMBER, 
5172 dpurdie 705
	"URL" VARCHAR2(4000 BYTE), 
706
	"REASON" VARCHAR2(4000 BYTE), 
4040 dpurdie 707
	"DATE_OF_REVIEW" DATE, 
708
	"LAST_MODIFIED" DATE
5172 dpurdie 709
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 710
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
711
 NOCOMPRESS LOGGING
5172 dpurdie 712
  STORAGE(INITIAL 983040 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 713
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
714
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
715
  TABLESPACE "RELEASE_MANAGER_DATA" ;
716
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEW_URL" TO "RM_READONLY";
717
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEW_URL" TO "MS_READONLY";
6999 dpurdie 718
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEW_URL" TO "DM_READONLY";
4040 dpurdie 719
--------------------------------------------------------
6999 dpurdie 720
--  DDL for Table CQ_HISTORY
721
--------------------------------------------------------
4585 dpurdie 722
 
5172 dpurdie 723
  CREATE TABLE "RELEASE_MANAGER"."CQ_HISTORY" 
4585 dpurdie 724
   (	"DBID" NUMBER(10,0), 
725
	"ENTITY_DBID" NUMBER(10,0), 
726
	"ENTITYDEF_ID" NUMBER(10,0), 
727
	"ENTITYDEF_NAME" VARCHAR2(30 CHAR), 
728
	"ACTION_TIMESTAMP" DATE, 
729
	"USER_NAME" VARCHAR2(30 CHAR), 
730
	"ACTION_NAME" VARCHAR2(30 CHAR), 
731
	"OLD_STATE" VARCHAR2(30 CHAR), 
732
	"NEW_STATE" VARCHAR2(30 CHAR), 
733
	"EXPIRED_TIMESTAMP" DATE
5172 dpurdie 734
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 735
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
736
 NOCOMPRESS LOGGING
5172 dpurdie 737
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 738
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
739
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
740
  TABLESPACE "RELEASE_MANAGER_DATA" ;
741
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "RM_READONLY";
742
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "MS_READONLY";
5892 dpurdie 743
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "DM_READONLY";
744
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 745
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "ACCESS_MANAGER";
746
--------------------------------------------------------
4040 dpurdie 747
--  DDL for Table CQ_ISSUES
748
--------------------------------------------------------
749
 
5172 dpurdie 750
  CREATE TABLE "RELEASE_MANAGER"."CQ_ISSUES" 
4040 dpurdie 751
   (	"PV_ID" NUMBER, 
752
	"ISS_DB" NUMBER, 
753
	"ISS_ID" NUMBER, 
754
	"ISS_STATE" NUMBER, 
755
	"MOD_DATE" DATE, 
5172 dpurdie 756
	"NOTES" VARCHAR2(255 BYTE)
757
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 758
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
759
 NOCOMPRESS LOGGING
5172 dpurdie 760
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 761
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
762
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
763
  TABLESPACE "RELEASE_MANAGER_DATA" ;
764
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "RM_READONLY";
765
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "MS_READONLY";
5892 dpurdie 766
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "DM_READONLY";
767
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "RELEASE_MANAGER_READ";
6999 dpurdie 768
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "DEPLOYMENT_MANAGER";
769
--------------------------------------------------------
770
--  DDL for Table CQ_SOFTWARE_ISSUE
771
--------------------------------------------------------
4585 dpurdie 772
 
5172 dpurdie 773
  CREATE TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" 
4585 dpurdie 774
   (	"RATL_MASTERSHIP" NUMBER(10,0), 
775
	"DBID" NUMBER(10,0), 
776
	"IS_ACTIVE" NUMBER(10,0), 
777
	"ID" VARCHAR2(13 CHAR), 
778
	"STATE" NUMBER(10,0), 
779
	"VERSION" NUMBER(10,0), 
780
	"LOCK_VERSION" NUMBER(10,0), 
781
	"LOCKED_BY" NUMBER(10,0), 
782
	"IS_DUPLICATE" NUMBER(10,0), 
783
	"UNDUPLICATE_STATE" VARCHAR2(50 CHAR), 
784
	"HEADLINE" VARCHAR2(150 CHAR), 
785
	"DESCRIPTION" CLOB, 
786
	"PRIORITY" VARCHAR2(50 CHAR), 
787
	"SUBMITTER" NUMBER(10,0), 
788
	"SUBMIT_DATE" DATE, 
789
	"OWNER" NUMBER(10,0), 
790
	"APPROVER" NUMBER(10,0), 
791
	"NOTE_ENTRY" CLOB, 
792
	"NOTES_LOG" CLOB, 
793
	"RESOLUTION_DATE" DATE, 
794
	"ISSUE_TYPE" VARCHAR2(50 CHAR), 
795
	"PACKAGE_REF" VARCHAR2(50 CHAR), 
796
	"SOLUTION_APPROVED_DATE" DATE, 
797
	"CLOSE_DATE" DATE, 
798
	"BUILD_NUMBER" VARCHAR2(50 CHAR), 
799
	"NEW_NUM" VARCHAR2(50 CHAR), 
800
	"FOR_INFORMATION" CLOB, 
801
	"PROP_SOL_DATE" DATE, 
802
	"ARTIFACTS_TO_BE_UPDATED_1" CLOB, 
803
	"ISSUE_ID" NUMBER(10,0), 
804
	"SOLUTION_DATE" DATE, 
805
	"KPI_SOLUTION_DATE" DATE, 
806
	"TITLE" VARCHAR2(80 CHAR), 
807
	"PROJECT" VARCHAR2(50 CHAR), 
808
	"ORIGINATING_AREA" VARCHAR2(50 CHAR), 
809
	"ESTIMATED_TIME_INHOURS" NUMBER(10,0), 
810
	"RELEASE_PART1" NUMBER(10,0), 
811
	"RELEASE_PART2" NUMBER(10,0), 
812
	"RELEASE_PART3" NUMBER(10,0), 
813
	"SOLUTION_RELEASE_PART1" NUMBER(10,0), 
814
	"SOLUTION_RELEASE_PART2" NUMBER(10,0), 
815
	"SOLUTION_RELEASE_PART3" NUMBER(10,0), 
816
	"ORIGINAL_IMPLEMENT_DATE" DATE, 
817
	"ISSUE_LABEL" VARCHAR2(50 CHAR), 
818
	"PRODUCT" VARCHAR2(50 CHAR), 
819
	"ORIGIN" VARCHAR2(50 CHAR), 
820
	"CLONE_NOTE" CLOB, 
821
	"SOLUTION_LABEL" VARCHAR2(50 CHAR), 
822
	"REQUIRED_BY" DATE, 
823
	"ITERATION_AFFECTED" VARCHAR2(50 CHAR), 
824
	"MERGE_OLD_ID" VARCHAR2(150 CHAR), 
825
	"COMMENTS" CLOB, 
826
	"CHANGE_CONTROL" VARCHAR2(50 CHAR), 
827
	"MERGE_COMMENTS" CLOB, 
828
	"MERGE_CHANGE_CONTROL" VARCHAR2(50 CHAR), 
829
	"AWAITING_INFO_DESC" CLOB, 
830
	"REQUEST_CLOSE_DESC" CLOB, 
831
	"ROOT_CAUSE" VARCHAR2(50 CHAR), 
832
	"FLAGA" VARCHAR2(50 CHAR), 
833
	"FLAGB" VARCHAR2(50 CHAR), 
834
	"FLAGC" VARCHAR2(50 CHAR), 
835
	"SCHEDULED_RELEASE" VARCHAR2(60 CHAR), 
836
	"SEVERITY" VARCHAR2(50 CHAR), 
837
	"CUSTOM_FIELD_01" CLOB, 
838
	"CUSTOM_FIELD_02" CLOB, 
839
	"CUSTOM_FIELD_03" CLOB, 
840
	"CUSTOMER_REFERENCE" VARCHAR2(254 CHAR), 
841
	"TEAMLEADER" NUMBER(10,0), 
842
	"WIP" CLOB, 
843
	"RELEASEINFO" CLOB, 
844
	"SBOM" VARCHAR2(254 CHAR), 
845
	"NEW_EXTERNAL_NOTE" CLOB, 
846
	"EXTERNAL_NOTE_LOG" CLOB, 
847
	"CUSTOMER_REFERENCE_2" VARCHAR2(50 CHAR), 
848
	"CUSTOMER_REFERENCE_3" VARCHAR2(50 CHAR), 
849
	"CUSTOMER_REFERENCE_4" VARCHAR2(50 CHAR), 
850
	"CUSTOMER_REFERENCE_5" VARCHAR2(50 CHAR), 
851
	"TEST_CASES" CLOB, 
852
	"INTEGRATION_NOTES" CLOB, 
853
	"UPDATED_DESIGN_NOTES" VARCHAR2(50 CHAR), 
854
	"RELATED_DATABASE_PATCHES" VARCHAR2(50 CHAR), 
855
	"AFFECTED_PACKAGES" VARCHAR2(50 CHAR), 
856
	"CODEREVIEW_REFERENCE" CLOB, 
857
	"RISK" VARCHAR2(50 CHAR), 
858
	"DEPENDANT_DEVIS" VARCHAR2(50 CHAR), 
859
	"CUSTOM_FIELD_04" CLOB, 
860
	"CUSTOM_FIELD_05" CLOB, 
861
	"ITERATION_FOUND" VARCHAR2(50 CHAR)
5172 dpurdie 862
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 863
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
864
 NOCOMPRESS LOGGING
5172 dpurdie 865
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 866
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
867
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
868
  TABLESPACE "RELEASE_MANAGER_DATA" 
5172 dpurdie 869
 LOB ("DESCRIPTION") STORE AS BASICFILE (
6031 dpurdie 870
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 871
  NOCACHE LOGGING 
872
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 873
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
874
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 875
 LOB ("NOTE_ENTRY") STORE AS BASICFILE (
6031 dpurdie 876
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 877
  NOCACHE LOGGING 
878
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 879
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
880
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 881
 LOB ("NOTES_LOG") STORE AS BASICFILE (
6031 dpurdie 882
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 883
  NOCACHE LOGGING 
884
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 885
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
886
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 887
 LOB ("FOR_INFORMATION") STORE AS BASICFILE (
6031 dpurdie 888
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 889
  NOCACHE LOGGING 
890
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 891
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
892
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 893
 LOB ("ARTIFACTS_TO_BE_UPDATED_1") STORE AS BASICFILE (
6031 dpurdie 894
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 895
  NOCACHE LOGGING 
896
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 897
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
898
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 899
 LOB ("CLONE_NOTE") STORE AS BASICFILE (
6031 dpurdie 900
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 901
  NOCACHE LOGGING 
902
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 903
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
904
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 905
 LOB ("COMMENTS") STORE AS BASICFILE (
6031 dpurdie 906
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 907
  NOCACHE LOGGING 
908
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 909
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
910
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 911
 LOB ("MERGE_COMMENTS") STORE AS BASICFILE (
6031 dpurdie 912
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 913
  NOCACHE LOGGING 
914
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 915
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
916
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 917
 LOB ("AWAITING_INFO_DESC") STORE AS BASICFILE (
6031 dpurdie 918
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 919
  NOCACHE LOGGING 
920
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 921
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
922
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 923
 LOB ("REQUEST_CLOSE_DESC") STORE AS BASICFILE (
6031 dpurdie 924
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 925
  NOCACHE LOGGING 
926
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 927
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
928
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 929
 LOB ("CUSTOM_FIELD_01") STORE AS BASICFILE (
6031 dpurdie 930
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 931
  NOCACHE LOGGING 
932
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 933
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
934
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 935
 LOB ("CUSTOM_FIELD_02") STORE AS BASICFILE (
6031 dpurdie 936
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 937
  NOCACHE LOGGING 
938
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 939
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
940
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 941
 LOB ("CUSTOM_FIELD_03") STORE AS BASICFILE (
6031 dpurdie 942
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 943
  NOCACHE LOGGING 
944
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 945
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
946
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 947
 LOB ("WIP") STORE AS BASICFILE (
6031 dpurdie 948
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 949
  NOCACHE LOGGING 
950
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 951
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
952
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 953
 LOB ("RELEASEINFO") STORE AS BASICFILE (
6031 dpurdie 954
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 955
  NOCACHE LOGGING 
956
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 957
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
958
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 959
 LOB ("NEW_EXTERNAL_NOTE") STORE AS BASICFILE (
6031 dpurdie 960
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 961
  NOCACHE LOGGING 
962
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 963
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
964
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 965
 LOB ("EXTERNAL_NOTE_LOG") STORE AS BASICFILE (
6031 dpurdie 966
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 967
  NOCACHE LOGGING 
968
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 969
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
970
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 971
 LOB ("TEST_CASES") STORE AS BASICFILE (
6031 dpurdie 972
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 973
  NOCACHE LOGGING 
974
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 975
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
976
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 977
 LOB ("INTEGRATION_NOTES") STORE AS BASICFILE (
6031 dpurdie 978
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 979
  NOCACHE LOGGING 
980
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 981
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
982
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 983
 LOB ("CODEREVIEW_REFERENCE") STORE AS BASICFILE (
6031 dpurdie 984
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 985
  NOCACHE LOGGING 
986
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 987
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
988
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 989
 LOB ("CUSTOM_FIELD_04") STORE AS BASICFILE (
6031 dpurdie 990
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 991
  NOCACHE LOGGING 
992
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 993
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
994
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 995
 LOB ("CUSTOM_FIELD_05") STORE AS BASICFILE (
6031 dpurdie 996
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 997
  NOCACHE LOGGING 
998
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 999
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1000
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
1001
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "RM_READONLY";
1002
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "MS_READONLY";
5892 dpurdie 1003
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "DM_READONLY";
1004
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 1005
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "ACCESS_MANAGER";
1006
--------------------------------------------------------
1007
--  DDL for Table CQ_STATEDEF
1008
--------------------------------------------------------
4585 dpurdie 1009
 
5172 dpurdie 1010
  CREATE TABLE "RELEASE_MANAGER"."CQ_STATEDEF" 
4585 dpurdie 1011
   (	"ID" NUMBER(10,0), 
1012
	"PACKAGE_OWNERSHIP" NUMBER(10,0), 
1013
	"NAME" VARCHAR2(255 CHAR), 
1014
	"ENTITYDEF_ID" NUMBER(10,0), 
1015
	"ORDINAL" NUMBER(10,0)
5172 dpurdie 1016
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1017
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1018
 NOCOMPRESS LOGGING
5172 dpurdie 1019
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1020
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1021
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1022
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1023
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "RM_READONLY";
1024
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "MS_READONLY";
5892 dpurdie 1025
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "DM_READONLY";
1026
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 1027
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "ACCESS_MANAGER";
1028
--------------------------------------------------------
1029
--  DDL for Table CQ_USERS
1030
--------------------------------------------------------
4585 dpurdie 1031
 
5172 dpurdie 1032
  CREATE TABLE "RELEASE_MANAGER"."CQ_USERS" 
1033
   (	"DBID" VARCHAR2(8 BYTE), 
1034
	"LOGIN_NAME" VARCHAR2(17 BYTE), 
1035
	"FULLNAME" VARCHAR2(30 BYTE)
1036
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1037
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1038
 NOCOMPRESS LOGGING
5172 dpurdie 1039
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1040
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1041
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1042
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1043
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "RM_READONLY";
1044
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "MS_READONLY";
5892 dpurdie 1045
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "DM_READONLY";
1046
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 1047
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "ACCESS_MANAGER";
4040 dpurdie 1048
--------------------------------------------------------
1049
--  DDL for Table DAEMON_ACTION_LOG
1050
--------------------------------------------------------
1051
 
5172 dpurdie 1052
  CREATE TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" 
4040 dpurdie 1053
   (	"USER_ID" NUMBER, 
1054
	"ACTION_DATETIME" DATE, 
1055
	"RCON_ID" NUMBER, 
5172 dpurdie 1056
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1057
	"ACTTYPE_ID" NUMBER
5172 dpurdie 1058
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1059
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1060
 NOCOMPRESS LOGGING
5172 dpurdie 1061
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1062
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1063
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1064
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1065
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_ACTION_LOG" TO "RM_READONLY";
1066
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_ACTION_LOG" TO "MS_READONLY";
6999 dpurdie 1067
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_ACTION_LOG" TO "DM_READONLY";
4040 dpurdie 1068
--------------------------------------------------------
1069
--  DDL for Table DAEMON_INSTRUCTIONS
1070
--------------------------------------------------------
1071
 
5172 dpurdie 1072
  CREATE TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" 
4040 dpurdie 1073
   (	"DAEMON_INSTRUCTIONS_ID" NUMBER, 
1074
	"OP_CODE" NUMBER(*,0), 
1075
	"RTAG_ID" NUMBER, 
1076
	"PV_ID" NUMBER, 
1077
	"SCHEDULED_DATETIME" DATE, 
1078
	"REPEAT_SECS" NUMBER(*,0), 
1079
	"ADDED_DATETIME" DATE, 
1080
	"USER_ID" NUMBER, 
5172 dpurdie 1081
	"IN_PROGRESS" CHAR(1 BYTE)
1082
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1083
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1084
 NOCOMPRESS LOGGING
5172 dpurdie 1085
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1086
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1087
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1088
  TABLESPACE "RELEASE_MANAGER_DATA" ;
4040 dpurdie 1089
 
5172 dpurdie 1090
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."OP_CODE" IS 'The instruction op-code';
1091
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."SCHEDULED_DATETIME" IS 'The datetime after which the instruction can be carried out.';
1092
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."REPEAT_SECS" IS 'The number of seconds to add to scheduled_datetime when instruction is repeating';
1093
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."ADDED_DATETIME" IS 'The datetime the instruction was added to the table - informational only';
1094
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."USER_ID" IS 'The user who added the instruction to the table  - informational only';
6031 dpurdie 1095
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" TO "RM_READONLY";
1096
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" TO "MS_READONLY";
6999 dpurdie 1097
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" TO "DM_READONLY";
4040 dpurdie 1098
--------------------------------------------------------
1099
--  DDL for Table DASH_BOARD
1100
--------------------------------------------------------
1101
 
5172 dpurdie 1102
  CREATE TABLE "RELEASE_MANAGER"."DASH_BOARD" 
4040 dpurdie 1103
   (	"PROJ_ID" NUMBER, 
1104
	"RTAG_ID" NUMBER, 
1105
	"LAST_BUILD_TIME" DATE, 
1106
	"AUTOMATED_PACKAGES" NUMBER, 
1107
	"TOTAL_PACKAGES" NUMBER
5172 dpurdie 1108
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1109
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1110
 NOCOMPRESS LOGGING
5172 dpurdie 1111
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1112
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1113
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1114
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1115
  GRANT SELECT ON "RELEASE_MANAGER"."DASH_BOARD" TO "RM_READONLY";
1116
  GRANT SELECT ON "RELEASE_MANAGER"."DASH_BOARD" TO "MS_READONLY";
6999 dpurdie 1117
  GRANT SELECT ON "RELEASE_MANAGER"."DASH_BOARD" TO "DM_READONLY";
4040 dpurdie 1118
--------------------------------------------------------
1119
--  DDL for Table DEPRECATED_PACKAGES
1120
--------------------------------------------------------
1121
 
5172 dpurdie 1122
  CREATE TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" 
4040 dpurdie 1123
   (	"RTAG_ID" NUMBER, 
1124
	"PKG_ID" NUMBER, 
5172 dpurdie 1125
	"COMMENTS" VARCHAR2(4000 BYTE), 
1126
	"V_EXT" VARCHAR2(50 BYTE)
1127
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1128
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1129
 NOCOMPRESS LOGGING
5172 dpurdie 1130
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1131
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1132
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1133
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1134
  GRANT SELECT ON "RELEASE_MANAGER"."DEPRECATED_PACKAGES" TO "RM_READONLY";
1135
  GRANT SELECT ON "RELEASE_MANAGER"."DEPRECATED_PACKAGES" TO "MS_READONLY";
6999 dpurdie 1136
  GRANT SELECT ON "RELEASE_MANAGER"."DEPRECATED_PACKAGES" TO "DM_READONLY";
4040 dpurdie 1137
--------------------------------------------------------
1138
--  DDL for Table DO_NOT_RIPPLE
1139
--------------------------------------------------------
1140
 
5172 dpurdie 1141
  CREATE TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" 
4040 dpurdie 1142
   (	"RTAG_ID" NUMBER, 
1143
	"PV_ID" NUMBER, 
1144
	"ROOT_PV_ID" NUMBER, 
5172 dpurdie 1145
	"ROOT_CAUSE" VARCHAR2(50 BYTE), 
1146
	"ROOT_FILE" VARCHAR2(100 BYTE)
1147
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1148
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1149
 NOCOMPRESS LOGGING
5172 dpurdie 1150
  STORAGE(INITIAL 655360 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1151
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1152
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1153
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1154
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "RM_READONLY";
1155
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "MS_READONLY";
5892 dpurdie 1156
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "DM_READONLY";
1157
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "RELEASE_MANAGER_READ";
6999 dpurdie 1158
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1159
--------------------------------------------------------
1160
--  DDL for Table GBE_MACHTYPE
1161
--------------------------------------------------------
1162
 
5172 dpurdie 1163
  CREATE TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" 
4040 dpurdie 1164
   (	"GBE_ID" NUMBER, 
5172 dpurdie 1165
	"GBE_VALUE" VARCHAR2(20 BYTE), 
4040 dpurdie 1166
	"BM_ID" NUMBER
5172 dpurdie 1167
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1168
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1169
 NOCOMPRESS LOGGING
5172 dpurdie 1170
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1171
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1172
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1173
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1174
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "RM_READONLY";
1175
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "MS_READONLY";
5892 dpurdie 1176
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "DM_READONLY";
6999 dpurdie 1177
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1178
--------------------------------------------------------
1179
--  DDL for Table IGNORE_WARNINGS
1180
--------------------------------------------------------
1181
 
5172 dpurdie 1182
  CREATE TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" 
4040 dpurdie 1183
   (	"RTAG_ID" NUMBER, 
1184
	"PV_ID" NUMBER, 
1185
	"DPV_ID" NUMBER, 
5172 dpurdie 1186
	"IS_PATCH_IGNORE" CHAR(1 BYTE)
1187
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1188
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1189
 NOCOMPRESS LOGGING
5172 dpurdie 1190
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1191
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1192
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1193
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1194
  GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "RM_READONLY";
1195
  GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "MS_READONLY";
5892 dpurdie 1196
  GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "DM_READONLY";
6999 dpurdie 1197
  GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1198
--------------------------------------------------------
1199
--  DDL for Table JIRA_ISSUES
1200
--------------------------------------------------------
1201
 
5172 dpurdie 1202
  CREATE TABLE "RELEASE_MANAGER"."JIRA_ISSUES" 
4040 dpurdie 1203
   (	"PV_ID" NUMBER, 
5172 dpurdie 1204
	"ISS_KEY" VARCHAR2(4000 BYTE), 
4040 dpurdie 1205
	"DATE_TIME_STAMP" DATE
5172 dpurdie 1206
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1207
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1208
 NOCOMPRESS LOGGING
5172 dpurdie 1209
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1210
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1211
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1212
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1213
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "RM_READONLY";
1214
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "MS_READONLY";
5892 dpurdie 1215
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "DM_READONLY";
1216
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "RELEASE_MANAGER_READ";
6999 dpurdie 1217
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1218
--------------------------------------------------------
1219
--  DDL for Table LICENCES
1220
--------------------------------------------------------
1221
 
5172 dpurdie 1222
  CREATE TABLE "RELEASE_MANAGER"."LICENCES" 
4040 dpurdie 1223
   (	"LICENCE" NUMBER, 
5172 dpurdie 1224
	"NAME" VARCHAR2(50 BYTE)
1225
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1226
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1227
 NOCOMPRESS LOGGING
5172 dpurdie 1228
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1229
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1230
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1231
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1232
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCES" TO "RM_READONLY";
1233
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCES" TO "MS_READONLY";
6999 dpurdie 1234
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCES" TO "DM_READONLY";
4040 dpurdie 1235
--------------------------------------------------------
1236
--  DDL for Table LICENCING
1237
--------------------------------------------------------
1238
 
5172 dpurdie 1239
  CREATE TABLE "RELEASE_MANAGER"."LICENCING" 
4040 dpurdie 1240
   (	"PV_ID" NUMBER, 
1241
	"LICENCE" NUMBER
5172 dpurdie 1242
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1243
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1244
 NOCOMPRESS LOGGING
5172 dpurdie 1245
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1246
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1247
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1248
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1249
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCING" TO "RM_READONLY";
1250
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCING" TO "MS_READONLY";
6999 dpurdie 1251
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCING" TO "DM_READONLY";
4040 dpurdie 1252
--------------------------------------------------------
6999 dpurdie 1253
--  DDL for Table LXR_STATE
1254
--------------------------------------------------------
5384 dpurdie 1255
 
1256
  CREATE TABLE "RELEASE_MANAGER"."LXR_STATE" 
1257
   (	"RTAG_ID" NUMBER, 
1258
	"LXRSERVER" CHAR(1 BYTE) DEFAULT 'N'
1259
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1260
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1261
 NOCOMPRESS LOGGING
5384 dpurdie 1262
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1263
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1264
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 1265
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5384 dpurdie 1266
 
1267
   COMMENT ON COLUMN "RELEASE_MANAGER"."LXR_STATE"."RTAG_ID" IS 'Link to Release_Tags';
1268
   COMMENT ON COLUMN "RELEASE_MANAGER"."LXR_STATE"."LXRSERVER" IS 'Written by server - I:Indexed, C:Closing, N:Not Known. May be InProgress.';
1269
   COMMENT ON TABLE "RELEASE_MANAGER"."LXR_STATE"  IS 'Contains data updated by the LXR server.
1270
This table is writable by a user known to the LXR Server';
6031 dpurdie 1271
  GRANT UPDATE ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
1272
  GRANT SELECT ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
1273
  GRANT INSERT ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
1274
  GRANT DELETE ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
6999 dpurdie 1275
  GRANT ALTER ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
1276
--------------------------------------------------------
4040 dpurdie 1277
--  DDL for Table MEMBERS_GROUP
1278
--------------------------------------------------------
1279
 
5172 dpurdie 1280
  CREATE TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" 
4040 dpurdie 1281
   (	"GROUP_EMAIL_ID" NUMBER, 
1282
	"USER_ID" NUMBER
5172 dpurdie 1283
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1284
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1285
 NOCOMPRESS LOGGING
5172 dpurdie 1286
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1287
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1288
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1289
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1290
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "RM_READONLY";
1291
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "MS_READONLY";
5892 dpurdie 1292
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "DM_READONLY";
6999 dpurdie 1293
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1294
--------------------------------------------------------
1295
--  DDL for Table MESSAGE_BOARD
1296
--------------------------------------------------------
1297
 
5172 dpurdie 1298
  CREATE TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" 
4040 dpurdie 1299
   (	"MSG_ID" NUMBER, 
5172 dpurdie 1300
	"MSG_DETAILS" VARCHAR2(2000 BYTE), 
4040 dpurdie 1301
	"SUBMITION_DATE" DATE, 
1302
	"EXPIRY_DATE" DATE, 
1303
	"DUE_DATE" DATE
5172 dpurdie 1304
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1305
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1306
 NOCOMPRESS LOGGING
5172 dpurdie 1307
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1308
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1309
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1310
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1311
  GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "RM_READONLY";
1312
  GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "MS_READONLY";
5892 dpurdie 1313
  GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "DM_READONLY";
6999 dpurdie 1314
  GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1315
--------------------------------------------------------
1316
--  DDL for Table MICROSOFTDTPROPERTIES
1317
--------------------------------------------------------
1318
 
5172 dpurdie 1319
  CREATE TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" 
4040 dpurdie 1320
   (	"ID" NUMBER, 
1321
	"OBJECTID" NUMBER, 
5172 dpurdie 1322
	"PROPERTY" VARCHAR2(64 BYTE), 
1323
	"VALUE" VARCHAR2(255 BYTE), 
4040 dpurdie 1324
	"LVALUE" LONG RAW, 
1325
	"VERSION" NUMBER DEFAULT (0)
5172 dpurdie 1326
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1327
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1328
 NOCOMPRESS LOGGING
5172 dpurdie 1329
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1330
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1331
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1332
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1333
  GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "RM_READONLY";
1334
  GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "MS_READONLY";
5892 dpurdie 1335
  GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "DM_READONLY";
6999 dpurdie 1336
  GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1337
--------------------------------------------------------
1338
--  DDL for Table NOTE_MANAGER
1339
--------------------------------------------------------
1340
 
5172 dpurdie 1341
  CREATE TABLE "RELEASE_MANAGER"."NOTE_MANAGER" 
1342
   (	"NID" VARCHAR2(30 BYTE), 
1343
	"LAST_USER" VARCHAR2(20 BYTE), 
4040 dpurdie 1344
	"LAST_DATE" DATE, 
5172 dpurdie 1345
	"DESCRIPTION" VARCHAR2(4000 BYTE)
1346
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1347
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1348
 NOCOMPRESS LOGGING
5172 dpurdie 1349
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1350
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1351
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1352
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1353
  GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "RM_READONLY";
1354
  GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "MS_READONLY";
5892 dpurdie 1355
  GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "DM_READONLY";
6999 dpurdie 1356
  GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1357
--------------------------------------------------------
1358
--  DDL for Table NOTIFICATION_HISTORY
1359
--------------------------------------------------------
1360
 
5172 dpurdie 1361
  CREATE TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" 
4040 dpurdie 1362
   (	"RTAG_ID" NUMBER, 
1363
	"PV_ID" NUMBER, 
1364
	"USER_ID" NUMBER, 
1365
	"DATE_TIME_STAMP" DATE
5172 dpurdie 1366
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1367
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1368
 NOCOMPRESS LOGGING
5172 dpurdie 1369
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1370
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1371
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1372
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1373
  GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "RM_READONLY";
1374
  GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "MS_READONLY";
5892 dpurdie 1375
  GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "DM_READONLY";
6999 dpurdie 1376
  GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1377
--------------------------------------------------------
1378
--  DDL for Table PACKAGES
1379
--------------------------------------------------------
1380
 
5172 dpurdie 1381
  CREATE TABLE "RELEASE_MANAGER"."PACKAGES" 
4040 dpurdie 1382
   (	"PKG_ID" NUMBER, 
5172 dpurdie 1383
	"PKG_NAME" VARCHAR2(255 BYTE), 
1384
	"SUNOS_ELECTRONIC_NAME" VARCHAR2(255 BYTE), 
1385
	"WIN_ELECTRONIC_NAME" VARCHAR2(255 BYTE), 
1386
	"DEFAULT_PEGGED" CHAR(1 BYTE), 
1387
	"DEFAULT_ADVISORY_RIPPLE" CHAR(1 BYTE)
1388
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1389
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1390
 NOCOMPRESS LOGGING
5172 dpurdie 1391
  STORAGE(INITIAL 196608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1392
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1393
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 1394
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 1395
 
1396
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGES"."DEFAULT_PEGGED" IS 'Default pegged state for packages that are added to a release.';
1397
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGES"."DEFAULT_ADVISORY_RIPPLE" IS 'Default advisiory ripple state for packages that are added to a release.';
6031 dpurdie 1398
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "RM_READONLY";
1399
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "MS_READONLY";
5892 dpurdie 1400
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "DM_READONLY";
1401
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "RELEASE_MANAGER_READ";
1402
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER_READ";
6031 dpurdie 1403
  GRANT UPDATE ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";
1404
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";
1405
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 1406
  GRANT DELETE ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1407
--------------------------------------------------------
1408
--  DDL for Table PACKAGE_BUILD_ENV
1409
--------------------------------------------------------
1410
 
5172 dpurdie 1411
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" 
4040 dpurdie 1412
   (	"PV_ID" NUMBER, 
1413
	"BE_ID" NUMBER, 
1414
	"BUILD_TYPE" NUMBER
5172 dpurdie 1415
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1416
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1417
 NOCOMPRESS LOGGING
5172 dpurdie 1418
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1419
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1420
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1421
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1422
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "RM_READONLY";
1423
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "MS_READONLY";
5892 dpurdie 1424
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DM_READONLY";
1425
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "RELEASE_MANAGER_READ";
6031 dpurdie 1426
  GRANT UPDATE ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";
1427
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";
1428
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 1429
  GRANT DELETE ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1430
--------------------------------------------------------
1431
--  DDL for Table PACKAGE_BUILD_INFO
1432
--------------------------------------------------------
1433
 
5172 dpurdie 1434
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" 
4040 dpurdie 1435
   (	"PV_ID" NUMBER, 
1436
	"BM_ID" NUMBER, 
1437
	"BSA_ID" NUMBER
5172 dpurdie 1438
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1439
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1440
 NOCOMPRESS LOGGING
5172 dpurdie 1441
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1442
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1443
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1444
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1445
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "RM_READONLY";
1446
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "MS_READONLY";
5892 dpurdie 1447
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "DM_READONLY";
6999 dpurdie 1448
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1449
--------------------------------------------------------
1450
--  DDL for Table PACKAGE_DEPENDENCIES
1451
--------------------------------------------------------
1452
 
5172 dpurdie 1453
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" 
4040 dpurdie 1454
   (	"PV_ID" NUMBER, 
1455
	"DPV_ID" NUMBER, 
1456
	"PKG_ID" NUMBER, 
1457
	"DPKG_ID" NUMBER, 
5172 dpurdie 1458
	"BUILD_TYPE" CHAR(1 BYTE), 
4040 dpurdie 1459
	"DISPLAY_ORDER" NUMBER
5172 dpurdie 1460
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1461
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1462
 NOCOMPRESS LOGGING
5172 dpurdie 1463
  STORAGE(INITIAL 100663296 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1464
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1465
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 1466
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5384 dpurdie 1467
 
1468
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."PV_ID" IS 'Package Version Identifier';
1469
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."DPV_ID" IS 'Depends on this package version';
1470
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."BUILD_TYPE" IS 'B:BuildPkgArchive, L:LinkPkgArchive';
6031 dpurdie 1471
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "RM_READONLY";
1472
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "MS_READONLY";
5892 dpurdie 1473
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "DM_READONLY";
1474
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "RELEASE_MANAGER_READ";
6999 dpurdie 1475
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1476
--------------------------------------------------------
1477
--  DDL for Table PACKAGE_DOCUMENTS
1478
--------------------------------------------------------
1479
 
5172 dpurdie 1480
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" 
4040 dpurdie 1481
   (	"PV_ID" NUMBER, 
1482
	"TEST_ID" NUMBER, 
1483
	"DOC_ID" NUMBER, 
5172 dpurdie 1484
	"DOC_NUM" VARCHAR2(50 BYTE), 
1485
	"IS_LATEST" CHAR(1 BYTE)
1486
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1487
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1488
 NOCOMPRESS LOGGING
5172 dpurdie 1489
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1490
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1491
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1492
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1493
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "RM_READONLY";
1494
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "MS_READONLY";
5892 dpurdie 1495
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "DM_READONLY";
6999 dpurdie 1496
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1497
--------------------------------------------------------
1498
--  DDL for Table PACKAGE_INTEREST
1499
--------------------------------------------------------
1500
 
5172 dpurdie 1501
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" 
4040 dpurdie 1502
   (	"PKG_ID" NUMBER, 
1503
	"PROJ_ID" NUMBER, 
1504
	"USER_ID" NUMBER
5172 dpurdie 1505
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1506
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1507
 NOCOMPRESS LOGGING
5172 dpurdie 1508
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1509
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1510
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1511
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1512
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_INTEREST" TO "RM_READONLY";
1513
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_INTEREST" TO "MS_READONLY";
6999 dpurdie 1514
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_INTEREST" TO "DM_READONLY";
4040 dpurdie 1515
--------------------------------------------------------
1516
--  DDL for Table PACKAGE_METRICS
1517
--------------------------------------------------------
1518
 
5172 dpurdie 1519
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" 
4040 dpurdie 1520
   (	"PV_ID" NUMBER, 
1521
	"BRANCHES" NUMBER, 
5172 dpurdie 1522
	"BRANCH_LIST" VARCHAR2(4000 BYTE), 
4040 dpurdie 1523
	"CODE_FILES" NUMBER, 
1524
	"IGNORED_FILES" NUMBER, 
1525
	"DIRECTORIES" NUMBER, 
1526
	"DIRECTORY_DEPTH" NUMBER, 
1527
	"TOTAL_FILES" NUMBER, 
1528
	"MAKEFILES" NUMBER, 
1529
	"BLANK_LINES" NUMBER, 
1530
	"CODE_LINES" NUMBER, 
1531
	"COMMENT_LINES" NUMBER, 
1532
	"CREATED_STAMP" DATE
5172 dpurdie 1533
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1534
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1535
 NOCOMPRESS LOGGING
5172 dpurdie 1536
  STORAGE(INITIAL 12582912 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1537
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1538
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1539
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1540
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_METRICS" TO "RM_READONLY";
1541
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_METRICS" TO "MS_READONLY";
6999 dpurdie 1542
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_METRICS" TO "DM_READONLY";
4040 dpurdie 1543
--------------------------------------------------------
1544
--  DDL for Table PACKAGE_PATCHES
1545
--------------------------------------------------------
1546
 
5172 dpurdie 1547
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" 
4040 dpurdie 1548
   (	"PV_ID" NUMBER, 
1549
	"PATCH_ID" NUMBER, 
1550
	"INSTALL_ORDER" NUMBER, 
1551
	"PATCH_OBSOLETED_BY" NUMBER
5172 dpurdie 1552
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1553
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1554
 NOCOMPRESS LOGGING
5172 dpurdie 1555
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1556
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1557
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1558
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1559
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "RM_READONLY";
1560
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "MS_READONLY";
5892 dpurdie 1561
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "DM_READONLY";
1562
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "RELEASE_MANAGER_READ";
6999 dpurdie 1563
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1564
--------------------------------------------------------
1565
--  DDL for Table PACKAGE_PROCESSES
1566
--------------------------------------------------------
1567
 
5172 dpurdie 1568
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" 
4040 dpurdie 1569
   (	"PV_ID" NUMBER, 
1570
	"PROC_ID" NUMBER
5172 dpurdie 1571
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1572
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1573
 NOCOMPRESS LOGGING
5172 dpurdie 1574
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1575
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1576
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1577
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1578
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "RM_READONLY";
1579
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "MS_READONLY";
5892 dpurdie 1580
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DM_READONLY";
6031 dpurdie 1581
  GRANT UPDATE ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";
1582
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";
1583
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 1584
  GRANT DELETE ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1585
--------------------------------------------------------
1586
--  DDL for Table PACKAGE_VERSIONS
1587
--------------------------------------------------------
1588
 
5172 dpurdie 1589
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" 
4040 dpurdie 1590
   (	"PV_ID" NUMBER, 
1591
	"PKG_ID" NUMBER, 
5172 dpurdie 1592
	"PKG_VERSION" VARCHAR2(50 BYTE), 
1593
	"DLOCKED" CHAR(1 BYTE), 
4040 dpurdie 1594
	"RELEASED_AT" NUMBER, 
1595
	"MODIFIED_STAMP" DATE, 
1596
	"MODIFIER_ID" NUMBER, 
1597
	"CREATED_STAMP" DATE, 
1598
	"CREATOR_ID" NUMBER, 
5172 dpurdie 1599
	"COMMENTS" VARCHAR2(4000 BYTE), 
1600
	"V_MM" VARCHAR2(50 BYTE), 
1601
	"V_NMM" VARCHAR2(50 BYTE), 
1602
	"V_EXT" VARCHAR2(50 BYTE), 
1603
	"PKG_LABEL" VARCHAR2(60 BYTE), 
1604
	"SRC_PATH" VARCHAR2(2000 BYTE), 
1605
	"PV_DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1606
	"OWNER_ID" NUMBER, 
5172 dpurdie 1607
	"PV_OVERVIEW" VARCHAR2(4000 BYTE), 
1608
	"IS_PATCH" CHAR(1 BYTE), 
4040 dpurdie 1609
	"LAST_PV_ID" NUMBER, 
5172 dpurdie 1610
	"RELEASE_NOTES_INFO" VARCHAR2(1000 BYTE), 
1611
	"IS_DEPLOYABLE" CHAR(1 BYTE), 
1612
	"IS_BUILD_ENV_REQUIRED" CHAR(1 BYTE), 
1613
	"IS_OBSOLETE" CHAR(1 BYTE), 
1614
	"OBSOLETE_COMMENTS" VARCHAR2(4000 BYTE), 
1615
	"BUILD_TYPE" CHAR(1 BYTE), 
1616
	"CHANGE_TYPE" CHAR(1 BYTE), 
1617
	"LINK" VARCHAR2(4000 BYTE), 
1618
	"PATCH_ELECTRONIC_NAME" VARCHAR2(4000 BYTE), 
4040 dpurdie 1619
	"BS_ID" NUMBER, 
5172 dpurdie 1620
	"IS_AUTOBUILDABLE" CHAR(1 BYTE), 
1621
	"SBOM_PRIORITY" CHAR(1 BYTE), 
4040 dpurdie 1622
	"RIPPLE_FIELD" CHAR(1 CHAR), 
1623
	"MAXIMUM_BUILD_TIME" NUMBER, 
5892 dpurdie 1624
	"BUILD_TIME" NUMBER, 
4040 dpurdie 1625
	"MAJOR_LIMIT" NUMBER(10,0), 
1626
	"MINOR_LIMIT" NUMBER(10,0), 
1627
	"PATCH_LIMIT" NUMBER(10,0), 
1628
	"BUILD_NUMBER_LIMIT" NUMBER(10,0), 
5384 dpurdie 1629
	"VCS_TYPE_ID" NUMBER, 
1630
	"PKG_IDEXT" VARCHAR2(70 BYTE)
5172 dpurdie 1631
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1632
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1633
 NOCOMPRESS LOGGING
5172 dpurdie 1634
  STORAGE(INITIAL 134217728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1635
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1636
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 1637
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 1638
 
1639
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."RELEASED_AT" IS 'No longer used';
6999 dpurdie 1640
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."OWNER_ID" IS 'Copied from previous version. Set on ''Make Pending'' - you touched it you own it.';
5892 dpurdie 1641
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."IS_DEPLOYABLE" IS 'null:No, NonNull:Yes Y:Yes';
6031 dpurdie 1642
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."BUILD_TYPE" IS 'A:Auto, M:Manual, U:UnBuildable';
5892 dpurdie 1643
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."IS_AUTOBUILDABLE" IS 'Y: Indicates that the package has been built on a build machine';
1644
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."BUILD_TIME" IS 'Duration of last build';
6031 dpurdie 1645
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "RM_READONLY";
1646
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "MS_READONLY";
5892 dpurdie 1647
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DM_READONLY";
1648
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "RELEASE_MANAGER_READ";
6031 dpurdie 1649
  GRANT UPDATE ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";
1650
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";
1651
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 1652
  GRANT DELETE ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1653
--------------------------------------------------------
1654
--  DDL for Table PEGGED_VERSIONS
1655
--------------------------------------------------------
1656
 
5172 dpurdie 1657
  CREATE TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" 
4040 dpurdie 1658
   (	"RTAG_ID" NUMBER, 
1659
	"PV_ID" NUMBER
5172 dpurdie 1660
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1661
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1662
 NOCOMPRESS LOGGING
5172 dpurdie 1663
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1664
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1665
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1666
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1667
  GRANT SELECT ON "RELEASE_MANAGER"."PEGGED_VERSIONS" TO "RM_READONLY";
1668
  GRANT SELECT ON "RELEASE_MANAGER"."PEGGED_VERSIONS" TO "MS_READONLY";
6999 dpurdie 1669
  GRANT SELECT ON "RELEASE_MANAGER"."PEGGED_VERSIONS" TO "DM_READONLY";
4040 dpurdie 1670
--------------------------------------------------------
1671
--  DDL for Table PLANNED
1672
--------------------------------------------------------
1673
 
5172 dpurdie 1674
  CREATE TABLE "RELEASE_MANAGER"."PLANNED" 
4040 dpurdie 1675
   (	"RTAG_ID" NUMBER, 
1676
	"PV_ID" NUMBER, 
1677
	"VIEW_ID" NUMBER, 
5172 dpurdie 1678
	"OPERATION" CHAR(1 BYTE)
1679
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1680
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1681
 NOCOMPRESS LOGGING
5172 dpurdie 1682
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1683
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1684
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 1685
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 1686
 
1687
   COMMENT ON COLUMN "RELEASE_MANAGER"."PLANNED"."OPERATION" IS 'A: Add existing version.
1688
 
6031 dpurdie 1689
S:Subtract existing Version.
5172 dpurdie 1690
 
1691
R:Add New Version';
1692
   COMMENT ON TABLE "RELEASE_MANAGER"."PLANNED"  IS 'This table contains WORK IN PROGRESS packages';
6031 dpurdie 1693
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "RM_READONLY";
1694
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "MS_READONLY";
5892 dpurdie 1695
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "DM_READONLY";
1696
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "RELEASE_MANAGER_READ";
6999 dpurdie 1697
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1698
--------------------------------------------------------
1699
--  DDL for Table PLANNED_VERSIONS
1700
--------------------------------------------------------
1701
 
5172 dpurdie 1702
  CREATE TABLE "RELEASE_MANAGER"."PLANNED_VERSIONS" 
4040 dpurdie 1703
   (	"PKG_ID" NUMBER, 
5172 dpurdie 1704
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 1705
	"PLANNED_TIME" DATE
5172 dpurdie 1706
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1707
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1708
 NOCOMPRESS LOGGING
5172 dpurdie 1709
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1710
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1711
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1712
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1713
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED_VERSIONS" TO "RM_READONLY";
1714
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED_VERSIONS" TO "MS_READONLY";
6999 dpurdie 1715
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED_VERSIONS" TO "DM_READONLY";
4040 dpurdie 1716
--------------------------------------------------------
1717
--  DDL for Table PLATFORMS
1718
--------------------------------------------------------
1719
 
5172 dpurdie 1720
  CREATE TABLE "RELEASE_MANAGER"."PLATFORMS" 
4040 dpurdie 1721
   (	"CODE" NUMBER, 
5172 dpurdie 1722
	"NAME" VARCHAR2(255 BYTE)
1723
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1724
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1725
 NOCOMPRESS LOGGING
5172 dpurdie 1726
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1727
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1728
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1729
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1730
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "RM_READONLY";
1731
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "MS_READONLY";
5892 dpurdie 1732
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "DM_READONLY";
1733
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "RELEASE_MANAGER_READ";
6999 dpurdie 1734
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1735
--------------------------------------------------------
1736
--  DDL for Table PROCESSES
1737
--------------------------------------------------------
1738
 
5172 dpurdie 1739
  CREATE TABLE "RELEASE_MANAGER"."PROCESSES" 
4040 dpurdie 1740
   (	"PROC_ID" NUMBER, 
5172 dpurdie 1741
	"PROC_NAME" VARCHAR2(255 BYTE), 
1742
	"PROC_DESCRIPTION" VARCHAR2(255 BYTE), 
1743
	"RUN_AS" VARCHAR2(255 BYTE), 
1744
	"PKG_OWNER" VARCHAR2(4000 BYTE), 
1745
	"IS_INTERFACE" CHAR(1 BYTE)
1746
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1747
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1748
 NOCOMPRESS LOGGING
5172 dpurdie 1749
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1750
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1751
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1752
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1753
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "RM_READONLY";
1754
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "MS_READONLY";
5892 dpurdie 1755
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "DM_READONLY";
1756
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "RELEASE_MANAGER_READ";
6031 dpurdie 1757
  GRANT UPDATE ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";
1758
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";
1759
  GRANT INSERT ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 1760
  GRANT DELETE ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1761
--------------------------------------------------------
1762
--  DDL for Table PRODUCT_COMPONENTS
1763
--------------------------------------------------------
1764
 
5172 dpurdie 1765
  CREATE TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" 
4040 dpurdie 1766
   (	"PV_ID" NUMBER, 
1767
	"OS_ID" NUMBER, 
5172 dpurdie 1768
	"FILE_PATH" VARCHAR2(4000 BYTE), 
1769
	"FILE_NAME" VARCHAR2(4000 BYTE), 
1770
	"DESTINATION_PATH" VARCHAR2(4000 BYTE), 
4040 dpurdie 1771
	"BYTE_SIZE" NUMBER, 
5172 dpurdie 1772
	"CRC_CKSUM" VARCHAR2(2000 BYTE)
1773
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1774
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1775
 NOCOMPRESS LOGGING
5172 dpurdie 1776
  STORAGE(INITIAL 31457280 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1777
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1778
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1779
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1780
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "RM_READONLY";
1781
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "MS_READONLY";
5892 dpurdie 1782
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "DM_READONLY";
1783
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "RELEASE_MANAGER_READ";
6999 dpurdie 1784
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1785
--------------------------------------------------------
1786
--  DDL for Table PRODUCT_STATES
1787
--------------------------------------------------------
1788
 
5172 dpurdie 1789
  CREATE TABLE "RELEASE_MANAGER"."PRODUCT_STATES" 
4040 dpurdie 1790
   (	"STATE_ID" NUMBER, 
5172 dpurdie 1791
	"STATE" VARCHAR2(4000 BYTE)
1792
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1793
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1794
 NOCOMPRESS LOGGING
5172 dpurdie 1795
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1796
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1797
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1798
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1799
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_STATES" TO "RM_READONLY";
1800
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_STATES" TO "MS_READONLY";
6999 dpurdie 1801
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_STATES" TO "DM_READONLY";
4040 dpurdie 1802
--------------------------------------------------------
1803
--  DDL for Table PROJECTS
1804
--------------------------------------------------------
1805
 
5172 dpurdie 1806
  CREATE TABLE "RELEASE_MANAGER"."PROJECTS" 
4040 dpurdie 1807
   (	"PROJ_ID" NUMBER, 
5172 dpurdie 1808
	"PROJ_NAME" VARCHAR2(50 BYTE), 
1809
	"BASE_URL" VARCHAR2(4000 BYTE), 
1810
	"JIRA_KEY" VARCHAR2(16 BYTE)
1811
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1812
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1813
 NOCOMPRESS LOGGING
5172 dpurdie 1814
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1815
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1816
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1817
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1818
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "RM_READONLY";
1819
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "MS_READONLY";
5892 dpurdie 1820
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "DM_READONLY";
1821
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "RELEASE_MANAGER_READ";
1822
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER_READ";
6031 dpurdie 1823
  GRANT UPDATE ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";
1824
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";
1825
  GRANT INSERT ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";
1826
  GRANT DELETE ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 1827
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "ACCESS_MANAGER";
4040 dpurdie 1828
--------------------------------------------------------
1829
--  DDL for Table PROJECT_ACTION_LOG
1830
--------------------------------------------------------
1831
 
5172 dpurdie 1832
  CREATE TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" 
4040 dpurdie 1833
   (	"USER_ID" NUMBER, 
1834
	"ACTION_DATETIME" DATE, 
1835
	"PROJ_ID" NUMBER, 
5172 dpurdie 1836
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1837
	"ACTTYPE_ID" NUMBER, 
1838
	"RTAG_ID" NUMBER
5172 dpurdie 1839
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1840
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1841
 NOCOMPRESS LOGGING
5172 dpurdie 1842
  STORAGE(INITIAL 851968 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1843
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1844
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1845
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1846
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "RM_READONLY";
1847
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "MS_READONLY";
5892 dpurdie 1848
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "DM_READONLY";
6999 dpurdie 1849
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1850
--------------------------------------------------------
1851
--  DDL for Table PROJECT_EXTENTIONS
1852
--------------------------------------------------------
1853
 
5172 dpurdie 1854
  CREATE TABLE "RELEASE_MANAGER"."PROJECT_EXTENTIONS" 
4040 dpurdie 1855
   (	"PROJ_ID" NUMBER, 
5172 dpurdie 1856
	"EXT_NAME" VARCHAR2(10 BYTE), 
1857
	"UCOMMENT" VARCHAR2(120 BYTE), 
1858
	"IS_VISIBLE" CHAR(1 BYTE) DEFAULT 'Y', 
1859
	"IS_COTS" CHAR(1 BYTE) DEFAULT 'N'
1860
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1861
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1862
 NOCOMPRESS LOGGING
5172 dpurdie 1863
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1864
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1865
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1866
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1867
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "RM_READONLY";
1868
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "MS_READONLY";
5892 dpurdie 1869
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "DM_READONLY";
1870
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "RELEASE_MANAGER_READ";
6999 dpurdie 1871
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1872
--------------------------------------------------------
1873
--  DDL for Table RELEASE_COMPONENTS
1874
--------------------------------------------------------
1875
 
5172 dpurdie 1876
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" 
4040 dpurdie 1877
   (	"PV_ID" NUMBER, 
5172 dpurdie 1878
	"FILE_NAME" VARCHAR2(255 BYTE), 
1879
	"FILE_PATH" VARCHAR2(2000 BYTE), 
4040 dpurdie 1880
	"BYTE_SIZE" NUMBER, 
5172 dpurdie 1881
	"CRC_CKSUM" VARCHAR2(50 BYTE), 
1882
	"CRC_MODCRC" VARCHAR2(50 BYTE)
1883
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1884
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1885
 NOCOMPRESS LOGGING
5172 dpurdie 1886
  STORAGE(INITIAL 2828009472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1887
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1888
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1889
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1890
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "RM_READONLY";
1891
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "MS_READONLY";
5892 dpurdie 1892
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "DM_READONLY";
6999 dpurdie 1893
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1894
--------------------------------------------------------
1895
--  DDL for Table RELEASE_CONFIG
1896
--------------------------------------------------------
1897
 
5172 dpurdie 1898
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" 
4040 dpurdie 1899
   (	"RCON_ID" NUMBER, 
1900
	"RTAG_ID" NUMBER, 
1901
	"GBE_ID" NUMBER, 
5172 dpurdie 1902
	"DAEMON_HOSTNAME" VARCHAR2(50 BYTE), 
4040 dpurdie 1903
	"DAEMON_MODE" CHAR(1 CHAR), 
5172 dpurdie 1904
	"GBE_BUILDFILTER" VARCHAR2(255 BYTE), 
4308 dpurdie 1905
	"BMCON_ID" NUMBER
5172 dpurdie 1906
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1907
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1908
 NOCOMPRESS LOGGING
5172 dpurdie 1909
  STORAGE(INITIAL 196608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1910
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1911
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1912
  TABLESPACE "RELEASE_MANAGER_DATA" ;
4308 dpurdie 1913
 
5172 dpurdie 1914
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."GBE_ID" IS 'Do not use. Data should come from build_machine_config';
1915
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."DAEMON_HOSTNAME" IS 'Do not use. Data should come from build_machine_config';
1916
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."BMCON_ID" IS 'Link to the build_machine_config table';
6031 dpurdie 1917
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "RM_READONLY";
1918
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "MS_READONLY";
5892 dpurdie 1919
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "DM_READONLY";
6999 dpurdie 1920
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1921
--------------------------------------------------------
1922
--  DDL for Table RELEASE_CONTENT
1923
--------------------------------------------------------
1924
 
5172 dpurdie 1925
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" 
4040 dpurdie 1926
   (	"RTAG_ID" NUMBER, 
1927
	"PV_ID" NUMBER, 
1928
	"BASE_VIEW_ID" NUMBER, 
1929
	"INSERT_STAMP" DATE, 
1930
	"INSERTOR_ID" NUMBER, 
1931
	"PKG_STATE" NUMBER, 
1932
	"PKG_ID" NUMBER, 
1933
	"DEPRECATED_STATE" NUMBER, 
5172 dpurdie 1934
	"PRODUCT_STATE" NUMBER, 
6600 dpurdie 1935
	"SDKTAG_ID" NUMBER, 
1936
	"RIPPLE_STOP" CHAR(1 BYTE), 
1937
	"PERSIST_RIPPLE_STOP" CHAR(1 BYTE)
5172 dpurdie 1938
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1939
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1940
 NOCOMPRESS LOGGING
5172 dpurdie 1941
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1942
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1943
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 1944
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 1945
 
5384 dpurdie 1946
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."PKG_ID" IS 'NotUsed any more. Was:Package that has been deprecated';
5172 dpurdie 1947
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."DEPRECATED_STATE" IS '6: Deprecated Package, 7: Deprecated Dependent';
1948
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."SDKTAG_ID" IS 'Pkg imported via SDK';
6600 dpurdie 1949
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."RIPPLE_STOP" IS 's: Stop Ripple, w:Wait for Reset, g:GoBuild';
1950
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."PERSIST_RIPPLE_STOP" IS 'Null:No';
6031 dpurdie 1951
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "RM_READONLY";
1952
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "MS_READONLY";
5892 dpurdie 1953
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "DM_READONLY";
1954
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "RELEASE_MANAGER_READ";
6999 dpurdie 1955
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1956
--------------------------------------------------------
1957
--  DDL for Table RELEASE_LINKS
1958
--------------------------------------------------------
1959
 
5172 dpurdie 1960
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_LINKS" 
4040 dpurdie 1961
   (	"RTAG_ID" NUMBER, 
1962
	"REF_RTAG_ID" NUMBER
5172 dpurdie 1963
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1964
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1965
 NOCOMPRESS LOGGING
5172 dpurdie 1966
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1967
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1968
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1969
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1970
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "RM_READONLY";
1971
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "MS_READONLY";
5892 dpurdie 1972
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "DM_READONLY";
6999 dpurdie 1973
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1974
--------------------------------------------------------
1975
--  DDL for Table RELEASE_METRICS
1976
--------------------------------------------------------
1977
 
5172 dpurdie 1978
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_METRICS" 
4040 dpurdie 1979
   (	"RTAG_ID" NUMBER, 
1980
	"TOTAL_PACKAGES" NUMBER, 
1981
	"AUTOBUILT" NUMBER, 
1982
	"LINES_OF_CODE" NUMBER, 
1983
	"UNIT_TESTED" NUMBER, 
1984
	"AUTOTESTED" NUMBER, 
1985
	"BRANCHES" NUMBER, 
1986
	"LAST_BUILD_TIME" DATE
5172 dpurdie 1987
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1988
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1989
 NOCOMPRESS LOGGING
5172 dpurdie 1990
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1991
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1992
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1993
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1994
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "RM_READONLY";
1995
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "MS_READONLY";
6999 dpurdie 1996
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "DM_READONLY";
1997
--------------------------------------------------------
1998
--  DDL for Table RELEASE_MODIFIED
1999
--------------------------------------------------------
5172 dpurdie 2000
 
2001
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" 
2002
   (	"RTAG_ID" NUMBER, 
2003
	"TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP, 
2004
	"SEQNUM" NUMBER
2005
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2006
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2007
 NOCOMPRESS LOGGING
5172 dpurdie 2008
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2009
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2010
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2011
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2012
 
2013
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."RTAG_ID" IS 'Link to Release';
2014
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."TIMESTAMP" IS 'Time of the modification';
2015
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."SEQNUM" IS 'Unique number indicating change';
2016
   COMMENT ON TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED"  IS 'This table conatins a single entry for each RELEASE_TAG.
2017
It is used by the build system to help detect changes to the content of a Release.
2018
A stored proceedure simplifies the use of this table: PK_RELEASE.SET_RELEASE_MODIFIED
2019
 
2020
This should be called whenever the package_versions in the release have changed in such
2021
a manner that the build daemons should examine the release. This includes:
2022
 - Packages added and removed
2023
 - Packages build status changed (re-included in the release )
6999 dpurdie 2024
 - Packages made Pending Build';
4040 dpurdie 2025
--------------------------------------------------------
2026
--  DDL for Table RELEASE_TAGS
2027
--------------------------------------------------------
2028
 
5172 dpurdie 2029
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_TAGS" 
4040 dpurdie 2030
   (	"RTAG_ID" NUMBER, 
2031
	"VTREE_ID" NUMBER, 
5172 dpurdie 2032
	"RTAG_NAME" VARCHAR2(50 BYTE), 
2033
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 2034
	"CREATED_STAMP" DATE, 
2035
	"CREATOR_ID" NUMBER, 
2036
	"OFFICIAL_STAMP" DATE, 
2037
	"RELEASOR_ID" NUMBER, 
5172 dpurdie 2038
	"OFFICIAL" CHAR(1 BYTE), 
2039
	"REBUILD_ENV" CHAR(1 BYTE), 
4040 dpurdie 2040
	"REBUILD_STAMP" NUMBER, 
5172 dpurdie 2041
	"RTAG_VERSION" VARCHAR2(4000 BYTE), 
4040 dpurdie 2042
	"RTAG_LIFE_CYCLE" NUMBER, 
2043
	"PARENT_RTAG_ID" NUMBER, 
2044
	"PROJ_ID" NUMBER, 
2045
	"DISPLAY_ORDER" NUMBER, 
5172 dpurdie 2046
	"OWNER_EMAIL" VARCHAR2(1000 BYTE), 
4040 dpurdie 2047
	"ASSOC_MASS_REF" NUMBER, 
5172 dpurdie 2048
	"OWNER_PERSONAL_EMAIL" VARCHAR2(1000 BYTE), 
2049
	"CONFIG_SPEC_BRANCH" VARCHAR2(4000 BYTE), 
2050
	"PRODUCT_STATE_USED" CHAR(1 BYTE), 
2051
	"OFFICIAL_ID" NUMBER, 
5384 dpurdie 2052
	"BUILD_AGE" NUMBER DEFAULT 31, 
2053
	"LXR" CHAR(1 BYTE) DEFAULT 'N'
5172 dpurdie 2054
   ) SEGMENT CREATION IMMEDIATE 
6999 dpurdie 2055
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
6031 dpurdie 2056
 NOCOMPRESS LOGGING
6999 dpurdie 2057
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2058
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
6999 dpurdie 2059
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2060
  TABLESPACE "RELEASE_MANAGER_DATA" ;
4040 dpurdie 2061
 
5384 dpurdie 2062
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."CREATED_STAMP" IS 'Date Release was created';
2063
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."CREATOR_ID" IS 'User who created the release';
2064
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL_STAMP" IS 'Date OFFICIAL state was changed';
2065
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."RELEASOR_ID" IS 'Not Used';
2066
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL" IS 'State of release. A:Archived, Y:Closed, C:CCB Mode, R:Restricted, N: Open';
2067
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."REBUILD_ENV" IS 'Y: Rebuild Package State';
2068
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."REBUILD_STAMP" IS 'Not used ?';
2069
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL_ID" IS 'User last changed OFFICIAL state';
5172 dpurdie 2070
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."BUILD_AGE" IS 'Days without building before warning is shown';
5384 dpurdie 2071
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."LXR" IS 'Y:Enable LXR';
6999 dpurdie 2072
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "RM_READONLY";
5892 dpurdie 2073
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "MS_READONLY";
6031 dpurdie 2074
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "DM_READONLY";
5892 dpurdie 2075
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "RELEASE_MANAGER_READ";
6999 dpurdie 2076
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2077
--------------------------------------------------------
6031 dpurdie 2078
--  DDL for Table RM_PACKAGE_ISSUES_DELETE_ME
4040 dpurdie 2079
--------------------------------------------------------
2080
 
6031 dpurdie 2081
  CREATE TABLE "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" 
4040 dpurdie 2082
   (	"PKG_ID" NUMBER, 
5172 dpurdie 2083
	"PKG_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 2084
	"PV_ID" NUMBER, 
5172 dpurdie 2085
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 2086
	"DPV_ID" NUMBER, 
5172 dpurdie 2087
	"DPKG_NAME" VARCHAR2(50 BYTE), 
2088
	"DPKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 2089
	"ISS_DB" NUMBER, 
2090
	"ISS_ID" NUMBER
5172 dpurdie 2091
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2092
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2093
 NOCOMPRESS LOGGING
5172 dpurdie 2094
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2095
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2096
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2097
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2098
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "RM_READONLY";
2099
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "MS_READONLY";
2100
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "DM_READONLY";
6999 dpurdie 2101
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2102
--------------------------------------------------------
2103
--  DDL for Table RM_PKG_ISSUES
2104
--------------------------------------------------------
2105
 
5172 dpurdie 2106
  CREATE GLOBAL TEMPORARY TABLE "RELEASE_MANAGER"."RM_PKG_ISSUES" 
4040 dpurdie 2107
   (	"PKG_ID" NUMBER, 
5172 dpurdie 2108
	"PKG_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 2109
	"PV_ID" NUMBER, 
5172 dpurdie 2110
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 2111
	"DPV_ID" NUMBER, 
5172 dpurdie 2112
	"DPKG_NAME" VARCHAR2(50 BYTE), 
2113
	"DPKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 2114
	"ISS_DB" NUMBER, 
2115
	"ISS_ID" NUMBER
2116
   ) ON COMMIT PRESERVE ROWS ;
6031 dpurdie 2117
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "RM_READONLY";
2118
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "MS_READONLY";
5892 dpurdie 2119
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "DM_READONLY";
6999 dpurdie 2120
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2121
--------------------------------------------------------
2122
--  DDL for Table RUNTIME_DEPENDENCIES
2123
--------------------------------------------------------
2124
 
5172 dpurdie 2125
  CREATE TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" 
4040 dpurdie 2126
   (	"PV_ID" NUMBER, 
2127
	"RTD_ID" NUMBER, 
5172 dpurdie 2128
	"RTD_COMMENTS" VARCHAR2(2000 BYTE), 
2129
	"RTD_URL" VARCHAR2(2000 BYTE), 
4040 dpurdie 2130
	"MOD_DATE" DATE, 
2131
	"MOD_USER" NUMBER
5172 dpurdie 2132
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2133
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2134
 NOCOMPRESS LOGGING
5172 dpurdie 2135
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2136
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2137
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2138
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2139
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "RM_READONLY";
2140
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "MS_READONLY";
5892 dpurdie 2141
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "DM_READONLY";
6999 dpurdie 2142
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2143
--------------------------------------------------------
2144
--  DDL for Table RUN_LEVEL
2145
--------------------------------------------------------
2146
 
5172 dpurdie 2147
  CREATE TABLE "RELEASE_MANAGER"."RUN_LEVEL" 
4040 dpurdie 2148
   (	"RCON_ID" NUMBER, 
2149
	"CURRENT_BUILD_FILES" CLOB, 
2150
	"CURRENT_RUN_LEVEL" NUMBER, 
2151
	"PAUSE" NUMBER, 
2152
	"CURRENT_PKG_ID_BEING_BUILT" NUMBER, 
4553 dpurdie 2153
	"KEEP_ALIVE" DATE, 
2154
	"CURRENT_PV_ID" NUMBER, 
2155
	"LAST_BUILD" DATE DEFAULT sysdate
5172 dpurdie 2156
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2157
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2158
 NOCOMPRESS LOGGING
5172 dpurdie 2159
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2160
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2161
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2162
  TABLESPACE "RELEASE_MANAGER_DATA" 
5172 dpurdie 2163
 LOB ("CURRENT_BUILD_FILES") STORE AS BASICFILE (
6031 dpurdie 2164
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
5172 dpurdie 2165
  NOCACHE LOGGING 
2166
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2167
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
6999 dpurdie 2168
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
4553 dpurdie 2169
 
5172 dpurdie 2170
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."RCON_ID" IS 'Link to the Release_config table';
2171
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_BUILD_FILES" IS 'The current build file. Set by the Master, consumed by the Slaves.';
5892 dpurdie 2172
   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';
5172 dpurdie 2173
   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';
2174
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_PKG_ID_BEING_BUILT" IS 'pkg_id of the package currently being built';
2175
   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.';
2176
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_PV_ID" IS 'The PV_ID of the package currently being built.';
2177
   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.';
6031 dpurdie 2178
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "RM_READONLY";
2179
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "MS_READONLY";
6999 dpurdie 2180
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "DM_READONLY";
4040 dpurdie 2181
--------------------------------------------------------
2182
--  DDL for Table RUN_LEVEL_SCHEDULE
2183
--------------------------------------------------------
2184
 
5172 dpurdie 2185
  CREATE TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" 
4040 dpurdie 2186
   (	"SCHEDULED_ID" NUMBER, 
2187
	"SCHEDULED_PAUSE" DATE, 
2188
	"SCHEDULED_RESUME" DATE, 
5172 dpurdie 2189
	"REPEAT" CHAR(1 BYTE), 
2190
	"INDEFINITE_PAUSE" CHAR(1 BYTE)
2191
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2192
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2193
 NOCOMPRESS LOGGING
5172 dpurdie 2194
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2195
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2196
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2197
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2198
 
2199
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_ID" IS 'Unique entry identifier';
2200
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_PAUSE" IS 'Start DateTime of the outage';
2201
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_RESUME" IS 'End DateTime of the outage';
2202
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."REPEAT" IS '0:Once, 1:Daily, 7:Weekly';
2203
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."INDEFINITE_PAUSE" IS 'Non Null indicates indefinite pause';
6031 dpurdie 2204
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "RM_READONLY";
2205
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "MS_READONLY";
6999 dpurdie 2206
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "DM_READONLY";
2207
--------------------------------------------------------
2208
--  DDL for Table SDK_CONTENT
2209
--------------------------------------------------------
5172 dpurdie 2210
 
2211
  CREATE TABLE "RELEASE_MANAGER"."SDK_CONTENT" 
2212
   (	"SDKTAG_ID" NUMBER, 
2213
	"PV_ID" NUMBER, 
2214
	"SDKPKG_STATE" CHAR(1 BYTE) DEFAULT '-'
2215
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2216
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2217
 NOCOMPRESS LOGGING
5172 dpurdie 2218
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2219
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2220
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2221
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2222
 
2223
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."SDKTAG_ID" IS 'Ref to SDK TAG';
2224
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."PV_ID" IS 'Ref to Package Versions';
6999 dpurdie 2225
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."SDKPKG_STATE" IS 'Package State: -:Not exposed, E:Exposed';
2226
--------------------------------------------------------
2227
--  DDL for Table SDK_NAMES
2228
--------------------------------------------------------
5172 dpurdie 2229
 
2230
  CREATE TABLE "RELEASE_MANAGER"."SDK_NAMES" 
2231
   (	"SDK_ID" NUMBER, 
2232
	"SDK_NAME" VARCHAR2(50 BYTE), 
2233
	"SDK_COMMENT" VARCHAR2(4000 BYTE), 
2234
	"VIEW_ID" NUMBER, 
2235
	"PROJ_ID" NUMBER
2236
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2237
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2238
 NOCOMPRESS LOGGING
5172 dpurdie 2239
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2240
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2241
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2242
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2243
 
2244
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_ID" IS 'Auto Created when row is created';
2245
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_NAME" IS 'Name of the SDK';
2246
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_COMMENT" IS 'User comment';
2247
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."VIEW_ID" IS 'Base View for display';
6999 dpurdie 2248
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."PROJ_ID" IS 'Project ID for Security context';
2249
--------------------------------------------------------
2250
--  DDL for Table SDK_TAGS
2251
--------------------------------------------------------
5172 dpurdie 2252
 
2253
  CREATE TABLE "RELEASE_MANAGER"."SDK_TAGS" 
2254
   (	"SDKTAG_ID" NUMBER, 
2255
	"SDKTAG_NAME" VARCHAR2(50 BYTE), 
2256
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
2257
	"SDK_ID" NUMBER, 
2258
	"RTAG_ID" NUMBER, 
2259
	"CREATED_STAMP" TIMESTAMP (6) DEFAULT SYSTIMESTAMP, 
2260
	"CREATOR_ID" NUMBER, 
2261
	"STATE_STAMP" TIMESTAMP (6) DEFAULT SYSTIMESTAMP, 
2262
	"STATE_ID" NUMBER, 
2263
	"SDK_STATE" CHAR(1 BYTE) DEFAULT 'U'
2264
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2265
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2266
 NOCOMPRESS LOGGING
5172 dpurdie 2267
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2268
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2269
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2270
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2271
 
2272
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDKTAG_ID" IS 'Unique ID. Created automatically';
2273
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDKTAG_NAME" IS 'Name of the SDK Version';
2274
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."DESCRIPTION" IS 'General description';
2275
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDK_ID" IS 'Parent SDK';
2276
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."RTAG_ID" IS 'Release within which this SDK is maintained';
2277
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."CREATED_STAMP" IS 'When created';
2278
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."CREATOR_ID" IS 'Who Created the version';
2279
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."STATE_STAMP" IS 'Time of last change to this version';
2280
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."STATE_ID" IS 'User id who made the last state change';
6999 dpurdie 2281
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDK_STATE" IS 'State: U-Under Development; R-Released; D-Deprecated';
4040 dpurdie 2282
--------------------------------------------------------
6999 dpurdie 2283
--  DDL for Table TEMP_ENV_DEPS
2284
--------------------------------------------------------
5384 dpurdie 2285
 
2286
  CREATE TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" 
2287
   (	"SESSION_NUM" NUMBER, 
2288
	"PV_ID" NUMBER, 
2289
	"PKG_ID" NUMBER, 
2290
	"V_EXT" VARCHAR2(50 BYTE), 
2291
	"DPV_ID" NUMBER, 
2292
	"DPKG_ID" NUMBER, 
2293
	"DV_EXT" VARCHAR2(50 BYTE)
2294
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2295
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2296
 NOCOMPRESS LOGGING
5384 dpurdie 2297
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2298
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2299
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2300
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5384 dpurdie 2301
 
2302
   COMMENT ON TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS"  IS 'This table is used in the creation of the package_state information
2303
Data in the table is temporary. It should be cleared out after its been used.
2304
Data will only be used for a few seconds.
2305
 
6999 dpurdie 2306
The table is used to map DPV_IDs to PV_IDs, but only for DPV_IDs that are of interest';
2307
--------------------------------------------------------
4040 dpurdie 2308
--  DDL for Table TEMP_ENV_STATES
2309
--------------------------------------------------------
2310
 
5172 dpurdie 2311
  CREATE TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" 
4040 dpurdie 2312
   (	"SESSION_NUM" NUMBER, 
2313
	"LEVEL_NUM" NUMBER, 
2314
	"PV_ID" NUMBER, 
2315
	"PKG_ID" NUMBER, 
5172 dpurdie 2316
	"V_EXT" VARCHAR2(50 BYTE), 
6031 dpurdie 2317
	"TES_STATE" NUMBER, 
2318
	"BUILD_TYPE" CHAR(1 BYTE)
5172 dpurdie 2319
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2320
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2321
 NOCOMPRESS LOGGING
5172 dpurdie 2322
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2323
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2324
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2325
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2326
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "RM_READONLY";
2327
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "MS_READONLY";
5892 dpurdie 2328
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "DM_READONLY";
6999 dpurdie 2329
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2330
--------------------------------------------------------
2331
--  DDL for Table TEMP_SASH
2332
--------------------------------------------------------
2333
 
5172 dpurdie 2334
  CREATE TABLE "RELEASE_MANAGER"."TEMP_SASH" 
4040 dpurdie 2335
   (	"RTAG_ID" NUMBER, 
2336
	"PROJ_ID" NUMBER
5172 dpurdie 2337
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2338
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2339
 NOCOMPRESS LOGGING
5172 dpurdie 2340
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2341
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2342
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2343
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2344
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "RM_READONLY";
2345
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "MS_READONLY";
5892 dpurdie 2346
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "DM_READONLY";
6999 dpurdie 2347
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2348
--------------------------------------------------------
2349
--  DDL for Table TEMP_TREE_BROWSE
2350
--------------------------------------------------------
2351
 
5172 dpurdie 2352
  CREATE TABLE "RELEASE_MANAGER"."TEMP_TREE_BROWSE" 
4040 dpurdie 2353
   (	"SESSION_NUM" NUMBER, 
2354
	"LEVEL_NUM" NUMBER, 
2355
	"PV_ID" NUMBER, 
2356
	"PKG_ID" NUMBER, 
5172 dpurdie 2357
	"V_EXT" VARCHAR2(50 BYTE), 
4040 dpurdie 2358
	"DIRECTION" NUMBER
5172 dpurdie 2359
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2360
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2361
 NOCOMPRESS LOGGING
5172 dpurdie 2362
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2363
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2364
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2365
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2366
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "RM_READONLY";
2367
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "MS_READONLY";
5892 dpurdie 2368
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "DM_READONLY";
6999 dpurdie 2369
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "RELEASE_MANAGER_READ";
2370
--------------------------------------------------------
2371
--  DDL for Table TEST_RUN
2372
--------------------------------------------------------
5172 dpurdie 2373
 
2374
  CREATE TABLE "RELEASE_MANAGER"."TEST_RUN" 
6031 dpurdie 2375
   (	"TESTRUN_ID" NUMBER, 
2376
	"BUILD_ID" NUMBER, 
5172 dpurdie 2377
	"PLATFORM" VARCHAR2(50 BYTE), 
2378
	"TYPE" VARCHAR2(1 BYTE), 
5384 dpurdie 2379
	"TEST_NAME" VARCHAR2(200 BYTE), 
5172 dpurdie 2380
	"TEST_OUTCOME" VARCHAR2(20 BYTE), 
2381
	"TIME_TAKEN" NUMBER, 
6031 dpurdie 2382
	"FAIL_MESSAGE" CLOB
5172 dpurdie 2383
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2384
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2385
 NOCOMPRESS LOGGING
5172 dpurdie 2386
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2387
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2388
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2389
  TABLESPACE "RELEASE_MANAGER_DATA" 
5172 dpurdie 2390
 LOB ("FAIL_MESSAGE") STORE AS BASICFILE (
6031 dpurdie 2391
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 2392
  NOCACHE LOGGING 
2393
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2394
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
6999 dpurdie 2395
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
5172 dpurdie 2396
 
6031 dpurdie 2397
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TESTRUN_ID" IS 'Unique Id. Used to generate a primary key.';
5172 dpurdie 2398
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."PLATFORM" IS 'Target Platform';
2399
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TYPE" IS 'P or D';
2400
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TEST_OUTCOME" IS 'PASS/FAIL/SKIP';
2401
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TIME_TAKEN" IS 'Test Duration in milliseconds';
6999 dpurdie 2402
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."FAIL_MESSAGE" IS 'Failure Message';
4040 dpurdie 2403
--------------------------------------------------------
2404
--  DDL for Table TEST_TYPES
2405
--------------------------------------------------------
2406
 
5172 dpurdie 2407
  CREATE TABLE "RELEASE_MANAGER"."TEST_TYPES" 
4040 dpurdie 2408
   (	"TEST_TYPE_ID" NUMBER, 
5172 dpurdie 2409
	"TEST_TYPE_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 2410
	"DISPLAY_ORDER" NUMBER
5172 dpurdie 2411
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2412
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2413
 NOCOMPRESS LOGGING
5172 dpurdie 2414
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2415
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2416
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2417
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2418
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "RM_READONLY";
2419
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "MS_READONLY";
5892 dpurdie 2420
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "DM_READONLY";
2421
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "RELEASE_MANAGER_READ";
6999 dpurdie 2422
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2423
--------------------------------------------------------
2424
--  DDL for Table UNIT_TESTS
2425
--------------------------------------------------------
2426
 
5172 dpurdie 2427
  CREATE TABLE "RELEASE_MANAGER"."UNIT_TESTS" 
4040 dpurdie 2428
   (	"TEST_ID" NUMBER, 
2429
	"PV_ID" NUMBER, 
2430
	"TEST_TYPES_FK" NUMBER, 
5172 dpurdie 2431
	"TEST_SUMMARY" VARCHAR2(4000 BYTE), 
4040 dpurdie 2432
	"COMPLETION_DATE" DATE, 
2433
	"COMPLETED_BY" NUMBER, 
5172 dpurdie 2434
	"RESULTS_URL" VARCHAR2(2000 BYTE), 
2435
	"RESULTS_ATTACHMENT_NAME" VARCHAR2(2000 BYTE), 
2436
	"TEST_ACCEPTED" CHAR(1 BYTE), 
4040 dpurdie 2437
	"ACCEPTANCE_DATE" DATE, 
2438
	"ACCEPTED_BY" NUMBER, 
5172 dpurdie 2439
	"REVIEW_COMMENTS" VARCHAR2(4000 BYTE), 
2440
	"NUMOF_TEST" VARCHAR2(50 BYTE)
2441
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2442
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2443
 NOCOMPRESS LOGGING
5172 dpurdie 2444
  STORAGE(INITIAL 31457280 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2445
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2446
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2447
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2448
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "RM_READONLY";
2449
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "MS_READONLY";
5892 dpurdie 2450
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "DM_READONLY";
2451
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "RELEASE_MANAGER_READ";
6999 dpurdie 2452
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2453
--------------------------------------------------------
6031 dpurdie 2454
--  DDL for Table VALIDATION_RULES_DELETE_ME
4040 dpurdie 2455
--------------------------------------------------------
2456
 
6031 dpurdie 2457
  CREATE TABLE "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" 
5172 dpurdie 2458
   (	"FIELD_NAME" VARCHAR2(1000 BYTE), 
2459
	"IS_REQUIRED" CHAR(1 BYTE), 
2460
	"IS_NUMERIC" CHAR(1 BYTE), 
4040 dpurdie 2461
	"MIN_NUMERIC_VALUE" NUMBER, 
2462
	"MAX_NUMERIC_VALUE" NUMBER, 
5172 dpurdie 2463
	"IS_DATE" CHAR(1 BYTE), 
4040 dpurdie 2464
	"START_DATE" DATE, 
2465
	"END_DATE" DATE, 
2466
	"MIN_STRING_LENGTH" NUMBER, 
2467
	"MAX_STRING_LENGTH" NUMBER, 
5172 dpurdie 2468
	"REGEXP" VARCHAR2(4000 BYTE), 
2469
	"REGEXP_DESCRIPTION" VARCHAR2(50 BYTE)
2470
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2471
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2472
 NOCOMPRESS LOGGING
5172 dpurdie 2473
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2474
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2475
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2476
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2477
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "RM_READONLY";
2478
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "MS_READONLY";
2479
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "DM_READONLY";
6999 dpurdie 2480
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2481
--------------------------------------------------------
2482
--  DDL for Table VCS_TYPE
2483
--------------------------------------------------------
2484
 
5172 dpurdie 2485
  CREATE TABLE "RELEASE_MANAGER"."VCS_TYPE" 
4040 dpurdie 2486
   (	"VCS_TYPE_ID" NUMBER, 
5172 dpurdie 2487
	"NAME" VARCHAR2(128 BYTE), 
2488
	"TAG" VARCHAR2(32 BYTE)
2489
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2490
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2491
 NOCOMPRESS LOGGING
5172 dpurdie 2492
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2493
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2494
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2495
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2496
  GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "RM_READONLY";
2497
  GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "MS_READONLY";
6999 dpurdie 2498
  GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "DM_READONLY";
4040 dpurdie 2499
--------------------------------------------------------
2500
--  DDL for Table VIEWS
2501
--------------------------------------------------------
2502
 
5172 dpurdie 2503
  CREATE TABLE "RELEASE_MANAGER"."VIEWS" 
4040 dpurdie 2504
   (	"VIEW_ID" NUMBER, 
5172 dpurdie 2505
	"VIEW_NAME" VARCHAR2(30 BYTE), 
4040 dpurdie 2506
	"OWNER_ID" NUMBER, 
5172 dpurdie 2507
	"BASE_VIEW" CHAR(1 BYTE), 
2508
	"PUBLIC_READ" CHAR(1 BYTE)
2509
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2510
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2511
 NOCOMPRESS LOGGING
5172 dpurdie 2512
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2513
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2514
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2515
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2516
 
2517
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEWS"."OWNER_ID" IS '0:Public';
2518
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEWS"."BASE_VIEW" IS 'Y:Base View';
6031 dpurdie 2519
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "RM_READONLY";
2520
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "MS_READONLY";
5892 dpurdie 2521
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "DM_READONLY";
6999 dpurdie 2522
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2523
--------------------------------------------------------
2524
--  DDL for Table VIEW_DEF
2525
--------------------------------------------------------
2526
 
5172 dpurdie 2527
  CREATE TABLE "RELEASE_MANAGER"."VIEW_DEF" 
4040 dpurdie 2528
   (	"VIEW_ID" NUMBER, 
2529
	"PKG_ID" NUMBER
5172 dpurdie 2530
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2531
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2532
 NOCOMPRESS LOGGING
5172 dpurdie 2533
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2534
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2535
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2536
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2537
 
2538
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEW_DEF"."VIEW_ID" IS 'Non Base View ID';
2539
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEW_DEF"."PKG_ID" IS 'Package ID';
2540
   COMMENT ON TABLE "RELEASE_MANAGER"."VIEW_DEF"  IS 'Packages in a non-baseview';
6031 dpurdie 2541
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "RM_READONLY";
2542
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "MS_READONLY";
5892 dpurdie 2543
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "DM_READONLY";
6999 dpurdie 2544
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2545
--------------------------------------------------------
2546
--  DDL for Table VIEW_SETTINGS
2547
--------------------------------------------------------
2548
 
5172 dpurdie 2549
  CREATE TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" 
4040 dpurdie 2550
   (	"USER_ID" NUMBER, 
2551
	"VIEW_ID" NUMBER
5172 dpurdie 2552
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2553
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2554
 NOCOMPRESS LOGGING
5172 dpurdie 2555
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2556
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2557
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2558
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2559
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "RM_READONLY";
2560
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "MS_READONLY";
5892 dpurdie 2561
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "DM_READONLY";
6999 dpurdie 2562
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2563
--------------------------------------------------------
2564
--  DDL for Table VTREES
2565
--------------------------------------------------------
2566
 
5172 dpurdie 2567
  CREATE TABLE "RELEASE_MANAGER"."VTREES" 
4040 dpurdie 2568
   (	"VTREE_ID" NUMBER, 
2569
	"PROJ_ID" NUMBER, 
5172 dpurdie 2570
	"VTREE_NAME" VARCHAR2(50 BYTE), 
2571
	"HIDE" CHAR(1 BYTE)
2572
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2573
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2574
 NOCOMPRESS LOGGING
5172 dpurdie 2575
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2576
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2577
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2578
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2579
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "RM_READONLY";
2580
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "MS_READONLY";
5892 dpurdie 2581
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "DM_READONLY";
2582
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "RELEASE_MANAGER_READ";
6999 dpurdie 2583
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2584
--------------------------------------------------------
2585
--  DDL for Table VTREES_WORLD
2586
--------------------------------------------------------
2587
 
5172 dpurdie 2588
  CREATE TABLE "RELEASE_MANAGER"."VTREES_WORLD" 
4040 dpurdie 2589
   (	"WORLD_ID" NUMBER, 
2590
	"VTREE_ID" NUMBER
5172 dpurdie 2591
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2592
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2593
 NOCOMPRESS LOGGING
5172 dpurdie 2594
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2595
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2596
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2597
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2598
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "RM_READONLY";
2599
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "MS_READONLY";
5892 dpurdie 2600
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "DM_READONLY";
2601
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "RELEASE_MANAGER_READ";
6999 dpurdie 2602
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2603
--------------------------------------------------------
2604
--  DDL for Table WORK_IN_PROGRESS
2605
--------------------------------------------------------
2606
 
5172 dpurdie 2607
  CREATE TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" 
4040 dpurdie 2608
   (	"RTAG_ID" NUMBER, 
2609
	"PV_ID" NUMBER, 
2610
	"VIEW_ID" NUMBER
5172 dpurdie 2611
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2612
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2613
 NOCOMPRESS LOGGING
5172 dpurdie 2614
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2615
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2616
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2617
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2618
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "RM_READONLY";
2619
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "MS_READONLY";
5892 dpurdie 2620
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "DM_READONLY";
6999 dpurdie 2621
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2622
--------------------------------------------------------
2623
--  DDL for Table WORLDS
2624
--------------------------------------------------------
2625
 
5172 dpurdie 2626
  CREATE TABLE "RELEASE_MANAGER"."WORLDS" 
4040 dpurdie 2627
   (	"WORLD_ID" NUMBER, 
5172 dpurdie 2628
	"WORLD_NAME" VARCHAR2(30 BYTE), 
2629
	"WORLD_DESC" VARCHAR2(255 BYTE)
2630
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2631
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2632
 NOCOMPRESS LOGGING
5172 dpurdie 2633
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2634
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2635
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2636
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2637
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "RM_READONLY";
2638
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "MS_READONLY";
5892 dpurdie 2639
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "DM_READONLY";
6999 dpurdie 2640
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2641
--------------------------------------------------------
2642
--  DDL for View ENVIRONMENT_VIEW
2643
--------------------------------------------------------
2644
 
5172 dpurdie 2645
  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") AS 
7039 dpurdie 2646
  WITH building as (
2647
            SELECT unique rl.CURRENT_PV_ID as pv_id, rc.RTAG_ID 
2648
            FROM RELEASE_CONFIG rc, RELEASE_TAGS rt, RUN_LEVEL rl 
2649
            WHERE rt.RTAG_ID = rc.RTAG_ID 
2650
            AND rc.bmcon_id is not null
2651
            AND rt.OFFICIAL in ( 'N', 'R', 'C')
2652
            AND rl.RCON_ID(+) = rc.RCON_ID
2653
            AND rl.CURRENT_PKG_ID_BEING_BUILT is not null
2654
            AND NVL(rl.PAUSE,0) < 2
2655
        ), scheduled as (
2656
            SELECT pv_id, RTAG_ID from daemon_instructions di
2657
            WHERE di.op_code = 2
2658
        ) , buildFail as (
2659
            SELECT pv_id, root_pv_id, RTAG_ID from do_not_ripple dnr
2660
        ) , baseData as (
2661
            SELECT 2 AS ENV_AREA,
2662
                rc.PV_ID,
2663
                rc.RTAG_ID,
2664
                rc.BASE_VIEW_ID AS VIEW_ID,
2665
                rc.PKG_STATE,
2666
                rc.DEPRECATED_STATE,
2667
                rc.INSERTOR_ID,
2668
                rc.INSERT_STAMP,
2669
                ' ' AS OPERATION
2670
              FROM RELEASE_CONTENT rc
2671
            UNION
2672
            SELECT 0 AS ENV_AREA,
2673
                wip.PV_ID,
2674
                wip.RTAG_ID,
2675
                wip.VIEW_ID,
2676
                NULL AS PKG_STATE,
2677
             NULL AS DEPRECATED_STATE,
2678
                NULL AS INSERTOR_ID,
2679
                NULL AS INSERT_STAMP,
2680
                ' ' AS OPERATION
2681
              FROM WORK_IN_PROGRESS wip
2682
            UNION
2683
            SELECT 1 AS ENV_AREA,
2684
                pl.PV_ID,
2685
                pl.RTAG_ID,
2686
                pl.VIEW_ID,
2687
                NULL AS PKG_STATE,
2688
             NULL AS DEPRECATED_STATE,
2689
                NULL AS INSERTOR_ID,
2690
                NULL AS INSERT_STAMP,
2691
                pl.operation
2692
            FROM PLANNED pl
2693
        )
2694
 
2695
SELECT unique rc.ENV_AREA,
2696
    rc.PV_ID,
2697
    rc.RTAG_ID,
2698
    rc.VIEW_ID,
2699
    Case
2700
        When sdi.pv_id is not null then 14
2701
        When bb.pv_id is not null then 15
2702
        When bf.pv_id is not null AND bf.root_pv_id is NULL then 16
2703
        When bf.pv_id is not null AND bf.root_pv_id is NOT NULL then  17
2704
        When rc.pkg_state is not null then rc.pkg_state
2705
        Else 0
2706
    End as pkg_state,
2707
    rc.DEPRECATED_STATE,
2708
    rc.INSERTOR_ID,
2709
    rc.INSERT_STAMP,
2710
    rc.OPERATION
2711
  FROM baseData rc,
2712
       scheduled sdi,
2713
       buildFail bf,
2714
       building bb
2715
  WHERE sdi.pv_id(+)    = rc.pv_id  AND sdi.rtag_id(+) = rc.rtag_id
2716
        AND bf.pv_id(+) = rc.pv_id  AND bf.rtag_id(+) = rc.rtag_id
2717
        AND bb.pv_id(+) = rc.pv_id  AND bb.rtag_id(+) = rc.rtag_id
6999 dpurdie 2718
;
6031 dpurdie 2719
  GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "RM_READONLY";
5892 dpurdie 2720
  GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "MS_READONLY";
6999 dpurdie 2721
  GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2722
--------------------------------------------------------
4211 dpurdie 2723
--  DDL for Index PK_LICENCES
4040 dpurdie 2724
--------------------------------------------------------
2725
 
5172 dpurdie 2726
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_LICENCES" ON "RELEASE_MANAGER"."LICENCES" ("LICENCE") 
2727
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2728
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2729
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2730
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2731
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2732
--------------------------------------------------------
4211 dpurdie 2733
--  DDL for Index UNQ_PKG_BUILD_ENV
4040 dpurdie 2734
--------------------------------------------------------
2735
 
5172 dpurdie 2736
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PKG_BUILD_ENV" ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ("PV_ID", "BE_ID") 
2737
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2738
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2739
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2740
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2741
  TABLESPACE "RELEASE_MANAGER_INDX" ;
2742
--------------------------------------------------------
2743
--  DDL for Index SDK_NAMES_UK1
2744
--------------------------------------------------------
5172 dpurdie 2745
 
2746
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_NAMES_UK1" ON "RELEASE_MANAGER"."SDK_NAMES" ("SDK_NAME") 
2747
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2748
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2749
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2750
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2751
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2752
--------------------------------------------------------
4211 dpurdie 2753
--  DDL for Index UNQ_PACKAGES
4040 dpurdie 2754
--------------------------------------------------------
2755
 
6999 dpurdie 2756
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGES" ON "RELEASE_MANAGER"."PACKAGES" ("PKG_NAME", "PKG_ID") 
5172 dpurdie 2757
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2758
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2759
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2760
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2761
  TABLESPACE "RELEASE_MANAGER_INDX" ;
2762
--------------------------------------------------------
2763
--  DDL for Index INX_PACKAGES_ALIAS
2764
--------------------------------------------------------
5172 dpurdie 2765
 
6999 dpurdie 2766
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_ALIAS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID", "V_EXT") 
5172 dpurdie 2767
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2768
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2769
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2770
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2771
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2772
--------------------------------------------------------
2773
--  DDL for Index CODE_REVIEW_URL_PK
2774
--------------------------------------------------------
2775
 
5172 dpurdie 2776
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CODE_REVIEW_URL_PK" ON "RELEASE_MANAGER"."CODE_REVIEW_URL" ("CR_ID") 
2777
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2778
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2779
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2780
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2781
  TABLESPACE "RELEASE_MANAGER_INDX" ;
2782
--------------------------------------------------------
2783
--  DDL for Index SDK_NAMES_PK
2784
--------------------------------------------------------
5172 dpurdie 2785
 
2786
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_NAMES_PK" ON "RELEASE_MANAGER"."SDK_NAMES" ("SDK_ID") 
2787
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2788
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2789
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2790
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2791
  TABLESPACE "RELEASE_MANAGER_INDX" ;
2792
--------------------------------------------------------
2793
--  DDL for Index INX_ACTION_TIMESTAMP
2794
--------------------------------------------------------
5172 dpurdie 2795
 
2796
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_TIMESTAMP" ON "RELEASE_MANAGER"."ACTION_LOG" ("ACTION_TIMESTAMP") 
2797
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2798
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2799
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2800
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2801
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2802
--------------------------------------------------------
4211 dpurdie 2803
--  DDL for Index INX_UT_COMPLETED
4040 dpurdie 2804
--------------------------------------------------------
2805
 
5172 dpurdie 2806
  CREATE INDEX "RELEASE_MANAGER"."INX_UT_COMPLETED" ON "RELEASE_MANAGER"."UNIT_TESTS" ("COMPLETION_DATE", "COMPLETED_BY") 
2807
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2808
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2809
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2810
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2811
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2812
--------------------------------------------------------
6999 dpurdie 2813
--  DDL for Index BLAT_PROJECTS_INDEX1
2814
--------------------------------------------------------
2815
 
2816
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BLAT_PROJECTS_INDEX1" ON "RELEASE_MANAGER"."BLAT_PROJECTS" ("BLAT_ID", "PROJ_ID") 
2817
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2818
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2819
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2820
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2821
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2822
--------------------------------------------------------
4308 dpurdie 2823
--  DDL for Index INX_PV_ID_PKGDOC
2824
--------------------------------------------------------
4040 dpurdie 2825
 
5172 dpurdie 2826
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_ID_PKGDOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID") 
2827
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2828
  STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2829
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2830
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2831
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2832
--------------------------------------------------------
2833
--  DDL for Index UNQ_VIEW_SETTINGS
2834
--------------------------------------------------------
4040 dpurdie 2835
 
5172 dpurdie 2836
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEW_SETTINGS" ON "RELEASE_MANAGER"."VIEW_SETTINGS" ("USER_ID", "VIEW_ID") 
2837
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2838
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2839
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2840
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2841
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2842
--------------------------------------------------------
2843
--  DDL for Index INX_PP_PV_ID
2844
--------------------------------------------------------
4040 dpurdie 2845
 
5172 dpurdie 2846
  CREATE INDEX "RELEASE_MANAGER"."INX_PP_PV_ID" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PV_ID") 
2847
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2848
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2849
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2850
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2851
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2852
--------------------------------------------------------
2853
--  DDL for Index PK_VIEWS
2854
--------------------------------------------------------
4040 dpurdie 2855
 
5172 dpurdie 2856
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_VIEWS" ON "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") 
2857
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2858
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2859
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2860
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2861
  TABLESPACE "RELEASE_MANAGER_INDX" ;
2862
--------------------------------------------------------
2863
--  DDL for Index CQ_USERS_PK
2864
--------------------------------------------------------
5384 dpurdie 2865
 
2866
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_USERS_PK" ON "RELEASE_MANAGER"."CQ_USERS" ("DBID") 
2867
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2868
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2869
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2870
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2871
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2872
--------------------------------------------------------
2873
--  DDL for Index PK_PACKAGES
2874
--------------------------------------------------------
4040 dpurdie 2875
 
5172 dpurdie 2876
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PACKAGES" ON "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") 
2877
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2878
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2879
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2880
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2881
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2882
--------------------------------------------------------
2883
--  DDL for Index PK_TEST_TYPES
2884
--------------------------------------------------------
4040 dpurdie 2885
 
5172 dpurdie 2886
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_TEST_TYPES" ON "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_ID") 
2887
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2888
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2889
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2890
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2891
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2892
--------------------------------------------------------
2893
--  DDL for Index UNQ_ACTTYPE_ID
2894
--------------------------------------------------------
4040 dpurdie 2895
 
5172 dpurdie 2896
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_ACTTYPE_ID" ON "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") 
2897
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2898
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2899
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2900
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2901
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2902
--------------------------------------------------------
2903
--  DDL for Index INX_PROJ_ACTION_DATE_TIME
2904
--------------------------------------------------------
4040 dpurdie 2905
 
5172 dpurdie 2906
  CREATE INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_DATE_TIME" ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ("ACTION_DATETIME") 
2907
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2908
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2909
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2910
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2911
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2912
--------------------------------------------------------
2913
--  DDL for Index INX_RC_PKG_STATE
2914
--------------------------------------------------------
4040 dpurdie 2915
 
5172 dpurdie 2916
  CREATE INDEX "RELEASE_MANAGER"."INX_RC_PKG_STATE" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("PKG_STATE") 
2917
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2918
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2919
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2920
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2921
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2922
--------------------------------------------------------
6999 dpurdie 2923
--  DDL for Index BLAT_SERVERS_PK
2924
--------------------------------------------------------
2925
 
2926
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BLAT_SERVERS_PK" ON "RELEASE_MANAGER"."BLAT_SERVERS" ("BLAT_ID") 
2927
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2928
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2929
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2930
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2931
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2932
--------------------------------------------------------
4308 dpurdie 2933
--  DDL for Index PROCESSES_PK
2934
--------------------------------------------------------
4040 dpurdie 2935
 
5172 dpurdie 2936
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PROCESSES_PK" ON "RELEASE_MANAGER"."PROCESSES" ("PROC_ID") 
2937
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2938
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2939
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2940
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2941
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2942
--------------------------------------------------------
2943
--  DDL for Index INX_PACKAGE_DEPS_DPV_ID
2944
--------------------------------------------------------
4040 dpurdie 2945
 
5172 dpurdie 2946
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPV_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPV_ID") 
2947
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2948
  STORAGE(INITIAL 75497472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2949
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2950
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2951
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2952
--------------------------------------------------------
6999 dpurdie 2953
--  DDL for Index PACKAGE_VERSIONS_RNOTE
2954
--------------------------------------------------------
6031 dpurdie 2955
 
7039 dpurdie 2956
  CREATE INDEX "RELEASE_MANAGER"."PACKAGE_VERSIONS_RNOTE" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("RELEASE_NOTES_INFO", "DLOCKED", "MODIFIED_STAMP") 
6031 dpurdie 2957
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2958
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2959
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2960
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2961
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2962
--------------------------------------------------------
4308 dpurdie 2963
--  DDL for Index INX_PACKAGES_PKG_VERSION
2964
--------------------------------------------------------
4040 dpurdie 2965
 
5172 dpurdie 2966
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_VERSION" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_VERSION") 
2967
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2968
  STORAGE(INITIAL 10485760 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2969
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2970
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2971
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2972
--------------------------------------------------------
2973
--  DDL for Index UNQ_PACKAGE_METRICS
2974
--------------------------------------------------------
4040 dpurdie 2975
 
5172 dpurdie 2976
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_METRICS" ON "RELEASE_MANAGER"."PACKAGE_METRICS" ("PV_ID") 
2977
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2978
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2979
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2980
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2981
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2982
--------------------------------------------------------
2983
--  DDL for Index UNQ_PLATFORM
2984
--------------------------------------------------------
4040 dpurdie 2985
 
5172 dpurdie 2986
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PLATFORM" ON "RELEASE_MANAGER"."PLATFORMS" ("NAME") 
2987
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2988
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2989
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2990
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 2991
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2992
--------------------------------------------------------
2993
--  DDL for Index UNQ_VIEWS
2994
--------------------------------------------------------
4040 dpurdie 2995
 
5172 dpurdie 2996
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEWS" ON "RELEASE_MANAGER"."VIEWS" ("VIEW_NAME", "OWNER_ID") 
2997
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2998
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2999
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3000
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3001
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3002
--------------------------------------------------------
4211 dpurdie 3003
--  DDL for Index PRODUCT_STATES_PK
4040 dpurdie 3004
--------------------------------------------------------
3005
 
5172 dpurdie 3006
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PRODUCT_STATES_PK" ON "RELEASE_MANAGER"."PRODUCT_STATES" ("STATE_ID") 
3007
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3008
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3009
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3010
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3011
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3012
--------------------------------------------------------
4211 dpurdie 3013
--  DDL for Index PK_MESSAGE_BOARD
4040 dpurdie 3014
--------------------------------------------------------
3015
 
5172 dpurdie 3016
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_MESSAGE_BOARD" ON "RELEASE_MANAGER"."MESSAGE_BOARD" ("MSG_ID") 
3017
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3018
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3019
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3020
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3021
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3022
--------------------------------------------------------
3023
--  DDL for Index PK_BUILD_MACHINE_CONFIG
3024
--------------------------------------------------------
4040 dpurdie 3025
 
5172 dpurdie 3026
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_BUILD_MACHINE_CONFIG" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ("BMCON_ID") 
3027
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3028
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3029
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3030
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3031
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3032
--------------------------------------------------------
3033
--  DDL for Index INX_MSGBOARD
3034
--------------------------------------------------------
4040 dpurdie 3035
 
5172 dpurdie 3036
  CREATE INDEX "RELEASE_MANAGER"."INX_MSGBOARD" ON "RELEASE_MANAGER"."MESSAGE_BOARD" ("EXPIRY_DATE", "DUE_DATE") 
3037
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3038
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3039
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3040
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3041
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3042
--------------------------------------------------------
3043
--  DDL for Index PK_VTREES
3044
--------------------------------------------------------
4040 dpurdie 3045
 
5172 dpurdie 3046
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_VTREES" ON "RELEASE_MANAGER"."VTREES" ("VTREE_ID") 
3047
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3048
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3049
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3050
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3051
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3052
--------------------------------------------------------
3053
--  DDL for Index UNQ_UT_PART1
3054
--------------------------------------------------------
4040 dpurdie 3055
 
5172 dpurdie 3056
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_UT_PART1" ON "RELEASE_MANAGER"."UNIT_TESTS" ("PV_ID", "TEST_ID") 
3057
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3058
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3059
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3060
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3061
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3062
--------------------------------------------------------
3063
--  DDL for Index UNQ_BUILD_ENV
3064
--------------------------------------------------------
4040 dpurdie 3065
 
5172 dpurdie 3066
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV" ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_NAME") 
3067
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3068
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3069
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3070
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3071
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3072
--------------------------------------------------------
6999 dpurdie 3073
--  DDL for Index PK_RUN_LEVEL
3074
--------------------------------------------------------
6031 dpurdie 3075
 
3076
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_RUN_LEVEL" ON "RELEASE_MANAGER"."RUN_LEVEL" ("RCON_ID") 
3077
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3078
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3079
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3080
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3081
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3082
--------------------------------------------------------
4211 dpurdie 3083
--  DDL for Index INX_ACTION_DATE_TIME
4040 dpurdie 3084
--------------------------------------------------------
3085
 
5172 dpurdie 3086
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_DATE_TIME" ON "RELEASE_MANAGER"."ACTION_LOG" ("ACTION_DATETIME") 
3087
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3088
  STORAGE(INITIAL 92274688 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3089
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3090
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3091
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3092
--------------------------------------------------------
4308 dpurdie 3093
--  DDL for Index UNQ_BUILD_MACHINE_CONFIG02
3094
--------------------------------------------------------
4040 dpurdie 3095
 
5172 dpurdie 3096
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_MACHINE_CONFIG02" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ("MACHINE_HOSTNAME") 
3097
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3098
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3099
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3100
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3101
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3102
--------------------------------------------------------
6999 dpurdie 3103
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX6
3104
--------------------------------------------------------
5384 dpurdie 3105
 
3106
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX6" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("NEW_NUM") 
3107
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3108
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3109
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3110
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3111
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3112
--------------------------------------------------------
4308 dpurdie 3113
--  DDL for Index BUILD_MACHINES_PK
3114
--------------------------------------------------------
4040 dpurdie 3115
 
5172 dpurdie 3116
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_MACHINES_PK" ON "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") 
3117
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3118
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3119
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3120
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3121
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3122
--------------------------------------------------------
3123
--  DDL for Index INX_TTB_SESSION
3124
--------------------------------------------------------
4040 dpurdie 3125
 
5172 dpurdie 3126
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_SESSION" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("SESSION_NUM") 
3127
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3128
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3129
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3130
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3131
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3132
--------------------------------------------------------
3133
--  DDL for Index UNQ_RTD
3134
--------------------------------------------------------
4040 dpurdie 3135
 
5172 dpurdie 3136
  CREATE INDEX "RELEASE_MANAGER"."UNQ_RTD" ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ("PV_ID", "RTD_ID") 
3137
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3138
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3139
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3140
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3141
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3142
--------------------------------------------------------
3143
--  DDL for Index BUILD_PLAN_PK
3144
--------------------------------------------------------
5892 dpurdie 3145
 
3146
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_PLAN_PK" ON "RELEASE_MANAGER"."BUILD_PLAN" ("RTAG_ID", "BUILD_ORDER", "PV_ID") 
3147
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3148
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3149
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3150
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3151
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3152
--------------------------------------------------------
3153
--  DDL for Index SDK_CONTENT_INDEX1
3154
--------------------------------------------------------
5172 dpurdie 3155
 
3156
  CREATE INDEX "RELEASE_MANAGER"."SDK_CONTENT_INDEX1" ON "RELEASE_MANAGER"."SDK_CONTENT" ("SDKTAG_ID") 
3157
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3158
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3159
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3160
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3161
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3162
--------------------------------------------------------
3163
--  DDL for Index CQ_STATEDEF_PK
3164
--------------------------------------------------------
5384 dpurdie 3165
 
3166
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_STATEDEF_PK" ON "RELEASE_MANAGER"."CQ_STATEDEF" ("ID") 
3167
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3168
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3169
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3170
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3171
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3172
--------------------------------------------------------
4211 dpurdie 3173
--  DDL for Index INX_RL_RTAG_ID
4040 dpurdie 3174
--------------------------------------------------------
3175
 
5172 dpurdie 3176
  CREATE INDEX "RELEASE_MANAGER"."INX_RL_RTAG_ID" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("RTAG_ID") 
3177
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3178
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3179
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3180
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3181
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3182
--------------------------------------------------------
4211 dpurdie 3183
--  DDL for Index UNQ_VIEW_DEF
4040 dpurdie 3184
--------------------------------------------------------
3185
 
5172 dpurdie 3186
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEW_DEF" ON "RELEASE_MANAGER"."VIEW_DEF" ("VIEW_ID", "PKG_ID") 
3187
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3188
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3189
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3190
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3191
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3192
--------------------------------------------------------
4211 dpurdie 3193
--  DDL for Index INX_PACKAGES_PKG_NAME
4040 dpurdie 3194
--------------------------------------------------------
3195
 
5172 dpurdie 3196
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_NAME" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID") 
3197
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3198
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3199
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3200
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3201
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3202
--------------------------------------------------------
4211 dpurdie 3203
--  DDL for Index INX_PCOMP_FK_PV_ID
4040 dpurdie 3204
--------------------------------------------------------
3205
 
5172 dpurdie 3206
  CREATE INDEX "RELEASE_MANAGER"."INX_PCOMP_FK_PV_ID" ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" ("PV_ID") 
3207
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3208
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3209
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3210
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3211
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3212
--------------------------------------------------------
4211 dpurdie 3213
--  DDL for Index DAEMON_INSTRUCTIONS_UK1
4040 dpurdie 3214
--------------------------------------------------------
3215
 
5172 dpurdie 3216
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS_UK1" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("OP_CODE", "RTAG_ID", "PV_ID") 
3217
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3218
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3219
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3220
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3221
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3222
--------------------------------------------------------
4211 dpurdie 3223
--  DDL for Index INX_FILE_NAME
4040 dpurdie 3224
--------------------------------------------------------
3225
 
5172 dpurdie 3226
  CREATE INDEX "RELEASE_MANAGER"."INX_FILE_NAME" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" (UPPER("FILE_NAME")) 
3227
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3228
  STORAGE(INITIAL 1147142144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3229
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3230
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3231
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3232
--------------------------------------------------------
4211 dpurdie 3233
--  DDL for Index INX_IS_PATCH_IGNORE
4040 dpurdie 3234
--------------------------------------------------------
3235
 
5172 dpurdie 3236
  CREATE INDEX "RELEASE_MANAGER"."INX_IS_PATCH_IGNORE" ON "RELEASE_MANAGER"."IGNORE_WARNINGS" ("IS_PATCH_IGNORE") 
3237
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3238
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3239
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3240
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3241
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3242
--------------------------------------------------------
6999 dpurdie 3243
--  DDL for Index PK_TEST_RUN
3244
--------------------------------------------------------
6031 dpurdie 3245
 
3246
  CREATE INDEX "RELEASE_MANAGER"."PK_TEST_RUN" ON "RELEASE_MANAGER"."TEST_RUN" ("TESTRUN_ID") 
3247
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3248
  STORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3249
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3250
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3251
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3252
--------------------------------------------------------
4211 dpurdie 3253
--  DDL for Index UNQ_BUILD_ENV_DOCS
4040 dpurdie 3254
--------------------------------------------------------
3255
 
5172 dpurdie 3256
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV_DOCS" ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" ("BE_ID", "DOC_NUM") 
3257
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3258
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3259
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3260
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3261
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3262
--------------------------------------------------------
4211 dpurdie 3263
--  DDL for Index INX_PROJ_ACTION_LOG_PROJ
4040 dpurdie 3264
--------------------------------------------------------
3265
 
5172 dpurdie 3266
  CREATE INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_LOG_PROJ" ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ("PROJ_ID") 
3267
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3268
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3269
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3270
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3271
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3272
--------------------------------------------------------
3273
--  DDL for Index LICENCING_PK
3274
--------------------------------------------------------
5384 dpurdie 3275
 
3276
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."LICENCING_PK" ON "RELEASE_MANAGER"."LICENCING" ("PV_ID", "LICENCE") 
3277
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3278
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3279
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3280
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3281
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3282
--------------------------------------------------------
3283
--  DDL for Index BUILD_SERVICE_CONFIG_INDEX1
3284
--------------------------------------------------------
5172 dpurdie 3285
 
3286
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG_INDEX1" ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" ("SERVICE") 
3287
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3288
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3289
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3290
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3291
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3292
--------------------------------------------------------
3293
--  DDL for Index RELEASE_MODIFIED_PK
3294
--------------------------------------------------------
5172 dpurdie 3295
 
3296
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."RELEASE_MODIFIED_PK" ON "RELEASE_MANAGER"."RELEASE_MODIFIED" ("RTAG_ID") 
3297
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3298
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3299
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3300
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3301
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3302
--------------------------------------------------------
3303
--  DDL for Index CQ_HISTORY_INDEX2
3304
--------------------------------------------------------
5384 dpurdie 3305
 
3306
  CREATE INDEX "RELEASE_MANAGER"."CQ_HISTORY_INDEX2" ON "RELEASE_MANAGER"."CQ_HISTORY" ("ENTITYDEF_ID") 
3307
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3308
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3309
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3310
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3311
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3312
--------------------------------------------------------
3313
--  DDL for Index INX_TTB_LEVEL_NUM
3314
--------------------------------------------------------
3315
 
5172 dpurdie 3316
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_LEVEL_NUM" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("LEVEL_NUM") 
3317
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3318
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3319
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3320
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3321
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3322
--------------------------------------------------------
6999 dpurdie 3323
--  DDL for Index BLAT_SERVERS_UK1
3324
--------------------------------------------------------
3325
 
3326
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BLAT_SERVERS_UK1" ON "RELEASE_MANAGER"."BLAT_SERVERS" ("BLAT_SERVER_NAME") 
3327
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3328
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3329
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3330
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3331
  TABLESPACE "RELEASE_MANAGER_DATA" ;
3332
--------------------------------------------------------
4211 dpurdie 3333
--  DDL for Index UNQ_WORK_IN_PROGRESS
4040 dpurdie 3334
--------------------------------------------------------
3335
 
5172 dpurdie 3336
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_WORK_IN_PROGRESS" ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" ("RTAG_ID", "PV_ID") 
3337
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3338
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3339
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3340
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3341
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3342
--------------------------------------------------------
4211 dpurdie 3343
--  DDL for Index INX_PACKAGES_V_NMM
4040 dpurdie 3344
--------------------------------------------------------
3345
 
6999 dpurdie 3346
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_NMM" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_NMM") 
5172 dpurdie 3347
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3348
  STORAGE(INITIAL 9437184 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3349
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3350
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3351
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3352
--------------------------------------------------------
6999 dpurdie 3353
--  DDL for Index TEST_RUN_IDX_BUILD_ID
3354
--------------------------------------------------------
6031 dpurdie 3355
 
3356
  CREATE INDEX "RELEASE_MANAGER"."TEST_RUN_IDX_BUILD_ID" ON "RELEASE_MANAGER"."TEST_RUN" ("BUILD_ID") 
3357
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3358
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3359
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3360
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3361
  TABLESPACE "RELEASE_MANAGER_DATA" ;
3362
--------------------------------------------------------
4211 dpurdie 3363
--  DDL for Index UNQ_PLANNED
4040 dpurdie 3364
--------------------------------------------------------
3365
 
5172 dpurdie 3366
  CREATE INDEX "RELEASE_MANAGER"."UNQ_PLANNED" ON "RELEASE_MANAGER"."PLANNED" ("RTAG_ID", "PV_ID") 
3367
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3368
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3369
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3370
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3371
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3372
--------------------------------------------------------
6999 dpurdie 3373
--  DDL for Index PV_BUILDINFO
3374
--------------------------------------------------------
3375
 
3376
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PV_BUILDINFO" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID", "PKG_VERSION", "MODIFIED_STAMP", "MODIFIER_ID", "DLOCKED", "BUILD_TIME", "BUILD_TYPE", "CREATED_STAMP") 
3377
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3378
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3379
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3380
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3381
  TABLESPACE "RELEASE_MANAGER_DATA" ;
3382
--------------------------------------------------------
4211 dpurdie 3383
--  DDL for Index INX_TES_PKGEXT
4040 dpurdie 3384
--------------------------------------------------------
3385
 
5172 dpurdie 3386
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_PKGEXT" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("PKG_ID", "V_EXT") 
3387
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3388
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3389
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3390
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3391
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3392
--------------------------------------------------------
3393
--  DDL for Index UNQ_BUILD_MACHINE_CONFIG01
3394
--------------------------------------------------------
4040 dpurdie 3395
 
5172 dpurdie 3396
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_MACHINE_CONFIG01" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" (LOWER("DISPLAY_NAME")) 
3397
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3398
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3399
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3400
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3401
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3402
--------------------------------------------------------
6999 dpurdie 3403
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX2
3404
--------------------------------------------------------
5384 dpurdie 3405
 
3406
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX2" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("STATE") 
3407
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3408
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3409
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3410
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3411
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3412
--------------------------------------------------------
3413
--  DDL for Index TEMP_ENV_DEPS_PK
3414
--------------------------------------------------------
5384 dpurdie 3415
 
3416
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."TEMP_ENV_DEPS_PK" ON "RELEASE_MANAGER"."TEMP_ENV_DEPS" ("PV_ID", "SESSION_NUM", "DPV_ID") 
3417
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3418
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3419
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3420
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3421
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3422
--------------------------------------------------------
4211 dpurdie 3423
--  DDL for Index UNQ_RELEASE_LINKS
4040 dpurdie 3424
--------------------------------------------------------
3425
 
5172 dpurdie 3426
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_LINKS" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("RTAG_ID", "REF_RTAG_ID") 
3427
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3428
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3429
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3430
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3431
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3432
--------------------------------------------------------
3433
--  DDL for Index UNQ_PKG_DOC
3434
--------------------------------------------------------
4040 dpurdie 3435
 
5172 dpurdie 3436
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PKG_DOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID", "DOC_NUM") 
3437
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3438
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3439
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3440
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3441
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3442
--------------------------------------------------------
3443
--  DDL for Index LXR_STATE_PK
3444
--------------------------------------------------------
5384 dpurdie 3445
 
3446
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."LXR_STATE_PK" ON "RELEASE_MANAGER"."LXR_STATE" ("RTAG_ID") 
3447
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3448
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3449
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3450
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3451
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3452
--------------------------------------------------------
4211 dpurdie 3453
--  DDL for Index DAEMON_INSTRUCTIONS_PK
4040 dpurdie 3454
--------------------------------------------------------
3455
 
5172 dpurdie 3456
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS_PK" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("DAEMON_INSTRUCTIONS_ID") 
3457
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3458
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3459
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3460
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3461
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3462
--------------------------------------------------------
3463
--  DDL for Index INX_DAEMON_INST_SCHED_DATETIME
3464
--------------------------------------------------------
4040 dpurdie 3465
 
5172 dpurdie 3466
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_SCHED_DATETIME" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("SCHEDULED_DATETIME") 
3467
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3468
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3469
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3470
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3471
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3472
--------------------------------------------------------
4211 dpurdie 3473
--  DDL for Index INX_TTB_PKG
4040 dpurdie 3474
--------------------------------------------------------
3475
 
5172 dpurdie 3476
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_PKG" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("PKG_ID", "V_EXT") 
3477
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3478
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3479
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3480
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3481
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3482
--------------------------------------------------------
4211 dpurdie 3483
--  DDL for Index UNQ_VALIDATION_RULES
4040 dpurdie 3484
--------------------------------------------------------
3485
 
6031 dpurdie 3486
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VALIDATION_RULES" ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" ("FIELD_NAME") 
5172 dpurdie 3487
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3488
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3489
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3490
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3491
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3492
--------------------------------------------------------
3493
--  DDL for Index BUILD_STANDARDS_ADDENDUM_PK
3494
--------------------------------------------------------
4040 dpurdie 3495
 
5172 dpurdie 3496
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM_PK" ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ("BSA_ID") 
3497
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3498
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3499
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3500
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3501
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3502
--------------------------------------------------------
4211 dpurdie 3503
--  DDL for Index INX_PV_OWNER_ID
4040 dpurdie 3504
--------------------------------------------------------
3505
 
5172 dpurdie 3506
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_OWNER_ID" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("OWNER_ID") 
3507
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3508
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3509
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3510
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3511
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3512
--------------------------------------------------------
4211 dpurdie 3513
--  DDL for Index INX_TES_TES_STATE
4040 dpurdie 3514
--------------------------------------------------------
3515
 
5172 dpurdie 3516
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_TES_STATE" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("TES_STATE") 
3517
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3518
  STORAGE(INITIAL 458752 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3519
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3520
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3521
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3522
--------------------------------------------------------
6999 dpurdie 3523
--  DDL for Index INX_PV_MODIFIER
3524
--------------------------------------------------------
3525
 
3526
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_MODIFIER" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("MODIFIER_ID", "MODIFIED_STAMP") 
3527
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3528
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3529
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3530
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3531
  TABLESPACE "RELEASE_MANAGER_DATA" ;
3532
--------------------------------------------------------
4308 dpurdie 3533
--  DDL for Index UNQ_AN_PART1
3534
--------------------------------------------------------
4040 dpurdie 3535
 
5172 dpurdie 3536
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_AN_PART1" ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" ("PV_ID", "NOTE_ID") 
3537
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3538
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3539
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3540
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3541
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3542
--------------------------------------------------------
4211 dpurdie 3543
--  DDL for Index UNQ_RELEASE_CONTENTS
4040 dpurdie 3544
--------------------------------------------------------
3545
 
5172 dpurdie 3546
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_CONTENTS" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("RTAG_ID", "PV_ID") 
3547
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3548
  STORAGE(INITIAL 10485760 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3549
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3550
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3551
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3552
--------------------------------------------------------
3553
--  DDL for Index INX_ACTION_LOG_PV_ID
3554
--------------------------------------------------------
4040 dpurdie 3555
 
5172 dpurdie 3556
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_LOG_PV_ID" ON "RELEASE_MANAGER"."ACTION_LOG" ("PV_ID") 
3557
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3558
  STORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3559
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3560
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3561
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3562
--------------------------------------------------------
4211 dpurdie 3563
--  DDL for Index UNQ_TEST_TYPE_NAME
4040 dpurdie 3564
--------------------------------------------------------
3565
 
5172 dpurdie 3566
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_TEST_TYPE_NAME" ON "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_NAME") 
3567
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3568
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3569
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3570
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3571
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3572
--------------------------------------------------------
3573
--  DDL for Index PEGGED_VERSIONS_INDEX1
3574
--------------------------------------------------------
5172 dpurdie 3575
 
3576
  CREATE INDEX "RELEASE_MANAGER"."PEGGED_VERSIONS_INDEX1" ON "RELEASE_MANAGER"."PEGGED_VERSIONS" ("RTAG_ID", "PV_ID") 
3577
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3578
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3579
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3580
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3581
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3582
--------------------------------------------------------
4308 dpurdie 3583
--  DDL for Index PKNOTE_MANAGER1
3584
--------------------------------------------------------
4040 dpurdie 3585
 
5172 dpurdie 3586
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PKNOTE_MANAGER1" ON "RELEASE_MANAGER"."NOTE_MANAGER" ("NID") 
3587
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3588
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3589
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3590
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3591
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3592
--------------------------------------------------------
3593
--  DDL for Index INX_PACKAGES_V_MM
3594
--------------------------------------------------------
4040 dpurdie 3595
 
6999 dpurdie 3596
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_MM" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_MM") 
5172 dpurdie 3597
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3598
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3599
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3600
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3601
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3602
--------------------------------------------------------
3603
--  DDL for Index INX_CODE_REVIEW
3604
--------------------------------------------------------
4040 dpurdie 3605
 
5172 dpurdie 3606
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_CODE_REVIEW" ON "RELEASE_MANAGER"."CODE_REVIEWS" ("PV_ID") 
3607
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3608
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3609
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3610
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3611
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3612
--------------------------------------------------------
4211 dpurdie 3613
--  DDL for Index UNQ_VTREES
4040 dpurdie 3614
--------------------------------------------------------
3615
 
5172 dpurdie 3616
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VTREES" ON "RELEASE_MANAGER"."VTREES" ("PROJ_ID", "VTREE_NAME") 
3617
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3618
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3619
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3620
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3621
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3622
--------------------------------------------------------
3623
--  DDL for Index INX_PACKAGE_DEPS_PKG_ID
3624
--------------------------------------------------------
4040 dpurdie 3625
 
5172 dpurdie 3626
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PKG_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PKG_ID") 
3627
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3628
  STORAGE(INITIAL 83886080 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3629
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3630
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3631
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3632
--------------------------------------------------------
4211 dpurdie 3633
--  DDL for Index UNQ_PROJECTS
4040 dpurdie 3634
--------------------------------------------------------
3635
 
5172 dpurdie 3636
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PROJECTS" ON "RELEASE_MANAGER"."PROJECTS" ("PROJ_NAME") 
3637
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3638
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3639
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3640
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3641
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3642
--------------------------------------------------------
3643
--  DDL for Index INX_PACKAGES_V_EXT
3644
--------------------------------------------------------
4040 dpurdie 3645
 
5172 dpurdie 3646
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_EXT" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_EXT") 
3647
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3648
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3649
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3650
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3651
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3652
--------------------------------------------------------
4211 dpurdie 3653
--  DDL for Index PK_PROJECTS
4040 dpurdie 3654
--------------------------------------------------------
3655
 
5172 dpurdie 3656
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PROJECTS" ON "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") 
3657
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3658
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3659
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3660
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3661
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3662
--------------------------------------------------------
3663
--  DDL for Index INX_TES_PV
3664
--------------------------------------------------------
4040 dpurdie 3665
 
5172 dpurdie 3666
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_PV" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("PV_ID") 
3667
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3668
  STORAGE(INITIAL 851968 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3669
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3670
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3671
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3672
--------------------------------------------------------
6999 dpurdie 3673
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX5
3674
--------------------------------------------------------
5384 dpurdie 3675
 
3676
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX5" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PRODUCT") 
3677
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3678
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3679
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3680
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3681
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3682
--------------------------------------------------------
4211 dpurdie 3683
--  DDL for Index UNQ_VTREE_WORLD
4040 dpurdie 3684
--------------------------------------------------------
3685
 
5172 dpurdie 3686
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VTREE_WORLD" ON "RELEASE_MANAGER"."VTREES_WORLD" ("WORLD_ID", "VTREE_ID") 
3687
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3688
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3689
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3690
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3691
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3692
--------------------------------------------------------
4308 dpurdie 3693
--  DDL for Index UNQ_IGW
3694
--------------------------------------------------------
4040 dpurdie 3695
 
5172 dpurdie 3696
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_IGW" ON "RELEASE_MANAGER"."IGNORE_WARNINGS" ("RTAG_ID", "PV_ID", "DPV_ID") 
3697
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3698
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3699
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3700
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3701
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3702
--------------------------------------------------------
3703
--  DDL for Index INX_DAEMON_INST_RTAG_ID
3704
--------------------------------------------------------
4040 dpurdie 3705
 
5172 dpurdie 3706
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_RTAG_ID" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("RTAG_ID") 
3707
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3708
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3709
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3710
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3711
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3712
--------------------------------------------------------
3713
--  DDL for Index SDK_TAGS_PK
3714
--------------------------------------------------------
5172 dpurdie 3715
 
3716
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_TAGS_PK" ON "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") 
3717
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3718
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3719
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3720
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3721
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3722
--------------------------------------------------------
3723
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX7
3724
--------------------------------------------------------
5384 dpurdie 3725
 
3726
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX7" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("DEPENDANT_DEVIS") 
3727
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3728
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3729
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3730
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3731
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3732
--------------------------------------------------------
3733
--  DDL for Index PK_NOTIFICATION_HISTORY
3734
--------------------------------------------------------
4040 dpurdie 3735
 
5172 dpurdie 3736
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_NOTIFICATION_HISTORY" ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ("RTAG_ID", "PV_ID", "USER_ID") 
3737
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3738
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3739
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3740
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3741
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3742
--------------------------------------------------------
3743
--  DDL for Index UNQ_PACKAGE_DEPENDENCIES
3744
--------------------------------------------------------
4040 dpurdie 3745
 
5172 dpurdie 3746
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_DEPENDENCIES" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PV_ID", "DPV_ID") 
3747
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3748
  STORAGE(INITIAL 100663296 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3749
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3750
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3751
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3752
--------------------------------------------------------
6999 dpurdie 3753
--  DDL for Index PACKAGE_PATCHES_INDEX1
3754
--------------------------------------------------------
6600 dpurdie 3755
 
3756
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PACKAGE_PATCHES_INDEX1" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PV_ID", "PATCH_ID") 
3757
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3758
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3759
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3760
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3761
  TABLESPACE "RELEASE_MANAGER_DATA" ;
3762
--------------------------------------------------------
4308 dpurdie 3763
--  DDL for Index INX_PACKAGE_DEPS_PV_ID
3764
--------------------------------------------------------
4040 dpurdie 3765
 
5172 dpurdie 3766
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PV_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PV_ID") 
3767
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3768
  STORAGE(INITIAL 75497472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3769
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3770
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3771
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3772
--------------------------------------------------------
4211 dpurdie 3773
--  DDL for Index BUILD_STANDARDS_PK
4040 dpurdie 3774
--------------------------------------------------------
3775
 
5172 dpurdie 3776
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_PK" ON "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") 
3777
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3778
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3779
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3780
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3781
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3782
--------------------------------------------------------
3783
--  DDL for Index UNQ_CQ
3784
--------------------------------------------------------
4040 dpurdie 3785
 
5172 dpurdie 3786
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_CQ" ON "RELEASE_MANAGER"."CQ_ISSUES" ("PV_ID", "ISS_ID", "ISS_DB") 
3787
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3788
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3789
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3790
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3791
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3792
--------------------------------------------------------
4211 dpurdie 3793
--  DDL for Index UNQ_PACKAGE_VERSIONS
4040 dpurdie 3794
--------------------------------------------------------
3795
 
5172 dpurdie 3796
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_VERSIONS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID", "PKG_VERSION") 
3797
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3798
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3799
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3800
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3801
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3802
--------------------------------------------------------
3803
--  DDL for Index INX_PV_ID_TEST_ID_PKGDOC
3804
--------------------------------------------------------
4040 dpurdie 3805
 
5172 dpurdie 3806
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_ID_TEST_ID_PKGDOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID", "TEST_ID") 
3807
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3808
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3809
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3810
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3811
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3812
--------------------------------------------------------
4211 dpurdie 3813
--  DDL for Index UNQ_PACKAGE_PATCHES
4040 dpurdie 3814
--------------------------------------------------------
3815
 
5172 dpurdie 3816
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_PATCHES" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PATCH_ID") 
3817
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3818
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3819
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3820
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3821
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3822
--------------------------------------------------------
6999 dpurdie 3823
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX3
3824
--------------------------------------------------------
5384 dpurdie 3825
 
3826
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX3" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PACKAGE_REF") 
3827
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3828
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3829
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3830
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3831
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3832
--------------------------------------------------------
3833
--  DDL for Index UNQ_PACKAGE_DEP_REV
3834
--------------------------------------------------------
5384 dpurdie 3835
 
6999 dpurdie 3836
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_DEP_REV" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPV_ID", "PV_ID") 
3837
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3838
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3839
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3840
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3841
  TABLESPACE "RELEASE_MANAGER_DATA" ;
3842
--------------------------------------------------------
3843
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX4
3844
--------------------------------------------------------
3845
 
5384 dpurdie 3846
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX4" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PROJECT") 
3847
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3848
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3849
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3850
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3851
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3852
--------------------------------------------------------
4308 dpurdie 3853
--  DDL for Index UNQ_REL_COMPONENTS
3854
--------------------------------------------------------
4040 dpurdie 3855
 
5172 dpurdie 3856
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_REL_COMPONENTS" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" ("PV_ID", "FILE_NAME", "FILE_PATH") 
3857
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3858
  STORAGE(INITIAL 3489660928 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3859
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3860
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3861
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3862
--------------------------------------------------------
3863
--  DDL for Index PK_PACKAGE_VERSIONS
3864
--------------------------------------------------------
4040 dpurdie 3865
 
5172 dpurdie 3866
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PACKAGE_VERSIONS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") 
3867
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3868
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3869
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3870
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3871
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3872
--------------------------------------------------------
3873
--  DDL for Index UNQ_RELEASE_METRICS
3874
--------------------------------------------------------
4040 dpurdie 3875
 
5172 dpurdie 3876
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_METRICS" ON "RELEASE_MANAGER"."RELEASE_METRICS" ("RTAG_ID") 
3877
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3878
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3879
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3880
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3881
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3882
--------------------------------------------------------
3883
--  DDL for Index UNQ_BUILD_ORDER
3884
--------------------------------------------------------
4040 dpurdie 3885
 
5172 dpurdie 3886
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ORDER" ON "RELEASE_MANAGER"."BUILD_ORDER" ("RTAG_ID", "PV_ID", "STEP_NUM") 
3887
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3888
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3889
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3890
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3891
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3892
--------------------------------------------------------
3893
--  DDL for Index PK_BUILD_ENVIRONMENTS
3894
--------------------------------------------------------
4040 dpurdie 3895
 
5172 dpurdie 3896
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_BUILD_ENVIRONMENTS" ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") 
3897
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3898
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3899
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3900
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3901
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3902
--------------------------------------------------------
3903
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX1
3904
--------------------------------------------------------
5384 dpurdie 3905
 
3906
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX1" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("DBID") 
3907
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3908
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3909
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3910
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3911
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3912
--------------------------------------------------------
3913
--  DDL for Index INX_PACKAGE_DEPS_DPKG_ID
3914
--------------------------------------------------------
4040 dpurdie 3915
 
5172 dpurdie 3916
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPKG_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPKG_ID") 
3917
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3918
  STORAGE(INITIAL 83886080 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3919
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3920
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3921
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3922
--------------------------------------------------------
3923
--  DDL for Index INX_RL_REFRTAG_ID
3924
--------------------------------------------------------
4040 dpurdie 3925
 
5172 dpurdie 3926
  CREATE INDEX "RELEASE_MANAGER"."INX_RL_REFRTAG_ID" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("REF_RTAG_ID") 
3927
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3928
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3929
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3930
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3931
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3932
--------------------------------------------------------
3933
--  DDL for Index INX_RC_BASE_VIEW_ID
3934
--------------------------------------------------------
4040 dpurdie 3935
 
5172 dpurdie 3936
  CREATE INDEX "RELEASE_MANAGER"."INX_RC_BASE_VIEW_ID" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("BASE_VIEW_ID") 
3937
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3938
  STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3939
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3940
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3941
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3942
--------------------------------------------------------
3943
--  DDL for Index INX_DAEMON_INST_PV_ID
3944
--------------------------------------------------------
4211 dpurdie 3945
 
5172 dpurdie 3946
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_PV_ID" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("PV_ID") 
3947
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3948
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3949
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3950
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3951
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3952
--------------------------------------------------------
4040 dpurdie 3953
--  DDL for Index UNQ_PROJECT_EXT
3954
--------------------------------------------------------
3955
 
5172 dpurdie 3956
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PROJECT_EXT" ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" ("PROJ_ID", "EXT_NAME") 
3957
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3958
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3959
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3960
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3961
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3962
--------------------------------------------------------
3963
--  DDL for Index VCS_TYPE_PK
3964
--------------------------------------------------------
4040 dpurdie 3965
 
5172 dpurdie 3966
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."VCS_TYPE_PK" ON "RELEASE_MANAGER"."VCS_TYPE" ("VCS_TYPE_ID") 
3967
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3968
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3969
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3970
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3971
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3972
--------------------------------------------------------
4211 dpurdie 3973
--  DDL for Index INX_PC_FILE_NAME
4040 dpurdie 3974
--------------------------------------------------------
3975
 
5172 dpurdie 3976
  CREATE INDEX "RELEASE_MANAGER"."INX_PC_FILE_NAME" ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" (UPPER("FILE_NAME")) 
3977
  PCTFREE 10 INITRANS 2 MAXTRANS 167 COMPUTE STATISTICS 
3978
  STORAGE(INITIAL 18874368 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3979
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3980
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3981
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3982
--------------------------------------------------------
3983
--  DDL for Index PK_RELEASE_TAGS
3984
--------------------------------------------------------
4040 dpurdie 3985
 
5172 dpurdie 3986
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_RELEASE_TAGS" ON "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") 
3987
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3988
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3989
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3990
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 3991
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3992
--------------------------------------------------------
4211 dpurdie 3993
--  DDL for Index FK_PROJ_ID_RELEASE_TAGS
4040 dpurdie 3994
--------------------------------------------------------
3995
 
5172 dpurdie 3996
  CREATE INDEX "RELEASE_MANAGER"."FK_PROJ_ID_RELEASE_TAGS" ON "RELEASE_MANAGER"."RELEASE_TAGS" ("PROJ_ID") 
3997
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3998
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3999
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4000
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 4001
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 4002
--------------------------------------------------------
4211 dpurdie 4003
--  DDL for Index INX_RCOMP_PV_ID
4040 dpurdie 4004
--------------------------------------------------------
4005
 
5172 dpurdie 4006
  CREATE INDEX "RELEASE_MANAGER"."INX_RCOMP_PV_ID" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" ("PV_ID") 
4007
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4008
  STORAGE(INITIAL 724566016 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4009
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4010
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 4011
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 4012
--------------------------------------------------------
4013
--  DDL for Index MICROSOFT_PK_DTPROPERTIES
4014
--------------------------------------------------------
4040 dpurdie 4015
 
5172 dpurdie 4016
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."MICROSOFT_PK_DTPROPERTIES" ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ("ID", "PROPERTY") 
4017
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4018
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4019
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4020
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 4021
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4022
--------------------------------------------------------
4023
--  DDL for Index BLAT_RELEASES_INDEX1
4024
--------------------------------------------------------
5172 dpurdie 4025
 
6999 dpurdie 4026
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BLAT_RELEASES_INDEX1" ON "RELEASE_MANAGER"."BLAT_RELEASES" ("BLAT_ID", "RTAG_ID") 
4027
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4028
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4029
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4030
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4031
  TABLESPACE "RELEASE_MANAGER_DATA" ;
4032
--------------------------------------------------------
4033
--  DDL for Index BUILD_ID
4034
--------------------------------------------------------
4035
 
5172 dpurdie 4036
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_ID" ON "RELEASE_MANAGER"."BUILD_INSTANCES" ("BUILD_ID") 
4037
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4038
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4039
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4040
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 4041
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 4042
--------------------------------------------------------
4308 dpurdie 4043
--  DDL for Index INX_UT_PV_TEST_TYPE
4044
--------------------------------------------------------
4040 dpurdie 4045
 
5172 dpurdie 4046
  CREATE INDEX "RELEASE_MANAGER"."INX_UT_PV_TEST_TYPE" ON "RELEASE_MANAGER"."UNIT_TESTS" ("PV_ID", "TEST_TYPES_FK") 
4047
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4048
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4049
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4050
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 4051
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 4052
--------------------------------------------------------
4053
--  DDL for Index PK_WORLDS
4054
--------------------------------------------------------
4040 dpurdie 4055
 
5172 dpurdie 4056
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_WORLDS" ON "RELEASE_MANAGER"."WORLDS" ("WORLD_ID") 
4057
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4058
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4059
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4060
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 4061
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4062
--------------------------------------------------------
4063
--  DDL for Index CQ_HISTORY_INDEX1
4064
--------------------------------------------------------
5384 dpurdie 4065
 
4066
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_HISTORY_INDEX1" ON "RELEASE_MANAGER"."CQ_HISTORY" ("DBID") 
4067
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4068
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4069
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4070
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 4071
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4072
--------------------------------------------------------
4308 dpurdie 4073
--  DDL for Index UNQ_AN_PART2
4074
--------------------------------------------------------
4040 dpurdie 4075
 
5172 dpurdie 4076
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_AN_PART2" ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" ("PV_ID", "NOTE_TITLE") 
4077
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4078
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4079
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4080
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
6999 dpurdie 4081
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 4082
--------------------------------------------------------
6999 dpurdie 4083
--  DDL for Trigger TRIGGER_BLAT_SERVER_ID
4040 dpurdie 4084
--------------------------------------------------------
4085
 
6999 dpurdie 4086
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_BLAT_SERVER_ID" 
4087
BEFORE INSERT ON BLAT_SERVERS 
4088
for each row
4089
BEGIN
4090
  select SEQ_BLAT_SERVER_ID.nextval
4091
  into :new.BLAT_ID
4092
  from DUAL;
4093
END;
4094
/
4095
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_BLAT_SERVER_ID" ENABLE;
4040 dpurdie 4096
--------------------------------------------------------
6999 dpurdie 4097
--  DDL for Trigger TRIGGER_BSA_ID
4308 dpurdie 4098
--------------------------------------------------------
4040 dpurdie 4099
 
6999 dpurdie 4100
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_BSA_ID" 
4101
BEFORE INSERT ON BUILD_STANDARDS_ADDENDUM
4102
for each row
4103
BEGIN
4104
  select SEQ_BSA_ID.nextval
4105
  into :new.BSA_ID
4106
  from DUAL;
4107
END;
4108
/
4109
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_BSA_ID" ENABLE;
4040 dpurdie 4110
--------------------------------------------------------
6999 dpurdie 4111
--  DDL for Trigger TRIGGER_BUILD_INSTANCE
4040 dpurdie 4112
--------------------------------------------------------
4113
 
6999 dpurdie 4114
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_BUILD_INSTANCE" 
4115
BEFORE INSERT ON BUILD_INSTANCES
4116
for each row
4117
BEGIN
4118
  If :new.BUILD_ID is null then
4119
  select SEQ_BUILD_INSTANCE.nextval
4120
  into :new.BUILD_ID
4121
  from DUAL;
4122
  End If;
4123
END;
4124
/
4125
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_BUILD_INSTANCE" ENABLE;
4040 dpurdie 4126
--------------------------------------------------------
6999 dpurdie 4127
--  DDL for Trigger TRIGGER_SDK_NAMES
4040 dpurdie 4128
--------------------------------------------------------
4129
 
6999 dpurdie 4130
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_NAMES" 
4131
BEFORE INSERT ON SDK_NAMES
4132
for each row
4133
BEGIN
4134
  select SEQ_SDK_ID.nextval
4135
  into :new.SDK_ID
4136
  from DUAL;
4137
END;
4138
/
4139
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_NAMES" ENABLE;
4308 dpurdie 4140
--------------------------------------------------------
6999 dpurdie 4141
--  DDL for Trigger TRIGGER_SDK_TAGS
4308 dpurdie 4142
--------------------------------------------------------
4211 dpurdie 4143
 
6999 dpurdie 4144
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_TAGS" 
4145
BEFORE INSERT ON SDK_TAGS
4146
for each row
4147
BEGIN
4148
  select SEQ_SDKTAG_ID.nextval
4149
  into :new.SDKTAG_ID
4150
  from DUAL;
4151
END;
4152
/
4153
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_TAGS" ENABLE;
4040 dpurdie 4154
--------------------------------------------------------
6999 dpurdie 4155
--  DDL for Trigger TRIGGER_TEST_RUNS
4040 dpurdie 4156
--------------------------------------------------------
4157
 
6999 dpurdie 4158
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_TEST_RUNS" 
4159
  BEFORE INSERT ON TEST_RUN
4160
  for each row
4161
BEGIN
4162
  if :new.TESTRUN_ID is null then
4163
  select SEQ_TESTRUN_ID.nextval
4164
    into :new.TESTRUN_ID
4165
  from DUAL;
4166
  end if;
4167
END;
4168
/
4169
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_TEST_RUNS" ENABLE;
4040 dpurdie 4170
--------------------------------------------------------
6999 dpurdie 4171
--  DDL for Procedure ADD_AUTOBUILD_FAILURE_INFO
4040 dpurdie 4172
--------------------------------------------------------
6999 dpurdie 4173
set define off;
4040 dpurdie 4174
 
6999 dpurdie 4175
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_AUTOBUILD_FAILURE_INFO" (
4176
   nprojid     IN   NUMBER,
4177
   nviewid     IN   NUMBER,
4178
   suserlist   IN   VARCHAR2
4179
)
4180
IS
4181
   groupid   NUMBER;
4182
/******************************************************************************
4183
   NAME:       ADD_AUTOBUILD_FAILURE
4184
   PURPOSE:
4040 dpurdie 4185
 
6999 dpurdie 4186
   REVISIONS:
4187
   Ver        Date        Author           Description
4188
   ---------  ----------  ---------------  ------------------------------------
4189
   1.0        11/04/2006   Rupesh Solanki Created this procedure.
4040 dpurdie 4190
 
6999 dpurdie 4191
   NOTES:
4040 dpurdie 4192
 
6999 dpurdie 4193
   Automatically available Auto Replace Keywords:
4194
      Object Name:     ADD_AUTOBUILD_FAILURE
4195
      Sysdate:         11/04/2006
4196
      Date and Time:   11/04/2006, 9:28:28 AM, and 11/04/2006 9:28:28 AM
4197
      Username:         (set in TOAD Options, Procedure Editor)
4198
      Table Name:       (set in the "New PL/SQL Object" dialog)
4040 dpurdie 4199
 
6999 dpurdie 4200
******************************************************************************/
4201
BEGIN
4202
   BEGIN
4203
      SELECT group_email_id
4204
        INTO groupid
4205
        FROM autobuild_failure
4206
       WHERE proj_id = nprojid AND view_id = nviewid;
4207
   EXCEPTION
4208
      WHEN NO_DATA_FOUND
4209
      THEN
4210
         --  Create Next Sequence Id ---
4211
         SELECT seq_group_email_id.NEXTVAL
4212
           INTO groupid
4213
           FROM DUAL;
4040 dpurdie 4214
 
6999 dpurdie 4215
         INSERT INTO autobuild_failure
4216
                     (group_email_id, proj_id, view_id
4217
                     )
4218
              VALUES (groupid, nprojid, nviewid
4219
                     );
4220
   END;
4040 dpurdie 4221
 
6999 dpurdie 4222
   add_view_members (groupid, suserlist);
4223
END add_autobuild_failure_info;
4040 dpurdie 4224
 
6999 dpurdie 4225
/
4040 dpurdie 4226
--------------------------------------------------------
6999 dpurdie 4227
--  DDL for Procedure ADD_COMPONENT
4308 dpurdie 4228
--------------------------------------------------------
6999 dpurdie 4229
set define off;
4040 dpurdie 4230
 
6999 dpurdie 4231
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_COMPONENT" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE,
4232
	   	  		  						  	sFileName IN RELEASE_COMPONENTS.FILE_NAME%TYPE,
4233
											sFilePath IN RELEASE_COMPONENTS.FILE_PATH%TYPE DEFAULT NULL,
4234
											nByteSize IN RELEASE_COMPONENTS.BYTE_SIZE%TYPE,
4235
											sCRCcksum IN RELEASE_COMPONENTS.CRC_CKSUM%TYPE DEFAULT NULL,
4236
											sCRCmodcrc IN RELEASE_COMPONENTS.CRC_MODCRC%TYPE DEFAULT NULL
4237
                                           ) IS
4238
/* ---------------------------------------------------------------------------
4239
    Version: 3.0.0
4240
   --------------------------------------------------------------------------- */
4040 dpurdie 4241
 
5172 dpurdie 4242
 
6999 dpurdie 4243
BEGIN
4040 dpurdie 4244
 
6999 dpurdie 4245
	 --- Insert into RELEASE_COMPONENTS
4246
	 INSERT INTO RELEASE_COMPONENTS ( PV_ID, FILE_NAME, FILE_PATH, BYTE_SIZE, CRC_CKSUM, CRC_MODCRC )
4247
	 VALUES ( nPvId, sFileName, sFilePath, nByteSize, sCRCcksum, sCRCmodcrc  );
4040 dpurdie 4248
 
4249
 
5172 dpurdie 4250
 
4040 dpurdie 4251
 
6999 dpurdie 4252
END Add_Component;
4040 dpurdie 4253
 
6999 dpurdie 4254
/
4040 dpurdie 4255
--------------------------------------------------------
6999 dpurdie 4256
--  DDL for Procedure ADD_PACKAGE_INTEREST
4040 dpurdie 4257
--------------------------------------------------------
6999 dpurdie 4258
set define off;
4040 dpurdie 4259
 
6999 dpurdie 4260
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_PACKAGE_INTEREST" (
4261
    nProjId    IN PROJECTS.PROJ_ID%TYPE,
4262
    nPkgIdList IN VARCHAR2,
4263
    nUserId    IN NUMBER )
4264
IS
4265
  npkgidcollector relmgr_number_tab_t := relmgr_number_tab_t ();
4266
  nPkgId        NUMBER;
4267
  alreadyExists NUMBER;
4268
BEGIN
4269
  npkgidcollector := in_list_number2 (nPkgIdList);
4270
  FOR i IN 1..npkgidcollector.COUNT
4271
  LOOP
4272
    nPkgId := npkgidcollector(i);
4273
    --- Ensure it doesn't already exist
4274
    SELECT COUNT(*)
4275
    INTO alreadyExists
4276
    FROM PACKAGE_INTEREST
4277
    WHERE USER_ID      = nUserId
4278
    AND PKG_ID         = nPkgId
4279
    AND PROJ_ID        = nProjId;
4040 dpurdie 4280
 
6999 dpurdie 4281
    IF ( alreadyExists = 0 ) THEN
4282
      --- Insert into PACKAGE_INTEREST TABLE
4283
      INSERT
4284
        INTO PACKAGE_INTEREST (PROJ_ID, PKG_ID, USER_ID )
4285
        VALUES (nProjId, nPkgId, nUserId );
4286
    END IF;
4287
  END LOOP;
4288
END ADD_PACKAGE_INTEREST;
4040 dpurdie 4289
 
6999 dpurdie 4290
/
4308 dpurdie 4291
--------------------------------------------------------
6999 dpurdie 4292
--  DDL for Procedure ADD_RUNTIME_DEPENDENCY
4308 dpurdie 4293
--------------------------------------------------------
6999 dpurdie 4294
set define off;
4040 dpurdie 4295
 
6999 dpurdie 4296
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_RUNTIME_DEPENDENCY" ( NNpv_id IN NUMBER,
4297
                                                     SSrtd_name IN PACKAGES.pkg_name%TYPE,
4298
                                                     SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
4299
                                                     NNuser_id IN NUMBER
4300
                                                    ) IS
4301
/* ---------------------------------------------------------------------------
4302
    Version: 3.1
4303
   --------------------------------------------------------------------------- */
4040 dpurdie 4304
 
6999 dpurdie 4305
    retRTD_ID NUMBER;
4040 dpurdie 4306
 
6999 dpurdie 4307
	CURSOR rtd_cur IS
4308
        SELECT rtd_id FROM runtime_dependencies WHERE pv_id = NNpv_id AND rtd_id = retRTD_ID;
4309
    rtd_rec rtd_cur%ROWTYPE;
4040 dpurdie 4310
 
6999 dpurdie 4311
BEGIN
4312
    --- Seed database with package_name and version if required ---
4313
    Seed_Package_Names_Versions ( SSrtd_name, SSrtd_version, NNuser_id, retRTD_ID );
4040 dpurdie 4314
 
6999 dpurdie 4315
	OPEN rtd_cur;
4316
    FETCH rtd_cur INTO rtd_rec;
5384 dpurdie 4317
 
6999 dpurdie 4318
    IF rtd_cur%NOTFOUND
4319
    THEN
4320
		/* Make sure it does not exists already as runtime dependency */
4040 dpurdie 4321
 
6999 dpurdie 4322
		--- Add new Runtime Dependency ---
4323
	    INSERT INTO runtime_dependencies ( pv_id, rtd_id, mod_date, mod_user )
7000 dpurdie 4324
	    VALUES (  NNpv_id, retRTD_ID, ora_sysdatetime , NNuser_id );
4040 dpurdie 4325
 
6999 dpurdie 4326
    	/* LOG ACTION */
4327
        Log_Action ( NNpv_id, 'runtime_add', NNuser_id,
4328
    			     'Runtime package: '|| SSrtd_name ||' '|| SSrtd_version );
4040 dpurdie 4329
 
6999 dpurdie 4330
	END IF;
4040 dpurdie 4331
 
6031 dpurdie 4332
 
6999 dpurdie 4333
END Add_Runtime_Dependency;
5892 dpurdie 4334
 
6999 dpurdie 4335
/
4040 dpurdie 4336
--------------------------------------------------------
6999 dpurdie 4337
--  DDL for Procedure ADD_VIEW_MEMBERS
6031 dpurdie 4338
--------------------------------------------------------
6999 dpurdie 4339
set define off;
4040 dpurdie 4340
 
6999 dpurdie 4341
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_VIEW_MEMBERS" (nGroupId IN NUMBER, sUserList IN VARCHAR2) IS
4040 dpurdie 4342
 
6999 dpurdie 4343
/******************************************************************************
4344
   NAME:       ADD_VIEW_MEMBERS
4345
   PURPOSE:
4040 dpurdie 4346
 
6999 dpurdie 4347
   REVISIONS:
4348
   Ver        Date        Author           Description
4349
   ---------  ----------  ---------------  ------------------------------------
4350
   1.0        11/04/2006          1. Created this procedure.
5384 dpurdie 4351
 
6999 dpurdie 4352
   NOTES:
6031 dpurdie 4353
 
6999 dpurdie 4354
   Automatically available Auto Replace Keywords:
4355
      Object Name:     ADD_VIEW_MEMBERS
4356
      Sysdate:         11/04/2006
4357
      Date and Time:   11/04/2006, 9:52:58 AM, and 11/04/2006 9:52:58 AM
4358
      Username:         (set in TOAD Options, Procedure Editor)
4359
      Table Name:       (set in the "New PL/SQL Object" dialog)
4040 dpurdie 4360
 
6999 dpurdie 4361
******************************************************************************/
4362
CURSOR user_cur IS
4363
	SELECT u.USER_ID
4364
	  FROM USERS u
4365
	 WHERE u.USER_ID IN (
4366
	 	   			   	SELECT *
4367
						  FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
4368
						);
4369
user_rec user_cur%ROWTYPE;
5384 dpurdie 4370
 
4040 dpurdie 4371
 
6999 dpurdie 4372
BEGIN
4040 dpurdie 4373
 
6999 dpurdie 4374
	 OPEN user_cur;
4375
	 FETCH user_cur INTO user_rec;
6031 dpurdie 4376
 
6999 dpurdie 4377
	 WHILE user_cur%FOUND
4378
	 LOOP
4379
	 	 INSERT INTO MEMBERS_GROUP (GROUP_EMAIL_ID, USER_ID)
4380
	 	 VALUES ( nGroupId, user_rec.USER_ID);
6031 dpurdie 4381
 
6999 dpurdie 4382
	 	 FETCH user_cur INTO user_rec;
4383
	 END LOOP;
6031 dpurdie 4384
 
5172 dpurdie 4385
 
6999 dpurdie 4386
 
4387
END ADD_VIEW_MEMBERS;
4388
 
4389
/
4040 dpurdie 4390
--------------------------------------------------------
6999 dpurdie 4391
--  DDL for Procedure BASIC_CLONE
4040 dpurdie 4392
--------------------------------------------------------
6999 dpurdie 4393
set define off;
4040 dpurdie 4394
 
6999 dpurdie 4395
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."BASIC_CLONE" (
4396
        nFROMpv_id IN NUMBER,
4397
        nTOpv_id IN NUMBER,
4398
        nRtag_id IN NUMBER,
4399
        nUser_id IN NUMBER,
4400
        nTOpkg_id IN NUMBER DEFAULT NULL,
4401
        enumISSUES_STATE_IMPORTED IN NUMBER DEFAULT NULL ) IS
5172 dpurdie 4402
 
6999 dpurdie 4403
   FromVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
4404
   major NUMBER;
4405
   minor NUMBER;
4406
   patch NUMBER;
4407
   buildn NUMBER;
4408
   from_vcs_type_id NUMBER;
4409
BEGIN
4410
------------------------------ Version Control System ------------------------------------------
4411
   SELECT vcs_type_id
4412
      INTO from_vcs_type_id
4413
      FROM package_versions WHERE pv_id = nFROMpv_id;
5384 dpurdie 4414
 
6999 dpurdie 4415
   UPDATE package_versions
4416
      SET vcs_type_id = from_vcs_type_id
4417
      WHERE pv_id = nTOpv_id;
4418
------------------------------------- Limits ---------------------------------------------------
4419
   select major_limit, minor_limit, patch_limit, build_number_limit
4420
   into major, minor, patch, buildn
4421
   from package_versions where pv_id=nFROMpv_id;
4422
    UPDATE package_versions SET
4423
           major_limit = major,
4424
           minor_limit = minor,
4425
           patch_limit = patch,
4426
           build_number_limit = buildn
4427
     WHERE PV_ID = nTOpv_id;
4428
------------------------------------- Clone Dependencies ---------------------------------------------------
4429
   IF NOT nRtag_id IS NULL
4430
   THEN
4431
      -- Auto Update Dependencies --
4432
      INSERT INTO PACKAGE_DEPENDENCIES
4433
           SELECT nTOpv_id AS pv_id,
4434
                  DECODE(nUser_id,
4435
                         frc.modifier_id,
4436
                         frc.pv_id,
4437
                         DECODE(frc.dlocked,
4438
                                'Y',
4439
                                frc.pv_id,
4440
                                dep.dpv_id)
4441
                         ) AS dpv_id,
4442
                  nTOpkg_id AS pkg_id,
4443
                  dep.dpkg_id,
4444
                  dep.build_type,
4445
                  dep.display_order
4446
             FROM PACKAGE_DEPENDENCIES dep,
4447
                  PACKAGE_VERSIONS pv,
4448
                  (
4449
                  /* Full Release Contents used for reference*/
4450
                  SELECT rpv.pv_id, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext, rpv.modifier_id, rpv.dlocked
4451
                  FROM RELEASE_CONTENT rel, PACKAGE_VERSIONS rpv
4452
                  WHERE rel.pv_id = rpv.pv_id AND rtag_id = nRtag_id
4453
                  ) frc
4454
            WHERE dep.pv_id = nFROMpv_id
4455
              AND dep.dpv_id = pv.pv_id
4456
              AND pv.pkg_id = frc.pkg_id(+)
4457
              AND NVL(pv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+);
4458
   ELSE
4459
      -- Clone Dependencies --
4460
      INSERT INTO PACKAGE_DEPENDENCIES
4461
           SELECT nTOpv_id         AS pv_id,
4462
                  dep.dpv_id,
4463
                  nTOpkg_id        AS pkg_id,
4464
                  dep.dpkg_id,
4465
                  dep.build_type,
4466
                  dep.display_order
4467
             FROM PACKAGE_DEPENDENCIES dep
4468
            WHERE dep.pv_id = nFROMpv_id;
6031 dpurdie 4469
 
6999 dpurdie 4470
   END IF;
4040 dpurdie 4471
 
6999 dpurdie 4472
----------------------------------------- Clone Issues -------------------------------------------------------
4473
   IF enumISSUES_STATE_IMPORTED IS NULL
4474
   THEN
4475
        /* All Issues */
4476
       INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
4477
            SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
4478
              FROM CQ_ISSUES
4479
             WHERE pv_id = nFROMpv_id;
4480
   ELSE
4481
       /* Outstanding Issues Only */
4482
       INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
4483
            SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
4484
              FROM CQ_ISSUES
4485
             WHERE pv_id = nFROMpv_id
4486
               AND iss_state = enumISSUES_STATE_IMPORTED;
4487
   END IF;
4040 dpurdie 4488
 
6999 dpurdie 4489
------------------------------------ Clone Runtime Dependencies -----------------------------------------------
4490
   INSERT INTO RUNTIME_DEPENDENCIES (pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user)
4491
       SELECT nTOpv_id AS pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user
4492
       FROM RUNTIME_DEPENDENCIES WHERE pv_id = nFROMpv_id;
4040 dpurdie 4493
 
6999 dpurdie 4494
--------------------------------------- Clone Additional Notes ------------------------------------------------
4495
   INSERT INTO ADDITIONAL_NOTES ( NOTE_ID, PV_ID, NOTE_TITLE, NOTE_BODY, MOD_DATE, MOD_USER )
4496
        SELECT an.NOTE_ID,
4497
               nTOpv_id AS PV_ID,
4498
               an.NOTE_TITLE,
4499
               an.NOTE_BODY,
4500
               an.MOD_DATE,
4501
               an.MOD_USER
4502
          FROM ADDITIONAL_NOTES an
4503
         WHERE an.PV_ID = nFROMpv_id;
4040 dpurdie 4504
 
6999 dpurdie 4505
-------------------------------------------- Clone Unit Tests -------------------------------------------------
4506
-- Only clone 'Auto Unit Test', 'Interactive Unit Test' and 'Autobuild UTF'
4507
-- Only clone the basic information: TEST_SUMMARY
6031 dpurdie 4508
 
6999 dpurdie 4509
    INSERT INTO UNIT_TESTS (
4510
                            TEST_ID,
4511
                            PV_ID,
4512
                            TEST_TYPES_FK,
4513
                            TEST_SUMMARY
4514
                           )
4515
       SELECT ut.TEST_ID,
4516
              nTOpv_id AS PV_ID,
4517
              ut.TEST_TYPES_FK,
4518
              ut.TEST_SUMMARY
4519
         FROM UNIT_TESTS ut
4520
        WHERE ut.PV_ID = nFROMpv_id
4521
          AND ut.TEST_TYPES_FK IN (5,6,7);
4040 dpurdie 4522
 
6999 dpurdie 4523
-------------------------------------------- Clone Package Documents ------------------------------------------
4524
   INSERT INTO PACKAGE_DOCUMENTS ( PV_ID, TEST_ID, DOC_NUM, DOC_ID, IS_LATEST )
4525
        SELECT nTOpv_id AS PV_ID,
4526
               pd.test_id,
4527
               pd.doc_num,
4528
               pd.doc_id,
4529
               pd.IS_LATEST
4530
          FROM PACKAGE_DOCUMENTS pd
4531
         WHERE pd.PV_ID = nFROMpv_id;
5892 dpurdie 4532
 
6999 dpurdie 4533
-------------------------------------------- Clone Build Environments -----------------------------------------
4534
    INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID, BUILD_TYPE )
4535
    SELECT nTOpv_id AS PV_ID,
4536
           pkgbe.BE_ID,
4537
           pkgbe.BUILD_TYPE
4538
      FROM PACKAGE_BUILD_ENV pkgbe
4539
     WHERE pkgbe.PV_ID = nFROMpv_id;
4040 dpurdie 4540
 
6999 dpurdie 4541
---------------------------------------------Clone Package Build Info------------------------------------------
4542
    INSERT INTO PACKAGE_BUILD_INFO (PV_ID, BM_ID, BSA_ID)
4543
    SELECT nTOpv_id AS PV_ID,
4544
           pkgbinfo.BM_ID,
4545
           pkgbinfo.BSA_ID
4546
      FROM PACKAGE_BUILD_INFO pkgbinfo
4547
     WHERE pkgbinfo.PV_ID = nFROMpv_id;
4040 dpurdie 4548
 
6999 dpurdie 4549
---------------------------------------------Clone Package Version Processes-----------------------------------
4550
    INSERT INTO PACKAGE_PROCESSES ( PV_ID, PROC_ID )
4551
    SELECT nTOpv_id AS PV_ID,
4552
           pp.PROC_ID
4553
      FROM PACKAGE_PROCESSES pp
4554
     WHERE pp.PV_ID = nFROMpv_id;
6031 dpurdie 4555
 
6999 dpurdie 4556
---------------------------------------------Clone Licencing Associations-----------------------------------
4557
    PK_LICENCING.CLONE_LICENCING(nFROMpv_id, nTOpv_id, nUser_id);
4558
---------------------------------------------------------------------------------------------------------------
4040 dpurdie 4559
 
6999 dpurdie 4560
    /* LOG ACTION */
4561
    SELECT pv.PKG_VERSION INTO FromVersion
4562
      FROM PACKAGE_VERSIONS pv
4563
     WHERE pv.PV_ID = nFROMpv_id;
4040 dpurdie 4564
 
6999 dpurdie 4565
    Log_Action ( nTOpv_id, 'clone_from', nUser_id,
4566
                 'Details cloned from: '|| FromVersion );
4040 dpurdie 4567
 
6999 dpurdie 4568
---------------------------------------------------------------------------------------------------------------
4040 dpurdie 4569
 
6999 dpurdie 4570
END Basic_Clone;
4040 dpurdie 4571
 
6999 dpurdie 4572
/
4040 dpurdie 4573
--------------------------------------------------------
6999 dpurdie 4574
--  DDL for Procedure BUILD_TREE
4308 dpurdie 4575
--------------------------------------------------------
6999 dpurdie 4576
set define off;
4040 dpurdie 4577
 
6999 dpurdie 4578
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."BUILD_TREE" ( nRtag_id IN NUMBER,
4579
	   	  		  					     retSessionNum OUT NUMBER ) IS
6031 dpurdie 4580
 
6999 dpurdie 4581
/* ---------------------------------------------------------------------------
4582
    Version: 3.0.0
4583
   --------------------------------------------------------------------------- */
4584
    rowCnt 			NUMBER := 0;						-- Iterations counter
4585
    iteration 		NUMBER := 1;                  -- Maximum number of iterations allowed.
4586
    maxIterations 	NUMBER := 50;      	  	-- This will prevent infinite loops if cyrcular dependencies are found
4587
	UP_THE_TREE 	CONSTANT NUMBER DEFAULT 1;
4588
	DOWN_THE_TREE 	CONSTANT NUMBER DEFAULT -1;
4589
    sessionNum 		NUMBER;
4590
	levelNum		NUMBER;
6031 dpurdie 4591
 
6999 dpurdie 4592
BEGIN
4593
    SELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;
4040 dpurdie 4594
 
6999 dpurdie 4595
	/*
4596
	||	   Start UP THE TREE
4597
	*/
6031 dpurdie 4598
 
4599
 
6999 dpurdie 4600
	/* Packages with no dependencies */
4601
    INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
4602
		SELECT sessionNum AS SESSION_NUM,
4603
			   iteration AS LEVEL_NUM,
4604
			   UP_THE_TREE AS DIRECTION,
4605
			   rc.pv_id, pv.pkg_id, pv.v_ext
4606
		  FROM release_content rc,
4607
		  	   package_versions pv
4608
		 WHERE rc.rtag_id = nRtag_id
4609
		   AND rc.pv_id = pv.pv_id
4610
		 MINUS
4611
		SELECT sessionNum AS SESSION_NUM,
4612
			   iteration AS LEVEL_NUM,
4613
			   UP_THE_TREE AS DIRECTION,
4614
			   dep.pv_id, pv.pkg_id, pv.v_ext
4615
		  FROM package_dependencies dep,
4616
		  	   package_versions pv
4617
		 WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtag_id )
4618
		   AND dep.pv_id = pv.pv_id;
4040 dpurdie 4619
 
4620
 
6999 dpurdie 4621
	/* Browse UP the build tree */
4622
	iteration := iteration + 1;
4623
    LOOP
6031 dpurdie 4624
 
6999 dpurdie 4625
		INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
4626
			SELECT DISTINCT
4627
			       sessionNum AS SESSION_NUM,
4628
			       iteration AS LEVEL_NUM,
4629
				   UP_THE_TREE AS DIRECTION,
4630
				   rdep.pv_id, rdep.pkg_id, rdep.v_ext
4631
			  FROM (
4632
			        SELECT dep.pv_id, pv.pkg_id, pv.v_ext, dep.dpv_id, dpv.pkg_id AS dpkg_id, dpv.v_ext AS dv_ext
4633
			          FROM package_dependencies dep,
4634
			               release_content rc,
4635
						   package_versions pv,
4636
						   package_versions dpv
4637
			         WHERE dep.pv_id = rc.pv_id
4638
			           AND rc.rtag_id = nRtag_id
4639
					   AND dep.pv_id = pv.pv_id
4640
					   AND dep.dpv_id = dpv.pv_id
4641
					) rdep,
4642
					temp_tree_browse ttb
4643
			 WHERE rdep.dpkg_id  = ttb.pkg_id
4644
			   AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext,'|LINK_A_NULL|')
4645
			   AND ttb.SESSION_NUM = sessionNum
4646
			   AND ttb.LEVEL_NUM = iteration - 1
4647
			MINUS
4648
			/* Packages with all depencencies NOT matched */
4649
			SELECT DISTINCT
4650
			       sessionNum AS SESSION_NUM,
4651
			       iteration AS LEVEL_NUM,
4652
				   UP_THE_TREE AS DIRECTION,
4653
				   rdep.pv_id, rdep.pkg_id, rdep.v_ext
4654
			  FROM (
4655
			        SELECT dep.pv_id, pv.pkg_id, pv.v_ext, dep.dpv_id, dpv.pkg_id AS dpkg_id, dpv.v_ext AS dv_ext
4656
			          FROM package_dependencies dep,
4657
			               release_content rc,
4658
						   package_versions pv,
4659
						   package_versions dpv
4660
			         WHERE dep.pv_id = rc.pv_id
4661
			           AND rc.rtag_id = nRtag_id
4662
					   AND dep.pv_id = pv.pv_id
4663
					   AND dep.dpv_id = dpv.pv_id
4664
					) rdep,
4665
					(
4666
					 SELECT tb.*
4667
					   FROM temp_tree_browse tb
4668
					  WHERE tb.SESSION_NUM = sessionNum
4669
					) ttb
4670
			 WHERE rdep.dpkg_id  = ttb.pkg_id (+)
4671
			   AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext (+),'|LINK_A_NULL|')
4672
			   AND ttb.SESSION_NUM IS NULL;
6031 dpurdie 4673
 
6999 dpurdie 4674
		rowCnt := SQL%ROWCOUNT;
4675
		IF rowCnt > 0 THEN
4676
           iteration := iteration + 1;
4677
		END IF;
4678
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
4679
    END LOOP;
4040 dpurdie 4680
 
6999 dpurdie 4681
	/*---------------------------------------------------------------------------------------------------------------------*/
4040 dpurdie 4682
 
6999 dpurdie 4683
	/*     Check for unresolved dependencies
4684
	||
4685
	*/
4686
	/* UNRESOLVED */
4687
	 SELECT COUNT(*) INTO rowCnt
4688
	   FROM (
4689
			 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
4690
			  FROM release_content rc,
4691
			  	   package_versions pv
4692
			 WHERE rc.rtag_id = nRtag_id
4693
			   AND rc.pv_id = pv.pv_id
4694
			MINUS
4695
			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
4696
			  FROM temp_tree_browse ttb
4697
			 WHERE ttb.session_num = sessionNum
4698
			);
6031 dpurdie 4699
 
4040 dpurdie 4700
 
4701
 
6999 dpurdie 4702
	 IF rowCnt > 0
4703
	 THEN
4704
	 	 /*     Circular dependencies detected.
4705
		 ||     Try to resolve build order from the top now.
4706
		 ||		Start DOWN THE TREE
4707
		 */
4040 dpurdie 4708
 
6999 dpurdie 4709
		iteration := 0;
4710
		 /* Top Level packages */
4711
		INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
4712
			SELECT sessionNum AS SESSION_NUM,
4713
			       iteration AS LEVEL_NUM,
4714
				   DOWN_THE_TREE AS DIRECTION,
4715
				   pv.pv_id, pv.pkg_id, pv.v_ext
4716
			  FROM (
4717
					/* Packages no one depends on ( Top level packages )*/
4718
					(
4719
					/* All parents*/
4720
					SELECT pv.pkg_id, pv.v_ext
4721
			          FROM package_dependencies dep,
4722
			               release_content rc,
4723
						   package_versions pv
4724
			         WHERE dep.pv_id = rc.pv_id
4725
			           AND rc.rtag_id = nRtag_id
4726
					   AND dep.pv_id = pv.pv_id
4727
					 MINUS
4728
					 /* All children */
4729
					SELECT dpv.pkg_id, dpv.v_ext
4730
			          FROM package_dependencies dep,
4731
			               release_content rc,
4732
						   package_versions dpv
4733
			         WHERE dep.pv_id = rc.pv_id
4734
			           AND rc.rtag_id = nRtag_id
4735
					   AND dep.dpv_id = dpv.pv_id
4736
					 )
4737
					 MINUS
4738
					/* Packages with resolved dependencies from UP THE TREE */
4739
					SELECT ttb.pkg_id, ttb.v_ext
4740
					  FROM temp_tree_browse ttb
4741
					 WHERE ttb.session_num = sessionNum
4742
				  ) tpkg,
4743
				  package_versions pv,
4744
				  release_content rc
4745
			WHERE rc.rtag_id = nRtag_id
4746
			  AND rc.pv_id = pv.pv_id
4747
			  AND tpkg.pkg_id = pv.pkg_id
4748
			  AND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');
4040 dpurdie 4749
 
6999 dpurdie 4750
 
4751
		 /* Keep taking packages which no one depende on */
4752
		 iteration := iteration - 1;
4753
		 LOOP
4754
			   INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
4755
					SELECT sessionNum AS SESSION_NUM,
4756
					       iteration AS LEVEL_NUM,
4757
					       DOWN_THE_TREE AS DIRECTION,
4758
					       pv.pv_id, pv.pkg_id, pv.v_ext
4759
					  FROM (
4760
					 	/* All Unresolved */
4761
					 	(
4762
					 	SELECT pv.pkg_id, pv.v_ext
4763
					 	  FROM release_content rc,
4764
					 	  	   package_versions pv
4765
					 	 WHERE rc.rtag_id = nRtag_id
4766
					 	   AND rc.pv_id = pv.pv_id
4767
					 	MINUS
4768
					 	SELECT ttb.pkg_id, ttb.v_ext
4769
					 	  FROM temp_tree_browse ttb
4770
					 	 WHERE ttb.session_num = sessionNum
4771
					 	)
4772
					 	 MINUS
4773
					 	(
4774
					 	 /* Children of Unresolved */
4775
					 	SELECT dpv.pkg_id, dpv.V_EXT
4776
					 	  FROM (
4777
					 			SELECT pv.pv_id, pv.pkg_id, pv.v_ext
4778
					 			  FROM release_content rc,
4779
					 			  	   package_versions pv
4780
					 			 WHERE rc.rtag_id = nRtag_id
4781
					 			   AND rc.pv_id = pv.pv_id
4782
					 			MINUS
4783
					 			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
4784
					 			  FROM temp_tree_browse ttb
4785
					 			 WHERE ttb.session_num = sessionNum
4786
					 		   ) unr,
4787
					 		   package_dependencies dep,
4788
					 		   package_versions dpv
4789
					 	 WHERE unr.pv_id = dep.pv_id
4790
					 	   AND dep.dpv_id = dpv.pv_id
4791
					 	 )
4792
					   ) tpkg,
4793
					   package_versions pv,
4794
					   release_content rc
4795
					WHERE rc.rtag_id = nRtag_id
4796
					  AND rc.pv_id = pv.pv_id
4797
					  AND tpkg.pkg_id = pv.pkg_id
4798
					  AND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');
4799
 
4800
            rowCnt := SQL%ROWCOUNT;
4801
        	IF rowCnt > 0 THEN
4802
	           iteration := iteration - 1;
4803
			END IF;
4804
            EXIT WHEN (rowCnt < 1);
4805
     	END LOOP;
4806
 
4807
	 END IF;
4808
 
4809
 
4810
	/*---------------------------------------------------------------------------------------------------------------------*/
4811
 
4812
	/*
4813
	|| 	 Save results from temp table
4814
	*/
4815
	/* Clean up build_order table */
4816
	DELETE FROM BUILD_ORDER WHERE rtag_id = nRtag_id;
4817
 
4818
	/* Save UP THE TREE */
4819
	INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )
4820
		SELECT nRtag_id AS rtag_id,
4821
			   ttb.level_num AS step_num,
4822
			   ttb.PV_ID
4823
		  FROM temp_tree_browse ttb
4824
		 WHERE ttb.session_num = sessionNum
4825
		   AND ttb.direction = UP_THE_TREE;
4826
 
4827
	/*Get last step_num */
4828
	SELECT MAX(ttb.level_num) + 1 INTO levelNum
4829
	FROM temp_tree_browse ttb WHERE ttb.session_num = sessionNum AND ttb.DIRECTION = UP_THE_TREE;
4830
 
4831
	/* UNRESOLVED */
4832
	 SELECT COUNT(*) INTO rowCnt
4833
	   FROM (
4834
			 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
4835
			  FROM release_content rc,
4836
			  	   package_versions pv
4837
			 WHERE rc.rtag_id = nRtag_id
4838
			   AND rc.pv_id = pv.pv_id
4839
			MINUS
4840
			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
4841
			  FROM temp_tree_browse ttb
4842
			 WHERE ttb.session_num = sessionNum
4843
			);
4844
 
4845
 
4846
	IF rowCnt > 0
4847
	THEN
4848
		/* Save unresolved packages */
4849
 		INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID, UNRESOLVED )
4850
		    SELECT  nRtag_id AS rtag_id,
4851
				    levelNum AS step_num,
4852
				    upv.PV_ID,
4853
					'Y' AS UNRESOLVED
4854
			   FROM (
4855
					 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
4856
					  FROM release_content rc,
4857
					  	   package_versions pv
4858
					 WHERE rc.rtag_id = nRtag_id
4859
					   AND rc.pv_id = pv.pv_id
4860
					MINUS
4861
					SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
4862
					  FROM temp_tree_browse ttb
4863
					 WHERE ttb.session_num = sessionNum
4864
					) upv;
4865
	END IF;
4866
 
4867
	/* Save DOWN THE TREE */
4868
	levelNum := 1000;
4869
	INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )
4870
		SELECT nRtag_id AS rtag_id,
4871
			   levelNum + ttb.level_num  AS step_num,
4872
			   ttb.PV_ID
4873
		  FROM temp_tree_browse ttb
4874
		 WHERE ttb.session_num = sessionNum
4875
		   AND ttb.direction = DOWN_THE_TREE;
4876
 
4877
 
4878
	/*---------------------------------------------------------------------------------------------------------------------*/
4879
 
4880
	/* Clean up temp table */
4881
	DELETE FROM TEMP_TREE_BROWSE WHERE session_num = sessionNum;
4882
 
4883
	retSessionNum := sessionNum;
4884
END Build_Tree;
4885
 
4886
/
4040 dpurdie 4887
--------------------------------------------------------
6999 dpurdie 4888
--  DDL for Procedure CHANGE_PACKAGE_STATE
4040 dpurdie 4889
--------------------------------------------------------
6999 dpurdie 4890
set define off;
4040 dpurdie 4891
 
6999 dpurdie 4892
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHANGE_PACKAGE_STATE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
4893
											 nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS
4894
/* ---------------------------------------------------------------------------
4895
    Version: 4.0
4896
   --------------------------------------------------------------------------- */
4897
 
4898
BEGIN
4899
 
4900
    -- Unlock Package
4901
    UPDATE RELEASE_CONTENT rc SET
4902
    	rc.PKG_STATE = 0
4903
    WHERE rc.PV_ID = nPvId
4904
	AND rc.RTAG_ID = nRtagId;
4905
 
4906
    /* LOG ACTION */
4907
   /*	Log_Action ( nPvId, 'unlock_package', nUserId );*/
4908
 
4909
END Change_Package_State;
4910
 
4911
/
4040 dpurdie 4912
--------------------------------------------------------
6999 dpurdie 4913
--  DDL for Procedure CHANGE_RELEASE_MODE
4040 dpurdie 4914
--------------------------------------------------------
6999 dpurdie 4915
set define off;
4040 dpurdie 4916
 
6999 dpurdie 4917
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHANGE_RELEASE_MODE" ( nModeCode IN NUMBER, nRtagId IN NUMBER, UserId IN NUMBER ) IS
4918
/* ---------------------------------------------------------------------------
4919
    Version: 3.0.0
4920
   --------------------------------------------------------------------------- */
5172 dpurdie 4921
 
6999 dpurdie 4922
	cMode CHAR(1) := NULL;
4923
	nProjId NUMBER;
4924
 
4925
BEGIN
4926
 
4927
 
4928
	/*
4929
	Author: Rupesh Solanki
4930
	Modified: 24th October 2006
4931
	Reason: Added the archive mode state into Release Manager
4932
	||	1 - Open Mode
4933
	||	2 - Restrictive Mode
4934
	||	3 - Closed Mode
4935
	||	4 - CCB Mode
4936
	||	5 - Archive Mode
4937
  ||  6 - Preserve Mode
4938
	*/
4939
	-- Get project Id
4940
	SELECT rt.PROJ_ID INTO nProjId
4941
	  FROM RELEASE_TAGS rt
4942
	 WHERE rt.RTAG_ID = nRtagId;
4943
 
4944
	IF nModeCode = 1 THEN
4945
		-- Open Mode
4946
		cMode := 'N';
4947
 
4948
		/* LOG ACTION */
4949
   		Log_Project_Action ( nProjId, 'set_to_open_mode', UserId, 'Release is set to Open Mode', nRtagId );
4950
 
4951
	ELSIF nModeCode = 2 THEN
4952
		-- Restrictive Mode
4953
		cMode := 'R';
4954
 
4955
		/* LOG ACTION */
4956
   		Log_Project_Action ( nProjId, 'set_to_restrictive_mode', UserId, 'Release is set to Restrictive Mode', nRtagId );
4957
 
4958
	ELSIF nModeCode = 3 THEN
4959
		-- Closed Mode
4960
		cMode := 'Y';
4961
 
4962
		/* LOG ACTION */
4963
   		Log_Project_Action ( nProjId, 'set_to_closed_mode', UserId, 'Release is set to Closed Mode', nRtagId  );
4964
 
4965
	ELSIF nModeCode = 4 THEN
4966
		-- CCB Mode
4967
		cMode := 'C';
4968
 
4969
		/* LOG ACTION */
4970
   		Log_Project_Action ( nProjId, 'set_to_ccb_mode', UserId, 'Release is set to CCB Mode', nRtagId  );
4971
 
4972
	ELSIF nModeCode = 5 THEN
4973
		-- Archive Mode
4974
		cMode := 'A';
4975
 
4976
		/* LOG ACTION */
4977
   		Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Archive Mode', nRtagId  );
4978
 
4979
  ELSIF nModeCode = 6 THEN
4980
		-- Archive Mode
4981
		cMode := 'P';
4982
 
4983
		/* LOG ACTION */
4984
   		Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Preserve Mode', nRtagId  );
4985
	END IF;
4986
 
4987
 
4988
 
4989
	-- Now update table
4990
	IF NOT cMode IS NULL THEN
4991
		UPDATE RELEASE_TAGS rt SET
4992
		rt.OFFICIAL = cMode,
4993
    rt.OFFICIAL_STAMP = ORA_SYSDATETIME,
4994
    rt.OFFICIAL_ID = UserId
4995
		WHERE rt.RTAG_ID = nRtagId;
4996
 
4997
	END IF;
4998
 
4999
 
5000
END CHANGE_RELEASE_MODE;
5001
 
5002
/
4040 dpurdie 5003
--------------------------------------------------------
6999 dpurdie 5004
--  DDL for Procedure CHECK_NEW_PATCHES
4040 dpurdie 5005
--------------------------------------------------------
6999 dpurdie 5006
set define off;
4040 dpurdie 5007
 
6999 dpurdie 5008
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHECK_NEW_PATCHES" (
5009
   nrtagid   IN   release_content.rtag_id%TYPE
5010
)
5011
IS
5012
/* ---------------------------------------------------------------------------
5013
    Version: 3.0
5014
   --------------------------------------------------------------------------- */
5015
BEGIN
5016
   /*--------------- Business Rules Here -------------------*/
5017
   /*IF nRtagId NOT IN (SELECT RTAG_ID FROM RELEASE_TAGS ) THEN
5018
      RAISE_APPLICATION_ERROR (-20000, 'Please contact the person in charge of Release Manager now.' );
5019
   END IF
5020
 
5021
   /*-------------------------------------------------------*/
5022
   UPDATE release_content rc
5023
      SET rc.pkg_state = 5                          -- enumPKG_STATE_NEW_PATCH
5024
    WHERE rc.pv_id IN (
5025
             SELECT prod.pv_id
5026
               FROM (SELECT   pp.pv_id AS orig_parent_id,
5027
                              COUNT (*) AS num_of_patches
5028
                         FROM release_content rc, package_patches pp
5029
                        WHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagid
5030
                     GROUP BY pp.pv_id) orig,
5031
                    (SELECT   prodpp.pv_id, pp.pv_id AS parent_id,
5032
                              COUNT (*) AS num_of_patches
5033
                         FROM release_content rc,
5034
                              package_patches pp,
5035
                              package_dependencies dep,
5036
                              package_versions pv,
5037
                              package_patches prodpp
5038
                        WHERE rc.pv_id = pp.pv_id
5039
                          AND rc.rtag_id = nrtagid
5040
                          AND pp.patch_id = dep.dpv_id
5041
                          AND dep.pv_id = pv.pv_id
5042
                          AND pv.is_patch = 'Y'
5043
                          AND pv.dlocked = 'Y'
5044
                          AND prodpp.patch_id = dep.pv_id
5045
                     GROUP BY prodpp.pv_id, pp.pv_id) prod,
5046
                    release_content rc
5047
              WHERE orig.orig_parent_id = prod.pv_id
5048
                AND orig.num_of_patches != prod.num_of_patches
5049
                AND rc.rtag_id = nrtagid
5050
                AND rc.pv_id = prod.pv_id
5051
                AND rc.pkg_state = 0
5052
             UNION
5053
             SELECT   prodpp.pv_id
5054
                 FROM release_content rc,
5055
                      package_patches pp,
5056
                      package_dependencies dep,
5057
                      package_versions pv,
5058
                      package_patches prodpp
5059
                WHERE rc.pv_id = pp.pv_id
5060
                  AND rc.rtag_id = nrtagid
5061
                  AND pp.patch_id = dep.dpv_id
5062
                  AND dep.pv_id = pv.pv_id
5063
                  AND pv.is_patch = 'Y'
5064
                  AND pv.dlocked = 'Y'
5065
                  AND prodpp.patch_id = dep.pv_id
5066
             GROUP BY prodpp.pv_id, pp.pv_id
5067
             MINUS
5068
             SELECT   pp.pv_id
5069
                 FROM release_content rc, package_patches pp
5070
                WHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagid
5071
             GROUP BY pp.pv_id);
5072
END check_new_patches;
5073
 
5074
/
4040 dpurdie 5075
--------------------------------------------------------
6999 dpurdie 5076
--  DDL for Procedure CLEAN_ADVISORY_RIPPLE
4040 dpurdie 5077
--------------------------------------------------------
6999 dpurdie 5078
set define off;
4040 dpurdie 5079
 
6999 dpurdie 5080
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAN_ADVISORY_RIPPLE" (nrtagid IN NUMBER)
5081
IS
5082
/******************************************************************************
5083
   NAME:       clean_advisory_ripple
5892 dpurdie 5084
 
6999 dpurdie 5085
   PURPOSE:    To delete entries from the advisory_ripple table based upon
5086
               an RTAG_ID only
5087
 
5088
               This is a tidy-up operation performed against the advisory_ripple
5089
               table, ensuring that the table does not have rtag_id/pv_id
5090
               combinations that cannot be found in the release's wip/pending/release
5091
               tabs.
5092
 
5093
******************************************************************************/
5094
BEGIN
5095
   -- Delete any invalid rtag_id/pv_id combination from the advisory_ripple table.
5096
   -- An invalid rtag_id/pv_id combination is one that cannot be found in the
5097
   -- work_in_progress, planned, or release_content table.
5098
   -- NOTE: Planned operations that represent pending additive/subtractive merge
5099
   -- operations are ignored because they have not been approved yet and so
5100
   -- cannot be said to be "in the release".
5101
   DELETE FROM advisory_ripple
5102
         WHERE rtag_id = nrtagid
5103
           AND pv_id not in
5104
               ((SELECT pv_id FROM release_content WHERE rtag_id = nrtagid)
5105
                 UNION
5106
                (SELECT pv_id FROM work_in_progress WHERE rtag_id = nrtagid)
5107
                 UNION
5108
                (SELECT pv_id FROM planned WHERE rtag_id = nrtagid AND (operation is null OR operation = 'R'))
5109
               );
5110
END clean_advisory_ripple;
5111
 
5112
/
4040 dpurdie 5113
--------------------------------------------------------
6999 dpurdie 5114
--  DDL for Procedure CLEAN_DO_NOT_RIPPLE
4040 dpurdie 5115
--------------------------------------------------------
6999 dpurdie 5116
set define off;
4040 dpurdie 5117
 
6999 dpurdie 5118
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAN_DO_NOT_RIPPLE" (nrtagid IN NUMBER)
5119
IS
5120
/******************************************************************************
5121
   NAME:       clean_do_not_ripple
5122
 
5123
   PURPOSE:    To delete entries from the do_not_ripple table based upon
5124
               an RTAG_ID only
5125
 
5126
               This is a tidy-up operation performed against the do_not_ripple
5127
               table, ensuring that the table does not have rtag_id/pv_id
5128
               combinations that cannot be found in the release's wip/pending/release
5129
               tabs.
5130
 
5131
******************************************************************************/
5132
BEGIN
5133
   -- Delete any invalid rtag_id/pv_id combination from the do_not_ripple table.
5134
   -- An invalid rtag_id/pv_id combination is one that cannot be found in the
5135
   -- work_in_progress, planned, or release_content table.
5136
   -- NOTE: Planned operations that represent pending additive/subtractive merge
5137
   -- operations are ignored because they have not been approved yet and so
5138
   -- cannot be said to be "in the release".
5139
   DELETE FROM do_not_ripple
5140
         WHERE rtag_id = nrtagid
5141
           AND pv_id not in
5142
               ((SELECT pv_id FROM release_content WHERE rtag_id = nrtagid)
5143
                 UNION
5144
                (SELECT pv_id FROM work_in_progress WHERE rtag_id = nrtagid)
5145
                 UNION
5146
                (SELECT pv_id FROM planned WHERE rtag_id = nrtagid AND (operation is null OR operation = 'R'))
5147
               );
5148
END clean_do_not_ripple;
5149
 
5150
/
4040 dpurdie 5151
--------------------------------------------------------
6999 dpurdie 5152
--  DDL for Procedure CLEAR_ADVISORY_RIPPLE
4040 dpurdie 5153
--------------------------------------------------------
6999 dpurdie 5154
set define off;
4040 dpurdie 5155
 
6999 dpurdie 5156
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAR_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
5157
	   	  		  							   nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
5158
											 nUserId IN NUMBER ) IS
5159
/* ---------------------------------------------------------------------------
5160
    Version: 4.0
5161
   --------------------------------------------------------------------------- */
5162
 
5163
BEGIN
5164
 
5165
    -- Clear Advisory Ripple Package
5166
    DELETE FROM ADVISORY_RIPPLE
5167
	WHERE PV_ID = nPvId
5168
	AND RTAG_ID = nRtagId;
5169
 
5170
    /* LOG ACTION */
5171
   	Log_Action ( nPvId, 'clear_advisory_ripple', nUserId );
5172
 
5173
	/*Rebuild_Environment(nRtagId);*/
5174
 
5175
END Clear_Advisory_Ripple;
5176
 
5177
/
4040 dpurdie 5178
--------------------------------------------------------
6999 dpurdie 5179
--  DDL for Procedure CLONED_PACKAGE_PROCESSES
4040 dpurdie 5180
--------------------------------------------------------
6999 dpurdie 5181
set define off;
4040 dpurdie 5182
 
6999 dpurdie 5183
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLONED_PACKAGE_PROCESSES" 
5184
IS
5185
 
5186
proc_id NUMBER;
5187
/******************************************************************************
5188
   NAME:       DELETE_DO_NOT_RIPPLE
5189
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
5190
               IS RELEASED
5191
 
5192
   REVISIONS:
5193
   Ver        Date        Author           Description
5194
   ---------  ----------  ---------------  ------------------------------------
5195
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
5196
 
5197
   NOTES:
5198
 
5199
   Automatically available Auto Replace Keywords:
5200
      Object Name:     DELETE_DO_NOT_RIPPLE
5201
      Sysdate:         21/04/2006
5202
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
5203
      Username:         (set in TOAD Options, Procedure Editor)
5204
      Table Name:       (set in the "New PL/SQL Object" dialog)
5205
 
5206
******************************************************************************/
5207
   CURSOR ripple_cur
5208
   IS
5209
      select distinct proc_id, prod_id from deployment_manager.processes_config;
5210
 
5211
   ripple_rec   ripple_cur%ROWTYPE;
5212
BEGIN
5213
   OPEN ripple_cur;
5214
 
5215
   FETCH ripple_cur
5216
    INTO ripple_rec;
5217
 
5218
   WHILE ripple_cur%FOUND
5219
   LOOP
5220
 
5221
 
5222
 
5223
insert into package_processes (PROC_ID, PV_ID)
5224
values( ripple_rec.proc_id, ripple_rec.prod_id);
5225
 
5226
      FETCH ripple_cur
5227
       INTO ripple_rec;
5228
   END LOOP;
5229
END CLONED_PACKAGE_PROCESSES;
5230
 
5231
/
4040 dpurdie 5232
--------------------------------------------------------
6999 dpurdie 5233
--  DDL for Procedure CLONED_PROCESSES
4040 dpurdie 5234
--------------------------------------------------------
6999 dpurdie 5235
set define off;
4040 dpurdie 5236
 
6999 dpurdie 5237
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLONED_PROCESSES" 
5238
IS
5239
 
5240
proc_id NUMBER;
5241
/******************************************************************************
5242
   NAME:       DELETE_DO_NOT_RIPPLE
5243
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
5244
               IS RELEASED
5245
 
5246
   REVISIONS:
5247
   Ver        Date        Author           Description
5248
   ---------  ----------  ---------------  ------------------------------------
5249
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
5250
 
5251
   NOTES:
5252
 
5253
   Automatically available Auto Replace Keywords:
5254
      Object Name:     DELETE_DO_NOT_RIPPLE
5255
      Sysdate:         21/04/2006
5256
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
5257
      Username:         (set in TOAD Options, Procedure Editor)
5258
      Table Name:       (set in the "New PL/SQL Object" dialog)
5259
 
5260
******************************************************************************/
5261
   CURSOR ripple_cur
5262
   IS
5263
      select distinct pkg_health_tag, cmd_interface, pkg_owner, is_interface from deployment_manager.processes_config;
5264
 
5265
   ripple_rec   ripple_cur%ROWTYPE;
5266
BEGIN
5267
   OPEN ripple_cur;
5268
 
5269
   FETCH ripple_cur
5270
    INTO ripple_rec;
5271
 
5272
   WHILE ripple_cur%FOUND
5273
   LOOP
5274
 
5275
   select deployment_manager.seq_proc_id.nextval into proc_id from dual;
5276
 
5277
insert into processes (PROC_ID, PROC_NAME, RUN_AS, PKG_OWNER, IS_INTERFACE)
5278
values(proc_id, ripple_rec.pkg_health_tag, ripple_rec.cmd_interface, ripple_rec.pkg_owner, ripple_rec.is_interface);
5279
 
5280
      FETCH ripple_cur
5281
       INTO ripple_rec;
5282
   END LOOP;
5283
END CLONED_PROCESSES;
5284
 
5285
/
4040 dpurdie 5286
--------------------------------------------------------
6999 dpurdie 5287
--  DDL for Procedure DELETE_AUTOBUILD_FAILURE_INFO
4040 dpurdie 5288
--------------------------------------------------------
6999 dpurdie 5289
set define off;
4040 dpurdie 5290
 
6999 dpurdie 5291
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DELETE_AUTOBUILD_FAILURE_INFO" 
5292
IS
5293
/******************************************************************************
5294
   NAME:       DELETE_AUTOBUILD_FAILURE_INFO
5295
   PURPOSE:
5296
 
5297
   REVISIONS:
5298
   Ver        Date        Author           Description
5299
   ---------  ----------  ---------------  ------------------------------------
5300
   1.0        2/06/2006    Rupesh Solanki      1. Created this procedure.
5301
 
5302
   NOTES:
5303
 
5304
   Automatically available Auto Replace Keywords:
5305
      Object Name:     DELETE_AUTOBUILD_FAILURE_INFO
5306
      Sysdate:         2/06/2006
5307
      Date and Time:   2/06/2006, 8:44:25 AM, and 2/06/2006 8:44:25 AM
5308
      Username:         (set in TOAD Options, Procedure Editor)
5309
      Table Name:       (set in the "New PL/SQL Object" dialog)
5310
 
5311
******************************************************************************/
5312
BEGIN
5313
   DELETE FROM autobuild_failure
5314
         WHERE group_email_id NOT IN (SELECT group_email_id
5315
                                        FROM members_group);
5316
END delete_autobuild_failure_info;
5317
 
5318
/
4040 dpurdie 5319
--------------------------------------------------------
6999 dpurdie 5320
--  DDL for Procedure DEPRECATE_PACKAGE
4040 dpurdie 5321
--------------------------------------------------------
6999 dpurdie 5322
set define off;
4040 dpurdie 5323
 
6999 dpurdie 5324
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DEPRECATE_PACKAGE" (
5325
    nPvId     IN PACKAGE_VERSIONS.PV_ID%TYPE,
5326
    nRtagId   IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,
5327
    nPkgId    IN DEPRECATED_PACKAGES.PKG_ID%TYPE,
5328
    sComments IN DEPRECATED_PACKAGES.COMMENTS%TYPE,
5329
    nUserId   IN NUMBER)
5330
IS
5331
  ext VARCHAR2(50);
5332
BEGIN
5333
  --Extract the package version extension
5334
  SELECT V_EXT INTO ext
5335
  FROM PACKAGE_VERSIONS
5336
  WHERE PV_ID = nPvId;
5337
 
5338
  -- Deprecate Package
5339
  INSERT INTO DEPRECATED_PACKAGES
5340
    ( RTAG_ID, PKG_ID, COMMENTS, V_EXT )
5341
    VALUES ( nRtagId, nPkgId, sComments, ext );
5342
 
5343
  -- Update Release Contents entry
5344
  -- Process PackageName.ext for the package. ie: Allow multiple
5345
  -- versions of the package to be in the release.
5346
    UPDATE RELEASE_CONTENT
5347
    SET
5348
      DEPRECATED_STATE = 6
5349
    WHERE RTAG_ID      = nRtagId
5350
    AND PV_ID IN (
5351
      SELECT PV.PV_ID
5352
      FROM PACKAGE_VERSIONS PV
5353
      WHERE PV.PKG_ID   = nPkgId
5354
      AND NVL(PV.V_EXT, '.NULL') = NVL(ext,'.NULL')
5355
      );
5356
 
5357
  -- Update consumers of the package
5358
  --  Update ALL packages in the Release
5359
 
5360
  REBUILD_DEPRECATE_STATE(nRtagId);
5361
 
5362
  /* LOG ACTION */
5363
  /*Log_Action ( nPkgId, 'deprecated_package', nUserId );*/
5364
END Deprecate_Package;
5365
 
5366
/
4040 dpurdie 5367
--------------------------------------------------------
6999 dpurdie 5368
--  DDL for Procedure DT_DROPUSEROBJECTBYID
4040 dpurdie 5369
--------------------------------------------------------
6999 dpurdie 5370
set define off;
4040 dpurdie 5371
 
6999 dpurdie 5372
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DT_DROPUSEROBJECTBYID" ( PARAM_ID IN NUMBER ) AS BEGIN DELETE FROM MICROSOFTDTPROPERTIES WHERE OBJECTID = PARAM_ID; END DT_DROPUSEROBJECTBYID;
5373
 
5374
/
4040 dpurdie 5375
--------------------------------------------------------
6999 dpurdie 5376
--  DDL for Procedure DT_SETPROPERTYBYID
4040 dpurdie 5377
--------------------------------------------------------
6999 dpurdie 5378
set define off;
4040 dpurdie 5379
 
6999 dpurdie 5380
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DT_SETPROPERTYBYID" (
5381
    PARAM_ID       IN NUMBER,
5382
    PARAM_PROPERTY IN VARCHAR2,
5383
    PARAM_VALUE    IN VARCHAR2,
5384
    PARAM_LVALUE   IN LONG RAW )
5385
AS
5386
BEGIN
5387
  DECLARE
5388
    X NUMBER(38);
5389
  BEGIN
5390
    SELECT COUNT(*)
5391
    INTO X
5392
    FROM MICROSOFTDTPROPERTIES
5393
    WHERE OBJECTID=PARAM_ID
5394
    AND PROPERTY  =PARAM_PROPERTY;
5395
    IF X          = 0 THEN
5396
      INSERT
5397
      INTO MICROSOFTDTPROPERTIES
5398
        (
5399
          ID,
5400
          PROPERTY,
5401
          OBJECTID,
5402
          VALUE,
5403
          LVALUE,
5404
          VERSION
5405
        )
5406
        VALUES
5407
        (
5408
          MICROSOFTSEQDTPROPERTIES.NEXTVAL,
5409
          PARAM_PROPERTY,
5410
          PARAM_ID,
5411
          PARAM_VALUE,
5412
          PARAM_LVALUE,
5413
 
5414
        );
5415
    ELSE
5416
      UPDATE MICROSOFTDTPROPERTIES
5417
      SET VALUE     =PARAM_VALUE,
5418
        LVALUE      =PARAM_LVALUE,
5419
        VERSION     =VERSION+1
5420
      WHERE OBJECTID=PARAM_ID
5421
      AND PROPERTY  =PARAM_PROPERTY;
5422
    END IF;
5423
  END;
5424
END DT_SETPROPERTYBYID;
5425
 
5426
/
4040 dpurdie 5427
--------------------------------------------------------
6999 dpurdie 5428
--  DDL for Procedure IGNORE_DEPENDENCY_WARNINGS
4040 dpurdie 5429
--------------------------------------------------------
6999 dpurdie 5430
set define off;
4040 dpurdie 5431
 
6999 dpurdie 5432
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."IGNORE_DEPENDENCY_WARNINGS" ( nRtagId IN IGNORE_WARNINGS.RTAG_ID%TYPE,
5433
                                                         nPvId IN IGNORE_WARNINGS.PV_ID%TYPE,
5434
                                                         sIgnoreIdList IN VARCHAR2,
5435
                                                         bDoPatchIgnore IN BOOLEAN DEFAULT FALSE,
5436
                                                         nUserId IN NUMBER DEFAULT NULL ) IS
5437
/* ---------------------------------------------------------------------------
5438
    Updates the ignore warnings table - this is really two functions in one.
5439
 
5440
    1) One function updates the table based on a list of dependent PV_IDs and a parent PV_ID
5441
       and is called from the RM website's SetIgnoreWarnings() function after a user changes
5442
       the ignore warnings checkboxes and submits the form.
5443
       This can (at time of writing this) only be done within releases that are not build
5444
       daemon enabled. The ignore warnings feature is a feature we would like to see the end
5445
       of in an ideal world.
5446
       The SetIgnoreWarnings() website function now calls Touch_Release so there is no need to
5447
       do so in this stored procedure, thereby making this stored procedure much more precise in
5448
       that it only updates the ignore_warnings table (action log table too although that is just
5449
       a log and doesn't affect any subsequent business rules behaviour) and it cares nothing
5450
       about website presentation layer states, etc.
5451
 
5452
    2) The other function updates the table for out of sync dependencies that have in fact
5453
       been satisfied by patches made to some other product in the release.
5454
       This seems to be a seldom used feature in current projects.
5455
       It is probably the most often taken path through this function given that it occurs when
5456
       this function is called from Rebuild_Environment, and that is called in many circumstances
5457
       from the RM website whenever the seems to be a possibility that the state of a package
5458
       in a release might have changed and therefore affects the state of other packages in
5459
       that same release.
5460
 
5461
    Parameter Usage:
5462
                        when called from    | when called from
5463
                        Rebuild_Environment | SetIgnoreWarnings()
5464
                        stored procedure.   | in the Website
5465
      --------------------------------------+----------------------------
5466
      nRtagId           RTAG_ID             | RTAG_ID
5467
      nPvId             NULL                | PV_ID
5468
      sIgnoreIdList     NULL                | list of dependent PV_ID's
5469
      bDoPatchIgnore    TRUE                | FALSE
5470
      nUserId           NULL                | current user ID
5471
   --------------------------------------------------------------------------- */
5472
 
5473
oIgnoreIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
5474
ReleaseLocation VARCHAR2(4000);
5475
ActionTypeId NUMBER;
5476
 
5477
BEGIN
5478
 
5479
   IF (NOT bDoPatchIgnore) THEN
5480
      /* Manual Ignore Warnings - this execution path is the one taken when called from SetIgnoreWarnings() in the Website
5481
      */
5482
      oIgnoreIdCollector := IN_LIST_NUMBER ( sIgnoreIdList );
5483
 
5484
 
5485
      /* Log Action */
5486
      -- Get Release Location
5487
      SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
5488
        FROM PROJECTS proj,
5489
             RELEASE_TAGS rt
5490
       WHERE rt.PROJ_ID = proj.PROJ_ID
5491
         AND rt.RTAG_ID = nRtagId;
5492
 
5493
      -- Get Action Type Id for IGNORE_ON
5494
      SELECT act.ACTTYPE_ID INTO ActionTypeId
5495
        FROM ACTION_TYPE act
5496
       WHERE act.NAME = 'ignore_on';
5497
 
5498
      -- Get Ignored (Current MINUS Old)
5499
      INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
5500
      SELECT nUserId, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeId
5501
        FROM (
5502
              SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_ID
5503
                FROM PACKAGE_VERSIONS pv
5504
               WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
5505
              MINUS
5506
              SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_ID
5507
                FROM IGNORE_WARNINGS igw
5508
               WHERE igw.RTAG_ID = nRtagId
5509
                 AND igw.PV_ID = nPvId
5510
             ) qry,
5511
             PACKAGE_VERSIONS pv,
5512
             PACKAGES pkg,
5513
             RELEASE_CONTENT rc,
5514
             PACKAGE_VERSIONS rpv
5515
       WHERE pv.PKG_ID = pkg.PKG_ID
5516
         AND rc.RTAG_ID = nRtagId
5517
         AND rc.PV_ID = rpv.PV_ID
5518
         AND rpv.PKG_ID = pv.PKG_ID
5519
         AND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )
5520
         AND qry.DPV_ID = pv.PV_ID;
5521
 
5522
 
5523
      -- Get Action Type Id for IGNORE_OFF
5524
      SELECT act.ACTTYPE_ID INTO ActionTypeId
5525
        FROM ACTION_TYPE act
5526
       WHERE act.NAME = 'ignore_off';
5527
 
5528
      -- Get UnIgnored (Old MINUS Current)
5529
      INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
5530
      SELECT nUserId, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeId
5531
        FROM (
5532
              SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_ID
5533
                FROM IGNORE_WARNINGS igw
5534
               WHERE igw.RTAG_ID = nRtagId
5535
                 AND igw.PV_ID = nPvId
5536
              MINUS
5537
              SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_ID
5538
                FROM PACKAGE_VERSIONS pv
5539
               WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
5540
             ) qry,
5541
             PACKAGE_VERSIONS pv,
5542
             PACKAGES pkg,
5543
             RELEASE_CONTENT rc,
5544
             PACKAGE_VERSIONS rpv
5545
       WHERE pv.PKG_ID = pkg.PKG_ID
5546
         AND rc.RTAG_ID = nRtagId
5547
         AND rc.PV_ID = rpv.PV_ID
5548
         AND rpv.PKG_ID = pv.PKG_ID
5549
         AND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )
5550
         AND qry.DPV_ID = pv.PV_ID;
5551
 
5552
 
5553
      -- Delete Current Ignore Warnings
5554
      DELETE
5555
        FROM IGNORE_WARNINGS igw
5556
       WHERE igw.RTAG_ID = nRtagId
5557
         AND igw.PV_ID = nPvId
5558
         AND igw.IS_PATCH_IGNORE IS NULL;
5559
 
5560
 
5561
      IF (oIgnoreIdCollector.COUNT > 0) THEN
5562
         -- Insert Ignore Warnings
5563
         INSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID )
5564
         SELECT nRtagId,
5565
                nPvId,
5566
                pv.PV_ID AS DPV_ID
5567
           FROM PACKAGE_VERSIONS pv
5568
          WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
5569
      END IF;
5570
 
5571
   ELSE
5572
      /* Patch Ignore Warnings - this execution path is the one taken when called from the Rebuild_Environment stored procedure */
5573
 
5574
      -- Delete Current Patch Ignore Warnings
5575
      DELETE
5576
        FROM IGNORE_WARNINGS igw
5577
       WHERE igw.RTAG_ID = nRtagId
5578
         AND igw.IS_PATCH_IGNORE = 'Y';
5579
 
5580
 
5581
      -- Delete Manual Ignores that need to be Patch Ignores
5582
      DELETE
5583
        FROM IGNORE_WARNINGS igw
5584
       WHERE ( RTAG_ID, PV_ID, DPV_ID ) IN
5585
             (
5586
              SELECT DISTINCT
5587
                     nRtagId,
5588
                     err.PV_ID,
5589
                     err.ERR_DPV AS DPV_ID
5590
               FROM  (
5591
                      /* Full Release Contents used for reference*/
5592
                      SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext
5593
                        FROM release_content rel, package_versions rpv
5594
                       WHERE rel.pv_id = rpv.pv_id
5595
                         AND rtag_id = nRtagId
5596
                     ) frc,
5597
                     (
5598
                      /* DPV_IDs not fount in release*/
5599
                      SELECT dep.pv_id, dep.dpv_id AS err_dpv
5600
                        FROM package_dependencies dep
5601
                       WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
5602
                         AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
5603
                     ) err,
5604
                     (
5605
                      SELECT DISTINCT pp.PV_ID, dep.DPV_ID
5606
                        FROM PACKAGE_PATCHES pp,
5607
                             PACKAGE_DEPENDENCIES dep,
5608
                             RELEASE_CONTENT rc
5609
                       WHERE rc.RTAG_ID = nRtagId
5610
                         AND rc.PV_ID = pp.PV_ID
5611
                         AND dep.PV_ID = pp.PATCH_ID
5612
                     ) pp,
5613
                     package_versions errpkg,
5614
                     package_versions errpv
5615
               WHERE err.err_dpv = errpv.pv_id
5616
                 AND errpv.pkg_id = frc.pkg_id(+)
5617
                 AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
5618
                 AND err.pv_id = errpkg.pv_id
5619
                 AND err.PV_ID = pp.PV_ID
5620
                 AND frc.PV_ID = pp.DPV_ID
5621
             );
5622
 
5623
      /*
5624
      ---------------------------------------------------
5625
      --  Make sure that select statement above and below are same
5626
      ---------------------------------------------------
5627
      */
5628
 
5629
      -- Insert Patch Ignores
5630
      INSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE )
5631
      SELECT DISTINCT
5632
             nRtagId,
5633
             err.PV_ID,
5634
             err.ERR_DPV AS DPV_ID,
5635
             'Y'
5636
        FROM (
5637
              /* Full Release Contents used for reference*/
5638
              SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext
5639
                FROM release_content rel, package_versions rpv
5640
               WHERE rel.pv_id = rpv.pv_id
5641
                 AND rtag_id = nRtagId
5642
             ) frc,
5643
             (
5644
               /* DPV_IDs not fount in release*/
5645
               SELECT dep.pv_id, dep.dpv_id AS err_dpv
5646
                 FROM package_dependencies dep
5647
                WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
5648
                  AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
5649
             ) err,
5650
             (
5651
              SELECT DISTINCT pp.PV_ID, dep.DPV_ID
5652
                FROM PACKAGE_PATCHES pp,
5653
                     PACKAGE_DEPENDENCIES dep,
5654
                     RELEASE_CONTENT rc
5655
               WHERE rc.RTAG_ID = nRtagId
5656
                 AND rc.PV_ID = pp.PV_ID
5657
                 AND dep.PV_ID = pp.PATCH_ID
5658
             ) pp,
5659
             package_versions errpkg,
5660
             package_versions errpv
5661
       WHERE err.err_dpv = errpv.pv_id
5662
         AND errpv.pkg_id = frc.pkg_id(+)
5663
         AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
5664
         AND err.pv_id = errpkg.pv_id
5665
         AND err.PV_ID = pp.PV_ID
5666
         AND frc.PV_ID = pp.DPV_ID;
5667
 
5668
    END IF;
5669
 
5670
END Ignore_Dependency_Warnings;
5671
 
5672
/
4040 dpurdie 5673
--------------------------------------------------------
6999 dpurdie 5674
--  DDL for Procedure INSERT_INTO_PACKAGE_BUILD_INFO
4040 dpurdie 5675
--------------------------------------------------------
6999 dpurdie 5676
set define off;
4040 dpurdie 5677
 
6999 dpurdie 5678
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."INSERT_INTO_PACKAGE_BUILD_INFO" IS
5679
 
5680
/******************************************************************************
5681
   NAME:       INSERT_INTO_PACKAGE_BUILD_INFO
5682
   PURPOSE:
5683
 
5684
   REVISIONS:
5685
   Ver        Date        Author           Description
5686
   ---------  ----------  ---------------  ------------------------------------
5687
   1.0        6/12/2006          1. Created this procedure.
5688
 
5689
   NOTES:
5690
 
5691
   Automatically available Auto Replace Keywords:
5692
      Object Name:     INSERT_INTO_PACKAGE_BUILD_INFO
5693
      Sysdate:         6/12/2006
5694
      Date and Time:   6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PM
5695
      Username:         (set in TOAD Options, Procedure Editor)
5696
      Table Name:       (set in the "New PL/SQL Object" dialog)
5697
 
5698
******************************************************************************/
5699
 
5700
	CURSOR curInfo IS
5701
    SELECT PV_ID
5702
	FROM PACKAGE_BUILD_ENV
5703
	WHERE BE_ID IN (11, 12);
5704
    recInfo curInfo%ROWTYPE;
5705
 
5706
 
5707
BEGIN
5708
 
5709
	OPEN curInfo;
5710
    FETCH curInfo INTO recInfo;
5711
 
5712
	WHILE curInfo%FOUND
5713
	LOOP
5714
 
5715
		INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID, BSA_ID )
5716
		VALUES( recInfo.PV_ID, 2, 5);
5717
 
5718
		UPDATE PACKAGE_VERSIONS SET BS_ID = 2 WHERE PV_ID = recInfo.PV_ID;
5719
 
5720
		FETCH curInfo INTO recInfo;
5721
 
5722
	END LOOP;
5723
 
5724
	CLOSE curInfo;
5725
 
5726
 
5727
 
5728
 
5729
END INSERT_INTO_PACKAGE_BUILD_INFO;
5730
 
5731
/
4040 dpurdie 5732
--------------------------------------------------------
6999 dpurdie 5733
--  DDL for Procedure INSERT_MULTIPLE_STICKY_NOTES
4040 dpurdie 5734
--------------------------------------------------------
6999 dpurdie 5735
set define off;
4040 dpurdie 5736
 
6999 dpurdie 5737
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."INSERT_MULTIPLE_STICKY_NOTES" IS
5738
 
5739
/******************************************************************************
5740
   NAME:       INSERT_MULTIPLE_STICKY_NOTES
5741
   PURPOSE:
5742
 
5743
   REVISIONS:
5744
   Ver        Date        Author           Description
5745
   ---------  ----------  ---------------  ------------------------------------
5746
   1.0        6/12/2006          1. Created this procedure.
5747
 
5748
   NOTES:
5749
 
5750
   Automatically available Auto Replace Keywords:
5751
      Object Name:     INSERT_MULTIPLE_STICKY_NOTES
5752
      Sysdate:         6/12/2006
5753
      Date and Time:   6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PM
5754
      Username:         (set in TOAD Options, Procedure Editor)
5755
      Table Name:       (set in the "New PL/SQL Object" dialog)
5756
 
5757
******************************************************************************/
5758
 
5759
	CURSOR curInfo IS
5760
    SELECT PV_ID
5761
	FROM PACKAGE_BUILD_ENV
5762
	WHERE BE_ID IN (11, 12);
5763
    recInfo curInfo%ROWTYPE;
5764
 
5765
 
5766
BEGIN
5767
 
5768
	OPEN curInfo;
5769
    FETCH curInfo INTO recInfo;
5770
 
5771
	WHILE curInfo%FOUND
5772
	LOOP
5773
 
5774
		INSERT INTO NOTE_MANAGER ( NID, LAST_USER, LAST_DATE, DESCRIPTION )
5775
		VALUES( recInfo.PV_ID, 'awehalle', ORA_SYSDATETIME, '' );
5776
 
5777
		FETCH curInfo INTO recInfo;
5778
 
5779
	END LOOP;
5780
 
5781
	CLOSE curInfo;
5782
 
5783
 
5784
 
5785
 
5786
END INSERT_MULTIPLE_STICKY_NOTES;
5787
 
5788
/
4040 dpurdie 5789
--------------------------------------------------------
6999 dpurdie 5790
--  DDL for Procedure LEVEL_N_CONFLICTS
4040 dpurdie 5791
--------------------------------------------------------
6999 dpurdie 5792
set define off;
4040 dpurdie 5793
 
6999 dpurdie 5794
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LEVEL_N_CONFLICTS" (
5795
   nnrtag_id       IN       NUMBER,
5796
   nnsession_num   IN       NUMBER,
5797
   nnrowcnt        OUT      NUMBER,
5798
   nniteration     IN       NUMBER
5799
)
5800
IS
5801
/* ---------------------------------------------------------------------------
5802
    Version: 3.0.1
5803
   --------------------------------------------------------------------------- */
5804
   previteration   NUMBER := nniteration - 1;
5805
BEGIN
5806
  -- Map broken dependency information from a package into a consumer
5807
  -- package. ie: Ripple need-to-build info up the dependency tree.
5384 dpurdie 5808
 
6999 dpurdie 5809
   /* ---------  LEVEL 1 CONFILCTS -----------
5810
   || Following states are used:
5811
   || 0 -> NOT FOUND
5812
   || 1 -> MAJOR
5813
   || 2 -> MINOR MINOR
5814
   */
5815
   INSERT INTO temp_env_states
5816
               SELECT DISTINCT nnsession_num AS session_num, nniteration AS level_num,
5817
                      dpv.pv_id, dpv.pkg_id, dpv.v_ext,
5818
                      DECODE (tes.tes_state, 2, 2, 1) AS MESSAGE,
5819
                      'X'
5820
                 FROM TEMP_ENV_DEPS dpv,
5821
                      temp_env_states tes
5822
                WHERE dpv.SESSION_NUM = nnsession_num
5823
                  AND dpv.dpkg_id = tes.pkg_id
5824
                  AND NVL (dpv.dv_ext, '|LINK_A_NULL|') = NVL (tes.v_ext, '|LINK_A_NULL|')
5825
                  AND tes.session_num = nnsession_num
5826
                  AND tes.level_num = previteration;
4040 dpurdie 5827
 
6999 dpurdie 5828
   nnrowcnt := SQL%ROWCOUNT;
5829
END level_n_conflicts;
5830
 
5831
/
4040 dpurdie 5832
--------------------------------------------------------
6999 dpurdie 5833
--  DDL for Procedure LEVEL_ONE_CONFLICTS
4040 dpurdie 5834
--------------------------------------------------------
6999 dpurdie 5835
set define off;
4040 dpurdie 5836
 
6999 dpurdie 5837
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LEVEL_ONE_CONFLICTS" (
5838
   nnrtag_id       IN   NUMBER,
5839
   nnsession_num   IN   NUMBER
5840
)
5841
IS
5842
BEGIN
5843
  --  Prepare the TEMP_ENV_DEPS table
5844
  --  This table maps package-versions to their dependencies and is
5845
  --  used to walk up the dependency tree.
5846
  --  This table consists of PV_ID -> DPV_ID in the release in which we are interested
5847
  --  ie: Those that ARE NOT a part of:
5848
  --    Pegged Package
5849
  --    SDK imported package
5850
  --    Marked with an ignore warnings
5851
  --    Marked as an advisory ripple
5852
  --
5853
  --  This table speeds up the process by a huge (really huge) amount
5854
  --
5855
      INSERT into TEMP_ENV_DEPS
5856
      (
5857
      SELECT DISTINCT nnsession_num AS session_num,
5858
                      pv.pv_id, pv.pkg_id, pv.v_ext,
5859
                      dpv.pv_id as dpv_id, dpv.pkg_id as dpkg_id, dpv.v_ext as dv_ext
5860
 
5861
                 FROM release_content rel,
5862
                      package_dependencies dep,
5863
                      package_versions dpv,
5864
                      package_versions pv
5865
 
5866
                WHERE rel.pv_id = dep.pv_id
5867
                  AND rel.rtag_id = nnrtag_id
5868
                  AND dep.pv_id = pv.pv_id
5869
                  AND dep.dpv_id = dpv.pv_id
5870
                  --AND rel.SDKTAG_ID is null
5871
                  --AND NOT dep.pv_id IN (SELECT pegv.pv_id FROM PEGGED_VERSIONS pegv WHERE pegv.rtag_id = nnrtag_id)
5872
                  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)
5873
                  );
5874
 
5875
   /* ---------  LEVEL 1 CONFILCTS -----------
5876
   || Following states are used:
5877
   || 0 -> NOT FOUND
5878
   || 1 -> MAJOR
5879
   || 2 -> MINOR MINOR
5880
   */
5881
   INSERT INTO temp_env_states
5882
   (
5883
      SELECT nnsession_num AS session_num, 
5884
        1 AS level_num,
5885
        rd.pv_id, 
5886
        rd.pkg_id, 
5887
        rd.v_ext,
5888
        DECODE (rd.v_nmm,
5889
                    NULL, 0,
5890
                    pv2.v_nmm, DECODE (rd.v_mm,
5891
                                       pv2.v_mm, 0,
5892
                                                 2
5893
                                       ),
5894
                    1
5895
              ) AS MESSAGE,
5896
        rd.build_type
5897
from (
5898
      SELECT DISTINCT err.pv_id, errpkg.pkg_id, errpkg.v_ext,
5899
                      frc.build_type,
5900
                      frc.v_nmm,
5901
                      frc.v_mm,
5902
                      errpv.pv_id as errpv_id
5903
                 FROM (
5904
                       /* Full Release Contents used for reference*/
5905
                        SELECT rel.rtag_id, rpv.pv_id, rpv.pkg_id,
5906
                                NVL (rpv.v_ext, '|LINK_A_NULL|') AS v_ext,
5907
                                rpv.pkg_version, rpv.v_nmm, rpv.v_mm,
5908
                                (SELECT COUNT(*) FROM ADVISORY_RIPPLE avr WHERE avr.rtag_id = rel.rtag_id AND avr.pv_id = rel.pv_id ) AS IsAvr,
5909
                                rpv.build_type
5910
                          FROM release_content rel,
5911
                                package_versions rpv
5912
                          WHERE rel.pv_id = rpv.pv_id
5913
                             AND rtag_id = nnrtag_id
5914
                      ) frc,
5915
 
5916
                      (
5917
                       /* DPV_IDs not found in release. Excluding:
5918
                              Those from pegged versions
5919
                              Those from packages imported via an SDK
5920
                              */
5921
                       SELECT dep.pv_id, dep.dpv_id AS err_dpv
5922
                         FROM package_dependencies dep
5923
                        WHERE dep.pv_id IN (SELECT pv_id FROM release_content WHERE rtag_id = nnrtag_id AND release_content.SDKTAG_ID is NULL)
5924
                          AND NOT dep.pv_id IN (SELECT pegv.pv_id FROM PEGGED_VERSIONS pegv WHERE pegv.rtag_id = nnrtag_id)
5925
                          AND NOT dep.dpv_id IN (SELECT pv_id FROM release_content WHERE rtag_id = nnrtag_id)
5926
 
5927
                       /* INCLUDE Unbuildable packages to force missing */
5928
                       UNION
5929
                       SELECT bpv.pv_id, bpv.pv_id as err_dpv
5930
                        FROM package_versions bpv, release_content brc
5931
                        WHERE bpv.build_type = 'U' AND brc.rtag_id = nnrtag_id AND bpv.pv_id = brc.pv_id
5932
 
5933
                       MINUS
5934
                       /* MINUS Dependencies to be ignored */
5935
                       SELECT igw.pv_id, igw.dpv_id AS err_dpv
5936
                         FROM ignore_warnings igw
5937
                        WHERE igw.rtag_id = nnrtag_id
5938
 
5939
                      ) err,
5940
                      package_versions errpkg,
5941
                      package_versions errpv
5942
                WHERE err.err_dpv = errpv.pv_id
5943
                  AND errpv.pkg_id = frc.pkg_id(+)
5944
                  AND NVL (errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
5945
                  AND err.pv_id = errpkg.pv_id
5946
                  AND NVL(frc.IsAvr,0) = 0
5947
                  ) rd,
5948
                  package_versions pv2
5949
                  where rd.errpv_id = pv2.PV_ID
5950
                  );
5951
END level_one_conflicts;
5952
 
5953
/
4040 dpurdie 5954
--------------------------------------------------------
6999 dpurdie 5955
--  DDL for Procedure LOCK_PACKAGE
4040 dpurdie 5956
--------------------------------------------------------
6999 dpurdie 5957
set define off;
4040 dpurdie 5958
 
6999 dpurdie 5959
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
5960
											 nUserId IN NUMBER ) IS
5961
/* ---------------------------------------------------------------------------
5962
    Version: 4.0
5963
   --------------------------------------------------------------------------- */
5964
 
5965
BEGIN
5966
 
5967
    -- Lock Package
5968
    UPDATE PACKAGE_VERSIONS pv SET
5969
    	pv.DLOCKED = 'Y'
5970
    WHERE pv.PV_ID = nPvId;
5971
 
5972
    /* LOG ACTION */
5973
   	Log_Action ( nPvId, 'lock_package', nUserId );
5974
 
5975
END Lock_Package;
5976
 
5977
/
4040 dpurdie 5978
--------------------------------------------------------
6999 dpurdie 5979
--  DDL for Procedure LOG_ACTION
4040 dpurdie 5980
--------------------------------------------------------
6999 dpurdie 5981
set define off;
4040 dpurdie 5982
 
6999 dpurdie 5983
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
5984
										 enumActionTypeName IN ACTION_TYPE.NAME%TYPE,
5985
                                         nUserId IN ACTION_LOG.USER_ID%TYPE,
5986
										 sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL  ) IS
5987
/* ---------------------------------------------------------------------------
5988
    Version: 3.0
5989
   --------------------------------------------------------------------------- */
5892 dpurdie 5990
 
6999 dpurdie 5991
    ActionTypeId NUMBER;
4040 dpurdie 5992
 
6999 dpurdie 5993
BEGIN
5994
 
5995
    -- Get Action Type FK
5996
    SELECT act.ACTTYPE_ID INTO ActionTypeId
5997
      FROM ACTION_TYPE act
5998
     WHERE act.NAME = enumActionTypeName;
5999
 
6000
 
6001
    INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
6002
    VALUES ( nUserId, nPvId, sAdditionalComments, ActionTypeId );
6003
 
6004
 
6005
END Log_Action;
6006
 
6007
/
4040 dpurdie 6008
--------------------------------------------------------
6999 dpurdie 6009
--  DDL for Procedure LOG_ACTION_BULK
4040 dpurdie 6010
--------------------------------------------------------
6999 dpurdie 6011
set define off;
4040 dpurdie 6012
 
6999 dpurdie 6013
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION_BULK" ( nPvIdList IN VARCHAR2,
6014
										 	  enumActionTypeName IN ACTION_TYPE.NAME%TYPE,
6015
                                         	  nUserId IN ACTION_LOG.USER_ID%TYPE,
6016
										 	  sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL  ) IS
6017
/* ---------------------------------------------------------------------------
6018
    Version: 3.0
6019
   --------------------------------------------------------------------------- */
6020
 
6021
    ActionTypeId NUMBER;
6022
    oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
6023
 
6024
BEGIN
6025
 
6026
    oPvIdCollector := IN_LIST_NUMBER ( nPvIdList );
6027
 
6028
    -- Get Action Type FK
6029
    SELECT act.ACTTYPE_ID INTO ActionTypeId
6030
      FROM ACTION_TYPE act
6031
     WHERE act.NAME = enumActionTypeName;
6032
 
6033
    -- Log Action
6034
    INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
6035
    SELECT nUserId,
6036
    	     pv.PV_ID,
6037
           sAdditionalComments,
6038
           ActionTypeId
6039
      FROM PACKAGE_VERSIONS pv
6040
     WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
6041
 
6042
 
6043
END Log_Action_Bulk;
6044
 
6045
/
4040 dpurdie 6046
--------------------------------------------------------
6999 dpurdie 6047
--  DDL for Procedure LOG_DAEMON_ACTION
4040 dpurdie 6048
--------------------------------------------------------
6999 dpurdie 6049
set define off;
4040 dpurdie 6050
 
6999 dpurdie 6051
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_DAEMON_ACTION" ( nRconId IN NUMBER,
6052
												 enumActionTypeName IN VARCHAR2,
6053
		                                         nUserId IN NUMBER,
6054
												 sAdditionalComments IN VARCHAR2 DEFAULT NULL  ) IS
6055
/* ---------------------------------------------------------------------------
6056
    Version: 3.0
6057
   --------------------------------------------------------------------------- */
6058
 
6059
    ActionTypeId NUMBER;
6060
 
6061
BEGIN
6062
 
6063
    -- Get Action Type FK
6064
    SELECT act.ACTTYPE_ID INTO ActionTypeId
6065
      FROM ACTION_TYPE act
6066
     WHERE act.NAME = enumActionTypeName;
6067
 
6068
 
6069
    INSERT INTO DAEMON_ACTION_LOG
6070
    VALUES ( nUserId, ORA_SYSDATETIME, nRconId, sAdditionalComments, ActionTypeId );
6071
 
6072
 
6073
END Log_Daemon_Action;
6074
 
6075
/
4040 dpurdie 6076
--------------------------------------------------------
6999 dpurdie 6077
--  DDL for Procedure LOG_PROJECT_ACTION
4040 dpurdie 6078
--------------------------------------------------------
6999 dpurdie 6079
set define off;
4040 dpurdie 6080
 
6999 dpurdie 6081
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_PROJECT_ACTION" ( nProjId IN NUMBER,
6082
												 enumActionTypeName IN VARCHAR2,
6083
		                                         nUserId IN NUMBER,
6084
												 sAdditionalComments IN VARCHAR2 DEFAULT NULL,
6085
												 nRtagId IN NUMBER  ) IS
6086
/* ---------------------------------------------------------------------------
6087
    Version: 3.0
6088
   --------------------------------------------------------------------------- */
6089
 
6090
    ActionTypeId NUMBER;
6091
 
6092
BEGIN
6093
 
6094
    -- Get Action Type FK
6095
    SELECT act.ACTTYPE_ID INTO ActionTypeId
6096
      FROM ACTION_TYPE act
6097
     WHERE act.NAME = enumActionTypeName;
6098
 
6099
 
6100
    INSERT INTO PROJECT_ACTION_LOG ( USER_ID, ACTION_DATETIME, PROJ_ID, DESCRIPTION, ACTTYPE_ID, RTAG_ID)
6101
    VALUES ( nUserId, ORA_SYSDATETIME, nProjId, sAdditionalComments, ActionTypeId, nRtagId);
6102
 
6103
 
6104
END Log_Project_Action;
6105
 
6106
/
4040 dpurdie 6107
--------------------------------------------------------
6999 dpurdie 6108
--  DDL for Procedure NEW_ADDITIONAL_NOTE
4040 dpurdie 6109
--------------------------------------------------------
6999 dpurdie 6110
set define off;
4040 dpurdie 6111
 
6999 dpurdie 6112
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_ADDITIONAL_NOTE" ( pnPv_id IN NUMBER,
6113
                                                  psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,
6114
                                                  psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,
6115
                                                  pnUser_id IN NUMBER,
6116
                                                  outErrCode OUT NUMBER
6117
                                                 ) IS
6118
/* ---------------------------------------------------------------------------
6119
    Version: 3.0.0
6120
   --------------------------------------------------------------------------- */
6121
 
6122
    newID NUMBER;
6123
 
6124
	CURSOR an_duplicate_cur IS
6125
        SELECT note_id
6126
          FROM ADDITIONAL_NOTES
6127
         WHERE pv_id = pnPv_id
6128
           AND note_title = psNote_title;
6129
    an_duplicate_rec an_duplicate_cur%ROWTYPE;
6130
 
6131
BEGIN
6132
	outErrCode := -1;		-- Set default return error code to ERROR state
6133
 
6134
	OPEN an_duplicate_cur;
6135
    FETCH an_duplicate_cur INTO an_duplicate_rec;
6136
 
6137
    IF an_duplicate_cur%NOTFOUND
6138
    THEN
6139
		/* No duplicate titles */
6140
		-- Get new ID --
6141
    	SELECT SEQ_ADDITIONAL_NOTES.NEXTVAL INTO newID FROM DUAL;
6142
 
6143
		--- Add Additional Note ---
6144
	    INSERT INTO ADDITIONAL_NOTES ( note_id, pv_id, note_title, note_body, mod_date, mod_user  )
7000 dpurdie 6145
	    VALUES (  newID, pnPv_id, psNote_title, psNote_body, ora_sysdatetime, pnUser_id );
6999 dpurdie 6146
		outErrCode := 0;		-- Set return to SUCCESS
6147
	END IF;
6148
 
6149
	CLOSE an_duplicate_cur;
6150
END New_Additional_Note;
6151
 
6152
/
4040 dpurdie 6153
--------------------------------------------------------
6999 dpurdie 6154
--  DDL for Procedure NEW_PACKAGE_NAME
4040 dpurdie 6155
--------------------------------------------------------
6999 dpurdie 6156
set define off;
4040 dpurdie 6157
 
6999 dpurdie 6158
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_PACKAGE_NAME" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
6159
                                               retPKG_ID OUT NUMBER ) IS
6160
/* ---------------------------------------------------------------------------
6161
    Version: 3.0.0
6162
   --------------------------------------------------------------------------- */
6163
 
6164
    CURSOR packages_cur IS
6165
        SELECT pkg.pkg_id
6166
          FROM packages pkg
6167
         WHERE pkg.pkg_name = SSpkg_name;
6168
    packages_rec packages_cur%ROWTYPE;
6169
 
6170
 
6171
BEGIN
6172
 
6173
    /* ---------------------------------------------------- */
6174
    /* Find if package name exists                          */
6175
    /* ---------------------------------------------------- */
6176
 
6177
    OPEN packages_cur;
6178
    FETCH packages_cur INTO packages_rec;
6179
 
6180
    IF packages_cur%NOTFOUND
6181
    THEN
6182
        -- Create new pkg_name --
6183
        SELECT SEQ_PKG_ID.nextval INTO retPKG_ID FROM DUAL;
6184
 
6185
        INSERT INTO packages ( pkg_id, pkg_name )
6186
        VALUES ( retPKG_ID, SSpkg_name );
6187
 
6188
    ELSE
6189
        retPKG_ID := packages_rec.pkg_id;
6190
 
6191
    END IF;
6192
 
6193
 
6194
    CLOSE packages_cur;
6195
 
6196
END New_Package_Name;
6197
 
6198
/
4040 dpurdie 6199
--------------------------------------------------------
6999 dpurdie 6200
--  DDL for Procedure NEW_PATCH
4040 dpurdie 6201
--------------------------------------------------------
6999 dpurdie 6202
set define off;
4040 dpurdie 6203
 
6999 dpurdie 6204
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_PATCH" ( SSpatch_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
6205
 	   	  		  					  	NNparent_id IN NUMBER,
6206
                                        sPatchIdList IN VARCHAR2,
6207
										NNuser_id IN NUMBER ) IS
6208
/* ---------------------------------------------------------------------------
6209
    Version: 3.5
6210
   --------------------------------------------------------------------------- */
6211
 
6212
    patchPv_id    NUMBER;
6213
	parPkg_id	  NUMBER;
6214
    LastInstallOrder NUMBER;
6215
    isPatchDlocked PACKAGE_VERSIONS.DLOCKED%TYPE;
6216
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
6217
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
6218
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
6219
	oPatchDepCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
6220
 
6221
	CURSOR parent_cur IS
6222
        SELECT pv.*, pkg.pkg_name
6223
          FROM package_versions pv,
6224
		       packages pkg
6225
         WHERE pv.pv_id = NNparent_id
6226
		   AND pv.pkg_id = pkg.pkg_id;
6227
    parent_rec parent_cur%ROWTYPE;
6228
 
6229
    CURSOR patch_cur IS
6230
        SELECT pv.*, pg.pkg_name
6231
          FROM package_versions pv,
6232
		       packages pg
6233
         WHERE pv.pkg_id = parPkg_id
6234
		   AND pv.pkg_version = SSpatch_version
6235
		   AND pv.pkg_id = pg.pkg_id;
6236
    patch_rec patch_cur%ROWTYPE;
6237
 
6238
	CURSOR releases_cur IS
6239
        SELECT rc.pv_id
6240
		  FROM release_content rc
6241
		 WHERE rc.pv_id = patch_rec.pv_id;
6242
    releases_rec releases_cur%ROWTYPE;
6243
 
6244
 
6245
BEGIN
6246
 
6247
	-- Get Last Install Order
6248
    SELECT Count(*) INTO LastInstallOrder
6249
	  FROM PACKAGE_PATCHES pp
6250
	 WHERE pp.PV_ID = NNparent_id;
6251
 
6252
 
6253
    -- Get parent details
6254
	OPEN parent_cur;
6255
    FETCH parent_cur INTO parent_rec;
6256
	parPkg_id := parent_rec.pkg_id;
6257
 
6258
 
6259
	-- Find if patch exists in database
6260
    OPEN patch_cur;
6261
    FETCH patch_cur INTO patch_rec;
6262
 
6263
 
6264
    -- Parent must be official
6265
    IF parent_rec.dlocked = 'Y' THEN
6266
 
6267
	    IF patch_cur%NOTFOUND
6268
	    THEN
6269
        	isPatchDlocked := 'N';
6270
 
6271
	        -- Create new patch version --
6272
	        SELECT SEQ_PV_ID.nextval INTO patchPv_id FROM DUAL;
6273
 
6274
 
6275
	        Split_version ( SSpatch_version, SSV_MM, SSV_NMM, SSV_EXT );
6276
 
6277
	        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 )
6278
				   VALUES (
6279
						   patchPv_id,
6280
	                       parPkg_id,
6281
	                       SSpatch_version,
6282
	                       isPatchDlocked,
7000 dpurdie 6283
	                       ora_sysdatetime,
6999 dpurdie 6284
	                       NNuser_id,
6285
	                       ORA_SYSDATETIME,
6286
	                       NNuser_id,
6287
	                       SSV_MM,
6288
	                       SSV_NMM,
6289
	                       SSV_EXT,
6290
	                       parent_rec.src_path,
6291
	                       'This is a patch to ' || parent_rec.pkg_name || ' ' || parent_rec.pkg_version,
6292
	                       NNuser_id,
6293
						   'Y',
6294
                           patchPv_id,
6295
						   parent_rec.bs_id,
6296
						   parent_rec.is_autobuildable,
6297
						   parent_rec.ripple_field
6298
 
6299
						   );
6300
 
6301
			INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )
6302
		    	   ( SELECT NNparent_id AS pv_id,
6303
				            pv.pv_id AS patch_id,
6304
	                        LastInstallOrder + 1 AS INSTALL_ORDER
6305
				       FROM package_versions pv
6306
					  WHERE pv.pv_id = patchPv_id
6307
					    AND pv.is_patch = 'Y' );
6308
 
6309
	        /* LOG ACTION */
6310
            Log_Action ( patchPv_id, 'new_version', NNuser_id,
6311
        			     'Patch version created: '|| SSpatch_version );
6312
 
6313
        	Log_Action ( NNparent_id, 'patch_add', NNuser_id,
6314
        			     'New patch created and attached: '|| SSpatch_version );
6315
 
6316
 
6317
	    ELSE
6318
 
6319
		    patchPv_id := patch_rec.pv_id;
6320
	    	isPatchDlocked := patch_rec.dlocked;
6321
 
6322
			-- Find if pv_id exists in release content (i.e. it cannot be a patch)
6323
		    OPEN releases_cur;
6324
		    FETCH releases_cur INTO releases_rec;
6325
 
6326
			IF releases_cur%NOTFOUND
6327
	   		THEN
6328
				-- This pv_id is trully a patch, hence add Y to column IS_PATCH
6329
				UPDATE package_versions SET
6330
					   is_patch = 'Y'
6331
					   WHERE pv_id = patchPv_id;
6332
 
6333
				INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )
6334
			    	   ( SELECT NNparent_id AS pv_id,
6335
					            pv.pv_id AS patch_id,
6336
	                            LastInstallOrder + 1 AS INSTALL_ORDER
6337
					       FROM package_versions pv
6338
						  WHERE pv.pv_id = patchPv_id
6339
						    AND pv.is_patch = 'Y' );
6340
 
6341
			END IF;
6342
 
6343
			CLOSE releases_cur;
6344
 
6345
            /* LOG ACTION */
6346
        	Log_Action ( NNparent_id, 'patch_add', NNuser_id,
6347
        			     'Patch version was found and attached: '|| SSpatch_version );
6348
 
6349
	    END IF;
6350
 
6351
 
6352
 
6353
 
6354
    END IF;
6355
 
6356
 
6357
 
6358
    /* Create Patch Dependencies */
6359
    oPatchDepCollector := IN_LIST_NUMBER ( sPatchIdList );
6360
 
6361
 
6362
    -- Make sure patch is unofficial before altering its dependencies
6363
    IF (oPatchDepCollector.COUNT > 0) AND (isPatchDlocked = 'N') THEN
6364
    	-- Delete Existing Dependencies
6365
        DELETE
6366
          FROM PACKAGE_DEPENDENCIES dep
6367
         WHERE dep.PV_ID = patchPv_id;
6368
 
6369
 
6370
        -- Insert new dependencies
6371
        INSERT INTO PACKAGE_DEPENDENCIES ( PV_ID, DPV_ID, PKG_ID, DPKG_ID, BUILD_TYPE )
6372
        SELECT patchPv_id AS PV_ID,
6373
        	   pv.PV_ID AS DPV_ID,
6374
               parPkg_id AS PKG_ID,
6375
               pv.PKG_ID AS DPKG_ID,
6376
               'L' AS BUILD_TYPE
6377
          FROM PACKAGE_VERSIONS pv
6378
         WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPatchDepCollector AS RELMGR_NUMBER_TAB_t ) ) );
6379
 
6380
 
6381
    END IF;
6382
 
6383
 
6384
    CLOSE parent_cur;
6385
    CLOSE patch_cur;
6386
END New_Patch;
6387
 
6388
/
4040 dpurdie 6389
--------------------------------------------------------
6999 dpurdie 6390
--  DDL for Procedure NEW_UNIT_TEST
4040 dpurdie 6391
--------------------------------------------------------
6999 dpurdie 6392
set define off;
4040 dpurdie 6393
 
6999 dpurdie 6394
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_UNIT_TEST" ( nPv_id IN NUMBER,
6395
                                            nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,
6396
                                            sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
6397
                                            sNumOfTest IN UNIT_TESTS.NUMOF_TEST%TYPE,
6398
                                            sDpkg_path IN VARCHAR2,
6399
                                            sResults IN VARCHAR2,
6400
                                            sCompletion_date IN VARCHAR2,
6401
                                            nCompleted_by IN NUMBER,
6402
											enumTEST_TYPE_AUTOMATIC IN NUMBER,
6403
											enumTEST_TYPE_NOT_DONE IN NUMBER,
6404
											outFileName OUT VARCHAR2
6405
                                           ) IS
6406
/* ---------------------------------------------------------------------------
6407
    Version: 3.2.0
6408
   --------------------------------------------------------------------------- */
6409
 
6410
   	FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
6411
 
6412
    newID NUMBER;
6413
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
6414
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
6415
 
6416
BEGIN
6417
 
6418
	-- Get new ID --
6419
   	SELECT SEQ_UNIT_TESTS.NEXTVAL INTO newID FROM DUAL;
6420
 
6421
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
6422
       	ResultsURL := sResults;
6423
       ELSE
6424
       	IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
6425
        	outFileName := FILENAME_PREFIX || newID ||'_'|| sResults;
6426
    		ResultsAttachment := sDpkg_path || '/' || outFileName;
6427
           END IF;
6428
       END IF;
6429
 
6430
	-- Remove NOT_DONE entry if exists
6431
	DELETE FROM UNIT_TESTS
6432
	 WHERE pv_id = nPv_id
6433
	   AND test_types_fk = enumTEST_TYPE_NOT_DONE;
6434
 
6435
	--- Add Additional Note ---
6436
    INSERT INTO UNIT_TESTS ( TEST_ID,
6437
								PV_ID,
6438
								TEST_TYPES_FK,
6439
								TEST_SUMMARY,
6440
								COMPLETION_DATE,
6441
								COMPLETED_BY,
6442
								RESULTS_URL,
6443
								RESULTS_ATTACHMENT_NAME,
6444
								NUMOF_TEST )
6445
    VALUES (
6446
       	newID,
6447
           nPv_id,
6448
           nTestTypeId,
6449
           sTest_summary,
6450
           TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
6451
           nCompleted_by,
6452
           ResultsURL,
6453
           ResultsAttachment,
6454
		   sNumOfTest );
6455
 
6456
END New_Unit_Test;
6457
 
6458
/
4040 dpurdie 6459
--------------------------------------------------------
6999 dpurdie 6460
--  DDL for Procedure PAOLO_BUILD_TREE
4040 dpurdie 6461
--------------------------------------------------------
6999 dpurdie 6462
set define off;
4040 dpurdie 6463
 
6999 dpurdie 6464
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."PAOLO_BUILD_TREE" ( nRtag_id IN NUMBER ) IS
6465
 
6466
    sessionNumber NUMBER := 0;
6467
    iteration NUMBER := 1;
6468
    rowCnt NUMBER := 0;
6469
    maxIterations 	NUMBER := 50;
6470
 
6471
BEGIN
6472
 
6473
 
6474
    INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
6475
    SELECT sessionNumber, iteration, rc.PV_ID
6476
      FROM RELEASE_CONTENT rc
6477
     WHERE rc.RTAG_ID = nRtag_id;
6478
 
6479
    iteration := iteration + 1;
6480
    LOOP
6481
 
6482
        INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
6483
		SELECT sessionNumber,
6484
               iteration,
6485
               dep.DPV_ID
6486
          FROM TEMP_TREE_BROWSE ttb,
6487
               PACKAGE_DEPENDENCIES dep
6488
         WHERE dep.PV_ID = ttb.PV_ID
6489
           AND ttb.LEVEL_NUM = iteration - 1
6490
 
6491
         MINUS
6492
 
6493
        SELECT sessionNumber, iteration, ttb.PV_ID
6494
          FROM TEMP_TREE_BROWSE ttb;
6495
 
6496
 
6497
 
6498
 
6499
		rowCnt := SQL%ROWCOUNT;
6500
		IF rowCnt > 0 THEN
6501
           iteration := iteration + 1;
6502
		END IF;
6503
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
6504
    END LOOP;
6505
 
6506
END PAOLO_Build_Tree;
6507
 
6508
/
4040 dpurdie 6509
--------------------------------------------------------
6999 dpurdie 6510
--  DDL for Procedure REBUILD_DEPRECATE_STATE
4040 dpurdie 6511
--------------------------------------------------------
6999 dpurdie 6512
set define off;
4040 dpurdie 6513
 
6999 dpurdie 6514
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REBUILD_DEPRECATE_STATE" ( nRtagId IN INT ) AS
6515
BEGIN
6516
 
6517
  --  Clear the 'calculated' values from the Release Conetnts
6518
  --
6519
  UPDATE RELEASE_CONTENT
6520
      SET DEPRECATED_STATE = NULL
6521
  WHERE RTAG_ID =  nRtagId
6522
  AND DEPRECATED_STATE != 6
6523
  AND DEPRECATED_STATE is NOT NULL;
6524
 
6525
  --
6526
  --  Insert new calculated values into the table
6527
  --  Use of 'AAA' speeds up the CONNECT BY PRIOR query (lots)
6528
  UPDATE RELEASE_CONTENT
6529
      SET DEPRECATED_STATE = 7
6530
  WHERE RTAG_ID =  nRtagId
6531
  AND DEPRECATED_STATE is null
6532
  AND PV_ID in (
6533
        WITH AAA AS
6534
          (SELECT pd.*
6535
          FROM PACKAGE_DEPENDENCIES pd,
6536
            RELEASE_CONTENT RC1
6537
          WHERE rc1.rtag_id = nRtagId
6538
          AND RC1.PV_ID     = pd.PV_ID
6539
          )
6540
      SELECT DISTINCT qry.PV_ID
6541
      FROM
6542
        (SELECT dep.*,
6543
          LEVEL AS LEVEL_NUM
6544
        FROM AAA dep
6545
          START WITH dep.DPV_ID IN (
6546
                SELECT rc.pv_id as pv_id
6547
                FROM RELEASE_CONTENT rc
6548
                WHERE rc.rtag_id  = nRtagId
6549
                AND rc.DEPRECATED_STATE = 6 )
6550
          CONNECT BY PRIOR dep.PV_ID = dep.DPV_ID
6551
        ) qry,
6552
        PACKAGES pkg,
6553
        PACKAGE_VERSIONS pv,
6554
        RELEASE_CONTENT rc
6555
      WHERE qry.PV_ID          = pv.PV_ID
6556
      AND pv.PKG_ID            = pkg.PKG_ID
6557
      AND rc.RTAG_ID           = nRtagId
6558
      AND rc.PV_ID             = qry.PV_ID
6559
      );
6560
END REBUILD_DEPRECATE_STATE;
6561
 
6562
/
4040 dpurdie 6563
--------------------------------------------------------
6999 dpurdie 6564
--  DDL for Procedure REBUILD_ENVIRONMENT
4040 dpurdie 6565
--------------------------------------------------------
6999 dpurdie 6566
set define off;
4040 dpurdie 6567
 
6999 dpurdie 6568
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REBUILD_ENVIRONMENT" ( NNrtag_id IN NUMBER ) IS
6569
  --
6570
  --  Recalculate the package_state
6571
  --  Triggered by the Web Interface
6572
  --
6573
    rowCnt NUMBER := 0;
6574
    iteration NUMBER := 2;          -- Iterations counter
6575
    maxIterations NUMBER := 30;     -- Maximum number of iterations allowed.
6576
                                    -- This will prevent infinite loops if cyrcular dependencies are found
6577
    sessionNum NUMBER;
6578
BEGIN
6579
    SELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;
6580
 
6581
 
6582
    -- Redo Patch Ignore warnings
6583
    Ignore_Dependency_Warnings ( NNrtag_id, NULL, NULL, TRUE );
6584
 
6585
    Level_One_Conflicts ( NNrtag_id, sessionNum );
6586
    --commit;
6587
 
6588
    LOOP
6589
        Level_N_Conflicts ( NNrtag_id, sessionNum, rowCnt, iteration );
6590
        --commit;
6591
        iteration := iteration + 1;
6592
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
6593
    END LOOP;
6594
 
6595
    Update_Package_States ( NNrtag_id, sessionNum );
6596
 
6597
    DELETE FROM temp_env_states WHERE session_num = sessionNum;
6598
    DELETE FROM TEMP_ENV_DEPS WHERE session_num = sessionNum;
6599
 
6600
    -- Flag Packages with New Patches Available
6601
    -- Temp deleted 28-Mar-2017 (25-Jul-2018)
6602
    -- Reason: It takes a very long time and we dont use patches any more
6603
    -- Check_New_Patches ( NNrtag_id );
6604
 
6605
	Clean_Do_Not_Ripple( NNrtag_id );
6606
 
6607
 
6608
	/* Circular Dependency Flag */
6609
    /*
6610
	IF iteration > maxIterations
6611
	THEN
6612
		UPDATE release_tags SET
6613
		   	   circular_dependency = 'Y'
6614
		 WHERE rtag_id = NNrtag_id;
6615
	ELSE
6616
		UPDATE release_tags SET
6617
		   	   circular_dependency = NULL
6618
		 WHERE rtag_id = NNrtag_id;
6619
	END IF;
6620
    */
6621
END Rebuild_Environment;
6622
 
6623
/
4040 dpurdie 6624
--------------------------------------------------------
6999 dpurdie 6625
--  DDL for Procedure REMOVE_COMPONENTS
4040 dpurdie 6626
--------------------------------------------------------
6999 dpurdie 6627
set define off;
4040 dpurdie 6628
 
6999 dpurdie 6629
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_COMPONENTS" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE ) IS
6630
/* ---------------------------------------------------------------------------
6631
    Version: 3.0.0
6632
   --------------------------------------------------------------------------- */
6633
 
6634
 
6635
BEGIN
6636
 
6637
	 --- Delete From RELEASE_COMPONENTS
6638
	 DELETE FROM RELEASE_COMPONENTS
6639
	 WHERE PV_ID = nPvId;
6640
 
6641
END Remove_Components;
6642
 
6643
/
4040 dpurdie 6644
--------------------------------------------------------
6999 dpurdie 6645
--  DDL for Procedure REMOVE_DOCUMENT
4040 dpurdie 6646
--------------------------------------------------------
6999 dpurdie 6647
set define off;
4040 dpurdie 6648
 
6999 dpurdie 6649
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_DOCUMENT" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
6650
											  nDocId IN PACKAGE_DOCUMENTS.DOC_ID%TYPE,
6651
                                              nUserId IN NUMBER ) IS
6652
/* ---------------------------------------------------------------------------
6653
    Version: 3.0
6654
   --------------------------------------------------------------------------- */
6655
 
6656
   DocNumber PACKAGE_DOCUMENTS.DOC_NUM%TYPE;
6657
 
6658
BEGIN
6659
 
6660
	-- Get Doc Num
6661
    SELECT pd.DOC_NUM INTO DocNumber
6662
      FROM PACKAGE_DOCUMENTS pd
6663
     WHERE pd.PV_ID = nPvId
6664
       AND pd.DOC_ID = nDocId;
6665
 
6666
 
6667
	-- Delete Document
6668
    DELETE
6669
      FROM PACKAGE_DOCUMENTS pd
6670
     WHERE pd.PV_ID = nPvId
6671
       AND pd.DOC_ID = nDocId;
6672
 
6673
 
6674
    /* LOG ACTION */
6675
   	Log_Action ( nPvId, 'document_remove', nUserId,
6676
   			     'Document number: '|| DocNumber );
6677
 
6678
 
6679
END Remove_Document;
6680
 
6681
/
4040 dpurdie 6682
--------------------------------------------------------
6999 dpurdie 6683
--  DDL for Procedure REMOVE_PACKAGE_INTEREST
4040 dpurdie 6684
--------------------------------------------------------
6999 dpurdie 6685
set define off;
4040 dpurdie 6686
 
6999 dpurdie 6687
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PACKAGE_INTEREST" (nProjId IN PROJECTS.PROJ_ID%TYPE,
6688
	   	  		  								  	nPkgId IN PACKAGES.PKG_ID%TYPE,
6689
												  	nUserId IN NUMBER
6690
	   	  		  									) IS
6691
 
6692
/******************************************************************************
6693
   NAME:       REMOVE_PACKAGE_INTEREST
6694
   PURPOSE:    To remove interest in a given package per project
6695
 
6696
   REVISIONS:
6697
   Ver        Date        Author           Description
6698
   ---------  ----------  ---------------  ------------------------------------
6699
   1.0        12/05/2006  Rupesh Solanki      1. Created this procedure.
6700
 
6701
   NOTES:
6702
 
6703
   Automatically available Auto Replace Keywords:
6704
      Object Name:     REMOVE_PACKAGE_INTEREST
6705
      Sysdate:         12/05/2006
6706
      Date and Time:   12/05/2006, 11:28:50 AM, and 12/05/2006 11:28:50 AM
6707
      Username:         (set in TOAD Options, Procedure Editor)
6708
      Table Name:       (set in the "New PL/SQL Object" dialog)
6709
 
6710
******************************************************************************/
6711
BEGIN
6712
 
6713
	 --Delete from PACKAGE_INTEREST
6714
	 DELETE FROM PACKAGE_INTEREST
6715
	 WHERE PROJ_ID = nProjId
6716
	 AND PKG_ID = nPkgId
6717
	 AND USER_ID = nUserId;
6718
 
6719
END REMOVE_PACKAGE_INTEREST;
6720
 
6721
/
4040 dpurdie 6722
--------------------------------------------------------
6999 dpurdie 6723
--  DDL for Procedure REMOVE_PATCH
4040 dpurdie 6724
--------------------------------------------------------
6999 dpurdie 6725
set define off;
4040 dpurdie 6726
 
6999 dpurdie 6727
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PATCH" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
6728
										   nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
6729
                                           nUserId IN NUMBER ) IS
6730
/* ---------------------------------------------------------------------------
6731
    Version: 4.0
6732
   --------------------------------------------------------------------------- */
6733
 
6734
PatchVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
6735
 
6736
CURSOR curPatch IS
6737
	SELECT pp.PV_ID,
6738
		   pp.PATCH_ID,
6739
	       ROWNUM AS NEW_INSTALL_ORDER
6740
	  FROM PACKAGE_PATCHES pp
6741
	 WHERE pp.PV_ID = nPvId
6742
	ORDER BY pp.INSTALL_ORDER;
6743
recPatch curPatch%ROWTYPE;
6744
 
6745
BEGIN
6746
 
6747
	 -- Delete Patch
6748
     DELETE
6749
       FROM PACKAGE_PATCHES pp
6750
      WHERE pp.PV_ID = nPvId
6751
        AND pp.PATCH_ID = nPatchId;
6752
 
6753
 
6754
	-- Redo Install Order
6755
    OPEN curPatch;
6756
	FETCH curPatch INTO recPatch;
6757
 
6758
	WHILE curPatch%FOUND
6759
	LOOP
6760
 
6761
		UPDATE PACKAGE_PATCHES pp SET
6762
			pp.INSTALL_ORDER = recPatch.NEW_INSTALL_ORDER
6763
		WHERE pp.PV_ID = nPvId
6764
		  AND pp.PATCH_ID = recPatch.PATCH_ID;
6765
 
6766
		FETCH curPatch INTO recPatch;
6767
	END LOOP;
6768
 
6769
	CLOSE curPatch;
6770
 
6771
 
6772
 
6773
 
6774
    /* LOG ACTION */
6775
    SELECT pv.PKG_VERSION INTO PatchVersion
6776
      FROM PACKAGE_VERSIONS pv
6777
     WHERE pv.PV_ID = nPatchId;
6778
 
6779
   	Log_Action ( nPvId, 'patch_remove', nUserId,
6780
   			     'Version: '|| PatchVersion );
6781
 
6782
END Remove_Patch;
6783
 
6784
/
4040 dpurdie 6785
--------------------------------------------------------
6999 dpurdie 6786
--  DDL for Procedure REMOVE_PROJECT_VIEW_OWNER
4040 dpurdie 6787
--------------------------------------------------------
6999 dpurdie 6788
set define off;
4040 dpurdie 6789
 
6999 dpurdie 6790
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PROJECT_VIEW_OWNER" (nProjId IN NUMBER,
6791
	   	  		  						 			  nViewId IN NUMBER,
6792
										 			  sUserIdList IN VARCHAR2,
6793
										 			  nUserId IN NUMBER ) IS
5172 dpurdie 6794
 
6999 dpurdie 6795
GroupId NUMBER;
6796
 
6797
 
6798
 
6799
/******************************************************************************
6800
   NAME:       UPDATE_VIEW
6801
   PURPOSE:
6802
 
6803
   REVISIONS:
6804
   Ver        Date        Author           		Description
6805
   ---------  ----------  ---------------  ------------------------------------
6806
   1.0        10/04/2006     Rupesh Solanki     1. Created this procedure.
6807
 
6808
   NOTES:
6809
 
6810
   Automatically available Auto Replace Keywords:
6811
      Object Name:     UPDATE_VIEW
6812
      Sysdate:         10/04/2006
6813
      Date and Time:   10/04/2006, 1:55:19 PM, and 10/04/2006 1:55:19 PM
6814
      Username:         (set in TOAD Options, Procedure Editor)
6815
      Table Name:       (set in the "New PL/SQL Object" dialog)
6816
 
6817
******************************************************************************/
6818
 
6819
BEGIN
6820
	 SELECT GROUP_EMAIL_ID into GroupId
6821
	 FROM AUTOBUILD_FAILURE
6822
	 WHERE PROJ_ID = nProjId
6823
	 AND VIEW_ID = nViewId;
6824
 
6825
	 DELETE FROM MEMBERS_GROUP
6826
	 WHERE GROUP_EMAIL_ID = GroupId
6827
	 AND USER_ID IN (
6828
	 SELECT * FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
6829
	 );
6830
 
6831
 
6832
 
6833
END REMOVE_PROJECT_VIEW_OWNER;
6834
 
6835
/
4040 dpurdie 6836
--------------------------------------------------------
6999 dpurdie 6837
--  DDL for Procedure REMOVE_RELEASE_CONTENT
4040 dpurdie 6838
--------------------------------------------------------
6999 dpurdie 6839
set define off;
4040 dpurdie 6840
 
6999 dpurdie 6841
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_RELEASE_CONTENT" ( sPvIdList IN VARCHAR2,
6842
													 sNotPvIdList IN VARCHAR2,
6843
                                                     nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS
6844
/* ---------------------------------------------------------------------------
6845
    Version: 3.0
6846
   --------------------------------------------------------------------------- */
6847
 
6848
oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
6849
oNotPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
6850
 
6851
BEGIN
6852
	oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
6853
    oNotPvIdCollector := IN_LIST_NUMBER ( sNotPvIdList );
6854
 
6855
    -- Delete From Release Content
6856
    DELETE
6857
      FROM RELEASE_CONTENT
6858
	 WHERE rtag_id = nRTagId
6859
	   AND pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
6860
	   AND NOT pv_id IN ( SELECT * FROM TABLE ( CAST ( oNotPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
6861
 
6862
 
6863
 
6864
END Remove_Release_Content;
6865
 
6866
/
4040 dpurdie 6867
--------------------------------------------------------
6999 dpurdie 6868
--  DDL for Procedure REMOVE_RUNTIME
4040 dpurdie 6869
--------------------------------------------------------
6999 dpurdie 6870
set define off;
4040 dpurdie 6871
 
6999 dpurdie 6872
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_RUNTIME" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
6873
											 nRuntimeId IN RUNTIME_DEPENDENCIES.RTD_ID%TYPE,
6874
                                             nUserId IN NUMBER ) IS
6875
/* ---------------------------------------------------------------------------
6876
    Version: 3.0
6877
   --------------------------------------------------------------------------- */
5172 dpurdie 6878
 
6999 dpurdie 6879
   RuntimeDependency VARCHAR2(4000);
5172 dpurdie 6880
 
6999 dpurdie 6881
BEGIN
5172 dpurdie 6882
 
6999 dpurdie 6883
	-- Get Runtime dependency
6884
    SELECT pkg.PKG_NAME ||' '|| pv.PKG_VERSION  INTO RuntimeDependency
6885
	  FROM RUNTIME_DEPENDENCIES rtd,
6886
	  	   PACKAGES pkg,
6887
	       PACKAGE_VERSIONS pv
6888
	 WHERE rtd.PV_ID = nPvId
6889
	   AND pv.PKG_ID = pkg.PKG_ID
6890
	   AND rtd.RTD_ID = pv.PV_ID
6891
	   AND rtd.RTD_ID = nRuntimeId;
5172 dpurdie 6892
 
6999 dpurdie 6893
 
6894
	-- Delete Document
6895
    DELETE
6896
      FROM RUNTIME_DEPENDENCIES rtd
6897
     WHERE rtd.PV_ID = nPvId
6898
       AND rtd.RTD_ID = nRuntimeId;
6899
 
6900
 
6901
    /* LOG ACTION */
6902
   	Log_Action ( nPvId, 'runtime_remove', nUserId,
6903
   			     'Runtime package: '|| RuntimeDependency );
6904
 
6905
 
6906
END Remove_Runtime;
6907
 
6908
/
4040 dpurdie 6909
--------------------------------------------------------
6999 dpurdie 6910
--  DDL for Procedure RENAME_PACKAGE_VERSION
4040 dpurdie 6911
--------------------------------------------------------
6999 dpurdie 6912
set define off;
4040 dpurdie 6913
 
6999 dpurdie 6914
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RENAME_PACKAGE_VERSION" ( NNpv_id IN NUMBER,
6915
                                  SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
6916
                                  cBuildType IN CHAR,
6917
                                  cChangeType IN CHAR,
6918
                                  NNuser_id IN NUMBER,
6919
                                  errMessage OUT VARCHAR2 ) IS
6920
/* ---------------------------------------------------------------------------
6921
    Version: 3.2
6922
   --------------------------------------------------------------------------- */
6923
 
6924
    sPackageVersion VARCHAR2(4000);
6925
    sLabel VARCHAR2(4000) := NULL;
6926
    sChangeType VARCHAR2(100) := NULL;
6927
    uChangeType CHAR := cChangeType;
6928
    OldPkgVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
6929
 
6930
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
6931
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
6932
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
6933
 
6934
    CURSOR package_versions_cur IS
6935
        SELECT pv_id
6936
          FROM package_versions
6937
         WHERE pkg_id IN ( SELECT pkg_id FROM package_versions WHERE pv_id = NNpv_id )
6938
           AND pkg_version = SSpkg_version;
6939
    package_versions_rec package_versions_cur%ROWTYPE;
6940
 
6941
 
6942
BEGIN
6943
 
6944
    /* ---------------------------------------------------- */
6945
    /* Find if package_version exists                       */
6946
    /* ---------------------------------------------------- */
6947
 
6948
    errMessage := NULL;
6949
 
6950
    -- Get previous version
6951
    SELECT pv.PKG_VERSION INTO OldPkgVersion
6952
      FROM PACKAGE_VERSIONS pv
6953
     WHERE pv.PV_ID = NNpv_id;
6954
 
6955
    sPackageVersion := SSpkg_version;
6956
 
6957
    IF OldPkgVersion != sPackageVersion THEN
6958
 
6959
        OPEN package_versions_cur;
6960
        FETCH package_versions_cur INTO package_versions_rec;
6961
 
6962
        IF package_versions_cur%NOTFOUND
6963
        THEN
6964
 
6965
            -- Split current version in parts
6966
            Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
6967
 
6968
 
6969
                -- Automated built config
6970
                IF ( cBuildType = 'M' ) THEN
6971
                    uChangeType := 'F';
6972
                END IF;
6973
 
6974
                -- Automated version numbering
6975
                -- Make sure that version is still unique
6976
                IF (uChangeType != 'F') THEN
6977
                    sPackageVersion := '('|| NNpv_id ||')'|| SSV_EXT;
6978
                END IF;
6979
 
6980
                -- Packge version not found, hence rename it.
6981
                UPDATE package_versions
6982
                   SET pkg_version = sPackageVersion,
6983
                       v_mm = SSV_MM,
6984
                       v_nmm = SSV_NMM,
6985
                       v_ext = SSV_EXT,
6986
                       modified_stamp = ORA_SYSDATETIME,
6987
                       modifier_id = NNuser_id,
6988
                       build_type = cBuildType,
6989
                       change_type = uChangeType,
6990
                       pkg_label = NULL
6991
                 WHERE pv_id = NNpv_id;
6992
 
6993
                sLabel := GET_AUTOMATED_LABEL( NNpv_id );
6994
                UPDATE PACKAGE_VERSIONS pv SET
6995
                    pv.PKG_LABEL = sLabel
6996
                WHERE pv_id = NNpv_id;
6997
 
6998
 
6999
              /* LOG ACTION */
7000
              IF (cChangeType = 'F') THEN
7001
                  Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| sPackageVersion );
7002
              ELSE
7003
 
7004
                  IF cChangeType = 'M' THEN
7005
                    sChangeType := 'Major Change';
7006
                  ELSIF cChangeType = 'N' THEN
7007
                    sChangeType := 'Minor Change';
7008
                  ELSIF cChangeType = 'P' THEN
7009
                    sChangeType := 'Patch Change';
7010
                  ELSE
7011
                    sChangeType := 'Unknown Change';
7012
                  END IF;
7013
 
7014
                  Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| sPackageVersion || ',' || sChangeType );
7015
              END IF;
7016
 
7017
        ELSE
7018
            -- Package version exists. Cannot proceed.
7019
            errMessage := 'enum_MSG_VERSION_EXISTS';
7020
 
7021
        END IF;
7022
 
7023
        CLOSE package_versions_cur;
7024
 
7025
    END IF;
7026
 
7027
END Rename_Package_Version;
7028
 
7029
/
4040 dpurdie 7030
--------------------------------------------------------
6999 dpurdie 7031
--  DDL for Procedure RESET_IGNORE_WARNINGS
4040 dpurdie 7032
--------------------------------------------------------
6999 dpurdie 7033
set define off;
4040 dpurdie 7034
 
6999 dpurdie 7035
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RESET_IGNORE_WARNINGS" ( sPvIdList IN VARCHAR2,
7036
                                                    nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS
7037
/* ---------------------------------------------------------------------------
7038
    Version: 5.0
7039
   --------------------------------------------------------------------------- */
7040
 
7041
oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
7042
 
7043
BEGIN
7044
	oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
7045
 
7046
    -- Remove Ignore Warnings
7047
     DELETE
7048
       FROM ignore_warnings
7049
	  WHERE (rtag_id, pv_id, dpv_id) IN
7050
	     (
7051
	      SELECT igw.rtag_id, igw.pv_id, igw.dpv_id
7052
	        FROM ignore_warnings igw,
7053
	             package_versions dpv,
7054
	             package_versions pv
7055
	       WHERE igw.dpv_id = dpv.pv_id
7056
	         AND igw.rtag_id = nRTagId
7057
	         AND dpv.pkg_id = pv.pkg_id
7058
	         AND NVL(dpv.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|')
7059
	         AND pv.pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
7060
         );
7061
 
7062
END Reset_Ignore_Warnings;
7063
 
7064
/
4040 dpurdie 7065
--------------------------------------------------------
6999 dpurdie 7066
--  DDL for Procedure RIPPLE_PACKAGE
4040 dpurdie 7067
--------------------------------------------------------
6999 dpurdie 7068
set define off;
4040 dpurdie 7069
 
6999 dpurdie 7070
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RIPPLE_PACKAGE" (
7071
        sPvIdList IN VARCHAR2,
7072
        nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
7073
        nUserId IN NUMBER
7074
    ) IS
7075
/* ---------------------------------------------------------------------------
7076
    Version: 4.1
7077
   --------------------------------------------------------------------------- */
5172 dpurdie 7078
 
7079
BEGIN
7080
 
6999 dpurdie 7081
    IF (sPvIdList IS NULL) THEN
7082
        RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
7083
    END IF;
5172 dpurdie 7084
 
6999 dpurdie 7085
    -- Ripple Package
7086
    DELETE FROM DO_NOT_RIPPLE
7087
    WHERE RTAG_ID = nRtagId
7088
    AND PV_ID IN (
7089
        SELECT *
7090
        FROM THE (
7091
            SELECT CAST( IN_LIST_NUMBER( sPvIdList )
7092
            AS RELMGR_NUMBER_TAB_t )
7093
            FROM DUAL
7094
        )
7095
    );
5172 dpurdie 7096
 
6999 dpurdie 7097
    -- Mark Release Changed for build
7098
    PK_RELEASE.SET_RELEASE_MODIFIED(nRtagId);
5892 dpurdie 7099
 
6999 dpurdie 7100
    /* LOG ACTION */
7101
    Log_Action_Bulk ( sPvIdList, 'ripple_package', nUserId );
7102
 
7103
END Ripple_Package;
7104
 
7105
/
4040 dpurdie 7106
--------------------------------------------------------
6999 dpurdie 7107
--  DDL for Procedure SEED_PACKAGE_NAMES_VERSIONS
7108
--------------------------------------------------------
7109
set define off;
4040 dpurdie 7110
 
6999 dpurdie 7111
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
7112
                                          SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
7113
                                          NNuser_id IN NUMBER,
7114
                                          retPV_ID OUT NUMBER,
7115
                                          nCloneFromPvId IN NUMBER DEFAULT NULL,
7116
                                          nBuildType IN CHAR DEFAULT 'U',
7117
                                          nChangeType IN CHAR DEFAULT 'F') IS
1373 dpurdie 7118
/* ---------------------------------------------------------------------------
6999 dpurdie 7119
    Version: 5.0
1373 dpurdie 7120
   --------------------------------------------------------------------------- */
7121
 
6999 dpurdie 7122
    parPkg_id   NUMBER;
7123
    parPv_id    NUMBER;
7124
    cloneFrom_pv_id NUMBER;
7125
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
7126
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
7127
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
7128
    spackageversion VARCHAR2 (4000);
7129
    slabel VARCHAR2 (4000) := NULL;
1373 dpurdie 7130
 
6999 dpurdie 7131
    CURSOR packages_cur IS
7132
        SELECT pkg_id FROM PACKAGES
7133
        WHERE pkg_name = SSpkg_name;
7134
    packages_rec packages_cur%ROWTYPE;
7135
 
7136
    CURSOR package_versions_cur IS
7137
        SELECT pv_id FROM PACKAGE_VERSIONS
7138
        WHERE pkg_id = parPkg_id
7139
        AND pkg_version = SSpkg_version;
7140
    package_versions_rec package_versions_cur%ROWTYPE;
7141
 
7142
    CURSOR clone_package_versions_cur IS
7143
        SELECT MAX(pv_id) AS pv_id
7144
          FROM PACKAGE_VERSIONS
7145
         WHERE pkg_id = parPkg_id
7146
           AND NVL(v_ext,'LINK_A_NULL') = NVL(SSV_EXT,'LINK_A_NULL');
7147
    clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
7148
 
1373 dpurdie 7149
BEGIN
6999 dpurdie 7150
    /* -------------------------------------------- */
7151
    /* Find if pkg_name exists and seed if required */
7152
    /* -------------------------------------------- */
7153
    OPEN packages_cur;
7154
    FETCH packages_cur INTO packages_rec;
6031 dpurdie 7155
 
6999 dpurdie 7156
    IF packages_cur%NOTFOUND
7157
    THEN
7158
        /* INSERT into packages table */
7159
        SELECT SEQ_PKG_ID.NEXTVAL INTO parPkg_id FROM DUAL;
7160
        INSERT INTO PACKAGES ( pkg_id, pkg_name ) VALUES ( parPkg_id, SSpkg_name );
6031 dpurdie 7161
 
6999 dpurdie 7162
    ELSE
7163
        parPkg_id := packages_rec.pkg_id;
6031 dpurdie 7164
 
6999 dpurdie 7165
    END IF;
6031 dpurdie 7166
 
6999 dpurdie 7167
    CLOSE packages_cur;
5172 dpurdie 7168
 
6031 dpurdie 7169
 
6999 dpurdie 7170
    /* ---------------------------------------------------- */
7171
    /* Find if package_version exists and seed if required  */
7172
    /* ---------------------------------------------------- */
7173
    OPEN package_versions_cur;
7174
    FETCH package_versions_cur INTO package_versions_rec;
5172 dpurdie 7175
 
6999 dpurdie 7176
    IF package_versions_cur%NOTFOUND
7177
    THEN
7178
        SELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;
6031 dpurdie 7179
 
6999 dpurdie 7180
        /* Generate automated version Number */
7181
        Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
7182
        spackageversion := SSpkg_version;
6031 dpurdie 7183
 
6999 dpurdie 7184
        IF ( nChangeType <> 'F' )
7185
        THEN
7186
            spackageversion := '(' || parPv_id || ')' || SSV_EXT;
7187
        END If;
5172 dpurdie 7188
 
6999 dpurdie 7189
        /*  Determine clone source for new package-version
7190
            Use nCloneFromPvId - iff provided
7191
            Use most recently created pkgName/pkgExtension - if it exists
7192
            Else create a brand new package-version
7193
        */
6031 dpurdie 7194
 
6999 dpurdie 7195
        IF ( NOT nCloneFromPvId IS NULL) THEN
7196
            cloneFrom_pv_id := nCloneFromPvId;
7197
        ELSE
7198
            /* Find similar pkg_name + ext to clone from */
7199
            OPEN clone_package_versions_cur;
7200
            FETCH clone_package_versions_cur INTO clone_package_versions_rec;
7201
            CLOSE clone_package_versions_cur;
5172 dpurdie 7202
 
6999 dpurdie 7203
            IF ( NOT clone_package_versions_rec.pv_id IS NULL) THEN
7204
                cloneFrom_pv_id := clone_package_versions_rec.pv_id;
7205
            ELSE
7206
                cloneFrom_pv_id := NULL;
7207
            END IF;
1373 dpurdie 7208
 
6999 dpurdie 7209
        END IF;
6031 dpurdie 7210
 
6999 dpurdie 7211
        IF NOT cloneFrom_pv_id IS NULL
7212
        THEN
7213
            -- Clone Package Version Details --
7214
            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,
7215
                                           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  )
7216
                SELECT parPv_id         AS pv_id,
7217
                       parPkg_id        AS pkg_id,
7218
                       spackageversion  AS pkg_version,
7219
                       'N'              AS dlocked,
7000 dpurdie 7220
                       ora_sysdatetime  AS created_stamp,
6999 dpurdie 7221
                       NNuser_id        AS creator_id,
7222
                       Ora_Sysdatetime  AS modified_stamp,
7223
                       NNuser_id        AS modifier_id,
7224
                       SSV_MM           AS V_MM,
7225
                       SSV_NMM          AS V_NMM,
7226
                       SSV_EXT          AS V_EXT,
7227
                       pv.src_path,
7228
                       pv.pv_description,
7229
                       pv.PV_OVERVIEW,
7230
                       cloneFrom_pv_id  AS LAST_PV_ID,
7231
                       pv.owner_id,
7232
                       nBuildType       AS BUILD_TYPE,
7233
                       pv.IS_BUILD_ENV_REQUIRED,
7234
                       pv.BS_ID,
7235
                       pv.is_autobuildable,
7236
                       pv.IS_DEPLOYABLE,
7237
                       pv.ripple_field,
7238
                       nChangeType       AS change_type
7239
                  FROM PACKAGE_VERSIONS pv
7240
                 WHERE pv.pv_id = cloneFrom_pv_id;
6031 dpurdie 7241
 
6999 dpurdie 7242
            Basic_Clone ( cloneFrom_pv_id, parPv_id, NULL, NNuser_id, parPkg_id, 0 );
1373 dpurdie 7243
 
6999 dpurdie 7244
        ELSE
7245
            /* BRAND NEW version + ext */
7246
            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 )
7247
            VALUES (
7248
                    parPv_id,
7249
                    parPkg_id,
7250
                    spackageversion,
7251
                    'N',
7000 dpurdie 7252
                    ora_sysdatetime,
6999 dpurdie 7253
                    NNuser_id,
7254
                    Ora_Sysdatetime,
7255
                    NNuser_id,
7256
                    SSV_MM,
7257
                    SSV_NMM,
7258
                    SSV_EXT,
7259
                    NNuser_id,
7260
                    parPv_id,
7261
                    nBuildType,
7262
                    'b',
7263
                    nChangeType
7264
                   );
7265
        END IF;
6031 dpurdie 7266
 
6999 dpurdie 7267
        /* Insert initial package label */
7268
        slabel := get_automated_label (parPv_id);
7269
        UPDATE package_versions pv
7270
        SET pv.pkg_label = slabel
7271
        WHERE pv.pv_id = parPv_id;
4040 dpurdie 7272
 
6999 dpurdie 7273
        retPV_ID := parPv_id;
7274
 
7275
        /* LOG ACTION */
7276
        Log_Action ( parPv_id, 'new_version', NNuser_id,
7277
                     'New package version: '|| spackageversion );
7278
 
7279
    ELSE
7280
        retPV_ID := package_versions_rec.pv_id;
7281
 
7282
    END IF;
7283
 
7284
    CLOSE package_versions_cur;
7285
 
7286
END Seed_Package_Names_Versions;
7287
 
1374 dpurdie 7288
/
6999 dpurdie 7289
 
7290
  GRANT EXECUTE ON "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 7291
--------------------------------------------------------
6999 dpurdie 7292
--  DDL for Procedure SET_ADVISORY_RIPPLE
4040 dpurdie 7293
--------------------------------------------------------
6999 dpurdie 7294
set define off;
4040 dpurdie 7295
 
6999 dpurdie 7296
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
7297
	   	  		  							   nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
7298
											 nUserId IN NUMBER ) IS
7299
/* ---------------------------------------------------------------------------
7300
    Version: 4.0
7301
   --------------------------------------------------------------------------- */
4040 dpurdie 7302
 
6999 dpurdie 7303
BEGIN
7304
 
7305
    -- Set Advisory Ripple Package
7306
    INSERT INTO ADVISORY_RIPPLE (RTAG_ID, PV_ID)
7307
	VALUES (nRtagId, nPvId);
7308
 
7309
    /* LOG ACTION */
7310
   	Log_Action ( nPvId, 'set_advisory_ripple', nUserId );
7311
 
7312
	/*Rebuild_Environment(nRtagId);*/
7313
 
7314
END Set_Advisory_Ripple;
7315
 
7316
/
4040 dpurdie 7317
--------------------------------------------------------
6999 dpurdie 7318
--  DDL for Procedure SET_PACKAGE_BUILD_ENV
4040 dpurdie 7319
--------------------------------------------------------
6999 dpurdie 7320
set define off;
4040 dpurdie 7321
 
6999 dpurdie 7322
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,
7323
	   	  		  								  	sBuildEnvIdList IN VARCHAR2 ) IS
3959 dpurdie 7324
/* ---------------------------------------------------------------------------
6999 dpurdie 7325
    Last Modified: Rupesh Solanki
7326
	Version: 3.0.1
3959 dpurdie 7327
   --------------------------------------------------------------------------- */
7328
 
7329
 
1373 dpurdie 7330
BEGIN
7331
 
6999 dpurdie 7332
   -- Delete Current Build Env settings
7333
   DELETE FROM PACKAGE_BUILD_ENV
7334
   WHERE pv_id = nPvId;
3959 dpurdie 7335
 
6999 dpurdie 7336
   -- Delet Current Package Build Info Settings
7337
   DELETE FROM PACKAGE_BUILD_INFO
7338
   WHERE pv_id = nPvId;
3959 dpurdie 7339
 
6999 dpurdie 7340
   -- Reset flag to N
7341
   UPDATE PACKAGE_VERSIONS SET
7342
	   IS_BUILD_ENV_REQUIRED = 'N'
7343
   WHERE PV_ID = nPvId;
4211 dpurdie 7344
 
3959 dpurdie 7345
 
6999 dpurdie 7346
   -- Set new Build Env
7347
   IF NOT sBuildEnvIdList IS NULL THEN
7348
   	  -- Insert into PACKAGE_BUILD_ENV
7349
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
7350
	  SELECT nPvId AS PV_ID,
7351
	  		 be.BE_ID
7352
	    FROM BUILD_ENVIRONMENTS be
7353
	   WHERE be.BE_ID IN (
7354
	   		 		  	   SELECT *
7355
					   	     FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
7356
	   		 		  	 );
4040 dpurdie 7357
 
6999 dpurdie 7358
   	  -- Insert into PACKAGE_BUILD_INFO
7359
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
7360
	  SELECT nPvId AS PV_ID,
7361
	  		 be.BM_ID
7362
	    FROM BUILD_MACHINES be
7363
	   WHERE be.BM_ID IN (
7364
	   		 		  	   SELECT *
7365
					   	     FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
7366
	   		 		  	 );
7367
 
7368
	   -- Set flag to Y
7369
	   UPDATE PACKAGE_VERSIONS SET
7370
		   IS_BUILD_ENV_REQUIRED = 'Y'
7371
	   WHERE PV_ID = nPvId;
7372
 
7373
   END IF;
7374
 
7375
 
7376
END Set_Package_Build_Env;
7377
 
7378
/
4040 dpurdie 7379
--------------------------------------------------------
6999 dpurdie 7380
--  DDL for Procedure SET_PACKAGE_BUILD_ENV_TEMP
4040 dpurdie 7381
--------------------------------------------------------
6999 dpurdie 7382
set define off;
4040 dpurdie 7383
 
6999 dpurdie 7384
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV_TEMP" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,
7385
	   	  		  								  	   	 sBuildEnvIdList IN VARCHAR2,
7386
														 nBuildStandard IN PACKAGE_VERSIONS.BS_ID%TYPE
7387
														 ) IS
1373 dpurdie 7388
/* ---------------------------------------------------------------------------
6999 dpurdie 7389
    Last Modified: Rupesh Solanki
7390
	Version: 3.0.1
1373 dpurdie 7391
   --------------------------------------------------------------------------- */
6999 dpurdie 7392
 
7393
   nBsCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
7394
   BsId NUMBER;
7395
   HackBsId NUMBER;
7396
 
7397
 
1373 dpurdie 7398
BEGIN
4040 dpurdie 7399
 
6999 dpurdie 7400
   nBsCollector := IN_LIST_NUMBER ( sBuildEnvIdList );
7401
 
7402
   -- Delete Current Build Env settings
7403
   DELETE FROM PACKAGE_BUILD_ENV
7404
   WHERE pv_id = nPvId;
7405
 
7406
   -- Delet Current Package Build Info Settings
7407
   DELETE FROM PACKAGE_BUILD_INFO
7408
   WHERE pv_id = nPvId;
7409
 
7410
   -- Reset flag to N
7411
   UPDATE PACKAGE_VERSIONS SET
7412
	   IS_BUILD_ENV_REQUIRED = 'N'
7413
   WHERE PV_ID = nPvId;
7414
 
7415
 
7416
   -- Set new Build Env
7417
   IF NOT sBuildEnvIdList IS NULL THEN
7418
	FOR i IN 1..nBsCollector.COUNT
7419
	LOOP
7420
 
7421
	BsId := nBsCollector(i);
7422
 
7423
	IF nBuildStandard = 2 THEN
7424
	   IF BsId = 1 THEN
7425
	   	  HackBsId := 11;
7426
	   ELSE
7427
	   	  HackBsId := 12;
7428
	   END IF;
7429
 
7430
   	  -- Insert into PACKAGE_BUILD_ENV
7431
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
7432
	  SELECT nPvId AS PV_ID,
7433
	  		 be.BE_ID
7434
	    FROM BUILD_ENVIRONMENTS be
7435
	   WHERE be.BE_ID IN ( HackBsId );
7436
 
7437
   	  -- Insert into PACKAGE_BUILD_INFO
7438
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
7439
	  SELECT nPvId AS PV_ID,
7440
	  		 be.BM_ID
7441
	    FROM BUILD_MACHINES be
7442
	   WHERE be.BM_ID IN ( BsId );
7443
 
7444
	   -- Set flag to Y
7445
	   UPDATE PACKAGE_VERSIONS SET
7446
		   IS_BUILD_ENV_REQUIRED = 'Y'
7447
	   WHERE PV_ID = nPvId;
7448
 
7449
 
7450
	ELSE
7451
 
7452
   	  -- Insert into PACKAGE_BUILD_ENV
7453
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
7454
	  SELECT nPvId AS PV_ID,
7455
	  		 be.BE_ID
7456
	    FROM BUILD_ENVIRONMENTS be
7457
	   WHERE be.BE_ID IN ( BsId );
7458
 
7459
   	  -- Insert into PACKAGE_BUILD_INFO
7460
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
7461
	  SELECT nPvId AS PV_ID,
7462
	  		 be.BM_ID
7463
	    FROM BUILD_MACHINES be
7464
	   WHERE be.BM_ID IN ( BsId );
7465
 
7466
	   -- Set flag to Y
7467
	   UPDATE PACKAGE_VERSIONS SET
7468
		   IS_BUILD_ENV_REQUIRED = 'Y'
7469
	   WHERE PV_ID = nPvId;
7470
 
7471
	END IF;
7472
 
7473
 
7474
	END LOOP;
7475
 
7476
   END IF;
7477
 
7478
 
7479
END Set_Package_Build_Env_Temp;
7480
 
7481
/
4040 dpurdie 7482
--------------------------------------------------------
6999 dpurdie 7483
--  DDL for Procedure SET_TO_AUTOBUILDABLE
4040 dpurdie 7484
--------------------------------------------------------
6999 dpurdie 7485
set define off;
4040 dpurdie 7486
 
6999 dpurdie 7487
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_TO_AUTOBUILDABLE" (
7488
   nrtagid     IN   NUMBER,
7489
   spvidlist   IN   VARCHAR2
7490
)
1373 dpurdie 7491
IS
6999 dpurdie 7492
/******************************************************************************
7493
   NAME:       SET_TO_AUTOBUILDABLE
7494
   PURPOSE:
7495
 
7496
   REVISIONS:
7497
   Ver        Date        Author           Description
7498
   ---------  ----------  ---------------  ------------------------------------
7499
   1.0        15/12/2006   Rupesh Solanki       1. Created this procedure.
7500
 
7501
   NOTES:
7502
 
7503
   Automatically available Auto Replace Keywords:
7504
      Object Name:     SET_TO_AUTOBUILDABLE
7505
      Sysdate:         15/12/2006
7506
      Date and Time:   15/12/2006, 11:42:29 AM, and 15/12/2006 11:42:29 AM
7507
      Username:         (set in TOAD Options, Procedure Editor)
7508
      Table Name:       (set in the "New PL/SQL Object" dialog)
7509
 
7510
******************************************************************************/
7511
   npvidcollector   relmgr_number_tab_t := relmgr_number_tab_t ();
7512
   PvId NUMBER;
1373 dpurdie 7513
BEGIN
4040 dpurdie 7514
 
6999 dpurdie 7515
   npvidcollector := in_list_number2 (spvidlist);
7516
 
7517
   UPDATE package_versions
7518
      SET is_autobuildable = 'N'
7519
    WHERE pv_id IN (SELECT pv_id
7520
                      FROM release_content
7521
                     WHERE rtag_id = nrtagid);
7522
 
7523
 
7524
 
7525
   	FOR i IN 1..npvidcollector.COUNT
7526
	LOOP
7527
		PvId := npvidcollector(i);
7528
 
7529
		UPDATE package_versions
7530
		set is_autobuildable = 'Y'
7531
		where pv_id = PvId;
7532
 
7533
	END LOOP;
7534
 
7535
 
7536
END set_to_autobuildable;
7537
 
7538
/
4040 dpurdie 7539
--------------------------------------------------------
6999 dpurdie 7540
--  DDL for Procedure SHIFT_INSTALL_ORDER
4040 dpurdie 7541
--------------------------------------------------------
6999 dpurdie 7542
set define off;
4040 dpurdie 7543
 
6999 dpurdie 7544
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SHIFT_INSTALL_ORDER" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
7545
												  nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
7546
                                                  nToInstallOrder IN PACKAGE_PATCHES.INSTALL_ORDER%TYPE ) IS
7547
/* ---------------------------------------------------------------------------
7548
    Version: 3.0
7549
   --------------------------------------------------------------------------- */
7550
 
7551
currInstallOrder NUMBER;
7552
FromInstallOrder NUMBER;
7553
 
1373 dpurdie 7554
BEGIN
3959 dpurdie 7555
 
6999 dpurdie 7556
	 -- Get Current Install Order
7557
     SELECT pp.INSTALL_ORDER INTO currInstallOrder
7558
       FROM PACKAGE_PATCHES pp
7559
      WHERE pp.PV_ID = nPvId
7560
        AND pp.PATCH_ID = nPatchId;
4040 dpurdie 7561
 
5892 dpurdie 7562
 
6999 dpurdie 7563
	 IF currInstallOrder > nToInstallOrder
7564
	 THEN
7565
 
7566
		FromInstallOrder := nToInstallOrder;
7567
 
7568
	    -- Shift others Up
7569
		UPDATE PACKAGE_PATCHES pp SET
7570
			   pp.INSTALL_ORDER = pp.INSTALL_ORDER + 1
7571
		 WHERE pp.PV_ID = nPvId
7572
           AND pp.PATCH_ID != nPatchId
7573
		   AND pp.INSTALL_ORDER BETWEEN  FromInstallOrder  AND  currInstallOrder - 1;
7574
 
7575
 
7576
	 ELSIF currInstallOrder < nToInstallOrder
7577
	 THEN
7578
 
7579
		FromInstallOrder := currInstallOrder + 1;
7580
 
7581
		-- Shift others Down
7582
        UPDATE PACKAGE_PATCHES pp SET
7583
			   pp.INSTALL_ORDER = pp.INSTALL_ORDER - 1
7584
		 WHERE pp.PV_ID = nPvId
7585
           AND pp.PATCH_ID != nPatchId
7586
		   AND pp.INSTALL_ORDER BETWEEN  FromInstallOrder  AND  nToInstallOrder;
7587
 
7588
	 END IF;
7589
 
7590
 
7591
	 -- Move Patch to new install order
7592
     UPDATE PACKAGE_PATCHES pp SET
7593
		    pp.INSTALL_ORDER = nToInstallOrder
7594
	  WHERE pp.PV_ID = nPvId
7595
	    AND pp.PATCH_ID = nPatchId;
7596
 
7597
 
7598
END Shift_Install_Order;
7599
 
7600
/
4040 dpurdie 7601
--------------------------------------------------------
6999 dpurdie 7602
--  DDL for Procedure SPLIT_VERSION
4040 dpurdie 7603
--------------------------------------------------------
6999 dpurdie 7604
set define off;
4040 dpurdie 7605
 
6999 dpurdie 7606
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SPLIT_VERSION" ( SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
7607
                                            SSV_MM OUT PACKAGE_VERSIONS.V_MM%TYPE,
7608
                                            SSV_NMM OUT PACKAGE_VERSIONS.V_NMM%TYPE,
7609
                                            SSV_EXT OUT PACKAGE_VERSIONS.V_EXT%TYPE  ) IS
1373 dpurdie 7610
/* ---------------------------------------------------------------------------
3959 dpurdie 7611
    Version: 3.0.0
1373 dpurdie 7612
   --------------------------------------------------------------------------- */
3959 dpurdie 7613
 
6999 dpurdie 7614
    TYPE VERSION_COMPONENTS_TYPE IS TABLE OF VARCHAR2(50)
7615
        INDEX BY BINARY_INTEGER;
3959 dpurdie 7616
 
6999 dpurdie 7617
    version_components VERSION_COMPONENTS_TYPE;
7618
    lastDot NUMBER := 0;
7619
    currDot NUMBER := 0;
7620
 
1373 dpurdie 7621
BEGIN
6999 dpurdie 7622
    currDot := INSTR ( SSpkg_version, '.', -1 );      -- Find 1st dot from the right
3959 dpurdie 7623
 
6999 dpurdie 7624
    IF ( currDot > 0 )
1373 dpurdie 7625
    THEN
3959 dpurdie 7626
        -- YES dot separator found --
6999 dpurdie 7627
        SSV_EXT := GET_V_EXT( SSpkg_version );
3959 dpurdie 7628
 
6999 dpurdie 7629
        IF NOT SSV_EXT IS NULL
3959 dpurdie 7630
        THEN
6999 dpurdie 7631
            lastDot := currDot;
7632
            currDot := INSTR ( SSpkg_version, '.', -1, 2 );   -- Find 2nd dot from the right
7633
 
7634
            IF ( currDot > 0 )
7635
            THEN
7636
                -- XXXX.M.E
7637
                SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, lastDot - currDot - 1);
7638
                SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot ) || SSV_EXT;
7639
            ELSE
7640
                -- XXXX.E
7641
                SSV_MM := NULL;
7642
                SSV_NMM := SSpkg_version;
7643
            END IF;
7644
 
3959 dpurdie 7645
        ELSE
6999 dpurdie 7646
            -- XXXX.M
7647
            SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, LENGTH(SSpkg_version) - currDot );
7648
            SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot );
7649
 
3959 dpurdie 7650
        END IF;
7651
 
1373 dpurdie 7652
    ELSE
3959 dpurdie 7653
        -- NO dot separator found --
6999 dpurdie 7654
        -- XXXXXX
7655
        SSV_MM  := NULL;
7656
        SSV_NMM := SSpkg_version;
7657
        SSV_EXT := NULL;
7658
 
1373 dpurdie 7659
    END IF;
3959 dpurdie 7660
 
6999 dpurdie 7661
END Split_Version;
4040 dpurdie 7662
 
6999 dpurdie 7663
/
4040 dpurdie 7664
--------------------------------------------------------
6999 dpurdie 7665
--  DDL for Procedure SWITCH_REPRODUCIBLE_PACKAGE
4040 dpurdie 7666
--------------------------------------------------------
6999 dpurdie 7667
set define off;
4040 dpurdie 7668
 
6999 dpurdie 7669
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SWITCH_REPRODUCIBLE_PACKAGE" (nPvId IN NUMBER, nUserId IN NUMBER)IS
7670
Auto CHAR;
7671
/******************************************************************************
7672
   NAME:       SWITCH_REPRODUCIBLE_PACKAGE
7673
   PURPOSE:
1373 dpurdie 7674
 
6999 dpurdie 7675
   REVISIONS:
7676
   Ver        Date        Author           Description
7677
   ---------  ----------  ---------------  ------------------------------------
7678
   1.0        14/12/2006   Rupesh Solanki       1. Created this procedure.
7679
 
7680
   NOTES:
7681
 
7682
   Automatically available Auto Replace Keywords:
7683
      Object Name:     SWITCH_REPRODUCIBLE_PACKAGE
7684
      Sysdate:         14/12/2006
7685
      Date and Time:   14/12/2006, 11:35:15 AM, and 14/12/2006 11:35:15 AM
7686
      Username:         (set in TOAD Options, Procedure Editor)
7687
      Table Name:       (set in the "New PL/SQL Object" dialog)
7688
 
7689
******************************************************************************/
7690
BEGIN
7691
 
7692
	 SELECT IS_AUTOBUILDABLE into Auto
7693
	 FROM PACKAGE_VERSIONS
7694
	 WHERE PV_ID = nPvId;
7695
 
7696
	 IF Auto = 'N' Then
7697
 
7698
	 	UPDATE PACKAGE_VERSIONS
7699
	 	SET IS_AUTOBUILDABLE = 'Y'
7700
	 	WHERE PV_ID = nPvId;
7701
 
7702
 
7703
	 	/* LOG ACTION */
7704
   		Log_Action ( nPvId, 'reproducible_package', nUserId );
7705
 
7706
	 Else
7707
 
7708
		 UPDATE PACKAGE_VERSIONS
7709
		 SET IS_AUTOBUILDABLE = 'N'
7710
		 WHERE PV_ID = nPvId;
7711
 
7712
 
7713
	 	 /* LOG ACTION */
7714
   	 	 Log_Action ( nPvId, 'unreproducible_package', nUserId );
7715
 
7716
	 End If;
7717
 
7718
 
7719
 
7720
 
7721
 
7722
 
7723
 
7724
 
7725
END SWITCH_REPRODUCIBLE_PACKAGE;
7726
 
7727
/
7728
--------------------------------------------------------
7729
--  DDL for Procedure SYNC_PROJECTS_NEW_VERSION
7730
--------------------------------------------------------
7731
set define off;
7732
 
7733
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SYNC_PROJECTS_NEW_VERSION" ( nPv_id 				IN NUMBER,
7734
														  sSyncRtagsInList		IN VARCHAR2,
7735
				                                          nUser_id 				IN NUMBER ) IS
1373 dpurdie 7736
/* ---------------------------------------------------------------------------
7737
    Version: 3.0.0
7738
   --------------------------------------------------------------------------- */
7739
 
6999 dpurdie 7740
	CURSOR sync_rtags_cur IS
7741
        SELECT rc.RTAG_ID, rc.BASE_VIEW_ID, pv.pv_id
7742
		  FROM release_content rc,
7743
		  	   package_versions pv,
7744
		       package_versions opv
7745
		 WHERE rc.pv_id = pv.pv_id
7746
		   AND opv.pkg_id = pv.pkg_id
7747
		   AND NVL(opv.v_ext, '|LINK_A_NULL|') = NVL(pv.v_ext, '|LINK_A_NULL|')
7748
		   AND opv.pv_id = nPv_id
7749
		   AND rtag_id IN ( SELECT *
7750
		   	   		   	      FROM THE (
7751
					   	   		   	    SELECT CAST( IN_LIST_NUMBER( sSyncRtagsInList ) AS RELMGR_NUMBER_TAB_t )
7752
					       		   	    FROM dual
7753
									   )
7754
						  );
7755
    sync_rtags_rec sync_rtags_cur%ROWTYPE;
1373 dpurdie 7756
 
7757
BEGIN
7758
 
6999 dpurdie 7759
	OPEN sync_rtags_cur;
7760
	FETCH sync_rtags_cur INTO sync_rtags_rec;
1373 dpurdie 7761
 
6999 dpurdie 7762
	WHILE sync_rtags_cur%FOUND
7763
	LOOP
7764
		DELETE FROM RELEASE_CONTENT
7765
		 WHERE rtag_id = sync_rtags_rec.rtag_id
7766
	       AND pv_id = sync_rtags_rec.pv_id;
4040 dpurdie 7767
 
6999 dpurdie 7768
		INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )
7769
	   		   VALUES ( sync_rtags_rec.rtag_id,
7770
		       		  	nPv_id,
7771
						sync_rtags_rec.BASE_VIEW_ID,
7000 dpurdie 7772
	           			ora_sysdatetime,
6999 dpurdie 7773
	           			nUser_id,
7774
 
7775
	      	   		   );
7776
 
7777
-- 		UPDATE RELEASE_CONTENT
7778
-- 	       SET pv_id = nPv_id,
7000 dpurdie 7779
-- 	           insert_stamp = ora_sysdatetime,
6999 dpurdie 7780
-- 	           insertor_id = nUser_id
7781
-- 	     WHERE rtag_id = sync_rtags_rec.rtag_id
7782
-- 	       AND pv_id = sync_rtags_rec.pv_id;
7783
 
7784
		FETCH sync_rtags_cur INTO sync_rtags_rec;
7785
	END LOOP;
7786
 
7787
	CLOSE sync_rtags_cur;
7788
 
7789
END Sync_Projects_New_Version;
7790
 
7791
/
4040 dpurdie 7792
--------------------------------------------------------
6999 dpurdie 7793
--  DDL for Procedure TOUCH_RELEASE
4040 dpurdie 7794
--------------------------------------------------------
6999 dpurdie 7795
set define off;
4040 dpurdie 7796
 
6999 dpurdie 7797
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE" ( nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS
7798
/* ---------------------------------------------------------------------------
7799
    The purpose of this procedure is to flag in the database that the specified
7800
    release has changed to an extent that the procedure Rebuild_Environment
7801
    should be called at the next opportunity in order that the package state
7802
    icons are all re-evaluated.
7803
    The package state icons are controlled using the pkg_state column in the
7804
    release_content table, and Rebuild_Environment updates that column.
7805
    It will be through user action in the website that Rebuild_Environment will
7806
    be called, for example:
7807
      a) when setting/clearing ignore warnings checkboxes
7808
      b) when someone opens a page upon a rtag/pvid and rebuild_en flag is set
7809
      c) when someone opens the build order report form
7810
      d) when someone modifies dependencies of a package
7811
      + other scenarios (?)
7812
   --------------------------------------------------------------------------- */
7813
BEGIN
7814
   -- Touch Release for Rebuild
7815
   UPDATE RELEASE_TAGS rt SET
7816
          rt.REBUILD_ENV = 'Y',
7817
          rt.REBUILD_STAMP = 0
7818
    WHERE rt.RTAG_ID = nRtagId;
1373 dpurdie 7819
 
6999 dpurdie 7820
END Touch_Release;
7821
 
7822
/
7823
--------------------------------------------------------
7824
--  DDL for Procedure TOUCH_RELEASE_BULK
7825
--------------------------------------------------------
7826
set define off;
7827
 
7828
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE_BULK" ( nRtagIdList IN VARCHAR2 ) IS
1373 dpurdie 7829
/* ---------------------------------------------------------------------------
6999 dpurdie 7830
    Version: 3.0
1373 dpurdie 7831
   --------------------------------------------------------------------------- */
7832
 
6999 dpurdie 7833
oRTagIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
1373 dpurdie 7834
 
7835
BEGIN
6999 dpurdie 7836
	 oRTagIdCollector := IN_LIST_NUMBER ( nRtagIdList );
1373 dpurdie 7837
 
6999 dpurdie 7838
	 -- Touch Release for Rebuild
7839
     UPDATE RELEASE_TAGS rt SET
7840
     	rt.REBUILD_ENV = 'Y',
7841
        rt.REBUILD_STAMP = 0
7842
      WHERE rt.RTAG_ID IN ( SELECT * FROM TABLE ( CAST ( oRTagIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
1373 dpurdie 7843
 
4040 dpurdie 7844
 
6999 dpurdie 7845
END Touch_Release_Bulk;
7846
 
7847
/
4040 dpurdie 7848
--------------------------------------------------------
6999 dpurdie 7849
--  DDL for Procedure TO_INSERT_VTREE_ID
4040 dpurdie 7850
--------------------------------------------------------
6999 dpurdie 7851
set define off;
4040 dpurdie 7852
 
6999 dpurdie 7853
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TO_INSERT_VTREE_ID" IS
1373 dpurdie 7854
 
6999 dpurdie 7855
/******************************************************************************
7856
   NAME:       TO_INSERT_VTREE_ID
7857
   PURPOSE:
7858
 
7859
   REVISIONS:
7860
   Ver        Date        Author           Description
7861
   ---------  ----------  ---------------  ------------------------------------
7862
   1.0        2/02/2007          1. Created this procedure.
7863
 
7864
   NOTES:
7865
 
7866
   Automatically available Auto Replace Keywords:
7867
      Object Name:     TO_INSERT_VTREE_ID
7868
      Sysdate:         2/02/2007
7869
      Date and Time:   2/02/2007, 8:42:56 AM, and 2/02/2007 8:42:56 AM
7870
      Username:         (set in TOAD Options, Procedure Editor)
7871
      Table Name:       (set in the "New PL/SQL Object" dialog)
7872
 
7873
******************************************************************************/
7874
VTreeId NUMBER;
7875
 
7876
 
7877
	CURSOR curInfo IS
7878
    SELECT RTAG_ID
7879
	FROM RELEASE_TAGS
7880
	WHERE VTREE_ID IS NULL;
7881
    recInfo curInfo%ROWTYPE;
7882
 
7883
 
7884
BEGIN
7885
 
7886
	OPEN curInfo;
7887
    FETCH curInfo INTO recInfo;
7888
 
7889
	WHILE curInfo%FOUND
7890
	LOOP
7891
		SELECT SEQ_VTREE_ID.nextval INTO VTreeId FROM DUAL;
7892
 
7893
		UPDATE RELEASE_TAGS
7894
		SET VTREE_ID = VTreeId
7895
		WHERE RTAG_ID = recInfo.RTAG_ID;
7896
 
7897
		FETCH curInfo INTO recInfo;
7898
	END LOOP;
7899
 
7900
	CLOSE curInfo;
7901
 
7902
END TO_INSERT_VTREE_ID;
7903
 
7904
/
7905
--------------------------------------------------------
7906
--  DDL for Procedure UNDEPRECATE_PACKAGE
7907
--------------------------------------------------------
7908
set define off;
7909
 
7910
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNDEPRECATE_PACKAGE" (
7911
    nPvId   IN PACKAGE_VERSIONS.PV_ID%TYPE,
7912
    nRtagId IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,
7913
    nPkgId  IN DEPRECATED_PACKAGES.PKG_ID%TYPE,
7914
    nUserId IN NUMBER)
7915
IS
7916
  ext      VARCHAR2(50);
7917
 
7918
BEGIN
7919
  --Extract the package extension
7920
  SELECT V_EXT INTO ext
7921
  FROM PACKAGE_VERSIONS
7922
  WHERE PV_ID = nPvId;
7923
 
7924
    -- Undeprecate Package
7925
    DELETE
7926
    FROM DEPRECATED_PACKAGES
7927
    WHERE RTAG_ID = nRtagId
7928
    AND PKG_ID    = nPkgId
7929
    AND NVL(V_EXT,'.NULL') = NVL(ext,'.NULL');
7930
 
7931
    -- Update Release Contents entry
7932
    -- Process PackageName.ext for the package. ie: Allow multiple
7933
    -- versions of the package to be in the release.
7934
 
7935
    UPDATE RELEASE_CONTENT
7936
    SET
7937
      DEPRECATED_STATE = NULL
7938
    WHERE RTAG_ID      = nRtagId
7939
    AND PV_ID IN (
7940
      SELECT PV.PV_ID
7941
      FROM PACKAGE_VERSIONS PV
7942
      WHERE PV.PKG_ID   = nPkgId
7943
      AND NVL(PV.V_EXT, '.NULL') = NVL(ext,'.NULL')
7944
      );
7945
 
7946
  -- Update consumers of the package
7947
  --  Update ALL packages in the Release
7948
 
7949
  REBUILD_DEPRECATE_STATE(nRtagId);
7950
 
7951
END Undeprecate_Package;
7952
 
7953
/
7954
--------------------------------------------------------
7955
--  DDL for Procedure UNLOCK_PACKAGE
7956
--------------------------------------------------------
7957
set define off;
7958
 
7959
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNLOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
7960
											 nUserId IN NUMBER ) IS
1373 dpurdie 7961
/* ---------------------------------------------------------------------------
6999 dpurdie 7962
    Author: Rupesh Solanki
7963
 
7964
	Version: 4.0
1373 dpurdie 7965
   --------------------------------------------------------------------------- */
6999 dpurdie 7966
   STATE CHAR;
1373 dpurdie 7967
 
7968
BEGIN
7969
 
6999 dpurdie 7970
	SELECT DLOCKED INTO STATE
7971
	FROM PACKAGE_VERSIONS
7972
	WHERE PV_ID = nPvId;
6031 dpurdie 7973
 
6999 dpurdie 7974
	IF STATE = 'A' THEN --It was made official for autobuilds
7975
		-- Unlock Package
7976
		UPDATE PACKAGE_VERSIONS pv SET
7977
		pv.DLOCKED = 'P'
7978
		WHERE pv.PV_ID = nPvId;
7979
	ELSE
7980
		-- Unlock Package
7981
		UPDATE PACKAGE_VERSIONS pv SET
7982
		pv.DLOCKED = 'N'
7983
		WHERE pv.PV_ID = nPvId;
6031 dpurdie 7984
 
1373 dpurdie 7985
	END IF;
7986
 
6999 dpurdie 7987
    /* LOG ACTION */
7988
   	Log_Action ( nPvId, 'unlock_package', nUserId );
4040 dpurdie 7989
 
6999 dpurdie 7990
END Unlock_Package;
7991
 
7992
/
4040 dpurdie 7993
--------------------------------------------------------
6999 dpurdie 7994
--  DDL for Procedure UNRIPPLE_PACKAGE
4040 dpurdie 7995
--------------------------------------------------------
6999 dpurdie 7996
set define off;
4040 dpurdie 7997
 
6999 dpurdie 7998
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE" (
7999
        sPvIdList IN VARCHAR2,
8000
        nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
8001
        nUserId IN NUMBER
8002
    ) IS
3959 dpurdie 8003
/* ---------------------------------------------------------------------------
6999 dpurdie 8004
    Version: 4.1
3959 dpurdie 8005
   --------------------------------------------------------------------------- */
6999 dpurdie 8006
 
8007
    oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
8008
 
3959 dpurdie 8009
BEGIN
4040 dpurdie 8010
 
6999 dpurdie 8011
    IF (sPvIdList IS NULL) THEN
8012
        RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
8013
    END IF;
8014
 
8015
    oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
8016
 
8017
    -- UnRipple Package
8018
    INSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID )
8019
    SELECT nRtagId, pv.PV_ID
8020
    FROM PACKAGE_VERSIONS pv
8021
    WHERE pv.PV_ID IN (
8022
        SELECT *
8023
        FROM TABLE (
8024
            CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t )
8025
        )
8026
    );
8027
 
8028
    /* LOG ACTION */
8029
    Log_Action_Bulk ( sPvIdList, 'unripple_package', nUserId );
8030
 
8031
END UnRipple_Package;
8032
 
8033
/
4040 dpurdie 8034
--------------------------------------------------------
6999 dpurdie 8035
--  DDL for Procedure UNRIPPLE_PACKAGE_INDIRECT
4040 dpurdie 8036
--------------------------------------------------------
6999 dpurdie 8037
set define off;
4040 dpurdie 8038
 
6999 dpurdie 8039
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE_INDIRECT" (
8040
        nPvId IN NUMBER,
8041
        nRtagId IN NUMBER,
8042
        nUserId IN NUMBER,
8043
        nrootCausePvId IN NUMBER,
8044
        srootCause IN VARCHAR2,
8045
        srootFile IN VARCHAR2
8046
    ) IS
8047
    ReleaseLocation VARCHAR2(4000);
8048
BEGIN
8049
 
8050
    -- UnRipple Package
8051
    delete from do_not_ripple where rtag_id=nRtagId and pv_id=nPvId;
8052
    INSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID, ROOT_PV_ID, ROOT_CAUSE, ROOT_FILE ) values (nRtagId, nPvId, nrootCausePvId, srootCause, srootFile);
8053
 
8054
    -- Do not log if RootCause is -2
8055
    IF nrootCausePvId IS NOT NULL AND nrootCausePvId = -2 THEN
8056
      RETURN;
8057
    END IF;
8058
 
8059
    /* LOG ACTION */
8060
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
8061
              FROM PROJECTS proj,
8062
                   RELEASE_TAGS rt
8063
             WHERE rt.RTAG_ID = nRtagId
8064
               AND rt.PROJ_ID = proj.PROJ_ID;
8065
 
8066
    /* LOG ACTION */
8067
    Log_Action ( nPvId, 'unripple_package', nUserId, 'Location: '|| ReleaseLocation );
8068
 
8069
END UnRipple_Package_Indirect;
8070
 
8071
/
8072
--------------------------------------------------------
8073
--  DDL for Procedure UPDATE_ADDITIONAL_NOTE
8074
--------------------------------------------------------
8075
set define off;
8076
 
8077
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_ADDITIONAL_NOTE" ( pnNote_id IN NUMBER,
8078
													 pnPv_id IN NUMBER,
8079
                                                     psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,
8080
                                                     psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,
8081
                                                     pnUser_id IN NUMBER,
8082
                                                     outErrCode OUT NUMBER
8083
                                                    ) IS
3959 dpurdie 8084
/* ---------------------------------------------------------------------------
6999 dpurdie 8085
    Version: 3.0.1
3959 dpurdie 8086
   --------------------------------------------------------------------------- */
1373 dpurdie 8087
 
6999 dpurdie 8088
    newID NUMBER;
8089
 
8090
    /* Disallow duplicate Note Titles */
8091
	CURSOR an_duplicate_cur IS
8092
        SELECT COUNT(*) AS cnt_note
8093
          FROM ADDITIONAL_NOTES
8094
         WHERE pv_id = pnPv_id
8095
           AND note_id != pnNote_id
8096
           AND note_title = psNote_title;
8097
    an_duplicate_rec an_duplicate_cur%ROWTYPE;
8098
 
3959 dpurdie 8099
BEGIN
6999 dpurdie 8100
	outErrCode := -1;		-- Set default return error code to ERROR state
8101
 
8102
	OPEN an_duplicate_cur;
8103
    FETCH an_duplicate_cur INTO an_duplicate_rec;
8104
 
8105
    IF an_duplicate_rec.cnt_note < 1
3959 dpurdie 8106
    THEN
6999 dpurdie 8107
		--- Update Additional Note ---
8108
	    UPDATE ADDITIONAL_NOTES SET
8109
		       note_title = psNote_title,
8110
		       note_body = psNote_body,
7000 dpurdie 8111
		       mod_date = ora_sysdatetime,
6999 dpurdie 8112
		       mod_user = pnUser_id
8113
         WHERE note_id = pnNote_id
8114
           AND pv_id = pnPv_id;
8115
		outErrCode := 0;		-- Set return to SUCCESS
8116
	END IF;
8117
 
8118
	CLOSE an_duplicate_cur;
8119
END Update_Additional_Note;
8120
 
8121
/
8122
--------------------------------------------------------
8123
--  DDL for Procedure UPDATE_DEPRECATION_STATE
8124
--------------------------------------------------------
8125
set define off;
8126
 
8127
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_DEPRECATION_STATE" (nnrtag_id IN NUMBER) AS
8128
 
8129
recno NUMBER;
8130
 
8131
CURSOR deprecate_cur IS
8132
 
8133
SELECT rc.pv_id
8134
FROM release_content rc
8135
WHERE rtag_id = nnrtag_id
8136
 AND deprecated_state IN(7);
8137
 
8138
deprecate_rec deprecate_cur % rowtype;
8139
 
8140
BEGIN
8141
 
8142
  OPEN deprecate_cur;
8143
 
8144
  FETCH deprecate_cur
8145
  INTO deprecate_rec;
8146
 
8147
  WHILE deprecate_cur % FOUND
8148
  LOOP
8149
 
8150
    SELECT COUNT(*)
8151
    INTO recno
8152
    FROM package_dependencies pd,
8153
      release_content rc
8154
    WHERE pd.pv_id = deprecate_rec.pv_id
8155
     AND rc.pv_id = pd.dpv_id
8156
     AND rc.rtag_id = nnrtag_id
8157
     AND rc.deprecated_state IN(6,   7);
8158
 
8159
    IF recno = 0 THEN
8160
 
8161
      UPDATE release_content
8162
      SET pkg_id = NULL, deprecated_state = NULL
8163
      WHERE pv_id = deprecate_rec.pv_id
8164
       AND rtag_id = nnrtag_id;
8165
 
3959 dpurdie 8166
    END IF;
1373 dpurdie 8167
 
6999 dpurdie 8168
    FETCH deprecate_cur
8169
    INTO deprecate_rec;
8170
  END LOOP;
4040 dpurdie 8171
 
6999 dpurdie 8172
END;
8173
 
8174
/
4040 dpurdie 8175
--------------------------------------------------------
6999 dpurdie 8176
--  DDL for Procedure UPDATE_MISC_VIEW
4040 dpurdie 8177
--------------------------------------------------------
6999 dpurdie 8178
set define off;
4040 dpurdie 8179
 
6999 dpurdie 8180
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_MISC_VIEW" IS
8181
/******************************************************************************
8182
   NAME:       UPDATE_MISC_VIEW
8183
   PURPOSE:
8184
 
8185
   REVISIONS:
8186
   Ver        Date        Author           Description
8187
   ---------  ----------  ---------------  ------------------------------------
8188
   1.0        16/03/2007          1. Created this procedure.
8189
 
8190
   NOTES:
8191
 
8192
   Automatically available Auto Replace Keywords:
8193
      Object Name:     UPDATE_MISC_VIEW
8194
      Sysdate:         16/03/2007
8195
      Date and Time:   16/03/2007, 8:56:29 AM, and 16/03/2007 8:56:29 AM
8196
      Username:         (set in TOAD Options, Procedure Editor)
8197
      Table Name:       (set in the "New PL/SQL Object" dialog)
8198
 
8199
******************************************************************************/
8200
   CURSOR view_cur /*Create a record set to store the ripple data*/
8201
   IS
8202
   	 SELECT pkg.pkg_id, rc.base_view_id
8203
	 FROM package_versions pv, packages pkg, release_content rc
8204
	 where rc.rtag_id = 2362
8205
	 and rc.pv_id = pv.pv_id
8206
	 and pv.pkg_id = pkg.pkg_id;
8207
   view_rec   view_cur%ROWTYPE;
8208
 
8209
 
8210
 
8211
BEGIN
8212
   OPEN view_cur;
8213
 
8214
   FETCH view_cur
8215
    INTO view_rec;
8216
 
8217
   WHILE view_cur%FOUND
8218
   LOOP
8219
 
8220
 
8221
	   update release_content
8222
	   set base_view_id = view_rec.base_view_id
8223
	   where rtag_id = 8027
8224
	   and pv_id IN
8225
	   (
8226
	   	select pv.pv_id from release_content rc, package_versions pv
8227
		where rc.rtag_id = 8027
8228
		and pv.pv_id = rc.pv_id
8229
		and pv.pkg_id = view_rec.pkg_id
8230
 
8231
	   );
8232
 
8233
 
8234
 
8235
 
8236
 
8237
 
8238
 
8239
 
8240
 
8241
   FETCH view_cur
8242
   		 INTO view_rec;
8243
   END LOOP;
8244
 
8245
 
8246
 
8247
 
8248
 
8249
END UPDATE_MISC_VIEW;
8250
 
8251
/
8252
--------------------------------------------------------
8253
--  DDL for Procedure UPDATE_PACKAGE_DEPENDENCY
8254
--------------------------------------------------------
8255
set define off;
8256
 
8257
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_DEPENDENCY" ( NNpv_id IN NUMBER,
8258
                                                        SSdep_name IN PACKAGES.pkg_name%TYPE,
8259
                                                        SSdep_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
8260
                                                        CCbuild_type IN PACKAGE_DEPENDENCIES.build_type%TYPE,
8261
                                                        NNuser_id IN NUMBER,
8262
                                                        NNdelete_old_dependency IN NUMBER
8263
                                                       ) IS
3959 dpurdie 8264
/* ---------------------------------------------------------------------------
6999 dpurdie 8265
    Version: 3.3
3959 dpurdie 8266
   --------------------------------------------------------------------------- */
6999 dpurdie 8267
 
8268
    retPV_ID NUMBER;
8269
    SSV_EXT PACKAGE_VERSIONS.v_ext%TYPE;
8270
	DepIsPatch	PACKAGE_VERSIONS.is_patch%TYPE;
8271
    PvIsPatch	PACKAGE_VERSIONS.is_patch%TYPE;
8272
    NNpkg_id NUMBER;
8273
    NNdpkg_id NUMBER;
8274
 
3959 dpurdie 8275
BEGIN
6999 dpurdie 8276
    --- Seed database with package_name and version if required ---
8277
    Seed_Package_Names_Versions ( SSdep_name, SSdep_version, NNuser_id, retPV_ID );
1373 dpurdie 8278
 
6999 dpurdie 8279
    -- get v_ext,pkg_id of current dependency
8280
    SELECT v_ext, pkg_id, is_patch INTO SSV_EXT, NNdpkg_id, DepIsPatch
8281
      FROM PACKAGE_VERSIONS
8282
     WHERE pv_id = retPV_ID;
4040 dpurdie 8283
 
6999 dpurdie 8284
    -- get pkg_id of parent package
8285
    SELECT pkg_id, is_patch INTO NNpkg_id, PvIsPatch
8286
      FROM PACKAGE_VERSIONS
8287
     WHERE pv_id = NNpv_id;
8288
 
8289
 
8290
	IF ( (PvIsPatch IS NULL) AND (DepIsPatch IS NULL) ) OR
8291
    	( (PvIsPatch IS NOT NULL) )THEN
8292
 
8293
	    IF NNdelete_old_dependency = 1 THEN
8294
	        /* Used for CUSTOM dependency add/edit */
8295
 
8296
	        --- Remove old dependency ---
8297
            IF (PvIsPatch IS NULL) THEN
8298
            	-- Do it for Packages
8299
		        DELETE FROM PACKAGE_DEPENDENCIES
8300
		         WHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN
8301
		            (
8302
		            SELECT dep.*
8303
		              FROM PACKAGE_DEPENDENCIES dep,
8304
		                   PACKAGE_VERSIONS dpv,
8305
		                   PACKAGE_VERSIONS pv
8306
		             WHERE dep.dpv_id = dpv.pv_id
8307
		               AND dep.pv_id = NNpv_id
8308
		               AND pv.pv_id = retPV_ID
8309
		               AND dpv.pkg_id = pv.pkg_id
8310
		               AND NVL(dpv.v_ext, '|LINK_A_NULL|') = NVL(SSV_EXT, '|LINK_A_NULL|')
8311
		            );
8312
            ELSE
8313
            	-- Do it for Patches
8314
                DELETE FROM PACKAGE_DEPENDENCIES
8315
		         WHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN
8316
		            (
8317
		            SELECT dep.*
8318
		              FROM PACKAGE_DEPENDENCIES dep
8319
		             WHERE dep.dpv_id = retPV_ID
8320
		               AND dep.pv_id = NNpv_id
8321
		            );
8322
			END IF;
8323
 
8324
	    END IF;
8325
 
8326
	    /* NOTE: for JATS, ANTS dependency update, it is expected that all dependencies are removed. */
8327
 
8328
	    --- Add new dependency ---
8329
	    INSERT INTO PACKAGE_DEPENDENCIES ( pv_id, dpv_id, pkg_id, dpkg_id, build_type )
8330
	    VALUES ( NNpv_id, retPV_ID, NNpkg_id, NNdpkg_id, CCbuild_type );
8331
 
8332
	END IF;
8333
 
8334
END Update_Package_Dependency;
8335
 
8336
/
4040 dpurdie 8337
--------------------------------------------------------
6999 dpurdie 8338
--  DDL for Procedure UPDATE_PACKAGE_STATES
4040 dpurdie 8339
--------------------------------------------------------
6999 dpurdie 8340
set define off;
4040 dpurdie 8341
 
6999 dpurdie 8342
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_STATES" ( NNrtag_id IN NUMBER,
8343
                                                    NNsession_num IN NUMBER ) IS
8344
/* =============  STATE RULES =================== */
8345
/*
8346
   MNR   MRR   MN   MR    |   pkg_state
8347
   ------------------------------------
8348
 
8349
 
8350
 
8351
 
8352
   ------------------------------------
8353
 
8354
 
8355
 
8356
 
8357
   ------------------------------------
8358
    1     0     0     0   |      MINOR_READY
8359
    1     0     0     1   |      MAJOR
8360
    1     0     1     0   |      MINOR
8361
    1     0     1     1   |      MAJOR
8362
   ------------------------------------
8363
    1     1     0     0   |      MAJOR_READY
8364
    1     1     0     1   |      MAJOR
8365
    1     1     1     0   |      MAJOR
8366
    1     1     1     1   |      MAJOR
8367
   ------------------------------------
8368
*/
8369
BEGIN
8370
    /*----------------------------------------------
8371
    ||              MINOR READY
8372
    */----------------------------------------------
8373
 
8374
    UPDATE release_content
8375
       SET pkg_state = 4
8376
     WHERE rtag_id = NNrtag_id
8377
       AND pv_id IN
8378
           (
8379
           SELECT DISTINCT pv_id
8380
           FROM temp_env_states
8381
           WHERE session_num = NNsession_num
8382
             AND level_num = 1
8383
             AND tes_state = 2
8384
           );
8385
 
8386
    /*----------------------------------------------
8387
    ||              MAJOR READY
8388
    */----------------------------------------------
8389
    UPDATE release_content
8390
       SET pkg_state = 3
8391
     WHERE rtag_id = NNrtag_id
8392
       AND pv_id IN
8393
           (
8394
           SELECT DISTINCT pv_id
8395
           FROM temp_env_states
8396
           WHERE session_num = NNsession_num
8397
             AND level_num = 1
8398
             AND tes_state IN (0,1)
8399
           );
8400
 
8401
    /*----------------------------------------------
8402
    ||                MINOR
8403
    */----------------------------------------------
8404
    UPDATE release_content
8405
       SET pkg_state = 2
8406
     WHERE rtag_id = NNrtag_id
8407
       AND pv_id IN
8408
           (
8409
           SELECT DISTINCT pv_id
8410
            FROM temp_env_states
8411
            WHERE session_num = NNsession_num
8412
              AND level_num >= 2
8413
              AND tes_state = 2
8414
            MINUS
8415
           SELECT pv_id
8416
             FROM release_content
8417
            WHERE rtag_id = NNrtag_id
8418
              AND pkg_state = 3
8419
           );
8420
 
8421
    /*----------------------------------------------
8422
    ||                MAJOR
8423
    */----------------------------------------------
8424
    UPDATE release_content
8425
       SET pkg_state = 1
8426
     WHERE rtag_id = NNrtag_id
8427
       AND pv_id IN
8428
           (
8429
           SELECT DISTINCT pv_id
8430
           FROM temp_env_states
8431
           WHERE session_num = NNsession_num
8432
             AND level_num >= 2
8433
             AND tes_state IN (0,1)
8434
           /* MAJOR EXCEPTION - When package has Major Ready and Minor */
8435
           UNION
8436
           SELECT DISTINCT tes.pv_id
8437
           FROM temp_env_states tes,
8438
                release_content rc
8439
           WHERE tes.session_num = NNsession_num
8440
             AND tes.level_num >= 2
8441
             AND tes.tes_state = 2
8442
             AND rtag_id = NNrtag_id
8443
             AND rc.pv_id = tes.pv_id
8444
             AND rc.pkg_state = 3
8445
           );
8446
 
8447
    /*----------------------------------------------
8448
    ||                 OK
8449
    */----------------------------------------------
8450
    UPDATE release_content
8451
       SET pkg_state = 0
8452
     WHERE rtag_id = NNrtag_id
8453
       AND pv_id IN
8454
           (
8455
           SELECT rc.pv_id
8456
             FROM release_content rc
8457
            WHERE rc.rtag_id = NNrtag_id
8458
              AND NOT rc.pv_id IN
8459
                    (
8460
                     SELECT DISTINCT pv_id
8461
                     FROM temp_env_states WHERE session_num = NNsession_num
8462
                    )
8463
           );
8464
 
8465
      Update_Deprecation_State (NNrtag_id);
8466
 
8467
    /*----------------------------------------------
8468
    ||              PEGGED VERSIONS DEPENDENT
8469
    */----------------------------------------------
8470
    UPDATE release_content
8471
       SET pkg_state = 10
8472
     WHERE rtag_id = NNrtag_id
8473
       AND pv_id IN
8474
           (
8475
           SELECT DISTINCT pv_id
8476
           FROM pegged_versions pegv
8477
           WHERE pegv.rtag_id = NNrtag_id
8478
           );
8479
 
8480
    /*----------------------------------------------
8481
    ||              ADVISORY RIPPLE
8482
    */----------------------------------------------
8483
    UPDATE release_content
8484
       SET pkg_state = 8
8485
     WHERE rtag_id = NNrtag_id
8486
       AND pv_id IN
8487
           (
8488
           SELECT DISTINCT pv_id
8489
           FROM advisory_ripple ar
8490
           WHERE ar.rtag_id = NNrtag_id
8491
           )
8492
       AND pv_id IN
8493
           (
8494
           SELECT DISTINCT pv_id
8495
           FROM release_content rc
8496
           WHERE rc.rtag_id = NNrtag_id
8497
           );
8498
 
8499
    /*----------------------------------------------
8500
    ||              SDK Imported
8501
    */----------------------------------------------
8502
    UPDATE release_content
8503
       SET pkg_state = 11
8504
     WHERE rtag_id = NNrtag_id
8505
       AND sdktag_id is not null;
8506
 
8507
   /*----------------------------------------------
8508
    ||              UnBuildable
8509
    */----------------------------------------------
8510
    UPDATE release_content
8511
       SET pkg_state = 13
8512
     WHERE rtag_id = NNrtag_id
8513
       AND pv_id in (select pv_id from temp_env_states WHERE session_num = NNsession_num AND build_type = 'U');
8514
 
8515
END Update_Package_States;
8516
 
8517
/
8518
--------------------------------------------------------
8519
--  DDL for Procedure UPDATE_PROCESSES
8520
--------------------------------------------------------
8521
set define off;
8522
 
8523
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PROCESSES" 
3959 dpurdie 8524
IS
6999 dpurdie 8525
 
8526
proc_id NUMBER;
8527
/******************************************************************************
8528
   NAME:       DELETE_DO_NOT_RIPPLE
8529
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
8530
               IS RELEASED
8531
 
8532
   REVISIONS:
8533
   Ver        Date        Author           Description
8534
   ---------  ----------  ---------------  ------------------------------------
8535
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
8536
 
8537
   NOTES:
8538
 
8539
   Automatically available Auto Replace Keywords:
8540
      Object Name:     DELETE_DO_NOT_RIPPLE
8541
      Sysdate:         21/04/2006
8542
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
8543
      Username:         (set in TOAD Options, Procedure Editor)
8544
      Table Name:       (set in the "New PL/SQL Object" dialog)
8545
 
8546
******************************************************************************/
8547
   CURSOR ripple_cur
8548
   IS
8549
      select proc_id,  proc_name, run_as, pkg_owner, is_interface from processes;
8550
 
8551
   ripple_rec   ripple_cur%ROWTYPE;
8552
BEGIN
8553
   OPEN ripple_cur;
8554
 
8555
   FETCH ripple_cur
8556
    INTO ripple_rec;
8557
 
8558
   WHILE ripple_cur%FOUND
8559
   LOOP
8560
 
8561
 
8562
update deployment_manager.processes_config
8563
set proc_id = ripple_rec.proc_id
8564
where pkg_health_tag = ripple_rec.proc_name
8565
and cmd_interface IS NULL
8566
and pkg_owner IS NULL
8567
and is_interface IS NULL;
8568
 
8569
 
8570
      FETCH ripple_cur
8571
       INTO ripple_rec;
8572
   END LOOP;
8573
END UPDATE_PROCESSES;
8574
 
8575
/
8576
--------------------------------------------------------
8577
--  DDL for Procedure UPDATE_RUNTIME_DEPENDENCY
8578
--------------------------------------------------------
8579
set define off;
8580
 
8581
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_RUNTIME_DEPENDENCY" ( NNpv_id IN RUNTIME_DEPENDENCIES.pv_id%TYPE,
8582
				   	  		  						    NNrtd_id IN RUNTIME_DEPENDENCIES.rtd_id%TYPE,
8583
				   	  		  						    SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
8584
													    SSrtd_url IN RUNTIME_DEPENDENCIES.rtd_url%TYPE,
8585
													    SSrtd_comments IN RUNTIME_DEPENDENCIES.rtd_comments%TYPE,
8586
													    NNuser_id IN NUMBER ) IS
3959 dpurdie 8587
/* ---------------------------------------------------------------------------
6999 dpurdie 8588
    Version: 3.0.1
3959 dpurdie 8589
   --------------------------------------------------------------------------- */
6999 dpurdie 8590
 
8591
    retRTD_ID	NUMBER;
8592
	CURSOR rtd_cur IS
8593
	    SELECT pv.pkg_version, pkg.pkg_name
8594
		  FROM runtime_dependencies rtd,
8595
		       package_versions pv,
8596
			   packages pkg
8597
		 WHERE rtd.rtd_id = pv.pv_id
8598
		   AND pv.pkg_id = pkg.pkg_id
8599
		   AND rtd.pv_id = NNpv_id
8600
		   AND rtd.rtd_id = NNrtd_id;
8601
	   rtd_rec rtd_cur%ROWTYPE;
8602
 
8603
	CURSOR old_rtd_cur IS
8604
	    SELECT pv.pv_id
8605
		  FROM package_versions pv
8606
		 WHERE pv.pkg_id IN ( SELECT rtdpv.pkg_id
8607
		 	   			 	    FROM package_versions rtdpv
8608
							   WHERE rtdpv.pv_id = NNrtd_id )
8609
		   AND pv.pkg_version = SSrtd_version;
8610
	old_rtd_rec old_rtd_cur%ROWTYPE;
8611
 
8612
 
3959 dpurdie 8613
BEGIN
1373 dpurdie 8614
 
6999 dpurdie 8615
    -- Get current runtime dependency details
8616
	OPEN rtd_cur;
8617
    FETCH rtd_cur INTO rtd_rec;
4040 dpurdie 8618
 
6999 dpurdie 8619
 
8620
 
8621
 
8622
	IF rtd_rec.pkg_version != SSrtd_version THEN
8623
           -- Version has changed, hence create new runtime dependency --
8624
	    /* NOTE: You must create new version as updating just a version will affect
8625
		        all packages using this runtime dependency and user does not expect that.
8626
		        It is safer to create new version */
8627
		OPEN old_rtd_cur;
8628
		FETCH old_rtd_cur INTO old_rtd_rec;
8629
 
8630
 
8631
		IF old_rtd_cur%NOTFOUND
8632
		THEN
8633
			-- Version not found, hence Create New version --
8634
    		Seed_Package_Names_Versions ( rtd_rec.pkg_name, SSrtd_version, NNuser_id, retRTD_ID );
8635
 
8636
			-- Update runtime dependency table --
8637
			UPDATE runtime_dependencies SET
8638
				   rtd_id = retRTD_ID,
8639
				   rtd_url = SSrtd_url,
8640
				   rtd_comments = SSrtd_comments
8641
			 WHERE pv_id = NNpv_id
8642
			   AND rtd_id = NNrtd_id;
8643
 
8644
		ELSE
8645
			-- Update runtime dependency table --
8646
			UPDATE runtime_dependencies SET
8647
				   rtd_id = old_rtd_rec.pv_id,
8648
				   rtd_url = SSrtd_url,
8649
				   rtd_comments = SSrtd_comments
8650
			 WHERE pv_id = NNpv_id
8651
			   AND rtd_id = NNrtd_id;
8652
 
8653
		END IF;
8654
 
8655
 
8656
		CLOSE old_rtd_cur;
8657
 
8658
	ELSE
8659
		--  Version has not changed, hence update everithing except	version --
8660
		UPDATE runtime_dependencies SET
8661
			   rtd_url = SSrtd_url,
8662
			   rtd_comments = SSrtd_comments
8663
		 WHERE pv_id = NNpv_id
8664
		   AND rtd_id = NNrtd_id;
8665
 
8666
 
8667
 
8668
	END IF;
8669
 
8670
 
8671
	CLOSE rtd_cur;
8672
 
8673
END Update_Runtime_Dependency;
8674
 
8675
/
4040 dpurdie 8676
--------------------------------------------------------
6999 dpurdie 8677
--  DDL for Procedure UPDATE_UNIT_TEST
4040 dpurdie 8678
--------------------------------------------------------
6999 dpurdie 8679
set define off;
4040 dpurdie 8680
 
6999 dpurdie 8681
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST" ( nTest_id IN NUMBER,
8682
	   	  		  							   nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,
8683
											   nPv_id IN NUMBER,
8684
											   nUserId IN NUMBER,
8685
	                                           sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
8686
											   sNumof_test IN UNIT_TESTS.NUMOF_TEST%TYPE,
8687
	                                           sCompletion_date IN VARCHAR2,
8688
											   sDpkg_path IN VARCHAR2,
8689
											   enumTEST_TYPE_AUTOMATIC IN NUMBER,
8690
											   sResults IN VARCHAR2,
8691
											   outFileName OUT VARCHAR2
8692
                                              ) IS
8693
/* ---------------------------------------------------------------------------
8694
    Version: 3.1.0
8695
   --------------------------------------------------------------------------- */
4040 dpurdie 8696
 
6999 dpurdie 8697
   	FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
8698
 
8699
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
8700
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
8701
 
8702
 
8703
BEGIN
8704
 
8705
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
8706
       	ResultsURL := sResults;
8707
       ELSE
8708
       	IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
8709
        	outFileName := FILENAME_PREFIX || nTest_id ||'_'|| sResults;
8710
    		ResultsAttachment := sDpkg_path || '/' || outFileName;
8711
           END IF;
8712
       END IF;
8713
 
8714
	--- Update Unit Test ---
8715
    UPDATE UNIT_TESTS SET
8716
           TEST_SUMMARY = sTest_summary,
8717
		   NUMOF_TEST = sNumof_test,
8718
           COMPLETION_DATE = TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
8719
		   COMPLETED_BY = nUserId,
8720
		   RESULTS_URL = ResultsURL,
8721
		   RESULTS_ATTACHMENT_NAME = ResultsAttachment
8722
     WHERE TEST_ID = nTest_id
8723
       AND PV_ID = nPv_id;
8724
 
8725
END Update_Unit_Test;
8726
 
8727
/
4040 dpurdie 8728
--------------------------------------------------------
6999 dpurdie 8729
--  DDL for Procedure UPDATE_UNIT_TEST_ACCEPTANCE
4040 dpurdie 8730
--------------------------------------------------------
6999 dpurdie 8731
set define off;
4040 dpurdie 8732
 
6999 dpurdie 8733
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST_ACCEPTANCE" ( pnTest_id IN NUMBER,
8734
														  pnPv_id IN NUMBER,
8735
					                                      sAccepted IN UNIT_TESTS.TEST_ACCEPTED%TYPE,
8736
														  sAcceptanceDate IN VARCHAR2,
8737
														  sAcceptedBy IN NUMBER,
8738
					                                      sReviewComments IN UNIT_TESTS.REVIEW_COMMENTS%TYPE,
8739
														  cUpdateAcceptedStateOnly IN CHAR
8740
					                                     ) IS
3959 dpurdie 8741
/* ---------------------------------------------------------------------------
8742
    Version: 3.0.0
8743
   --------------------------------------------------------------------------- */
1373 dpurdie 8744
 
8745
 
6999 dpurdie 8746
 
3959 dpurdie 8747
BEGIN
6999 dpurdie 8748
	IF cUpdateAcceptedStateOnly = 'Y'
8749
	THEN
8750
		--- Update Accepted State Only ---
8751
		IF ( sAccepted IS NULL )
8752
		THEN
8753
			-- Clear alleptance
8754
			UPDATE UNIT_TESTS SET
8755
		           TEST_ACCEPTED = NULL,
8756
		           ACCEPTANCE_DATE = NULL,
8757
				   ACCEPTED_BY = NULL,
8758
				   REVIEW_COMMENTS = NULL
8759
		     WHERE TEST_ID = pnTest_id
8760
		       AND PV_ID = pnPv_id;
1373 dpurdie 8761
 
6999 dpurdie 8762
	    ELSE
8763
			UPDATE UNIT_TESTS SET
8764
		           TEST_ACCEPTED = sAccepted,
8765
		           ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),
8766
				   ACCEPTED_BY = sAcceptedBy
8767
		     WHERE TEST_ID = pnTest_id
8768
		       AND PV_ID = pnPv_id;
6031 dpurdie 8769
 
6999 dpurdie 8770
		END IF;
6031 dpurdie 8771
 
8772
 
6999 dpurdie 8773
	ELSE
8774
		--- Update Unit Test Acceptance ---
8775
	    UPDATE UNIT_TESTS SET
8776
	           TEST_ACCEPTED = sAccepted,
8777
			   REVIEW_COMMENTS = sReviewComments,
8778
	           ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),
8779
			   ACCEPTED_BY = sAcceptedBy
8780
	     WHERE TEST_ID = pnTest_id
8781
	       AND PV_ID = pnPv_id;
4040 dpurdie 8782
 
6999 dpurdie 8783
	END IF;
8784
 
8785
END Update_Unit_Test_Acceptance;
8786
 
8787
/
4040 dpurdie 8788
--------------------------------------------------------
8789
--  DDL for Package PK_APP_UTILS
8790
--------------------------------------------------------
8791
 
5172 dpurdie 8792
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_APP_UTILS" IS
1373 dpurdie 8793
/*
8794
------------------------------
8795
||  Last Modified:  S.Vukovic
8796
||  Modified Date:  26/Apr/2005
8797
||  Spec Version:   1.0
8798
------------------------------
8799
*/
8800
 
8801
	TYPE typeCur IS REF CURSOR;
8802
 
8803
    /*================================================================================================*/
8804
 
8805
	PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur);
8806
 
8807
	/*================================================================================================*/
8808
 
8809
END PK_APP_UTILS;
4040 dpurdie 8810
 
1374 dpurdie 8811
/
4040 dpurdie 8812
 
6999 dpurdie 8813
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_APP_UTILS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 8814
--------------------------------------------------------
6999 dpurdie 8815
--  DDL for Package PK_BLATAPI
8816
--------------------------------------------------------
8817
 
8818
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_BLATAPI" 
8819
IS
8820
 
8821
   /*================================================================================================*/
8822
   PROCEDURE add_pkg_replica (
8823
      sdisplay_name          IN   VARCHAR2,
8824
      sserver_name           IN   VARCHAR2,
8825
      sdescription           IN   VARCHAR2,
8826
      sactive                IN   CHAR,
8827
      smode                  IN   CHAR
8828
   );
8829
 
8830
   /*================================================================================================*/
8831
   PROCEDURE delete_pkg_replica (sserver_id_list IN VARCHAR2);
8832
 
8833
   /*================================================================================================*/
8834
   PROCEDURE update_pkg_replica (
8835
      nserver_id             IN   NUMBER,
8836
      sdisplay_name          IN   VARCHAR2,
8837
      sserver_name           IN   VARCHAR2,
8838
      sdescription           IN   VARCHAR2,
8839
      sactive                IN   CHAR,
8840
      smode                  IN   CHAR
8841
   );
8842
 
8843
   /*================================================================================================*/
8844
   PROCEDURE set_pkg_replica_changed( nserver_id IN   NUMBER);
8845
 
8846
END PK_BLATAPI;
8847
 
8848
/
8849
--------------------------------------------------------
4040 dpurdie 8850
--  DDL for Package PK_BUILDAPI
8851
--------------------------------------------------------
8852
 
5172 dpurdie 8853
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_BUILDAPI" 
1373 dpurdie 8854
IS
8855
   /*================================================================================================*/
8856
   PROCEDURE add_product_component (
8857
      npvid           IN   NUMBER,
8858
      sosname         IN   VARCHAR2,
8859
      sorigfilepath   IN   VARCHAR2,
8860
      sfilename       IN   VARCHAR2,
8861
      sdestfilepath   IN   VARCHAR2,
8862
      nbytesize       IN   NUMBER,
8863
      scrccksum       IN   VARCHAR2
8864
   );
8865
 
8866
   PROCEDURE remove_all_product_components (
8867
      npvid     IN   NUMBER,
8868
      sosname   IN   VARCHAR2
8869
   );
8870
 
8871
   /*================================================================================================*/
8872
   FUNCTION get_osid (sosname IN VARCHAR2)
8873
      RETURN NUMBER;
8874
 
4308 dpurdie 8875
  /*================================================================================================*/
8876
    PROCEDURE update_build_service_info (
1373 dpurdie 8877
      sdatabaseserver   IN   VARCHAR2,
8878
      sarchiveserver    IN   VARCHAR2,
8879
      smailserver       IN   VARCHAR2,
8880
      smailsender       IN   VARCHAR2,
4211 dpurdie 8881
      faultmlist        IN   VARCHAR2,
1373 dpurdie 8882
      sdiskspace        IN   VARCHAR2,
6600 dpurdie 8883
      ssbommanagement   IN   VARCHAR2,
8884
      lxrserver         IN   VARCHAR2
1373 dpurdie 8885
   );
8886
 
8887
   /*================================================================================================*/
4040 dpurdie 8888
   PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2, sgbeclass IN NUMBER);
1373 dpurdie 8889
 
8890
   /*================================================================================================*/
8891
   PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER);
8892
 
8893
   /*================================================================================================*/
4040 dpurdie 8894
   PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2, sgbeclass IN NUMBER);
1373 dpurdie 8895
 
4040 dpurdie 8896
  /*================================================================================================*/
8897
   PROCEDURE add_buildmachine (sbmvalue IN VARCHAR2);
8898
 
1373 dpurdie 8899
   /*================================================================================================*/
4040 dpurdie 8900
   PROCEDURE remove_buildmachine (nbm_id IN NUMBER);
8901
 
8902
   /*================================================================================================*/
8903
   PROCEDURE update_buildmachine (nbm_id IN NUMBER, sbmvalue IN VARCHAR2);
6031 dpurdie 8904
 
4040 dpurdie 8905
   /*================================================================================================*/
1373 dpurdie 8906
   PROCEDURE delete_daemon (srconidlist IN VARCHAR2);
6031 dpurdie 8907
 
1373 dpurdie 8908
   /*================================================================================================*/
4308 dpurdie 8909
   PROCEDURE remove_daemon (srconidlist IN VARCHAR2);
1373 dpurdie 8910
 
8911
   /*================================================================================================*/
8912
   PROCEDURE insert_schedule_info (
8913
      dschedulepause     IN   DATE,
8914
      dscheduleresume    IN   DATE,
8915
      crepeat            IN   VARCHAR2,
8916
      cindefinitepause   IN   VARCHAR2
8917
   );
8918
 
8919
   /*================================================================================================*/
8920
   PROCEDURE delete_schedule (nscheduleid IN NUMBER);
8921
 
8922
   /*================================================================================================*/
8923
   PROCEDURE set_infinite_pause;
8924
 
8925
   /*================================================================================================*/
8926
   PROCEDURE set_resume;
8927
 
8928
   /*================================================================================================*/
8929
   PROCEDURE delete_out_of_date_schedule;
8930
 
8931
   /*================================================================================================*/
8932
   PROCEDURE set_daemon_resume (nrconid IN NUMBER);
8933
 
8934
   /*================================================================================================*/
8935
   PROCEDURE set_daemon_pause (nrconid IN NUMBER);
8936
 
8937
   /*================================================================================================*/
8938
   PROCEDURE set_daemon_disable (nrconid NUMBER);
8939
 
8940
   /*================================================================================================*/
8941
   PROCEDURE set_daemon_states (nrtagid NUMBER, nstate NUMBER);
8942
 
8943
   /*================================================================================================*/
8944
   PROCEDURE mark_daemon_inst_in_progress( nInstId IN NUMBER );
8945
   /*================================================================================================*/
8946
   PROCEDURE mark_daemon_inst_completed( nInstId IN NUMBER );
8947
   /*================================================================================================*/
8948
   FUNCTION get_daemon_inst(
8949
      nRtag_id IN NUMBER,
8950
      nInst_id IN OUT NUMBER,
8951
      nOp_code IN OUT NUMBER,
8952
      nPv_id OUT NUMBER,
8953
      nUser_id OUT NUMBER,
7039 dpurdie 8954
      nInProgress OUT NUMBER,
8955
      bExpired IN NUMBER default 1
1373 dpurdie 8956
   ) RETURN NUMBER;
7039 dpurdie 8957
 
1373 dpurdie 8958
   /*================================================================================================*/
8959
   PROCEDURE cleanup_stranded_daemon_insts;
8960
   /*================================================================================================*/
8961
   PROCEDURE insert_daemon_inst(
8962
      nOp_code IN NUMBER,
8963
      nRtag_id IN NUMBER,
8964
      nPv_id IN NUMBER,
8965
      nSchedDate IN DATE,
8966
      nRepeatSecs IN NUMBER,
8967
      nAddedDate IN DATE,
8968
      nUser_id IN NUMBER
8969
   );
8970
   /*================================================================================================*/
8971
   PROCEDURE del_daemon_inst( nInstId IN NUMBER );
8972
   /*================================================================================================*/
8973
   PROCEDURE del_daemon_inst_by_rtag_pvid(
8974
      nOp_code IN NUMBER,
8975
      nRtag_id IN NUMBER,
8976
      nPv_id IN NUMBER
8977
   );
8978
   /*================================================================================================*/
8979
   PROCEDURE update_daemon_inst(
8980
      nInstId IN NUMBER,
8981
      nOp_code IN NUMBER,
8982
      nRtag_id IN NUMBER,
8983
      nPv_id IN NUMBER,
8984
      nSchedDate IN DATE,
8985
      nRepeatSecs IN NUMBER,
8986
      nAddedDate IN DATE,
8987
      nUser_id IN NUMBER
8988
   );
8989
   /*================================================================================================*/
8990
   FUNCTION daemon_ops_for_rtag_pvid(
8991
      nRtag_id IN NUMBER,
8992
      nPv_id IN NUMBER
8993
   ) RETURN VARCHAR2;
8994
   /*================================================================================================*/
8995
   FUNCTION daemon_ops_for_rtag(
8996
      nRtag_id IN NUMBER
8997
   ) RETURN VARCHAR2;
8998
   /*================================================================================================*/
8999
   PROCEDURE add_daemon_config (
9000
      nrtagid           IN   NUMBER,
9001
      nbmcon_id         IN   NUMBER,
9002
      sdaemon_mode      IN   VARCHAR2,
9003
      sgbebuildfilter   IN   VARCHAR2
9004
   );
9005
   /*================================================================================================*/
9006
   PROCEDURE update_daemon_config (
9007
      nrconid           IN   NUMBER,
9008
      nbmcon_id         IN   NUMBER,
9009
      sdaemon_mode      IN   VARCHAR2,
9010
      sgbebuildfilter   IN   VARCHAR2
9011
   );
9012
 
4308 dpurdie 9013
 /*================================================================================================*/
9014
   PROCEDURE duplicate_daemon_config (
9015
      nrtagid           IN   NUMBER,
9016
      nbmcon_id         IN   NUMBER,
9017
      sdaemonhostname   IN   VARCHAR2,
9018
      ngbe_id           IN   NUMBER,
9019
      sdaemon_mode      IN   VARCHAR2,
9020
      sgbebuildfilter   IN   VARCHAR2
9021
   );
6031 dpurdie 9022
 
1373 dpurdie 9023
   /*================================================================================================*/
9024
   PROCEDURE add_build_machine (
9025
      sdisplay_name          IN   VARCHAR2,
9026
      smachine_hostname      IN   VARCHAR2,
9027
      ngbeid                 IN   NUMBER,
5172 dpurdie 9028
      sdescription           IN   VARCHAR2,
9029
      sactive                IN CHAR
1373 dpurdie 9030
   );
9031
   /*================================================================================================*/
9032
   PROCEDURE delete_build_machine (sbmcon_id_list IN VARCHAR2);
9033
   /*================================================================================================*/
9034
   PROCEDURE update_build_machine (
9035
      nbmcon_id              IN   NUMBER,
9036
      sdisplay_name          IN   VARCHAR2,
9037
      smachine_hostname      IN   VARCHAR2,
9038
      ngbeid                 IN   NUMBER,
5172 dpurdie 9039
      sdescription           IN   VARCHAR2,
9040
      sactive                IN CHAR
1373 dpurdie 9041
   );
4553 dpurdie 9042
   /*================================================================================================*/
9043
   PROCEDURE import_daemons ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER  );
5172 dpurdie 9044
   /*================================================================================================*/
5892 dpurdie 9045
   PROCEDURE set_finite_pause ( duration IN NUMBER  );
9046
   PROCEDURE set_build_plan (rtagId IN NUMBER, nStartIndex IN NUMBER, pvList IN VARCHAR2);
5172 dpurdie 9047
 
1373 dpurdie 9048
END pk_buildapi;
4040 dpurdie 9049
 
6999 dpurdie 9050
/
4040 dpurdie 9051
--------------------------------------------------------
9052
--  DDL for Package PK_ENVIRONMENT
9053
--------------------------------------------------------
9054
 
5172 dpurdie 9055
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_ENVIRONMENT" IS
1373 dpurdie 9056
/*
9057
------------------------------
3959 dpurdie 9058
||  Last Modified:  G.Huddy
9059
||  Modified Date:  28/May/2008
9060
||  Spec Version:   1.2
1373 dpurdie 9061
------------------------------
9062
*/
9063
 
3959 dpurdie 9064
	TYPE typeCur IS REF CURSOR;
9065
 
1373 dpurdie 9066
	/*================================================================================================*/
9067
 
3959 dpurdie 9068
	FUNCTION SELECT_ENVIRONMENT_AREA ( cDlock IN PACKAGE_VERSIONS.DLOCKED%TYPE ) RETURN NUMBER;
9069
	FUNCTION GET_PACKAGE_AREA ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
9070
	FUNCTION GET_VIEW_LOCATION ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5384 dpurdie 9071
	PROCEDURE ADD_PACKAGE ( PvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, imode IN   CHAR default NULL );
9072
	PROCEDURE ADD_PACKAGE_BULK ( PvIdList IN VARCHAR2, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, imode IN CHAR default NULL );
3959 dpurdie 9073
	PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9074
	FUNCTION REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, ForceRemove IN CHAR ) RETURN NUMBER;
9075
 
9076
	PROCEDURE GET_ENVIRONMENT_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
9077
	PROCEDURE GET_RELEASED_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
9078
	PROCEDURE GET_PENDING_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
9079
	PROCEDURE GET_WORK_IN_PROGRESS_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
9080
 
9081
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
9082
 
9083
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
9084
 
9085
 
9086
	PROCEDURE MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9087
	PROCEDURE MAKE_UNRELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9088
 
9089
	PROCEDURE MAKE_PENDING ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
7039 dpurdie 9090
	PROCEDURE MAKE_APPROVED ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, sched in VARCHAR2 default NULL );
3959 dpurdie 9091
	PROCEDURE MAKE_REJECT ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9092
	PROCEDURE APPROVE_MERGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9093
 
9094
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
9095
 
9096
	PROCEDURE FIND_PACKAGE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, RecordSet OUT typeCur );
9097
	PROCEDURE FIND_FILE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, nPageSize IN NUMBER, RecordSet OUT typeCur );
9098
 
9099
	PROCEDURE AUTO_MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, VExt IN
9100
							 PACKAGE_VERSIONS.V_EXT%TYPE, SSV_EXT IN PACKAGE_VERSIONS.V_EXT%TYPE,
9101
							 CloneFromPvId IN NUMBER );
9102
 
9103
	PROCEDURE GET_PRODRELEASE_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
9104
 
9105
	PROCEDURE GET_INTEGRATION_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
9106
 
9107
	PROCEDURE GET_TEST_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
9108
 
9109
	PROCEDURE GET_DEPLOY_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
9110
 
9111
	PROCEDURE GET_REJECT_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
1373 dpurdie 9112
	/*================================================================================================*/
3959 dpurdie 9113
 
9114
END PK_ENVIRONMENT;
4040 dpurdie 9115
 
6999 dpurdie 9116
/
4040 dpurdie 9117
--------------------------------------------------------
9118
--  DDL for Package PK_LICENCING
9119
--------------------------------------------------------
9120
 
5172 dpurdie 9121
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_LICENCING" IS
3959 dpurdie 9122
/*
9123
------------------------------
9124
||  Last Modified:  G.Huddy
9125
||  Modified Date:  19/Aug/2008
9126
||  Spec Version:   1.0
9127
------------------------------
9128
*/
9129
 
9130
   TYPE typeCur IS REF CURSOR;
9131
 
9132
    /*================================================================================================*/
9133
   PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER );
9134
   PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER );
9135
   PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER );
9136
   FUNCTION  IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER;
9137
   PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER );
9138
   /*================================================================================================*/
9139
 
9140
END PK_LICENCING;
4040 dpurdie 9141
 
6999 dpurdie 9142
/
4040 dpurdie 9143
--------------------------------------------------------
9144
--  DDL for Package PK_PACKAGE
9145
--------------------------------------------------------
9146
 
5172 dpurdie 9147
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PACKAGE" 
1373 dpurdie 9148
IS
9149
/*
9150
------------------------------
3959 dpurdie 9151
||  Last Modified:  Jeremy Tweddle
9152
||  Modified Date:  24/08/2007
1373 dpurdie 9153
||
9154
------------------------------
9155
*/
9156
   TYPE typecur IS REF CURSOR;
6031 dpurdie 9157
 
5502 dpurdie 9158
   /*
9159
    * Carriage-return line-feed character sequence.
9160
    */
9161
   CRLF CONSTANT VARCHAR2(2 CHAR) := unistr('\000D\000A');
1373 dpurdie 9162
 
9163
/*================================================================================================*/
9164
   PROCEDURE new_version (
9165
      nlastpvid                   IN       NUMBER,
9166
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
9167
      cbuildtype                  IN       CHAR,
4211 dpurdie 9168
      cchangetype                 IN       CHAR,
1373 dpurdie 9169
      nsettopvid                  IN       NUMBER DEFAULT NULL,
9170
      nrtagid                     IN       NUMBER,
9171
      nuserid                     IN       NUMBER,
9172
      enumissues_state_imported   IN       NUMBER,
9173
      returnpvid                  OUT      NUMBER
9174
   );
9175
 
9176
   PROCEDURE change_state (
9177
      pvid       IN   NUMBER,
9178
      newstate   IN   package_versions.dlocked%TYPE,
9179
      userid     IN   NUMBER
9180
   );
9181
 
9182
   PROCEDURE new_patch (
9183
      snewpatchversion   IN       package_versions.pkg_version%TYPE,
9184
      nparentpvid        IN       NUMBER,
9185
      spatchidlist       IN       VARCHAR2,
9186
      nuserid            IN       NUMBER,
9187
      returnpatchid      OUT      NUMBER
9188
   );
9189
 
9190
   PROCEDURE obsolete_patch (
9191
      patchid            IN   NUMBER,
9192
      isobsolete         IN   CHAR,
9193
      obsoletecomments   IN   VARCHAR2,
9194
      userid             IN   NUMBER
9195
   );
9196
 
9197
   PROCEDURE obsolete_patches (
9198
      spatchidlist       IN   VARCHAR2,
9199
      isobsolete         IN   CHAR,
9200
      obsoletecomments   IN   VARCHAR2,
9201
      userid             IN   NUMBER
9202
   );
9203
 
9204
   PROCEDURE destroy_package (
9205
      pvid               IN       NUMBER,
9206
      overridewarnings   IN       CHAR DEFAULT 'N',
9207
      problemstring      OUT      VARCHAR2
9208
   );
6031 dpurdie 9209
 
9210
   PROCEDURE destroy_package_extended (
9211
      pvid               IN       NUMBER,
9212
      rtagid             IN       NUMBER,
9213
      overridewarnings   IN       NUMBER DEFAULT 0,
9214
      RESULTS            OUT      SYS_REFCURSOR
9215
);
1373 dpurdie 9216
   PROCEDURE add_process (
9217
      nprocid         IN   processes.proc_id%TYPE,
9218
      shealthtag      IN   processes.proc_name%TYPE,
9219
      sprocdesc       IN   processes.proc_description%TYPE,
9220
      scmdinterface   IN   processes.run_as%TYPE,
9221
      spkgowner       IN   processes.pkg_owner%TYPE,
9222
      sisinterface    IN   processes.is_interface%TYPE,
9223
      npvid           IN   package_processes.pv_id%TYPE,
9224
      nuserid         IN   NUMBER
9225
   );
9226
 
9227
   PROCEDURE add_package_process (
9228
      nprocidlist   IN   VARCHAR2,
9229
      npvid         IN   package_processes.pv_id%TYPE,
9230
      nuserid       IN   NUMBER
9231
   );
9232
 
6031 dpurdie 9233
 
9234
 
1373 dpurdie 9235
   PROCEDURE remove_process (
9236
      nprocid   IN   package_processes.proc_id%TYPE,
9237
      npvid     IN   package_processes.pv_id%TYPE,
9238
      nuserid   IN   NUMBER
9239
   );
6031 dpurdie 9240
 
1373 dpurdie 9241
   PROCEDURE move_package (
9242
   	  npvid  			  IN package_versions.pv_id%TYPE,
9243
	  nrtagid 			  IN release_tags.rtag_id%TYPE,
9244
	  nnewrtagid 		  IN release_tags.rtag_id%TYPE,
6031 dpurdie 9245
	  nuserid			  IN NUMBER
9246
   );
9247
 
3959 dpurdie 9248
   PROCEDURE modify_product_state (
1373 dpurdie 9249
   	  npvid IN package_versions.pv_id%TYPE,
3959 dpurdie 9250
	  nrtagid IN release_tags.rtag_id%TYPE,
1373 dpurdie 9251
	  nstateid IN product_states.state_id%TYPE,
9252
	  nuserid IN NUMBER
9253
   );
6031 dpurdie 9254
 
3959 dpurdie 9255
   PROCEDURE add_code_review_url (
9256
        npvid           IN    NUMBER,
9257
        nprojid         IN    NUMBER,
9258
        surl            IN    VARCHAR2,
9259
        sreason         IN    VARCHAR2,
4553 dpurdie 9260
        ddateofreview   IN    VARCHAR2
3959 dpurdie 9261
   );
6031 dpurdie 9262
 
3959 dpurdie 9263
   PROCEDURE update_code_review_url (
9264
        ncrid           IN    NUMBER,
9265
        nprojid         IN    NUMBER,
9266
        surl            IN    VARCHAR2,
4553 dpurdie 9267
        sreason         IN    VARCHAR2,
9268
        ddateofreview   IN    VARCHAR2
3959 dpurdie 9269
   );
6031 dpurdie 9270
 
3959 dpurdie 9271
   PROCEDURE remove_code_review_url (
9272
        ncrid           IN    NUMBER
9273
   );
6600 dpurdie 9274
 
9275
   PROCEDURE SET_RIPPLE_STOP (
6999 dpurdie 9276
        nPVID IN RELEASE_CONTENT.PV_ID%TYPE,
9277
        nRtagId IN RELEASE_CONTENT.RTAG_ID%TYPE,
9278
        nUserId IN NUMBER,
9279
        cMode IN CHAR
9280
   );
9281
 
1373 dpurdie 9282
/*================================================================================================*/
3959 dpurdie 9283
END pk_package;
4040 dpurdie 9284
 
1374 dpurdie 9285
/
5892 dpurdie 9286
 
6031 dpurdie 9287
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 9288
  GRANT DEBUG ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 9289
--------------------------------------------------------
9290
--  DDL for Package PK_PLANNED
9291
--------------------------------------------------------
9292
 
5172 dpurdie 9293
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PLANNED" IS
1373 dpurdie 9294
/*
9295
------------------------------
9296
||  Last Modified:  G.Huddy
9297
||  Modified Date:  28/May/2008
9298
||  Spec Version:   1.1
9299
------------------------------
9300
*/
9301
 
9302
	TYPE typeCur IS REF CURSOR;
9303
 
9304
    /*================================================================================================*/
5384 dpurdie 9305
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, OPR IN CHAR DEFAULT 'R'  );
1373 dpurdie 9306
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9307
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
9308
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
9309
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
9310
	PROCEDURE MERGE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, mergeOperation IN CHAR);
9311
	/*================================================================================================*/
9312
 
9313
END PK_PLANNED;
4040 dpurdie 9314
 
6999 dpurdie 9315
/
4040 dpurdie 9316
--------------------------------------------------------
9317
--  DDL for Package PK_PROJECT
9318
--------------------------------------------------------
9319
 
5172 dpurdie 9320
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PROJECT" IS
1373 dpurdie 9321
 
3959 dpurdie 9322
    TYPE typecur IS REF CURSOR;
1373 dpurdie 9323
 
3959 dpurdie 9324
    /*------------------------------------------------------------------------*/
9325
    PROCEDURE update_base_url (
9326
        nprojid   IN  projects.proj_id%TYPE,
9327
        sbaseurl  IN  VARCHAR2
9328
    );
9329
    /*------------------------------------------------------------------------*/
9330
    PROCEDURE update_project_config (
9331
    nprojid   IN  projects.proj_id%TYPE,
9332
    sbaseurl  IN  VARCHAR2,
9333
    sjirakey  IN  VARCHAR2
9334
    );
9335
    /*------------------------------------------------------------------------*/
1373 dpurdie 9336
 
3959 dpurdie 9337
    END pk_project;
4040 dpurdie 9338
 
6999 dpurdie 9339
/
4040 dpurdie 9340
--------------------------------------------------------
9341
--  DDL for Package PK_RELEASE
9342
--------------------------------------------------------
9343
 
5172 dpurdie 9344
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_RELEASE" IS
1373 dpurdie 9345
/*
9346
------------------------------
9347
||  Last Modified:  S.Vukovic
9348
||  Modified Date:  12/Sep/2005
9349
||  Body Version:   3.0
9350
------------------------------
9351
*/
9352
 
9353
	TYPE typeCur IS REF CURSOR;
9354
 
9355
    /*================================================================================================*/
5502 dpurdie 9356
	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' );
5384 dpurdie 9357
	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 );
1373 dpurdie 9358
	PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER  );
9359
	PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER );
5502 dpurdie 9360
	PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER,nMode IN NUMBER default 0 );
1373 dpurdie 9361
	PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER );
9362
	FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR ) RETURN NUMBER;
9363
	PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER );
5502 dpurdie 9364
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
1373 dpurdie 9365
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9366
	--PROCEDURE ADD_DEPRECATE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, nPkgId IN NUMBER );
9367
	PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9368
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9369
	PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9370
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
9371
	PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER );
9372
	PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER );
9373
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
9374
	PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 );
9375
	PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER );
9376
	PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR );
5172 dpurdie 9377
  PROCEDURE SET_RELEASE_MODIFIED (nRtagId IN NUMBER );
9378
  PROCEDURE ADD_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER, nUserId IN NUMBER, bDelete IN  NUMBER, nInsertCount OUT NUMBER, curReturn OUT typeCur );
9379
  PROCEDURE REMOVE_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER );
9380
  FUNCTION CAN_ADD_PKG_TO_RELEASE ( nRtagId IN NUMBER, nPvid in NUMBER ) RETURN NUMBER;
5502 dpurdie 9381
 
1373 dpurdie 9382
	/*================================================================================================*/
5384 dpurdie 9383
 
1373 dpurdie 9384
END PK_RELEASE;
4040 dpurdie 9385
 
6999 dpurdie 9386
/
4040 dpurdie 9387
--------------------------------------------------------
9388
--  DDL for Package PK_RMAPI
9389
--------------------------------------------------------
9390
 
5172 dpurdie 9391
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_RMAPI" 
3959 dpurdie 9392
IS
9393
   TYPE typecur IS REF CURSOR;
1373 dpurdie 9394
 
3959 dpurdie 9395
   FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)
9396
      RETURN typecur;
1373 dpurdie 9397
 
3959 dpurdie 9398
   FUNCTION wip_iteration_package (
9399
      projname        VARCHAR2,
9400
      iterationname   VARCHAR2,
9401
      pkgname         VARCHAR2
9402
   )
9403
      RETURN typecur;
1373 dpurdie 9404
 
3959 dpurdie 9405
   FUNCTION auto_make_vcsrelease (
9406
      rtagid                   IN   NUMBER,
9407
      pkgname                  IN   VARCHAR2,
9408
      vext                     IN   VARCHAR2,
9409
      newpkgversion            IN   VARCHAR2,
9410
      vcstag                   IN   VARCHAR2,
9411
      dependenciesimportlist   IN   VARCHAR2,
9412
      isrippled                IN   NUMBER,
9413
      username                 IN   VARCHAR2
9414
   )
9415
      RETURN NUMBER;
6600 dpurdie 9416
 
9417
FUNCTION auto_make_vcsrelease2 (
9418
      rtagid                   IN   NUMBER,
9419
      pkgname                  IN   VARCHAR2,
9420
      vext                     IN   VARCHAR2,
9421
      newpkgversion            IN   VARCHAR2,
9422
      vcstag                   IN   VARCHAR2,
9423
      dependenciesimportlist   IN   relmgr_varchar2_tab_t,
9424
      isrippled                IN   NUMBER,
9425
      username                 IN   VARCHAR2
9426
   )      
9427
      RETURN NUMBER;
1373 dpurdie 9428
 
3959 dpurdie 9429
   PROCEDURE import_dependencies (
9430
      pvid                     IN   NUMBER,
9431
      dependenciesimportlist   IN   VARCHAR2,
9432
      userid                   IN   NUMBER
9433
   );
6600 dpurdie 9434
 
9435
    PROCEDURE import_dependencies2 (
9436
    pvid                     IN   NUMBER,
7000 dpurdie 9437
    dependenciesimportlist   IN   relmgr_varchar2_tab_t,
6600 dpurdie 9438
    userid                   IN   NUMBER
9439
    );
1373 dpurdie 9440
 
3959 dpurdie 9441
   FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)
9442
      RETURN VARCHAR2;
1373 dpurdie 9443
 
3959 dpurdie 9444
   FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)
9445
      RETURN VARCHAR2;
1373 dpurdie 9446
 
3959 dpurdie 9447
   PROCEDURE update_dash_board (rtagid IN NUMBER);
1373 dpurdie 9448
 
3959 dpurdie 9449
   FUNCTION exclude_from_build (
9450
      pvid          IN   NUMBER,
9451
      spkgversion   IN   VARCHAR2,
9452
      rtagid        IN   NUMBER,
9453
      username      IN   VARCHAR2
9454
   )
9455
      RETURN NUMBER;
1373 dpurdie 9456
 
3959 dpurdie 9457
   FUNCTION exclude_indirect_from_build (
9458
      pvid          IN   NUMBER,
9459
      spkgversion   IN   VARCHAR2,
9460
      rtagid        IN   NUMBER,
9461
      username      IN   VARCHAR2,
9462
      rootpvid      IN   NUMBER,
9463
      rootcause     IN   VARCHAR2,
9464
      rootfile      IN   VARCHAR2
9465
   )
9466
      RETURN NUMBER;
1373 dpurdie 9467
 
3959 dpurdie 9468
   PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2);
1373 dpurdie 9469
 
3959 dpurdie 9470
   FUNCTION insert_package_metrics (
9471
      rtagid IN NUMBER,
9472
      pkgname IN VARCHAR2,
9473
      vext IN VARCHAR2,
9474
      metricstring IN VARCHAR2
9475
   )
9476
      RETURN NUMBER;
1373 dpurdie 9477
 
3959 dpurdie 9478
   PROCEDURE update_release_metrics (rtagid IN NUMBER);
1373 dpurdie 9479
 
3959 dpurdie 9480
   FUNCTION return_vcs_tag(pvid IN NUMBER) RETURN VARCHAR2;
9481
 
9482
   PROCEDURE update_vcs_details(ipv_id IN NUMBER, vcstag IN VARCHAR2, user_id IN NUMBER);
6031 dpurdie 9483
 
3959 dpurdie 9484
   FUNCTION isSVN( pkgid IN NUMBER ) RETURN NUMBER;
6031 dpurdie 9485
 
3959 dpurdie 9486
   FUNCTION isSVNbyName( pkgname IN VARCHAR2 ) RETURN NUMBER;
9487
 
5172 dpurdie 9488
   FUNCTION new_build_instance( rtag_id IN NUMBER, pv_id IN NUMBER, reason IN CHAR ) return NUMBER;
6031 dpurdie 9489
 
5172 dpurdie 9490
   FUNCTION update_build_instance( nbuild_id IN NUMBER, npv_id IN NUMBER default null, nstate IN CHAR default null ) return NUMBER;
6031 dpurdie 9491
 
5172 dpurdie 9492
   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;
9493
 
9494
 
3959 dpurdie 9495
END pk_rmapi;
4040 dpurdie 9496
 
1374 dpurdie 9497
/
5892 dpurdie 9498
 
6031 dpurdie 9499
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "RM_READONLY";
9500
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "MS_READONLY";
6999 dpurdie 9501
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "DM_READONLY";
4040 dpurdie 9502
--------------------------------------------------------
9503
--  DDL for Package PK_WORK_IN_PROGRESS
9504
--------------------------------------------------------
9505
 
5172 dpurdie 9506
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS
1373 dpurdie 9507
/*
9508
------------------------------
9509
||  Last Modified:  S.Vukovic
3959 dpurdie 9510
||  Modified Date:  2/May/2005
9511
||  Spec Version:   1.0
1373 dpurdie 9512
------------------------------
9513
*/
9514
 
9515
	TYPE typeCur IS REF CURSOR;
9516
 
9517
    /*================================================================================================*/
9518
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
9519
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
3959 dpurdie 9520
	PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER );
9521
 
1373 dpurdie 9522
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
6031 dpurdie 9523
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
1373 dpurdie 9524
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
9525
	/*================================================================================================*/
3959 dpurdie 9526
 
9527
END PK_WORK_IN_PROGRESS;
4040 dpurdie 9528
 
6999 dpurdie 9529
/
4040 dpurdie 9530
--------------------------------------------------------
9531
--  DDL for Package RM_ISSUES
9532
--------------------------------------------------------
9533
 
5172 dpurdie 9534
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."RM_ISSUES" AS
1373 dpurdie 9535
 
3959 dpurdie 9536
	TYPE T_Cur IS REF CURSOR;
1373 dpurdie 9537
 
3959 dpurdie 9538
	FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;
9539
	FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBER;
9540
	FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;
9541
	FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBER;
1373 dpurdie 9542
 
3959 dpurdie 9543
	PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );
9544
	PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );
9545
	PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 );
1373 dpurdie 9546
 
3959 dpurdie 9547
END Rm_Issues;
4040 dpurdie 9548
 
6999 dpurdie 9549
/
4040 dpurdie 9550
--------------------------------------------------------
9551
--  DDL for Package Body PK_APP_UTILS
9552
--------------------------------------------------------
9553
 
5172 dpurdie 9554
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_APP_UTILS" IS
1373 dpurdie 9555
 
3959 dpurdie 9556
/*
9557
------------------------------
9558
||  Last Modified:  S.Vukovic
9559
||  Modified Date:  26/Apr/2005
9560
||  Body Version:   1.0
9561
------------------------------
9562
*/
1373 dpurdie 9563
 
9564
 
9565
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 9566
PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur)   IS
1373 dpurdie 9567
 
9568
 
9569
BEGIN
9570
 
9571
 
3959 dpurdie 9572
	IF (NOT RtagId IS NULL) THEN
9573
		-- Case with RTAG_ID present
9574
		OPEN records FOR
9575
		SELECT rt.PROJ_ID,
9576
			   rt.RTAG_ID AS RTAG_ID
9577
		  FROM RELEASE_TAGS rt
9578
		 WHERE rt.RTAG_ID = TO_NUMBER(RtagId);
1373 dpurdie 9579
 
3959 dpurdie 9580
	ELSIF (NOT ProjId IS NULL) THEN
9581
		-- Case with PROJ_ID present
9582
		OPEN records FOR
9583
		SELECT TO_NUMBER(ProjId) AS PROJ_ID,
9584
			   -1 AS RTAG_ID
9585
		  FROM DUAL;
1373 dpurdie 9586
 
3959 dpurdie 9587
	ELSE
9588
		-- Case with none present
9589
		OPEN records FOR
9590
		SELECT -1 AS PROJ_ID,
9591
			   -1 AS RTAG_ID
9592
		  FROM DUAL;
1373 dpurdie 9593
 
3959 dpurdie 9594
	END IF;
1373 dpurdie 9595
 
9596
 
9597
 
9598
 
3959 dpurdie 9599
   	--RETURN records;
1373 dpurdie 9600
 
9601
END;
9602
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 9603
END PK_APP_UTILS;
4040 dpurdie 9604
 
1374 dpurdie 9605
/
4040 dpurdie 9606
 
6999 dpurdie 9607
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_APP_UTILS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 9608
--------------------------------------------------------
6999 dpurdie 9609
--  DDL for Package Body PK_BLATAPI
9610
--------------------------------------------------------
9611
 
9612
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_BLATAPI" 
9613
IS
9614
/*-------------------------------------------------------------------------------------------------------*/
9615
   PROCEDURE add_pkg_replica (
9616
      sdisplay_name          IN   VARCHAR2,
9617
      sserver_name           IN   VARCHAR2,
9618
      sdescription           IN   VARCHAR2,
9619
      sactive                IN   CHAR,
9620
      smode                  IN   CHAR
9621
   )
9622
   IS
9623
      nrecordnumber   NUMBER;
9624
      nserver_id       NUMBER;
9625
   BEGIN
9626
 
9627
      INSERT INTO blat_servers(blat_display_name, blat_server_name,blat_description,blat_enable,blat_mode)
9628
            VALUES (sdisplay_name,sserver_name,sdescription, NVL(sactive,'N'), NVL(smode,'N'));
9629
 
9630
   EXCEPTION
9631
      WHEN DUP_VAL_ON_INDEX
9632
      THEN
9633
         raise_application_error (-20000,
9634
                                 'Cannot have duplicate machines.'
9635
                                 );
9636
   END;
9637
 
9638
/*-------------------------------------------------------------------------------------------------------*/
9639
   PROCEDURE delete_pkg_replica (sserver_id_list IN VARCHAR2)
9640
   IS
9641
   BEGIN
9642
      DELETE FROM blat_servers
9643
            WHERE blat_id IN (
9644
                     SELECT * FROM THE
9645
                              (SELECT CAST
9646
                                          (in_list_number (sserver_id_list) AS relmgr_number_tab_t
9647
                                          )
9648
                                 FROM DUAL
9649
                              ));
9650
   END;
9651
 
9652
 
9653
/*-------------------------------------------------------------------------------------------------------*/
9654
   PROCEDURE update_pkg_replica (
9655
      nserver_id             IN   NUMBER,
9656
      sdisplay_name          IN   VARCHAR2,
9657
      sserver_name           IN   VARCHAR2,
9658
      sdescription           IN   VARCHAR2,
9659
      sactive                IN   CHAR,
9660
      smode                  IN   CHAR
9661
   )
9662
   IS
9663
   BEGIN
9664
      UPDATE blat_servers
9665
         SET blat_display_name = sdisplay_name,
9666
             blat_server_name = sserver_name,
9667
             blat_description = sdescription,
9668
             blat_enable = NVL(sactive, 'N'),
9669
             blat_mode = NVL(smode, 'N')
9670
      WHERE blat_id = nserver_id;
9671
 
9672
   PK_BLATAPI.set_pkg_replica_changed(nserver_id);
9673
 
9674
   EXCEPTION
9675
      WHEN DUP_VAL_ON_INDEX
9676
      THEN
9677
         raise_application_error (-20000,
9678
                                 'Cannot have duplicate machines.'
9679
                                 );
9680
 
9681
 
9682
   END;
9683
 
9684
/*-------------------------------------------------------------------------------------------------------*/
9685
   PROCEDURE set_pkg_replica_changed( nserver_id IN   NUMBER)
9686
   IS
9687
   BEGIN
9688
    UPDATE blat_servers
9689
    SET blat_seqnum = SEQ_BLAT_MOD.NEXTVAL,
9690
        blat_timestamp = current_timestamp
9691
    WHERE blat_id = nserver_id;    
9692
   END;
9693
 
9694
END PK_BLATAPI;
9695
 
9696
/
9697
--------------------------------------------------------
4040 dpurdie 9698
--  DDL for Package Body PK_BUILDAPI
9699
--------------------------------------------------------
9700
 
5172 dpurdie 9701
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_BUILDAPI" 
1373 dpurdie 9702
IS
9703
   /*-------------------------------------------------------------------------------------------------------*/
9704
   PROCEDURE add_product_component (
9705
      npvid           IN   NUMBER,
9706
      sosname         IN   VARCHAR2,
9707
      sorigfilepath   IN   VARCHAR2,
9708
      sfilename       IN   VARCHAR2,
9709
      sdestfilepath   IN   VARCHAR2,
9710
      nbytesize       IN   NUMBER,
9711
      scrccksum       IN   VARCHAR2
9712
   )
9713
   IS
9714
      nosid   NUMBER;
9715
   BEGIN
9716
      /*--------------- Business Rules Here -------------------*/
9717
      -- OS Name Requirements --
9718
      IF (sosname IS NULL)
9719
      THEN
9720
         raise_application_error (-20000, 'OsName cannot be NULL.');
9721
      END IF;
9722
 
9723
      -- File Requirements --
9724
      IF (NOT sfilename IS NULL)
9725
      THEN
9726
         IF (nbytesize IS NULL)
9727
         THEN
9728
            raise_application_error (-20000, 'Byte Size cannot be NULL.');
9729
         ELSIF (scrccksum IS NULL)
9730
         THEN
9731
            raise_application_error (-20000, 'CRC CKSUM cannot be NULL.');
9732
         END IF;
9733
      END IF;
9734
 
9735
      -- Folder Requirements --
9736
      -- No requirements for now.
9737
 
9738
      /*-------------------------------------------------------*/
9739
 
9740
      -- Get OsId
9741
      nosid := get_osid (sosname);
9742
 
9743
      -- Insert component entry
9744
      INSERT INTO product_components
9745
                  (pv_id, os_id, file_path, file_name, destination_path,
9746
                  byte_size, crc_cksum
9747
                  )
9748
         VALUES (npvid, nosid, sorigfilepath, sfilename, sdestfilepath,
9749
                  nbytesize, scrccksum
9750
                  );
9751
   EXCEPTION
9752
      WHEN DUP_VAL_ON_INDEX
9753
      THEN
9754
         raise_application_error (-20000,
9755
                                 'Cannot have duplicate product components.'
9756
                                 );
9757
   END;
9758
 
9759
/*-------------------------------------------------------------------------------------------------------*/
9760
   PROCEDURE remove_all_product_components (
9761
      npvid     IN   NUMBER,
9762
      sosname   IN   VARCHAR2
9763
   )
9764
   IS
9765
      nosid   NUMBER;
9766
   BEGIN
9767
/*--------------- Business Rules Here -------------------*/
9768
/*-------------------------------------------------------*/
9769
 
9770
      -- Get OsId
9771
      nosid := get_osid (sosname);
9772
 
9773
      -- Delete component entry
9774
      DELETE FROM product_components pc
9775
            WHERE pc.pv_id = npvid AND pc.os_id = nosid;
9776
   END;
9777
 
9778
/*-------------------------------------------------------------------------------------------------------*/
9779
   FUNCTION get_osid (sosname IN VARCHAR2)
9780
      RETURN NUMBER
9781
   IS
9782
      code   NUMBER;
9783
   BEGIN
9784
      -- Get Platform Code --
9785
      SELECT pf.code
9786
      INTO code
9787
      FROM platforms pf
9788
      WHERE UPPER (pf.NAME) = UPPER (sosname);
9789
 
9790
      RETURN code;
9791
   EXCEPTION
9792
      WHEN NO_DATA_FOUND
9793
      THEN
9794
         raise_application_error
9795
            (-20000,
9796
               'Platform '
9797
            || sosname
9798
            || ' is not valid. It needs to be added to PLATFORMS table in Release Manager.'
9799
            );
9800
         RAISE;
9801
   END;
9802
 
9803
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 9804
 PROCEDURE update_build_service_info (
1373 dpurdie 9805
      sdatabaseserver   IN   VARCHAR2,
9806
      sarchiveserver    IN   VARCHAR2,
9807
      smailserver       IN   VARCHAR2,
9808
      smailsender       IN   VARCHAR2,
4211 dpurdie 9809
      faultmlist        IN   VARCHAR2,
1373 dpurdie 9810
      sdiskspace        IN   VARCHAR2,
6600 dpurdie 9811
      ssbommanagement   IN   VARCHAR2,
9812
      lxrserver         IN   VARCHAR2
1373 dpurdie 9813
   )
9814
   IS
9815
   BEGIN
9816
      UPDATE build_service_config
9817
         SET config = sdatabaseserver
9818
      WHERE service = 'DATABASE SERVER';
9819
 
9820
      UPDATE build_service_config
9821
         SET config = sarchiveserver
9822
      WHERE service = 'ARCHIVE SERVER';
9823
 
9824
      UPDATE build_service_config
9825
         SET config = smailserver
9826
      WHERE service = 'MAIL SERVER';
9827
 
9828
      UPDATE build_service_config
9829
         SET config = smailsender
9830
      WHERE service = 'BUILD FAILURE MAIL SENDER';
9831
 
9832
      UPDATE build_service_config
4211 dpurdie 9833
         SET config = faultmlist
9834
      WHERE service = 'FAULT EMAIL ADDRESS LIST';
6031 dpurdie 9835
 
4211 dpurdie 9836
      UPDATE build_service_config
1373 dpurdie 9837
         SET config = sdiskspace
9838
      WHERE service = 'DPKG_ARCHIVE DISK SPACE USED';
9839
 
9840
      UPDATE build_service_config
9841
         SET config = ssbommanagement
9842
      WHERE service = 'SBOM MANAGEMENT';
6600 dpurdie 9843
 
9844
      UPDATE build_service_config
9845
         SET config = lxrserver
9846
      WHERE service = 'LXR SERVER';
1373 dpurdie 9847
   END;
9848
 
9849
 
6031 dpurdie 9850
 
1373 dpurdie 9851
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 9852
   PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2, sgbeclass IN NUMBER)
1373 dpurdie 9853
   IS
9854
      gbe_id   NUMBER;
9855
   BEGIN
9856
      -- Get GBE_ID
9857
      SELECT seq_gbe_id.NEXTVAL
9858
      INTO gbe_id
9859
      FROM DUAL;
9860
 
9861
      INSERT INTO gbe_machtype
4040 dpurdie 9862
                  (gbe_id, gbe_value, bm_id )
9863
         VALUES (gbe_id, sgbevalue, sgbeclass );
1373 dpurdie 9864
   END;
9865
 
9866
/*-------------------------------------------------------------------------------------------------------*/
9867
   PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER)
9868
   IS
9869
   BEGIN
9870
      DELETE FROM gbe_machtype
9871
            WHERE gbe_id = ngbe_id;
9872
   END;
9873
 
9874
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 9875
   PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2, sgbeclass IN NUMBER)
1373 dpurdie 9876
   IS
9877
   BEGIN
9878
      UPDATE gbe_machtype
4040 dpurdie 9879
         SET gbe_value = sgbevalue,
9880
             bm_id = sgbeclass
1373 dpurdie 9881
      WHERE gbe_id = ngbe_id;
9882
   END;
9883
 
9884
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 9885
PROCEDURE add_buildmachine (sbmvalue IN VARCHAR2)
9886
   IS
9887
      bm_id   NUMBER;
9888
   BEGIN
9889
      -- Get BM_ID
9890
      SELECT seq_bm_id.NEXTVAL
9891
      INTO bm_id
9892
      FROM DUAL;
9893
 
9894
      INSERT INTO build_machines
9895
                  (bm_id, bm_name)
9896
         VALUES (bm_id, sbmvalue );
9897
   END;
9898
 
9899
/*-------------------------------------------------------------------------------------------------------*/
9900
   PROCEDURE remove_buildmachine (nbm_id IN NUMBER)
9901
   IS
9902
   BEGIN
9903
      DELETE FROM build_machines
9904
            WHERE bm_id = nbm_id;
9905
   END;
9906
 
9907
/*-------------------------------------------------------------------------------------------------------*/
6031 dpurdie 9908
   PROCEDURE update_buildmachine (nbm_id IN NUMBER, sbmvalue IN VARCHAR2)
4040 dpurdie 9909
   IS
9910
   BEGIN
9911
      UPDATE build_machines
9912
         SET bm_name = sbmvalue
9913
         WHERE bm_id = nbm_id;
9914
   END;
9915
 
9916
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 9917
   PROCEDURE delete_daemon (srconidlist IN VARCHAR2)
9918
   IS
9919
   BEGIN
9920
      -- Entries in the daemon_action_log, run_level and abt_action_log tables must be deleted first.
9921
      DELETE FROM daemon_action_log
9922
            WHERE rcon_id IN (
9923
                     SELECT *
9924
                     FROM THE
9925
                              (SELECT CAST
9926
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
9927
                                          )
9928
                                 FROM DUAL
9929
                              ));
9930
 
9931
      DELETE FROM run_level
9932
            WHERE rcon_id IN (
9933
                     SELECT *
9934
                     FROM THE
9935
                              (SELECT CAST
9936
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
9937
                                          )
9938
                                 FROM DUAL
9939
                              ));
9940
 
9941
      DELETE FROM abt_action_log
9942
            WHERE rcon_id IN (
9943
                     SELECT *
9944
                     FROM THE
9945
                              (SELECT CAST
9946
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
9947
                                          )
9948
                                 FROM DUAL
9949
                              ));
9950
 
9951
      -- Once entries in daemon_action_log, run_level and abt_action_log are removed, the daemon is deleted.
9952
      DELETE FROM release_config
9953
            WHERE rcon_id IN (
9954
                     SELECT *
9955
                     FROM THE
9956
                              (SELECT CAST
9957
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
9958
                                          )
9959
                                 FROM DUAL
9960
                              ));
9961
   END;
9962
 
9963
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 9964
   PROCEDURE remove_daemon (srconidlist IN VARCHAR2)
1373 dpurdie 9965
   IS
4308 dpurdie 9966
   oRconIdList RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
9967
 
1373 dpurdie 9968
   BEGIN
6031 dpurdie 9969
 
4308 dpurdie 9970
   oRconIdList := IN_LIST_NUMBER ( srconidlist );
9971
 
9972
      -- Break the linkage between the release_config and the build_machine_config
6031 dpurdie 9973
 
4308 dpurdie 9974
      -- Delete the linkage between the two tables.
9975
       UPDATE release_config
9976
         SET daemon_hostname = NULL,
6031 dpurdie 9977
             bmcon_id = NULL
4308 dpurdie 9978
      WHERE rcon_id IN ( SELECT * FROM TABLE ( CAST ( oRconIdList AS RELMGR_NUMBER_TAB_t ) ) );
1373 dpurdie 9979
   END;
9980
 
9981
/*-------------------------------------------------------------------------------------------------------*/
9982
   PROCEDURE insert_schedule_info (
9983
      dschedulepause     IN   DATE,
9984
      dscheduleresume    IN   DATE,
9985
      crepeat            IN   VARCHAR2,
9986
      cindefinitepause   IN   VARCHAR2
9987
   )
9988
   IS
9989
      nscheduledid   NUMBER;
9990
   BEGIN
9991
      -- Get Next Available Scheduled Id
9992
      SELECT seq_scheduled_id.NEXTVAL
9993
      INTO nscheduledid
9994
      FROM DUAL;
9995
 
9996
      INSERT INTO run_level_schedule
9997
         VALUES (nscheduledid, dschedulepause, dscheduleresume, crepeat,
9998
                  cindefinitepause);
9999
   END;
10000
 
10001
/*-------------------------------------------------------------------------------------------------------*/
10002
   PROCEDURE delete_schedule (nscheduleid IN NUMBER)
10003
   IS
10004
   BEGIN
10005
      DELETE FROM run_level_schedule
10006
            WHERE scheduled_id = nscheduleid;
10007
   END;
10008
 
10009
/*-------------------------------------------------------------------------------------------------------*/
10010
   PROCEDURE set_infinite_pause
10011
   IS
10012
      nscheduledid   NUMBER;
10013
   BEGIN
10014
      -- Get Next Available Scheduled Id
10015
      SELECT seq_scheduled_id.NEXTVAL
10016
      INTO nscheduledid
10017
      FROM DUAL;
10018
 
10019
      INSERT INTO run_level_schedule
5172 dpurdie 10020
         VALUES (nscheduledid, ora_sysdatetime, NULL, NULL, 'P');
1373 dpurdie 10021
   END;
6031 dpurdie 10022
 
5172 dpurdie 10023
/*-------------------------------------------------------------------------------------------------------*/
10024
   PROCEDURE set_finite_pause (duration IN NUMBER)
10025
   IS
10026
      nscheduledid   NUMBER;
10027
      currentDate    DATE := ora_sysdatetime;
10028
   BEGIN
6031 dpurdie 10029
 
5172 dpurdie 10030
      -- Get Next Available Scheduled Id
10031
      SELECT seq_scheduled_id.NEXTVAL
10032
      INTO nscheduledid
10033
      FROM DUAL;
1373 dpurdie 10034
 
5172 dpurdie 10035
      INSERT INTO run_level_schedule
10036
         VALUES (nscheduledid, currentDate, currentDate + duration/(24*60), 0, 'F');
6031 dpurdie 10037
      COMMIT;
10038
 
5172 dpurdie 10039
      -- Ensure that we have only ONE finite pause by deleting all old ones
10040
      -- Under race conditions the last one wins
6031 dpurdie 10041
      DELETE FROM run_level_schedule
5172 dpurdie 10042
        WHERE SCHEDULED_ID < nscheduledid
10043
        AND INDEFINITE_PAUSE = 'F';
6031 dpurdie 10044
   END;
5172 dpurdie 10045
 
1373 dpurdie 10046
/*-------------------------------------------------------------------------------------------------------*/
10047
   PROCEDURE set_resume
10048
   IS
10049
   BEGIN
10050
      DELETE FROM run_level_schedule
5172 dpurdie 10051
            WHERE indefinite_pause in ('F', 'P' );
1373 dpurdie 10052
   END;
10053
 
10054
/*-------------------------------------------------------------------------------------------------------*/
10055
   PROCEDURE delete_out_of_date_schedule
10056
   IS
10057
   BEGIN
10058
      DELETE FROM run_level_schedule
10059
            WHERE scheduled_resume < ora_sysdatetime AND repeat = 0;
10060
   END;
10061
 
10062
/*-------------------------------------------------------------------------------------------------------*/
10063
   PROCEDURE set_daemon_resume (nrconid IN NUMBER)
10064
   IS
10065
   BEGIN
10066
      UPDATE run_level
10067
         SET PAUSE = NULL
10068
      WHERE rcon_id = nrconid;
10069
   END;
10070
 
10071
/*-------------------------------------------------------------------------------------------------------*/
10072
   PROCEDURE set_daemon_pause (nrconid IN NUMBER)
10073
   IS
10074
   BEGIN
10075
      UPDATE run_level
10076
         SET PAUSE = 1
10077
      WHERE rcon_id = nrconid;
10078
   END;
10079
/*-------------------------------------------------------------------------------------------------------*/
10080
   PROCEDURE set_daemon_disable (nrconid NUMBER)
10081
   IS
10082
   BEGIN
10083
      UPDATE run_level
10084
         SET PAUSE = 2
10085
      WHERE rcon_id = nrconid;
10086
   END;
10087
 
10088
/*-------------------------------------------------------------------------------------------------------*/
10089
   PROCEDURE set_daemon_states (nrtagid NUMBER, nstate NUMBER)
10090
   IS
10091
   BEGIN
10092
     UPDATE run_level
10093
     SET pause = nstate
10094
     WHERE rcon_id IN
10095
     (SELECT rc.rcon_id FROM release_config rc WHERE rc.rtag_id = nrtagid);
10096
   END;
10097
 
10098
/*-------------------------------------------------------------------------------------------------------*/
10099
   -- inserts a new daemon instruction
10100
   -- This is for use by the Release Manager Website code.
10101
   --
10102
   PROCEDURE insert_daemon_inst
10103
   ( nOp_code IN NUMBER
10104
   , nRtag_id IN NUMBER
10105
   , nPv_id IN NUMBER
10106
   , nSchedDate IN DATE
10107
   , nRepeatSecs IN NUMBER
10108
   , nAddedDate IN DATE
10109
   , nUser_id IN NUMBER
10110
   ) IS
10111
      nInstId   NUMBER;
10112
   BEGIN
10113
      -- Get Next Available Scheduled Id
10114
      SELECT seq_daemon_instruction_id.NEXTVAL
10115
      INTO nInstId
10116
      FROM DUAL;
10117
 
10118
      INSERT INTO Daemon_Instructions
10119
         VALUES (nInstId, nOp_code, nRtag_id,
10120
                  nPv_id, nSchedDate, nRepeatSecs,
10121
                  nAddedDate, nUser_id, '0');
6031 dpurdie 10122
 
10123
   -- Mark the Release as modified for build purposes
10124
   PK_RELEASE.SET_RELEASE_MODIFIED(nRtag_id);
10125
 
1373 dpurdie 10126
   EXCEPTION
10127
      WHEN DUP_VAL_ON_INDEX
10128
      THEN
10129
         raise_application_error (-20000,
10130
                                 'Table already contains a record with the specified OPERATION, RELEASE, and PACKAGE VERSION'
10131
                                 );
10132
      WHEN OTHERS
10133
      THEN
10134
         raise;
5172 dpurdie 10135
 
1373 dpurdie 10136
   END insert_daemon_inst;
10137
 
10138
/*-------------------------------------------------------------------------------------------------------*/
10139
   -- Deletes a daemon instruction matching the specified instruction ID
10140
   --
10141
   PROCEDURE del_daemon_inst
10142
   ( nInstId IN NUMBER
10143
   ) IS
10144
 
10145
   BEGIN
10146
      DELETE FROM Daemon_Instructions
10147
      WHERE DAEMON_INSTRUCTIONS_ID = nInstId;
10148
 
10149
   END del_daemon_inst;
10150
 
10151
/*-------------------------------------------------------------------------------------------------------*/
10152
   -- Deletes a daemon instruction matching the specified op-code, ratag, and pv_id
10153
   --
10154
   PROCEDURE del_daemon_inst_by_rtag_pvid(
10155
      nOp_code IN NUMBER,
10156
      nRtag_id IN NUMBER,
10157
      nPv_id IN NUMBER
10158
   ) IS
10159
   BEGIN
10160
      DELETE FROM Daemon_Instructions
10161
      WHERE OP_CODE = nOp_code
10162
      AND RTAG_ID = nRtag_id
10163
      AND PV_ID   = nPv_id;
10164
 
10165
   END del_daemon_inst_by_rtag_pvid;
10166
 
10167
/*-------------------------------------------------------------------------------------------------------*/
10168
   -- Updates a daemon instruction
10169
   -- This is for use by the Release Manager Website code.
10170
   --
10171
   PROCEDURE update_daemon_inst
10172
   ( nInstId IN NUMBER
10173
   , nOp_code IN NUMBER
10174
   , nRtag_id IN NUMBER
10175
   , nPv_id IN NUMBER
10176
   , nSchedDate IN DATE
10177
   , nRepeatSecs IN NUMBER
10178
   , nAddedDate IN DATE
10179
   , nUser_id IN NUMBER
10180
   ) IS
10181
      CURSOR daemon_inst_cur IS
10182
         SELECT *
10183
         FROM daemon_instructions di
10184
         WHERE di.DAEMON_INSTRUCTIONS_ID = nInstId;
10185
 
10186
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
10187
 
10188
      exc_inst_removed EXCEPTION;
10189
   BEGIN
10190
      OPEN daemon_inst_cur;
10191
 
10192
      FETCH daemon_inst_cur
10193
      INTO daemon_inst_rec;
10194
 
10195
      IF daemon_inst_cur%FOUND THEN
10196
 
10197
         UPDATE Daemon_Instructions
10198
         SET op_code = nOp_code,
10199
            rtag_id = nRtag_id,
10200
            pv_id   = nPv_id,
10201
            scheduled_datetime = nSchedDate,
10202
            repeat_secs = nRepeatSecs,
10203
            added_datetime = nAddedDate,
10204
            user_id = nUser_id,
10205
            in_progress = '0'
10206
         WHERE daemon_instructions_id = nInstId;
10207
      ELSE
10208
         raise exc_inst_removed;
10209
      END IF;
10210
 
10211
      CLOSE daemon_inst_cur;
6031 dpurdie 10212
 
10213
      -- Mark the Release as modified for build purposes
10214
      PK_RELEASE.SET_RELEASE_MODIFIED(nRtag_id);
10215
 
1373 dpurdie 10216
   EXCEPTION
10217
      WHEN DUP_VAL_ON_INDEX
10218
      THEN
10219
         raise_application_error (-20000,
10220
                                 'Table already contains a record with the specified OPERATION, RELEASE, and PACKAGE VERSION'
10221
                                 );
10222
      WHEN exc_inst_removed
10223
      THEN
10224
         raise_application_error (-20000,
10225
                                 'Record was probably deleted by the Buildtool during your edit-form session. Please create a new Daemon Instruction.'
10226
                                 );
10227
      WHEN OTHERS
10228
      THEN
10229
         raise;
5172 dpurdie 10230
 
1373 dpurdie 10231
   END update_daemon_inst;
10232
 
10233
/*-------------------------------------------------------------------------------------------------------*/
10234
   -- Returns a comma-separated list of operation codes found for a given rtag and pv_id combination
10235
   -- This is for use by the Release Manager Website code.
10236
   --
10237
   FUNCTION daemon_ops_for_rtag_pvid(
10238
      nRtag_id IN NUMBER,
10239
      nPv_id IN NUMBER
10240
   ) RETURN VARCHAR2
10241
   IS
10242
      CURSOR daemon_inst_cur IS
10243
         SELECT di.OP_CODE
10244
         FROM daemon_instructions di
10245
         WHERE di.RTAG_ID = nRtag_id
10246
            AND di.PV_ID = nPv_id;
10247
 
10248
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
10249
 
10250
      sRetList VARCHAR2(4000) := '';
10251
 
10252
   BEGIN
10253
      OPEN daemon_inst_cur;
10254
 
10255
      FETCH daemon_inst_cur
10256
      INTO daemon_inst_rec;
10257
 
10258
      WHILE daemon_inst_cur%FOUND
10259
      LOOP
10260
         sRetList := sRetList || daemon_inst_rec.op_code || ',';
10261
 
10262
         FETCH daemon_inst_cur
10263
         INTO daemon_inst_rec;
10264
      END LOOP;
10265
 
10266
      CLOSE daemon_inst_cur;
10267
 
10268
      RETURN sRetList;
10269
   END daemon_ops_for_rtag_pvid;
10270
/*-------------------------------------------------------------------------------------------------------*/
10271
   -- Returns a comma-separated list of operation codes found for a given rtag
10272
   -- This is for use by the Release Manager Website code.
10273
   --
10274
   FUNCTION daemon_ops_for_rtag(
10275
      nRtag_id IN NUMBER
10276
   ) RETURN VARCHAR2
10277
   IS
10278
      CURSOR daemon_inst_cur IS
10279
         SELECT di.OP_CODE
10280
         FROM daemon_instructions di
10281
         WHERE di.RTAG_ID = nRtag_id;
10282
 
10283
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
10284
 
10285
      sRetList VARCHAR2(4000) := '';
10286
 
10287
   BEGIN
10288
      OPEN daemon_inst_cur;
10289
 
10290
      FETCH daemon_inst_cur
10291
      INTO daemon_inst_rec;
10292
 
10293
      WHILE daemon_inst_cur%FOUND
10294
      LOOP
10295
         sRetList := sRetList || daemon_inst_rec.op_code || ',';
10296
 
10297
         FETCH daemon_inst_cur
10298
         INTO daemon_inst_rec;
10299
      END LOOP;
10300
 
10301
      CLOSE daemon_inst_cur;
10302
 
10303
      RETURN sRetList;
10304
   END daemon_ops_for_rtag;
10305
/*-------------------------------------------------------------------------------------------------------*/
10306
   -- Gets a record from the daemon instruction table that can be carried out now and returns the fields
10307
   -- in the record a daemon will need
10308
   -- The Buildtool should use this to find a job to do for a particular release. It should then call
10309
   -- mark_daemon_inst_in_progress(inst_id) before carrying out the work, and then call
10310
   -- mark_daemon_inst_completed(inst_id) to signal its completion.
10311
   -- Can be called repeatedly to get a full list of all instructions for a release, by passing back in
10312
   -- the instruction ID obtained from the previous call (the 1st call should use 0)
10313
   -- Can be called repeatedly to get a full list of all instructions of a specific op-code value for a release,
10314
   -- by passing back in an op-code value of 0 or higher (use -1 if no op-code filtering is needed)
10315
   -- Returns 1 if a record was found, else 0.
10316
   --
7039 dpurdie 10317
   -- The default value of bExpired (True) will return instructions that have exceeded the scheduled time
10318
  --  A false value will reverse the operation and return instrcutions that have not yet expired
10319
   --
1373 dpurdie 10320
   FUNCTION get_daemon_inst(
10321
      nRtag_id IN NUMBER,
10322
      nInst_id IN OUT NUMBER,
10323
      nOp_code IN OUT NUMBER,
10324
      nPv_id OUT NUMBER,
10325
      nUser_id OUT NUMBER,
7039 dpurdie 10326
      nInProgress OUT NUMBER,
10327
      bExpired IN NUMBER
1373 dpurdie 10328
   ) RETURN NUMBER
10329
   IS
10330
      CURSOR daemon_inst_cur IS
10331
         SELECT di.daemon_instructions_id, di.op_code, di.pv_id ,di.user_id, di.in_progress
10332
           FROM daemon_instructions di
10333
          WHERE di.rtag_id = nRtag_id
10334
            AND di.daemon_instructions_id > nInst_id
7039 dpurdie 10335
            AND (( (bExpired != 0 ) AND (di.scheduled_datetime <= ora_sysdatetime)) OR ( (bExpired = 0) AND (di.scheduled_datetime > ora_sysdatetime) ))
1373 dpurdie 10336
            AND ((nOp_code = -1) OR (nOp_code = di.op_code))
10337
            AND rownum <= 1
10338
       ORDER BY di.daemon_instructions_id;
10339
 
10340
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
10341
   BEGIN
10342
      OPEN daemon_inst_cur;
10343
 
10344
      FETCH daemon_inst_cur
10345
      INTO daemon_inst_rec;
10346
 
10347
      -- If we found a record, return it.
10348
      IF daemon_inst_cur%FOUND THEN
10349
         nInst_id := daemon_inst_rec.daemon_instructions_id;
10350
         nOp_code := daemon_inst_rec.op_code;
10351
         nPv_id   := daemon_inst_rec.pv_id;
10352
         nUser_id := daemon_inst_rec.user_id;
10353
         IF daemon_inst_rec.in_progress = '1' THEN
10354
            nInProgress := 1;
10355
         ELSE
10356
            nInProgress := 0;
10357
         END IF;
10358
         CLOSE daemon_inst_cur;
10359
         RETURN 1;
10360
      END IF;
10361
 
10362
      CLOSE daemon_inst_cur;
10363
      RETURN 0;
10364
 
10365
   END get_daemon_inst;
10366
/*-------------------------------------------------------------------------------------------------------*/
10367
   -- Marks a daemon instruction as being processed by a daemon
10368
   -- The Buildtool should use this before it embarks on the work the instruction commands
10369
   --
10370
   PROCEDURE mark_daemon_inst_in_progress( nInstId IN NUMBER )
10371
   IS
10372
   BEGIN
10373
      UPDATE Daemon_Instructions
10374
      SET in_progress = '1'
10375
      WHERE daemon_instructions_id = nInstId;
10376
 
10377
   END mark_daemon_inst_in_progress;
10378
 
10379
/*-------------------------------------------------------------------------------------------------------*/
10380
   -- Once the Buildtool has finished carrying out the daemon instruction, it should call this stored
10381
   -- procedure in order to either delete the instruction or update it in the case where it is a repeating
10382
   -- instruction.
10383
   --
10384
   PROCEDURE mark_daemon_inst_completed( nInstId IN NUMBER )
10385
   IS
10386
      repSecs NUMBER;
10387
      schedDate  DATE;
10388
 
10389
      CURSOR daemon_inst_cur IS
10390
         SELECT di.REPEAT_SECS AS repSecs, di.SCHEDULED_DATETIME AS schedDate
10391
         FROM daemon_instructions di
10392
         WHERE di.daemon_instructions_id = nInstId;
10393
 
10394
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
10395
   BEGIN
10396
      OPEN daemon_inst_cur;
10397
 
10398
      FETCH daemon_inst_cur
10399
      INTO daemon_inst_rec;
10400
 
10401
      IF daemon_inst_cur%FOUND THEN
10402
 
10403
         -- if instruction repeats daily, add 1 day to the scheduled time and update the record
10404
         IF daemon_inst_rec.repSecs = 86400 THEN
10405
            UPDATE Daemon_Instructions
10406
               SET scheduled_datetime = daemon_inst_rec.schedDate + 1,
10407
                  in_progress = '0'
10408
            WHERE daemon_instructions_id = nInstId;
10409
         ELSE
10410
            -- Delete the daemon instruction, we are done with it
10411
            del_daemon_inst(nInstId);
10412
         END IF;
10413
      END IF;
10414
 
10415
      CLOSE daemon_inst_cur;
10416
 
10417
   EXCEPTION
10418
      WHEN OTHERS
10419
      THEN
10420
         raise;
10421
 
10422
   END mark_daemon_inst_completed;
10423
/*-------------------------------------------------------------------------------------------------------*/
10424
   -- This function deletes any old daemon instruction that appears stranded due to a problem that might
10425
   -- have occured during buildtool operation such as might occur if the buildtool or the machine it was
10426
   -- hosted on came down whilst it was processing a daemon instruction.
10427
   PROCEDURE cleanup_stranded_daemon_insts
10428
   IS
10429
   BEGIN
10430
      -- delete records at least two days old
10431
      DELETE FROM daemon_instructions di
10432
      WHERE  (di.scheduled_datetime + 5) <= ora_sysdatetime;
10433
 
10434
   END cleanup_stranded_daemon_insts;
10435
/*-------------------------------------------------------------------------------------------------------*/
10436
  --This function supersedes function, add_daemon. Done for DEVI-046806
10437
   PROCEDURE add_daemon_config (
10438
      nrtagid           IN   NUMBER,
10439
      nbmcon_id         IN   NUMBER,
10440
      sdaemon_mode      IN   VARCHAR2,
10441
      sgbebuildfilter   IN   VARCHAR2
10442
   )
10443
   IS
10444
      nrecordnumber   NUMBER;
10445
      nrconid         NUMBER;
10446
      sdaemonhostname VARCHAR2(50);
10447
      ngbeid         NUMBER;
10448
   BEGIN
10449
      -- Get RCON_ID
10450
      SELECT seq_rcon_id.NEXTVAL
10451
      INTO nrconid
10452
      FROM DUAL;
10453
 
10454
      SELECT COUNT (*)
10455
      INTO nrecordnumber
10456
      FROM release_config
10457
      WHERE rtag_id = nrtagid;
10458
 
10459
      SELECT machine_hostname,gbe_id INTO sdaemonhostname,ngbeid
10460
      FROM build_machine_config
10461
      WHERE bmcon_id = nbmcon_id;
10462
 
10463
      INSERT INTO release_config
10464
             (rcon_id, rtag_id, daemon_hostname, daemon_mode,
4308 dpurdie 10465
                gbe_id, gbe_buildfilter, bmcon_id)
1373 dpurdie 10466
      VALUES (nrconid, nrtagid, sdaemonhostname, sdaemon_mode,
4308 dpurdie 10467
                ngbeid, sgbebuildfilter, nbmcon_id);
1373 dpurdie 10468
 
10469
      -- A newly configured daemon should initially be paused (DEVI-047277)
10470
      INSERT INTO run_level
10471
                  (rcon_id, pause)
10472
           VALUES (nrconid, 2);
10473
 
10474
   END;
10475
 
10476
/*-------------------------------------------------------------------------------------------------------*/
10477
  --This function supersedes function, update_daemon. Done for DEVI-046806
10478
   PROCEDURE update_daemon_config (
10479
      nrconid           IN   NUMBER,
10480
      nbmcon_id         IN   NUMBER,
10481
      sdaemon_mode      IN   VARCHAR2,
10482
      sgbebuildfilter   IN   VARCHAR2
10483
   )
10484
   IS
10485
      sdaemonhostname VARCHAR2(50);
10486
      ngbeid         NUMBER;
10487
   BEGIN
10488
 
10489
      SELECT machine_hostname,gbe_id INTO sdaemonhostname,ngbeid
10490
      FROM build_machine_config
10491
      WHERE bmcon_id = nbmcon_id;
10492
 
10493
      UPDATE release_config
10494
         SET daemon_hostname = sdaemonhostname,
10495
            gbe_id = ngbeid,
10496
            daemon_mode = sdaemon_mode,
4308 dpurdie 10497
            gbe_buildfilter = sgbebuildfilter,
6031 dpurdie 10498
            bmcon_id = nbmcon_id
1373 dpurdie 10499
      WHERE rcon_id = nrconid;
10500
   END;
10501
 
10502
 
10503
/*-------------------------------------------------------------------------------------------------------*/
10504
   PROCEDURE add_build_machine (
10505
      sdisplay_name          IN   VARCHAR2,
10506
      smachine_hostname      IN   VARCHAR2,
10507
      ngbeid                 IN   NUMBER,
5172 dpurdie 10508
      sdescription           IN   VARCHAR2,
10509
      sactive                IN   CHAR
1373 dpurdie 10510
   )
10511
   IS
10512
      nrecordnumber   NUMBER;
10513
      nbmcon_id       NUMBER;
10514
   BEGIN
10515
      -- Get BMCON_ID
10516
      SELECT seq_bmcon_id.NEXTVAL INTO nbmcon_id FROM DUAL;
10517
 
5172 dpurdie 10518
      INSERT INTO build_machine_config(bmcon_id, display_name, machine_hostname,gbe_id,description,active)
10519
            VALUES (nbmcon_id,sdisplay_name,smachine_hostname,ngbeid,sdescription, NVL(sactive,'N'));
1373 dpurdie 10520
 
10521
   EXCEPTION
10522
      WHEN DUP_VAL_ON_INDEX
10523
      THEN
10524
         raise_application_error (-20000,
10525
                                 'Cannot have duplicate machines.'
10526
                                 );
10527
 
10528
   END;
10529
 
10530
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 10531
 PROCEDURE duplicate_daemon_config (
10532
      nrtagid           IN   NUMBER,
10533
      nbmcon_id         IN   NUMBER,
10534
      sdaemonhostname   IN   VARCHAR2,
10535
      ngbe_id           IN   NUMBER,
10536
      sdaemon_mode      IN   VARCHAR2,
10537
      sgbebuildfilter   IN   VARCHAR2
10538
   )
10539
   IS
10540
      nrecordnumber   NUMBER;
10541
      nrconid         NUMBER;
10542
    BEGIN
6031 dpurdie 10543
 
4308 dpurdie 10544
      -- Get RCON_ID
10545
      SELECT seq_rcon_id.NEXTVAL
10546
      INTO nrconid
10547
      FROM DUAL;
10548
 
10549
      INSERT INTO release_config
10550
             (rcon_id, rtag_id, daemon_hostname, daemon_mode,
10551
                gbe_id, gbe_buildfilter, bmcon_id)
10552
      VALUES (nrconid, nrtagid, sdaemonhostname, sdaemon_mode,
10553
                ngbe_id, sgbebuildfilter, nbmcon_id);
6031 dpurdie 10554
 
4308 dpurdie 10555
    -- A newly configured daemon should initially be disabled (DEVI-047277)
10556
      INSERT INTO run_level
10557
                  (rcon_id, pause)
10558
           VALUES (nrconid, 2);
10559
 
10560
   END;
10561
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 10562
   PROCEDURE delete_build_machine (sbmcon_id_list IN VARCHAR2)
10563
   IS
10564
   BEGIN
10565
      DELETE FROM build_machine_config
10566
            WHERE bmcon_id IN (
10567
                     SELECT * FROM THE
10568
                              (SELECT CAST
10569
                                          (in_list_number (sbmcon_id_list) AS relmgr_number_tab_t
10570
                                          )
10571
                                 FROM DUAL
10572
                              ));
10573
   END;
10574
 
10575
 
10576
/*-------------------------------------------------------------------------------------------------------*/
10577
   PROCEDURE update_build_machine (
10578
      nbmcon_id              IN   NUMBER,
10579
      sdisplay_name          IN   VARCHAR2,
10580
      smachine_hostname      IN   VARCHAR2,
10581
      ngbeid                 IN   NUMBER,
5172 dpurdie 10582
      sdescription           IN   VARCHAR2,
10583
      sactive                IN   CHAR
1373 dpurdie 10584
   )
10585
   IS
10586
   BEGIN
10587
      UPDATE build_machine_config
10588
         SET display_name = sdisplay_name,
10589
             machine_hostname = smachine_hostname,
10590
             gbe_id = ngbeid,
5172 dpurdie 10591
             description = sdescription,
10592
             active = NVL(sactive, 'N')
1373 dpurdie 10593
      WHERE bmcon_id = nbmcon_id;
10594
   EXCEPTION
10595
      WHEN DUP_VAL_ON_INDEX
10596
      THEN
10597
         raise_application_error (-20000,
10598
                                 'Cannot have duplicate machines.'
10599
                                 );
10600
   END;
6031 dpurdie 10601
 
4553 dpurdie 10602
/*-------------------------------------------------------------------------------------------------------*/
10603
PROCEDURE import_daemons ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER  ) IS
10604
 
10605
   sSourceLocation VARCHAR2(4000);
10606
   sTargetLocation VARCHAR2(4000);
10607
   ProjId NUMBER;
6999 dpurdie 10608
   nIsOpen NUMBER;
4553 dpurdie 10609
   RconId NUMBER;
6999 dpurdie 10610
   bHasDaemons BOOLEAN := FALSE;
4553 dpurdie 10611
 
6999 dpurdie 10612
 
4553 dpurdie 10613
   -- this cursor gets the source release daemon configurations, ensuring that the
10614
   -- first record will be the master daemon, and subsequent records will be the slaves.
10615
   CURSOR curSrcReleaseConfigs IS
10616
    SELECT daemon_hostname, gbe_id, gbe_buildfilter, bmcon_id, daemon_mode
10617
     FROM RELEASE_CONFIG rc
10618
    WHERE rc.RTAG_ID = nSourceRtagId
10619
    ORDER BY rc.daemon_mode;
10620
    recSrcReleaseConfigs curSrcReleaseConfigs%ROWTYPE;
10621
 
10622
    -- this cursor looks for target release daemons
10623
   CURSOR curTgtReleaseConfigs IS
10624
    SELECT rcon_id
10625
     FROM RELEASE_CONFIG rc
10626
    WHERE rc.RTAG_ID = nTargetRtagId;
10627
    recTgtReleaseConfigs curTgtReleaseConfigs%ROWTYPE;
10628
 
10629
BEGIN
10630
   /*--------------- Business Rules Here -------------------*/
10631
   IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)
10632
   THEN
10633
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );
10634
   END IF;
10635
 
10636
   IF (nSourceRtagId = nTargetRtagId) THEN
10637
      RAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );
10638
   END IF;
10639
 
10640
   -- Check if Target release is in OPEN mode
6999 dpurdie 10641
  SELECT count(*)  INTO  nIsOpen
10642
    FROM RELEASE_TAGS rt
10643
    WHERE rt.RTAG_ID = nTargetRtagId
10644
    AND rt.OFFICIAL in ('N', 'R', 'C');
4553 dpurdie 10645
 
6999 dpurdie 10646
  IF (nIsOpen > 1) THEN
10647
    RAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the daemons.' );
10648
  END IF;
4553 dpurdie 10649
 
6999 dpurdie 10650
   -- check that the target does not have daemons configured
4553 dpurdie 10651
   OPEN curTgtReleaseConfigs;
10652
   FETCH curtgtReleaseConfigs INTO recTgtReleaseConfigs;
6999 dpurdie 10653
   bHasDaemons := curTgtReleaseConfigs%FOUND;
4553 dpurdie 10654
   CLOSE curTgtReleaseConfigs;
6999 dpurdie 10655
 
10656
  IF bHasDaemons THEN
10657
    RAISE_APPLICATION_ERROR (-20000, 'Release must not have daemons configured' );
10658
  END IF;
4553 dpurdie 10659
 
10660
   /*-------------------------------------------------------*/
10661
 
10662
   --Import Release Configuration Information
10663
   OPEN curSrcReleaseConfigs;
10664
   FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
10665
 
6999 dpurdie 10666
   WHILE curSrcReleaseConfigs%FOUND
4553 dpurdie 10667
   LOOP
10668
      -- add a daemon to the target release
6031 dpurdie 10669
      PK_BUILDAPI.duplicate_daemon_config( nTargetRtagId,
10670
                                     recSrcReleaseConfigs.bmcon_id,
10671
                                     recSrcReleaseConfigs.daemon_hostname,
10672
                                     recSrcReleaseConfigs.gbe_id,
4553 dpurdie 10673
                                     recSrcReleaseConfigs.daemon_mode ,
10674
                                     recSrcReleaseConfigs.gbe_buildfilter );
10675
 
10676
      FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
10677
   END LOOP;
10678
   CLOSE curSrcReleaseConfigs;
10679
 
6031 dpurdie 10680
 
4553 dpurdie 10681
   /* Log Project Action */
10682
   -- Get Source Location
10683
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sSourceLocation
10684
     FROM RELEASE_TAGS rt,
10685
           PROJECTS pr
10686
    WHERE rt.PROJ_ID = pr.PROJ_ID
10687
      AND rt.RTAG_ID = nSourceRtagId;
10688
 
10689
   -- Get Target Location
10690
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sTargetLocation
10691
     FROM RELEASE_TAGS rt,
10692
           PROJECTS pr
10693
    WHERE rt.PROJ_ID = pr.PROJ_ID
10694
      AND rt.RTAG_ID = nTargetRtagId;
10695
 
10696
   -- Get project id
10697
   SELECT rt.PROJ_ID  INTO  ProjId
10698
     FROM RELEASE_TAGS rt
10699
    WHERE rt.RTAG_ID = nTargetRtagId;
10700
 
10701
   Log_Project_Action ( ProjId, 'import_daemon_configuration', nUserId, 'SOURCE: '|| sSourceLocation ||'   TARGET: '|| sTargetLocation, nTargetRtagId );
10702
END;
10703
 
5892 dpurdie 10704
/*-------------------------------------------------------------------------------------------------------*/
10705
PROCEDURE set_build_plan (rtagId IN NUMBER, nStartIndex IN NUMBER, pvList IN VARCHAR2)
10706
   IS
10707
    nPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
10708
    SeqNum NUMBER;
6031 dpurdie 10709
 
5892 dpurdie 10710
   BEGIN
6031 dpurdie 10711
 
5892 dpurdie 10712
   -- Remove all the old entries, on first usage
10713
   IF nStartIndex = 0 then
10714
    DELETE BUILD_PLAN WHERE RTAG_ID = rtagId;
10715
    SeqNum := 0;
10716
   ELSE
10717
    SELECT COUNT(*) into SeqNum from BUILD_PLAN WHERE RTAG_ID = rtagId;
10718
   END IF;
6031 dpurdie 10719
 
5892 dpurdie 10720
   -- Set start sequence number
10721
   nPvIdCollector := IN_LIST_NUMBER ( pvList );
10722
 
10723
   FOR i IN 1..nPvIdCollector.COUNT
10724
   LOOP
10725
      -- Update build plan with order
10726
      INSERT INTO BUILD_PLAN (RTAG_ID, BUILD_ORDER, PV_ID) VALUES (rtagId, SeqNum, nPvIdCollector(i));
10727
      SeqNum := SeqNum + 1;
10728
 
10729
   END LOOP;
10730
END;
10731
 
1373 dpurdie 10732
END pk_buildapi;
4040 dpurdie 10733
 
6999 dpurdie 10734
/
4040 dpurdie 10735
--------------------------------------------------------
10736
--  DDL for Package Body PK_ENVIRONMENT
10737
--------------------------------------------------------
10738
 
5172 dpurdie 10739
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_ENVIRONMENT" 
1373 dpurdie 10740
IS
10741
 
10742
   /*-------------------------------------------------------------------------------------------------------*/
10743
   FUNCTION select_environment_area (cdlock IN package_versions.dlocked%TYPE)
10744
     RETURN NUMBER
10745
   IS
10746
   BEGIN
10747
      /*
10748
     || N - unlocked
10749
     || Y - release and locked
10750
     || P - penging approval
10751
     || A - approved package ready for auto-build
10752
     */
10753
     IF cdlock = 'N' OR cdlock = 'R'
10754
     THEN
10755
       -- WORK IN PROGRESS --
10756
       RETURN 0;
10757
     ELSIF cdlock = 'P' OR cdlock = 'A'
10758
     THEN
10759
       -- PENDING --
10760
       RETURN 1;
10761
     ELSIF cdlock = 'Y'
10762
     THEN
10763
       -- RELEASED --
10764
       RETURN 2;
10765
     ELSE
10766
       -- NOT FOUND --
10767
       raise_application_error
10768
                   (-20000,
10769
                      'Cannot decide where to place package. [cDlock='
10770
                    || cdlock
10771
                    || ']'
10772
                   );
10773
     END IF;
10774
   END;
10775
 
10776
/*-------------------------------------------------------------------------------------------------------*/
10777
   FUNCTION get_package_area (pvid IN NUMBER, rtagid IN NUMBER)
10778
     RETURN NUMBER
10779
   IS
10780
     envtab   NUMBER         := -1;
10781
 
10782
     CURSOR curarea
10783
     IS
10784
       SELECT 2 AS envtab
10785
         FROM release_content rc
10786
        WHERE rc.rtag_id = rtagid AND rc.pv_id = pvid
10787
       UNION
10788
       SELECT 0 AS envtab
10789
         FROM work_in_progress wip
10790
        WHERE wip.rtag_id = rtagid AND wip.pv_id = pvid
10791
       UNION
10792
       SELECT 1 AS envtab
10793
         FROM planned pl
10794
        WHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;
10795
 
10796
     recarea   curarea%ROWTYPE;
10797
   BEGIN
10798
     OPEN curarea;
10799
 
10800
     FETCH curarea
10801
      INTO recarea;
10802
 
10803
     IF curarea%FOUND
10804
     THEN
10805
       envtab := recarea.envtab;
10806
     END IF;
10807
 
10808
     CLOSE curarea;
10809
 
10810
     RETURN envtab;
10811
   END;
10812
 
10813
/*-------------------------------------------------------------------------------------------------------*/
10814
   FUNCTION get_view_location (pvid IN NUMBER, rtagid IN NUMBER)
10815
     RETURN NUMBER
10816
   IS
10817
     ispatch   package_versions.dlocked%TYPE;
10818
     viewid   NUMBER                    := -1;
10819
 
10820
     CURSOR curview
10821
     IS
10822
       SELECT rc.base_view_id AS view_id
10823
         FROM release_content rc
10824
        WHERE rc.rtag_id = rtagid AND rc.pv_id = pvid
10825
       UNION
10826
       SELECT wip.view_id AS view_id
10827
         FROM work_in_progress wip
10828
        WHERE wip.rtag_id = rtagid AND wip.pv_id = pvid
10829
       UNION
10830
       SELECT pl.view_id AS view_id
10831
         FROM planned pl
10832
        WHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;
10833
 
10834
     recview   curview%ROWTYPE;
10835
   BEGIN
10836
     -- Get dlock state
10837
     SELECT pv.is_patch
10838
      INTO ispatch
10839
      FROM package_versions pv
10840
      WHERE pv.pv_id = pvid;
10841
 
10842
     -- Decide which view id should package go under.
10843
     IF (ispatch != 'Y') OR (ispatch IS NULL)
10844
     THEN
10845
       -- Get VIEW ID of Package
10846
       OPEN curview;
10847
 
10848
       FETCH curview
10849
        INTO recview;
10850
 
10851
       IF curview%FOUND
10852
       THEN
10853
         viewid := recview.view_id;
10854
       ELSE
10855
         raise_application_error
10856
            (-20000,
10857
               'Cannot find view_id to proceed. [PvId='
10858
            || pvid
10859
            || ']. The current version may not exist in the release anymore.'
10860
            );
10861
       END IF;
10862
 
10863
       CLOSE curview;
10864
     ELSE
10865
       -- Get VIEW ID of Patch (view id of parent package)
10866
       SELECT rc.base_view_id
10867
         INTO viewid
10868
         FROM release_content rc, package_patches ppv
10869
        WHERE rc.rtag_id = rtagid
10870
         AND rc.pv_id = ppv.pv_id
10871
         AND ppv.patch_id = pvid;
10872
     END IF;
10873
 
10874
     RETURN viewid;
10875
   END;
10876
 
10877
/*-------------------------------------------------------------------------------------------------------*/
5384 dpurdie 10878
--  Add a package to the specified release
10879
--  Default imode: Will determine the tab ( WIP, PENDING, RELEASE ) to add the package
10880
--  Otherwise will Add the package to the PENDING set
10881
--
1373 dpurdie 10882
   PROCEDURE add_package (
10883
     pvid    IN   NUMBER,
5384 dpurdie 10884
     viewid  IN   NUMBER,
10885
     rtagid  IN   NUMBER,
10886
     userid  IN   NUMBER,
10887
     imode   IN   CHAR default NULL
1373 dpurdie 10888
   )
10889
   IS
10890
     dlocked   package_versions.dlocked%TYPE;
10891
     envtab   NUMBER;
5384 dpurdie 10892
     pendOpr CHAR := 'R';
1373 dpurdie 10893
   BEGIN
10894
     IF can_edit_pkg_in_project (pvid, rtagid) = 1
10895
     THEN
5384 dpurdie 10896
       IF iMode IS NULL THEN
10897
         -- Determine the tab to use based on the package lock state
10898
         -- Get dlock state
10899
         SELECT pv.dlocked
10900
           INTO dlocked
10901
           FROM package_versions pv
10902
          WHERE pv.pv_id = pvid;
6031 dpurdie 10903
 
5384 dpurdie 10904
         -- Get which area should go under
10905
         envtab := select_environment_area (dlocked);
10906
       ELSE
10907
        -- Assume that the package is to be added to Pending
10908
        envtab := 1;
10909
        pendOpr := 'A';
10910
       END IF;
6999 dpurdie 10911
       -- Log
10912
       --log_action (pvid, 'action', userid, 'Start of Package Add...');
1373 dpurdie 10913
 
5384 dpurdie 10914
       -- Add Package
1373 dpurdie 10915
       IF envtab = 0
10916
       THEN
10917
         -- WORK IN PROGRESS --
10918
         pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
10919
       ELSIF envtab = 1
10920
       THEN
10921
         -- PENDING --
5384 dpurdie 10922
         pk_planned.add_package (pvid, viewid, rtagid, userid, pendOpr);
1373 dpurdie 10923
       ELSIF envtab = 2
10924
       THEN
10925
         -- RELEASED --
10926
         -- NOTE: this package will be replaced with matching package
10927
         pk_release.add_package (pvid, viewid, rtagid, userid);
10928
         -- Now do post Release Actions
10929
         pk_release.run_post_actions (pvid, rtagid);
10930
       END IF;
6999 dpurdie 10931
 
10932
       -- Log
10933
       --log_action (pvid, 'action', userid, 'End of Package Add...');
1373 dpurdie 10934
     END IF;
10935
   END;
10936
 
10937
/*-------------------------------------------------------------------------------------------------------*/
10938
   PROCEDURE add_package_bulk (
10939
     pvidlist   IN   VARCHAR2,
10940
     viewid    IN   NUMBER,
10941
     rtagid    IN   NUMBER,
5384 dpurdie 10942
     userid    IN   NUMBER,
10943
     imode     IN   CHAR DEFAULT NULL
1373 dpurdie 10944
   )
10945
   IS
5384 dpurdie 10946
     nidcollector relmgr_number_tab_t         := relmgr_number_tab_t();
1373 dpurdie 10947
     dlocked      package_versions.dlocked%TYPE;
10948
     pvid         NUMBER;
10949
     envtab       NUMBER;
10950
   BEGIN
10951
     /*--------------- Business Rules Here -------------------*/
10952
     IF (pvidlist IS NULL)
10953
     THEN
10954
       raise_application_error (-20000,
10955
                          'Please select at least one package.'
10956
                         );
10957
     END IF;
10958
 
10959
/*-------------------------------------------------------*/
10960
     nidcollector := in_list_number (pvidlist);
10961
 
10962
     FOR i IN 1 .. nidcollector.COUNT
10963
     LOOP
10964
       pvid := nidcollector (i);
5384 dpurdie 10965
       add_package (pvid, viewid, rtagid, userid, imode);
1373 dpurdie 10966
     END LOOP;
10967
   END;
10968
 
10969
/*-------------------------------------------------------------------------------------------------------*/
10970
   PROCEDURE replace_package (
10971
     newpvid  IN   NUMBER,
10972
     oldpvid  IN   NUMBER,
10973
     rtagid   IN   NUMBER,
10974
     userid   IN   NUMBER
10975
   )
10976
   IS
10977
     dlocked      package_versions.dlocked%TYPE;
10978
     viewid       NUMBER;
10979
     envtab       NUMBER;
10980
     ROWCOUNT     NUMBER;
10981
     creleasemode CHAR (1);
10982
     npkgid       NUMBER;
10983
   BEGIN
10984
     /*--------------- Business Rules Here -------------------*/
10985
     -- Check if oldPvId exists. It could have been removed
10986
     SELECT COUNT (pv.pv_id)
10987
       INTO ROWCOUNT
10988
       FROM package_versions pv
10989
      WHERE pv.pv_id = oldpvid;
10990
 
10991
/*-------------------------------------------------------*/
10992
 
10993
     /* This procedure is usually used by "History" option in Release Manager */
10994
 
10995
     -- Get dlock state
10996
     SELECT pv.dlocked
10997
       INTO dlocked
10998
       FROM package_versions pv
10999
      WHERE pv.pv_id = newpvid;
11000
 
11001
     -- Get VIEW_ID ---
11002
     IF ROWCOUNT = 1
11003
     THEN
11004
       viewid := get_view_location (oldpvid, rtagid);
11005
     ELSE
11006
       -- Set ViewID to default
11007
       viewid := 7;
11008
     END IF;
11009
 
11010
     -- Get which area should go under
11011
     envtab := select_environment_area (dlocked);
6999 dpurdie 11012
     -- Log
11013
     --log_action (oldpvid, 'action', userid, 'Start of Package Replace...');
1373 dpurdie 11014
 
11015
     -- Replace package
11016
     IF envtab = 0
11017
     THEN
11018
       -- WORK IN PROGRESS --
11019
 
11020
       -- Delete old package
11021
       pk_work_in_progress.remove_package (oldpvid, rtagid, userid);
11022
 
11023
       -- Add new package
11024
       pk_work_in_progress.add_package (newpvid, viewid, rtagid, userid);
11025
     ELSIF envtab = 1
11026
     THEN
11027
       -- PENDING --
11028
 
11029
       -- Delete old package
11030
       pk_planned.remove_package (oldpvid, rtagid, userid);
11031
 
11032
       -- Add new package
11033
       pk_planned.add_package (newpvid, viewid, rtagid, userid);
11034
     ELSIF envtab = 2
11035
     THEN
11036
       -- RELEASED --
6031 dpurdie 11037
 
5172 dpurdie 11038
       -- Replace Package
11039
       pk_release.replace_package(newpvid, oldpvid, rtagid, userid);
6031 dpurdie 11040
 
1373 dpurdie 11041
       -- Now do post Release Actions
11042
       pk_release.run_post_actions (newpvid, rtagid);
11043
     END IF;
11044
 
6999 dpurdie 11045
     -- Log
11046
     --log_action (oldpvid, 'action', userid, 'End of Package Replace...');
1373 dpurdie 11047
   END;
11048
 
11049
/*-------------------------------------------------------------------------------------------------------*/
11050
   FUNCTION remove_package (
11051
     pvid        IN   NUMBER,
11052
     rtagid      IN   NUMBER,
11053
     userid      IN   NUMBER,
11054
     forceremove IN   CHAR
11055
   )
11056
     RETURN NUMBER
11057
   IS
11058
     envtab      NUMBER;
11059
     isused      BOOLEAN;
11060
     recordcount   NUMBER;
11061
   BEGIN
11062
/*--------------- Business Rules Here -------------------*/
11063
/*-------------------------------------------------------*/
11064
 
11065
     -- Find location of package
11066
     envtab := get_package_area (pvid, rtagid);
11067
 
11068
     -- Remove Package
11069
     IF envtab = 0
11070
     THEN
11071
       -- WORK IN PROGRESS --
11072
       -- Delete package
11073
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
11074
 
11075
       RETURN 0;
11076
     ELSIF envtab = 1
11077
     THEN
11078
       -- PENDING --
11079
       -- Delete package
11080
       pk_planned.remove_package (pvid, rtagid, userid);
11081
 
11082
       RETURN 0;
11083
     ELSIF envtab = 2
11084
     THEN
11085
       -- RELEASED --
11086
 
11087
       -- Check if is used by other packages
11088
       isused := TRUE;
11089
 
11090
       IF forceremove = 'N'
11091
       THEN
6031 dpurdie 11092
          select count(dpv.PKG_ID) INTO recordcount from
5172 dpurdie 11093
          (SELECT  rc.pv_id
11094
          FROM RELEASE_CONTENT rc, PEGGED_VERSIONS peg
11095
            WHERE rc.rtag_id = rtagid
11096
            AND peg.RTAG_ID(+) = rc.RTAG_ID
11097
            AND peg.PV_ID(+) = rc.PV_ID
11098
            AND peg.rtag_id is null
11099
            AND rc.SDKTAG_ID is null
11100
            ) arc,
11101
          PACKAGE_DEPENDENCIES dep,
11102
          PACKAGE_VERSIONS pv,
11103
          PACKAGE_VERSIONS dpv,
11104
          PACKAGE_VERSIONS bpv
11105
          where dep.PV_ID = arc.pv_id
11106
          AND dep.pv_id = pv.pv_id
11107
          AND dep.dpv_id = dpv.PV_ID
11108
          AND dpv.PKG_ID = bpv.PKG_ID
11109
          AND NVL(dpv.V_EXT, '.NULL') = NVL(bpv.V_EXT, '.NULL')
11110
          AND bpv.pv_id = pvid;
1373 dpurdie 11111
 
11112
         IF recordcount > 0
11113
         THEN
11114
            RETURN 1;               -- Return 1 as package being used
11115
         ELSE
11116
            isused := FALSE;
11117
         END IF;
11118
       END IF;
11119
 
11120
       IF forceremove = 'Y' OR NOT isused
11121
       THEN
11122
         -- Delete old package
11123
         pk_release.remove_package (pvid, rtagid, userid);
11124
 
11125
         -- Delete old package's pegging info
11126
         DELETE FROM PEGGED_VERSIONS pegv WHERE pegv.RTAG_ID = rtagid AND pegv.PV_ID = pvid;
11127
 
11128
         -- Delete old package's advisory ripple info
11129
         DELETE FROM ADVISORY_RIPPLE avr WHERE avr.RTAG_ID = rtagid AND avr.PV_ID = pvid;
11130
 
11131
         -- Now do post Release Actions
11132
         pk_release.run_post_actions (pvid, rtagid);
11133
         RETURN 0;
11134
       END IF;
11135
     END IF;
11136
   END;
11137
 
11138
/*-------------------------------------------------------------------------------------------------------*/
11139
   -- DEVI-45275 added the return of the new "operation" column in the recordset.
7039 dpurdie 11140
PROCEDURE get_environment_items (
1373 dpurdie 11141
     viewtype         IN      NUMBER,
11142
     userid           IN      NUMBER,
11143
     rtagid           IN      NUMBER,
11144
     sviewidshowlist  IN      VARCHAR2,
11145
     ntruerecordcount OUT     NUMBER,
11146
     recordset        OUT     typecur
11147
   )
11148
   IS
11149
   BEGIN
11150
     -- Get true record count because views can give false count
11151
     SELECT COUNT (pl.pv_id)
11152
      INTO ntruerecordcount
11153
      FROM environment_view pl
11154
      WHERE pl.rtag_id = rtagid;
11155
 
11156
     IF viewtype = 1
11157
     THEN
11158
       /*--- GUEST VIEW ---*/
11159
       OPEN recordset FOR
11160
         SELECT   *
11161
            FROM (
11162
                 /* Base Views collapsed */
11163
                 SELECT DISTINCT vi.view_id, vi.view_name,
11164
                             TO_NUMBER (NULL) AS pkg_state,
11165
                             TO_NUMBER (NULL) AS deprecated_state,
11166
                             TO_NUMBER (NULL) AS pv_id,
11167
                             NULL AS pkg_name, NULL AS pkg_version,
11168
                             NULL AS dlocked, NULL AS pv_description,
11169
                             rel.operation
11170
                         FROM environment_view rel, views vi
11171
                        WHERE rel.view_id = vi.view_id
11172
                          AND rtag_id = rtagid
11173
                          AND rel.view_id NOT IN (
11174
                               SELECT *
11175
                                 FROM THE
11176
                                       (SELECT CAST
11177
                                               (in_list_number
11178
                                                  (sviewidshowlist
11179
                                                  ) AS relmgr_number_tab_t
11180
                                               )
11181
                                         FROM DUAL
11182
                                       ))
11183
                 UNION
11184
                 /* Base Views expanded */
11185
                 SELECT vi.view_id, vi.view_name,
11186
                      DECODE (rel.pkg_state,
11187
                            NULL, 0,
11188
                            rel.pkg_state
11189
                           ) AS pkg_state,
11190
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
11191
                      pv.pkg_version, pv.dlocked, pv.pv_description,
11192
                      rel.operation
11193
                  FROM environment_view rel,
11194
                      PACKAGES pkg,
11195
                      package_versions pv,
11196
                      views vi
11197
                  WHERE pv.pkg_id = pkg.pkg_id
11198
                   AND rel.pv_id = pv.pv_id
11199
                   AND rel.view_id = vi.view_id
11200
                   AND rel.view_id IN (
11201
                        SELECT *
11202
                          FROM THE
11203
                                (SELECT CAST
11204
                                        (in_list_number
11205
                                               (sviewidshowlist) AS relmgr_number_tab_t
11206
                                        )
11207
                                  FROM DUAL
11208
                                ))
11209
                   AND rtag_id = rtagid) ord
11210
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
11211
     ELSIF viewtype = 2
11212
     THEN
11213
       /*--- PERSONAL VIEW ---*/
11214
       OPEN recordset FOR
11215
         SELECT   *
11216
            FROM (
11217
                 /* Base Views collapsed */
11218
                 SELECT DISTINCT vi.view_id, vi.view_name,
11219
                             TO_NUMBER (NULL) AS pkg_state,
11220
                             TO_NUMBER (NULL) AS deprecated_state,
11221
                             TO_NUMBER (NULL) AS pv_id,
11222
                             NULL AS pkg_name, NULL AS pkg_version,
11223
                             NULL AS dlocked, NULL AS pv_description,
11224
                             rel.operation
11225
                         FROM environment_view rel,
11226
                             view_settings vs,
11227
                             views vi
11228
                        WHERE rel.view_id = vi.view_id
11229
                          AND vs.view_id = rel.view_id
11230
                          AND vs.user_id = userid
11231
                          AND rtag_id = rtagid
11232
                          AND rel.view_id NOT IN (
11233
                               SELECT *
11234
                                 FROM THE
11235
                                       (SELECT CAST
11236
                                               (in_list_number
11237
                                                  (sviewidshowlist
11238
                                                  ) AS relmgr_number_tab_t
11239
                                               )
11240
                                         FROM DUAL
11241
                                       ))
11242
                 UNION
11243
                 /* Base Views expanded */
11244
                 SELECT vi.view_id, vi.view_name,
11245
                      DECODE (rel.pkg_state,
11246
                            NULL, 0,
11247
                            rel.pkg_state
11248
                           ) AS pkg_state,
11249
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
11250
                      pv.pkg_version, pv.dlocked, pv.pv_description,
11251
                      rel.operation
11252
                  FROM environment_view rel,
11253
                      PACKAGES pkg,
11254
                      package_versions pv,
11255
                      views vi,
11256
                      view_settings vs
11257
                  WHERE pv.pkg_id = pkg.pkg_id
11258
                   AND rel.pv_id = pv.pv_id
11259
                   AND rel.view_id = vi.view_id
11260
                   AND vs.view_id = vi.view_id
11261
                   AND vs.user_id = userid
11262
                   AND rel.view_id IN (
11263
                        SELECT *
11264
                          FROM THE
11265
                                (SELECT CAST
11266
                                        (in_list_number
11267
                                               (sviewidshowlist) AS relmgr_number_tab_t
11268
                                        )
11269
                                  FROM DUAL
11270
                                ))
11271
                   AND rtag_id = rtagid
11272
                 UNION
11273
                 /* Private Views collapsed */
11274
                 SELECT vi.view_id, vi.view_name,
11275
                      TO_NUMBER (NULL) AS pkg_state,
11276
                      TO_NUMBER (NULL) AS deprecated_state,
11277
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
11278
                      NULL AS pkg_version, NULL AS dlocked,
11279
                      NULL AS pv_description,
11280
                      rel.operation
11281
                  FROM view_settings vs,
11282
                      view_def vd,
11283
                      views vi,
11284
                      environment_view rel,
11285
                      package_versions pv
11286
                  WHERE vs.view_id = vi.view_id
11287
                   AND rel.pv_id = pv.pv_id
11288
                   AND vd.pkg_id = pv.pkg_id
11289
                   AND vd.view_id = vi.view_id
11290
                   AND vi.base_view = 'N'
11291
                   AND rel.rtag_id = rtagid
11292
                   AND vs.user_id = userid
11293
                   AND vi.view_id NOT IN (
11294
                        SELECT *
11295
                          FROM THE
11296
                                (SELECT CAST
11297
                                        (in_list_number
11298
                                               (sviewidshowlist) AS relmgr_number_tab_t
11299
                                        )
11300
                                  FROM DUAL
11301
                                ))
11302
                 UNION
11303
                 /* Private Views expanded */
11304
                 SELECT vi.view_id, vi.view_name,
11305
                      DECODE (rel.pkg_state,
11306
                            NULL, 0,
11307
                            rel.pkg_state
11308
                           ) AS pkg_state,
11309
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
11310
                      pv.pkg_version, pv.dlocked, pv.pv_description,
11311
                      rel.operation
11312
                  FROM users usr,
11313
                      view_settings vs,
11314
                      view_def vd,
11315
                      views vi,
11316
                      environment_view rel,
11317
                      PACKAGES pkg,
11318
                      package_versions pv
11319
                  WHERE vs.user_id = usr.user_id
11320
                   AND vs.view_id = vi.view_id
11321
                   AND vd.view_id = vi.view_id
11322
                   AND pv.pkg_id = pkg.pkg_id
11323
                   AND rel.pv_id = pv.pv_id
11324
                   AND rel.rtag_id = rtagid
11325
                   AND vd.pkg_id = pkg.pkg_id
11326
                   AND vi.base_view = 'N'
11327
                   AND vi.view_id IN (
11328
                        SELECT *
11329
                          FROM THE
11330
                                (SELECT CAST
11331
                                        (in_list_number
11332
                                               (sviewidshowlist) AS relmgr_number_tab_t
11333
                                        )
11334
                                  FROM DUAL
11335
                                ))
11336
                   AND usr.user_id = userid) ord
11337
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
11338
     END IF;
11339
   END;
11340
 
11341
/*-------------------------------------------------------------------------------------------------------*/
7039 dpurdie 11342
  PROCEDURE get_released_items (
1373 dpurdie 11343
     viewtype         IN      NUMBER,
11344
     userid           IN      NUMBER,
11345
     rtagid           IN      NUMBER,
11346
     sviewidshowlist  IN      VARCHAR2,
11347
     ntruerecordcount OUT     NUMBER,
11348
     recordset        OUT     typecur
11349
   )
11350
   IS
11351
   BEGIN
11352
     -- Get true record count because views can give false count
7039 dpurdie 11353
     SELECT COUNT (pl.pv_id)
1373 dpurdie 11354
      INTO ntruerecordcount
7039 dpurdie 11355
      FROM environment_view pl
11356
      WHERE pl.rtag_id = rtagid;
1373 dpurdie 11357
 
11358
     IF viewtype = 1
11359
     THEN
11360
       /*--- GUEST VIEW ---*/
11361
       OPEN recordset FOR
11362
         SELECT   *
11363
            FROM (
11364
                 /* Base Views collapsed */
11365
                 SELECT DISTINCT vi.view_id, vi.view_name,
11366
                             TO_NUMBER (NULL) AS pkg_state,
11367
                             TO_NUMBER (NULL) AS deprecated_state,
11368
                             TO_NUMBER (NULL) AS pv_id,
11369
                             NULL AS pkg_name, NULL AS pkg_version,
7039 dpurdie 11370
                             NULL AS dlocked, NULL AS pv_description,
11371
                             rel.operation
11372
                         FROM environment_view rel, views vi
11373
                        WHERE rel.view_id = vi.view_id
11374
                          AND rel.env_area = 2
1373 dpurdie 11375
                          AND rtag_id = rtagid
7039 dpurdie 11376
                          AND rel.view_id NOT IN (
1373 dpurdie 11377
                               SELECT *
11378
                                 FROM THE
11379
                                       (SELECT CAST
11380
                                               (in_list_number
11381
                                                  (sviewidshowlist
11382
                                                  ) AS relmgr_number_tab_t
11383
                                               )
11384
                                         FROM DUAL
11385
                                       ))
11386
                 UNION
11387
                 /* Base Views expanded */
7039 dpurdie 11388
                 SELECT vi.view_id, vi.view_name,
11389
                     rel.pkg_state,
1373 dpurdie 11390
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7039 dpurdie 11391
                      pv.pkg_version, pv.dlocked, pv.pv_description,
11392
                      rel.operation
11393
                  FROM environment_view rel,
1373 dpurdie 11394
                      PACKAGES pkg,
11395
                      package_versions pv,
11396
                      views vi
11397
                  WHERE pv.pkg_id = pkg.pkg_id
11398
                   AND rel.pv_id = pv.pv_id
7039 dpurdie 11399
                   AND rel.env_area = 2
11400
                   AND rel.view_id = vi.view_id
11401
                   AND rel.view_id IN (
1373 dpurdie 11402
                        SELECT *
11403
                          FROM THE
11404
                                (SELECT CAST
11405
                                        (in_list_number
11406
                                               (sviewidshowlist) AS relmgr_number_tab_t
11407
                                        )
11408
                                  FROM DUAL
11409
                                ))
11410
                   AND rtag_id = rtagid) ord
11411
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
11412
     ELSIF viewtype = 2
11413
     THEN
11414
       /*--- PERSONAL VIEW ---*/
11415
       OPEN recordset FOR
11416
         SELECT   *
11417
            FROM (
11418
                 /* Base Views collapsed */
11419
                 SELECT DISTINCT vi.view_id, vi.view_name,
11420
                             TO_NUMBER (NULL) AS pkg_state,
11421
                             TO_NUMBER (NULL) AS deprecated_state,
11422
                             TO_NUMBER (NULL) AS pv_id,
11423
                             NULL AS pkg_name, NULL AS pkg_version,
7039 dpurdie 11424
                             NULL AS dlocked, NULL AS pv_description,
11425
                             rel.operation
11426
                         FROM environment_view rel,
1373 dpurdie 11427
                             view_settings vs,
11428
                             views vi
7039 dpurdie 11429
                        WHERE rel.view_id = vi.view_id
11430
                          AND rel.env_area = 2
11431
                          AND vs.view_id = rel.view_id
1373 dpurdie 11432
                          AND vs.user_id = userid
11433
                          AND rtag_id = rtagid
7039 dpurdie 11434
                          AND rel.view_id NOT IN (
1373 dpurdie 11435
                               SELECT *
11436
                                 FROM THE
11437
                                       (SELECT CAST
11438
                                               (in_list_number
11439
                                                  (sviewidshowlist
11440
                                                  ) AS relmgr_number_tab_t
11441
                                               )
11442
                                         FROM DUAL
11443
                                       ))
11444
                 UNION
11445
                 /* Base Views expanded */
7039 dpurdie 11446
                 SELECT vi.view_id, vi.view_name,
11447
                        rel.pkg_state,
1373 dpurdie 11448
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7039 dpurdie 11449
                      pv.pkg_version, pv.dlocked, pv.pv_description,
11450
                      rel.operation
11451
                  FROM environment_view rel,
1373 dpurdie 11452
                      PACKAGES pkg,
11453
                      package_versions pv,
11454
                      views vi,
11455
                      view_settings vs
11456
                  WHERE pv.pkg_id = pkg.pkg_id
11457
                   AND rel.pv_id = pv.pv_id
7039 dpurdie 11458
                   AND rel.view_id = vi.view_id
11459
                   AND rel.env_area = 2
1373 dpurdie 11460
                   AND vs.view_id = vi.view_id
11461
                   AND vs.user_id = userid
7039 dpurdie 11462
                   AND rel.view_id IN (
1373 dpurdie 11463
                        SELECT *
11464
                          FROM THE
11465
                                (SELECT CAST
11466
                                        (in_list_number
11467
                                               (sviewidshowlist) AS relmgr_number_tab_t
11468
                                        )
11469
                                  FROM DUAL
11470
                                ))
11471
                   AND rtag_id = rtagid
11472
                 UNION
11473
                 /* Private Views collapsed */
11474
                 SELECT vi.view_id, vi.view_name,
11475
                      TO_NUMBER (NULL) AS pkg_state,
11476
                      TO_NUMBER (NULL) AS deprecated_state,
11477
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
11478
                      NULL AS pkg_version, NULL AS dlocked,
7039 dpurdie 11479
                      NULL AS pv_description,
11480
                      rel.operation
1373 dpurdie 11481
                  FROM view_settings vs,
11482
                      view_def vd,
11483
                      views vi,
7039 dpurdie 11484
                      environment_view rel,
1373 dpurdie 11485
                      package_versions pv
11486
                  WHERE vs.view_id = vi.view_id
7039 dpurdie 11487
                   AND rel.env_area = 2
1373 dpurdie 11488
                   AND rel.pv_id = pv.pv_id
11489
                   AND vd.pkg_id = pv.pkg_id
11490
                   AND vd.view_id = vi.view_id
11491
                   AND vi.base_view = 'N'
11492
                   AND rel.rtag_id = rtagid
11493
                   AND vs.user_id = userid
11494
                   AND vi.view_id NOT IN (
11495
                        SELECT *
11496
                          FROM THE
11497
                                (SELECT CAST
11498
                                        (in_list_number
11499
                                               (sviewidshowlist) AS relmgr_number_tab_t
11500
                                        )
11501
                                  FROM DUAL
11502
                                ))
11503
                 UNION
11504
                 /* Private Views expanded */
7039 dpurdie 11505
                 SELECT vi.view_id, vi.view_name,
11506
                      rel.pkg_state,
1373 dpurdie 11507
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7039 dpurdie 11508
                      pv.pkg_version, pv.dlocked, pv.pv_description,
11509
                      rel.operation
1373 dpurdie 11510
                  FROM users usr,
11511
                      view_settings vs,
11512
                      view_def vd,
11513
                      views vi,
7039 dpurdie 11514
                      environment_view rel,
1373 dpurdie 11515
                      PACKAGES pkg,
11516
                      package_versions pv
11517
                  WHERE vs.user_id = usr.user_id
11518
                   AND vs.view_id = vi.view_id
7039 dpurdie 11519
                   AND rel.env_area = 2
1373 dpurdie 11520
                   AND vd.view_id = vi.view_id
11521
                   AND pv.pkg_id = pkg.pkg_id
11522
                   AND rel.pv_id = pv.pv_id
11523
                   AND rel.rtag_id = rtagid
11524
                   AND vd.pkg_id = pkg.pkg_id
11525
                   AND vi.base_view = 'N'
11526
                   AND vi.view_id IN (
11527
                        SELECT *
11528
                          FROM THE
11529
                                (SELECT CAST
11530
                                        (in_list_number
11531
                                               (sviewidshowlist) AS relmgr_number_tab_t
11532
                                        )
11533
                                  FROM DUAL
11534
                                ))
11535
                   AND usr.user_id = userid) ord
11536
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
11537
     END IF;
11538
   END;
7039 dpurdie 11539
 
1373 dpurdie 11540
 
11541
/*-------------------------------------------------------------------------------------------------------*/
11542
   PROCEDURE get_work_in_progress_items (
11543
     viewtype         IN      NUMBER,
11544
     userid           IN      NUMBER,
11545
     rtagid           IN      NUMBER,
11546
     sviewidshowlist  IN      VARCHAR2,
11547
     ntruerecordcount OUT     NUMBER,
11548
     recordset        OUT     typecur
11549
   )
11550
   IS
11551
   BEGIN
11552
     -- Get true record count because views can give false count
11553
     SELECT COUNT (wip.pv_id)
11554
      INTO ntruerecordcount
11555
      FROM work_in_progress wip
11556
      WHERE wip.rtag_id = rtagid;
11557
 
11558
     IF viewtype = 1
11559
     THEN
11560
       /*--- GUEST VIEW ---*/
11561
       OPEN recordset FOR
11562
         SELECT   *
11563
            FROM (
11564
                 /* Base Views collapsed */
11565
                 SELECT DISTINCT vi.view_id, vi.view_name,
11566
                             TO_NUMBER (NULL) AS pkg_state,
11567
                             TO_NUMBER (NULL) AS deprecated_state,
11568
                             TO_NUMBER (NULL) AS pv_id,
11569
                             NULL AS pkg_name, NULL AS pkg_version,
11570
                             NULL AS dlocked, NULL AS pv_description
11571
                         FROM work_in_progress rel, views vi
11572
                        WHERE rel.view_id = vi.view_id
11573
                          AND rtag_id = rtagid
11574
                          AND rel.view_id NOT IN (
11575
                               SELECT *
11576
                                 FROM THE
11577
                                       (SELECT CAST
11578
                                               (in_list_number
11579
                                                  (sviewidshowlist
11580
                                                  ) AS relmgr_number_tab_t
11581
                                               )
11582
                                         FROM DUAL
11583
                                       ))
11584
                 UNION
11585
                 /* Base Views expanded */
11586
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
11587
 
11588
                      --rel.pkg_state,
11589
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
11590
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
11591
                      pv.pv_description
11592
                  FROM work_in_progress rel,
11593
                      PACKAGES pkg,
11594
                      package_versions pv,
11595
                      views vi
11596
                  WHERE pv.pkg_id = pkg.pkg_id
11597
                   AND rel.pv_id = pv.pv_id
11598
                   AND rel.view_id = vi.view_id
11599
                   AND rel.view_id IN (
11600
                        SELECT *
11601
                          FROM THE
11602
                                (SELECT CAST
11603
                                        (in_list_number
11604
                                               (sviewidshowlist) AS relmgr_number_tab_t
11605
                                        )
11606
                                  FROM DUAL
11607
                                ))
11608
                   AND rtag_id = rtagid) ord
11609
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
11610
     ELSIF viewtype = 2
11611
     THEN
11612
       /*--- PERSONAL VIEW ---*/
11613
       OPEN recordset FOR
11614
         SELECT   *
11615
            FROM (
11616
                 /* Base Views collapsed */
11617
                 SELECT DISTINCT vi.view_id, vi.view_name,
11618
                             TO_NUMBER (NULL) AS pkg_state,
11619
                             TO_NUMBER (NULL) AS deprecated_state,
11620
                             TO_NUMBER (NULL) AS pv_id,
11621
                             NULL AS pkg_name, NULL AS pkg_version,
11622
                             NULL AS dlocked, NULL AS pv_description
11623
                         FROM work_in_progress rel,
11624
                             view_settings vs,
11625
                             views vi
11626
                        WHERE rel.view_id = vi.view_id
11627
                          AND vs.view_id = rel.view_id
11628
                          AND vs.user_id = userid
11629
                          AND rtag_id = rtagid
11630
                          AND rel.view_id NOT IN (
11631
                               SELECT *
11632
                                 FROM THE
11633
                                       (SELECT CAST
11634
                                               (in_list_number
11635
                                                  (sviewidshowlist
11636
                                                  ) AS relmgr_number_tab_t
11637
                                               )
11638
                                         FROM DUAL
11639
                                       ))
11640
                 UNION
11641
                 /* Base Views expanded */
11642
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
11643
 
11644
                      --rel.pkg_state,
11645
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
11646
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
11647
                      pv.pv_description
11648
                  FROM work_in_progress rel,
11649
                      PACKAGES pkg,
11650
                      package_versions pv,
11651
                      views vi,
11652
                      view_settings vs
11653
                  WHERE pv.pkg_id = pkg.pkg_id
11654
                   AND rel.pv_id = pv.pv_id
11655
                   AND rel.view_id = vi.view_id
11656
                   AND vs.view_id = vi.view_id
11657
                   AND vs.user_id = userid
11658
                   AND rel.view_id IN (
11659
                        SELECT *
11660
                          FROM THE
11661
                                (SELECT CAST
11662
                                        (in_list_number
11663
                                               (sviewidshowlist) AS relmgr_number_tab_t
11664
                                        )
11665
                                  FROM DUAL
11666
                                ))
11667
                   AND rtag_id = rtagid
11668
                 UNION
11669
                 /* Private Views collapsed */
11670
                 SELECT vi.view_id, vi.view_name,
11671
                      TO_NUMBER (NULL) AS pkg_state,
11672
                      TO_NUMBER (NULL) AS deprecated_state,
11673
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
11674
                      NULL AS pkg_version, NULL AS dlocked,
11675
                      NULL AS pv_description
11676
                  FROM view_settings vs,
11677
                      view_def vd,
11678
                      views vi,
11679
                      work_in_progress rel,
11680
                      package_versions pv
11681
                  WHERE vs.view_id = vi.view_id
11682
                   AND rel.pv_id = pv.pv_id
11683
                   AND vd.pkg_id = pv.pkg_id
11684
                   AND vd.view_id = vi.view_id
11685
                   AND vi.base_view = 'N'
11686
                   AND rel.rtag_id = rtagid
11687
                   AND vs.user_id = userid
11688
                   AND vi.view_id NOT IN (
11689
                        SELECT *
11690
                          FROM THE
11691
                                (SELECT CAST
11692
                                        (in_list_number
11693
                                               (sviewidshowlist) AS relmgr_number_tab_t
11694
                                        )
11695
                                  FROM DUAL
11696
                                ))
11697
                 UNION
11698
                 /* Private Views expanded */
11699
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
11700
 
11701
                      --rel.pkg_state,
11702
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
11703
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
11704
                      pv.pv_description
11705
                  FROM users usr,
11706
                      view_settings vs,
11707
                      view_def vd,
11708
                      views vi,
11709
                      work_in_progress rel,
11710
                      PACKAGES pkg,
11711
                      package_versions pv
11712
                  WHERE vs.user_id = usr.user_id
11713
                   AND vs.view_id = vi.view_id
11714
                   AND vd.view_id = vi.view_id
11715
                   AND pv.pkg_id = pkg.pkg_id
11716
                   AND rel.pv_id = pv.pv_id
11717
                   AND rel.rtag_id = rtagid
11718
                   AND vd.pkg_id = pkg.pkg_id
11719
                   AND vi.base_view = 'N'
11720
                   AND vi.view_id IN (
11721
                        SELECT *
11722
                          FROM THE
11723
                                (SELECT CAST
11724
                                        (in_list_number
11725
                                               (sviewidshowlist) AS relmgr_number_tab_t
11726
                                        )
11727
                                  FROM DUAL
11728
                                ))
11729
                   AND usr.user_id = userid) ord
11730
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
11731
     END IF;
11732
   END;
11733
 
11734
/*-------------------------------------------------------------------------------------------------------*/
11735
   -- DEVI-45275 added the return of the new "operation" column in the recordset.
11736
 
7039 dpurdie 11737
PROCEDURE get_pending_items (
1373 dpurdie 11738
     viewtype         IN      NUMBER,
11739
     userid           IN      NUMBER,
11740
     rtagid           IN      NUMBER,
11741
     sviewidshowlist  IN      VARCHAR2,
11742
     ntruerecordcount OUT     NUMBER,
11743
     recordset        OUT     typecur
11744
   )
11745
   IS
11746
   BEGIN
11747
     -- Get true record count because views can give false count
11748
     SELECT COUNT (pl.pv_id)
11749
      INTO ntruerecordcount
7039 dpurdie 11750
      FROM environment_view pl
1373 dpurdie 11751
      WHERE pl.rtag_id = rtagid;
11752
 
11753
     IF viewtype = 1
11754
     THEN
11755
       /*--- GUEST VIEW ---*/
11756
       OPEN recordset FOR
11757
         SELECT   *
11758
            FROM (
11759
                 /* Base Views collapsed */
11760
                 SELECT DISTINCT vi.view_id, vi.view_name,
11761
                             TO_NUMBER (NULL) AS pkg_state,
11762
                             TO_NUMBER (NULL) AS deprecated_state,
11763
                             TO_NUMBER (NULL) AS pv_id,
11764
                             NULL AS pkg_name, NULL AS pkg_version,
11765
                             NULL AS dlocked, NULL AS pv_description,
11766
                             rel.operation
7039 dpurdie 11767
                         FROM environment_view rel, views vi
1373 dpurdie 11768
                        WHERE rel.view_id = vi.view_id
7039 dpurdie 11769
                          AND rel.env_area = 1
1373 dpurdie 11770
                          AND rtag_id = rtagid
11771
                          AND rel.view_id NOT IN (
11772
                               SELECT *
11773
                                 FROM THE
11774
                                       (SELECT CAST
11775
                                               (in_list_number
11776
                                                  (sviewidshowlist
11777
                                                  ) AS relmgr_number_tab_t
11778
                                               )
11779
                                         FROM DUAL
11780
                                       ))
11781
                 UNION
11782
                 /* Base Views expanded */
7039 dpurdie 11783
                 SELECT vi.view_id, vi.view_name,
11784
                     rel.pkg_state,
11785
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
11786
                      pv.pkg_version, pv.dlocked, pv.pv_description,
1373 dpurdie 11787
                      rel.operation
7039 dpurdie 11788
                  FROM environment_view rel,
1373 dpurdie 11789
                      PACKAGES pkg,
11790
                      package_versions pv,
11791
                      views vi
11792
                  WHERE pv.pkg_id = pkg.pkg_id
11793
                   AND rel.pv_id = pv.pv_id
7039 dpurdie 11794
                   AND rel.env_area = 1
1373 dpurdie 11795
                   AND rel.view_id = vi.view_id
11796
                   AND rel.view_id IN (
11797
                        SELECT *
11798
                          FROM THE
11799
                                (SELECT CAST
11800
                                        (in_list_number
11801
                                               (sviewidshowlist) AS relmgr_number_tab_t
11802
                                        )
11803
                                  FROM DUAL
11804
                                ))
11805
                   AND rtag_id = rtagid) ord
11806
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
11807
     ELSIF viewtype = 2
11808
     THEN
11809
       /*--- PERSONAL VIEW ---*/
11810
       OPEN recordset FOR
11811
         SELECT   *
11812
            FROM (
11813
                 /* Base Views collapsed */
11814
                 SELECT DISTINCT vi.view_id, vi.view_name,
11815
                             TO_NUMBER (NULL) AS pkg_state,
11816
                             TO_NUMBER (NULL) AS deprecated_state,
11817
                             TO_NUMBER (NULL) AS pv_id,
11818
                             NULL AS pkg_name, NULL AS pkg_version,
11819
                             NULL AS dlocked, NULL AS pv_description,
11820
                             rel.operation
7039 dpurdie 11821
                         FROM environment_view rel,
11822
                             view_settings vs,
11823
                             views vi
1373 dpurdie 11824
                        WHERE rel.view_id = vi.view_id
7039 dpurdie 11825
                          AND rel.env_area = 1
1373 dpurdie 11826
                          AND vs.view_id = rel.view_id
11827
                          AND vs.user_id = userid
11828
                          AND rtag_id = rtagid
11829
                          AND rel.view_id NOT IN (
11830
                               SELECT *
11831
                                 FROM THE
11832
                                       (SELECT CAST
11833
                                               (in_list_number
11834
                                                  (sviewidshowlist
11835
                                                  ) AS relmgr_number_tab_t
11836
                                               )
11837
                                         FROM DUAL
11838
                                       ))
11839
                 UNION
11840
                 /* Base Views expanded */
7039 dpurdie 11841
                 SELECT vi.view_id, vi.view_name,
11842
                        rel.pkg_state,
11843
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
11844
                      pv.pkg_version, pv.dlocked, pv.pv_description,
1373 dpurdie 11845
                      rel.operation
7039 dpurdie 11846
                  FROM environment_view rel,
1373 dpurdie 11847
                      PACKAGES pkg,
11848
                      package_versions pv,
11849
                      views vi,
11850
                      view_settings vs
11851
                  WHERE pv.pkg_id = pkg.pkg_id
11852
                   AND rel.pv_id = pv.pv_id
11853
                   AND rel.view_id = vi.view_id
7039 dpurdie 11854
                   AND rel.env_area = 1
1373 dpurdie 11855
                   AND vs.view_id = vi.view_id
11856
                   AND vs.user_id = userid
11857
                   AND rel.view_id IN (
11858
                        SELECT *
11859
                          FROM THE
11860
                                (SELECT CAST
11861
                                        (in_list_number
11862
                                               (sviewidshowlist) AS relmgr_number_tab_t
11863
                                        )
11864
                                  FROM DUAL
11865
                                ))
11866
                   AND rtag_id = rtagid
11867
                 UNION
11868
                 /* Private Views collapsed */
11869
                 SELECT vi.view_id, vi.view_name,
11870
                      TO_NUMBER (NULL) AS pkg_state,
11871
                      TO_NUMBER (NULL) AS deprecated_state,
11872
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
11873
                      NULL AS pkg_version, NULL AS dlocked,
11874
                      NULL AS pv_description,
11875
                      rel.operation
11876
                  FROM view_settings vs,
11877
                      view_def vd,
11878
                      views vi,
7039 dpurdie 11879
                      environment_view rel,
1373 dpurdie 11880
                      package_versions pv
11881
                  WHERE vs.view_id = vi.view_id
7039 dpurdie 11882
                   AND rel.env_area = 1
1373 dpurdie 11883
                   AND rel.pv_id = pv.pv_id
11884
                   AND vd.pkg_id = pv.pkg_id
11885
                   AND vd.view_id = vi.view_id
11886
                   AND vi.base_view = 'N'
11887
                   AND rel.rtag_id = rtagid
11888
                   AND vs.user_id = userid
11889
                   AND vi.view_id NOT IN (
11890
                        SELECT *
11891
                          FROM THE
11892
                                (SELECT CAST
11893
                                        (in_list_number
11894
                                               (sviewidshowlist) AS relmgr_number_tab_t
11895
                                        )
11896
                                  FROM DUAL
11897
                                ))
11898
                 UNION
11899
                 /* Private Views expanded */
7039 dpurdie 11900
                 SELECT vi.view_id, vi.view_name,
11901
                      rel.pkg_state,
11902
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
11903
                      pv.pkg_version, pv.dlocked, pv.pv_description,
1373 dpurdie 11904
                      rel.operation
11905
                  FROM users usr,
11906
                      view_settings vs,
11907
                      view_def vd,
11908
                      views vi,
7039 dpurdie 11909
                      environment_view rel,
1373 dpurdie 11910
                      PACKAGES pkg,
11911
                      package_versions pv
11912
                  WHERE vs.user_id = usr.user_id
11913
                   AND vs.view_id = vi.view_id
7039 dpurdie 11914
                   AND rel.env_area = 1
1373 dpurdie 11915
                   AND vd.view_id = vi.view_id
11916
                   AND pv.pkg_id = pkg.pkg_id
11917
                   AND rel.pv_id = pv.pv_id
11918
                   AND rel.rtag_id = rtagid
11919
                   AND vd.pkg_id = pkg.pkg_id
11920
                   AND vi.base_view = 'N'
11921
                   AND vi.view_id IN (
11922
                        SELECT *
11923
                          FROM THE
11924
                                (SELECT CAST
11925
                                        (in_list_number
11926
                                               (sviewidshowlist) AS relmgr_number_tab_t
11927
                                        )
11928
                                  FROM DUAL
11929
                                ))
11930
                   AND usr.user_id = userid) ord
11931
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
11932
     END IF;
11933
   END;
7039 dpurdie 11934
 
1373 dpurdie 11935
 
11936
/*-------------------------------------------------------------------------------------------------------*/
11937
   PROCEDURE get_view_content (
11938
     rtagid     IN      NUMBER,
11939
     viewid     IN      NUMBER,
11940
     recordset OUT     typecur
11941
   )
11942
   IS
11943
     isbaseview   CHAR (1);
11944
   BEGIN
11945
     -- Check if the view is BASE VIEW
11946
     SELECT vi.base_view
11947
      INTO isbaseview
11948
      FROM views vi
11949
      WHERE vi.view_id = viewid;
11950
 
5172 dpurdie 11951
     IF (IsBaseView IN ('Y', 'S'))
1373 dpurdie 11952
     THEN
11953
       -- Get Base view content
11954
       OPEN recordset FOR
11955
         SELECT   DECODE (rel.pkg_state,
11956
                      NULL, 0,
11957
                      rel.pkg_state
11958
                     ) AS pkg_state,
11959
                rel.deprecated_state, pv.pv_id, pkg.pkg_name,
11960
                pv.pkg_version, pv.dlocked, pv.pv_description,
11961
                pv.build_type,
11962
                rel.operation
7039 dpurdie 11963
            FROM environment_view rel, 
11964
                PACKAGES pkg,
11965
                package_versions pv
1373 dpurdie 11966
            WHERE pv.pkg_id = pkg.pkg_id
11967
             AND rel.pv_id = pv.pv_id
11968
             AND rel.view_id = viewid
11969
             AND rel.rtag_id = rtagid
11970
         ORDER BY UPPER (pkg.pkg_name);
11971
     ELSE
11972
       -- Get non base view content
11973
       OPEN recordset FOR
11974
         SELECT   DECODE (rel.pkg_state,
11975
                      NULL, 0,
11976
                      rel.pkg_state
11977
                     ) AS pkg_state,
11978
                rel.deprecated_state, pv.pv_id, pkg.pkg_name,
11979
                pv.pkg_version, pv.dlocked, pv.pv_description,
11980
                pv.build_type,
11981
                rel.operation
11982
            FROM environment_view rel,
11983
                PACKAGES pkg,
11984
                package_versions pv,
11985
                view_def vd
11986
            WHERE pv.pkg_id = pkg.pkg_id
11987
             AND rel.pv_id = pv.pv_id
11988
             AND rel.rtag_id = rtagid
11989
             AND vd.view_id = viewid
11990
             AND vd.pkg_id = pv.pkg_id
11991
         ORDER BY UPPER (pkg.pkg_name);
11992
     END IF;
11993
   END;
11994
 
11995
/*-------------------------------------------------------------------------------------------------------*/
11996
   FUNCTION get_package_view (pvid IN NUMBER, rtagid IN NUMBER)
11997
     RETURN NUMBER
11998
   IS
11999
     envtab           NUMBER;
12000
     returnvalue      NUMBER;
12001
     return_not_found NUMBER := -1;
12002
   BEGIN
12003
     envtab := get_package_area (pvid, rtagid);
12004
 
12005
     IF envtab = 0
12006
     THEN
12007
       -- WORK IN PROGRESS --
12008
       returnvalue := pk_work_in_progress.get_package_view (pvid, rtagid);
12009
     ELSIF envtab = 1
12010
     THEN
12011
       -- PENDING --
12012
       returnvalue := pk_planned.get_package_view (pvid, rtagid);
12013
     ELSIF envtab = 2
12014
     THEN
12015
       -- RELEASED --
12016
       returnvalue := pk_release.get_package_view (pvid, rtagid);
12017
     ELSE
12018
       -- This may be a Patch not located anywhere but unlocked
12019
       returnvalue := return_not_found;
12020
     END IF;
12021
 
12022
     RETURN returnvalue;
12023
   END;
12024
 
12025
/*-------------------------------------------------------------------------------------------------------*/
5172 dpurdie 12026
  PROCEDURE make_release (
4585 dpurdie 12027
     pvid          IN   NUMBER,                         -- NEW  PKG pvid
12028
     rtagid        IN   NUMBER,                         -- Release Id
12029
     userid        IN   NUMBER                          -- User performing Release
12030
   )
1373 dpurdie 12031
   IS
12032
     viewid        NUMBER;
12033
     envtab        NUMBER;
12034
     ispatch       CHAR (1) := NULL;
12035
     buildtype     CHAR (1) := NULL;
12036
   BEGIN
12037
     -- Check if package is patch
12038
     SELECT pv.is_patch, pv.build_type
12039
      INTO ispatch, buildtype
12040
      FROM package_versions pv
12041
      WHERE pv.pv_id = pvid;
12042
 
12043
     -- Get ViewId
12044
     viewid := get_package_view (pvid, rtagid);
12045
     -- Remove from current area
12046
     envtab := pk_environment.get_package_area (pvid, rtagid);
12047
 
12048
     -- Make sure that package was in work-in-progress or pending before makeing it release
12049
     -- Exclude patches, ripple builds
12050
     IF (envtab < 0)
12051
     THEN
12052
       -- Not found in work-in-progress or pending
12053
       IF (ispatch IS NULL) AND (buildtype = 'M')
12054
       THEN
12055
         raise_application_error (-20000,
12056
                            'This package cannot be released here.'
12057
                           );
12058
       END IF;
12059
     END IF;
12060
 
6999 dpurdie 12061
     -- Log
12062
     --log_action (pvid, 'action', userid, 'Start of Make Package Release...');
12063
 
1373 dpurdie 12064
     IF envtab = 0
12065
     THEN
12066
       -- WORK IN PROGRESS --
12067
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
12068
     ELSIF envtab = 1
12069
     THEN
12070
       -- PENDING --
12071
       pk_planned.remove_package (pvid, rtagid, userid);
12072
     END IF;
12073
 
12074
     -- Change package state
4585 dpurdie 12075
     -- Set dlocked state to mark the package a 'Released and Locked'
1373 dpurdie 12076
     pk_package.change_state (pvid, 'Y', userid);
12077
 
12078
     -- Make sure it is valid BASE VIEW
12079
     IF viewid < 1
12080
     THEN
12081
       viewid := 7;                     -- This is default base view
12082
     END IF;
12083
 
12084
     IF (ispatch IS NULL)
12085
     THEN
4585 dpurdie 12086
       -- Add (Replace) package to new area
1373 dpurdie 12087
       pk_release.add_package (pvid, viewid, rtagid, userid);
12088
     END IF;
12089
 
12090
     -- Now do post Release Actions
12091
     pk_release.run_post_actions (pvid, rtagid);
12092
 
12093
     -- The release has changed and there may now be invalid rtag_id/pv_id combinations in
12094
     -- the DO_NOT_RIPPLE and ADVISORY_RIPPLE Tables so perform a clean-up operation upon them.
12095
     clean_do_not_ripple(rtagid);
12096
     clean_advisory_ripple(rtagid);
12097
 
6999 dpurdie 12098
     -- Log
12099
     --log_action (pvid, 'action', userid, 'End of Make Package Release...');
1373 dpurdie 12100
   END;
12101
 
12102
/*-------------------------------------------------------------------------------------------------------*/
4585 dpurdie 12103
  --  Release a specified package into a specified release
12104
  --
12105
  --  Similar to 'make_release', but it attempts to handle the case where a package-version
12106
  --  is being replaced with one with a different package-suffix, but it doesn't
6031 dpurdie 12107
  --  handle all the cases well.
4585 dpurdie 12108
  --
12109
  --  The current build system cannot do this automatically - yet
12110
  --
12111
  --
1373 dpurdie 12112
   PROCEDURE auto_make_release (
4585 dpurdie 12113
     pvid          IN   NUMBER,                         -- NEW  PKG pvid
12114
     rtagid        IN   NUMBER,                         -- Release Id
12115
     userid        IN   NUMBER,                         -- User performing Release
12116
     vext          IN   package_versions.v_ext%TYPE,    -- Package Extension for original pkg
12117
     ssv_ext       IN   package_versions.v_ext%TYPE,    -- Package Extension for new package
12118
     clonefrompvid IN   NUMBER                          -- PVID of Original
1373 dpurdie 12119
   )
12120
   IS
12121
     viewid        NUMBER;
12122
     envtab        NUMBER;
4585 dpurdie 12123
 
12124
     clone_removal NUMBER := 0;
12125
     clone_viewid  NUMBER := -1;
12126
     clone_envtab  NUMBER := -1;
12127
 
1373 dpurdie 12128
     ispatch       CHAR (1) := NULL;
4585 dpurdie 12129
     buildtype     CHAR (1) := NULL;
12130
 
1373 dpurdie 12131
   BEGIN
12132
     -- Check if package is patch
12133
     SELECT pv.is_patch, pv.build_type
12134
      INTO ispatch, buildtype
12135
      FROM package_versions pv
12136
      WHERE pv.pv_id = pvid;
12137
 
4585 dpurdie 12138
     --
12139
     -- Determine the viewid and environment for the new package
12140
     --
12141
     viewid := get_package_view (pvid, rtagid);
12142
     envtab := pk_environment.get_package_area (pvid, rtagid);
12143
 
12144
     --
12145
     -- If changing pkgExt, then we need to delete the orig package, not just replace it
12146
     --
12147
     IF (clonefrompvid is NOT NULL) AND (vext <> ssv_ext)
1373 dpurdie 12148
     THEN
4585 dpurdie 12149
        clone_removal := 1;
12150
        clone_viewid := get_package_view (clonefrompvid, rtagid);
12151
        clone_envtab := pk_environment.get_package_area (clonefrompvid, rtagid);
1373 dpurdie 12152
     END IF;
12153
 
4585 dpurdie 12154
     --
1373 dpurdie 12155
     -- Make sure that package was in work-in-progress or pending before makeing it release
12156
     -- Exclude patches, ripple builds
4585 dpurdie 12157
     --
1373 dpurdie 12158
     IF (envtab < 0)
12159
     THEN
12160
       -- Not found in work-in-progress or pending
12161
       IF (ispatch IS NULL) AND (buildtype = 'M')
12162
       THEN
12163
         raise_application_error (-20000,
12164
                            'This package cannot be released here.'
12165
                           );
12166
       END IF;
12167
     END IF;
12168
 
6999 dpurdie 12169
     -- Log
12170
     --log_action (pvid, 'action', userid, 'Start of Make Package Release...');
12171
 
4585 dpurdie 12172
     --
12173
     -- Remove the package from the WIP or PENDING tab
6031 dpurdie 12174
     -- Do NOT remove from the release area.
4585 dpurdie 12175
     --     This will be handled later with a process that
12176
     --     will do a 'replace' so that meta data is not lost
12177
     --
12178
    IF envtab = 0
12179
    THEN
12180
        -- WORK IN PROGRESS --
12181
        pk_work_in_progress.remove_package (pvid, rtagid, userid);
12182
    ELSIF envtab = 1
12183
    THEN
12184
        -- PENDING --
12185
        pk_planned.remove_package (pvid, rtagid, userid);
12186
    END IF;
12187
 
12188
    --
12189
    --  If we are changing the pkgExt, then fully remove the base package
12190
    --  This includes removing it from the 'release' area.
12191
    --
12192
    IF clone_removal = 1
12193
    THEN
12194
        IF clone_envtab = 0
12195
        THEN
12196
            -- WORK IN PROGRESS --
12197
            pk_work_in_progress.remove_package (clonefrompvid, rtagid, userid);
12198
        ELSIF clone_envtab = 1
12199
        THEN
12200
            -- PENDING --
12201
            pk_planned.remove_package (clonefrompvid, rtagid, userid);
12202
        ELSIF clone_envtab = 2
12203
        THEN
12204
            -- RELEASED --
12205
            pk_release.remove_package (clonefrompvid, rtagid, userid);
1373 dpurdie 12206
       END IF;
4585 dpurdie 12207
    END IF;
1373 dpurdie 12208
 
12209
     -- Change package state
4585 dpurdie 12210
     -- Set dlocked state to mark the package a 'Released and Locked'
1373 dpurdie 12211
     pk_package.change_state (pvid, 'Y', userid);
12212
 
12213
     -- Make sure it is valid BASE VIEW
4585 dpurdie 12214
     -- If its not specified, give it a default (7) view
1373 dpurdie 12215
     IF viewid < 1
12216
     THEN
4585 dpurdie 12217
        IF clone_viewid >= 0
12218
        THEN
6031 dpurdie 12219
            viewid := clone_viewid;
4585 dpurdie 12220
        ELSE
12221
            viewid := 7;
12222
        END IF;
1373 dpurdie 12223
     END IF;
12224
 
12225
     IF (ispatch IS NULL)
12226
     THEN
4585 dpurdie 12227
       -- Add (Replace) package to new area
1373 dpurdie 12228
       pk_release.add_package (pvid, viewid, rtagid, userid);
12229
     END IF;
12230
 
12231
     -- Now do post Release Actions
12232
     pk_release.run_post_actions (pvid, rtagid);
12233
     -- Now update the Dash_Board Table (DEPRECATED)
12234
     pk_rmapi.update_dash_board (rtagid);
12235
 
12236
     -- The release has changed and there may now be invalid rtag_id/pv_id combinations in
12237
     -- the DO_NOT_RIPPLE and ADVISORY_RIPPLE Tables so perform a clean-up operation upon them.
12238
     clean_do_not_ripple(rtagid);
12239
     clean_advisory_ripple(rtagid);
12240
 
6999 dpurdie 12241
     -- Log
12242
     --log_action (pvid, 'action', userid, 'End of Make Package Release...');
1373 dpurdie 12243
   END;
12244
 
5172 dpurdie 12245
 
1373 dpurdie 12246
/*-------------------------------------------------------------------------------------------------------*/
12247
   PROCEDURE make_unrelease (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
12248
   IS
12249
     viewid   NUMBER;
12250
     envtab   NUMBER;
12251
   BEGIN
12252
     -- Get ViewId
12253
     --ViewId := PK_RELEASE.GET_PACKAGE_VIEW ( PvId, RtagId );
12254
     viewid := get_package_view (pvid, rtagid);
12255
     -- Remove from current area
12256
     envtab := pk_environment.get_package_area (pvid, rtagid);
6999 dpurdie 12257
     -- Log
12258
     -- log_action (pvid, 'action', userid, 'Start of Make Package UnRelease...' );
1373 dpurdie 12259
 
12260
     IF envtab = 2
12261
     THEN
12262
       -- RELEASE AREA --
12263
       pk_release.remove_package (pvid, rtagid, userid);
12264
     ELSIF envtab = 1
12265
     THEN
12266
       -- PENDING --
12267
       pk_planned.remove_package (pvid, rtagid, userid);
12268
     END IF;
12269
 
12270
     -- Change package state
12271
     pk_package.change_state (pvid, 'N', userid);
12272
 
12273
     -- Make sure it is valid BASE VIEW
12274
     IF viewid < 1
12275
     THEN
12276
       viewid := 7;                     -- This is default base view
12277
     END IF;
12278
 
12279
     -- Add package to new area
12280
     pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
12281
     -- Now do post Release Actions
12282
     pk_release.run_post_actions (pvid, rtagid);
6999 dpurdie 12283
 
12284
     -- Log
12285
     -- log_action (pvid, 'action', userid, 'End of Make Package UnRelease...');
1373 dpurdie 12286
   END;
12287
 
12288
/*-------------------------------------------------------------------------------------------------------*/
12289
   PROCEDURE make_pending (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
12290
   IS
12291
     viewid     NUMBER;
12292
     ispatch    CHAR (1) := NULL;
12293
     buildtype  CHAR (1) := NULL;
12294
   BEGIN
12295
     -- Check if package is patch
12296
     SELECT pv.is_patch, pv.build_type
12297
      INTO ispatch, buildtype
12298
      FROM package_versions pv
12299
      WHERE pv.pv_id = pvid;
12300
 
12301
     -- Get ViewId
12302
     viewid := get_package_view (pvid, rtagid);
12303
     --ViewId := PK_WORK_IN_PROGRESS.GET_PACKAGE_VIEW ( PvId, RtagId );
12304
 
6999 dpurdie 12305
     -- Log
12306
     --log_action (pvid, 'action', userid, 'Start of Make Package Pending...');
12307
 
1373 dpurdie 12308
     IF (ispatch IS NULL)
12309
     THEN
12310
       -- Remove from current area
12311
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
12312
       -- Change package state
12313
       pk_package.change_state (pvid, 'P', userid);
12314
       -- Add package to new area
12315
       pk_planned.add_package (pvid, viewid, rtagid, userid);
12316
     END IF;
6999 dpurdie 12317
 
12318
     -- Log
12319
     --log_action (pvid, 'action', userid, 'End of Make Package Pending...');
1373 dpurdie 12320
   END;
12321
 
12322
/*-------------------------------------------------------------------------------------------------------*/
7039 dpurdie 12323
   PROCEDURE make_approved (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER, sched in VARCHAR2)
1373 dpurdie 12324
   IS
12325
   BEGIN
6999 dpurdie 12326
     -- Log
12327
     -- log_action (pvid, 'action', userid, 'Start of Package Pending Approval...' );
1373 dpurdie 12328
     -- Change package state
12329
     pk_package.change_state (pvid, 'A', userid);
6031 dpurdie 12330
 
5172 dpurdie 12331
     -- Flag Release has changed for the purposes of building
12332
     PK_RELEASE.SET_RELEASE_MODIFIED(rtagid);
7039 dpurdie 12333
 
12334
     PK_BUILDAPI.del_daemon_inst_by_rtag_pvid(2, rtagid, pvid);
12335
     IF sched IS NOT NULL THEN
12336
        -- Schedule a future build of the package
12337
        PK_BUILDAPI.insert_daemon_inst( 2, rtagid, pvid, TO_DATE( sched, 'YYYY-MM-DD HH24:MI:SS'), 0, ORA_SYSDATETIME, userid);
12338
        log_action (pvid, 'approve_scheduled', userid, 'Scheduled build:' || sched);
12339
 
12340
     END IF;
6999 dpurdie 12341
 
12342
     -- Log
12343
     -- log_action (pvid, 'action', userid, 'End of Package Pending Approval...');
1373 dpurdie 12344
   END;
12345
 
12346
/*-------------------------------------------------------------------------------------------------------*/
12347
   PROCEDURE make_reject (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
12348
   IS
12349
     viewid   NUMBER;
12350
     operation CHAR;
12351
   BEGIN
12352
     -- Get ViewId
12353
     viewid := get_package_view (pvid, rtagid);
12354
     -- ViewId := PK_PLANNED.GET_PACKAGE_VIEW ( PvId, RtagId );
12355
 
12356
     -- DEVI-45275
12357
     -- If the package version is an official version that is to be rejected from a merge operation
12358
     -- then find out in order to prevent it being added back to work-in-progress table . This will
12359
     -- be denoted by the operation field in the planned table being A or S
12360
     operation := ' ';
12361
     SELECT
12362
     (CASE WHEN pl.operation IS NOT NULL THEN pl.operation ELSE ' ' END) INTO operation
12363
     FROM planned pl
12364
     WHERE pl.PV_ID = pvid
12365
     AND pl.RTAG_ID = rtagid;
12366
 
6999 dpurdie 12367
     -- Log
12368
     -- log_action (pvid, 'action', userid, 'Start of Reject Package...');
12369
 
1373 dpurdie 12370
     -- Remove from current area
12371
     pk_planned.remove_package (pvid, rtagid, userid);
12372
 
12373
     -- DEVI-45275 - Prevent merge candidate from being added back to work-in-progress table .
12374
     IF operation <> 'A' AND operation <> 'S'
12375
     THEN
12376
     -- Change package state
12377
     pk_package.change_state (pvid, 'R', userid);
12378
     -- Add package to new area
12379
     pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
7039 dpurdie 12380
     PK_BUILDAPI.del_daemon_inst_by_rtag_pvid(2, rtagid, pvid);
1373 dpurdie 12381
     ELSE
12382
      log_action (pvid, 'action', userid, 'Rejected Package Merge');
12383
     END IF;
6999 dpurdie 12384
 
12385
     -- Log
12386
     -- log_action (pvid, 'action', userid, 'End of Reject Package...');
1373 dpurdie 12387
   END;
12388
 
12389
/*-------------------------------------------------------------------------------------------------------*/
12390
   PROCEDURE change_package_view (
12391
     pvid       IN   NUMBER,
12392
     rtagid     IN   NUMBER,
12393
     newviewid  IN   NUMBER
12394
   )
12395
   IS
12396
     envtab   NUMBER;
12397
   BEGIN
12398
     envtab := pk_environment.get_package_area (pvid, rtagid);
12399
 
12400
     IF envtab = 0
12401
     THEN
12402
       -- WORK IN PROGRESS --
12403
       pk_work_in_progress.change_package_view (pvid, rtagid, newviewid);
12404
     ELSIF envtab = 1
12405
     THEN
12406
       -- PENDING --
12407
       pk_planned.change_package_view (pvid, rtagid, newviewid);
12408
     ELSIF envtab = 2
12409
     THEN
12410
       -- RELEASED --
12411
       pk_release.change_package_view (pvid, rtagid, newviewid);
12412
     END IF;
12413
   END;
12414
 
12415
/*-------------------------------------------------------------------------------------------------------*/
12416
   PROCEDURE find_package (
12417
     skeyword     IN      VARCHAR2,
12418
     nrtagid      IN      NUMBER,
12419
     nsearcharea  IN      NUMBER,
12420
     recordset    OUT     typecur
12421
   )
12422
   IS
12423
   BEGIN
12424
     IF nsearcharea = 0
12425
     THEN
12426
       /* Search Work In Progress */
12427
       OPEN recordset FOR
12428
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
12429
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
12430
                pv.modified_stamp, usr.full_name, usr.user_email
12431
           FROM views vi,
12432
                work_in_progress rc,
12433
                PACKAGES pkg,
12434
                package_versions pv,
12435
                users usr
12436
          WHERE rc.view_id = vi.view_id
12437
            AND rc.pv_id = pv.pv_id
12438
            AND pkg.pkg_id = pv.pkg_id
12439
            AND pv.modifier_id = usr.user_id
12440
            AND rc.rtag_id = nrtagid
12441
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
12442
       ORDER BY UPPER (pkg.pkg_name);
12443
     ELSIF nsearcharea = 1
12444
     THEN
12445
       /* Search Pending */
12446
       OPEN recordset FOR
12447
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
12448
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
12449
                pv.modified_stamp, usr.full_name, usr.user_email
12450
           FROM views vi,
12451
                planned rc,
12452
                PACKAGES pkg,
12453
                package_versions pv,
12454
                users usr
12455
          WHERE rc.view_id = vi.view_id
12456
            AND rc.pv_id = pv.pv_id
12457
            AND pkg.pkg_id = pv.pkg_id
12458
            AND pv.modifier_id = usr.user_id
12459
            AND rc.rtag_id = nrtagid
12460
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
12461
       ORDER BY UPPER (pkg.pkg_name);
12462
     ELSIF nsearcharea = 2
12463
     THEN
12464
       /* Search Released */
12465
       OPEN recordset FOR
12466
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
12467
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
12468
                pv.modified_stamp, usr.full_name, usr.user_email
12469
           FROM views vi,
12470
                release_content rc,
12471
                PACKAGES pkg,
12472
                package_versions pv,
12473
                users usr
12474
          WHERE rc.base_view_id = vi.view_id
12475
            AND rc.pv_id = pv.pv_id
12476
            AND pkg.pkg_id = pv.pkg_id
12477
            AND pv.modifier_id = usr.user_id
12478
            AND rc.rtag_id = nrtagid
12479
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
12480
         ORDER BY UPPER (pkg.pkg_name);
12481
     ELSIF nsearcharea = 3
12482
     THEN
12483
       /* Search ALL */
12484
       OPEN recordset FOR
12485
         SELECT rc.env_area, vi.view_name, pv.dlocked, pkg.pkg_name,
12486
                pv.pv_id, pv.pkg_version, pv.comments,
12487
                pv.modified_stamp, usr.full_name, usr.user_email
12488
           FROM views vi,
12489
                environment_view rc,
12490
                PACKAGES pkg,
12491
                package_versions pv,
12492
                users usr
12493
          WHERE rc.view_id = vi.view_id
12494
            AND rc.pv_id = pv.pv_id
12495
            AND pkg.pkg_id = pv.pkg_id
12496
            AND pv.modifier_id = usr.user_id
12497
            AND rc.rtag_id = nrtagid
12498
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
12499
         ORDER BY UPPER (pkg.pkg_name);
12500
     END IF;
12501
   END;
12502
 
12503
/*-------------------------------------------------------------------------------------------------------*/
12504
   PROCEDURE find_file (
12505
     skeyword     IN      VARCHAR2,
12506
     nrtagid      IN      NUMBER,
12507
     nsearcharea  IN      NUMBER,
12508
     npagesize    IN      NUMBER,
12509
     recordset    OUT     typecur
12510
   )
12511
   IS
12512
   BEGIN
12513
     IF nsearcharea = 0
12514
     THEN
12515
       /* Search Work In Progress */
12516
       OPEN recordset FOR
12517
         SELECT   qry.*
12518
            FROM (
12519
                 /* File search on Packages */
12520
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
12521
                        pv.pv_id, pv.pkg_version, art.crc_cksum
12522
                   FROM work_in_progress rc,
12523
                        PACKAGES pkg,
12524
                        package_versions pv,
12525
                        release_components art
12526
                  WHERE rc.pv_id = art.pv_id
12527
                    AND pv.pkg_id = pkg.pkg_id
12528
                    AND rc.pv_id = pv.pv_id
12529
                    AND rc.rtag_id = nrtagid
12530
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
12531
                 UNION ALL
12532
                 /* File search on Products */
12533
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
12534
                        pv.pv_id, pv.pkg_version, art.crc_cksum
12535
                   FROM work_in_progress rc,
12536
                        PACKAGES pkg,
12537
                        package_versions pv,
12538
                        product_components art
12539
                  WHERE rc.pv_id = art.pv_id
12540
                    AND pv.pkg_id = pkg.pkg_id
12541
                    AND rc.pv_id = pv.pv_id
12542
                    AND rc.rtag_id = nrtagid
12543
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
12544
            WHERE ROWNUM <= npagesize
12545
         ORDER BY UPPER (qry.pkg_name);
12546
     ELSIF nsearcharea = 1
12547
     THEN
12548
       /* Search Pending */
12549
       OPEN recordset FOR
12550
         SELECT   qry.*
12551
            FROM (
12552
                 /* File search on Packages */
12553
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
12554
                        pv.pv_id, pv.pkg_version, art.crc_cksum
12555
                   FROM planned rc,
12556
                        PACKAGES pkg,
12557
                        package_versions pv,
12558
                        release_components art
12559
                  WHERE rc.pv_id = art.pv_id
12560
                    AND pv.pkg_id = pkg.pkg_id
12561
                    AND rc.pv_id = pv.pv_id
12562
                    AND rc.rtag_id = nrtagid
12563
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
12564
                 UNION ALL
12565
                 /* File search on Products */
12566
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
12567
                        pv.pv_id, pv.pkg_version, art.crc_cksum
12568
                   FROM planned rc,
12569
                        PACKAGES pkg,
12570
                        package_versions pv,
12571
                        product_components art
12572
                  WHERE rc.pv_id = art.pv_id
12573
                    AND pv.pkg_id = pkg.pkg_id
12574
                    AND rc.pv_id = pv.pv_id
12575
                    AND rc.rtag_id = nrtagid
12576
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
12577
            WHERE ROWNUM <= npagesize
12578
         ORDER BY UPPER (qry.pkg_name);
12579
     ELSIF nsearcharea = 2
12580
     THEN
12581
       /* Search Released */
12582
       OPEN recordset FOR
12583
         SELECT   qry.*
12584
            FROM (
12585
                 /* File search on Packages */
12586
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
12587
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
12588
                        NULL AS patch_id
12589
                   FROM release_content rc,
12590
                        PACKAGES pkg,
12591
                        package_versions pv,
12592
                        release_components art
12593
                  WHERE rc.pv_id = art.pv_id
12594
                    AND pv.pkg_id = pkg.pkg_id
12595
                    AND rc.pv_id = pv.pv_id
12596
                    AND rc.rtag_id = nrtagid
12597
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
12598
                 UNION ALL
12599
                 /* File search on Products */
12600
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
12601
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
12602
                        NULL AS patch_id
12603
                   FROM release_content rc,
12604
                        PACKAGES pkg,
12605
                        package_versions pv,
12606
                        product_components art
12607
                  WHERE rc.pv_id = art.pv_id
12608
                    AND pv.pkg_id = pkg.pkg_id
12609
                    AND rc.pv_id = pv.pv_id
12610
                    AND rc.rtag_id = nrtagid
12611
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
12612
                 UNION ALL
12613
                 /* File search on Patches */
12614
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
12615
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
12616
                        DECODE (art.file_path,
12617
                                NULL, pp.patch_id,
12618
                                NULL
12619
                                ) AS patch_id
12620
                   FROM release_content rc,
12621
                        PACKAGES pkg,
12622
                        package_versions pv,
12623
                        release_components art,
12624
                        package_patches pp
12625
                  WHERE pv.pv_id = pp.pv_id
12626
                    AND pv.pkg_id = pkg.pkg_id
12627
                    AND rc.rtag_id = nrtagid
12628
                    AND art.pv_id = pp.patch_id
12629
                    AND rc.pv_id = pp.pv_id
12630
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
12631
            WHERE ROWNUM <= npagesize
12632
         ORDER BY UPPER (qry.pkg_name);
12633
     ELSIF nsearcharea = 3
12634
     THEN
12635
       /* Search ALL */
12636
       OPEN recordset FOR
12637
         SELECT   qry.*
12638
            FROM (
12639
                 /* File search on Packages */
12640
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
12641
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
12642
                        NULL AS patch_id
12643
                   FROM environment_view rc,
12644
                        PACKAGES pkg,
12645
                        package_versions pv,
12646
                        release_components art
12647
                  WHERE rc.pv_id = art.pv_id
12648
                    AND pv.pkg_id = pkg.pkg_id
12649
                    AND rc.pv_id = pv.pv_id
12650
                    AND rc.rtag_id = nrtagid
12651
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
12652
                 UNION ALL
12653
                 /* File search on Products */
12654
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
12655
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
12656
                        NULL AS patch_id
12657
                   FROM environment_view rc,
12658
                        PACKAGES pkg,
12659
                        package_versions pv,
12660
                        product_components art
12661
                  WHERE rc.pv_id = art.pv_id
12662
                    AND pv.pkg_id = pkg.pkg_id
12663
                    AND rc.pv_id = pv.pv_id
12664
                    AND rc.rtag_id = nrtagid
12665
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
12666
                 UNION ALL
12667
                 /* File search on Patches */
12668
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
12669
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
12670
                        DECODE (art.file_path,
12671
                                NULL, pp.patch_id,
12672
                                NULL
12673
                               ) AS patch_id
12674
                   FROM release_content rc,
12675
                        PACKAGES pkg,
12676
                        package_versions pv,
12677
                        release_components art,
12678
                        package_patches pp
12679
                  WHERE pv.pv_id = pp.pv_id
12680
                    AND pv.pkg_id = pkg.pkg_id
12681
                    AND rc.rtag_id = nrtagid
12682
                    AND art.pv_id = pp.patch_id
12683
                    AND rc.pv_id = pp.pv_id
12684
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
12685
            WHERE ROWNUM <= npagesize
12686
         ORDER BY UPPER (qry.pkg_name);
12687
     END IF;
12688
   END;
12689
 
12690
/*-------------------------------------------------------------------------------------------------------*/
12691
   PROCEDURE get_prodrelease_items (
12692
     rtagid           IN      NUMBER,
12693
     ntruerecordcount OUT     NUMBER,
12694
     recordset        OUT     typecur
12695
   )
12696
   IS
12697
   BEGIN
12698
     -- Get true record count n the number of integration products
12699
     SELECT COUNT (rc.pv_id)
12700
      INTO ntruerecordcount
12701
      FROM release_content rc
12702
      WHERE rc.rtag_id = rtagid;
12703
 
12704
     OPEN recordset FOR
12705
       SELECT vi.view_id, vi.view_name, rel.pkg_state,   --rel.pkg_state,
12706
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
12707
              pv.pkg_version, pv.dlocked, pv.pv_description
12708
         FROM release_content rel,
12709
              PACKAGES pkg,
12710
              package_versions pv,
12711
              views vi
12712
        WHERE pv.pkg_id = pkg.pkg_id
12713
          AND rel.pv_id = pv.pv_id
12714
          AND rel.base_view_id = vi.view_id
12715
          AND pv.is_deployable = 'Y'
12716
          AND rtag_id = rtagid
12717
          AND pv.pv_id NOT IN (SELECT DISTINCT prod_id
12718
                                 FROM deployment_manager.os_contents)
12719
          AND rel.product_state IS NULL
12720
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
12721
   END;
12722
 
12723
/*-------------------------------------------------------------------------------------------------------*/
12724
   PROCEDURE get_integration_items (
12725
     rtagid           IN      NUMBER,
12726
     ntruerecordcount OUT     NUMBER,
12727
     recordset        OUT     typecur
12728
   )
12729
   IS
12730
   BEGIN
12731
     -- Get true record count n the number of integration products
12732
     SELECT COUNT (rc.pv_id)
12733
      INTO ntruerecordcount
12734
      FROM release_content rc
12735
      WHERE rc.rtag_id = rtagid AND rc.product_state = 1;
12736
 
12737
     OPEN recordset FOR
12738
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
12739
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
12740
              pv.pkg_version, pv.dlocked, pv.pv_description
12741
         FROM release_content rel,
12742
              PACKAGES pkg,
12743
              package_versions pv,
12744
              views vi
12745
        WHERE pv.pkg_id = pkg.pkg_id
12746
          AND rel.pv_id = pv.pv_id
12747
          AND rel.base_view_id = vi.view_id
12748
          AND pv.is_deployable = 'Y'
12749
          AND rtag_id = rtagid
12750
          AND rel.product_state IN (1, 5)
12751
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
12752
   END;
12753
 
12754
/*-------------------------------------------------------------------------------------------------------*/
12755
   PROCEDURE get_test_items (
12756
     rtagid           IN      NUMBER,
12757
     ntruerecordcount OUT     NUMBER,
12758
     recordset        OUT     typecur
12759
   )
12760
   IS
12761
   BEGIN
12762
     -- Get true record count n the number of test products
12763
     SELECT COUNT (rc.pv_id)
12764
      INTO ntruerecordcount
12765
      FROM release_content rc
12766
      WHERE rc.rtag_id = rtagid AND rc.product_state = 2;
12767
 
12768
     OPEN recordset FOR
12769
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
12770
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
12771
              pv.pkg_version, pv.dlocked, pv.pv_description
12772
         FROM release_content rel,
12773
              PACKAGES pkg,
12774
              package_versions pv,
12775
              views vi
12776
        WHERE pv.pkg_id = pkg.pkg_id
12777
          AND rel.pv_id = pv.pv_id
12778
          AND rel.base_view_id = vi.view_id
12779
          AND pv.is_deployable = 'Y'
12780
          AND rtag_id = rtagid
12781
          AND rel.product_state = 2
12782
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
12783
   END;
12784
 
12785
/*-------------------------------------------------------------------------------------------------------*/
12786
   PROCEDURE get_deploy_items (
12787
     rtagid           IN      NUMBER,
12788
     ntruerecordcount OUT     NUMBER,
12789
     recordset        OUT     typecur
12790
   )
12791
   IS
12792
   BEGIN
12793
     -- Get true record count n the number of deploy products
12794
     SELECT COUNT (rc.pv_id)
12795
      INTO ntruerecordcount
12796
      FROM release_content rc
12797
      WHERE rc.rtag_id = rtagid AND rc.product_state = 3;
12798
 
12799
     OPEN recordset FOR
12800
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
12801
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
12802
              pv.pkg_version, pv.dlocked, pv.pv_description
12803
         FROM release_content rel,
12804
              PACKAGES pkg,
12805
              package_versions pv,
12806
              views vi
12807
        WHERE pv.pkg_id = pkg.pkg_id
12808
          AND rel.pv_id = pv.pv_id
12809
          AND rel.base_view_id = vi.view_id
12810
          AND pv.is_deployable = 'Y'
12811
          AND rtag_id = rtagid
12812
          AND rel.product_state IN (3, 5)
12813
          AND pv.pv_id NOT IN (SELECT DISTINCT prod_id
12814
                                 FROM deployment_manager.os_contents)
12815
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
12816
   END;
12817
 
12818
/*-------------------------------------------------------------------------------------------------------*/
12819
   PROCEDURE get_reject_items (
12820
     rtagid           IN      NUMBER,
12821
     ntruerecordcount OUT     NUMBER,
12822
     recordset        OUT     typecur
12823
   )
12824
   IS
12825
   BEGIN
12826
     -- Get true record count n the number of reject products
12827
     SELECT COUNT (rc.pv_id)
12828
       INTO ntruerecordcount
12829
       FROM release_content rc
12830
      WHERE rc.rtag_id = rtagid AND rc.product_state = 4;
12831
 
12832
     OPEN recordset FOR
12833
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
12834
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
12835
              pv.pkg_version, pv.dlocked, pv.pv_description
12836
         FROM release_content rel,
12837
              PACKAGES pkg,
12838
              package_versions pv,
12839
              views vi
12840
        WHERE pv.pkg_id = pkg.pkg_id
12841
          AND rel.pv_id = pv.pv_id
12842
          AND rel.base_view_id = vi.view_id
12843
          AND pv.is_deployable = 'Y'
12844
          AND rtag_id = rtagid
12845
          AND rel.product_state = 4
12846
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
12847
   END;
12848
/*-------------------------------------------------------------------------------------------------------*/
12849
   -- DEVI-45275 - this procedure performs the merge of an existing package version in the planned table
12850
   -- to the release_content table.
12851
 
12852
  PROCEDURE approve_merge (
12853
   PvId    IN NUMBER,
12854
   RtagId  IN NUMBER,
12855
   UserId  IN NUMBER
12856
  )
12857
  IS
12858
   viewid        NUMBER;
12859
   envtab        NUMBER;
12860
   oper         CHAR;
12861
  BEGIN
12862
      -- Get ViewId
12863
     viewid := get_package_view (pvid, rtagid);
12864
 
12865
     -- Get the view tab
12866
     envtab := pk_environment.get_package_area (pvid, rtagid);
12867
 
12868
     -- Make sure that package was in pending before merging it to released
12869
     IF (envtab <> 1)
12870
     THEN
12871
       -- Not found in pending
12872
       raise_application_error (-20000,
12873
                          'This package cannot be released here.'
12874
                         );
12875
     END IF;
12876
 
6999 dpurdie 12877
     -- Log
12878
     --log_action (pvid, 'action', userid, 'Start of Package Merge...');
12879
 
1373 dpurdie 12880
     -- Get the planned operation type A=Add, S=Subtract
12881
     SELECT ev.operation INTO oper
12882
       FROM environment_view ev
12883
      WHERE ev.rtag_id = RtagId
12884
        AND ev.pv_id = PvId
12885
        AND (ev.operation = 'A' OR ev.operation = 'S');
12886
 
12887
     -- Remove from Pending
12888
     pk_planned.remove_package (PvId, RtagId, UserId);
12889
 
12890
     -- Either add to the release, or remove from the release as the operation commands
12891
     IF oper = 'A'
12892
     THEN
12893
       pk_release.add_package(PvId, viewId, RtagId, UserId);
12894
 
12895
     ELSIF oper = 'S'
12896
     THEN
12897
       pk_release.remove_package(PvId, RtagId, UserId);
12898
 
12899
       -- Delete old package's pegging info
12900
       DELETE FROM PEGGED_VERSIONS pegv WHERE pegv.RTAG_ID = RtagId AND pegv.PV_ID = PvId;
12901
 
12902
       -- Delete old package's advisory ripple info
12903
       DELETE FROM ADVISORY_RIPPLE avr WHERE avr.RTAG_ID = RtagId AND avr.PV_ID = PvId;
12904
     END IF;
12905
 
12906
     touch_release(RtagId);
6999 dpurdie 12907
 
12908
     -- Log
12909
     --log_action (pvid, 'action', userid, 'End of Package Merge...');
1373 dpurdie 12910
  END;
12911
/*-------------------------------------------------------------------------------------------------------*/
12912
END pk_environment;
4040 dpurdie 12913
 
6999 dpurdie 12914
/
4040 dpurdie 12915
--------------------------------------------------------
12916
--  DDL for Package Body PK_LICENCING
12917
--------------------------------------------------------
12918
 
5172 dpurdie 12919
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_LICENCING" IS
1373 dpurdie 12920
 
12921
/*
12922
------------------------------
3959 dpurdie 12923
||  Last Modified:  G.Huddy
12924
||  Modified Date:  19/Aug/2008
1373 dpurdie 12925
||  Body Version:   1.0
12926
------------------------------
12927
*/
12928
 
3959 dpurdie 12929
   PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) IS
12930
   BEGIN
12931
      IF IS_LICENCED(PvId, licenceId) = 0 THEN
12932
         -- Add entry to licencing table
12933
         INSERT INTO licencing (pv_id, licence)
12934
         VALUES (PvId, licenceId);
1373 dpurdie 12935
 
3959 dpurdie 12936
         -- log action
12937
         -- TODO
12938
      END IF;
1373 dpurdie 12939
 
3959 dpurdie 12940
   END;
1373 dpurdie 12941
 
12942
/*-------------------------------------------------------------------------------------------------------*/
12943
 
3959 dpurdie 12944
   PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) IS
12945
   BEGIN
12946
      IF NOT IS_LICENCED(PvId, licenceId) = 0 THEN
12947
         -- Delete entry from licencing table
12948
         DELETE FROM licencing
12949
         WHERE pv_id = PvId
12950
         AND licence = licenceId;
1373 dpurdie 12951
 
3959 dpurdie 12952
         -- log action
12953
         -- TODO
12954
      END IF;
12955
   END;
1373 dpurdie 12956
 
12957
/*-------------------------------------------------------------------------------------------------------*/
12958
 
3959 dpurdie 12959
   PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 12960
 
3959 dpurdie 12961
      CURSOR licencing_cur
12962
      IS
12963
         SELECT *
12964
         FROM licencing
12965
         WHERE pv_id = fromPvId;
1373 dpurdie 12966
 
3959 dpurdie 12967
      licencing_rec licencing_cur%ROWTYPE;
1373 dpurdie 12968
 
12969
   BEGIN
3959 dpurdie 12970
      -- For each licence association that the Last PV_ID had, create a similar
12971
      -- arrangement for the new PV_ID
12972
      -- NOTE that any additional licencing associations the new PV_ID has that the old one
12973
      -- does not have, are retained. The assumption is that the user has made those and so we do not
12974
      -- have any right to destroy them without asking them.
12975
      OPEN licencing_cur;
1373 dpurdie 12976
 
3959 dpurdie 12977
      FETCH licencing_cur
12978
      INTO licencing_rec;
1373 dpurdie 12979
 
3959 dpurdie 12980
      WHILE licencing_cur%FOUND
1373 dpurdie 12981
      LOOP
3959 dpurdie 12982
         ADD_LICENCE ( toPvId, licencing_rec.licence, UserId );
1373 dpurdie 12983
 
3959 dpurdie 12984
         FETCH licencing_cur
12985
         INTO licencing_rec;
1373 dpurdie 12986
      END LOOP;
12987
   END;
12988
 
12989
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12990
 
12991
   FUNCTION IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER IS
12992
      found NUMBER;
1373 dpurdie 12993
   BEGIN
12994
 
3959 dpurdie 12995
      SELECT COUNT(*) INTO found
12996
      FROM licencing
12997
      WHERE pv_id = PvId
12998
      AND licence = LicenceId;
1373 dpurdie 12999
 
3959 dpurdie 13000
      RETURN found;
1373 dpurdie 13001
   END;
13002
 
13003
/*-------------------------------------------------------------------------------------------------------*/
13004
 
3959 dpurdie 13005
   PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 13006
 
3959 dpurdie 13007
      CURSOR licencing_cur
13008
      IS
1373 dpurdie 13009
         SELECT *
3959 dpurdie 13010
         FROM licencing
13011
         WHERE pv_id = PvId;
1373 dpurdie 13012
 
3959 dpurdie 13013
      licencing_rec licencing_cur%ROWTYPE;
13014
   BEGIN
13015
      -- For each licence association that the PV_ID had, remove it
13016
      OPEN licencing_cur;
1373 dpurdie 13017
 
3959 dpurdie 13018
      FETCH licencing_cur
13019
      INTO licencing_rec;
1373 dpurdie 13020
 
3959 dpurdie 13021
      WHILE licencing_cur%FOUND
13022
      LOOP
13023
         REMOVE_LICENCE ( PvId, licencing_rec.licence, UserId );
1373 dpurdie 13024
 
3959 dpurdie 13025
         FETCH licencing_cur
13026
         INTO licencing_rec;
13027
      END LOOP;
1373 dpurdie 13028
   END;
13029
 
13030
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13031
END PK_LICENCING;
4040 dpurdie 13032
 
6999 dpurdie 13033
/
4040 dpurdie 13034
--------------------------------------------------------
13035
--  DDL for Package Body PK_PACKAGE
13036
--------------------------------------------------------
13037
 
5172 dpurdie 13038
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PACKAGE" 
1373 dpurdie 13039
IS
13040
   /*-------------------------------------------------------------------------------------------------------*/
13041
   PROCEDURE new_version (
13042
      nlastpvid                   IN       NUMBER,
13043
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
13044
      cbuildtype                  IN       CHAR,
4211 dpurdie 13045
      cchangetype                 IN       CHAR,
1373 dpurdie 13046
      nsettopvid                  IN       NUMBER DEFAULT NULL,
13047
      nrtagid                     IN       NUMBER,
13048
      nuserid                     IN       NUMBER,
13049
      enumissues_state_imported   IN       NUMBER,
13050
      returnpvid                  OUT      NUMBER
13051
   )
13052
   IS
3959 dpurdie 13053
      origpkg_id                  package_versions.pkg_id%TYPE;
13054
      origdlocked                 package_versions.dlocked%TYPE;
13055
      ssv_mm                      package_versions.v_mm%TYPE;
13056
      ssv_nmm                     package_versions.v_nmm%TYPE;
13057
      ssv_ext                     package_versions.v_ext%TYPE;
13058
      spackageversion             VARCHAR2 (4000);
13059
      nissuestypes                NUMBER;
13060
      nviewid                     NUMBER;
13061
      reccount                    NUMBER;
13062
      isreleased                  package_versions.dlocked%TYPE := 'N';
13063
      slabel                      VARCHAR2 (4000)               := NULL;
4211 dpurdie 13064
      uchangetype                 CHAR := cchangetype;
1373 dpurdie 13065
 
13066
      CURSOR package_versions_cur
13067
      IS
13068
         SELECT pv.pv_id, pv.is_patch, pv.dlocked
13069
           FROM package_versions pv
13070
          WHERE pv.pkg_version = snewpkgversion
13071
            AND pv.pkg_id IN (SELECT DISTINCT origpv.pkg_id
13072
                                         FROM package_versions origpv
13073
                                        WHERE origpv.pv_id = nlastpvid);
13074
 
3959 dpurdie 13075
      package_versions_rec package_versions_cur%ROWTYPE;
1373 dpurdie 13076
 
13077
      CURSOR clone_package_versions_cur
13078
      IS
13079
         SELECT DISTINCT pkg_id, dlocked
13080
                    FROM package_versions
13081
                   WHERE pv_id = nlastpvid;
13082
 
3959 dpurdie 13083
      clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
1373 dpurdie 13084
   BEGIN
13085
      spackageversion := snewpkgversion;
13086
 
13087
      IF nsettopvid IS NULL
13088
      THEN
13089
         -- SetToPv_id is not supplied, hence proceed.
13090
 
13091
         /* ---------------------------------------------------- */
3959 dpurdie 13092
         /* Find id package_version exists                       */
13093
         /* ---------------------------------------------------- */
1373 dpurdie 13094
         OPEN package_versions_cur;
13095
 
13096
         FETCH package_versions_cur
13097
          INTO package_versions_rec;
13098
 
13099
         IF package_versions_cur%NOTFOUND
13100
         THEN
13101
            ---  Create brand new package ---
13102
            SELECT seq_pv_id.NEXTVAL
13103
              INTO returnpvid
13104
              FROM DUAL;
13105
 
13106
            -- Split Version to get extention + other
13107
            split_version (spackageversion, ssv_mm, ssv_nmm, ssv_ext);
13108
 
13109
            -- Get previous package to clone from
13110
            OPEN clone_package_versions_cur;
13111
 
13112
            FETCH clone_package_versions_cur
13113
             INTO clone_package_versions_rec;
13114
 
13115
            origpkg_id := clone_package_versions_rec.pkg_id;
13116
            origdlocked := clone_package_versions_rec.dlocked;
13117
 
13118
            CLOSE clone_package_versions_cur;
13119
 
13120
            -- Automated built config
4211 dpurdie 13121
            IF ( cbuildtype = 'M' ) THEN
13122
              uchangetype := 'F';
6031 dpurdie 13123
            END IF;
13124
 
4211 dpurdie 13125
            -- Automated version numbering
13126
            -- Make sure that version is still unique
13127
            IF (uchangetype != 'F') THEN
13128
              spackageversion := '(' || returnpvid || ')' || ssv_ext;
1373 dpurdie 13129
            END IF;
13130
 
6031 dpurdie 13131
 
1373 dpurdie 13132
            -- Clone Package Version Details --
3959 dpurdie 13133
            INSERT INTO package_versions(pv_id, pkg_id, pkg_version, dlocked, created_stamp,
13134
                                         creator_id, modified_stamp, modifier_id, v_mm, v_nmm,
13135
                                         v_ext, src_path, pv_description, pv_overview,
13136
                                         last_pv_id, owner_id, is_deployable,
6031 dpurdie 13137
                                         is_build_env_required, build_type, change_type,
5892 dpurdie 13138
                                         bs_id, is_autobuildable, ripple_field, build_time)
3959 dpurdie 13139
                 SELECT returnpvid AS pv_id, origpkg_id AS pkg_id,
13140
                        spackageversion AS pkg_version, 'N' AS dlocked,
7000 dpurdie 13141
                        ora_sysdatetime AS created_stamp, nuserid AS creator_id,
3959 dpurdie 13142
                        ora_sysdatetime AS modified_stamp,
13143
                        nuserid AS modifier_id, ssv_mm AS v_mm,
13144
                        ssv_nmm AS v_nmm, ssv_ext AS v_ext, pv.src_path,
13145
                        pv.pv_description, pv.pv_overview,
13146
                        nlastpvid AS last_pv_id, pv.owner_id, pv.is_deployable,
6031 dpurdie 13147
                        pv.is_build_env_required, cbuildtype, uchangetype,
5892 dpurdie 13148
                        pv.bs_id, pv.is_autobuildable, pv.ripple_field, pv.build_time
3959 dpurdie 13149
                   FROM package_versions pv
13150
                  WHERE pv.pv_id = nlastpvid;
1373 dpurdie 13151
 
13152
            -- Set Issues Type for cloning ---
13153
            IF origdlocked = 'Y'
13154
            THEN
13155
               nissuestypes := enumissues_state_imported;
13156
            ELSE
13157
               nissuestypes := NULL;
13158
            END IF;
13159
 
13160
            basic_clone (nlastpvid,
13161
                         returnpvid,
13162
                         nrtagid,
13163
                         nuserid,
13164
                         origpkg_id,
13165
                         nissuestypes
13166
                        );
6031 dpurdie 13167
 
4211 dpurdie 13168
            -- Update Label for versioning purposes
13169
            slabel := get_automated_label (returnpvid);
13170
            UPDATE package_versions pv
13171
            SET pv.pkg_label = slabel
13172
            WHERE pv.pv_id = returnpvid;
6031 dpurdie 13173
 
1373 dpurdie 13174
         ELSE
13175
            --- Package already exists, hence reuse ---
13176
            returnpvid := package_versions_rec.pv_id;
13177
            isreleased := package_versions_rec.dlocked;
13178
         END IF;
13179
 
13180
         CLOSE package_versions_cur;
13181
      ELSE
13182
         returnpvid := nsettopvid;
13183
      END IF;
13184
   END new_version;
13185
 
13186
/*-------------------------------------------------------------------------------------------------------*/
13187
   PROCEDURE change_state (
13188
      pvid       IN   NUMBER,
13189
      newstate   IN   package_versions.dlocked%TYPE,
13190
      userid     IN   NUMBER
13191
   )
13192
   IS
13193
   BEGIN
13194
      -- Set package in Released mode
13195
      UPDATE package_versions pv
13196
         SET pv.dlocked = newstate,
13197
             pv.modified_stamp = ora_sysdatetime,
13198
             pv.modifier_id = userid
13199
       WHERE pv.pv_id = pvid;
13200
 
13201
      -- Log action --
13202
      IF newstate = 'Y'
13203
      THEN
13204
         -- RELEASED --
6999 dpurdie 13205
         log_action (pvid,
13206
                     'makeofficial',
13207
                     userid,
13208
                     'Package state change to: Released'
13209
                    );
1373 dpurdie 13210
      ELSIF newstate = 'N'
13211
      THEN
13212
         -- UNLOCKED --
6999 dpurdie 13213
         log_action (pvid,
13214
                     'makeunofficial',
13215
                     userid,
13216
                     'Package state change to: Ulocked'
13217
                    );
1373 dpurdie 13218
      ELSIF newstate = 'P'
13219
      THEN
13220
         -- PENDING APPROVAL --
6999 dpurdie 13221
         log_action (pvid,
13222
                     'add_to_planned',
13223
                     userid,
13224
                     'Package state change to: Pending Approval'
13225
                    );
1373 dpurdie 13226
      ELSIF newstate = 'R'
13227
      THEN
13228
         -- REJECTED --
6999 dpurdie 13229
         log_action (pvid,
13230
                     'reject_package',
13231
                     userid,
13232
                     'Package state change to: Rejected'
13233
                    );
1373 dpurdie 13234
      ELSIF newstate = 'A'
13235
      THEN
13236
         -- APPROVED --
6999 dpurdie 13237
         log_action (pvid,
13238
                     'approve_package',
13239
                     userid,
13240
                     'Package state change to: Approved'
13241
                    );
1373 dpurdie 13242
      END IF;
13243
   END;
13244
 
13245
/*-------------------------------------------------------------------------------------------------------*/
6031 dpurdie 13246
-- This function has been deprecated and can be deleted
13247
-- Replaced with destroy_package_extended
1373 dpurdie 13248
   PROCEDURE destroy_package (
13249
      pvid               IN       NUMBER,
13250
      overridewarnings   IN       CHAR DEFAULT 'N',
13251
      problemstring      OUT      VARCHAR2
13252
   )
13253
   IS
13254
      LOCKED     CHAR;
13255
      pkgid      NUMBER;
13256
      ROWCOUNT   NUMBER;
6031 dpurdie 13257
      lastPvid   NUMBER;
1373 dpurdie 13258
   BEGIN
13259
      /*
13260
      || This will destroy all package details from database.
13261
      || It will only be used to remove unwanted work in progress packages,
6031 dpurdie 13262
      || or mistaken versions
1373 dpurdie 13263
      */
13264
 
13265
      /*--------------- Business Rules Here -------------------*/
13266
      problemstring := NULL;
13267
 
13268
      IF overridewarnings = 'N'
13269
      THEN
13270
         -- Package must not be official
13271
         SELECT pv.dlocked
13272
           INTO LOCKED
13273
           FROM package_versions pv
13274
          WHERE pv.pv_id = pvid;
13275
 
13276
         IF LOCKED = 'Y'
13277
         THEN
13278
            problemstring :=
13279
                  problemstring
13280
               || '- Package is locked and released.'
5892 dpurdie 13281
               ||PK_PACKAGE.crlf;
1373 dpurdie 13282
         END IF;
13283
 
13284
         -- Cannot remove if used in BOMs
13285
         SELECT COUNT (osc.prod_id)
13286
           INTO ROWCOUNT
13287
           FROM deployment_manager.os_contents osc
13288
          WHERE osc.prod_id = pvid;
13289
 
13290
         IF ROWCOUNT > 0
13291
         THEN
13292
            problemstring :=
13293
                  problemstring
13294
               || '- Package is part of Bill-Of-Material (BOM) in Deployment Manager.'
5892 dpurdie 13295
               ||PK_PACKAGE.crlf;
1373 dpurdie 13296
         END IF;
6031 dpurdie 13297
 
13298
         -- Cannot remove if used in an SDK
13299
         SELECT COUNT (sc.pv_id)
13300
           INTO ROWCOUNT
13301
           FROM sdk_content sc
13302
          WHERE sc.pv_id = pvid;
1373 dpurdie 13303
 
6031 dpurdie 13304
         IF ROWCOUNT > 0
13305
         THEN
13306
            problemstring :=
13307
                  problemstring
13308
               || '- Package is part of an SDK.'
13309
               ||PK_PACKAGE.crlf;
13310
         END IF;
13311
 
1373 dpurdie 13312
         -- Cannot remove if Referenced as build dependency
13313
         SELECT COUNT (dep.pv_id)
13314
           INTO ROWCOUNT
13315
           FROM package_dependencies dep
13316
          WHERE dep.dpv_id = pvid;
13317
 
13318
         IF ROWCOUNT > 0
13319
         THEN
13320
            problemstring :=
13321
                  problemstring
13322
               || '- Package is referenced by other package as build dependency.'
5892 dpurdie 13323
               ||PK_PACKAGE.crlf;
1373 dpurdie 13324
         END IF;
13325
 
13326
         -- Cannot remove if Referenced as runtime dependency
13327
         SELECT COUNT (rd.pv_id)
13328
           INTO ROWCOUNT
13329
           FROM runtime_dependencies rd
13330
          WHERE rd.rtd_id = pvid;
13331
 
13332
         IF ROWCOUNT > 0
13333
         THEN
13334
            problemstring :=
13335
                  problemstring
13336
               || '- Package is referenced by other package as runtime dependency.'
5892 dpurdie 13337
               ||PK_PACKAGE.crlf;
1373 dpurdie 13338
         END IF;
13339
 
13340
         -- Cannot remove if Referenced as patch
13341
         SELECT COUNT (pp.pv_id)
13342
           INTO ROWCOUNT
13343
           FROM package_patches pp
13344
          WHERE pp.patch_id = pvid;
13345
 
13346
         IF ROWCOUNT > 0
13347
         THEN
13348
            problemstring :=
13349
                  problemstring
13350
               || '- Package is used as patch by other package.'
5892 dpurdie 13351
               ||PK_PACKAGE.crlf;
1373 dpurdie 13352
         END IF;
6031 dpurdie 13353
 
13354
         -- Cannot remove if a Daemon Instruction
13355
         SELECT COUNT (di.pv_id)
13356
           INTO ROWCOUNT
13357
           FROM DAEMON_INSTRUCTIONS di
13358
          WHERE di.pv_id = pvid;
1373 dpurdie 13359
 
6031 dpurdie 13360
         IF ROWCOUNT > 0
13361
         THEN
13362
            problemstring :=
13363
                  problemstring
13364
               || '- Package is in use for a Daemon Instruction.'
13365
               ||PK_PACKAGE.crlf;
13366
         END IF;
13367
 
13368
 
13369
      END IF;      
13370
 
1373 dpurdie 13371
/*-------------------------------------------------------*/
13372
      IF (problemstring IS NULL)
13373
      THEN
13374
         --- Remove From Work in Progress
13375
         DELETE FROM work_in_progress wip
13376
               WHERE wip.pv_id = pvid;
13377
 
13378
         --- Remove From Pending
13379
         DELETE FROM planned pl
13380
               WHERE pl.pv_id = pvid;
13381
 
13382
         --- Remove From Released area
13383
         DELETE FROM release_content rc
13384
               WHERE rc.pv_id = pvid;
13385
 
13386
         ---Remove From Package Processes
13387
         DELETE FROM package_processes pp
13388
               WHERE pp.pv_id = pvid;
13389
 
13390
         --- Remove Dependencies
13391
         DELETE FROM package_dependencies dep
13392
               WHERE dep.pv_id = pvid;
13393
 
13394
         DELETE FROM package_dependencies dep
13395
               WHERE dep.dpv_id = pvid;
13396
 
13397
         --- Remove Runtime dependencies
13398
         DELETE FROM runtime_dependencies rtd
13399
               WHERE rtd.pv_id = pvid;
13400
 
13401
         DELETE FROM runtime_dependencies rtd
13402
               WHERE rtd.rtd_id = pvid;
13403
 
13404
         --- Remove components
13405
         DELETE FROM product_components pc
13406
               WHERE pc.pv_id = pvid;
13407
 
13408
         DELETE FROM release_components rc
13409
               WHERE rc.pv_id = pvid;
13410
 
13411
         --- Remove From Notification History
13412
         DELETE FROM notification_history nh
13413
               WHERE nh.pv_id = pvid;
13414
 
13415
         --- Remove From Ignore Warnings
13416
         DELETE FROM ignore_warnings iw
13417
               WHERE iw.pv_id = pvid;
13418
 
13419
         --- Remove From Additional Notes
13420
         DELETE FROM additional_notes an
13421
               WHERE an.pv_id = pvid;
13422
 
13423
         --- Remove From CQ Issues
13424
         DELETE FROM cq_issues cq
13425
               WHERE cq.pv_id = pvid;
13426
 
13427
         --- Remove from Package Patches
13428
         DELETE FROM package_patches pp
13429
               WHERE pp.pv_id = pvid;
13430
 
13431
         DELETE FROM package_patches pp
13432
               WHERE pp.patch_id = pvid;
13433
 
13434
         --- Remove From Package Documents
13435
         DELETE FROM package_documents pd
13436
               WHERE pd.pv_id = pvid;
13437
 
13438
         --- Remove from Code Review
13439
         DELETE FROM code_reviews cr
13440
               WHERE cr.pv_id = pvid;
13441
 
3959 dpurdie 13442
         --- Remove from Code Review URL
13443
         DELETE FROM code_review_url cru
13444
               WHERE cru.pv_id = pvid;
13445
 
1373 dpurdie 13446
         --- Remove from Unit Tests
13447
         DELETE FROM unit_tests ut
13448
               WHERE ut.pv_id = pvid;
13449
 
13450
         --- Remove from Package BuildEnv
13451
         DELETE FROM package_build_env pbe
13452
               WHERE pbe.pv_id = pvid;
13453
 
3959 dpurdie 13454
         --- Remove from Package Build Info
13455
         DELETE FROM package_build_info pbi
13456
               WHERE pbi.pv_id = pvid;
6031 dpurdie 13457
 
13458
        --- Remove from Build Plan
13459
         DELETE FROM BUILD_PLAN bp
13460
               WHERE bp.pv_id = pvid;
13461
 
13462
         --- Remove from Build Instances
13463
         DELETE FROM BUILD_INSTANCES bi
13464
               WHERE bi.pv_id = pvid;
3959 dpurdie 13465
 
1373 dpurdie 13466
         --- Remove from Build Order
13467
         DELETE FROM build_order bo
13468
               WHERE bo.pv_id = pvid;
13469
 
3959 dpurdie 13470
         --- Remove from Licencing
13471
         PK_LICENCING.REMOVE_ALL_LICENCING( pvid, 0 );
13472
 
1373 dpurdie 13473
         --- Remove from Note Manager
13474
         DELETE FROM note_manager nm
13475
               WHERE nm.nid = pvid;
13476
 
13477
         --- Remove from Action log
13478
         DELETE FROM action_log al
13479
               WHERE al.pv_id = pvid;
3959 dpurdie 13480
 
13481
         --- Remove from Do Not Ripple
13482
         DELETE FROM DO_NOT_RIPPLE dnr
13483
               WHERE dnr.PV_ID = pvid;
6031 dpurdie 13484
 
13485
        --- Remove from SDK
13486
        DELETE FROM SDK_CONTENT sc
13487
            WHERE sc.PV_ID = pvid;
13488
 
13489
        -- Remove from daemon Instruction
13490
        DELETE FROM DAEMON_INSTRUCTIONS di
13491
          WHERE di.PV_ID = pvid;
3959 dpurdie 13492
 
13493
         --- Remove from Advisory Ripple
13494
         DELETE FROM ADVISORY_RIPPLE ar
13495
               WHERE ar.PV_ID = pvid;
13496
 
13497
         --- Remove from Jira Issues
13498
         DELETE FROM JIRA_ISSUES jira
13499
               WHERE jira.PV_ID = pvid;
13500
 
13501
         --- Remove from Package Metrics
13502
         DELETE FROM package_metrics pm
13503
              WHERE pm.pv_id = pvid;
13504
 
13505
         -- Delete from Pegged Versions
13506
         DELETE FROM pegged_versions pegv
13507
              WHERE pegv.pv_id = pvid;
13508
 
1373 dpurdie 13509
         --- Finally Remove From Package Versions
13510
         --- Get Package name
6031 dpurdie 13511
         SELECT pv.pkg_id, pv.LAST_PV_ID
13512
           INTO pkgid, lastPvid
1373 dpurdie 13513
           FROM package_versions pv
13514
          WHERE pv.pv_id = pvid;
6031 dpurdie 13515
 
13516
          --- Relink packages last_pv_id
13517
          IF lastPvid is NOT NULL AND pvid !=  lastPvid THEN
13518
            UPDATE package_versions pv
13519
               SET pv.LAST_PV_ID = lastPvid
13520
             WHERE pv.LAST_PV_ID = pvid;
13521
          END IF;
13522
 
13523
         --- Delete the version
1373 dpurdie 13524
         DELETE FROM package_versions pv
13525
               WHERE pv.pv_id = pvid;
13526
 
13527
         --- Remove package name if not used any more
13528
         SELECT COUNT (pv.pv_id)
13529
           INTO ROWCOUNT
13530
           FROM package_versions pv
13531
          WHERE pv.pkg_id = pkgid;
13532
 
13533
         IF ROWCOUNT < 1
13534
         THEN
13535
            DELETE FROM PACKAGES pkg
13536
                  WHERE pkg.pkg_id = pkgid;
13537
         END IF;
13538
      END IF;
13539
   END;
13540
 
13541
/*-------------------------------------------------------------------------------------------------------*/
6031 dpurdie 13542
    PROCEDURE destroy_package_extended (
13543
      pvid               IN       NUMBER,
13544
      rtagid             IN       NUMBER,
13545
      overridewarnings   IN       NUMBER DEFAULT 0,
13546
      RESULTS            OUT      SYS_REFCURSOR
13547
      -- pvid - The pvid of the package to delete
13548
 
13549
      -- rtagid - Package is allowed to exist in this release
13550
 
13551
      -- overridewarnings
13552
      --    0   - Do not delete, just test
13553
      --    1   - Delete package if there are only advisory warnings
13554
      --    2   - Delete package even if there are FoolHardy warnings
13555
 
13556
      -- Results [OUTPUT]
13557
      --    Message Text, Error Level
13558
      --    Where error Level is
13559
      --        'A' - Advisory.
13560
      --        'F' - Foolhardy. Will damage releases, SBOMs and other packages
13561
   )
13562
   IS
13563
      LOCKED     CHAR;
13564
      pkgid      NUMBER;
13565
      ROWCOUNT   NUMBER;
13566
      lastPvid   NUMBER;
13567
 
13568
      vartbl RELMGR_PKG_DESTROY_ERR_TAB_T := RELMGR_PKG_DESTROY_ERR_TAB_T();
13569
      ii NUMBER;
13570
 
13571
      -- Add message to table that will be returned
13572
      PROCEDURE ADD_MESSAGE( p1 IN VARCHAR2, p2 IN CHAR)
13573
      IS
13574
      BEGIN
13575
        ii := ii + 1;
13576
        vartbl.extend;
13577
        vartbl(ii) := RELMGR_PKG_DESTROY_ERR_T(p1,UPPER(p2));
13578
      END; 
13579
 
13580
   BEGIN
13581
      /*
13582
      || This will destroy all package details from database.
13583
      || It will only be used to remove unwanted work in progress packages,
13584
      || or mistaken versions
13585
      */
13586
 
13587
      /*--------------- Business Rules Here -------------------*/
13588
      ii := 0;
13589
 
13590
      IF overridewarnings < 1
13591
      THEN
13592
         -- Package must not be official
13593
         SELECT pv.dlocked
13594
           INTO LOCKED
13595
           FROM package_versions pv
13596
          WHERE pv.pv_id = pvid;
13597
 
13598
         IF LOCKED = 'Y'
13599
         THEN
13600
            ADD_MESSAGE ('Package Version is locked and released.', 'A');
13601
         END IF;
13602
 
13603
         -- Cannot remove if a WIP
13604
         SELECT COUNT (pv_id)
13605
           INTO ROWCOUNT
13606
           FROM work_in_progress wip
13607
          WHERE wip.pv_id = pvid AND wip.RTAG_ID != rtagid;
13608
 
13609
         IF ROWCOUNT > 0
13610
         THEN
13611
            ADD_MESSAGE ('Version is in use as a WIP.', 'A');
13612
         END IF;
13613
 
13614
         -- Cannot remove if a PENDING
13615
         SELECT COUNT (pv_id)
13616
           INTO ROWCOUNT
13617
           FROM planned pl
13618
          WHERE pl.pv_id = pvid AND pl.RTAG_ID != rtagid;
13619
 
13620
         IF ROWCOUNT > 0
13621
         THEN
13622
            ADD_MESSAGE ('Version is Pending in a release.', 'A');
13623
         END IF;
13624
 
13625
         -- Cannot remove if in a Release
13626
         SELECT COUNT (pv_id)
13627
           INTO ROWCOUNT
13628
           FROM release_content rc
13629
          WHERE pv_id = pvid AND rc.RTAG_ID != rtagid;
13630
 
13631
         IF ROWCOUNT > 1
13632
         THEN
13633
            ADD_MESSAGE ('Version is a part of another Releases.', 'A');
13634
         END IF;
13635
 
13636
 
13637
         -- Cannot remove if a Daemon Instruction
13638
         SELECT COUNT (di.pv_id)
13639
           INTO ROWCOUNT
13640
           FROM DAEMON_INSTRUCTIONS di
13641
          WHERE di.pv_id = pvid;
13642
 
13643
         IF ROWCOUNT > 0
13644
         THEN
13645
            ADD_MESSAGE ('Version has outstanding Daemon Instruction.', 'A');
13646
         END IF;
13647
 
13648
      END IF;
13649
 
13650
      IF overridewarnings < 2
13651
      THEN
13652
         -- Cannot remove if used in BOMs
13653
         SELECT COUNT (osc.prod_id)
13654
           INTO ROWCOUNT
13655
           FROM deployment_manager.os_contents osc
13656
          WHERE osc.prod_id = pvid;
13657
 
13658
         IF ROWCOUNT > 0
13659
         THEN
13660
            ADD_MESSAGE ('Version is part of Bill-Of-Material (BOM) in Deployment Manager.', 'F');
13661
         END IF;
13662
 
13663
         -- Cannot remove if used in BOMs - Base Env
13664
         SELECT COUNT (bec.prod_id)
13665
           INTO ROWCOUNT
13666
           FROM deployment_manager.base_env_contents bec
13667
          WHERE bec.prod_id = pvid;
13668
 
13669
         IF ROWCOUNT > 0
13670
         THEN
13671
            ADD_MESSAGE ('Version is part of Base Environment in Deployment Manager.', 'F');
13672
         END IF;
13673
 
13674
         -- Cannot remove if used in an SDK
13675
         SELECT COUNT (sc.pv_id)
13676
           INTO ROWCOUNT
13677
           FROM sdk_content sc
13678
          WHERE sc.pv_id = pvid;
13679
 
13680
         IF ROWCOUNT > 0
13681
         THEN
13682
            ADD_MESSAGE ('Version is part of an SDK', 'F');
13683
         END IF;
13684
 
13685
         -- Cannot remove if Referenced as build dependency
13686
         SELECT COUNT (dep.pv_id)
13687
           INTO ROWCOUNT
13688
           FROM package_dependencies dep
13689
          WHERE dep.dpv_id = pvid;
13690
 
13691
         IF ROWCOUNT > 0
13692
         THEN
13693
            ADD_MESSAGE ('Version is referenced by a package as build dependency.', 'F');
13694
         END IF;
13695
 
13696
         -- Cannot remove if Referenced as runtime dependency
13697
         SELECT COUNT (rd.pv_id)
13698
           INTO ROWCOUNT
13699
           FROM runtime_dependencies rd
13700
          WHERE rd.rtd_id = pvid;
13701
 
13702
         IF ROWCOUNT > 0
13703
         THEN
13704
            ADD_MESSAGE ('Version is referenced by other package as a runtime dependency.', 'F');
13705
         END IF;
13706
 
13707
         -- Cannot remove if Referenced as patch
13708
         SELECT COUNT (pp.pv_id)
13709
           INTO ROWCOUNT
13710
           FROM package_patches pp
13711
          WHERE pp.patch_id = pvid;
13712
 
13713
         IF ROWCOUNT > 0
13714
         THEN
13715
            ADD_MESSAGE ('Version is used as a patch by other package.', 'F');
13716
         END IF;
13717
 
13718
      END IF;
13719
 
13720
/*-------------------------------------------------------*/
13721
      IF (ii = 0 AND overridewarnings > 0)
13722
      THEN
13723
         --- Remove From Work in Progress
13724
         DELETE FROM work_in_progress wip
13725
               WHERE wip.pv_id = pvid;
13726
 
13727
         --- Remove From Pending
13728
         DELETE FROM planned pl
13729
               WHERE pl.pv_id = pvid;
13730
 
13731
         --- Remove From Released area
13732
         DELETE FROM release_content rc
13733
               WHERE rc.pv_id = pvid;
13734
 
13735
         ---Remove From Package Processes
13736
         DELETE FROM package_processes pp
13737
               WHERE pp.pv_id = pvid;
13738
 
13739
         --- Remove Dependencies
13740
         DELETE FROM package_dependencies dep
13741
               WHERE dep.pv_id = pvid;
13742
 
13743
         DELETE FROM package_dependencies dep
13744
               WHERE dep.dpv_id = pvid;
13745
 
13746
         --- Remove Runtime dependencies
13747
         DELETE FROM runtime_dependencies rtd
13748
               WHERE rtd.pv_id = pvid;
13749
 
13750
         DELETE FROM runtime_dependencies rtd
13751
               WHERE rtd.rtd_id = pvid;
13752
 
13753
         --- Remove components
13754
         DELETE FROM product_components pc
13755
               WHERE pc.pv_id = pvid;
13756
 
13757
         DELETE FROM release_components rc
13758
               WHERE rc.pv_id = pvid;
13759
 
13760
         --- Remove From Notification History
13761
         DELETE FROM notification_history nh
13762
               WHERE nh.pv_id = pvid;
13763
 
13764
         --- Remove From Ignore Warnings
13765
         DELETE FROM ignore_warnings iw
13766
               WHERE iw.pv_id = pvid;
13767
 
13768
         --- Remove From Additional Notes
13769
         DELETE FROM additional_notes an
13770
               WHERE an.pv_id = pvid;
13771
 
13772
         --- Remove From CQ Issues
13773
         DELETE FROM cq_issues cq
13774
               WHERE cq.pv_id = pvid;
13775
 
13776
         --- Remove from Package Patches
13777
         DELETE FROM package_patches pp
13778
               WHERE pp.pv_id = pvid;
13779
 
13780
         DELETE FROM package_patches pp
13781
               WHERE pp.patch_id = pvid;
13782
 
13783
         --- Remove From Package Documents
13784
         DELETE FROM package_documents pd
13785
               WHERE pd.pv_id = pvid;
13786
 
13787
         --- Remove from Code Review
13788
         DELETE FROM code_reviews cr
13789
               WHERE cr.pv_id = pvid;
13790
 
13791
         --- Remove from Code Review URL
13792
         DELETE FROM code_review_url cru
13793
               WHERE cru.pv_id = pvid;
13794
 
13795
         --- Remove from Unit Tests
13796
         DELETE FROM unit_tests ut
13797
               WHERE ut.pv_id = pvid;
13798
 
13799
         --- Remove from Package BuildEnv
13800
         DELETE FROM package_build_env pbe
13801
               WHERE pbe.pv_id = pvid;
13802
 
13803
         --- Remove from Package Build Info
13804
         DELETE FROM package_build_info pbi
13805
               WHERE pbi.pv_id = pvid;
13806
 
13807
        --- Remove from Build Plan
13808
         DELETE FROM BUILD_PLAN bp
13809
               WHERE bp.pv_id = pvid;
13810
 
13811
         --- Remove from Build Instances
13812
         DELETE FROM BUILD_INSTANCES bi
13813
               WHERE bi.pv_id = pvid;
13814
 
13815
         --- Remove from Build Order
13816
         DELETE FROM build_order bo
13817
               WHERE bo.pv_id = pvid;
13818
 
13819
         --- Remove from Licencing
13820
         PK_LICENCING.REMOVE_ALL_LICENCING( pvid, 0 );
13821
 
13822
         --- Remove from Note Manager
13823
         DELETE FROM note_manager nm
13824
               WHERE nm.nid = pvid;
13825
 
13826
         --- Remove from Action log
13827
         DELETE FROM action_log al
13828
               WHERE al.pv_id = pvid;
13829
 
13830
         --- Remove from Do Not Ripple
13831
         DELETE FROM DO_NOT_RIPPLE dnr
13832
               WHERE dnr.PV_ID = pvid;
13833
 
13834
        --- Remove from SDK
13835
        DELETE FROM SDK_CONTENT sc
13836
            WHERE sc.PV_ID = pvid;
13837
 
13838
        -- Remove from daemon Instruction
13839
        DELETE FROM DAEMON_INSTRUCTIONS di
13840
          WHERE di.PV_ID = pvid;
13841
 
13842
         --- Remove from Advisory Ripple
13843
         DELETE FROM ADVISORY_RIPPLE ar
13844
               WHERE ar.PV_ID = pvid;
13845
 
13846
         --- Remove from Jira Issues
13847
         DELETE FROM JIRA_ISSUES jira
13848
               WHERE jira.PV_ID = pvid;
13849
 
13850
         --- Remove from Package Metrics
13851
         DELETE FROM package_metrics pm
13852
              WHERE pm.pv_id = pvid;
13853
 
13854
         -- Delete from Pegged Versions
13855
         DELETE FROM pegged_versions pegv
13856
              WHERE pegv.pv_id = pvid;
13857
 
13858
         --- Finally Remove From Package Versions
13859
         --- Get Package name
13860
         SELECT pv.pkg_id, pv.LAST_PV_ID
13861
           INTO pkgid, lastPvid
13862
           FROM package_versions pv
13863
          WHERE pv.pv_id = pvid;
13864
 
13865
          --- Relink packages last_pv_id
13866
          IF lastPvid is NOT NULL AND pvid !=  lastPvid THEN
13867
            UPDATE package_versions pv
13868
               SET pv.LAST_PV_ID = lastPvid
13869
             WHERE pv.LAST_PV_ID = pvid;
13870
          END IF;
13871
 
13872
         --- Delete the version
13873
         DELETE FROM package_versions pv
13874
               WHERE pv.pv_id = pvid;
13875
 
13876
         --- Remove package name if not used any more
13877
         SELECT COUNT (pv.pv_id)
13878
           INTO ROWCOUNT
13879
           FROM package_versions pv
13880
          WHERE pv.pkg_id = pkgid;
13881
 
13882
         IF ROWCOUNT < 1
13883
         THEN
13884
            DELETE FROM PACKAGES pkg
13885
                  WHERE pkg.pkg_id = pkgid;
13886
         END IF;
13887
      END IF;
13888
 
13889
      --- Return table of reasons the package shouldn't be destroyed
13890
       open RESULTS for select * from table(vartbl);
13891
 
13892
   END;
13893
 
13894
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 13895
   PROCEDURE new_patch (
13896
      snewpatchversion   IN       package_versions.pkg_version%TYPE,
13897
      nparentpvid        IN       NUMBER,
13898
      spatchidlist       IN       VARCHAR2,
13899
      nuserid            IN       NUMBER,
13900
      returnpatchid      OUT      NUMBER
13901
   )
13902
   IS
13903
      patchpv_id           NUMBER;
13904
      parpkg_id            NUMBER;
13905
      lastinstallorder     NUMBER;
13906
      ispatchdlocked       package_versions.dlocked%TYPE;
13907
      ssv_mm               package_versions.v_mm%TYPE;
13908
      ssv_nmm              package_versions.v_nmm%TYPE;
13909
      ssv_ext              package_versions.v_ext%TYPE;
3959 dpurdie 13910
      opatchdepcollector   relmgr_number_tab_t  := relmgr_number_tab_t ();
1373 dpurdie 13911
 
13912
      CURSOR parent_cur
13913
      IS
13914
         SELECT pv.*, pkg.pkg_name
13915
           FROM package_versions pv, PACKAGES pkg
13916
          WHERE pv.pv_id = nparentpvid AND pv.pkg_id = pkg.pkg_id;
13917
 
3959 dpurdie 13918
      parent_rec parent_cur%ROWTYPE;
1373 dpurdie 13919
 
13920
      CURSOR patch_cur
13921
      IS
13922
         SELECT pv.*, pg.pkg_name
13923
           FROM package_versions pv, PACKAGES pg
13924
          WHERE pv.pkg_id = parpkg_id
13925
            AND pv.pkg_version = snewpatchversion
13926
            AND pv.pkg_id = pg.pkg_id;
13927
 
3959 dpurdie 13928
      patch_rec  patch_cur%ROWTYPE;
1373 dpurdie 13929
 
13930
      CURSOR releases_cur
13931
      IS
13932
         SELECT rc.pv_id
13933
           FROM release_content rc
13934
          WHERE rc.pv_id = patch_rec.pv_id;
13935
 
3959 dpurdie 13936
      releases_rec releases_cur%ROWTYPE;
1373 dpurdie 13937
   BEGIN
13938
      -- Get Last Install Order
13939
      SELECT COUNT (*)
13940
        INTO lastinstallorder
13941
        FROM package_patches pp
13942
       WHERE pp.pv_id = nparentpvid;
13943
 
13944
      -- Get parent details
13945
      OPEN parent_cur;
13946
 
13947
      FETCH parent_cur
13948
       INTO parent_rec;
13949
 
13950
      parpkg_id := parent_rec.pkg_id;
13951
 
13952
      -- Find if patch exists in database
13953
      OPEN patch_cur;
13954
 
13955
      FETCH patch_cur
13956
       INTO patch_rec;
13957
 
13958
      -- Parent must be official
13959
      IF parent_rec.dlocked = 'Y'
13960
      THEN
13961
         IF patch_cur%NOTFOUND
13962
         THEN
13963
            ispatchdlocked := 'N';
13964
 
13965
            -- Create new patch version --
13966
            SELECT seq_pv_id.NEXTVAL
13967
              INTO patchpv_id
13968
              FROM DUAL;
13969
 
13970
            split_version (snewpatchversion, ssv_mm, ssv_nmm, ssv_ext);
13971
 
13972
            INSERT INTO package_versions
13973
                        (pv_id, pkg_id, pkg_version,
13974
                         dlocked, created_stamp, creator_id,
13975
                         modified_stamp, modifier_id, v_mm, v_nmm, v_ext,
13976
                         src_path,
13977
                         pv_description,
13978
                         owner_id, is_patch, last_pv_id, build_type, is_build_env_required, bs_id,
3959 dpurdie 13979
                         is_autobuildable, ripple_field
1373 dpurdie 13980
                        )
13981
                 VALUES (patchpv_id, parpkg_id, snewpatchversion,
7000 dpurdie 13982
                         ispatchdlocked, ora_sysdatetime, nuserid,
1373 dpurdie 13983
                         ora_sysdatetime, nuserid, ssv_mm, ssv_nmm, ssv_ext,
13984
                         parent_rec.src_path,
13985
                            'This is a patch to '
13986
                         || parent_rec.pkg_name
13987
                         || ' '
13988
                         || parent_rec.pkg_version,
3959 dpurdie 13989
                         nuserid, 'Y', patchpv_id, 'M', 'N', 3, 'N', parent_rec.ripple_field
1373 dpurdie 13990
                        );
13991
 
13992
            INSERT INTO package_patches
13993
                        (pv_id, patch_id, install_order)
3959 dpurdie 13994
                (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
13995
                        lastinstallorder + 1 AS install_order
13996
                   FROM package_versions pv
13997
                  WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
1373 dpurdie 13998
 
13999
            /* LOG ACTION */
6999 dpurdie 14000
            log_action (patchpv_id,
14001
                        'new_version',
14002
                        nuserid,
14003
                        'Patch version created: ' || snewpatchversion
14004
                       );
14005
            log_action (nparentpvid,
14006
                        'patch_add',
14007
                        nuserid,
14008
                        'New patch created and attached: ' || snewpatchversion
14009
                       );
1373 dpurdie 14010
         ELSE
14011
            patchpv_id := patch_rec.pv_id;
14012
            ispatchdlocked := patch_rec.dlocked;
14013
 
14014
            -- Find if pv_id exists in release content (i.e. it cannot be a patch)
14015
            OPEN releases_cur;
14016
 
14017
            FETCH releases_cur
14018
             INTO releases_rec;
14019
 
14020
            IF releases_cur%NOTFOUND
14021
            THEN
14022
               -- This pv_id is trully a patch, hence add Y to column IS_PATCH
14023
               UPDATE package_versions
14024
                  SET is_patch = 'Y'
14025
                WHERE pv_id = patchpv_id;
14026
 
14027
               INSERT INTO package_patches
14028
                           (pv_id, patch_id, install_order)
3959 dpurdie 14029
                   (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
14030
                           lastinstallorder + 1 AS install_order
14031
                      FROM package_versions pv
14032
                     WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
1373 dpurdie 14033
            END IF;
14034
 
14035
            CLOSE releases_cur;
14036
 
14037
            /* LOG ACTION */
6999 dpurdie 14038
            log_action (nparentpvid,
14039
                        'patch_add',
14040
                        nuserid,
14041
                           'Patch version was found and attached: '
14042
                        || snewpatchversion
14043
                       );
1373 dpurdie 14044
         END IF;
14045
      END IF;
14046
 
14047
      /* Create Patch Dependencies */
14048
      opatchdepcollector := in_list_number (spatchidlist);
14049
 
14050
      -- Make sure patch is unofficial before altering its dependencies
14051
      IF (opatchdepcollector.COUNT > 0) AND (ispatchdlocked = 'N')
14052
      THEN
14053
         -- Delete Existing Dependencies
14054
         DELETE FROM package_dependencies dep
14055
               WHERE dep.pv_id = patchpv_id;
14056
 
14057
         -- Insert new dependencies
14058
         INSERT INTO package_dependencies
14059
                     (pv_id, dpv_id, pkg_id, dpkg_id, build_type)
3959 dpurdie 14060
              SELECT patchpv_id AS pv_id, pv.pv_id AS dpv_id,
14061
                     parpkg_id AS pkg_id, pv.pkg_id AS dpkg_id,
14062
                     'L' AS build_type
14063
                FROM package_versions pv
14064
               WHERE pv.pv_id IN (
1373 dpurdie 14065
                      SELECT *
14066
                        FROM TABLE
14067
                                (CAST
14068
                                    (opatchdepcollector AS relmgr_number_tab_t)
14069
                                ));
14070
      END IF;
14071
 
14072
      -- Return patch_id
14073
      returnpatchid := patchpv_id;
14074
 
14075
      CLOSE parent_cur;
14076
 
14077
      CLOSE patch_cur;
14078
   EXCEPTION
14079
      WHEN DUP_VAL_ON_INDEX
14080
      THEN
14081
         raise_application_error (-20000,
14082
                                     'Patch version '
14083
                                  || snewpatchversion
14084
                                  || ' already exist.'
14085
                                 );
14086
   END;
14087
 
14088
/*-------------------------------------------------------------------------------------------------------*/
14089
   PROCEDURE obsolete_patch (
14090
      patchid            IN   NUMBER,
14091
      isobsolete         IN   CHAR,
14092
      obsoletecomments   IN   VARCHAR2,
14093
      userid             IN   NUMBER
14094
   )
14095
   IS
14096
   BEGIN
14097
      -- Update patch
14098
      UPDATE package_versions pv
14099
         SET pv.is_obsolete = isobsolete,
14100
             pv.obsolete_comments = obsoletecomments
14101
       WHERE pv.pv_id = patchid;
14102
 
14103
      /*
14104
      -- Update patch children
14105
      UPDATE PACKAGE_VERSIONS pv SET
14106
      pv.IS_OBSOLETE = IsObsolete,
14107
      pv.OBSOLETE_COMMENTS = ObsoleteComments
14108
      WHERE pv.PV_ID IN (
14109
                     SELECT DISTINCT dep.DPV_ID
14110
                       FROM PACKAGE_DEPENDENCIES dep
14111
                      WHERE dep.PV_ID = PatchId
14112
                     );
14113
 
14114
 
14115
      -- Update patch parent
14116
      UPDATE PACKAGE_VERSIONS pv SET
14117
      pv.IS_OBSOLETE = IsObsolete,
14118
      pv.OBSOLETE_COMMENTS = ObsoleteComments
14119
      WHERE pv.PV_ID IN (
14120
                     SELECT DISTINCT dep.PV_ID
14121
                       FROM PACKAGE_DEPENDENCIES dep
14122
                      WHERE dep.DPV_ID = PatchId
14123
                     );
14124
 
3959 dpurdie 14125
      */
1373 dpurdie 14126
 
14127
      /* LOG ACTION */
14128
      IF isobsolete IS NOT NULL
14129
      THEN
6999 dpurdie 14130
         log_action (patchid,
14131
                     'patch_obsolete',
14132
                     userid,
14133
                     'Obsolete patch. ' || obsoletecomments
14134
                    );
1373 dpurdie 14135
      ELSE
6999 dpurdie 14136
         log_action (patchid,
14137
                     'patch_obsolete',
14138
                     userid,
14139
                     'Undo patch obsolete.'
14140
                    );
1373 dpurdie 14141
      END IF;
14142
   END;
14143
 
14144
/*-------------------------------------------------------------------------------------------------------*/
14145
   PROCEDURE obsolete_patches (
14146
      spatchidlist       IN   VARCHAR2,
14147
      isobsolete         IN   CHAR,
14148
      obsoletecomments   IN   VARCHAR2,
14149
      userid             IN   NUMBER
14150
   )
14151
   IS
14152
   BEGIN
14153
      /*--------------- Business Rules Here -------------------*/
14154
      IF spatchidlist IS NULL
14155
      THEN
14156
         raise_application_error (-20000,
14157
                                  'Please select one or more Patches.'
14158
                                 );
14159
      END IF;
14160
 
14161
/*-------------------------------------------------------*/
14162
 
14163
      -- Update patch
14164
      UPDATE package_versions pv
14165
         SET pv.is_obsolete = isobsolete,
14166
             pv.obsolete_comments = obsoletecomments
14167
       WHERE pv.pv_id IN (
14168
                SELECT *
14169
                  FROM THE
14170
                          (SELECT CAST
14171
                                     (in_list_number (spatchidlist) AS relmgr_number_tab_t
14172
                                     )
14173
                             FROM DUAL
14174
                          ));
3959 dpurdie 14175
      /*
14176
      -- Update patch children
14177
      UPDATE PACKAGE_VERSIONS pv SET
14178
      pv.IS_OBSOLETE = IsObsolete,
14179
      pv.OBSOLETE_COMMENTS = ObsoleteComments
14180
      WHERE pv.PV_ID IN (
14181
                     SELECT DISTINCT dep.DPV_ID
14182
                       FROM PACKAGE_DEPENDENCIES dep
14183
                      WHERE dep.PV_ID = PatchId
14184
                     );
1373 dpurdie 14185
 
14186
 
3959 dpurdie 14187
      -- Update patch parent
14188
      UPDATE PACKAGE_VERSIONS pv SET
14189
      pv.IS_OBSOLETE = IsObsolete,
14190
      pv.OBSOLETE_COMMENTS = ObsoleteComments
14191
      WHERE pv.PV_ID IN (
14192
                     SELECT DISTINCT dep.PV_ID
14193
                       FROM PACKAGE_DEPENDENCIES dep
14194
                      WHERE dep.DPV_ID = PatchId
14195
                     );
1373 dpurdie 14196
 
14197
      */
14198
 
3959 dpurdie 14199
      /* LOG ACTION
14200
      IF IsObsolete IS NOT NULL THEN
6999 dpurdie 14201
         Log_Action ( PatchId, 'patch_obsolete', UserId,
14202
                     'Obsolete patch. '|| ObsoleteComments );
3959 dpurdie 14203
      ELSE
6999 dpurdie 14204
         Log_Action ( PatchId, 'patch_obsolete', UserId,
14205
                     'Undo patch obsolete.' );
3959 dpurdie 14206
      END IF;  */
1373 dpurdie 14207
   END;
14208
 
14209
/*-------------------------------------------------------------------------------------------------------*/
14210
   PROCEDURE add_process (
14211
      nprocid         IN   processes.proc_id%TYPE,
14212
      shealthtag      IN   processes.proc_name%TYPE,
14213
      sprocdesc       IN   processes.proc_description%TYPE,
14214
      scmdinterface   IN   processes.run_as%TYPE,
14215
      spkgowner       IN   processes.pkg_owner%TYPE,
14216
      sisinterface    IN   processes.is_interface%TYPE,
14217
      npvid           IN   package_processes.pv_id%TYPE,
14218
      nuserid         IN   NUMBER
14219
   )
14220
   IS
14221
      pkgname   VARCHAR2 (100);
3959 dpurdie 14222
 
1373 dpurdie 14223
   BEGIN
14224
      INSERT INTO processes
14225
                  (proc_id, proc_name, proc_description, run_as, pkg_owner,
14226
                   is_interface
14227
                  )
14228
           VALUES (nprocid, shealthtag, sprocdesc, scmdinterface, spkgowner,
14229
                   sisinterface
14230
                  );
14231
 
14232
      pk_package.add_package_process (nprocid, npvid, nuserid);
14233
   END;
14234
 
14235
/*-------------------------------------------------------------------------------------------------------*/
14236
   PROCEDURE add_package_process (
14237
      nprocidlist   IN   VARCHAR2,
14238
      npvid         IN   package_processes.pv_id%TYPE,
14239
      nuserid       IN   NUMBER
14240
   )
14241
   IS
14242
      processname   VARCHAR2 (4000);
14243
 
14244
      CURSOR proc_cur
14245
      IS
14246
         SELECT prc.proc_id
14247
           FROM processes prc
14248
          WHERE prc.proc_id IN (
14249
                   SELECT *
14250
                     FROM THE
14251
                             (SELECT CAST
14252
                                        (in_list_number (nprocidlist) AS relmgr_number_tab_t
14253
                                        )
14254
                                FROM DUAL
14255
                             ));
14256
 
3959 dpurdie 14257
      proc_rec  proc_cur%ROWTYPE;
1373 dpurdie 14258
   BEGIN
14259
      OPEN proc_cur;
14260
 
14261
      FETCH proc_cur
14262
       INTO proc_rec;
14263
 
14264
      WHILE proc_cur%FOUND
14265
      LOOP
3959 dpurdie 14266
         INSERT INTO package_processes (proc_id, pv_id)
14267
              VALUES (proc_rec.proc_id, npvid);
1373 dpurdie 14268
 
14269
         SELECT prc.proc_name
14270
           INTO processname
14271
           FROM processes prc
14272
          WHERE prc.proc_id = proc_rec.proc_id;
14273
 
14274
         -- Log Action --
6999 dpurdie 14275
         log_action (npvid,
14276
                     'process_add',
14277
                     nuserid,
14278
                     'Added process with health tag ' || processname
14279
                    );
1373 dpurdie 14280
 
14281
         FETCH proc_cur
14282
          INTO proc_rec;
14283
      END LOOP;
3959 dpurdie 14284
 
14285
      CLOSE proc_cur;
1373 dpurdie 14286
   END;
14287
 
14288
/*-------------------------------------------------------------------------------------------------------*/
14289
   PROCEDURE remove_process (
14290
      nprocid   IN   package_processes.proc_id%TYPE,
14291
      npvid     IN   package_processes.pv_id%TYPE,
14292
      nuserid   IN   NUMBER
14293
   )
14294
   IS
14295
      processname   VARCHAR2 (4000);
14296
   BEGIN
14297
      SELECT prc.proc_name
14298
        INTO processname
14299
        FROM processes prc
14300
       WHERE prc.proc_id = nprocid;
14301
 
14302
      DELETE FROM package_processes
14303
            WHERE proc_id = nprocid AND pv_id = npvid;
14304
 
14305
      -- Log Action --
6999 dpurdie 14306
      log_action (npvid,
14307
                  'process_remove',
14308
                  nuserid,
14309
                  'Removed process with health tag ' || processname
14310
                 );
1373 dpurdie 14311
   END;
14312
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14313
   /*
14314
   ** Author: Rupesh Solanki
14315
   ** Purpose: To move package versions from one release to another
14316
   ** Release: 4th September 2006
14317
   */
14318
   PROCEDURE move_package (
14319
      npvid        IN package_versions.pv_id%TYPE,
14320
      nrtagid      IN release_tags.rtag_id%TYPE,
14321
      nnewrtagid   IN release_tags.rtag_id%TYPE,
14322
      nuserid      IN NUMBER
14323
   )
14324
   IS
1373 dpurdie 14325
 
3959 dpurdie 14326
      oldrtag_name VARCHAR2(4000);newrtag_name VARCHAR2(4000);
14327
 
14328
   BEGIN
14329
      SELECT rtag_name into oldrtag_name
14330
      FROM RELEASE_TAGS
14331
      WHERE rtag_id = nrtagid;
14332
 
14333
      SELECT rtag_name into newrtag_name
14334
      FROM RELEASE_TAGS
14335
      WHERE rtag_id = nnewrtagid;
14336
 
14337
      /* Table Work In Progress*/
14338
      UPDATE WORK_IN_PROGRESS
14339
      SET RTAG_ID = nnewrtagid
14340
      WHERE RTAG_ID = nrtagid
14341
      AND PV_ID = npvid;
14342
 
14343
      /* Table PLANNED*/
14344
      UPDATE PLANNED
14345
      SET RTAG_ID = nnewrtagid
14346
      WHERE RTAG_ID = nrtagid
14347
      AND PV_ID = npvid;
14348
 
14349
      /* Table PEGGED_VERSIONS */
14350
      DELETE FROM PEGGED_VERSIONS pegv
14351
      WHERE pegv.RTAG_ID = nrtagid
14352
      AND pegv.PV_ID = npvid;
14353
 
14354
      /* Table ADVISORY_RIPPLE*/
14355
      DELETE FROM ADVISORY_RIPPLE
14356
      WHERE RTAG_ID = nrtagid
14357
      AND PV_ID = npvid;
14358
 
14359
 
1373 dpurdie 14360
      -- Log Action --
6999 dpurdie 14361
      log_action (npvid,
14362
                  'move_package_version',
14363
                  nuserid,
14364
                  'Moved package version from ' || oldrtag_name || ' to ' || newrtag_name
14365
                 );
3959 dpurdie 14366
   END;
14367
 
1373 dpurdie 14368
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14369
   /*
14370
   ** Author: Rupesh Solanki
14371
   ** Purpose: To modify the product state from integration to test to deployment
14372
   ** Release: 25th January 2006
14373
   */
14374
   PROCEDURE modify_product_state (
14375
      npvid    IN package_versions.pv_id%TYPE,
14376
      nrtagid  IN release_tags.rtag_id%TYPE,
14377
      nstateid IN product_states.state_id%TYPE,
14378
      nuserid  IN NUMBER
1373 dpurdie 14379
   ) IS
3959 dpurdie 14380
 
14381
      sStateName VARCHAR2(4000);
14382
      sRtagName VARCHAR2(4000);
14383
 
14384
   BEGIN
14385
 
14386
      UPDATE RELEASE_CONTENT
14387
      SET PRODUCT_STATE = nstateid
14388
      WHERE PV_ID = npvid
14389
      AND RTAG_ID = nrtagid;
14390
 
14391
 
14392
      SELECT STATE INTO sStateName
14393
      FROM PRODUCT_STATES
14394
      WHERE STATE_ID = nstateid;
14395
 
14396
      SELECT RTAG_NAME into sRtagName
14397
      FROM RELEASE_TAGS
14398
      WHERE RTAG_ID = nrtagid;
14399
 
14400
 
14401
      -- Log Action --
6999 dpurdie 14402
      log_action (npvid,
14403
                  'modify_product_state',
14404
                     nuserid,
14405
                     sStateName || ' in '|| sRtagName
14406
                  );
3959 dpurdie 14407
   END;
14408
/*-------------------------------------------------------------------------------------------------------*/
14409
   /*
14410
   ** Author: Jeremy Tweddle
14411
   ** Date: 24/Aug/2007
14412
   */
14413
   PROCEDURE add_code_review_url (
14414
      npvid           IN    NUMBER,
14415
      nprojid         IN    NUMBER,
14416
      surl            IN    VARCHAR2,
14417
      sreason         IN    VARCHAR2,
4553 dpurdie 14418
      ddateofreview   IN    VARCHAR2
3959 dpurdie 14419
   ) IS
14420
 
14421
      ncrid NUMBER;
14422
 
14423
   BEGIN
14424
 
14425
      SELECT seq_cr_id.NEXTVAL INTO ncrid FROM DUAL;
14426
 
4553 dpurdie 14427
      INSERT INTO code_review_url ( cr_id, pv_id, proj_id, url, reason, date_of_review, last_modified )
7000 dpurdie 14428
      VALUES ( ncrid, npvid, nprojid, surl, sreason, TO_DATE( ddateofreview,'DD/MM/YYYY' ), ora_sysdatetime );
3959 dpurdie 14429
 
14430
   END;
14431
/*-------------------------------------------------------------------------------------------------------*/
14432
   /*
14433
   ** Author: Jeremy Tweddle
14434
   ** Date: 22/Aug/2007
14435
   */
14436
   PROCEDURE update_code_review_url (
14437
      ncrid           IN    NUMBER,
14438
      nprojid         IN    NUMBER,
14439
      surl            IN    VARCHAR2,
4553 dpurdie 14440
      sreason         IN    VARCHAR2,
14441
      ddateofreview   IN    VARCHAR2
3959 dpurdie 14442
   ) IS
14443
 
14444
   BEGIN
14445
 
14446
      UPDATE code_review_url
14447
      SET url = surl,
14448
          proj_id = nprojid,
14449
          reason = sreason,
6031 dpurdie 14450
          date_of_review = TO_DATE( ddateofreview,'DD/MM/YYYY' ),
7000 dpurdie 14451
          last_modified = ora_sysdatetime
3959 dpurdie 14452
      WHERE cr_id = ncrid;
14453
 
14454
   END;
4553 dpurdie 14455
 
3959 dpurdie 14456
/*-------------------------------------------------------------------------------------------------------*/
14457
   /*
14458
   ** Author: Jeremy Tweddle
14459
   ** Date: 22/Aug/2007
14460
   */
14461
   PROCEDURE remove_code_review_url (
14462
      ncrid  IN    NUMBER
14463
   ) IS
14464
 
14465
   BEGIN
14466
      DELETE FROM code_review_url
14467
      WHERE cr_id = ncrid;
14468
   END;
14469
/*-------------------------------------------------------------------------------------------------------*/
6600 dpurdie 14470
 
14471
PROCEDURE
14472
        SET_RIPPLE_STOP (
14473
        nPVID IN RELEASE_CONTENT.PV_ID%TYPE,
14474
        nRtagId IN RELEASE_CONTENT.RTAG_ID%TYPE,
14475
        nUserId IN NUMBER,
14476
        cMode IN CHAR
14477
    ) IS
14478
    ReleaseLocation VARCHAR2(4000);
14479
    sMode VARCHAR(100);
14480
    cData CHAR;
14481
 
14482
 
14483
BEGIN
14484
 
14485
    IF (nPVID IS NULL) THEN
14486
        RAISE_APPLICATION_ERROR (-20000, 'PvId not set' );
14487
    END IF;
14488
 
14489
    IF (nRtagId IS NULL) THEN
14490
        RAISE_APPLICATION_ERROR (-20001, 'rTagId not set' );
14491
    END IF;
14492
 
14493
    cData := cMode;
14494
    If cMode = 's' THEN
14495
        sMode := 'ripple_stop';
14496
 
14497
    ELSIF cMode = 'w' THEN
14498
        sMode := 'ripple_wait';
14499
 
14500
    ELSIF cMode = 'r' THEN
14501
        sMode := 'ripple_removed';
14502
        cData := NULL;
14503
 
14504
    ELSIF cMode = 'g' THEN
14505
        sMode := 'ripple_resume';
14506
 
14507
    ELSE
14508
       RAISE_APPLICATION_ERROR (-20002, 'Unknown mode:' || cMode );
14509
 
14510
    END IF;
14511
 
14512
    -- Update the value
14513
    UPDATE RELEASE_CONTENT 
14514
    SET RIPPLE_STOP = cData
14515
    WHERE RTAG_ID = nRtagId
14516
    AND PV_ID = nPVID;
14517
 
14518
    -- Mark Release Changed for build
14519
    PK_RELEASE.SET_RELEASE_MODIFIED(nRtagId);
14520
 
14521
    /* LOG ACTION */
14522
    SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
14523
    FROM PROJECTS proj,RELEASE_TAGS rt
14524
    WHERE rt.PROJ_ID = proj.PROJ_ID
14525
    AND rt.RTAG_ID = nRtagId;
14526
 
14527
    Log_Action ( nPVID, sMode, nUserId, 'Location: '|| ReleaseLocation);
14528
 
14529
END SET_RIPPLE_STOP;
14530
 
3959 dpurdie 14531
END pk_package;
4040 dpurdie 14532
 
1374 dpurdie 14533
/
5892 dpurdie 14534
 
6031 dpurdie 14535
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
6999 dpurdie 14536
  GRANT DEBUG ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 14537
--------------------------------------------------------
14538
--  DDL for Package Body PK_PLANNED
14539
--------------------------------------------------------
14540
 
5172 dpurdie 14541
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PLANNED" IS
3959 dpurdie 14542
 
1373 dpurdie 14543
/*
14544
------------------------------
3959 dpurdie 14545
||  Last Modified:  G.Huddy
14546
||  Modified Date:  05/Aug/2008
14547
||  Body Version:   1.2
1373 dpurdie 14548
------------------------------
14549
*/
14550
 
14551
 
14552
/*-------------------------------------------------------------------------------------------------------*/
5384 dpurdie 14553
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, OPR IN CHAR DEFAULT 'R' ) IS
1373 dpurdie 14554
 
3959 dpurdie 14555
    oldPvId NUMBER;
14556
    ReleaseLocation VARCHAR2(4000);
14557
    IsPatch CHAR(1) := NULL;
14558
    sLocation VARCHAR2(4000) := NULL;
14559
    nRtagIdLocation NUMBER;
1373 dpurdie 14560
 
14561
 
14562
 
3959 dpurdie 14563
BEGIN
14564
    /*--------------- Business Rules Here -------------------*/
14565
    /*-------------------------------------------------------*/
6031 dpurdie 14566
 
5384 dpurdie 14567
    IF OPR = 'R' THEN
14568
      BEGIN
14569
          -- Check if Exists in "Work in progress" anywhere in the world, except "Closed mode" releases
14570
          SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME, rt.RTAG_ID  INTO sLocation, nRtagIdLocation
14571
            FROM PLANNED pl,
14572
                 RELEASE_TAGS rt,
14573
                 PROJECTS proj
14574
           WHERE pl.PV_ID = newPvId
14575
             AND pl.RTAG_ID = rt.RTAG_ID
14576
             AND rt.OFFICIAL != 'Y'
14577
             AND rt.PROJ_ID = proj.PROJ_ID;
6031 dpurdie 14578
 
5384 dpurdie 14579
          EXCEPTION
14580
              WHEN NO_DATA_FOUND THEN
14581
                  sLocation := NULL;
14582
      END;
6031 dpurdie 14583
 
5384 dpurdie 14584
      IF (sLocation IS NULL) OR (nRtagIdLocation = RtagId) THEN
6031 dpurdie 14585
 
5384 dpurdie 14586
          -- Add to "Pending" area
14587
          INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )
14588
          VALUES( RtagId, newPvId, ViewId, OPR );
6031 dpurdie 14589
 
5384 dpurdie 14590
          /* LOG ACTION */
14591
          SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
14592
            FROM PROJECTS proj,
14593
                 RELEASE_TAGS rt
14594
           WHERE rt.PROJ_ID = proj.PROJ_ID
14595
             AND rt.RTAG_ID = RtagId;
6031 dpurdie 14596
 
5384 dpurdie 14597
          Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
6031 dpurdie 14598
 
5384 dpurdie 14599
      ELSE
14600
            RAISE_APPLICATION_ERROR (-20000, 'This version is already in Pending Area at '|| sLocation ||'.' );
14601
        END IF;
6031 dpurdie 14602
 
3959 dpurdie 14603
    ELSE
6031 dpurdie 14604
      -- Not adding a WIP. Merging a package version
5384 dpurdie 14605
      MERGE_PACKAGE ( newPvId, ViewId, RtagId, UserId, OPR );
3959 dpurdie 14606
    END IF;
14607
 
14608
END;
1373 dpurdie 14609
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14610
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 14611
 
3959 dpurdie 14612
    ReleaseLocation VARCHAR2(4000);
1373 dpurdie 14613
 
3959 dpurdie 14614
BEGIN
1373 dpurdie 14615
 
3959 dpurdie 14616
    /*--------------- Business Rules Here -------------------*/
14617
    /*-------------------------------------------------------*/
1373 dpurdie 14618
 
14619
 
3959 dpurdie 14620
    -- Get release location for logging pusposes
14621
    SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
14622
      FROM PROJECTS proj,
14623
           RELEASE_TAGS rt
14624
     WHERE rt.PROJ_ID = proj.PROJ_ID
14625
       AND rt.RTAG_ID = RtagId;
1373 dpurdie 14626
 
6031 dpurdie 14627
    -- Ensure that package is not marked as Pending any more
14628
    UPDATE package_versions
14629
       SET DLOCKED  = 'N'
14630
     WHERE PV_ID  = PvId
14631
       AND DLOCKED != 'Y';
1373 dpurdie 14632
 
3959 dpurdie 14633
    -- Delete from Work In Progress
14634
    DELETE
14635
      FROM PLANNED pl
14636
     WHERE pl.RTAG_ID = RtagId
14637
       AND pl.PV_ID = PvId;
1373 dpurdie 14638
 
3959 dpurdie 14639
    Log_Action ( PvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
14640
 
14641
 
14642
 
14643
 
14644
END;
1373 dpurdie 14645
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14646
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
1373 dpurdie 14647
 
3959 dpurdie 14648
    ReturnValue NUMBER;
1373 dpurdie 14649
 
3959 dpurdie 14650
BEGIN
14651
    SELECT pl.VIEW_ID INTO ReturnValue
14652
      FROM PLANNED pl
14653
     WHERE pl.RTAG_ID = RtagId
14654
       AND pl.PV_ID = PvId;
14655
 
14656
    RETURN ReturnValue;
14657
END;
14658
/*-------------------------------------------------------------------------------------------------------*/
7039 dpurdie 14659
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) as 
14660
begin
14661
OPEN RecordSet FOR
14662
-- Determine the PV_ID and OPERATION for the required VIEW
14663
With selectedPv as (
14664
    SELECT pv.pv_id, rel.operation, 0 as pkg_state
14665
      FROM PLANNED rel, package_versions pv, VIEW_DEF vd,  VIEWS vi
14666
      WHERE rel.pv_id = pv.pv_id
14667
      AND vd.PKG_ID = pv.PKG_ID
14668
      AND vd.VIEW_ID = ViewId
14669
      AND rel.RTAG_ID = RtagId
14670
      AND vi.VIEW_ID = ViewId
14671
      AND vi.BASE_VIEW NOT IN ('Y', 'S')
14672
    UNION
14673
     SELECT rel.pv_id, rel.operation, 0 as pkg_state
14674
     FROM PLANNED rel, VIEWS vi
14675
     WHERE rel.VIEW_ID = ViewId
14676
     AND rel.RTAG_ID = RtagId
14677
     AND vi.VIEW_ID = ViewId
14678
     AND vi.BASE_VIEW IN ('Y', 'S')
14679
),
14680
-- Determine packages that are building
14681
building as (
14682
    SELECT unique rl.CURRENT_PV_ID as pv_id, rc.RTAG_ID 
14683
    FROM RELEASE_CONFIG rc, RELEASE_TAGS rt, RUN_LEVEL rl 
14684
    WHERE rt.RTAG_ID = rc.RTAG_ID
14685
    AND rc.RTAG_ID = RtagId
14686
    AND rc.bmcon_id is not null
14687
    AND rt.OFFICIAL in ( 'N', 'R', 'C')
14688
    AND rl.RCON_ID(+) = rc.RCON_ID
14689
    AND rl.CURRENT_PKG_ID_BEING_BUILT is not null
14690
    AND NVL(rl.PAUSE,0) < 2
14691
), 
14692
-- Determine Packages that are scheduled to build    
14693
scheduled as (
14694
    SELECT pv_id, RTAG_ID from daemon_instructions di
14695
    WHERE di.op_code = 2
14696
    AND RTAG_ID = RtagId
14697
) , 
14698
-- Determine Packages that failed to build or have been excluded
14699
buildFail as (
14700
    SELECT pv_id, root_pv_id, RTAG_ID from do_not_ripple dnr
14701
    WHERE RTAG_ID = RtagId
14702
) 
14703
-- Generate the complete dataset from the fragments
14704
  SELECT Case
14705
                    When sdi.pv_id is not null then 14
14706
                    When bb.pv_id is not null then 15
14707
                    When bf.pv_id is not null AND bf.root_pv_id is NULL then 16
14708
                    When bf.pv_id is not null AND bf.root_pv_id is NOT NULL then  17
14709
                    When rel.pkg_state is not null then rel.pkg_state
14710
                    Else 0
14711
                End as pkg_state,
3959 dpurdie 14712
               NULL AS DEPRECATED_STATE,
14713
               pv.pv_id,
14714
               pkg.pkg_name,
14715
               pv.pkg_version,
14716
               pv.dlocked,
14717
               pv.pv_description,
14718
               pv.BUILD_TYPE,
14719
               rel.operation
7039 dpurdie 14720
          FROM selectedPv rel,
3959 dpurdie 14721
               packages pkg,
14722
               package_versions pv,
7039 dpurdie 14723
               scheduled sdi,
14724
               buildFail bf,
14725
               building bb
3959 dpurdie 14726
         WHERE pv.pkg_id = pkg.pkg_id
14727
           AND rel.pv_id = pv.pv_id
7039 dpurdie 14728
           AND sdi.pv_id(+) = rel.pv_id
14729
           AND bf.pv_id(+) = rel.pv_id
14730
           AND bb.pv_id(+) = rel.pv_id
14731
         ORDER BY UPPER(pkg.PKG_NAME), pv.pv_id;
3959 dpurdie 14732
END;
14733
/*-------------------------------------------------------------------------------------------------------*/
14734
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
14735
 
14736
BEGIN
14737
 
14738
    UPDATE PLANNED pl SET
14739
    pl.VIEW_ID = NewViewId
14740
    WHERE pl.PV_ID = PvId
14741
      AND pl.RTAG_ID = RtagId;
14742
 
14743
END;
14744
/*-------------------------------------------------------------------------------------------------------*/
14745
-- DEVI-45275 This new function supports the ability to insert into the planned table, and existing
14746
-- version of a package as part of a release-to-release merge operation carried out within release manager.
14747
-- DEVI-49594 This function has subsequently been changed to allow a merge operation to cancel its
14748
-- opposite operation, if the opposite already exists in the planned table. This supports user activity
14749
-- via the Release Manager merge manager display
14750
 
14751
PROCEDURE MERGE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, mergeOperation IN CHAR ) IS
14752
 
14753
    ReleaseLocation VARCHAR2(4000);
14754
 
14755
        entryExists NUMBER;
14756
        existingOperation CHAR;
14757
BEGIN
14758
    /*--------------- Business Rules Here -------------------*/
14759
    /*-------------------------------------------------------*/
14760
 
14761
      -- Determine if the specified PV_ID already exists in the planned table....
14762
      SELECT COUNT (pl.pv_id) INTO entryExists
14763
      FROM PLANNED pl
14764
      WHERE pl.pv_id = newPvId
14765
      AND pl.rtag_id = RtagId
14766
      AND pl.view_id = ViewId;
14767
 
14768
      -- If the specified PV_ID already exists in the planned table....
14769
      IF entryExists = 1 THEN
14770
 
14771
         -- Get the operation for the existing entry
14772
         SELECT pl.operation INTO existingOperation
14773
         FROM PLANNED pl
14774
         WHERE pl.pv_id = newPvId
14775
         AND pl.rtag_id = RtagId
14776
         AND pl.view_id = ViewId;
14777
 
14778
         -- Is the specified merge operation the opposite of the existing entry?
14779
         -- If it is not, then there is nothing to do, otherwise...
14780
         -- NOTE: A = Add, S = Subtract
14781
         IF (mergeOperation = 'S' AND existingOperation = 'A')
14782
            OR (mergeOperation = 'A' AND existingOperation = 'S') THEN
14783
 
14784
           -- It is the opposite, so effectively it cancels the existing entry
14785
           -- Remove the entry from the planned table
14786
           DELETE
14787
            FROM PLANNED pl
14788
           WHERE pl.pv_id = newPvId
14789
             AND pl.rtag_id = RtagId
14790
             AND pl.view_id = ViewId;
14791
 
14792
           -- Log action
14793
           SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
14794
             FROM PROJECTS proj,
14795
                  RELEASE_TAGS rt
14796
            WHERE rt.PROJ_ID = proj.PROJ_ID
14797
              AND rt.RTAG_ID = RtagId;
14798
 
14799
           Log_Action ( newPvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 14800
         END IF;
3959 dpurdie 14801
      ELSE
14802
         -- Add to Planned tabled
14803
         INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )
14804
         VALUES( RtagId, newPvId, ViewId, mergeOperation );
1373 dpurdie 14805
 
3959 dpurdie 14806
         -- Log Action
14807
         SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
14808
          FROM PROJECTS proj,
14809
               RELEASE_TAGS rt
14810
         WHERE rt.PROJ_ID = proj.PROJ_ID
14811
         AND   rt.RTAG_ID = RtagId;
14812
 
14813
         Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 14814
      END IF;
14815
 
3959 dpurdie 14816
END;
1373 dpurdie 14817
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14818
END PK_PLANNED;
4040 dpurdie 14819
 
6999 dpurdie 14820
/
4040 dpurdie 14821
--------------------------------------------------------
14822
--  DDL for Package Body PK_PROJECT
14823
--------------------------------------------------------
14824
 
5172 dpurdie 14825
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PROJECT" IS
1373 dpurdie 14826
 
3959 dpurdie 14827
    /*------------------------------------------------------------------------*/
14828
    PROCEDURE update_base_url (
14829
    nprojid   IN  projects.proj_id%TYPE,
14830
    sbaseurl  IN  VARCHAR2
14831
    ) IS
14832
    BEGIN
1373 dpurdie 14833
 
3959 dpurdie 14834
    UPDATE projects
14835
    SET base_url = sbaseurl
14836
    WHERE proj_id = nprojid;
14837
 
14838
    END update_base_url;
14839
 
14840
/*------------------------------------------------------------------------*/
14841
    PROCEDURE update_project_config (
14842
    nprojid   IN  projects.proj_id%TYPE,
14843
    sbaseurl  IN  VARCHAR2,
14844
    sjirakey  IN  VARCHAR2
14845
    ) IS
14846
    BEGIN
14847
 
14848
    UPDATE projects
14849
    SET base_url = sbaseurl,
14850
        jira_key = sjirakey
14851
    WHERE proj_id = nprojid;
14852
 
14853
    END update_project_config;
14854
    /*------------------------------------------------------------------------*/
14855
 
14856
    END pk_project;
4040 dpurdie 14857
 
6999 dpurdie 14858
/
4040 dpurdie 14859
--------------------------------------------------------
14860
--  DDL for Package Body PK_RELEASE
14861
--------------------------------------------------------
14862
 
5172 dpurdie 14863
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_RELEASE" IS
3959 dpurdie 14864
 
1373 dpurdie 14865
/*-------------------------------------------------------------------------------------------------------*/
6031 dpurdie 14866
PROCEDURE New_Release ( sReleaseName IN VARCHAR2,
14867
                        sReleaseComments IN VARCHAR2,
14868
                        nProjId IN NUMBER,
14869
                        nSourceRtagId IN NUMBER,
14870
                        sIsBranched IN CHAR,
5502 dpurdie 14871
                        nUserId IN NUMBER,
14872
                        cOfficial IN CHAR DEFAULT 'N'
14873
                        ) IS
1373 dpurdie 14874
 
3959 dpurdie 14875
RtagId NUMBER;
14876
ParentRtagId NUMBER;
14877
RecCount NUMBER := 0;
14878
VtreeId NUMBER;
1373 dpurdie 14879
 
3959 dpurdie 14880
BEGIN
14881
   /*--------------- Business Rules Here -------------------*/
14882
   -- Check for missing parameters
14883
   IF (sReleaseName IS NULL) OR (nUserId IS NULL)
14884
   THEN
14885
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId );
1373 dpurdie 14886
 
3959 dpurdie 14887
   END IF;
1373 dpurdie 14888
 
3959 dpurdie 14889
 
14890
   -- Check for duplicate Release Names
14891
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
14892
     FROM RELEASE_TAGS rt
14893
    WHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )
14894
      AND rt.PROJ_ID = nProjId;
14895
 
14896
   IF (RecCount > 0) THEN
14897
      RAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');
14898
   END IF;
14899
   /*-------------------------------------------------------*/
14900
 
14901
 
14902
   -- Get rtag_id
14903
   SELECT SEQ_RTAG_ID.NEXTVAL INTO RtagId FROM DUAL;
14904
 
14905
   SELECT SEQ_VTREE_ID.NEXTVAL INTO VtreeId FROM DUAL;
14906
 
14907
 
14908
 
14909
   -- Get Parent RtagId
14910
   ParentRtagId := GET_PARENT_RTAG ( RtagId, nSourceRtagId, sIsBranched );
14911
 
14912
   -- If the parent RTAG is NOT in this project then we cannot use it.
14913
   -- We must re-assign the parent to be the new release's RTAG_ID instead
14914
   -- else it will not show up in the projects release tree (DEVI-55480)
14915
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
14916
     FROM RELEASE_TAGS rt
14917
    WHERE rt.RTAG_ID = ParentRtagId
14918
      AND rt.PROJ_ID = nProjId;
14919
 
14920
   IF (RecCount = 0) THEN
14921
     ParentRtagId := RtagId;
14922
   END IF;
14923
 
14924
   -- Create new release
14925
   INSERT INTO RELEASE_TAGS ( RTAG_ID, RTAG_NAME, DESCRIPTION, CREATED_STAMP, CREATOR_ID,
14926
                        OFFICIAL, REBUILD_ENV, REBUILD_STAMP,
14927
                        PARENT_RTAG_ID, PROJ_ID, VTREE_ID )
14928
   VALUES ( RtagId,
14929
          sReleaseName,
14930
          sReleaseComments,
7000 dpurdie 14931
          ora_sysdatetime,
3959 dpurdie 14932
          nUserId,
5502 dpurdie 14933
          cOfficial,
3959 dpurdie 14934
          'N',
14935
          0,
14936
          ParentRtagId,
14937
          nProjId,
14938
          VtreeId );
14939
 
14940
   -- If a source release is provided, clone its config spec branch information into the new release (DEVI-56650)
14941
   IF (NOT nSourceRtagId IS NULL)
14942
   THEN
14943
      UPDATE RELEASE_TAGS rtd
14944
      SET rtd.config_spec_branch = (SELECT rts.CONFIG_SPEC_BRANCH FROM RELEASE_TAGS rts WHERE rts.RTAG_ID = nSourceRtagId)
14945
      WHERE rtd.RTAG_ID = RtagId;
14946
   END IF;
14947
 
14948
   -- Update display Order
14949
   UPDATE_DISPLAY_ORDER ( nProjId );
14950
 
14951
   /* Log Project Action */
14952
   Log_Project_Action ( nProjId, 'new_release', nUserId, sReleaseName, RtagId );
14953
 
14954
 
14955
   -- Import Release Contents
14956
   IF (NOT nSourceRtagId IS NULL) THEN
5502 dpurdie 14957
      Import_Release_Contents ( nSourceRtagId, RtagId, nUserId, 1 );
3959 dpurdie 14958
   END IF;
14959
 
14960
END;
14961
/*-------------------------------------------------------------------------------------------------------*/
14962
PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER ) IS
14963
 
14964
 
14965
BEGIN
14966
 
14967
 
14968
   /*--------------- Business Rules Here -------------------*/
14969
   /*-------------------------------------------------------*/
14970
 
14971
   UPDATE RELEASE_TAGS urt SET
14972
   urt.DISPLAY_ORDER = (
14973
                  SELECT qry.REC_NUM
14974
                    FROM (
14975
                        SELECT rel.*, ROWNUM AS REC_NUM
14976
                          FROM (
14977
 
14978
                                SELECT rt.RTAG_ID,
14979
                                    rt.DISPLAY_ORDER,
14980
                                     DECODE( rt.PARENT_RTAG_ID,
14981
                                             rt.RTAG_ID, 0, rt.PARENT_RTAG_ID ) AS PARENT_RTAG_ID
14982
                                FROM RELEASE_TAGS rt
14983
                               WHERE rt.PROJ_ID = nProjId
14984
 
14985
                                ) rel
14986
                        START WITH rel.PARENT_RTAG_ID = 0
14987
                        CONNECT BY PRIOR rel.RTAG_ID = rel.PARENT_RTAG_ID
14988
                        ORDER SIBLINGS BY rel.DISPLAY_ORDER
14989
                        ) qry
14990
                     WHERE qry.RTAG_ID = urt.RTAG_ID
14991
                  )
14992
   WHERE urt.PROJ_ID = nProjId;
14993
 
14994
END;
14995
/*-------------------------------------------------------------------------------------------------------*/
14996
PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER  ) IS
14997
 
14998
   nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
14999
   SeqNum NUMBER;
15000
 
15001
BEGIN
15002
 
15003
 
15004
   /*--------------- Business Rules Here -------------------*/
15005
   /*-------------------------------------------------------*/
15006
 
15007
   nIdCollector := IN_LIST_NUMBER ( sRtagIdList );
15008
 
15009
   -- Set start sequence number
15010
   SeqNum := 1;
15011
 
15012
   FOR i IN 1..nIdCollector.COUNT
15013
   LOOP
15014
 
15015
      -- Update new display order
15016
      UPDATE RELEASE_TAGS rt SET
15017
         rt.DISPLAY_ORDER = SeqNum
15018
       WHERE rt.PROJ_ID = nProjId
15019
         AND rt.RTAG_ID = nIdCollector(i);
15020
 
15021
      SeqNum := SeqNum + 1;
15022
 
15023
   END LOOP;
15024
 
15025
END;
15026
/*-------------------------------------------------------------------------------------------------------*/
5502 dpurdie 15027
PROCEDURE Update_Release ( nRtagId IN NUMBER,
15028
                           sReleaseName IN VARCHAR2,
15029
                           sReleaseComments IN VARCHAR2,
15030
                           nParentRtagId IN NUMBER,
15031
                           nMASSRtagId IN NUMBER,
15032
                           nConfigSpecBranch IN VARCHAR2,
15033
                           sOwnerEmail IN VARCHAR2,
15034
                           nUserId IN NUMBER,
15035
                           cState IN VARCHAR,
5384 dpurdie 15036
                           nBuildAge in NUMBER,
15037
                           cLxr in CHAR) IS
3959 dpurdie 15038
 
15039
RecCount NUMBER := 0;
15040
ProjId NUMBER;
15041
 
15042
BEGIN
15043
 
15044
 
15045
   /*--------------- Business Rules Here -------------------*/
15046
   -- Check for missing parameters
15047
   IF (sReleaseName IS NULL) OR (nUserId IS NULL) OR (nRtagId IS NULL)
15048
   THEN
15049
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId ||', nRtagId='|| nRtagId);
15050
 
15051
   END IF;
15052
 
15053
 
15054
   -- Check for duplicate Release Names
15055
   SELECT rt.PROJ_ID INTO ProjId
15056
     FROM RELEASE_TAGS rt
15057
    WHERE rt.RTAG_ID = nRtagId;
15058
 
15059
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
15060
     FROM RELEASE_TAGS rt
15061
    WHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )
15062
      AND rt.RTAG_ID != nRtagId
15063
      AND rt.PROJ_ID = ProjId;
15064
 
15065
 
15066
   IF (RecCount > 0) THEN
15067
      RAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');
15068
   END IF;
15069
   /*-------------------------------------------------------*/
15070
 
15071
 
15072
 
15073
   -- Update release details
15074
   UPDATE RELEASE_TAGS rt SET
15075
   rt.RTAG_NAME = sReleaseName,
15076
   rt.DESCRIPTION = sReleaseComments,
15077
   rt.PARENT_RTAG_ID = nParentRtagId,
15078
   rt.ASSOC_MASS_REF = nMASSRtagId,
15079
   rt.CONFIG_SPEC_BRANCH = nConfigSpecBranch,
15080
   rt.OWNER_EMAIL = sOwnerEmail,
5172 dpurdie 15081
   rt.PRODUCT_STATE_USED = cState,
5384 dpurdie 15082
   rt.BUILD_AGE = nBuildAge,
15083
   rt.LXR = cLxr
3959 dpurdie 15084
   WHERE rt.RTAG_ID = nRtagId;
15085
 
15086
   -- Update display Order
15087
   UPDATE_DISPLAY_ORDER ( ProjId );
15088
 
15089
   /* Log Project Action */
15090
   Log_Project_Action ( ProjId, 'update_release', nUserId, 'Release Name: <br>Release Comments:', nRtagId );
15091
 
15092
 
15093
 
15094
 
15095
END;
15096
/*-------------------------------------------------------------------------------------------------------*/
15097
PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER ) IS
15098
 
15099
   RecCount NUMBER := 0;
15100
   sReleaseId VARCHAR2(4000);
15101
   ProjId NUMBER;
15102
 
15103
BEGIN
15104
   /*--------------- Business Rules Here -------------------*/
15105
   IF (nRtagId IS NULL)
15106
   THEN
15107
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId  );
15108
   END IF;
15109
 
15110
 
15111
 
15112
   -- Check for any kids
15113
   SELECT COUNT( rt.RTAG_ID ) INTO RecCount
15114
     FROM RELEASE_TAGS rt
15115
    WHERE rt.PARENT_RTAG_ID = nRtagId
15116
      AND rt.RTAG_ID != rt.PARENT_RTAG_ID;
15117
 
15118
   IF (RecCount > 0) THEN
15119
      RAISE_APPLICATION_ERROR (-20000, 'Cannot destroy this release. You need to destroy its children releases first.'  );
15120
   END IF;
15121
   /*-------------------------------------------------------*/
15122
 
15123
   -- Clear the release contents
15124
   Clean_Release_Contents ( nRtagId, nUserId );
15125
 
15126
   /* Log Project Action */
15127
   SELECT rt.PROJ_ID, rt.RTAG_NAME ||'['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']' INTO ProjId, sReleaseId
15128
     FROM RELEASE_TAGS rt
15129
    WHERE rt.RTAG_ID = nRtagId;
15130
 
15131
   Log_Project_Action ( ProjId, 'destroy_release', nUserId, sReleaseId, nRtagId );
15132
 
15133
 
15134
   -- Remove Release
15135
   DELETE
15136
     FROM RELEASE_TAGS rt
15137
    WHERE rt.RTAG_ID = nRtagId;
15138
 
15139
 
15140
 
15141
END;
15142
/*-------------------------------------------------------------------------------------------------------*/
5502 dpurdie 15143
PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER, nMode IN NUMBER default 0 ) IS
3959 dpurdie 15144
 
15145
   sSourceLocation VARCHAR2(4000);
15146
   sTargetLocation VARCHAR2(4000);
15147
   ProjId NUMBER;
6999 dpurdie 15148
   nIsOpen NUMBER;
3959 dpurdie 15149
   RconId NUMBER;
15150
 
15151
   -- this cursor gets the source release daemon configurations, ensuring that the
15152
   -- first record will be the master daemon, and subsequent records will be the slaves.
15153
   CURSOR curSrcReleaseConfigs IS
4308 dpurdie 15154
    SELECT daemon_hostname, gbe_id, gbe_buildfilter, bmcon_id, daemon_mode
3959 dpurdie 15155
     FROM RELEASE_CONFIG rc
15156
    WHERE rc.RTAG_ID = nSourceRtagId
15157
    ORDER BY rc.daemon_mode;
15158
    recSrcReleaseConfigs curSrcReleaseConfigs%ROWTYPE;
15159
 
15160
    -- this cursor looks for target release daemons
15161
   CURSOR curTgtReleaseConfigs IS
15162
    SELECT rcon_id
15163
     FROM RELEASE_CONFIG rc
15164
    WHERE rc.RTAG_ID = nTargetRtagId;
15165
    recTgtReleaseConfigs curTgtReleaseConfigs%ROWTYPE;
15166
 
15167
    -- this cursor looks for target release daemon run level entries
15168
   CURSOR curTgtReleaseConfigRunLevel IS
6999 dpurdie 15169
    SELECT pause
3959 dpurdie 15170
     FROM RUN_LEVEL rl
15171
    WHERE rl.RCON_ID = recTgtReleaseConfigs.rcon_id;
15172
    recTgtReleaseConfigRunLevel curTgtReleaseConfigRunLevel%ROWTYPE;
15173
 
15174
BEGIN
15175
   /*--------------- Business Rules Here -------------------*/
15176
   IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)
15177
   THEN
15178
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );
15179
   END IF;
15180
 
15181
   IF (nSourceRtagId = nTargetRtagId) THEN
15182
      RAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );
15183
   END IF;
15184
 
15185
 
6999 dpurdie 15186
   -- Check if Target release is in OPEN-ish mode
5502 dpurdie 15187
   IF nMode = 0 THEN
6999 dpurdie 15188
     SELECT count(*)  INTO  nIsOpen
5502 dpurdie 15189
       FROM RELEASE_TAGS rt
6999 dpurdie 15190
      WHERE rt.RTAG_ID = nTargetRtagId
15191
      AND rt.OFFICIAL in ('N', 'R', 'C');
6031 dpurdie 15192
 
6999 dpurdie 15193
     IF (nIsOpen > 1) THEN
5502 dpurdie 15194
        RAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the contents.' );
15195
     END IF;
15196
  END IF;
3959 dpurdie 15197
 
15198
   -- check that the target release's daemons are all paused before we allow an import operation
15199
   OPEN curTgtReleaseConfigs;
15200
   FETCH curtgtReleaseConfigs INTO recTgtReleaseConfigs;
15201
 
7039 dpurdie 15202
 
3959 dpurdie 15203
   WHILE curTgtReleaseConfigs%FOUND
15204
   LOOP
15205
      OPEN curTgtReleaseConfigRunLevel;
15206
      FETCH curTgtReleaseConfigRunLevel INTO recTgtReleaseConfigRunLevel;
15207
      IF curTgtReleaseConfigRunLevel%FOUND THEN
6999 dpurdie 15208
         IF (recTgtReleaseConfigRunLevel.pause IS NULL) OR
15209
            (recTgtReleaseConfigRunLevel.pause <> 2) THEN
3959 dpurdie 15210
            RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
15211
         END IF;
1373 dpurdie 15212
      ELSE
3959 dpurdie 15213
         -- we don't know what the daemon run level is so err on the side of caution
15214
         RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
1373 dpurdie 15215
      END IF;
3959 dpurdie 15216
      CLOSE curTgtReleaseConfigRunLevel;
1373 dpurdie 15217
 
3959 dpurdie 15218
      FETCH curTgtReleaseConfigs INTO recTgtReleaseConfigs;
15219
   END LOOP;
1373 dpurdie 15220
 
3959 dpurdie 15221
   CLOSE curTgtReleaseConfigs;
1373 dpurdie 15222
 
15223
 
3959 dpurdie 15224
   /*-------------------------------------------------------*/
1373 dpurdie 15225
 
3959 dpurdie 15226
   -- Clean target contents
15227
   Clean_Release_Contents ( nTargetRtagId, nUserId );
1373 dpurdie 15228
 
3959 dpurdie 15229
   -- Import Released Area Contents
5502 dpurdie 15230
   INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE, PKG_ID, DEPRECATED_STATE,PRODUCT_STATE,SDKTAG_ID )
3959 dpurdie 15231
   SELECT nTargetRtagId AS RTAG_ID,
15232
         rc.PV_ID,
15233
         rc.BASE_VIEW_ID,
15234
         rc.INSERT_STAMP,
15235
         rc.INSERTOR_ID,
15236
         rc.PKG_STATE,
15237
         rc.PKG_ID,
5384 dpurdie 15238
         rc.DEPRECATED_STATE,
15239
         rc.PRODUCT_STATE,
15240
         rc.SDKTAG_ID
3959 dpurdie 15241
     FROM RELEASE_CONTENT rc
15242
    WHERE rc.RTAG_ID = nSourceRtagId;
15243
 
15244
 
15245
   -- Import any Pegged Version settings from the source release
15246
   INSERT INTO PEGGED_VERSIONS ( RTAG_ID, PV_ID )
15247
   SELECT nTargetRtagId AS RTAG_ID,
15248
          pegv.PV_ID
15249
     FROM PEGGED_VERSIONS pegv
15250
    WHERE pegv.RTAG_ID = nSourceRtagId;
15251
 
15252
   -- Import any Advisory Ripple settings from the source release
15253
   INSERT INTO ADVISORY_RIPPLE ( RTAG_ID, PV_ID )
15254
   SELECT nTargetRtagId AS RTAG_ID,
15255
          avr.PV_ID
15256
     FROM ADVISORY_RIPPLE avr
15257
    WHERE avr.RTAG_ID = nSourceRtagId;
15258
 
6999 dpurdie 15259
   -- Import Ignore Warning states
15260
   INSERT INTO IGNORE_WARNINGS ( RTAG_ID, PV_ID, DPV_ID )
15261
   SELECT nTargetRtagId AS RTAG_ID,
15262
          igw.PV_ID,
15263
          igw.DPV_ID
15264
     FROM IGNORE_WARNINGS igw
15265
    WHERE igw.rtag_id = nSourceRtagId;
3959 dpurdie 15266
 
6999 dpurdie 15267
 
3959 dpurdie 15268
   --Import Release Configuration Information
15269
   OPEN curSrcReleaseConfigs;
15270
   FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
15271
 
6999 dpurdie 15272
   WHILE curSrcReleaseConfigs%FOUND
3959 dpurdie 15273
   LOOP
15274
      -- add a daemon to the target release
5502 dpurdie 15275
      PK_BUILDAPI.duplicate_daemon_config( nTargetRtagId,
15276
                                     recSrcReleaseConfigs.bmcon_id,
15277
                                     recSrcReleaseConfigs.daemon_hostname,
15278
                                     recSrcReleaseConfigs.gbe_id,
4308 dpurdie 15279
                                     recSrcReleaseConfigs.daemon_mode ,
15280
                                     recSrcReleaseConfigs.gbe_buildfilter );
3959 dpurdie 15281
 
15282
      FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
15283
   END LOOP;
15284
   CLOSE curSrcReleaseConfigs;
15285
 
15286
   /* Log Project Action */
15287
   -- Get Source Location
15288
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sSourceLocation
15289
     FROM RELEASE_TAGS rt,
15290
           PROJECTS pr
15291
    WHERE rt.PROJ_ID = pr.PROJ_ID
15292
      AND rt.RTAG_ID = nSourceRtagId;
15293
 
15294
   -- Get Target Location
15295
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sTargetLocation
15296
     FROM RELEASE_TAGS rt,
15297
           PROJECTS pr
15298
    WHERE rt.PROJ_ID = pr.PROJ_ID
15299
      AND rt.RTAG_ID = nTargetRtagId;
15300
 
15301
   -- Get project id
15302
   SELECT rt.PROJ_ID  INTO  ProjId
15303
     FROM RELEASE_TAGS rt
15304
    WHERE rt.RTAG_ID = nTargetRtagId;
15305
 
15306
   Log_Project_Action ( ProjId, 'import_release_contents', nUserId, 'SOURCE: '|| sSourceLocation ||'   TARGET: '|| sTargetLocation, nTargetRtagId );
15307
END;
15308
 
15309
 
1373 dpurdie 15310
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 15311
PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER ) IS
1373 dpurdie 15312
 
3959 dpurdie 15313
   RecCount NUMBER;
15314
        rconIdList VARCHAR2(4000);
1373 dpurdie 15315
 
3959 dpurdie 15316
BEGIN
15317
   /*--------------- Business Rules Here -------------------*/
15318
   IF (nRtagId IS NULL)
15319
   THEN
15320
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId  );
15321
   END IF;
1373 dpurdie 15322
 
15323
 
3959 dpurdie 15324
   -- Check if other release references this release
15325
   SELECT COUNT( rl.RTAG_ID ) INTO RecCount
15326
     FROM RELEASE_LINKS rl
15327
    WHERE rl.REF_RTAG_ID = nRtagId;
1373 dpurdie 15328
 
3959 dpurdie 15329
   IF (RecCount > 0) THEN
15330
      RAISE_APPLICATION_ERROR (-20000, 'This release is referenced by other release and cannot be destroyed.'  );
15331
   END IF;
15332
   /*-------------------------------------------------------*/
1373 dpurdie 15333
 
3959 dpurdie 15334
   -- Delete Release links
15335
   DELETE
15336
     FROM RELEASE_LINKS rl
15337
    WHERE rl.RTAG_ID = nRtagId;
15338
 
15339
   -- Delete ignore warning
15340
   DELETE
15341
     FROM IGNORE_WARNINGS iw
15342
    WHERE iw.RTAG_ID = nRtagId;
15343
 
15344
 
15345
   -- Delete Build Order cached calculations
15346
   DELETE
15347
     FROM BUILD_ORDER bo
15348
    WHERE bo.RTAG_ID = nRtagId;
15349
 
15350
 
15351
   -- Delete Notification History
15352
   DELETE
15353
     FROM NOTIFICATION_HISTORY nh
15354
    WHERE nh.RTAG_ID = nRtagId;
15355
 
15356
 
15357
   -- Delete Released Area Contents
15358
   DELETE
15359
     FROM RELEASE_CONTENT rc
15360
    WHERE rc.RTAG_ID = nRtagId;
15361
 
15362
 
15363
   -- Delete Work In Progress Area Contents
15364
   DELETE
15365
     FROM WORK_IN_PROGRESS wip
15366
    WHERE wip.RTAG_ID = nRtagId;
15367
 
15368
 
15369
   -- Delete Pending Area Contents
15370
   DELETE
15371
     FROM PLANNED pl
15372
    WHERE pl.RTAG_ID = nRtagId;
15373
 
15374
   -- Delete Deprecated Packages
15375
   DELETE
15376
     FROM DEPRECATED_PACKAGES dp
15377
    WHERE dp.RTAG_ID = nRtagId;
15378
 
15379
   -- Delete Project Action Log
15380
   DELETE
15381
     FROM PROJECT_ACTION_LOG pal
15382
    WHERE pal.RTAG_ID = nRtagId;
15383
 
15384
   -- Delete Do Not Ripple Contents
15385
   DELETE
15386
     FROM DO_NOT_RIPPLE dnr
15387
    WHERE dnr.RTAG_ID = nRtagId;
15388
 
15389
   -- Delete Dash Board Contents
15390
   DELETE
15391
     FROM DASH_BOARD db
15392
    WHERE db.RTAG_ID = nRtagId;
15393
 
15394
   -- Delete Advisory Ripple Contents
15395
   DELETE
15396
     FROM ADVISORY_RIPPLE adr
15397
    WHERE adr.RTAG_ID = nRtagId;
15398
 
15399
   -- Delete Archive Action Log
15400
   DELETE
15401
     FROM ARCHIVE_ACTION_LOG aal
15402
    WHERE aal.RTAG_ID = nRtagId;
15403
 
15404
   -- Delete Daemons For This Release
15405
   FOR rcon IN (SELECT rc.RCON_ID FROM RELEASE_CONFIG rc WHERE rc.RTAG_ID = nRtagId )
15406
   LOOP
15407
      rconIdList := rconIdList || rcon.RCON_ID || ',';
15408
   END LOOP;
15409
 
15410
   pk_buildapi.DELETE_DAEMON(rconIdList);
15411
 
15412
   -- Delete Release Metrics Contents
15413
   DELETE
15414
     FROM RELEASE_METRICS rm
15415
    WHERE rm.RTAG_ID = nRtagId;
15416
 
15417
   -- Delete Release Configuration Contents
15418
   DELETE
15419
     FROM RELEASE_CONFIG rc
15420
    WHERE rc.RTAG_ID = nRtagId;
15421
 
15422
   -- Delete Pegged Version Contents
15423
   DELETE
15424
     FROM PEGGED_VERSIONS pegv
15425
    WHERE pegv.RTAG_ID = nRtagId;
15426
 
15427
END;
15428
/*-------------------------------------------------------------------------------------------------------*/
15429
FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR )  RETURN NUMBER IS
15430
 
15431
   nSourceParentRtagId NUMBER;
15432
 
15433
BEGIN
15434
   /*--------------- Business Rules Here -------------------*/
15435
   IF (nRtagId IS NULL) OR (cIsBranch IS NULL)
15436
   THEN
15437
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId ||', cIsBranch= '|| cIsBranch );
15438
   END IF;
15439
   /*-------------------------------------------------------*/
15440
 
15441
 
15442
   IF ( nSourceRtagId IS NULL ) THEN
15443
      -- Create new on main branch
15444
      RETURN nRtagId;
15445
 
15446
   ELSE
15447
      -- Create from source rtag_id
15448
 
15449
      -- Find parent of Source RtagId
15450
      SELECT rt.PARENT_RTAG_ID INTO nSourceParentRtagId
15451
        FROM RELEASE_TAGS rt
15452
       WHERE rt.RTAG_ID = nSourceRtagId;
15453
 
15454
      IF (UPPER(cIsBranch) = 'Y') THEN
15455
         RETURN nSourceRtagId;
15456
      ELSE
15457
         IF (nSourceRtagId = nSourceParentRtagId) THEN
15458
            RETURN nRtagId;
15459
         ELSE
15460
            RETURN nSourceParentRtagId;
1373 dpurdie 15461
         END IF;
15462
      END IF;
15463
 
3959 dpurdie 15464
 
15465
   END IF;
15466
 
15467
 
15468
END;
1373 dpurdie 15469
/*-------------------------------------------------------------------------------------------------------*/
15470
 
3959 dpurdie 15471
-- PROCEDURE Get_Next_Version ( nSourceRtagId IN NUMBER,
15472
--                       sNextVersion OUT VARCHAR2,
15473
--                       nNextLifeCycle OUT NUMBER,
15474
--                       nParentRtagId OUT NUMBER,
15475
--                       nProjId IN NUMBER ) IS
15476
--
15477
-- SourceBranchCount NUMBER;
15478
-- ProjRootVersion VARCHAR2(4000);
15479
-- LastLifeCycle NUMBER;
15480
-- ROOT_VERSION_NOT_FOUND NUMBER := -1;
15481
-- SET_PARENT_AS_YOURSELF NUMBER := -1;
15482
--
15483
-- SourceProjId NUMBER;
15484
-- SourceVersion RELEASE_TAGS.RTAG_VERSION%TYPE;
15485
-- SourceLifeCycle RELEASE_TAGS.RTAG_LIFE_CYCLE%TYPE;
15486
--
15487
-- BEGIN
15488
--    /*--------------- Business Rules Here -------------------*/
15489
--    /*-------------------------------------------------------*/
15490
--
15491
--
15492
--    BEGIN
15493
--       -- Get Project root version
15494
--       SELECT rt.RTAG_VERSION INTO ProjRootVersion
15495
--         FROM RELEASE_TAGS rt
15496
--        WHERE rt.PROJ_ID = nProjId
15497
--          AND rt.RTAG_ID = rt.PARENT_RTAG_ID;
15498
--
15499
--       EXCEPTION
15500
--       WHEN NO_DATA_FOUND THEN
15501
--       ProjRootVersion := ROOT_VERSION_NOT_FOUND;
15502
--    END;
15503
--
15504
--
15505
--
15506
--
15507
--    BEGIN
15508
--       -- Get info for source rtagid
15509
--       SELECT rt.PROJ_ID, rt.RTAG_VERSION, rt.RTAG_LIFE_CYCLE  INTO  SourceProjId, SourceVersion, SourceLifeCycle
15510
--         FROM RELEASE_TAGS rt
15511
--        WHERE rt.RTAG_ID = nSourceRtagId;
15512
--
15513
--       EXCEPTION
15514
--       WHEN NO_DATA_FOUND THEN
15515
--       SourceProjId := NULL;
15516
--       SourceVersion := NULL;
15517
--       SourceLifeCycle := NULL;
15518
--    END;
15519
--
15520
--
15521
--    IF (nSourceRtagId IS NULL)  OR  ( SourceProjId != nProjId ) THEN
15522
--
15523
--       /* Blank Release Required  OR  Release imported from other project */
15524
--
15525
--       IF (ProjRootVersion = ROOT_VERSION_NOT_FOUND) THEN
15526
--          /* No Releases found in the project, hence calculate next version available.  */
15527
--
15528
--          -- Set parent rtag
15529
--          nParentRtagId := SET_PARENT_AS_YOURSELF;
15530
--
15531
--
15532
--          BEGIN
15533
--             -- Get Next Available Global Root Version
15534
--             SELECT MAX( TO_NUMBER( rt.RTAG_VERSION ) )  INTO  ProjRootVersion
15535
--               FROM RELEASE_TAGS rt
15536
--              WHERE rt.RTAG_ID = rt.PARENT_RTAG_ID;
15537
--
15538
--             -- Set Next Rtag Version
15539
--             sNextVersion := CAST( ProjRootVersion + 1 AS VARCHAR2 );
15540
--
15541
--             -- Restart Lifecycle
15542
--             nNextLifeCycle := 0;
15543
--
15544
--
15545
--             EXCEPTION
15546
--             WHEN NO_DATA_FOUND THEN
15547
--             -- Release Manager has no releases, hence start from 1
15548
--             sNextVersion := '1';
15549
--             nNextLifeCycle := 0;
15550
--
15551
--          END;
15552
--
15553
--
15554
--
15555
--       ELSE
15556
--          /* Releases found in this project. */
15557
--
15558
--          SELECT qry.RTAG_ID, qry.RTAG_LIFE_CYCLE  INTO nParentRtagId, LastLifeCycle
15559
--            FROM (
15560
--                SELECT rt.RTAG_ID, rt.RTAG_LIFE_CYCLE
15561
--                  FROM RELEASE_TAGS rt
15562
--                 WHERE rt.PROJ_ID = nProjId
15563
--                   AND rt.RTAG_VERSION = ProjRootVersion
15564
--                 ORDER BY rt.RTAG_LIFE_CYCLE DESC
15565
--                  ) qry
15566
--           WHERE ROWNUM = 1;
15567
--
15568
--
15569
--          -- Set same Rtag Version
15570
--          sNextVersion := ProjRootVersion;
15571
--
15572
--          -- Increase Lifecycle
15573
--          nNextLifeCycle := LastLifeCycle + 1;
15574
--
15575
--       END IF;
15576
--
15577
--
15578
--
15579
--    ELSE
15580
--       /* Create Release From other release within this project */
15581
--
15582
--       -- Set parent id
15583
--       nParentRtagId := nSourceRtagId;
15584
--
15585
--
15586
--       -- Get number of source branches
15587
--       SELECT COUNT(rt.RTAG_ID) INTO SourceBranchCount
15588
--         FROM RELEASE_TAGS rt
15589
--        WHERE rt.PROJ_ID = nProjId
15590
--          AND rt.PARENT_RTAG_ID = nSourceRtagId;
15591
--
15592
--
15593
--       IF SourceBranchCount = 0 THEN
15594
--          /* Release is Head (i.e. Tip on its branch ) */
15595
--
15596
--          -- Set Next Rtag Version
15597
--          sNextVersion := SourceVersion;
15598
--
15599
--          -- Increase Lifecycle
15600
--          nNextLifeCycle := SourceLifeCycle + 1;
15601
--
15602
--
15603
--       ELSIF SourceBranchCount = 1 THEN
15604
--          /* Release IS NOT Head, but can be branched */
15605
--
15606
--          -- Set Next Rtag Version
15607
--          sNextVersion := SourceVersion ||'.'|| SourceLifeCycle;
15608
--
15609
--          -- Reset Lifecycle to 1
15610
--          nNextLifeCycle := 1;
15611
--
15612
--
15613
--       ELSE
15614
--          -- Limit of two branches is reached
15615
--          RAISE_APPLICATION_ERROR (-20000, 'This release is already branched and cannot be branched again. ');
15616
--
15617
--       END IF;
15618
--
15619
--
15620
--
15621
--
15622
--
15623
--
15624
--    END IF;
15625
--
15626
--
15627
-- END;
15628
 
15629
/*-------------------------------------------------------------------------------------------------------*/
7039 dpurdie 15630
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) as 
15631
begin
15632
OPEN RecordSet FOR
15633
-- Determine the PV_ID and OPERATION for the required VIEW
15634
With selectedPv as (
15635
    SELECT pv.pv_id, ' ' as operation, 0 as pkg_state
15636
      FROM RELEASE_CONTENT rel, package_versions pv, VIEW_DEF vd,  VIEWS vi
15637
      WHERE rel.pv_id = pv.pv_id
15638
      AND vd.PKG_ID = pv.PKG_ID
15639
      AND vd.VIEW_ID = ViewId
15640
      AND rel.RTAG_ID = RtagId
15641
      AND vi.VIEW_ID = ViewId
15642
      AND vi.BASE_VIEW NOT IN ('Y', 'S')
15643
    UNION
15644
     SELECT rel.pv_id, ' ' as operation, 0 as pkg_state
15645
     FROM RELEASE_CONTENT rel, VIEWS vi
15646
     WHERE rel.BASE_VIEW_ID = ViewId
15647
     AND rel.RTAG_ID = RtagId
15648
     AND vi.VIEW_ID = ViewId
15649
     AND vi.BASE_VIEW IN ('Y', 'S')
15650
),
15651
-- Determine packages that are building
15652
building as (
15653
    SELECT unique rl.CURRENT_PV_ID as pv_id, rc.RTAG_ID 
15654
    FROM RELEASE_CONFIG rc, RELEASE_TAGS rt, RUN_LEVEL rl 
15655
    WHERE rt.RTAG_ID = rc.RTAG_ID
15656
    AND rc.RTAG_ID = RtagId
15657
    AND rc.bmcon_id is not null
15658
    AND rt.OFFICIAL in ( 'N', 'R', 'C')
15659
    AND rl.RCON_ID(+) = rc.RCON_ID
15660
    AND rl.CURRENT_PKG_ID_BEING_BUILT is not null
15661
    AND NVL(rl.PAUSE,0) < 2
15662
), 
15663
-- Determine Packages that are scheduled to build    
15664
scheduled as (
15665
    SELECT pv_id, RTAG_ID from daemon_instructions di
15666
    WHERE di.op_code = 2
15667
    AND RTAG_ID = RtagId
15668
) , 
15669
-- Determine Packages that failed to build or have been excluded
15670
buildFail as (
15671
    SELECT pv_id, root_pv_id, RTAG_ID from do_not_ripple dnr
15672
    WHERE RTAG_ID = RtagId
15673
) 
15674
-- Generate the complete dataset from the fragments
15675
  SELECT Case
15676
                    When sdi.pv_id is not null then 14
15677
                    When bb.pv_id is not null then 15
15678
                    When bf.pv_id is not null AND bf.root_pv_id is NULL then 16
15679
                    When bf.pv_id is not null AND bf.root_pv_id is NOT NULL then  17
15680
                    When rel.pkg_state is not null then rel.pkg_state
15681
                    Else 0
15682
                End as pkg_state,
15683
               NULL AS DEPRECATED_STATE,
15684
               pv.pv_id,
15685
               pkg.pkg_name,
15686
               pv.pkg_version,
15687
               pv.dlocked,
15688
               pv.pv_description,
15689
               pv.BUILD_TYPE,
15690
               rel.operation
15691
          FROM selectedPv rel,
15692
               packages pkg,
15693
               package_versions pv,
15694
               scheduled sdi,
15695
               buildFail bf,
15696
               building bb
15697
         WHERE pv.pkg_id = pkg.pkg_id
15698
           AND rel.pv_id = pv.pv_id
15699
           AND sdi.pv_id(+) = rel.pv_id
15700
           AND bf.pv_id(+) = rel.pv_id
15701
           AND bb.pv_id(+) = rel.pv_id
15702
         ORDER BY UPPER(pkg.PKG_NAME), pv.pv_id;
3959 dpurdie 15703
END;
7039 dpurdie 15704
 
3959 dpurdie 15705
/*-------------------------------------------------------------------------------------------------------*/
4585 dpurdie 15706
  -- Add or Replace a package to the specified release
3959 dpurdie 15707
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
15708
   ReleaseLocation VARCHAR2(4000);
15709
   nPkgId NUMBER;
15710
   sVExt VARCHAR2(4000);
15711
   IsPatch PACKAGE_VERSIONS.IS_PATCH%TYPE := 'N';
5172 dpurdie 15712
   default_pegged CHAR := 'N';
15713
   default_advisory_ripple CHAR := 'N';
3959 dpurdie 15714
 
15715
   -- Find package for replacement
15716
   CURSOR curReplacePkg IS
15717
    SELECT pv.PV_ID
15718
     FROM RELEASE_CONTENT rc,
15719
           PACKAGE_VERSIONS pv
15720
    WHERE rc.PV_ID = pv.PV_ID
15721
      AND rc.RTAG_ID = RtagId
15722
      AND pv.PKG_ID = nPkgId
15723
      AND NVL( pv.V_EXT, 'LINK_A_NULL' ) = NVL( sVExt, 'LINK_A_NULL' );
15724
    recReplacePkg curReplacePkg%ROWTYPE;
15725
 
15726
BEGIN
15727
   -- Get is_patch, pkg_id and v_ext
5502 dpurdie 15728
   SELECT pv.IS_PATCH, pv.PKG_ID, pv.V_EXT
5172 dpurdie 15729
     INTO IsPatch, nPkgId, sVExt
3959 dpurdie 15730
     FROM PACKAGE_VERSIONS pv
15731
    WHERE pv.PV_ID = newPvId;
15732
 
15733
   -- Never put patch in relesed area
15734
   IF (IsPatch != 'Y') OR (IsPatch IS NULL) THEN
15735
 
15736
      -- Try to get a package to be replaced with this new one.
15737
      -- Use unique constraint of PKG_ID and V_EXT
15738
      OPEN curReplacePkg;
15739
       FETCH curReplacePkg INTO recReplacePkg;
15740
 
15741
       IF curReplacePkg%FOUND THEN
15742
         -- Replace package
15743
         REPLACE_PACKAGE ( newPvId, recReplacePkg.PV_ID, RtagId, UserId );
15744
 
15745
      ELSE
15746
         -- Add new package
15747
         INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )
7000 dpurdie 15748
         VALUES( RtagId, newPvId, ViewId, ora_sysdatetime, UserId, 0);
5502 dpurdie 15749
 
5172 dpurdie 15750
        -- Insert default package flags
15751
        -- Get Package Level defaults
5502 dpurdie 15752
 
15753
        SELECT pkg.default_pegged, pkg.DEFAULT_ADVISORY_RIPPLE
5172 dpurdie 15754
         INTO  default_pegged, default_advisory_ripple
15755
         FROM  PACKAGES pkg
5502 dpurdie 15756
        WHERE  pkg.PKG_ID = nPkgId;
3959 dpurdie 15757
 
5172 dpurdie 15758
        -- Apply to the newly inserted package
15759
        IF default_pegged = 'Y' THEN
15760
          INSERT INTO PEGGED_VERSIONS ( RTAG_ID, PV_ID ) VALUES (RtagId, newPvId);
15761
          -- Log_Action ( newPvId, 'action', UserId, 'Set default package peg' );
15762
        END IF;
5502 dpurdie 15763
 
5172 dpurdie 15764
        IF default_advisory_ripple = 'Y' THEN
15765
          INSERT INTO ADVISORY_RIPPLE ( RTAG_ID, PV_ID ) VALUES (RtagId, newPvId);
15766
          -- Log_Action ( newPvId, 'action', UserId, 'Set default advisory ripple' );
15767
        END IF;
3959 dpurdie 15768
 
6600 dpurdie 15769
        -- Mark Release as changed
5172 dpurdie 15770
        SET_RELEASE_MODIFIED(RtagId);
15771
        RUN_POST_ACTIONS(newPvId, RtagId);
5502 dpurdie 15772
 
3959 dpurdie 15773
          /* LOG ACTION */
15774
         SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
15775
           FROM PROJECTS proj,
15776
                 RELEASE_TAGS rt
15777
          WHERE rt.PROJ_ID = proj.PROJ_ID
15778
            AND rt.RTAG_ID = RtagId;
15779
 
15780
         Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );
15781
 
1373 dpurdie 15782
      END IF;
3959 dpurdie 15783
      CLOSE curReplacePkg;
15784
   END IF;
5172 dpurdie 15785
END;
3959 dpurdie 15786
 
1373 dpurdie 15787
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 15788
PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 15789
 
3959 dpurdie 15790
   ReleaseLocation VARCHAR2(4000);
15791
   sPkgVersion VARCHAR2(4000);
5172 dpurdie 15792
   nSdkTag NUMBER;
6600 dpurdie 15793
   cPersistRippleStop CHAR;
15794
   cRippleStop CHAR;
3959 dpurdie 15795
BEGIN
6600 dpurdie 15796
   -- Extract essential information
15797
      SELECT SDKTAG_ID, PERSIST_RIPPLE_STOP INTO nSdkTag, cPersistRippleStop FROM RELEASE_CONTENT
5172 dpurdie 15798
      WHERE rtag_id = RtagId
15799
       AND pv_id = oldPvId;
5502 dpurdie 15800
 
6600 dpurdie 15801
   -- Trap SDK Replacement
15802
   -- This is a last ditch check. The application should not allow this condition to happen
5172 dpurdie 15803
     If nSdkTag IS NOT NULL  THEN
15804
       raise_application_error (-20000, 'Attempt to replace a package provided by an SDK.');
15805
     END IF;
7039 dpurdie 15806
 
6600 dpurdie 15807
   -- Determine new value for ripple_stop
15808
   cRippleStop := NULL;
15809
   IF cPersistRippleStop is NOT NULL THEN
15810
      cRippleStop := 's';
15811
   END IF;
3959 dpurdie 15812
 
15813
   -- Replace Package
15814
    UPDATE RELEASE_CONTENT
15815
       SET pv_id = newPvId,
7000 dpurdie 15816
           insert_stamp = ora_sysdatetime,
3959 dpurdie 15817
           insertor_id = UserId,
6600 dpurdie 15818
           product_state = NULL,
15819
           ripple_stop = cRippleStop
3959 dpurdie 15820
     WHERE rtag_id = RtagId
15821
       AND pv_id = oldPvId;
15822
 
15823
   -- update the pegging table
15824
   UPDATE PEGGED_VERSIONS
15825
      SET pv_id = newPvId
15826
     WHERE rtag_id = RtagId
15827
       AND pv_id = oldPvId;
15828
 
15829
   -- update the advisory_ripple table
15830
   UPDATE ADVISORY_RIPPLE
15831
      SET pv_id = newPvId
15832
     WHERE rtag_id = RtagId
15833
       AND pv_id = oldPvId;
15834
 
15835
    /* LOG ACTION */
15836
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
15837
     FROM PROJECTS proj,
15838
           RELEASE_TAGS rt
15839
    WHERE rt.PROJ_ID = proj.PROJ_ID
15840
      AND rt.RTAG_ID = RtagId;
15841
 
15842
   SELECT pv.PKG_VERSION INTO sPkgVersion
15843
     FROM PACKAGE_VERSIONS pv
15844
    WHERE pv.PV_ID = newPvId;
15845
 
5172 dpurdie 15846
   SET_RELEASE_MODIFIED(RtagId);
3959 dpurdie 15847
   Log_Action ( oldPvId, 'replaced_with', UserId, 'Replacing with: '|| sPkgVersion ||' at '|| ReleaseLocation );
15848
   Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );
15849
 
15850
END;
15851
/*-------------------------------------------------------------------------------------------------------*/
15852
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
15853
   ReleaseLocation VARCHAR2(4000);
5172 dpurdie 15854
   nSdkTag NUMBER;
3959 dpurdie 15855
BEGIN
5172 dpurdie 15856
   -- Trap SDK Package Deletion
15857
   -- This is a last ditch check. The application should not allow this condition to happen
15858
      SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
15859
      WHERE rtag_id = RtagId
15860
       AND pv_id = PvId;
5502 dpurdie 15861
 
5172 dpurdie 15862
     If nSdkTag IS NOT NULL  THEN
15863
       raise_application_error (-20000, 'Attempt to delete a package provided by an SDK.');
15864
     END IF;
3959 dpurdie 15865
 
15866
   -- Delete old package
15867
   DELETE
15868
     FROM RELEASE_CONTENT rc
15869
    WHERE rc.PV_ID = PvId
15870
      AND rc.RTAG_ID = RtagId;
15871
 
15872
 
15873
   /* LOG ACTION */
15874
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
15875
     FROM PROJECTS proj,
15876
          RELEASE_TAGS rt
15877
    WHERE rt.PROJ_ID = proj.PROJ_ID
15878
      AND rt.RTAG_ID = RtagId;
15879
 
15880
   Log_Action ( PvId, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );
15881
 
15882
 
15883
END;
15884
/*-------------------------------------------------------------------------------------------------------*/
15885
PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
15886
   ReleaseLocation VARCHAR2(4000);
15887
 
15888
   CURSOR curMatchingPackage IS
15889
    SELECT mpv.PV_ID
15890
     FROM RELEASE_CONTENT rc,
15891
           PACKAGE_VERSIONS mpv,
15892
         PACKAGE_VERSIONS pv
15893
    WHERE rc.PV_ID = mpv.PV_ID
15894
      AND rc.RTAG_ID = RtagId
15895
      AND pv.PV_ID = PvId
15896
      AND pv.PKG_ID = mpv.PKG_ID
15897
      AND NVL( pv.V_EXT, '|LINK_A_NULL|' ) = NVL( mpv.V_EXT, '|LINK_A_NULL|' );
15898
    recMatchingPackage curMatchingPackage%ROWTYPE;
15899
 
15900
BEGIN
15901
 
15902
   OPEN curMatchingPackage;
15903
    FETCH curMatchingPackage INTO recMatchingPackage;
15904
 
15905
    IF curMatchingPackage%FOUND THEN
15906
      -- Delete old package
15907
      DELETE
15908
        FROM RELEASE_CONTENT rc
15909
       WHERE rc.PV_ID = recMatchingPackage.PV_ID
15910
         AND rc.RTAG_ID = RtagId;
15911
 
15912
 
15913
      /* LOG ACTION */
15914
      SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
15915
        FROM PROJECTS proj,
15916
              RELEASE_TAGS rt
15917
       WHERE rt.PROJ_ID = proj.PROJ_ID
15918
         AND rt.RTAG_ID = RtagId;
15919
 
15920
      Log_Action ( recMatchingPackage.PV_ID, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );
15921
 
15922
   END IF;
15923
 
15924
 
15925
   CLOSE curMatchingPackage;
15926
 
15927
 
15928
 
15929
 
15930
END;
15931
/*-------------------------------------------------------------------------------------------------------*/
15932
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
15933
 
15934
   ReturnValue NUMBER;
15935
 
15936
BEGIN
15937
   SELECT rc.BASE_VIEW_ID INTO ReturnValue
15938
     FROM RELEASE_CONTENT rc
15939
    WHERE rc.RTAG_ID = RtagId
15940
      AND rc.PV_ID = PvId;
15941
 
15942
   RETURN ReturnValue;
15943
END;
15944
/*-------------------------------------------------------------------------------------------------------*/
15945
PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER ) IS
15946
 
15947
BEGIN
15948
   -- Reset Ignore warnings up-the-tree
15949
   RESET_IGNORE_WARNINGS ( TO_CHAR(PvId), RtagId );
15950
 
15951
   -- Refresh Package states
15952
   TOUCH_RELEASE ( RtagId );
15953
 
15954
END;
15955
/*-------------------------------------------------------------------------------------------------------*/
15956
PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER ) IS
15957
   CURSOR curReleases IS
15958
    SELECT rc.RTAG_ID
15959
     FROM RELEASE_CONTENT rc
15960
    WHERE rc.PV_ID = PvId;
15961
    recReleases curReleases%ROWTYPE;
15962
 
15963
BEGIN
15964
 
15965
   OPEN curReleases;
15966
    FETCH curReleases INTO recReleases;
15967
 
15968
   WHILE curReleases%FOUND
15969
   LOOP
15970
 
15971
      RUN_POST_ACTIONS ( PvId, recReleases.RTAG_ID );
15972
 
15973
      FETCH curReleases INTO recReleases;
15974
   END LOOP;
15975
 
15976
   CLOSE curReleases;
15977
 
15978
END;
15979
/*-------------------------------------------------------------------------------------------------------*/
15980
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
15981
 
15982
BEGIN
15983
 
15984
   UPDATE RELEASE_CONTENT rc SET
15985
   rc.BASE_VIEW_ID = NewViewId
15986
   WHERE rc.PV_ID = PvId
15987
     AND rc.RTAG_ID = RtagId;
15988
 
15989
END;
15990
/*-------------------------------------------------------------------------------------------------------*/
15991
PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 ) IS
15992
 
15993
   RowCount NUMBER;
15994
 
15995
 
15996
   CURSOR curPackageClash IS
15997
   SELECT pkg.PKG_NAME,
15998
         er.*
15999
     FROM (
16000
 
16001
           /* Get existing referenced packages */
16002
         SELECT pv.PKG_ID,
16003
                pv.V_EXT
16004
           FROM RELEASE_LINKS rl,
16005
                 RELEASE_CONTENT rc,
16006
                 PACKAGE_VERSIONS pv
16007
          WHERE rl.RTAG_ID = nRtagId
16008
            AND rl.REF_RTAG_ID = rc.RTAG_ID
16009
            AND rc.PV_ID = pv.PV_ID
16010
 
16011
            ) er,
16012
         (
16013
 
16014
         /* Get current reference packages */
16015
         SELECT pv.PKG_ID,
16016
                pv.V_EXT
16017
           FROM RELEASE_CONTENT rc,
16018
                 PACKAGE_VERSIONS pv
16019
          WHERE rc.RTAG_ID = nRefRtagId
16020
            AND rc.PV_ID = pv.PV_ID
16021
 
16022
         ) cr,
16023
         PACKAGES PKG
16024
    WHERE er.PKG_ID = cr.PKG_ID
16025
      AND NVL(er.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
16026
      AND er.PKG_ID = pkg.PKG_ID;
16027
 
16028
   recPackageClash curPackageClash%ROWTYPE;
16029
 
16030
BEGIN
16031
   /*--------------- Business Rules Here -------------------*/
16032
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
16033
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
16034
   END IF;
16035
 
16036
   IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THEN
16037
      RAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );
16038
   END IF;
16039
   /*-------------------------------------------------------*/
16040
   ProblemString := NULL;
16041
 
16042
 
16043
   -- Check if release already has references
16044
   SELECT COUNT(rl.RTAG_ID)  INTO  RowCount
16045
     FROM RELEASE_LINKS rl
16046
    WHERE rl.RTAG_ID = nRtagId;
16047
 
16048
 
16049
   IF RowCount > 0 THEN
16050
      -- Found existing references
16051
 
16052
      -- Make sure there is no package clashes
16053
      OPEN curPackageClash;
16054
       FETCH curPackageClash INTO recPackageClash;
16055
 
16056
      IF curPackageClash%FOUND THEN
16057
 
5502 dpurdie 16058
         ProblemString := ProblemString ||'Following is partial list of package already referenced from other release:'|| PK_PACKAGE.CRLF;
3959 dpurdie 16059
 
16060
         WHILE curPackageClash%FOUND
16061
         LOOP
5502 dpurdie 16062
            EXIT WHEN LENGTH( ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT  || PK_PACKAGE.CRLF ) > 200;   -- Do not allow variable overflow
3959 dpurdie 16063
 
5502 dpurdie 16064
            ProblemString := ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT  || PK_PACKAGE.CRLF;
3959 dpurdie 16065
 
16066
            FETCH curPackageClash INTO recPackageClash;
16067
         END LOOP;
16068
 
1373 dpurdie 16069
      END IF;
16070
 
3959 dpurdie 16071
      CLOSE curPackageClash;
16072
 
16073
 
16074
   ELSE
16075
      -- No references found, hence reference a release
16076
 
16077
 
16078
      -- Remove exising package from this release to be referenced
16079
      REMOVE_RELEASE_REFERENCE ( nRtagId, nRefRtagId);
16080
 
16081
 
16082
      -- Add new linked packages to release
16083
      INSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE)
16084
      SELECT nRtagId,
16085
            rc.PV_ID,
16086
            rc.BASE_VIEW_ID,
16087
            rc.INSERT_STAMP,
16088
            rc.INSERTOR_ID,
16089
            rc.PKG_STATE
16090
        FROM RELEASE_CONTENT rc
16091
       WHERE rc.RTAG_ID = nRefRtagId;
16092
 
16093
 
16094
 
16095
      -- Copy ignore warnings for referenced packages
16096
      INSERT INTO IGNORE_WARNINGS iw (RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE)
16097
      SELECT nRtagId,
16098
            iw.PV_ID,
16099
            iw.DPV_ID,
16100
            iw.IS_PATCH_IGNORE
16101
        FROM IGNORE_WARNINGS iw,
16102
              RELEASE_CONTENT rc
16103
       WHERE iw.RTAG_ID = rc.RTAG_ID
16104
         AND iw.PV_ID = rc.PV_ID
16105
         AND rc.RTAG_ID = nRefRtagId;
16106
 
16107
 
16108
 
16109
      -- Reference release
16110
      INSERT INTO RELEASE_LINKS (RTAG_ID, REF_RTAG_ID)
16111
      VALUES ( nRtagId, nRefRtagId );
16112
 
16113
 
16114
      -- Refresh Package states
16115
      TOUCH_RELEASE ( nRtagId );
16116
 
16117
   END IF;
16118
 
16119
 
16120
END;
1373 dpurdie 16121
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 16122
PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER ) IS
1373 dpurdie 16123
 
3959 dpurdie 16124
 
16125
BEGIN
16126
   /*--------------- Business Rules Here -------------------*/
16127
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
16128
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
16129
   END IF;
16130
 
16131
   IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THEN
16132
      RAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );
16133
   END IF;
16134
 
16135
   /*-------------------------------------------------------*/
16136
 
16137
 
16138
   -- Remove ignore warnings for those packages who use referenced packages
16139
   DELETE FROM IGNORE_WARNINGS iw
16140
    WHERE iw.RTAG_ID = nRtagId
16141
      AND iw.DPV_ID IN (
16142
                        SELECT dep.DPV_ID
16143
                       FROM (
16144
 
16145
                           /* Get referenced packages */
16146
                           SELECT pv.PKG_ID,
16147
                                  pv.V_EXT
16148
                             FROM RELEASE_CONTENT rc,
16149
                                   PACKAGE_VERSIONS pv
16150
                            WHERE rc.RTAG_ID = nRefRtagId
16151
                              AND rc.PV_ID = pv.PV_ID
16152
 
16153
                           ) cr,
16154
                           (
16155
 
16156
                           /* Get all dependencies for current release */
16157
                           SELECT DISTINCT
16158
                                 pv.PKG_ID,
16159
                                 pv.V_EXT,
16160
                                 dep.DPV_ID
16161
                             FROM RELEASE_CONTENT rc,
16162
                                 PACKAGE_DEPENDENCIES dep,
16163
                                 PACKAGE_VERSIONS pv
16164
                            WHERE rc.RTAG_ID = nRtagId
16165
                              AND rc.PV_ID = dep.PV_ID
16166
                              AND dep.PV_ID = pv.PV_ID
16167
 
16168
                           ) dep
16169
                      WHERE dep.PKG_ID = cr.PKG_ID
16170
                        AND NVL(dep.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
16171
                     );
16172
 
16173
 
16174
 
16175
 
16176
   -- Remove ignore warnings for those package which are going to be replaced with the reference
16177
   DELETE FROM IGNORE_WARNINGS iw
16178
    WHERE iw.RTAG_ID = nRtagId
16179
      AND iw.PV_ID IN (
16180
                  SELECT pv.PV_ID
16181
                    FROM (
16182
 
16183
                        /* Get referenced packages */
16184
                        SELECT pv.PKG_ID,
16185
                               pv.V_EXT
16186
                          FROM RELEASE_CONTENT rc,
16187
                                PACKAGE_VERSIONS pv
16188
                         WHERE rc.RTAG_ID = nRefRtagId
16189
                           AND rc.PV_ID = pv.PV_ID
16190
 
16191
                        ) cr,
16192
                        RELEASE_CONTENT rc,
16193
                        PACKAGE_VERSIONS pv
16194
                   WHERE pv.PKG_ID = cr.PKG_ID
16195
                     AND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
16196
                     AND rc.RTAG_ID = nRtagId
16197
                     AND rc.PV_ID = pv.PV_ID
16198
                  );
16199
 
16200
 
16201
 
16202
 
16203
 
16204
   -- Remove matching packages from release
16205
   DELETE FROM RELEASE_CONTENT rc
16206
    WHERE rc.RTAG_ID = nRtagId
16207
      AND rc.PV_ID IN (
16208
                  SELECT pv.PV_ID
16209
                    FROM (
16210
 
16211
                        /* Get referenced packages */
16212
                        SELECT pv.PKG_ID,
16213
                               pv.V_EXT
16214
                          FROM RELEASE_CONTENT rc,
16215
                                PACKAGE_VERSIONS pv
16216
                         WHERE rc.RTAG_ID = nRefRtagId
16217
                           AND rc.PV_ID = pv.PV_ID
16218
 
16219
                        ) cr,
16220
                        RELEASE_CONTENT rc,
16221
                        PACKAGE_VERSIONS pv
16222
                   WHERE pv.PKG_ID = cr.PKG_ID
16223
                     AND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
16224
                     AND rc.RTAG_ID = nRtagId
16225
                     AND rc.PV_ID = pv.PV_ID
16226
                  );
16227
 
16228
 
16229
 
16230
 
16231
 
16232
   -- Remove Reference release
16233
   DELETE
16234
     FROM RELEASE_LINKS rl
16235
    WHERE rl.RTAG_ID = nRtagId
16236
      AND rl.REF_RTAG_ID = nRefRtagId;
16237
 
16238
 
16239
   -- Refresh Package states
16240
   TOUCH_RELEASE ( nRtagId );
16241
 
16242
 
16243
END;
16244
/*-------------------------------------------------------------------------------------------------------*/
16245
PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR ) IS
16246
 
16247
   cReleaseMode CHAR(1);
16248
   cPvMode CHAR(1);
16249
 
16250
BEGIN
16251
 
16252
   -- Get Release Mode
16253
   SELECT rt.OFFICIAL INTO cReleaseMode
16254
     FROM RELEASE_TAGS rt
16255
    WHERE rt.RTAG_ID = RtagId;
16256
 
16257
 
16258
   -- Get Package Mode
16259
   SELECT pv.DLOCKED INTO cPvMode
16260
     FROM PACKAGE_VERSIONS pv
16261
    WHERE pv.PV_ID = PvId;
16262
 
16263
   -- Only check if package is locked
16264
   IF (cPvMode = 'Y') THEN
16265
 
16266
      IF (cReleaseMode != 'N') AND (Permission != 'Y')
1373 dpurdie 16267
      THEN
3959 dpurdie 16268
         RAISE_APPLICATION_ERROR (-20000, 'Cannot add package to this release. Release needs to be in Open Mode.' );
16269
 
1373 dpurdie 16270
      END IF;
16271
 
3959 dpurdie 16272
   END IF;
5172 dpurdie 16273
END;
3959 dpurdie 16274
 
5172 dpurdie 16275
/*-----------------------------------------------------------------------------*/
16276
PROCEDURE SET_RELEASE_MODIFIED (nRtagId IN NUMBER ) IS
16277
--
16278
--  Set flags to indicate that the specified release has changed for the
16279
--  purposes of building. (Not every single change)
16280
--
16281
--  Used by Build System to streamline build decisions
16282
--    Bump a sequence number
16283
--    Set a TimeStamp
16284
--
16285
--  Care must be taken to avoid concuency issues
16286
--  Must Insert or Update in a safe manner
16287
--
16288
--  This should be called whenever the package_versions in the release have changed in such
16289
--  a manner that the build daemons should examine the release. This includes:
16290
--   - Packages added, removed and version updated
16291
--   - Packages build status changed (re-included in the release)
16292
--   - Packages made Pending Build
16293
--   - Daemon instruction add/updated (Test Build)
16294
--
16295
--  Note: Not yet used (10-Oct-2014)
16296
--        Uses SEQ_RELEASE_MOD and Table: RELEASE_MODIFIED
16297
BEGIN
16298
 LOOP
16299
  BEGIN
16300
    MERGE INTO RELEASE_MODIFIED USING dual ON ( RTAG_ID=nRtagId )
5502 dpurdie 16301
      WHEN MATCHED THEN UPDATE SET SEQNUM=SEQ_RELEASE_MOD.NEXTVAL,TIMESTAMP=CURRENT_TIMESTAMP
16302
      WHEN NOT MATCHED THEN INSERT (RTAG_ID,TIMESTAMP,SEQNUM)
5172 dpurdie 16303
        VALUES (nRtagId, CURRENT_TIMESTAMP,SEQ_RELEASE_MOD.NEXTVAL );
16304
    EXIT; -- success? -> exit loop
16305
  EXCEPTION
16306
    WHEN NO_DATA_FOUND THEN -- the entry was concurrently deleted
16307
      NULL; -- exception? -> no op, i.e. continue looping
16308
    WHEN DUP_VAL_ON_INDEX THEN -- an entry was concurrently inserted
16309
      NULL; -- exception? -> no op, i.e. continue looping
16310
  END;
16311
 END LOOP;
16312
END;
3959 dpurdie 16313
 
5172 dpurdie 16314
/*-------------------------------------------------------------------------------------------------------*/
16315
--  ADD_RELEASE_SDK
16316
--  ADD an SDK Reference to a Release
16317
--  Args: nRtagId           - RTAG_ID of Release to Process
16318
--        nSdktagId         - SDKTAG_ID of SDK to add to Release
16319
--        nUserId           - User IF of user performing the action
16320
--        bDelete           - Delete conflicting (non sdk) packages from the release 0:False
16321
--        nInsertCount      - Returns: Number of Packages inserted: -1 is an error
16322
--        curReturn         - Returns: On error a table of PV_IDs of packages causing the conflict
16323
--
16324
PROCEDURE ADD_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER, nUserId IN NUMBER, bDelete IN NUMBER, nInsertCount OUT NUMBER, curReturn OUT typeCur )IS
16325
 
16326
  vartbl RELMGR_NUMBER_TAB_T := RELMGR_NUMBER_TAB_T();
16327
  ii NUMBER;
16328
  view_id NUMBER;
16329
 
16330
    -- Detect clashing packages
16331
    -- Packages provided by the SDK that are present in the Release
16332
    CURSOR curPackageClash
16333
    IS
16334
      SELECT release.pvid
16335
      FROM
16336
        -- Alias and pvid from SDK
16337
        (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
16338
          pv.PV_ID                  AS pvid
16339
        FROM SDK_CONTENT sc, PACKAGE_VERSIONS pv
16340
        WHERE sc.SDKTAG_ID  = nSdktagId
16341
        AND sc.SDKPKG_STATE = 'E'
16342
        AND pv.PV_ID        = sc.PV_ID
16343
        ) sdk,
16344
      -- Alias and pvid from Release
16345
      (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
16346
        pv.PV_ID                  AS pvid
16347
      FROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pv
16348
      WHERE rc.rtag_id = nRtagId
16349
      AND rc.PV_ID    = pv.PV_ID
16350
      ) RELEASE
16351
    WHERE sdk.pkgAlias = release.pkgAlias;
5502 dpurdie 16352
 
5172 dpurdie 16353
   -- Detect packages in the release that are provided by the SDK
16354
   -- Do not include packages provided by an SDK - these cannot be replaced
16355
       CURSOR curPackageReplacable
16356
    IS
16357
      SELECT release.pvid
16358
      FROM
16359
        -- Alias and pvid from SDK
16360
        (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
16361
                pv.PV_ID                            AS pvid
16362
        FROM SDK_CONTENT sc, PACKAGE_VERSIONS pv
16363
        WHERE sc.SDKTAG_ID    = nSdktagId
16364
          AND sc.SDKPKG_STATE = 'E'
16365
          AND pv.PV_ID        = sc.PV_ID
16366
        ) sdk,
16367
      -- Alias and pvid from Release
16368
      --  Excluding those import by any SDK
16369
      (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
16370
              pv.PV_ID                            AS pvid
16371
       FROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pv
16372
       WHERE rc.rtag_id = nRtagId
16373
         AND rc.PV_ID   = pv.PV_ID
16374
         AND rc.SDKTAG_ID is NULL
16375
      ) RELEASE
16376
    WHERE sdk.pkgAlias = release.pkgAlias;
16377
 
16378
BEGIN
16379
   /*--------------- Business Rules Here -------------------*/
16380
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
16381
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
16382
   END IF;
16383
 
16384
   IF (nSdktagId = 0) OR ( nSdktagId IS NULL ) THEN
16385
      RAISE_APPLICATION_ERROR (-20000, 'nSdktagId is not supplied. [nSdktagId='|| nSdktagId ||']' );
16386
   END IF;
16387
   /*-------------------------------------------------------*/
5502 dpurdie 16388
 
5172 dpurdie 16389
   -- Delete packages from the release if they are provided by the SDK
5502 dpurdie 16390
   -- provided they are not provided by another SDK
5172 dpurdie 16391
    IF bDelete != 0 THEN
16392
      FOR rdata IN curPackageClash LOOP
16393
        DELETE FROM RELEASE_CONTENT rc
16394
          WHERE rc.RTAG_ID = nRtagId
16395
          AND rc.PV_ID = rdata.pvid;
16396
      END LOOP;
16397
 
16398
      -- Remove exising package from this release to be referenced
16399
      REMOVE_RELEASE_SDK ( nRtagId, nSdktagId);
16400
    END IF;
16401
 
16402
    -- Detect and report package clashes
16403
    -- Packages provided by the SDK that are (still) in the release
16404
    ii := 1;
16405
    FOR rdata IN curPackageClash LOOP
16406
      vartbl.extend;
16407
      --vartbl(ii) := TABLE_PVID(rdata.pvid);
16408
      vartbl(ii) := rdata.pvid;
16409
      ii := ii + 1;
16410
    END LOOP;
16411
    -- Make sure there is no package clashes
5502 dpurdie 16412
 
5172 dpurdie 16413
    IF ii != 1 THEN
16414
      nInsertCount := -1;
16415
      open curReturn for select * from table(vartbl);
16416
      --curReturn := vartbl;
16417
      RETURN;
16418
    END IF;
16419
 
16420
    -- Determine the target view_id
16421
    SELECT 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;
5502 dpurdie 16422
 
5172 dpurdie 16423
    -- Add SDK exported packages to release
16424
    INSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE, SDKTAG_ID)
5502 dpurdie 16425
    SELECT nRtagId, sc.PV_ID, view_id, sysdate, nUserId, 11, nSdktagId
5172 dpurdie 16426
        FROM SDK_CONTENT sc
16427
        WHERE sc.SDKTAG_ID = nSdktagId
16428
        AND sc.SDKPKG_STATE = 'E';
16429
    nInsertCount := sql%ROWCOUNT;
16430
 
16431
    -- Refresh Package states
16432
    TOUCH_RELEASE ( nRtagId );
16433
    SET_RELEASE_MODIFIED(nRtagId);
16434
 
3959 dpurdie 16435
END;
16436
 
1373 dpurdie 16437
/*-------------------------------------------------------------------------------------------------------*/
5172 dpurdie 16438
--  Name:   REMOVE_RELEASE_SDK
16439
--  Desc:   Remove an SDK from the specified Release
16440
--          It is not an error to remove an SDK that is not attached to the release
16441
--  Args:   nRtagId         - RTAG_ID of the Release to Process
16442
--          nSdktagId       - SDKTAG_ID to remove
16443
--
16444
PROCEDURE REMOVE_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER ) IS
16445
 
16446
BEGIN
16447
   /*--------------- Business Rules Here -------------------*/
16448
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
16449
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
16450
   END IF;
16451
 
16452
   IF (nSdktagId = 0) OR ( nSdktagId IS NULL ) THEN
16453
      RAISE_APPLICATION_ERROR (-20000, 'nSdktagId is not supplied. [nSdktagId='|| nSdktagId ||']' );
16454
   END IF;
16455
 
16456
   /*-------------------------------------------------------*/
16457
 
16458
   -- Remove matching packages from release
16459
   DELETE FROM RELEASE_CONTENT rc
16460
    WHERE rc.RTAG_ID = nRtagId
16461
      AND rc.SDKTAG_ID = nSdktagId;
16462
 
16463
   -- Refresh Package states
16464
   TOUCH_RELEASE ( nRtagId );
16465
   SET_RELEASE_MODIFIED(nRtagId);
16466
END;
16467
 
16468
--------------------------------------------------------------------------------
16469
--  CAN_ADD_PKG_TO_RELEASE
16470
--  Test if a Package (pvid) can be added to a given release
16471
--  The test will not allwo an exiting package to be replaced IF it is imported via an
16472
--  SDK
16473
--
16474
--  Returns:  0 - Package cannot be replaced
16475
--            1 - Package can be replaced
16476
--            2 - Package will be added
5502 dpurdie 16477
--
5172 dpurdie 16478
FUNCTION CAN_ADD_PKG_TO_RELEASE ( nRtagId IN NUMBER, nPvid in NUMBER ) RETURN NUMBER IS
16479
 
16480
   sAlias VARCHAR2(4000);
5502 dpurdie 16481
 
5172 dpurdie 16482
    -- Find package for proccessing
16483
    -- Use unique constraint of PKG_ID and V_EXT
16484
   CURSOR curReplacePkg IS
16485
    SELECT pv.PV_ID
16486
     FROM RELEASE_CONTENT rc,
16487
           PACKAGE_VERSIONS pv
16488
    WHERE rc.PV_ID = pv.PV_ID
16489
      AND rc.RTAG_ID = nRtagId
16490
      AND pv.PKG_ID || NVL( pv.V_EXT, 'LINK_A_NULL' ) = sAlias;
5502 dpurdie 16491
 
5172 dpurdie 16492
    recReplacePkg curReplacePkg%ROWTYPE;
16493
    nSdkTag NUMBER;
5502 dpurdie 16494
 
5172 dpurdie 16495
BEGIN
16496
   /*--------------- Business Rules Here -------------------*/
16497
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
16498
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
16499
   END IF;
16500
 
16501
   IF (nPvid = 0) OR ( nPvid IS NULL ) THEN
16502
      RAISE_APPLICATION_ERROR (-20000, 'nPvid is not supplied. [nPvid='|| nPvid ||']' );
16503
   END IF;
16504
 
16505
    -- Find pkg Alias for provided package
5502 dpurdie 16506
   SELECT pv.PKG_ID || NVL( pv.V_EXT, 'LINK_A_NULL' )
5172 dpurdie 16507
     INTO sAlias
16508
     FROM PACKAGE_VERSIONS pv
16509
    WHERE pv.PV_ID = nPvid;
16510
 
16511
      -- Find Package that may be replaced
16512
      OPEN curReplacePkg;
16513
       FETCH curReplacePkg INTO recReplacePkg;
16514
 
16515
       IF curReplacePkg%FOUND THEN
16516
        SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
16517
         WHERE rtag_id = nRtagId
16518
         AND pv_id = recReplacePkg.PV_ID;
5502 dpurdie 16519
 
5172 dpurdie 16520
        If nSdkTag IS NOT NULL  THEN
16521
          RETURN 0;
16522
        ELSE
16523
          RETURN 1;
16524
        END IF;
16525
      END IF;
16526
 
16527
  -- No package found, so it can be added
16528
  RETURN 2;
5502 dpurdie 16529
 
5172 dpurdie 16530
  EXCEPTION
16531
  WHEN NO_DATA_FOUND THEN
16532
    RAISE_APPLICATION_ERROR (-20000, 'nPvid is not valid. [nPvid='|| nPvid ||']' );
16533
END;
16534
 
16535
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 16536
END PK_RELEASE;
4040 dpurdie 16537
 
6999 dpurdie 16538
/
4040 dpurdie 16539
--------------------------------------------------------
16540
--  DDL for Package Body PK_RMAPI
16541
--------------------------------------------------------
16542
 
5172 dpurdie 16543
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_RMAPI" 
3959 dpurdie 16544
IS
16545
 
16546
   /*-------------------------------------------------------------------------------------------------------*/
16547
   FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)
16548
      RETURN typecur
1373 dpurdie 16549
   IS
3959 dpurdie 16550
      npvid     NUMBER  := 0;
16551
      RECORDS   typecur;
1373 dpurdie 16552
   BEGIN
3959 dpurdie 16553
      BEGIN
16554
         -- Get PV_ID --
16555
         SELECT pv.pv_id
16556
           INTO npvid
16557
           FROM PACKAGES pkg, package_versions pv
16558
          WHERE pv.pkg_id = pkg.pkg_id
16559
            AND pkg.pkg_name = pkgname
16560
            AND pv.pkg_version = pkgversion;
16561
      EXCEPTION
16562
         WHEN NO_DATA_FOUND
16563
         THEN
16564
            raise_application_error (-20000, 'Package Not Found!');
16565
            --WHEN OTHERS THEN
16566
                  -- Consider logging the error and then re-raise
16567
            RAISE;
16568
      END;
1373 dpurdie 16569
 
3959 dpurdie 16570
      -- Finally get package dependencies --
16571
      OPEN RECORDS FOR
16572
         SELECT dpv.pv_id, dpkg.pkg_name, dpv.pkg_version
16573
           FROM package_dependencies dep, PACKAGES dpkg, package_versions dpv
16574
          WHERE dep.pv_id = npvid
16575
            AND dpv.pkg_id = dpkg.pkg_id
16576
            AND dpv.pv_id = dep.dpv_id;
16577
 
16578
      RETURN RECORDS;
1373 dpurdie 16579
   END;
16580
 
16581
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 16582
   FUNCTION wip_iteration_package (
16583
      projname        VARCHAR2,
16584
      iterationname   VARCHAR2,
16585
      pkgname         VARCHAR2
1373 dpurdie 16586
   )
3959 dpurdie 16587
      RETURN typecur
1373 dpurdie 16588
   IS
3959 dpurdie 16589
      nrtagid   NUMBER  := 0;
16590
      RECORDS   typecur;
1373 dpurdie 16591
   BEGIN
3959 dpurdie 16592
      BEGIN
16593
         -- Get latest rtag_id --
16594
         SELECT rt.rtag_id
16595
           INTO nrtagid
16596
           FROM projects proj, release_tags rt
16597
          WHERE rt.proj_id = proj.proj_id
16598
            AND UPPER (proj.proj_name) = UPPER (projname)
16599
            AND UPPER (rt.rtag_name) = UPPER (iterationname);
1373 dpurdie 16600
 
3959 dpurdie 16601
         IF (nrtagid IS NULL)
16602
         THEN
16603
            raise_application_error (-20000,
16604
                                     'Work In Progress is Not Found!');
16605
         END IF;
16606
      EXCEPTION
16607
         WHEN NO_DATA_FOUND
16608
         THEN
16609
            raise_application_error (-20000,
16610
                                     'Work In Progress is Not Found!');
16611
            RAISE;
16612
      END;
16613
 
16614
      -- Finally get package dependencies --
16615
      OPEN RECORDS FOR
16616
         SELECT pv.pkg_version, pv.dlocked AS is_official, pv.pkg_label,
16617
                pv.src_path
16618
           FROM PACKAGES pkg, package_versions pv, work_in_progress wip
16619
          WHERE pv.pkg_id = pkg.pkg_id
16620
            AND wip.pv_id = pv.pv_id
16621
            AND wip.rtag_id = nrtagid
16622
            AND pkg.pkg_name = pkgname;
16623
 
16624
      RETURN RECORDS;
1373 dpurdie 16625
   END;
16626
 
16627
/*-------------------------------------------------------------------------------------------------------*/
4553 dpurdie 16628
-- Use:
16629
--   Used by the Automated Build System to release a new package
16630
-- Returns:
16631
--    Use application errors to indicate programming errors
16632
--    Use negative return codes to indicate correctable user problems
16633
--    Positive return code is the new PVID of the package
6600 dpurdie 16634
--
16635
-- Note: Being deprecated in favor of auto_make_vcsrelease2
4553 dpurdie 16636
  FUNCTION auto_make_vcsrelease (
3959 dpurdie 16637
      rtagid                   IN   NUMBER,
16638
      pkgname                  IN   VARCHAR2,
16639
      vext                     IN   VARCHAR2,
16640
      newpkgversion            IN   VARCHAR2,
16641
      vcstag                   IN   VARCHAR2,
16642
      dependenciesimportlist   IN   VARCHAR2,
16643
      isrippled                IN   NUMBER,
16644
      username                 IN   VARCHAR2
16645
   )
1373 dpurdie 16646
      RETURN NUMBER
16647
   IS
3959 dpurdie 16648
      pkgid                           NUMBER;
16649
      pvid                            NUMBER                        := 0;
16650
      userid                          NUMBER;
16651
      dlocked                         VARCHAR2 (20)                 := NULL;
16652
      clonefrompvid                   NUMBER;
16653
      ssv_mm                          package_versions.v_mm%TYPE;
16654
      ssv_nmm                         package_versions.v_nmm%TYPE;
16655
      ssv_ext                         package_versions.v_ext%TYPE;
16656
      return_package_not_found        NUMBER                        := -1;
16657
      return_package_already_exists   NUMBER                        := -2;
16658
      return_not_approved             NUMBER                        := -3;
16659
      return_migrated_pkg             NUMBER                        := -4;
4553 dpurdie 16660
      return_svn_path_changed         NUMBER                        := -5;
1373 dpurdie 16661
 
16662
 
3959 dpurdie 16663
      x_vcstypeid                     NUMBER;
16664
      x_tag                           VARCHAR2(32);
16665
      x_label                         VARCHAR2(60);
16666
      x_srcpath                       VARCHAR2(2000);
16667
      p_srcpath                       VARCHAR2(2000);
1373 dpurdie 16668
 
3959 dpurdie 16669
      -- Regular expression constituents
16670
      Token         VARCHAR2(16) := '([^:]+)';  -- a token is anything except a ':' character
16671
      Seperator     VARCHAR2(4)  := '::';       -- tokens will be seperated by '::'
16672
      BOL           VARCHAR2(4)  := '^';
16673
      Anything      VARCHAR2(4)  := '.*';
16674
      ReplaceToken1 VARCHAR2(4)  := '\1';
16675
      ReplaceToken2 VARCHAR2(4)  := '\2';
16676
      ReplaceToken3 VARCHAR2(4)  := '\3';
16677
      iprev_modifier_id               NUMBER;
16678
 
1373 dpurdie 16679
   BEGIN
3959 dpurdie 16680
      /*--------------- Business Rules Here -------------------*/
16681
      IF (rtagid IS NULL)
16682
      THEN
16683
         raise_application_error (-20000, 'RtagId must be supplied.');
16684
      END IF;
1373 dpurdie 16685
 
3959 dpurdie 16686
      IF (pkgname IS NULL)
16687
      THEN
16688
         raise_application_error (-20000, 'PkgName must be supplied.');
16689
      END IF;
1373 dpurdie 16690
 
3959 dpurdie 16691
      IF (newpkgversion IS NULL)
1373 dpurdie 16692
      THEN
3959 dpurdie 16693
         raise_application_error (-20000, 'PkgVersion must be supplied.');
1373 dpurdie 16694
      END IF;
16695
 
3959 dpurdie 16696
      IF (vcstag IS NULL)
1373 dpurdie 16697
      THEN
3959 dpurdie 16698
         raise_application_error (-20000, 'PkgVcsTag must be supplied.');
1373 dpurdie 16699
      END IF;
16700
 
3959 dpurdie 16701
      IF (isrippled IS NULL) OR (isrippled < 0) OR (isrippled > 1)
1373 dpurdie 16702
      THEN
4553 dpurdie 16703
         raise_application_error (-20000, 'IsRippled must be set to 1 (Is rippled build) or 0 (Is planned build).');
1373 dpurdie 16704
      END IF;
16705
 
3959 dpurdie 16706
      IF (username IS NULL)
1373 dpurdie 16707
      THEN
3959 dpurdie 16708
         raise_application_error (-20000, 'UserName must be supplied.');
1373 dpurdie 16709
      END IF;
16710
 
3959 dpurdie 16711
      -- Parse the PkgVcsTag
16712
      -- Sets up
16713
      --   x_tag, x_label, x_srcpath
1373 dpurdie 16714
 
3959 dpurdie 16715
       BEGIN
16716
          -- Extract the first token - this will be the short tag name for the VCS (eg. 'CC', 'SVN', etc)
16717
          x_tag := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Anything, ReplaceToken1);
1373 dpurdie 16718
 
3959 dpurdie 16719
          -- Decode the short tag
16720
          CASE x_tag
16721
             WHEN 'CC' THEN
16722
                -- extract the 2nd and 3rd tokens, those being the source path and label respectively
16723
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
16724
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
1373 dpurdie 16725
 
3959 dpurdie 16726
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
16727
                -- check for that error as well as the obvious zero-length string conditions.
16728
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
16729
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
16730
                END IF;
6031 dpurdie 16731
 
3959 dpurdie 16732
                IF isSVNbyName(pkgname) > 0 THEN
16733
                    -- Don't allow migrated packages to be released from a CC label
16734
                    return return_migrated_pkg;
16735
                END IF;
1373 dpurdie 16736
 
16737
 
3959 dpurdie 16738
             WHEN 'SVN' THEN
16739
                -- extract the 2nd token, that being the subversion tag
16740
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
16741
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
1373 dpurdie 16742
 
3959 dpurdie 16743
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
16744
                -- check for that error as well as the obvious zero-length string conditions.
16745
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
16746
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
16747
                END IF;
16748
 
16749
             WHEN 'UC' THEN
16750
                -- nothing to extract, just assign defaults
16751
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
16752
                x_label   := 'N/A';
16753
             ELSE
16754
                raise_application_error (-20000, 'Unrecognised VCS Tag!');
16755
          END CASE;
16756
       END;
16757
 
16758
      -- Get the VCS_TYPE_ID for the version control system.
16759
      BEGIN
16760
         SELECT vt.vcs_type_id
16761
         INTO x_vcstypeid
16762
         FROM VCS_TYPE vt
16763
         WHERE vt.tag = x_tag;
16764
         EXCEPTION
16765
            WHEN NO_DATA_FOUND THEN
16766
               raise_application_error (-20000, 'Database is missing a version control system tag (' || x_tag || ')!' );
16767
      END;
16768
 
16769
 
16770
      -- Get user_id
16771
      BEGIN
16772
         SELECT usr.user_id
16773
           INTO userid
16774
           FROM users usr
16775
          WHERE UPPER (usr.user_name) = UPPER (username)
16776
            AND usr.is_disabled IS NULL;
16777
      EXCEPTION
16778
         WHEN NO_DATA_FOUND
1373 dpurdie 16779
         THEN
4585 dpurdie 16780
            raise_application_error (-20000, 'UserName: ' || username || ' is not valid or disabled.' );
3959 dpurdie 16781
      END;
1373 dpurdie 16782
 
3959 dpurdie 16783
/*-------------------------------------------------------*/
1373 dpurdie 16784
 
3959 dpurdie 16785
      -- Create package if necessary
16786
      IF isrippled = 1
1373 dpurdie 16787
      THEN
3959 dpurdie 16788
         /* Ripple Build */
16789
         BEGIN
16790
            -- Make sure that package does not exist
16791
            SELECT pv.pv_id
16792
              INTO pvid
16793
              FROM package_versions pv, PACKAGES pkg
16794
             WHERE pv.pkg_id = pkg.pkg_id
16795
               AND pkg.pkg_name = pkgname
16796
               AND pv.pkg_version = newpkgversion;
16797
         EXCEPTION
16798
            WHEN NO_DATA_FOUND
16799
            THEN
16800
               pvid := 0;
16801
         END;
16802
 
16803
         IF (pvid = 0)
1373 dpurdie 16804
         THEN
3959 dpurdie 16805
            -- Split current version in parts
16806
            split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
16807
 
16808
            BEGIN
16809
               -- Find package to be replaced with the ripple package
16810
               IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
16811
               THEN
16812
                  SELECT pv.pv_id, pv.src_path
16813
                    INTO clonefrompvid, p_srcpath
16814
                    FROM PACKAGES pkg, package_versions pv,
16815
                         release_content rc
16816
                   WHERE rc.pv_id = pv.pv_id
16817
                     AND pv.pkg_id = pkg.pkg_id
16818
                     AND rc.rtag_id = rtagid
16819
                     AND pkg.pkg_name = pkgname
16820
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|');
16821
               ELSE
16822
                  SELECT pv.pv_id, pv.src_path
16823
                    INTO clonefrompvid, p_srcpath
16824
                    FROM PACKAGES pkg, package_versions pv,
16825
                         release_content rc
16826
                   WHERE rc.pv_id = pv.pv_id
16827
                     AND pv.pkg_id = pkg.pkg_id
16828
                     AND rc.rtag_id = rtagid
16829
                     AND pkg.pkg_name = pkgname
16830
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
16831
               END IF;
16832
            EXCEPTION
16833
               WHEN NO_DATA_FOUND
16834
               THEN
16835
                  raise_application_error
16836
                                        (-20000,
16837
                                            'Cannot get CloneFromPvId. VExt='
16838
                                         || vext
16839
                                         || ', RtagId='
16840
                                         || rtagid
16841
                                         || ', PkgName='
16842
                                         || pkgname
16843
                                         || ', SSV_EXT='
16844
                                         || ssv_ext
16845
                                        );
16846
            END;
16847
 
16848
            IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
16849
            THEN
16850
               -- Create package
16851
               seed_package_names_versions (pkgname,
16852
                                            newpkgversion,
16853
                                            userid,
16854
                                            pvid,
16855
                                            clonefrompvid
16856
                                           );
16857
            ELSE
4585 dpurdie 16858
               -- Create package (now both the same)
16859
               seed_package_names_versions (pkgname,
3959 dpurdie 16860
                                             newpkgversion,
16861
                                             userid,
16862
                                             pvid,
16863
                                             clonefrompvid
16864
                                            );
16865
            END IF;
16866
 
16867
            -- Update Package reason for release
16868
            UPDATE package_versions pv
16869
               SET pv.comments = 'Rippled Build.',
16870
                   pv.build_type = 'Y'
16871
             WHERE pv.pv_id = pvid;
16872
         ELSE
16873
            -- Package already exists, it was built previously, and has just been re-built again probably due to the
16874
            -- fact that the archive was cleaned of the original build artifacts at some point, and those artifacts
16875
            -- are now needed once more. As such, we need to ensure that a new release note generation occurs so
16876
            -- reset the package_versions[pvid].release_notes_info field to enable that to happen.
16877
            UPDATE package_versions pv
16878
               SET pv.release_notes_info = null,
16879
                   pv.modified_stamp = ora_sysdatetime
16880
             WHERE pv.pv_id = pvid;
16881
 
16882
            --DEVI-066151
16883
            log_action (pvid, 'package_rebuilt', userid, 'Package Re-built...');
16884
 
16885
            RETURN return_package_already_exists;
1373 dpurdie 16886
         END IF;
16887
      ELSE
3959 dpurdie 16888
         /* Auto build from Pending area */
16889
 
16890
         -- Find package in pending area
16891
         BEGIN
16892
            SELECT pv.pv_id, pv.dlocked, pv.src_path
16893
              INTO pvid, dlocked, p_srcpath
16894
              FROM planned pl, package_versions pv, PACKAGES pkg
16895
             WHERE pl.pv_id = pv.pv_id
16896
               AND pv.pkg_id = pkg.pkg_id
16897
               AND pl.rtag_id = rtagid
16898
               AND pkg.pkg_name = pkgname
16899
               AND pv.dlocked = 'A'
16900
               AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|')
16901
               AND rownum = 1
16902
             ORDER BY pv.modified_stamp;
16903
         EXCEPTION
16904
            WHEN NO_DATA_FOUND
16905
            THEN
16906
               pvid := 0;
16907
         END;
16908
 
16909
         IF (pvid = 0)
1373 dpurdie 16910
         THEN
3959 dpurdie 16911
            -- Package does not exist in pending area, hence report it
16912
            RETURN return_package_not_found;
16913
         ELSIF (dlocked != 'A')
1373 dpurdie 16914
         THEN
3959 dpurdie 16915
            -- Package is not approved for autobuild
16916
            RETURN return_not_approved;
1373 dpurdie 16917
         END IF;
16918
 
16919
      END IF;
16920
 
3959 dpurdie 16921
      -- Ensure Source Path does not change
16922
      -- Do not expect the SVN development branch to change
16923
      -- From the previous package
16924
      IF ( x_tag = 'SVN' AND p_srcpath != x_srcpath )
1373 dpurdie 16925
      THEN
4553 dpurdie 16926
        return return_svn_path_changed;
1373 dpurdie 16927
      END IF;
16928
 
3959 dpurdie 16929
      BEGIN
16930
         -- Import Dependencies
16931
         import_dependencies (pvid, dependenciesimportlist, userid);
16932
      END;
1373 dpurdie 16933
 
16934
 
3959 dpurdie 16935
      BEGIN
16936
         -- Split current version in parts
16937
         split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
1373 dpurdie 16938
 
3959 dpurdie 16939
         -- Update Package Details
16940
         UPDATE package_versions pv
16941
            SET pv.pkg_version = newpkgversion,
16942
                pv.v_ext = ssv_ext,
16943
                pv.v_mm = ssv_mm,
16944
                pv.v_nmm = ssv_nmm,
16945
                pv.src_path = x_srcpath,
16946
                pv.pkg_label = x_label,
16947
                pv.vcs_type_id = x_vcstypeid
16948
          WHERE pv.pv_id = pvid;
16949
      EXCEPTION
16950
         WHEN DUP_VAL_ON_INDEX
16951
         THEN
16952
            -- Package already exists, hence cannot be used for ripple build
16953
            RETURN return_package_already_exists;
16954
      END;
16955
 
16956
      -- Update the is_autobuildable
16957
      UPDATE package_versions
16958
         SET is_autobuildable = 'Y'
16959
       WHERE pv_id = pvid;
16960
 
16961
      -- DEVI-063601
16962
      -- For planned builds the modifier_id shouldn't be set to buildadm.
16963
      -- To ensure this the modifier_id is obtained so it can be restored after
16964
      -- the function pk_environment.auto_make_release is called.
16965
      -- This function calls, change_state, which sets the modifier_id to the
16966
      -- specified userid, which for auto builds is buildadm.
16967
      SELECT pv.modifier_id INTO iprev_modifier_id
16968
      FROM package_versions pv WHERE pv.pv_id = pvid;
16969
 
16970
      -- Now release package
16971
      pk_environment.auto_make_release (pvid,
16972
                                        rtagid,
16973
                                        userid,
16974
                                        vext,
16975
                                        ssv_ext,
16976
                                        clonefrompvid
16977
                                       );
16978
 
16979
      -- DEVI-063601
16980
      -- if it is a planned build then restore the modifier_id to the previous modifier
16981
      UPDATE package_versions pv SET pv.modifier_id = iprev_modifier_id
16982
      WHERE pv.pv_id = pvid;
16983
 
16984
      --Now clean the PLANNED_VERSIONS table
16985
      SELECT pkg_id
16986
        INTO pkgid
16987
        FROM PACKAGES
16988
       WHERE pkg_name = pkgname;
16989
 
16990
      DELETE FROM planned_versions
16991
            WHERE pkg_id = pkgid AND pkg_version = newpkgversion;
16992
 
16993
      RETURN pvid;
1373 dpurdie 16994
   END;
16995
 
16996
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 16997
   PROCEDURE import_dependencies (
16998
      pvid                     IN   NUMBER,
16999
      dependenciesimportlist   IN   VARCHAR2,
17000
      userid                   IN   NUMBER
17001
   )
1373 dpurdie 17002
   IS
3959 dpurdie 17003
/*
17004
|| DependenciesImportList Format:
17005
|| "pkgA","1.0.0";"pkgB","2.0.0";
17006
||  OR 'pkgA','1.0.0';'pkgB','2.0.0';
17007
*/
17008
      TYPE tdictionary IS TABLE OF VARCHAR2 (4000)
17009
         INDEX BY VARCHAR2 (4000);
17010
 
17011
      seperator         VARCHAR2 (2)           := '||';
17012
      pkgname           VARCHAR2 (4000);
17013
      pkgversion        VARCHAR2 (4000);
17014
      buildtype         VARCHAR2 (50);
17015
      pkgid             NUMBER;
17016
      vext              VARCHAR2 (4000);
17017
      dpvid             NUMBER;
17018
      slist             VARCHAR2 (4000);
17019
      cbuildtypes       tdictionary;
17020
      dependencyrow     NUMBER;
17021
      sdependency       VARCHAR2 (4000);
17022
      first_pos         VARCHAR2 (4000);
17023
      second_pos        VARCHAR2 (4000);
17024
      third_pos         VARCHAR2 (4000);
17025
      forth_pos         VARCHAR2 (4000);
17026
      citemcollection   relmgr_varchar2_tab_t  := relmgr_varchar2_tab_t ();
17027
 
17028
      CURSOR curbuildtype
17029
      IS
17030
         SELECT dpv.pkg_id || seperator || dpv.v_ext AS pkgid_ext,
17031
                dep.build_type
17032
           FROM package_dependencies dep, package_versions dpv
17033
          WHERE dep.pv_id = pvid AND dep.dpv_id = dpv.pv_id;
17034
 
17035
      recbuildtype      curbuildtype%ROWTYPE;
1373 dpurdie 17036
   BEGIN
3959 dpurdie 17037
      slist := dependenciesimportlist;
1373 dpurdie 17038
 
3959 dpurdie 17039
      -- Preformat String
17040
      IF NOT slist IS NULL
1373 dpurdie 17041
      THEN
3959 dpurdie 17042
         slist := REPLACE (slist, ' ');                      -- Remove spaces
17043
         slist := REPLACE (slist, UTL_TCP.crlf);
17044
         -- Remove new line and carriage-return characters
17045
         slist := REPLACE (slist, '''', '"');             -- Replace ' with "
1373 dpurdie 17046
      END IF;
17047
 
3959 dpurdie 17048
      -- Get Current Dependencies
17049
      OPEN curbuildtype;
1373 dpurdie 17050
 
3959 dpurdie 17051
      FETCH curbuildtype
17052
       INTO recbuildtype;
1373 dpurdie 17053
 
3959 dpurdie 17054
      WHILE curbuildtype%FOUND
17055
      LOOP
17056
         cbuildtypes (recbuildtype.pkgid_ext) := recbuildtype.build_type;
1373 dpurdie 17057
 
3959 dpurdie 17058
         FETCH curbuildtype
17059
          INTO recbuildtype;
17060
      END LOOP;
1373 dpurdie 17061
 
3959 dpurdie 17062
      CLOSE curbuildtype;
1373 dpurdie 17063
 
3959 dpurdie 17064
      -- Separate dependencies with ; separator
17065
      citemcollection := in_list_varchar2 (slist, ';');
1373 dpurdie 17066
 
3959 dpurdie 17067
      BEGIN
17068
         -- Remove old dependencies
17069
         DELETE FROM package_dependencies dep
17070
               WHERE dep.pv_id = pvid;
1373 dpurdie 17071
 
3959 dpurdie 17072
         -- Loop through dependencies
17073
         FOR dependencyrow IN 1 .. citemcollection.COUNT
17074
         LOOP
17075
            -- Extract pkg_name and pkg_version
17076
            sdependency := citemcollection (dependencyrow);
17077
            first_pos := INSTR (sdependency, '"', 1, 1);
17078
            second_pos := INSTR (sdependency, '"', 1, 2);
17079
            third_pos := INSTR (sdependency, '"', 1, 3);
17080
            forth_pos := INSTR (sdependency, '"', 1, 4);
17081
            pkgname :=
17082
               SUBSTR (sdependency,
17083
                       (first_pos + 1),
17084
                       (second_pos - first_pos - 1)
17085
                      );
17086
            pkgversion :=
17087
               SUBSTR (sdependency,
17088
                       (third_pos + 1),
17089
                       (forth_pos - third_pos - 1)
17090
                      );
17091
 
17092
            -- Dependency must exits to be linked against
17093
            BEGIN
17094
               SELECT pv.pv_id, pv.pkg_id, pv.v_ext
17095
                 INTO dpvid, pkgid, vext
17096
                 FROM package_versions pv, PACKAGES pkg
17097
                WHERE pv.pkg_id = pkg.pkg_id
17098
                  AND pkg.pkg_name = pkgname
17099
                  AND pv.pkg_version = pkgversion;
17100
            EXCEPTION
17101
               WHEN NO_DATA_FOUND
17102
               THEN
17103
                  raise_application_error
17104
                                  (-20000,
17105
                                      'Dependency ['
17106
                                   || pkgname
17107
                                   || ' '
17108
                                   || pkgversion
17109
                                   || '] does not exist yet and cannot be used!'
17110
                                  );
17111
            END;
17112
 
17113
            -- Get Build Type (i.e. BuildPackageArchive or LinkPackageArchive)
17114
            BEGIN
17115
               buildtype := cbuildtypes (pkgid || seperator || vext);
17116
 
17117
               IF buildtype IS NULL
17118
               THEN
17119
                  -- Set build type to LinkPackageArchive by default
17120
                  buildtype := 'L';
17121
               END IF;
17122
            EXCEPTION
17123
               WHEN NO_DATA_FOUND
17124
               THEN
17125
                  buildtype := 'L';
17126
            END;
17127
 
17128
            -- Insert Dependencies
17129
            update_package_dependency (pvid,
17130
                                       pkgname,
17131
                                       pkgversion,
17132
                                       buildtype,
17133
                                       userid,
17134
 
17135
                                      );
17136
         END LOOP;
17137
      END;
1373 dpurdie 17138
   END;
17139
 
17140
/*-------------------------------------------------------------------------------------------------------*/
6600 dpurdie 17141
-- Use:
17142
--   Used by the Automated Build System to release a new package
17143
-- Returns:
17144
--    Use application errors to indicate programming errors
17145
--    Use negative return codes to indicate correctable user problems
17146
--    Positive return code is the new PVID of the package
17147
  FUNCTION auto_make_vcsrelease2 (
17148
      rtagid                   IN   NUMBER,
17149
      pkgname                  IN   VARCHAR2,
17150
      vext                     IN   VARCHAR2,
17151
      newpkgversion            IN   VARCHAR2,
17152
      vcstag                   IN   VARCHAR2,
17153
      dependenciesimportlist   IN   relmgr_varchar2_tab_t,
17154
      isrippled                IN   NUMBER,
17155
      username                 IN   VARCHAR2
17156
   )
17157
      RETURN NUMBER
17158
   IS
17159
      pkgid                           NUMBER;
17160
      pvid                            NUMBER                        := 0;
17161
      userid                          NUMBER;
17162
      dlocked                         VARCHAR2 (20)                 := NULL;
17163
      clonefrompvid                   NUMBER;
17164
      ssv_mm                          package_versions.v_mm%TYPE;
17165
      ssv_nmm                         package_versions.v_nmm%TYPE;
17166
      ssv_ext                         package_versions.v_ext%TYPE;
17167
      return_package_not_found        NUMBER                        := -1;
17168
      return_package_already_exists   NUMBER                        := -2;
17169
      return_not_approved             NUMBER                        := -3;
17170
      return_migrated_pkg             NUMBER                        := -4;
17171
      return_svn_path_changed         NUMBER                        := -5;
17172
 
17173
 
17174
      x_vcstypeid                     NUMBER;
17175
      x_tag                           VARCHAR2(32);
17176
      x_label                         VARCHAR2(60);
17177
      x_srcpath                       VARCHAR2(2000);
17178
      p_srcpath                       VARCHAR2(2000);
17179
 
17180
      -- Regular expression constituents
17181
      Token         VARCHAR2(16) := '([^:]+)';  -- a token is anything except a ':' character
17182
      Seperator     VARCHAR2(4)  := '::';       -- tokens will be seperated by '::'
17183
      BOL           VARCHAR2(4)  := '^';
17184
      Anything      VARCHAR2(4)  := '.*';
17185
      ReplaceToken1 VARCHAR2(4)  := '\1';
17186
      ReplaceToken2 VARCHAR2(4)  := '\2';
17187
      ReplaceToken3 VARCHAR2(4)  := '\3';
17188
      iprev_modifier_id               NUMBER;
17189
 
17190
   BEGIN
17191
      /*--------------- Business Rules Here -------------------*/
17192
      IF (rtagid IS NULL)
17193
      THEN
17194
         raise_application_error (-20000, 'RtagId must be supplied.');
17195
      END IF;
17196
 
17197
      IF (pkgname IS NULL)
17198
      THEN
17199
         raise_application_error (-20000, 'PkgName must be supplied.');
17200
      END IF;
17201
 
17202
      IF (newpkgversion IS NULL)
17203
      THEN
17204
         raise_application_error (-20000, 'PkgVersion must be supplied.');
17205
      END IF;
17206
 
17207
      IF (vcstag IS NULL)
17208
      THEN
17209
         raise_application_error (-20000, 'PkgVcsTag must be supplied.');
17210
      END IF;
17211
 
17212
      IF (isrippled IS NULL) OR (isrippled < 0) OR (isrippled > 1)
17213
      THEN
17214
         raise_application_error (-20000, 'IsRippled must be set to 1 (Is rippled build) or 0 (Is planned build).');
17215
      END IF;
17216
 
17217
      IF (username IS NULL)
17218
      THEN
17219
         raise_application_error (-20000, 'UserName must be supplied.');
17220
      END IF;
17221
 
17222
      -- Parse the PkgVcsTag
17223
      -- Sets up
17224
      --   x_tag, x_label, x_srcpath
17225
 
17226
       BEGIN
17227
          -- Extract the first token - this will be the short tag name for the VCS (eg. 'CC', 'SVN', etc)
17228
          x_tag := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Anything, ReplaceToken1);
17229
 
17230
          -- Decode the short tag
17231
          CASE x_tag
17232
             WHEN 'CC' THEN
17233
                -- extract the 2nd and 3rd tokens, those being the source path and label respectively
17234
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
17235
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
17236
 
17237
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
17238
                -- check for that error as well as the obvious zero-length string conditions.
17239
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
17240
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
17241
                END IF;
17242
 
17243
                IF isSVNbyName(pkgname) > 0 THEN
17244
                    -- Don't allow migrated packages to be released from a CC label
17245
                    return return_migrated_pkg;
17246
                END IF;
17247
 
17248
 
17249
             WHEN 'SVN' THEN
17250
                -- extract the 2nd token, that being the subversion tag
17251
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
17252
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
17253
 
17254
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
17255
                -- check for that error as well as the obvious zero-length string conditions.
17256
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
17257
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
17258
                END IF;
17259
 
17260
             WHEN 'UC' THEN
17261
                -- nothing to extract, just assign defaults
17262
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
17263
                x_label   := 'N/A';
17264
             ELSE
17265
                raise_application_error (-20000, 'Unrecognised VCS Tag!');
17266
          END CASE;
17267
       END;
17268
 
17269
      -- Get the VCS_TYPE_ID for the version control system.
17270
      BEGIN
17271
         SELECT vt.vcs_type_id
17272
         INTO x_vcstypeid
17273
         FROM VCS_TYPE vt
17274
         WHERE vt.tag = x_tag;
17275
         EXCEPTION
17276
            WHEN NO_DATA_FOUND THEN
17277
               raise_application_error (-20000, 'Database is missing a version control system tag (' || x_tag || ')!' );
17278
      END;
17279
 
17280
 
17281
      -- Get user_id
17282
      BEGIN
17283
         SELECT usr.user_id
17284
           INTO userid
17285
           FROM users usr
17286
          WHERE UPPER (usr.user_name) = UPPER (username)
17287
            AND usr.is_disabled IS NULL;
17288
      EXCEPTION
17289
         WHEN NO_DATA_FOUND
17290
         THEN
17291
            raise_application_error (-20000, 'UserName: ' || username || ' is not valid or disabled.' );
17292
      END;
17293
 
17294
/*-------------------------------------------------------*/
17295
 
17296
      -- Create package if necessary
17297
      IF isrippled = 1
17298
      THEN
17299
         /* Ripple Build */
17300
         BEGIN
17301
            -- Make sure that package does not exist
17302
            SELECT pv.pv_id
17303
              INTO pvid
17304
              FROM package_versions pv, PACKAGES pkg
17305
             WHERE pv.pkg_id = pkg.pkg_id
17306
               AND pkg.pkg_name = pkgname
17307
               AND pv.pkg_version = newpkgversion;
17308
         EXCEPTION
17309
            WHEN NO_DATA_FOUND
17310
            THEN
17311
               pvid := 0;
17312
         END;
17313
 
17314
         IF (pvid = 0)
17315
         THEN
17316
            -- Split current version in parts
17317
            split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
17318
 
17319
            BEGIN
17320
               -- Find package to be replaced with the ripple package
17321
               IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
17322
               THEN
17323
                  SELECT pv.pv_id, pv.src_path
17324
                    INTO clonefrompvid, p_srcpath
17325
                    FROM PACKAGES pkg, package_versions pv,
17326
                         release_content rc
17327
                   WHERE rc.pv_id = pv.pv_id
17328
                     AND pv.pkg_id = pkg.pkg_id
17329
                     AND rc.rtag_id = rtagid
17330
                     AND pkg.pkg_name = pkgname
17331
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|');
17332
               ELSE
17333
                  SELECT pv.pv_id, pv.src_path
17334
                    INTO clonefrompvid, p_srcpath
17335
                    FROM PACKAGES pkg, package_versions pv,
17336
                         release_content rc
17337
                   WHERE rc.pv_id = pv.pv_id
17338
                     AND pv.pkg_id = pkg.pkg_id
17339
                     AND rc.rtag_id = rtagid
17340
                     AND pkg.pkg_name = pkgname
17341
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
17342
               END IF;
17343
            EXCEPTION
17344
               WHEN NO_DATA_FOUND
17345
               THEN
17346
                  raise_application_error
17347
                                        (-20000,
17348
                                            'Cannot get CloneFromPvId. VExt='
17349
                                         || vext
17350
                                         || ', RtagId='
17351
                                         || rtagid
17352
                                         || ', PkgName='
17353
                                         || pkgname
17354
                                         || ', SSV_EXT='
17355
                                         || ssv_ext
17356
                                        );
17357
            END;
17358
 
17359
            IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
17360
            THEN
17361
               -- Create package
17362
               seed_package_names_versions (pkgname,
17363
                                            newpkgversion,
17364
                                            userid,
17365
                                            pvid,
17366
                                            clonefrompvid
17367
                                           );
17368
            ELSE
17369
               -- Create package (now both the same)
17370
               seed_package_names_versions (pkgname,
17371
                                             newpkgversion,
17372
                                             userid,
17373
                                             pvid,
17374
                                             clonefrompvid
17375
                                            );
17376
            END IF;
17377
 
17378
            -- Update Package reason for release
17379
            UPDATE package_versions pv
17380
               SET pv.comments = 'Rippled Build.',
17381
                   pv.build_type = 'Y'
17382
             WHERE pv.pv_id = pvid;
17383
         ELSE
17384
            -- Package already exists, it was built previously, and has just been re-built again probably due to the
17385
            -- fact that the archive was cleaned of the original build artifacts at some point, and those artifacts
17386
            -- are now needed once more. As such, we need to ensure that a new release note generation occurs so
17387
            -- reset the package_versions[pvid].release_notes_info field to enable that to happen.
17388
            UPDATE package_versions pv
17389
               SET pv.release_notes_info = null,
17390
                   pv.modified_stamp = ora_sysdatetime
17391
             WHERE pv.pv_id = pvid;
17392
 
17393
            --DEVI-066151
17394
            log_action (pvid, 'package_rebuilt', userid, 'Package Re-built...');
17395
 
17396
            RETURN return_package_already_exists;
17397
         END IF;
17398
      ELSE
17399
         /* Auto build from Pending area */
17400
 
17401
         -- Find package in pending area
17402
         BEGIN
17403
            SELECT pv.pv_id, pv.dlocked, pv.src_path
17404
              INTO pvid, dlocked, p_srcpath
17405
              FROM planned pl, package_versions pv, PACKAGES pkg
17406
             WHERE pl.pv_id = pv.pv_id
17407
               AND pv.pkg_id = pkg.pkg_id
17408
               AND pl.rtag_id = rtagid
17409
               AND pkg.pkg_name = pkgname
17410
               AND pv.dlocked = 'A'
17411
               AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|')
17412
               AND rownum = 1
17413
             ORDER BY pv.modified_stamp;
17414
         EXCEPTION
17415
            WHEN NO_DATA_FOUND
17416
            THEN
17417
               pvid := 0;
17418
         END;
17419
 
17420
         IF (pvid = 0)
17421
         THEN
17422
            -- Package does not exist in pending area, hence report it
17423
            RETURN return_package_not_found;
17424
         ELSIF (dlocked != 'A')
17425
         THEN
17426
            -- Package is not approved for autobuild
17427
            RETURN return_not_approved;
17428
         END IF;
17429
 
17430
      END IF;
17431
 
17432
      -- Ensure Source Path does not change
17433
      -- Do not expect the SVN development branch to change
17434
      -- From the previous package
17435
      IF ( x_tag = 'SVN' AND p_srcpath != x_srcpath )
17436
      THEN
17437
        return return_svn_path_changed;
17438
      END IF;
17439
 
17440
      BEGIN
17441
         -- Import Dependencies
17442
         import_dependencies2 (pvid, dependenciesimportlist, userid);
17443
      END;
17444
 
17445
 
17446
      BEGIN
17447
         -- Split current version in parts
17448
         split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
17449
 
17450
         -- Update Package Details
17451
         UPDATE package_versions pv
17452
            SET pv.pkg_version = newpkgversion,
17453
                pv.v_ext = ssv_ext,
17454
                pv.v_mm = ssv_mm,
17455
                pv.v_nmm = ssv_nmm,
17456
                pv.src_path = x_srcpath,
17457
                pv.pkg_label = x_label,
17458
                pv.vcs_type_id = x_vcstypeid
17459
          WHERE pv.pv_id = pvid;
17460
      EXCEPTION
17461
         WHEN DUP_VAL_ON_INDEX
17462
         THEN
17463
            -- Package already exists, hence cannot be used for ripple build
17464
            RETURN return_package_already_exists;
17465
      END;
17466
 
7039 dpurdie 17467
      -- The package has been auto built, for the first time
6600 dpurdie 17468
 
17469
      -- DEVI-063601
17470
      -- For planned builds the modifier_id shouldn't be set to buildadm.
17471
      -- To ensure this the modifier_id is obtained so it can be restored after
17472
      -- the function pk_environment.auto_make_release is called.
17473
      -- This function calls, change_state, which sets the modifier_id to the
17474
      -- specified userid, which for auto builds is buildadm.
17475
      SELECT pv.modifier_id INTO iprev_modifier_id
17476
      FROM package_versions pv WHERE pv.pv_id = pvid;
17477
 
17478
      -- Now release package
17479
      pk_environment.auto_make_release (pvid,
17480
                                        rtagid,
17481
                                        userid,
17482
                                        vext,
17483
                                        ssv_ext,
17484
                                        clonefrompvid
17485
                                       );
17486
 
7039 dpurdie 17487
      -- DEVI-063601 if it is a planned build then restore the modifier_id to the previous modifier
17488
      -- Set the package as autobuildable ( auto built )
17489
      -- Update the created timestamp to the current date-time. When it was first released
17490
      UPDATE package_versions pv SET 
17491
        pv.modifier_id = iprev_modifier_id,
17492
        is_autobuildable = 'Y',
17493
        pv.created_stamp = ora_sysdatetime
6600 dpurdie 17494
      WHERE pv.pv_id = pvid;
17495
 
17496
      --Now clean the PLANNED_VERSIONS table
17497
      SELECT pkg_id
17498
        INTO pkgid
17499
        FROM PACKAGES
17500
       WHERE pkg_name = pkgname;
17501
 
17502
      DELETE FROM planned_versions
17503
            WHERE pkg_id = pkgid AND pkg_version = newpkgversion;
17504
 
17505
      RETURN pvid;
17506
   END;
17507
 
17508
/*-------------------------------------------------------------------------------------------------------*/
17509
--  import package dependencies (2nd attenpt)
17510
--  Package dependencies are an array of strings. Each string is of the form
17511
--    'PkgName','PkgVersion','PkgType'
17512
--  The use of an array of package dependencies allows packages with very long
17513
--  list of dependencies. More than can be put in to a VARCHAR2
17514
--
17515
   PROCEDURE import_dependencies2 (
17516
      pvid                     IN   NUMBER,
17517
      dependenciesimportlist   IN   relmgr_varchar2_tab_t,
17518
      userid                   IN   NUMBER
17519
   )
17520
   IS
17521
 
17522
      TYPE tdictionary IS TABLE OF VARCHAR2 (4000) INDEX BY VARCHAR2 (4000);
17523
 
17524
      seperator         VARCHAR2 (2)           := '||';
17525
      pkgname           VARCHAR2 (4000);
17526
      pkgversion        VARCHAR2 (4000);
17527
      pkgtype           VARCHAR2  (50);
17528
      pkgid             NUMBER;
17529
      vext              VARCHAR2 (4000);
17530
      dpvid             NUMBER;
17531
      cbuildtypes       tdictionary;
17532
      dependencyrow     NUMBER;
17533
      sdependency       VARCHAR2 (4000);
17534
      citemcollection   relmgr_varchar2_tab_t;
17535
 
17536
      CURSOR curbuildtype
17537
      IS
17538
         SELECT dpv.pkg_id || seperator || dpv.v_ext AS pkgid_ext,
17539
                dep.build_type
17540
           FROM package_dependencies dep, package_versions dpv
17541
          WHERE dep.pv_id = pvid AND dep.dpv_id = dpv.pv_id;
17542
 
17543
      recbuildtype      curbuildtype%ROWTYPE;
17544
   BEGIN
17545
      -- Get Current Dependencies
17546
      OPEN curbuildtype;
17547
 
17548
      FETCH curbuildtype
17549
       INTO recbuildtype;
17550
 
17551
      WHILE curbuildtype%FOUND
17552
      LOOP
17553
         cbuildtypes (recbuildtype.pkgid_ext) := recbuildtype.build_type;
17554
         FETCH curbuildtype INTO recbuildtype;
17555
      END LOOP;
17556
 
17557
      CLOSE curbuildtype;
17558
 
17559
      BEGIN
17560
         -- Remove old dependencies
17561
         DELETE FROM package_dependencies dep
17562
               WHERE dep.pv_id = pvid;
17563
 
17564
         -- Loop through dependencies
17565
         FOR dependencyrow IN 1 .. dependenciesimportlist.COUNT
17566
         LOOP
17567
            -- Extract pkg_name and pkg_version and type(optional)
17568
            sdependency := dependenciesimportlist (dependencyrow);
17569
            sdependency := REPLACE(sdependency, '''');
17570
            sdependency := REPLACE(sdependency, '"');
17571
            -- Remove empty dependency
17572
            IF LENGTH(sdependency) > 0 THEN
17573
              citemcollection := in_list_varchar2 (sdependency, ',');
17574
              IF citemcollection.COUNT  < 2
17575
              THEN
17576
                raise_application_error
17577
                  (-20000,
17578
                      'Dependency ['
17579
                   || sdependency
17580
                   || '] must have at least two ; separated fields!'
17581
                  );
17582
              END IF;
17583
              pkgname := citemcollection(1);
17584
              pkgversion := citemcollection(2);
17585
              IF citemcollection.COUNT >= 3
17586
              THEN
17587
                pkgtype := citemcollection(3);
17588
              ELSE
17589
                pkgtype := NULL;
17590
              END IF;
17591
              -- Dependency must exits to be linked against
17592
              BEGIN
17593
                 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
17594
                   INTO dpvid, pkgid, vext
17595
                   FROM package_versions pv, PACKAGES pkg
17596
                  WHERE pv.pkg_id = pkg.pkg_id
17597
                    AND pkg.pkg_name = pkgname
17598
                    AND pv.pkg_version = pkgversion;
17599
              EXCEPTION
17600
                 WHEN NO_DATA_FOUND
17601
                 THEN
17602
                    raise_application_error
17603
                                    (-20000,
17604
                                        'Dependency ['
17605
                                     || pkgname
17606
                                     || ' '
17607
                                     || pkgversion
17608
                                     || '] does not exist yet and cannot be used!'
17609
                                    );
17610
              END;
17611
 
17612
              -- Get Build Type (i.e. BuildPackageArchive or LinkPackageArchive)
17613
              IF pkgtype IS NULL
17614
              THEN
17615
                BEGIN
17616
                   pkgtype := cbuildtypes (pkgid || seperator || vext);
17617
 
17618
                   IF pkgtype IS NULL
17619
                   THEN
17620
                      -- Set build type to LinkPackageArchive by default
17621
                      pkgtype := 'L';
17622
                   END IF;
17623
                EXCEPTION
17624
                   WHEN NO_DATA_FOUND
17625
                   THEN
17626
                      pkgtype := 'L';
17627
                END;
17628
              END IF;
17629
 
17630
              -- Limit to known types
17631
              IF UPPER(pkgtype) like('B%') THEN
17632
                pkgtype := 'B';
17633
              ELSE
17634
                pkgtype := 'L';
17635
              END IF;  
17636
 
17637
              -- Insert Dependencies
17638
              update_package_dependency (pvid,
17639
                                         pkgname,
17640
                                         pkgversion,
17641
                                         pkgtype,
17642
                                         userid,
17643
 
17644
                                        );
17645
            END IF;
17646
         END LOOP;
17647
      END;
17648
   END;
17649
 
17650
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 17651
   FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)
17652
      RETURN VARCHAR2
1373 dpurdie 17653
   IS
3959 dpurdie 17654
      pkgversion   VARCHAR2 (4000);
1373 dpurdie 17655
   BEGIN
3959 dpurdie 17656
      BEGIN
17657
         SELECT pv.pkg_version
17658
           INTO pkgversion
17659
           FROM PACKAGES pkg, release_content rc, package_versions pv
17660
          WHERE pv.pv_id = rc.pv_id
17661
            AND pkg.pkg_id = pv.pkg_id
17662
            AND pkg.pkg_name = pkgname
17663
            AND rc.rtag_id = rtagid;
17664
 
17665
         RETURN pkgversion;
17666
      END;
1373 dpurdie 17667
   END;
17668
 
17669
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 17670
   FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)
17671
      RETURN VARCHAR2
1373 dpurdie 17672
   IS
3959 dpurdie 17673
      pkgversion   VARCHAR2 (4000);
1373 dpurdie 17674
   BEGIN
3959 dpurdie 17675
      BEGIN
17676
         SELECT pv.pkg_version
17677
           INTO pkgversion
17678
           FROM PACKAGES pkg, work_in_progress wip, package_versions pv
17679
          WHERE pv.pv_id = wip.pv_id
17680
            AND pkg.pkg_id = pv.pkg_id
17681
            AND pkg.pkg_name = pkgname
17682
            AND wip.rtag_id = rtagid;
1373 dpurdie 17683
 
3959 dpurdie 17684
         IF pkgversion IS NULL
17685
         THEN
17686
            SELECT pv.pkg_version
17687
              INTO pkgversion
17688
              FROM PACKAGES pkg, planned pl, package_versions pv
17689
             WHERE pv.pv_id = pl.pv_id
17690
               AND pkg.pkg_id = pv.pkg_id
17691
               AND pkg.pkg_name = pkgname
17692
               AND pl.rtag_id = rtagid;
17693
         END IF;
17694
 
17695
         RETURN pkgversion;
17696
      END;
1373 dpurdie 17697
   END;
17698
 
17699
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 17700
   PROCEDURE update_dash_board (rtagid IN NUMBER)
1373 dpurdie 17701
   IS
3959 dpurdie 17702
      projid       NUMBER;
17703
      projiddb     NUMBER;
17704
      total        NUMBER;
17705
      auto_total   NUMBER;
17706
      rtagiddb     NUMBER;
1373 dpurdie 17707
   BEGIN
3959 dpurdie 17708
      SELECT COUNT (*)
17709
        INTO total
17710
        FROM release_content rc, package_versions pv
17711
       WHERE pv.pv_id = rc.pv_id AND rc.rtag_id = rtagid;
1373 dpurdie 17712
 
3959 dpurdie 17713
      SELECT COUNT (*)
17714
        INTO auto_total
17715
        FROM release_content rc, package_versions pv
17716
       WHERE pv.pv_id = rc.pv_id
17717
         AND pv.is_autobuildable = 'Y'
17718
         AND rc.rtag_id = rtagid;
17719
 
17720
      BEGIN
17721
         SELECT rtag_id
17722
           INTO rtagiddb
17723
           FROM dash_board
17724
          WHERE rtag_id = rtagid;
17725
 
17726
         SELECT proj_id
17727
           INTO projiddb
17728
           FROM dash_board
17729
          WHERE rtag_id = rtagid;
17730
      EXCEPTION
17731
         WHEN NO_DATA_FOUND
17732
         THEN
17733
            rtagiddb := '';
17734
      END;
17735
 
17736
      IF rtagiddb IS NULL
1373 dpurdie 17737
      THEN
3959 dpurdie 17738
         SELECT proj_id
17739
           INTO projid
17740
           FROM release_tags
17741
          WHERE rtag_id = rtagid;
17742
 
17743
         INSERT INTO dash_board
17744
                     (proj_id, rtag_id, last_build_time, automated_packages,
17745
                      total_packages
17746
                     )
17747
              VALUES (projid, rtagid, ora_sysdatetime, auto_total,
17748
                      total
17749
                     );
17750
      ELSE
17751
         UPDATE dash_board
17752
            SET last_build_time = ora_sysdatetime,
17753
                automated_packages = auto_total,
17754
                total_packages = total
17755
          WHERE proj_id = projiddb AND rtag_id = rtagiddb;
1373 dpurdie 17756
      END IF;
17757
   END;
17758
 
17759
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 17760
   FUNCTION exclude_from_build (
17761
      pvid          IN   NUMBER,
17762
      spkgversion   IN   VARCHAR2,
17763
      rtagid        IN   NUMBER,
17764
      username      IN   VARCHAR2
1373 dpurdie 17765
   )
3959 dpurdie 17766
      RETURN NUMBER
1373 dpurdie 17767
   IS
3959 dpurdie 17768
      userid              NUMBER;
17769
      outerrcode          NUMBER;
17770
      pkgid               NUMBER;
17771
 
17772
      CURSOR dnr_duplicate_cur
17773
      IS
17774
         SELECT *
17775
           FROM do_not_ripple
17776
          WHERE pv_id = pvid AND rtag_id = rtagid;
17777
 
17778
      dnr_duplicate_rec   dnr_duplicate_cur%ROWTYPE;
1373 dpurdie 17779
   BEGIN
3959 dpurdie 17780
      outerrcode := -1;       -- Set default return error code to ERROR state
17781
 
17782
      /*--------------- Business Rules Here -------------------*/
17783
      IF (rtagid IS NULL)
1373 dpurdie 17784
      THEN
3959 dpurdie 17785
         RETURN outerrcode;
17786
--         raise_application_error (-20000, 'RtagId must be supplied.');
17787
      END IF;
17788
 
17789
      IF (pvid IS NULL)
1373 dpurdie 17790
      THEN
3959 dpurdie 17791
         RETURN outerrcode;
17792
--         raise_application_error (-20000, 'PvId must be supplied.');
17793
      END IF;
17794
 
17795
      IF (username IS NULL)
1373 dpurdie 17796
      THEN
3959 dpurdie 17797
         RETURN outerrcode;
17798
--         raise_application_error (-20000, 'UserName must be supplied.');
17799
      END IF;
17800
 
17801
      -- Get user_id
17802
      BEGIN
17803
         SELECT usr.user_id
17804
           INTO userid
17805
           FROM users usr
17806
          WHERE UPPER (usr.user_name) = UPPER (username)
17807
            AND usr.is_disabled IS NULL;
17808
      EXCEPTION
17809
         WHEN NO_DATA_FOUND
17810
         THEN
17811
            RETURN outerrcode;
17812
--            raise_application_error (-20000,
17813
--                                        'UserName '
17814
--                                     || username
17815
--                                     || ' is not valid or disabled.'
17816
--                                    );
17817
      END;
17818
 
17819
      OPEN dnr_duplicate_cur;
17820
 
17821
      FETCH dnr_duplicate_cur
17822
       INTO dnr_duplicate_rec;
17823
 
17824
      IF dnr_duplicate_cur%FOUND
1373 dpurdie 17825
      THEN
3959 dpurdie 17826
         outerrcode := 0;
1373 dpurdie 17827
      END IF;
3959 dpurdie 17828
 
17829
      IF dnr_duplicate_cur%NOTFOUND
17830
      THEN
17831
         /* No duplicate recordset */
17832
         unripple_package (pvid, rtagid, userid);
17833
         outerrcode := 0;                            -- Set return to SUCCESS
17834
      END IF;
17835
 
17836
      CLOSE dnr_duplicate_cur;
17837
 
17838
      SELECT pkg_id
17839
        INTO pkgid
17840
        FROM package_versions
17841
       WHERE pv_id = pvid;
17842
 
17843
      DELETE FROM planned_versions
17844
            WHERE pkg_id = pkgid AND pkg_version = spkgversion;
17845
 
17846
      RETURN outerrcode;
1373 dpurdie 17847
   END;
17848
 
17849
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 17850
   FUNCTION exclude_indirect_from_build (
17851
      pvid          IN   NUMBER,
17852
      spkgversion   IN   VARCHAR2,
17853
      rtagid        IN   NUMBER,
17854
      username      IN   VARCHAR2,
17855
      rootpvid      IN   NUMBER,
17856
      rootcause     IN   VARCHAR2,
17857
      rootfile      IN   VARCHAR2
1373 dpurdie 17858
   )
3959 dpurdie 17859
      RETURN NUMBER
1373 dpurdie 17860
   IS
3959 dpurdie 17861
      userid              NUMBER;
17862
      outerrcode          NUMBER;
17863
      pkgid               NUMBER;
17864
 
17865
      CURSOR dnr_duplicate_cur
17866
      IS
17867
         SELECT *
17868
           FROM do_not_ripple
17869
          WHERE pv_id = pvid AND rtag_id = rtagid;
17870
 
17871
      dnr_duplicate_rec   dnr_duplicate_cur%ROWTYPE;
1373 dpurdie 17872
   BEGIN
3959 dpurdie 17873
      outerrcode := -1;       -- Set default return error code to ERROR state
17874
 
17875
      /*--------------- Business Rules Here -------------------*/
17876
      IF (rtagid IS NULL)
1373 dpurdie 17877
      THEN
3959 dpurdie 17878
         RETURN outerrcode;
17879
--         raise_application_error (-20000, 'RtagId must be supplied.');
17880
      END IF;
17881
 
17882
      IF (pvid IS NULL)
1373 dpurdie 17883
      THEN
3959 dpurdie 17884
         RETURN outerrcode;
17885
--         raise_application_error (-20000, 'PvId must be supplied.');
17886
      END IF;
17887
 
17888
      IF (username IS NULL)
1373 dpurdie 17889
      THEN
3959 dpurdie 17890
         RETURN outerrcode;
17891
--         raise_application_error (-20000, 'UserName must be supplied.');
1373 dpurdie 17892
      END IF;
3959 dpurdie 17893
 
17894
      -- Get user_id
17895
      BEGIN
17896
         SELECT usr.user_id
17897
           INTO userid
17898
           FROM users usr
17899
          WHERE UPPER (usr.user_name) = UPPER (username)
17900
            AND usr.is_disabled IS NULL;
17901
      EXCEPTION
17902
         WHEN NO_DATA_FOUND
17903
         THEN
17904
            RETURN outerrcode;
17905
--            raise_application_error (-20000,
17906
--                                        'UserName '
17907
--                                     || username
17908
--                                     || ' is not valid or disabled.'
17909
--                                    );
17910
      END;
17911
 
17912
     /* No duplicate recordset */
17913
     unripple_package_indirect (pvid, rtagid, userid, rootpvid, rootcause, rootfile);
17914
     outerrcode := 0;                            -- Set return to SUCCESS
17915
 
17916
      SELECT pkg_id
17917
        INTO pkgid
17918
        FROM package_versions
17919
       WHERE pv_id = pvid;
17920
 
17921
      DELETE FROM planned_versions
17922
            WHERE pkg_id = pkgid AND pkg_version = spkgversion;
17923
 
17924
      RETURN outerrcode;
1373 dpurdie 17925
   END;
17926
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 17927
   PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2)
1373 dpurdie 17928
   IS
17929
   BEGIN
3959 dpurdie 17930
      INSERT INTO abt_action_log
17931
                  (rcon_id, action_datetime, action
17932
                  )
17933
           VALUES (rconid, ora_sysdatetime, action
17934
                  );
1373 dpurdie 17935
   END;
17936
 
17937
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 17938
   FUNCTION insert_package_metrics (
17939
      rtagid                   IN   NUMBER,
17940
      pkgname                  IN   VARCHAR2,
17941
      vext                     IN   VARCHAR2,
17942
      metricstring             IN   VARCHAR2
1373 dpurdie 17943
   )
3959 dpurdie 17944
      RETURN NUMBER
1373 dpurdie 17945
   IS
3959 dpurdie 17946
      citemcollection          relmgr_varchar2_tab_t  := relmgr_varchar2_tab_t ();
17947
      lv_pvid                  NUMBER                 := 0;
17948
      rownumber                NUMBER;
17949
      rowcontent               VARCHAR2(4000);
17950
      metricname               VARCHAR2(1000);
17951
      metricvalue              VARCHAR2(4000);
17952
      return_insert_error      NUMBER                 := -1;
17953
      return_insert_success    NUMBER                 := 0;
17954
 
17955
      /* Metrics */
17956
      lv_branches                 NUMBER;
17957
      lv_branchlist               VARCHAR2(4000);
17958
      lv_codefiles                NUMBER;
17959
      lv_ignoredfiles             NUMBER;
17960
      lv_directories              NUMBER;
17961
      lv_directorydepth           NUMBER;
17962
      lv_totalfiles               NUMBER;
17963
      lv_makefiles                NUMBER;
17964
      lv_blanklines               NUMBER;
17965
      lv_codelines                NUMBER;
17966
      lv_commentlines             NUMBER;
17967
 
1373 dpurdie 17968
   BEGIN
3959 dpurdie 17969
      /*--------------- Business Rules Here -------------------*/
17970
      IF (rtagid IS NULL)
17971
      THEN
17972
         RETURN return_insert_error;
17973
      END IF;
1373 dpurdie 17974
 
3959 dpurdie 17975
      IF (pkgname IS NULL)
17976
      THEN
17977
         RETURN return_insert_error;
17978
      END IF;
17979
 
17980
      IF (metricstring IS NULL)
17981
      THEN
17982
         RETURN return_insert_error;
17983
      END IF;
17984
 
17985
      BEGIN
17986
         SELECT pv.pv_id
17987
           INTO lv_pvid
17988
           FROM package_versions pv, packages pkg, release_content rc
17989
          WHERE pv.pkg_id = pkg.pkg_id
17990
            AND rc.rtag_id = rtagid
17991
            AND pv.pv_id = rc.pv_id
17992
            AND pkg.pkg_name = pkgname
17993
            AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
17994
      EXCEPTION
17995
           WHEN NO_DATA_FOUND
17996
           THEN
17997
                lv_pvid := 0;
17998
      END;
17999
 
18000
      citemcollection := in_list_varchar2 (metricstring, ';');
18001
 
18002
      FOR rownumber IN 1 .. citemcollection.COUNT
18003
      LOOP
18004
         rowcontent := citemcollection(rownumber);
18005
         metricvalue := SUBSTR(rowcontent, (INSTR(rowcontent, '=') + 1));
18006
         metricname := REGEXP_REPLACE(rowcontent, '=.*$', '');
18007
 
18008
         IF    metricname = 'ccbranch.count' THEN lv_branches := metricvalue;
18009
         ELSIF metricname = 'ccbranch.list' THEN lv_branchlist := metricvalue;
18010
         ELSIF metricname = 'code.files' THEN lv_codefiles := metricvalue;
18011
         ELSIF metricname = 'code.ignored' THEN lv_ignoredfiles := metricvalue;
18012
         ELSIF metricname = 'count.dir' THEN lv_directories := metricvalue;
18013
         ELSIF metricname = 'count.dirdepth' THEN lv_directorydepth := metricvalue;
18014
         ELSIF metricname = 'count.file' THEN lv_totalfiles := metricvalue;
18015
         ELSIF metricname = 'count.makefile' THEN lv_makefiles := metricvalue;
18016
         ELSIF metricname = 'lines.blank' THEN lv_blanklines := metricvalue;
18017
         ELSIF metricname = 'lines.code' THEN lv_codelines := metricvalue;
18018
         ELSIF metricname = 'lines.comment' THEN lv_commentlines := metricvalue;
18019
         END IF;
18020
      END LOOP;
18021
 
18022
      IF (lv_pvid > 0)
18023
      THEN
18024
         -- Delete any existing entries for this package version to makes sure our data is untainted
18025
         DELETE FROM package_metrics pm
18026
         WHERE pm.pv_id = lv_pvid;
18027
 
18028
         -- Insert the new data into the metrics table
18029
         INSERT INTO package_metrics
18030
                     (pv_id, branches, branch_list, code_files, ignored_files, directories, directory_depth,
18031
                      total_files, makefiles, blank_lines, code_lines, comment_lines, created_stamp
18032
                     )
18033
              VALUES (lv_pvid, lv_branches, lv_branchlist, lv_codefiles, lv_ignoredfiles, lv_directories, lv_directorydepth,
18034
                      lv_totalfiles, lv_makefiles, lv_blanklines, lv_codelines, lv_commentlines, ora_sysdatetime
18035
                     );
18036
 
18037
         -- Now update the Release_Metrics Table
18038
         update_release_metrics(rtagid);
18039
 
18040
         RETURN return_insert_success;
18041
      ELSE
18042
         RETURN return_insert_error;
18043
      END IF;
1373 dpurdie 18044
   END;
18045
 
18046
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 18047
   PROCEDURE update_release_metrics (rtagid IN NUMBER)
1373 dpurdie 18048
   IS
3959 dpurdie 18049
      lv_totalpackages       NUMBER;
18050
      lv_autobuilt           NUMBER;
18051
      lv_linesofcode         NUMBER;
18052
      lv_unittested          NUMBER;
18053
      lv_autotested          NUMBER;
18054
      lv_numOfbranches       NUMBER;
18055
      lv_lastbuildtime       DATE;
1373 dpurdie 18056
   BEGIN
3959 dpurdie 18057
      IF (rtagid > 0)
18058
      THEN
18059
         -- Get the total number of packages in this release and the number of
18060
         -- those that are autobuilt
18061
         SELECT COUNT (DISTINCT rc.pv_id),
18062
                COUNT (DISTINCT autobuilt_qry.pv_id)
18063
           INTO lv_totalpackages, lv_autobuilt
18064
           FROM release_content rc,
18065
                package_versions pv,
18066
                (
18067
                 SELECT rc.pv_id
18068
                   FROM release_content rc,
18069
                        package_versions pv
18070
                  WHERE pv.is_autobuildable = 'Y'
18071
                    AND pv.pv_id = rc.pv_id
18072
                    AND rc.rtag_id = rtagid
18073
                ) autobuilt_qry
18074
          WHERE pv.pv_id = rc.pv_id
18075
            AND rc.rtag_id = rtagid
18076
            AND autobuilt_qry.pv_id (+) = rc.pv_id;
1373 dpurdie 18077
 
3959 dpurdie 18078
         -- Get the build time of the last package built in this release and the
18079
         -- total number of lines of code
18080
         SELECT MAX(pm.created_stamp),
18081
                SUM(pm.code_lines)
18082
           INTO lv_lastbuildtime, lv_linesofcode
18083
           FROM package_metrics pm, release_content rc
18084
          WHERE pm.pv_id = rc.pv_id
18085
            AND rc.rtag_id = rtagid;
18086
 
18087
         -- Get the number of packages with unit tests in this release and the
18088
         -- number of those that are autotested
18089
         SELECT COUNT(DISTINCT ut.pv_id) INTO lv_unittested
18090
           FROM unit_tests ut,
18091
                release_content rc
18092
          WHERE ut.pv_id = rc.pv_id
18093
            AND rc.rtag_id = rtagid
18094
        AND ut.test_types_fk != 1;
18095
 
18096
        SELECT COUNT(DISTINCT ut.pv_id) INTO lv_autotested
18097
          FROM unit_tests ut,
18098
               release_content rc
18099
         WHERE ut.pv_id = rc.pv_id
18100
           AND rc.rtag_id = rtagid
18101
           AND ut.test_types_fk = 7;
18102
 
18103
 
18104
         -- Count the number of unique branches in the packages in this release.
18105
--         SELECT COUNT(DISTINCT branch) INTO lv_numOfbranches
18106
--           FROM (
18107
--                SELECT pv_id,
18108
--                       regexp_substr(str, '[^,]+', 1, level) branch,
18109
--                       level lv,
18110
--                       lag(level, 1, 0) over (partition by pv_id order by level) lg
18111
--                  FROM (
18112
--                       SELECT pm.pv_id,
18113
--                              ','||pm.branch_list str
18114
--                         FROM package_metrics pm,
18115
--                              release_content rc
18116
--                        WHERE pm.pv_id = rc.pv_id
18117
--                          AND rc.rtag_id = rtagid
18118
--                       )
18119
--                CONNECT BY regexp_substr(str, '[^,]+', 1, LEVEL) IS NOT NULL
18120
--                )
18121
--          WHERE lv != lg;
18122
 
18123
         UPDATE release_metrics rm
18124
            SET rm.total_packages = lv_totalpackages,
18125
                rm.autobuilt = lv_autobuilt,
18126
                rm.lines_of_code = lv_linesofcode,
18127
                rm.unit_tested = lv_unittested,
18128
                rm.autotested = lv_autotested,
18129
--                rm.branches = lv_numOfbranches,
18130
                rm.last_build_time = lv_lastbuildtime
18131
          WHERE rtag_id = rtagid;
18132
 
18133
         IF (SQL%ROWCOUNT = 0)
18134
         THEN
18135
            INSERT INTO release_metrics
18136
                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
18137
                         autotested, last_build_time
18138
                        )
18139
                 VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,
18140
                         lv_autotested, lv_lastbuildtime
18141
                        );
18142
         END IF;
18143
--         IF (SQL%ROWCOUNT = 0)
18144
--         THEN
18145
--            INSERT INTO release_metrics
18146
--                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
18147
--                         autotested, branches, last_build_time
18148
--                        )
18149
--                 VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,
18150
--                         lv_autotested, lv_numOfbranches, lv_lastbuildtime
18151
--                        );
18152
--         END IF;
18153
--      ELSE
18154
--         raise_application_error (-20000, 'RtagId must be supplied.');
18155
      END IF;
1373 dpurdie 18156
   END;
18157
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 18158
   FUNCTION return_vcs_tag(pvid IN NUMBER) RETURN VARCHAR2
1373 dpurdie 18159
   IS
3959 dpurdie 18160
      vcstypeid    NUMBER;
18161
      vcstag       VARCHAR2(32);
18162
      label        VARCHAR2(60);
18163
      srcpath      VARCHAR2(2000);
18164
      vcstypeid_cc NUMBER;
18165
      vcstypeid_uc NUMBER;
1373 dpurdie 18166
   BEGIN
3959 dpurdie 18167
      -- Get the VCS_TYPE_ID for the ClearCase version control system. We do this so that we make no assumptions about
18168
      -- what the primary key value is for the ClearCase VCS entry.
18169
      BEGIN
18170
         SELECT vt.vcs_type_id
18171
         INTO vcstypeid_cc
18172
         FROM VCS_TYPE vt
18173
         WHERE vt.tag = 'CC';
18174
         EXCEPTION
18175
            WHEN NO_DATA_FOUND THEN
18176
               raise_application_error (-20000, 'Database is missing compulsory CC version control system tag!');
18177
      END;
1373 dpurdie 18178
 
3959 dpurdie 18179
      -- Get the VCS_TYPE_ID for the Uncontrolled version control system. We do this so that we make no assumptions about
18180
      -- what the primary key value is for the Uncontrolled VCS entry.
18181
      BEGIN
18182
         SELECT vt.vcs_type_id
18183
         INTO vcstypeid_uc
18184
         FROM VCS_TYPE vt
18185
         WHERE vt.tag = 'UC';
18186
         EXCEPTION
18187
            WHEN NO_DATA_FOUND THEN
18188
               raise_application_error (-20000, 'Database is missing compulsory UC version control system tag!');
18189
      END;
18190
 
18191
      -- Get the PKG_LABEL, SRC_PATH, VCS_TYPE_ID for the package version
18192
      -- As additional VCS types are introduced, we may have to extend what this SELECT statement returns
18193
      BEGIN
18194
         SELECT pv.pkg_label, pv.src_path,
18195
           (CASE WHEN pv.pkg_label = 'N/A' AND pv.vcs_type_id IS NULL THEN vcstypeid_uc
18196
                 WHEN pv.vcs_type_id IS NULL THEN vcstypeid_cc
18197
                 ELSE pv.vcs_type_id END) AS vcs_type_id
18198
         INTO label, srcpath, vcstypeid
18199
         FROM PACKAGE_VERSIONS pv
18200
         WHERE pv.pv_id = pvid;
18201
         EXCEPTION
18202
            WHEN NO_DATA_FOUND THEN
18203
               raise_application_error (-20000, 'Package Version Not Found!');
18204
      END;
18205
 
18206
      -- Get the VCS TAG for the VCS_TYPE_ID.
18207
      BEGIN
18208
         SELECT vt.tag
18209
         INTO vcstag
18210
         FROM VCS_TYPE vt
18211
         WHERE vt.vcs_type_id = vcstypeid;
18212
         EXCEPTION
18213
            WHEN NO_DATA_FOUND THEN
18214
               raise_application_error (-20000, 'Could not get VCS Tag for the package version!');
18215
      END;
18216
 
18217
      -- Return value depending upon which VCS Tag is being used.
18218
      -- As additional VCS types are introduced, we have to add additional WHEN clauses
18219
      CASE vcstag
18220
         WHEN 'CC' THEN
18221
            RETURN vcstag || '::' || srcpath || '::' || label;
18222
         WHEN 'SVN' THEN
18223
            RETURN vcstag || '::' || srcpath || '::' || label;
18224
         ELSE
18225
            RETURN vcstag || '::';
18226
      END CASE;
18227
 
1373 dpurdie 18228
   END;
3959 dpurdie 18229
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 18230
 
3959 dpurdie 18231
/*-------------------------------------------------------------------------------------------------------
18232
Name:        update_vcs_details
18233
Description: Updates the Version Control System (vcs) details specified in the vcstag
18234
             parameter for the specified package version.
18235
             The specified package vcstag is parsed and split into 3 fields:
18236
                vcs type, src path, label
18237
             These fields are then stored for the specified pv_id in the package_versions, table.
18238
             An action is recorded in the action log and provides information for tracking and
18239
             for restoring the previous vcs settings if a recovery is required.
18240
Paramters:
18241
             ipv_id:     Package version identifier
18242
             vcstag:     Full version control tag.
18243
                         Examples:
18244
                             "SVN::AUPERASVN01/DPG_SWBase/tools/trunk::daf_tools_25.1.7027.cr@1234"
18245
                            "CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr"
18246
             user_id:    Identifier of the user that is performing this function.
18247
*/
18248
PROCEDURE update_vcs_details(ipv_id IN NUMBER, vcstag IN VARCHAR2, user_id IN NUMBER)
1373 dpurdie 18249
   IS
3959 dpurdie 18250
      ivcs_type_id   NUMBER;
18251
      svcs_type      VARCHAR2(128);
18252
      ssrc_path      VARCHAR2(512);
18253
      spkg_label     VARCHAR2(512);
18254
      spattern       VARCHAR2(64);
18255
      saction_desc   VARCHAR2(2048);
18256
      old_vcs_type   VARCHAR2(128);
18257
      old_src_path   VARCHAR2(512);
18258
      old_pkg_label  VARCHAR2(512);
18259
      old_pkg_vcstag VARCHAR2(1024);
18260
      i              NUMBER;
18261
      vcount         NUMBER;
1373 dpurdie 18262
   BEGIN
3959 dpurdie 18263
     -- Split vcs tag into fields: vcs type, src path, label
18264
     -- Fields are separated by '::'
18265
     -- e.g "CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr"
18266
     -- The below regular expression pattern has groups to achieve this.
1373 dpurdie 18267
 
3959 dpurdie 18268
     spattern:= '^([^:]*)::([^:]*)(::(.*))?$';
18269
 
18270
     --As Oracle 10g does not allow REGEXP_SUBSTR to return a group,
18271
     --REGEXP_REPLACE is used instead (Note: Oracle 11g has this enhancement).
18272
     SELECT REGEXP_REPLACE(vcstag,spattern, '\1') INTO svcs_type  FROM DUAL;
18273
     SELECT REGEXP_REPLACE(vcstag,spattern, '\2') INTO ssrc_path  FROM DUAL;
18274
     SELECT REGEXP_REPLACE(vcstag,spattern, '\4') INTO spkg_label FROM DUAL;
18275
 
18276
     -- Validate vcs type
18277
     BEGIN
18278
       SELECT vc.vcs_type_id INTO ivcs_type_id FROM vcs_type vc WHERE UPPER(svcs_type) = UPPER(vc.tag);
18279
     EXCEPTION
18280
       WHEN NO_DATA_FOUND THEN
18281
         raise_application_error (-20000, 'Invalid vcs type: ' || '"' || svcs_type || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
18282
       --RAISE;
18283
     END;
18284
 
18285
     -- If Clearcase
18286
     IF (ivcs_type_id = 2) THEN
18287
       -- Validate source path
18288
       IF NOT REGEXP_LIKE(ssrc_path,'^(\\|\/)[a-z]+[0-9a-z_\.\-\\\/ -]*$','i') THEN
18289
         raise_application_error (-20000, 'Invalid CC src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
18290
       END IF;
18291
 
18292
       -- Validate label
18293
       -- For clearcase the label must be specified. For subversion it is not required.
18294
       IF NOT REGEXP_LIKE(spkg_label,'^[0-9a-z_\.\-]+$','i') THEN
18295
         raise_application_error (-20000, 'Invalid CC label:' || '"' || spkg_label || '"' || ' for package version:' || ipv_id || ', vcstag:' || '"' || vcstag || '"');
18296
       END IF;
18297
 
18298
     -- if Subversion
18299
     ELSIF (ivcs_type_id = 23) THEN
18300
       -- general validity
18301
       -- Not as picky as the RM Data entry
18302
       IF NOT REGEXP_LIKE(ssrc_path,'^([0-9a-z_\.\-]+)(\/([0-9a-z_\.\-]+))+$','i') THEN
18303
         raise_application_error (-20000, 'Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
18304
       END IF;
18305
 
18306
       -- Validate Tag
18307
       -- May be a Peg or a Label
18308
       IF NOT REGEXP_LIKE(spkg_label,'^@?[0-9]+$','i') THEN
18309
           IF NOT REGEXP_LIKE(spkg_label,'^[0-9a-z_\.\-]+($|@[0-9]+)','i') THEN
18310
             raise_application_error (-20000, 'Invalid SVN tag:' || '"' || spkg_label || '"' || ' for package version:' || ipv_id || ', vcstag:' || '"' || vcstag || '"');
18311
           END IF;
18312
       END IF;
18313
 
18314
        -- Check for suitable ending
18315
        IF NOT REGEXP_LIKE(ssrc_path,'(\/tags$)|(\/branches\/)|(\/trunk$)','i') THEN
18316
            raise_application_error (-20000, 'Must end in /trunk or /tags/ or /branches/.... Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
18317
        END IF;
18318
 
18319
       -- Check for combined use of tags, branches, trunk or repeats of each
18320
       -- Count occurrences of /tags or /branches/ or /trunk
18321
       vcount:=0;
18322
       i:=1;
18323
       WHILE i > 0 LOOP
18324
         i:=REGEXP_INSTR(ssrc_path,'(\/tags(\/|$))|(\/branches(\/|$))|(\/trunk(\/|$))',i,1,1,'i');
18325
         IF i > 0 THEN
18326
           -- if found then increment count
18327
           vcount:=vcount+1;
18328
           i:=i-1;  -- move index back to "/"
18329
         END IF;
18330
       END LOOP;
18331
 
18332
       IF vcount = 0  THEN
18333
         raise_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 || '"');
18334
       END IF;
18335
 
18336
       IF vcount > 1  THEN
18337
         raise_application_error (-20000, 'Combined use of /trunk, /tags, or /branches/. Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
18338
       END IF;
18339
 
18340
 
18341
     END IF;
18342
 
18343
     BEGIN
18344
       -- Get current vcs tag for specified package version
18345
       SELECT pv.src_path, pv.pkg_label, vc.tag as vcs_type
18346
       INTO old_src_path, old_pkg_label, old_vcs_type
18347
       FROM package_versions pv, vcs_type vc
18348
       WHERE pv.pv_id = ipv_id
18349
       AND pv.vcs_type_id = vc.vcs_type_id (+);
18350
 
18351
     EXCEPTION
18352
       WHEN NO_DATA_FOUND THEN
18353
         raise_application_error (-20000, 'Package version not found: ' || ipv_id);
18354
     END;
18355
 
18356
     old_pkg_vcstag:= old_vcs_type || '::' || old_src_path;
18357
     IF (old_pkg_label IS NOT NULL) THEN
18358
       old_pkg_vcstag:=old_pkg_vcstag || '::' || old_pkg_label;
18359
     END IF;
18360
 
18361
     -- Create action description
18362
     -- This description will contain the old and new tags.
18363
     -- Its purpose is to provide information for tracking and for restoring previous vcs settings if a recovery is required.
18364
     -- An example of the action description is below:
18365
     --   OldTag:CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr NewTag:SVN::DPG_SWBase/tools/tags/daf_tools_25.1.7027.cr
18366
     saction_desc:='OldTag:' || old_pkg_vcstag || ' ' || 'NewTag:' || vcstag;
18367
 
18368
     -- Store new vcs details
18369
     UPDATE package_versions SET
18370
       src_path = ssrc_path,
18371
       pkg_label = spkg_label,
18372
       vcs_type_id = ivcs_type_id
18373
     WHERE
18374
       pv_id = ipv_id;
18375
 
18376
     -- Store action in action log so that we can back track and also restore vcs settings if required.
18377
     log_action (ipv_id,'VcsConversion',user_id,saction_desc);
18378
 
18379
   END update_vcs_details;
18380
 
18381
/*-------------------------------------------------------------------------------------------------------
18382
Name:        isSVN
18383
Description: Determine if any of the packages versions are controlled under SVN
18384
			 Intended to be used to prevent users from releasing a package
18385
			 that has been migrated to SVN
18386
 
18387
Paramters:	pkgid:     Package ID
18388
 
18389
Returns:	Number of versions under SVN version control
18390
*/
6031 dpurdie 18391
 
3959 dpurdie 18392
FUNCTION isSVN( pkgid IN NUMBER )
18393
    RETURN NUMBER
18394
    IS
18395
    svncount   NUMBER  := 0;
18396
   BEGIN
18397
        SELECT COUNT(*) INTO svncount FROM PACKAGE_VERSIONS pv WHERE pv.PKG_ID = pkgid AND pv.VCS_TYPE_ID = 23;
18398
        RETURN (svncount);
1373 dpurdie 18399
   END;
6031 dpurdie 18400
 
3959 dpurdie 18401
/*-------------------------------------------------------------------------------------------------------
18402
Name:        isSVNbyName
18403
Description: Determine if any of the packages versions are controlled under SVN
18404
			 Intended to be used to prevent users from releasing a package
18405
			 that has been migrated to SVN
18406
 
18407
Paramters:	pkgname:	Package Name
18408
 
18409
Returns:	Number of versions under SVN version control
18410
*/
18411
 
6031 dpurdie 18412
FUNCTION isSVNbyName( pkgname IN VARCHAR2 )
3959 dpurdie 18413
    RETURN NUMBER
18414
IS
18415
   svncount   NUMBER  := 0;
18416
   BEGIN
18417
        SELECT 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;
18418
        RETURN (svncount);
18419
   END;
5172 dpurdie 18420
/*-------------------------------------------------------------------------------------------------------
18421
Name:        new_build_instance
18422
Description: Create a new entry in the BUILD_INSTANCE table
18423
             The BUILD_ID will be allocated.
18424
             The timestamp will be created
18425
 
18426
Paramters:	rtag_id:	Release ID - must exist
18427
            pv_id:    Package ID - must exist
18428
            reason:   Reason code for the build
18429
 
18430
Returns:	BUILD_ID for the new entry
18431
          Returns -1 on error, PV_ID or RTAG_ID do not exist
6031 dpurdie 18432
*/
18433
FUNCTION new_build_instance( rtag_id IN NUMBER, pv_id IN NUMBER , reason IN CHAR)
18434
  RETURN NUMBER
5172 dpurdie 18435
  IS
18436
    build_id NUMBER := 0;
18437
  BEGIN
18438
    INSERT into BUILD_INSTANCES (RTAG_ID, PV_ID, REASON)
18439
    values( rtag_id, pv_id, reason)
18440
    returning BUILD_ID into build_id;
18441
    return build_id;
18442
  EXCEPTION
18443
    WHEN OTHERS THEN
18444
      return -1;
18445
  END;
6031 dpurdie 18446
 
5172 dpurdie 18447
/*-------------------------------------------------------------------------------------------------------
18448
Name: update_build_instance
18449
Description: Update fields in an existing build instance
18450
Returns: -1 on error
18451
*/
18452
FUNCTION update_build_instance(
18453
    nbuild_id IN NUMBER,
18454
    npv_id    IN NUMBER DEFAULT NULL,
18455
    nstate    IN CHAR DEFAULT NULL )
18456
  RETURN NUMBER
18457
IS
18458
BEGIN
18459
  IF ( npv_id IS NOT NULL AND npv_id > 0 ) THEN
18460
    UPDATE BUILD_INSTANCES SET PV_ID = npv_id WHERE BUILD_ID = nbuild_id;
18461
    IF SQL%NOTFOUND THEN
18462
      RETURN -2;
18463
    END IF;
18464
  END IF;
6031 dpurdie 18465
 
5172 dpurdie 18466
  IF ( nstate        IS NOT NULL ) THEN
18467
    IF (LENGTH(nstate) = 1 ) THEN
18468
      UPDATE BUILD_INSTANCES SET STATE = nstate WHERE BUILD_ID = nbuild_id;
18469
        IF SQL%NOTFOUND THEN
18470
          RETURN -3;
18471
        END IF;
18472
    ELSE
18473
      RETURN -4;
18474
    END IF;
18475
  END IF;
6031 dpurdie 18476
 
5172 dpurdie 18477
  RETURN 1;
18478
  EXCEPTION
18479
    WHEN OTHERS THEN
18480
      RETURN -1;
18481
  END;
18482
 
18483
/*-------------------------------------------------------------------------------------------------------
18484
Name:        insert_test_run
18485
Description: Insert data into the test_run table
18486
 
6031 dpurdie 18487
 
5172 dpurdie 18488
Paramters:	See below
18489
 
18490
Returns:	1 on success
18491
          Returns -1 on error
6031 dpurdie 18492
*/
18493
  FUNCTION insert_test_run(
18494
      build_id  IN NUMBER,
18495
      name      IN VARCHAR2,
18496
      outcome   IN VARCHAR2,
18497
      platform  IN VARCHAR2,
18498
      stype     IN VARCHAR2,
18499
      duration  IN NUMBER default null,
5172 dpurdie 18500
      message   IN CLOB default null
18501
      ) return NUMBER
18502
IS
18503
  sName VARCHAR2(1000) := name;
18504
  sNameLen NUMBER;
6031 dpurdie 18505
 
5172 dpurdie 18506
BEGIN
18507
  sNameLen := LENGTH(sName);
5384 dpurdie 18508
  IF sNameLen >= 199 Then
6031 dpurdie 18509
    sName := '...' || SUBSTR(sName, sNameLen - 196);
5172 dpurdie 18510
  END IF;
18511
 
18512
  INSERT into TEST_RUN
18513
    (BUILD_ID, TEST_NAME, TEST_OUTCOME, TIME_TAKEN,FAIL_MESSAGE,PLATFORM, TYPE)
18514
    VALUES(build_id,sName,outcome, duration, message, platform, stype);
18515
    return 1;
18516
  EXCEPTION
18517
    WHEN OTHERS THEN
18518
      return -1;
18519
 
18520
END;
6031 dpurdie 18521
 
3959 dpurdie 18522
   END;
4040 dpurdie 18523
 
1374 dpurdie 18524
/
5892 dpurdie 18525
 
6031 dpurdie 18526
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "RM_READONLY";
18527
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "MS_READONLY";
6999 dpurdie 18528
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "DM_READONLY";
4040 dpurdie 18529
--------------------------------------------------------
18530
--  DDL for Package Body PK_WORK_IN_PROGRESS
18531
--------------------------------------------------------
18532
 
5172 dpurdie 18533
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS
1373 dpurdie 18534
 
18535
/*
18536
------------------------------
18537
||  Last Modified:  S.Vukovic
3959 dpurdie 18538
||  Modified Date:  2/May/2005
1373 dpurdie 18539
||  Body Version:   1.0
18540
------------------------------
18541
*/
18542
 
18543
 
18544
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 18545
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 18546
 
3959 dpurdie 18547
	oldPvId NUMBER;
18548
	ReleaseLocation VARCHAR2(4000);
18549
	sLocation VARCHAR2(4000) := NULL;
1373 dpurdie 18550
 
3959 dpurdie 18551
 
1373 dpurdie 18552
BEGIN
18553
	/*--------------- Business Rules Here -------------------*/
3959 dpurdie 18554
	/*-------------------------------------------------------*/
1373 dpurdie 18555
 
3959 dpurdie 18556
	BEGIN
5384 dpurdie 18557
		-- Check if Exists in "Work in progress" anywhere in the world in a non-closed Release
3959 dpurdie 18558
		SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME  INTO sLocation
18559
		  FROM WORK_IN_PROGRESS wip,
18560
		  	   RELEASE_TAGS rt,
18561
			   PROJECTS proj
18562
		 WHERE wip.PV_ID = newPvId
18563
		   AND wip.RTAG_ID = rt.RTAG_ID
5384 dpurdie 18564
		   AND rt.OFFICIAL in ('N','R','C')
3959 dpurdie 18565
		   AND rt.PROJ_ID = proj.PROJ_ID;
1373 dpurdie 18566
 
3959 dpurdie 18567
		EXCEPTION
18568
	    	WHEN NO_DATA_FOUND THEN
18569
	       		sLocation := NULL;
1373 dpurdie 18570
 
6031 dpurdie 18571
	END;
1373 dpurdie 18572
 
18573
 
6031 dpurdie 18574
 
3959 dpurdie 18575
	IF (sLocation IS NULL)  THEN
1373 dpurdie 18576
 
3959 dpurdie 18577
		-- Add to "Work in progress"
18578
		INSERT INTO WORK_IN_PROGRESS ( RTAG_ID, PV_ID, VIEW_ID )
18579
		VALUES( RtagId, newPvId, ViewId );
18580
 
18581
 
18582
	    /* LOG ACTION */
18583
		SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
18584
		  FROM PROJECTS proj,
18585
		  	   RELEASE_TAGS rt
18586
		 WHERE rt.PROJ_ID = proj.PROJ_ID
18587
		   AND rt.RTAG_ID = RtagId;
18588
 
18589
		Log_Action ( newPvId, 'work_in_progress', UserId, 'Location: '|| ReleaseLocation );
18590
 
18591
	ELSE
6031 dpurdie 18592
 
3959 dpurdie 18593
		RAISE_APPLICATION_ERROR (-20000, 'This version is already in Work-In-Progress Area at '|| sLocation ||'.' );
6031 dpurdie 18594
 
1373 dpurdie 18595
	END IF;
18596
 
3959 dpurdie 18597
END;
18598
/*-------------------------------------------------------------------------------------------------------*/
18599
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 18600
 
3959 dpurdie 18601
	ReleaseLocation VARCHAR2(4000);
1373 dpurdie 18602
 
3959 dpurdie 18603
BEGIN
18604
 
18605
	/*--------------- Business Rules Here -------------------*/
1373 dpurdie 18606
	/*-------------------------------------------------------*/
18607
 
18608
 
3959 dpurdie 18609
	-- Get release location for logging pusposes
18610
	SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
18611
	  FROM PROJECTS proj,
18612
	  	   RELEASE_TAGS rt
18613
	 WHERE rt.PROJ_ID = proj.PROJ_ID
18614
	   AND rt.RTAG_ID = RtagId;
1373 dpurdie 18615
 
6031 dpurdie 18616
    -- Ensure that package is not marked as Pending/Rejected any more
18617
    UPDATE package_versions
18618
       SET DLOCKED  = 'N'
18619
     WHERE PV_ID  = PvId
18620
       AND DLOCKED != 'Y';
1373 dpurdie 18621
 
3959 dpurdie 18622
	-- Delete from Work In Progress
18623
	DELETE
18624
	  FROM WORK_IN_PROGRESS wip
18625
	 WHERE wip.RTAG_ID = RtagId
18626
	   AND wip.PV_ID = PvId;
1373 dpurdie 18627
 
3959 dpurdie 18628
	Log_Action ( PvId, 'delete_from_wip', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 18629
 
3959 dpurdie 18630
 
18631
 
18632
 
1373 dpurdie 18633
END;
18634
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 18635
PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 18636
 
3959 dpurdie 18637
	nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
18638
	ReleaseLocation VARCHAR2(4000);
18639
	PvId NUMBER;
1373 dpurdie 18640
 
18641
BEGIN
3959 dpurdie 18642
 
1373 dpurdie 18643
	/*--------------- Business Rules Here -------------------*/
3959 dpurdie 18644
	IF (PvIdList IS NULL)
18645
	THEN
18646
		RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
18647
	END IF;
1373 dpurdie 18648
	/*-------------------------------------------------------*/
18649
 
18650
 
3959 dpurdie 18651
	nIdCollector := IN_LIST_NUMBER ( PvIdList );
1373 dpurdie 18652
 
18653
 
3959 dpurdie 18654
	-- Get release location for logging pusposes
18655
	SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
18656
	  FROM PROJECTS proj,
18657
	  	   RELEASE_TAGS rt
18658
	 WHERE rt.PROJ_ID = proj.PROJ_ID
18659
	   AND rt.RTAG_ID = RtagId;
1373 dpurdie 18660
 
3959 dpurdie 18661
 
18662
	FOR i IN 1..nIdCollector.COUNT
18663
	LOOP
18664
		PvId := nIdCollector(i);
18665
 
18666
		-- Delete from Work In Progress
18667
		DELETE
18668
		  FROM WORK_IN_PROGRESS wip
18669
		 WHERE wip.RTAG_ID = RtagId
18670
		   AND wip.PV_ID = PvId;
18671
 
18672
		Log_Action ( PvId, 'remove_from_work_in_progress', UserId, 'Location: '|| ReleaseLocation );
18673
 
18674
	END LOOP;
18675
 
18676
 
1373 dpurdie 18677
END;
18678
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 18679
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
18680
 
18681
	ReturnValue NUMBER;
18682
 
1373 dpurdie 18683
BEGIN
3959 dpurdie 18684
	SELECT wip.VIEW_ID INTO ReturnValue
18685
	  FROM WORK_IN_PROGRESS wip
18686
	 WHERE wip.RTAG_ID = RtagId
18687
	   AND wip.PV_ID = PvId;
1373 dpurdie 18688
 
3959 dpurdie 18689
	RETURN ReturnValue;
1373 dpurdie 18690
END;
18691
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 18692
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
18693
 
18694
	IsBaseView CHAR(1);
6031 dpurdie 18695
 
1373 dpurdie 18696
BEGIN
18697
 
3959 dpurdie 18698
	-- Check if the view is BASE VIEW
18699
	SELECT vi.BASE_VIEW INTO IsBaseView
18700
	  FROM VIEWS vi
18701
	 WHERE vi.VIEW_ID = ViewId;
6031 dpurdie 18702
 
18703
	IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 18704
		-- Get Base view content
18705
		OPEN RecordSet FOR
18706
		SELECT 0 AS PKG_STATE,
18707
			   NULL AS DEPRECATED_STATE,
6031 dpurdie 18708
			   pv.pv_id,
18709
			   pkg.pkg_name,
18710
			   pv.pkg_version,
18711
			   pv.dlocked,
3959 dpurdie 18712
			   pv.pv_description,
18713
			   pv.BUILD_TYPE
18714
		  FROM WORK_IN_PROGRESS rel,
18715
		       packages pkg,
18716
		       package_versions pv
18717
		 WHERE pv.pkg_id = pkg.pkg_id
18718
		   AND rel.pv_id = pv.pv_id
18719
		   AND rel.VIEW_ID = ViewId
18720
		   AND rel.RTAG_ID = RtagId
18721
		 ORDER BY UPPER(pkg.PKG_NAME);
1373 dpurdie 18722
 
6031 dpurdie 18723
 
18724
	ELSE
18725
 
3959 dpurdie 18726
	 	-- Get non base view content
18727
		OPEN RecordSet FOR
18728
		SELECT 0 AS PKG_STATE,
18729
			   NULL AS DEPRECATED_STATE,
6031 dpurdie 18730
			   pv.pv_id,
18731
			   pkg.pkg_name,
18732
			   pv.pkg_version,
18733
			   pv.dlocked,
3959 dpurdie 18734
			   pv.pv_description,
18735
			   pv.BUILD_TYPE
18736
		  FROM WORK_IN_PROGRESS rel,
18737
		       packages pkg,
18738
		       package_versions pv,
18739
			   VIEW_DEF vd
18740
		 WHERE pv.pkg_id = pkg.pkg_id
18741
		   AND rel.pv_id = pv.pv_id
18742
		   AND vd.VIEW_ID = ViewId
18743
		   AND vd.PKG_ID = pv.PKG_ID
18744
		   AND rel.RTAG_ID = RtagId
18745
		 ORDER BY UPPER(pkg.PKG_NAME);
18746
 
6031 dpurdie 18747
 
18748
	END IF;
18749
 
18750
 
1373 dpurdie 18751
END;
18752
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 18753
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
6031 dpurdie 18754
 
1373 dpurdie 18755
BEGIN
6031 dpurdie 18756
 
3959 dpurdie 18757
	UPDATE WORK_IN_PROGRESS wip SET
18758
	wip.VIEW_ID = NewViewId
18759
	WHERE wip.PV_ID = PvId
18760
	  AND wip.RTAG_ID = RtagId;
6031 dpurdie 18761
 
1373 dpurdie 18762
END;
18763
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 18764
END PK_WORK_IN_PROGRESS;
4040 dpurdie 18765
 
6999 dpurdie 18766
/
4040 dpurdie 18767
--------------------------------------------------------
18768
--  DDL for Package Body RM_ISSUES
18769
--------------------------------------------------------
18770
 
5172 dpurdie 18771
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."RM_ISSUES" AS
1373 dpurdie 18772
 
3959 dpurdie 18773
-- Private Implementation -----------------------------------------------------
1373 dpurdie 18774
 
18775
 
3959 dpurdie 18776
	FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER
18777
	AS
1373 dpurdie 18778
 
3959 dpurdie 18779
	BEGIN
18780
		-- start boundary case
18781
		IF ( XXstart < XX ) THEN
18782
			RETURN 1;
1373 dpurdie 18783
 
3959 dpurdie 18784
		ELSIF ( XXstart = XX ) THEN
1373 dpurdie 18785
 
3959 dpurdie 18786
			-- need to consider YY
18787
			IF ( YYstart < YY ) THEN
18788
				RETURN 1;
1373 dpurdie 18789
 
3959 dpurdie 18790
			ELSIF ( YYstart = YY ) THEN
1373 dpurdie 18791
 
3959 dpurdie 18792
					-- need to consider ZZ
18793
					IF ( ZZstart <= ZZ ) THEN
18794
						RETURN 1;
18795
 
18796
					ELSE
18797
						RETURN 0;
18798
					END IF;
18799
 
18800
			ELSE
18801
				RETURN 0;
18802
			END IF;
18803
		ELSE
18804
			RETURN 0;
18805
		END IF;
18806
	EXCEPTION
18807
		WHEN OTHERS THEN
18808
			RETURN -1;
18809
	END;
18810
 
18811
 
18812
	FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER
18813
	AS
18814
 
18815
	BEGIN
18816
		-- end boundary case
18817
		IF ( XX < XXend ) THEN
18818
			RETURN 1;
18819
 
18820
		ELSIF ( XX = XXend ) THEN
18821
 
18822
			-- need to consider YY
18823
			IF ( YY < YYend ) THEN
18824
				RETURN 1;
18825
 
18826
			ELSIF ( YY = YYend ) THEN
18827
 
18828
					-- need to consider ZZ
18829
					IF ( ZZ <= ZZend ) THEN
18830
						RETURN 1;
18831
 
18832
					ELSE
18833
						RETURN 0;
18834
					END IF;
18835
			ELSE
18836
 
18837
				RETURN 0;
18838
			END IF;
18839
		ELSE
18840
			RETURN 0;
18841
		END IF;
18842
	EXCEPTION
18843
		WHEN OTHERS THEN
18844
			RETURN -1;
18845
	END;
18846
 
18847
	/*
18848
	-	version format:		XX.YY.ZZ.abc
18849
	*/
18850
	FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBER
18851
	AS
18852
		XXstart		NUMBER	:=	0;
18853
		XXend		NUMBER	:=	0;
18854
		XX			NUMBER	:=	0;
18855
		YYstart		NUMBER	:=	0;
18856
		YYend		NUMBER	:=	0;
18857
		YY			NUMBER	:=	0;
18858
		ZZstart		NUMBER	:=	0;
18859
		ZZend		NUMBER	:=	0;
18860
		ZZ			NUMBER	:=	0;
18861
		first_dot	NUMBER	:=	0;
18862
		second_dot	NUMBER	:=	0;
18863
		third_dot	NUMBER	:=	0;
18864
 
18865
		ProjExtstart	VARCHAR2(10);
18866
		ProjExtend		VARCHAR2(10);
18867
		ProjExt			VARCHAR2(10);
18868
 
18869
	BEGIN
18870
		-- strip the version number
18871
		first_dot :=  INSTR(version_start, '.', 1, 1);
18872
		second_dot :=  INSTR(version_start, '.', 1, 2);
18873
		third_dot :=  INSTR(version_start, '.', 1, 3);
18874
 
18875
		XXstart := TO_NUMBER( SUBSTR( version_start, 1, first_dot - 1 ) );
18876
		YYstart := TO_NUMBER( SUBSTR( version_start, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
18877
		ZZstart := TO_NUMBER( SUBSTR( version_start, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
18878
		ProjExtstart := SUBSTR( version_start, third_dot + 1, LENGTH(version_start) - third_dot );
18879
 
18880
		first_dot :=  INSTR(version_end, '.', 1, 1);
18881
		second_dot :=  INSTR(version_end, '.', 1, 2);
18882
		third_dot :=  INSTR(version_end, '.', 1, 3);
18883
 
18884
		XXend := TO_NUMBER( SUBSTR( version_end, 1, first_dot - 1 ) );
18885
		YYend := TO_NUMBER( SUBSTR( version_end, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
18886
		ZZend := TO_NUMBER( SUBSTR( version_end, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
18887
		ProjExtend := SUBSTR( version_end, third_dot + 1, LENGTH(version_end) - third_dot );
18888
 
18889
		first_dot :=  INSTR(version, '.', 1, 1);
18890
		second_dot :=  INSTR(version, '.', 1, 2);
18891
		third_dot :=  INSTR(version, '.', 1, 3);
18892
 
18893
		XX := TO_NUMBER( SUBSTR( version, 1, first_dot - 1 ) );
18894
		YY := TO_NUMBER( SUBSTR( version, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
18895
		ZZ := TO_NUMBER( SUBSTR( version, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
18896
		ProjExt := SUBSTR( version, third_dot + 1, LENGTH(version) - third_dot );
18897
 
18898
		-- only include versions if all project extensions are the same
18899
		IF ( ProjExtstart = ProjExt AND ProjExt = ProjExtend ) THEN
18900
 
18901
			IF ( VerIsGrtrThanOrEqlToStart( XXstart, XX, YYstart, YY, ZZstart, ZZ ) = 1 AND VerIsLessThanOrEqlToEnd( XXend, XX, YYend, YY, ZZend, ZZ ) = 1 ) THEN
18902
				RETURN 1;
18903
			ELSE
18904
				RETURN 0;
18905
			END IF;
18906
		ELSE
18907
			RETURN 0;
18908
		END IF;
18909
 
18910
	EXCEPTION
18911
		WHEN OTHERS THEN
18912
			RETURN -1;
18913
	END;
18914
 
18915
	FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBER
18916
	AS
18917
	    pkg_id NUMBER;
18918
	BEGIN
18919
		SELECT
18920
			p.PKG_ID
18921
		INTO
18922
			pkg_id
18923
		FROM
18924
			PACKAGES p
18925
		WHERE
18926
			p.PKG_NAME = pkgName;
18927
 
18928
		RETURN pkg_id;
18929
	EXCEPTION
18930
	    WHEN OTHERS THEN
18931
			dbms_output.put_line('GetPkgId exception: ' || SQLERRM );
18932
			RETURN -1;
18933
	END;
18934
 
18935
 
18936
-- Public Implementation ------------------------------------------------------
18937
 
18938
	/*
18939
	-- Proc: AllIssues - Gets all issues for a package from dependent packages one level deep
18940
	--
18941
	-- INPUT PARAMETERS:
18942
	--
18943
	--		pkg_name  	-  	The name of the top level package to get issues for
18944
	--		version_start	-	The start version for the comparison
18945
	--		version_end	-	The end version for the comparison
18946
	*/
18947
	PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )
18948
	AS
18949
		pkgId	NUMBER;
18950
	BEGIN
18951
		-- get pkg_id of the input package:
18952
		pkgId := GetPkgId( pkg_name );
18953
 
18954
		OPEN vCursor FOR
18955
		SELECT
18956
			  pv.PKG_ID,
18957
			  pv.PKG_VERSION,
18958
			  pv.PV_ID,
18959
			  i_pkg.ISS_ID,
18960
			  ( SELECT pkg_name FROM PACKAGES WHERE pkg_id = pd.DPKG_ID ) AS DPV_NAME,
18961
			  pd.DPKG_ID,
18962
			  ( SELECT pkg_version FROM PACKAGE_VERSIONS WHERE pv_id = pd.DPV_ID ) AS DPV_VER,
18963
			  pd.DPV_ID,
18964
			  i_dpkg.ISS_ID AS ISSUE_ID
18965
		FROM
18966
			 PACKAGE_VERSIONS pv
18967
							  LEFT OUTER JOIN CQ_ISSUES i_pkg ON pv.PV_ID = i_pkg.PV_ID
18968
							  LEFT OUTER JOIN PACKAGE_DEPENDENCIES pd ON pv.PV_ID = pd.PV_ID
18969
							  LEFT OUTER JOIN CQ_ISSUES i_dpkg ON pd.DPV_ID = i_dpkg.PV_ID
18970
		WHERE
18971
   			 pv.PKG_ID = pkgId
18972
		AND
18973
			VersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1
18974
		AND
18975
			 ( i_dpkg.ISS_ID IS NOT NULL OR i_pkg.ISS_ID IS NOT NULL )
18976
		ORDER BY
18977
			 pv.PKG_ID,
18978
			 pv.PV_ID,
18979
			 pd.DPKG_ID,
18980
			 pd.DPV_ID;
18981
	EXCEPTION
18982
		WHEN OTHERS THEN
18983
			dbms_output.put_line('AllIssues exception: ' || SQLERRM );
18984
	END;
18985
 
18986
 
18987
	-- NOTE: make RM_PACKAGE_ISSUES a temporary table when tested ok
18988
 
18989
	/*
18990
	-- Proc: LoadIssuesTable
18991
	--
18992
	-- Populates Package_Issues table with details of issues from all dependent packages.
18993
	-- This will be for all package versions of the input pkg_name between the
18994
	-- version_start and version_end.
18995
	--
18996
	-- INPUT PARAMETERS:
18997
	--
18998
	--		pkg_name  	-  	The name of the top level package to get issues for
18999
	--		version_start	-	The start version for the comparison
19000
	--		version_end	-	The end version for the comparison
19001
	*/
19002
	PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )
19003
	AS
19004
		pkgId	NUMBER;
19005
 
19006
		CURSOR pack_vers_cur IS
19007
			SELECT
19008
				pv.PV_ID,
19009
				pv.PKG_VERSION,
19010
				pv.PKG_ID,
19011
				p.PKG_NAME
19012
			FROM
19013
				PACKAGE_VERSIONS pv
19014
					JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
19015
			WHERE
19016
   				 pv.PKG_ID = pkgId
19017
			AND
19018
				VersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1;
19019
 
19020
	BEGIN
19021
		DELETE FROM RELEASE_MANAGER.RM_PKG_ISSUES; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
19022
 
19023
		-- get the pkg_id we are finding issues for
19024
		pkgId := GetPkgId( pkg_name );
19025
 
19026
		-- find all the top level packages we are dealing with and recursively process their issues and their dependent package issues.
19027
		FOR pack_ver_rec IN  pack_vers_cur
19028
		LOOP
19029
			InsertIssuesForDepends( 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 );
19030
			COMMIT;
19031
		END LOOP;
19032
 
19033
		-- The output cursor - shows the individual versions of the top level package then were reported on
19034
		OPEN vCursor FOR
19035
		SELECT DISTINCT ISS_ID, PKG_VERSION FROM RM_PKG_ISSUES WHERE ISS_ID IS NOT NULL; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
19036
/*removed
19037
		SELECT
19038
			PKG_VERSION
19039
		FROM
19040
			RELEASE_MANAGER.RM_PACKAGE_ISSUES;
19041
*/
19042
 
19043
 
19044
	EXCEPTION
19045
		WHEN OTHERS THEN
19046
			dbms_output.put_line('LoadIssuesTable exception: ' || SQLERRM );
19047
	END;
19048
 
19049
 
19050
	/*
19051
	-- Proc: InsertIssuesForDepends
19052
	--
19053
	-- Used by LoadIssuesTable to recursively find issues for all dependent packages
19054
	--
19055
	-- INPUT PARAMETERS:
19056
	--
19057
	--		pvID  		-  	The package version id of the package to get issues for
19058
	--		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)
19059
	--		top_pkgName -  	The package name of the top level package
19060
	--		top_pvID  	-  	The package version id of the top level package
19061
	--		top_pkgVer  -  	The package version description of the top level package
19062
	*/
19063
	PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 )
19064
	AS
19065
		pkgId		NUMBER;
19066
		issCnt		NUMBER := 0;
19067
		pkgCheck	NUMBER := 0;
19068
		depCheck	NUMBER := 0;
19069
 
19070
		dpkgName	VARCHAR(50);
19071
		dpkgVersion	VARCHAR(50);
19072
 
19073
		CURSOR dep_packs_cur IS
19074
			SELECT
19075
				DPV_ID
19076
			FROM
19077
				PACKAGE_DEPENDENCIES
19078
			WHERE
19079
				PV_ID = pvID;
19080
 
19081
	BEGIN
19082
 
19083
		-- check to see if the package has been processed previously
19084
		SELECT
19085
			COUNT(*)
19086
		INTO
19087
			pkgCheck
19088
		FROM
19089
			RM_PKG_ISSUES /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
19090
		WHERE
19091
			DPV_ID = pvID;
19092
 
19093
		dbms_output.put_line('pkgCheck: ' || pkgCheck );
19094
 
19095
		-- Package not already processed (no cyclic dependency) - process it
19096
		IF ( pkgCheck = 0 ) THEN
19097
 
19098
			-- check to see if this package version has any issues assigned to it
19099
			SELECT
19100
				COUNT(*)
19101
			INTO
19102
				issCnt
19103
			FROM
19104
				CQ_ISSUES i
19105
			WHERE
19106
				i.PV_ID = pvID;
19107
 
19108
			dbms_output.put_line('issCnt: ' || issCnt );
19109
 
19110
			-- Always enter a marker row into the table even if there are no issues for the package.
19111
			-- This allows us to pick up any cyclic dependencies.
19112
			IF ( issCnt > 0 ) THEN
19113
				-- get issues and insert into RM_PACKAGE_ISSUES
19114
				/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
19115
 
19116
				INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )
19117
					SELECT DISTINCT
19118
						top_pkgID		AS PKG_ID,
19119
						top_pkgName		AS PKG_NAME,
19120
						top_pvID		AS PV_ID,
19121
						top_pkgVer		AS PKG_VERSION,
19122
						pv.PV_ID		AS DPV_ID,
19123
						p.PKG_NAME		AS DPKG_NAME,
19124
						pv.PKG_VERSION	AS DPKG_VERSION,
19125
						ci.ISS_DB,
19126
						ci.ISS_ID
19127
					FROM
19128
						PACKAGE_VERSIONS pv
19129
							JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
19130
							JOIN CQ_ISSUES ci ON pv.PV_ID = ci.PV_ID
19131
					WHERE
19132
						pv.PV_ID = pvID;
19133
 
19134
			ELSE
19135
				-- get the dpkg details - there will always be a row returned here
19136
				SELECT
19137
					p.PKG_NAME
19138
				INTO
19139
					dpkgName
19140
				FROM
19141
					PACKAGE_VERSIONS pv
19142
						JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
19143
				WHERE
19144
	   				 pv.PV_ID = pvID;
19145
 
19146
				SELECT
19147
					pv.PKG_VERSION
19148
				INTO
19149
					dpkgVersion
19150
				FROM
19151
					PACKAGE_VERSIONS pv
19152
				WHERE
19153
	   				 pv.PV_ID = pvID;
19154
 
19155
				-- enter a marker row
19156
				/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
19157
				INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )
19158
				VALUES (
19159
					top_pkgID,
19160
					top_pkgName,
19161
					top_pvID,
19162
					top_pkgVer,
19163
					pvID,
19164
					dpkgName,
19165
					dpkgVersion,
19166
					NULL,
19167
					NULL );
19168
 
19169
			END IF;
19170
 
19171
			-- If this package version has dependencies then recurse
19172
			SELECT
19173
				COUNT(*)
19174
			INTO
19175
				depCheck
19176
			FROM
19177
				PACKAGE_DEPENDENCIES
19178
			WHERE
19179
				PV_ID = pvID;
19180
 
19181
			IF ( depCheck > 0 ) THEN
19182
				-- get dependencies and call this function recursively for each one
19183
				FOR dep_rec IN  dep_packs_cur
19184
				LOOP
19185
					InsertIssuesForDepends( dep_rec.DPV_ID, top_pkgID, top_pkgName, top_pvID, top_pkgVer );
19186
				END LOOP;
19187
 
19188
			END IF;
19189
 
19190
		END IF;
19191
 
19192
	/*EXCEPTION
19193
		WHEN OTHERS THEN
19194
			no exception handling required
19195
	*/
19196
	END;
19197
 
19198
END Rm_Issues;
4040 dpurdie 19199
 
6999 dpurdie 19200
/
4040 dpurdie 19201
--------------------------------------------------------
6999 dpurdie 19202
--  DDL for Function CAN_EDIT_PKG_IN_PROJECT
4040 dpurdie 19203
--------------------------------------------------------
19204
 
6999 dpurdie 19205
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."CAN_EDIT_PKG_IN_PROJECT" ( nPvId IN NUMBER, nRtagId IN NUMBER ) RETURN NUMBER IS
19206
-- Returns 0 : Package is not editable in this Release
19207
--         1 : Package is editable in this release
3959 dpurdie 19208
/* ---------------------------------------------------------------------------
19209
    Version: 3.0.0
19210
   --------------------------------------------------------------------------- */
1373 dpurdie 19211
 
6999 dpurdie 19212
  VExt PACKAGE_VERSIONS.V_EXT%TYPE;
19213
  ProjId NUMBER;
19214
  RowCount NUMBER;
19215
  cReleaseMode CHAR(1);
1373 dpurdie 19216
 
19217
BEGIN
19218
 
6999 dpurdie 19219
  /*--------------- Business Rules Here -------------------*/
19220
  IF (nRtagId IS NULL)  OR  (nRtagId < 1)THEN
19221
    RETURN 0;
19222
  END IF;
19223
  /*-------------------------------------------------------*/
1373 dpurdie 19224
 
6999 dpurdie 19225
  /*-- First Check. See if package is used through release reference --*/
19226
  SELECT COUNT(rc.PV_ID) INTO RowCount
19227
    FROM (
19228
        SELECT rl.REF_RTAG_ID
19229
        FROM RELEASE_LINKS rl
19230
       WHERE rl.RTAG_ID = nRtagId
19231
        ) rl,
19232
      RELEASE_CONTENT rc
19233
    WHERE rc.RTAG_ID = rl.REF_RTAG_ID
19234
      AND rc.PV_ID = nPvId;
1373 dpurdie 19235
 
6999 dpurdie 19236
  -- Decide if package can be edited
19237
  IF RowCount > 0 THEN
19238
    -- Package is referenced from other release, hence cannot be edited
19239
    RETURN 0;
19240
  END IF;
3959 dpurdie 19241
 
6999 dpurdie 19242
-- Check if the package is included through an SDK reference
19243
  SELECT count(*) INTO RowCount
19244
    FROM RELEASE_CONTENT rc
19245
   WHERE rc.RTAG_ID = nRtagId
19246
      AND rc.PV_ID = nPvId
19247
      AND rc.SDKTAG_ID is not NULL ;
3959 dpurdie 19248
 
6999 dpurdie 19249
  IF RowCount > 0 THEN
19250
    -- Package is imported via SDK
19251
    RETURN 0;
19252
  END IF;
4040 dpurdie 19253
 
6999 dpurdie 19254
--  Pegged packages can be edited. Other checking needs to be done
19255
--  -- Check if the package is pegged
19256
--  SELECT count(*) INTO RowCount
19257
--    FROM pegged_versions
19258
--   WHERE RTAG_ID = nRtagId
19259
--      AND PV_ID = nPvId;
4040 dpurdie 19260
 
6999 dpurdie 19261
--  IF RowCount > 0 THEN
19262
--    -- Package is Pegged
19263
--    RETURN 0;
19264
--  END IF;
6031 dpurdie 19265
 
6999 dpurdie 19266
  -- Check is only done for releases in restrictive mode
19267
  SELECT rt.OFFICIAL INTO cReleaseMode
19268
    FROM RELEASE_TAGS rt
19269
   WHERE rt.RTAG_ID = nRtagId;
4040 dpurdie 19270
 
6999 dpurdie 19271
  IF cReleaseMode = 'N' OR cReleaseMode = 'R'  OR cReleaseMode = 'C' THEN
19272
    -- Do not do any further checking,
19273
    -- Package is editable here
19274
    RETURN 1;
19275
  END IF;
4040 dpurdie 19276
 
1373 dpurdie 19277
 
6999 dpurdie 19278
  /*-- Further checking --*/
19279
  -- Get proj_id
19280
  SELECT rt.PROJ_ID  INTO  ProjId
19281
    FROM RELEASE_TAGS rt
19282
   WHERE rt.RTAG_ID = nRtagId;
3959 dpurdie 19283
 
6999 dpurdie 19284
  BEGIN
19285
    -- Get v_ext
19286
    SELECT pv.V_EXT  INTO  Vext
19287
      FROM PACKAGE_VERSIONS pv
19288
     WHERE pv.PV_ID = nPvId;
3959 dpurdie 19289
 
6999 dpurdie 19290
    EXCEPTION
19291
        WHEN NO_DATA_FOUND THEN
19292
            Vext := NULL;
19293
  END;
1373 dpurdie 19294
 
6999 dpurdie 19295
  --Temp Hack for Step Project
19296
  IF ProjId != 281 THEN
19297
    -- Find if package can be edited in this project
19298
      SELECT COUNT(pe.EXT_NAME) INTO RowCount
19299
      FROM PROJECT_EXTENTIONS pe
19300
      WHERE pe.PROJ_ID != ProjId
19301
        AND pe.EXT_NAME = VExt;
19302
  END IF;
1373 dpurdie 19303
 
6999 dpurdie 19304
  -- Decide if package can be edited
19305
  IF RowCount > 0 THEN
19306
    -- Package extension is found in other projects, hence NOT EDITABLE
19307
    RETURN 0;
19308
  ELSE
19309
    RETURN 1;
19310
  END IF;
1373 dpurdie 19311
 
19312
 
6999 dpurdie 19313
END CAN_EDIT_PKG_IN_PROJECT;
3959 dpurdie 19314
 
6999 dpurdie 19315
/
19316
--------------------------------------------------------
19317
--  DDL for Function DT_ADDUSEROBJECT
19318
--------------------------------------------------------
3959 dpurdie 19319
 
6999 dpurdie 19320
  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;
3959 dpurdie 19321
 
6999 dpurdie 19322
/
4040 dpurdie 19323
--------------------------------------------------------
6999 dpurdie 19324
--  DDL for Function GET_AUTOMATED_LABEL
4040 dpurdie 19325
--------------------------------------------------------
19326
 
6999 dpurdie 19327
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_AUTOMATED_LABEL" ( nPvId IN NUMBER ) RETURN VARCHAR2 IS
3959 dpurdie 19328
 
6999 dpurdie 19329
/* ---------------------------------------------------------------------------
19330
    Version: 3.0.0
19331
   --------------------------------------------------------------------------- */
3959 dpurdie 19332
 
6999 dpurdie 19333
  sPkgName VARCHAR2(4000);
19334
  sPkgVersion VARCHAR2(4000);
19335
  sVext VARCHAR2(4000);
19336
  cChangeType CHAR;
19337
  cBuildType CHAR;
3959 dpurdie 19338
 
19339
 
19340
BEGIN
19341
 
6999 dpurdie 19342
	-- Get package details
19343
	SELECT pkg.PKG_NAME, pv.V_EXT, pv.build_type, pv.change_type, pv.pkg_version INTO sPkgName, sVext,cBuildType, cChangeType, sPkgVersion
19344
	  FROM PACKAGE_VERSIONS pv,
19345
	  	   PACKAGES pkg
19346
	 WHERE pv.PKG_ID = pkg.PKG_ID
19347
	   AND pv.PV_ID = nPvId;
6031 dpurdie 19348
 
6999 dpurdie 19349
  -- Generate Label for manually built package
19350
  If cBuildType = 'M' Then
19351
    return (sPkgName ||'_'|| sPkgVersion );
19352
  End If;
6031 dpurdie 19353
 
6999 dpurdie 19354
  -- Generate Label for automated build with specified package version
19355
  IF cchangetype = 'F' Then
19356
    return (sPkgName ||'_'|| sPkgVersion ||'.WIP');
19357
  End If;
6031 dpurdie 19358
 
6999 dpurdie 19359
	-- Generate Label for automated build
19360
	RETURN UPPER( sPkgName ||'.'|| nPvId || sVext ||'.WIP' );
6031 dpurdie 19361
 
6999 dpurdie 19362
END GET_AUTOMATED_LABEL;
6031 dpurdie 19363
 
6999 dpurdie 19364
/
4040 dpurdie 19365
--------------------------------------------------------
6999 dpurdie 19366
--  DDL for Function GET_BUILD_NUMBER
4040 dpurdie 19367
--------------------------------------------------------
19368
 
6999 dpurdie 19369
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_BUILD_NUMBER" (s_version IN VARCHAR2) RETURN VARCHAR2
19370
IS
19371
/* ---------------------------------------------------------------------------
19372
    Version: 1.0.0
19373
   --------------------------------------------------------------------------- */
1373 dpurdie 19374
BEGIN
6999 dpurdie 19375
    IF is_number(s_version) AND LENGTH(s_version) > 3
19376
    THEN
19377
        RETURN MOD(TO_NUMBER(s_version), 1000);
19378
    ELSE
19379
        RETURN 0;
19380
    END IF;
19381
END get_build_number;
1373 dpurdie 19382
 
6999 dpurdie 19383
/
19384
--------------------------------------------------------
19385
--  DDL for Function GET_PATCH_VERSION
19386
--------------------------------------------------------
1373 dpurdie 19387
 
6999 dpurdie 19388
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_PATCH_VERSION" (s_version IN VARCHAR2) RETURN VARCHAR2
19389
IS
19390
/* ---------------------------------------------------------------------------
19391
    Version: 1.0.0
19392
   --------------------------------------------------------------------------- */
19393
BEGIN
19394
    IF is_number(s_version) AND LENGTH(s_version) > 3
19395
    THEN
19396
        RETURN FLOOR(TO_NUMBER(s_version) / 1000);
19397
    ELSE
19398
        RETURN s_version;
19399
    END IF;
19400
END get_patch_version;
1373 dpurdie 19401
 
6999 dpurdie 19402
/
19403
--------------------------------------------------------
19404
--  DDL for Function GET_PV_FIRST_MODIFIED
19405
--------------------------------------------------------
1373 dpurdie 19406
 
6999 dpurdie 19407
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" (v_pv_id NUMBER) RETURN DATE IS
19408
  ret DATE;
19409
BEGIN
19410
  SELECT q.modified_stamp
19411
    INTO ret
19412
    FROM (
19413
            SELECT level AS lvl, pvc.pv_id, pvc.modified_stamp, pvc.change_type
19414
              FROM package_versions pvc
19415
              START WITH pvc.pv_id = v_pv_id
19416
            CONNECT BY NOCYCLE pvc.pv_id = PRIOR pvc.last_pv_id
19417
          ) Q
19418
  WHERE q.change_type IS NOT NULL
19419
    AND rownum = 1
19420
  ORDER BY q.lvl;
1373 dpurdie 19421
 
6999 dpurdie 19422
  RETURN ret;
19423
END;
1373 dpurdie 19424
 
6999 dpurdie 19425
/
1373 dpurdie 19426
 
6999 dpurdie 19427
  GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "RM_READONLY";
19428
  GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "DM_READONLY";
19429
  GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "DEPLOYMENT_MANAGER";
19430
--------------------------------------------------------
19431
--  DDL for Function GET_V_EXT
19432
--------------------------------------------------------
1373 dpurdie 19433
 
6999 dpurdie 19434
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_V_EXT" (SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE) RETURN VARCHAR2 IS
1373 dpurdie 19435
 
6999 dpurdie 19436
/* ---------------------------------------------------------------------------
19437
    Version: 3.0.0
19438
   --------------------------------------------------------------------------- */
6031 dpurdie 19439
 
6999 dpurdie 19440
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
19441
    lastDot NUMBER;
6031 dpurdie 19442
 
6999 dpurdie 19443
BEGIN
19444
    lastDot := INSTR (SSpkg_version, '.', -1);
6031 dpurdie 19445
 
6999 dpurdie 19446
    IF ( lastDot > 0 ) AND ( lastDot != LENGTH(SSpkg_version) )
19447
    THEN
19448
        -- YES dot separator found --
19449
        SSV_EXT := SUBSTR (SSpkg_version, lastDot, LENGTH(SSpkg_version)-lastDot+1);
1373 dpurdie 19450
 
6999 dpurdie 19451
        IF IS_VERSION_EXTENSION ( SSV_EXT )
19452
        THEN
19453
            RETURN SSV_EXT;
19454
        ELSE
19455
            RETURN NULL;
19456
        END IF;
1373 dpurdie 19457
 
6999 dpurdie 19458
    ELSE
19459
        -- NO dot separator found --
19460
        RETURN NULL;
19461
    END IF;
1373 dpurdie 19462
 
6999 dpurdie 19463
END GET_V_EXT;
1373 dpurdie 19464
 
6999 dpurdie 19465
/
4040 dpurdie 19466
--------------------------------------------------------
6999 dpurdie 19467
--  DDL for Function IN_LIST_NUMBER
4040 dpurdie 19468
--------------------------------------------------------
19469
 
6999 dpurdie 19470
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER" ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS
3959 dpurdie 19471
 
1373 dpurdie 19472
/* ---------------------------------------------------------------------------
3959 dpurdie 19473
    Version: 3.0.0
1373 dpurdie 19474
   --------------------------------------------------------------------------- */
6031 dpurdie 19475
 
6999 dpurdie 19476
    sync_rtags		   RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
19477
	pos				   NUMBER;
19478
	in_list			   VARCHAR2(4000) := sInList || ',';
19479
 
3959 dpurdie 19480
BEGIN
6031 dpurdie 19481
 
6999 dpurdie 19482
	IF NOT sInList IS NULL
3959 dpurdie 19483
	THEN
6999 dpurdie 19484
		LOOP
19485
	        EXIT WHEN in_list IS NULL;
19486
	        pos := INSTR ( in_list, ',' );
19487
	        sync_rtags.extend;
19488
	        sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
19489
	        in_list := SUBSTR ( in_list, pos+1 );
19490
		END LOOP;
6031 dpurdie 19491
	END IF;
19492
 
6999 dpurdie 19493
	RETURN sync_rtags;
19494
END IN_LIST_NUMBER;
6031 dpurdie 19495
 
6999 dpurdie 19496
/
4040 dpurdie 19497
--------------------------------------------------------
6999 dpurdie 19498
--  DDL for Function IN_LIST_NUMBER2
4040 dpurdie 19499
--------------------------------------------------------
19500
 
6999 dpurdie 19501
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER2" ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS
19502
 
3959 dpurdie 19503
/* ---------------------------------------------------------------------------
6999 dpurdie 19504
    Version: 3.0.0
3959 dpurdie 19505
   --------------------------------------------------------------------------- */
1373 dpurdie 19506
 
6999 dpurdie 19507
    sync_rtags		   RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
19508
	pos				   NUMBER;
19509
	in_list			   VARCHAR2(32767) := sInList || ',';
19510
 
1373 dpurdie 19511
BEGIN
19512
 
6999 dpurdie 19513
	IF NOT sInList IS NULL
19514
	THEN
19515
		LOOP
19516
	        EXIT WHEN in_list IS NULL;
19517
	        pos := INSTR ( in_list, ',' );
19518
	        sync_rtags.extend;
19519
	        sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
19520
	        in_list := SUBSTR ( in_list, pos+1 );
19521
		END LOOP;
19522
	END IF;
1373 dpurdie 19523
 
6999 dpurdie 19524
	RETURN sync_rtags;
19525
END IN_LIST_NUMBER2;
4040 dpurdie 19526
 
6999 dpurdie 19527
/
4040 dpurdie 19528
--------------------------------------------------------
6999 dpurdie 19529
--  DDL for Function IN_LIST_VARCHAR2
4040 dpurdie 19530
--------------------------------------------------------
19531
 
6999 dpurdie 19532
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_VARCHAR2" ( sInList IN VARCHAR2, cSeparator IN VARCHAR2 ) RETURN RELMGR_VARCHAR2_TAB_t IS
19533
 
3959 dpurdie 19534
/* ---------------------------------------------------------------------------
6999 dpurdie 19535
    Version: 3.1
3959 dpurdie 19536
   --------------------------------------------------------------------------- */
1373 dpurdie 19537
 
6999 dpurdie 19538
    cItemCollection	   RELMGR_VARCHAR2_TAB_t := RELMGR_VARCHAR2_TAB_t();
19539
	pos				   NUMBER;
19540
	in_list			   VARCHAR2(4000) := sInList || cSeparator;
19541
	val				   VARCHAR2(4000);
1373 dpurdie 19542
 
19543
BEGIN
19544
 
6999 dpurdie 19545
	IF NOT sInList IS NULL
19546
	THEN
19547
		LOOP
19548
	        EXIT WHEN in_list IS NULL;
19549
	        pos := INSTR ( in_list, cSeparator );
19550
			val := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
6031 dpurdie 19551
 
6999 dpurdie 19552
			IF (NOT val IS NULL) THEN
19553
		        cItemCollection.extend;
19554
		        cItemCollection(cItemCollection.count) := val;
19555
			END IF;
6031 dpurdie 19556
 
6999 dpurdie 19557
	        in_list := SUBSTR ( in_list, pos+1 );
19558
		END LOOP;
3959 dpurdie 19559
	END IF;
6031 dpurdie 19560
 
6999 dpurdie 19561
	RETURN cItemCollection;
19562
END IN_LIST_VARCHAR2;
6031 dpurdie 19563
 
6999 dpurdie 19564
/
4040 dpurdie 19565
--------------------------------------------------------
6999 dpurdie 19566
--  DDL for Function IS_NUMBER
4040 dpurdie 19567
--------------------------------------------------------
19568
 
6999 dpurdie 19569
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IS_NUMBER" (p_val IN VARCHAR2) RETURN BOOLEAN
1373 dpurdie 19570
IS
6999 dpurdie 19571
   temp_num NUMBER;
1373 dpurdie 19572
/* ---------------------------------------------------------------------------
6999 dpurdie 19573
    Version: 1.0.0
1373 dpurdie 19574
   --------------------------------------------------------------------------- */
19575
BEGIN
6999 dpurdie 19576
   temp_num := TO_NUMBER(p_val);
19577
   RETURN true;
19578
EXCEPTION WHEN VALUE_ERROR THEN
19579
   RETURN false;
19580
END IS_NUMBER;
3959 dpurdie 19581
 
6999 dpurdie 19582
/
4040 dpurdie 19583
--------------------------------------------------------
6999 dpurdie 19584
--  DDL for Function IS_VERSION_EXTENSION
4040 dpurdie 19585
--------------------------------------------------------
19586
 
6999 dpurdie 19587
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IS_VERSION_EXTENSION" (SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE) RETURN BOOLEAN
3959 dpurdie 19588
IS
6999 dpurdie 19589
/* ---------------------------------------------------------------------------
19590
    Version: 3.0.0
19591
   --------------------------------------------------------------------------- */
1373 dpurdie 19592
 
6999 dpurdie 19593
BEGIN
19594
    IF LENGTH ( TRIM (TRANSLATE (SSV_EXT, '.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',' ') ) ) > 0
19595
    THEN
19596
        RETURN FALSE;
19597
    ELSE
19598
        RETURN TRUE;
19599
    END IF;
1373 dpurdie 19600
 
6999 dpurdie 19601
END IS_VERSION_EXTENSION;
3959 dpurdie 19602
 
6999 dpurdie 19603
/
4040 dpurdie 19604
--------------------------------------------------------
6999 dpurdie 19605
--  DDL for Function ORA_SYSDATE
4040 dpurdie 19606
--------------------------------------------------------
19607
 
6999 dpurdie 19608
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."ORA_SYSDATE" 
19609
RETURN DATE
3959 dpurdie 19610
IS
6999 dpurdie 19611
/* ---------------------------------------------------------------------------
19612
    Version: 3.0.0
19613
   --------------------------------------------------------------------------- */
19614
BEGIN
1373 dpurdie 19615
 
6999 dpurdie 19616
    RETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY' ),'DD-MON-YYYY' );
19617
END ORA_SYSDATE;
3959 dpurdie 19618
 
6999 dpurdie 19619
/
4040 dpurdie 19620
--------------------------------------------------------
6999 dpurdie 19621
--  DDL for Function ORA_SYSDATETIME
4040 dpurdie 19622
--------------------------------------------------------
19623
 
6999 dpurdie 19624
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."ORA_SYSDATETIME" 
19625
RETURN DATE
19626
IS
1373 dpurdie 19627
/* ---------------------------------------------------------------------------
6999 dpurdie 19628
    Version: 3.0.0
1373 dpurdie 19629
   --------------------------------------------------------------------------- */
19630
BEGIN
19631
 
6999 dpurdie 19632
    RETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY HH24:MI:SS' ),'DD-MON-YYYY HH24:MI:SS' );
19633
END ORA_SYSDATETIME;
1373 dpurdie 19634
 
6999 dpurdie 19635
/
19636
--------------------------------------------------------
19637
--  DDL for Function PERL_DBD_TESTFUNC
19638
--------------------------------------------------------
6031 dpurdie 19639
 
6999 dpurdie 19640
  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;
1373 dpurdie 19641
 
6999 dpurdie 19642
/
4040 dpurdie 19643
--------------------------------------------------------
6999 dpurdie 19644
--  DDL for Function RELEASE_MODE
4040 dpurdie 19645
--------------------------------------------------------
19646
 
6999 dpurdie 19647
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."RELEASE_MODE" ( nRtagId IN NUMBER ) RETURN CHAR IS
1373 dpurdie 19648
 
6999 dpurdie 19649
/* ---------------------------------------------------------------------------
19650
    Version: 3.0.0
19651
   --------------------------------------------------------------------------- */
1373 dpurdie 19652
 
6999 dpurdie 19653
   returnValue CHAR(1);
1373 dpurdie 19654
 
19655
BEGIN
19656
 
6999 dpurdie 19657
    /*--------------- Business Rules Here -------------------*/
19658
	/*-------------------------------------------------------*/
1373 dpurdie 19659
 
6999 dpurdie 19660
	-- Get release mode
19661
	SELECT rt.OFFICIAL INTO returnValue
19662
	  FROM RELEASE_TAGS rt
19663
	 WHERE rt.RTAG_ID = nRtagId;
1373 dpurdie 19664
 
6999 dpurdie 19665
	RETURN returnValue;
6031 dpurdie 19666
 
6999 dpurdie 19667
END RELEASE_MODE;
6031 dpurdie 19668
 
6999 dpurdie 19669
/
19670
--------------------------------------------------------
19671
--  DDL for Synonymn APPLICATIONS
19672
--------------------------------------------------------
3959 dpurdie 19673
 
6999 dpurdie 19674
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."APPLICATIONS" FOR "ACCESS_MANAGER"."APPLICATIONS";
19675
--------------------------------------------------------
19676
--  DDL for Synonymn APPLICATION_PAGES
19677
--------------------------------------------------------
4040 dpurdie 19678
 
6999 dpurdie 19679
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."APPLICATION_PAGES" FOR "ACCESS_MANAGER"."APPLICATION_PAGES";
4040 dpurdie 19680
--------------------------------------------------------
6999 dpurdie 19681
--  DDL for Synonymn CONTROL_OBJECTS
4040 dpurdie 19682
--------------------------------------------------------
19683
 
6999 dpurdie 19684
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."CONTROL_OBJECTS";
19685
--------------------------------------------------------
19686
--  DDL for Synonymn DATA_PERMISSIONS
19687
--------------------------------------------------------
3959 dpurdie 19688
 
6999 dpurdie 19689
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."DATA_PERMISSIONS" FOR "ACCESS_MANAGER"."DATA_PERMISSIONS";
19690
--------------------------------------------------------
19691
--  DDL for Synonymn DATA_TABLES
19692
--------------------------------------------------------
3959 dpurdie 19693
 
6999 dpurdie 19694
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."DATA_TABLES" FOR "ACCESS_MANAGER"."DATA_TABLES";
19695
--------------------------------------------------------
19696
--  DDL for Synonymn PAGE_CONTROL_OBJECTS
19697
--------------------------------------------------------
3959 dpurdie 19698
 
6999 dpurdie 19699
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PAGE_CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."PAGE_CONTROL_OBJECTS";
19700
--------------------------------------------------------
19701
--  DDL for Synonymn PERMISSION_TYPES
19702
--------------------------------------------------------
3959 dpurdie 19703
 
6999 dpurdie 19704
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PERMISSION_TYPES" FOR "ACCESS_MANAGER"."PERMISSION_TYPES";
19705
--------------------------------------------------------
19706
--  DDL for Synonymn PK_AMUTILS
19707
--------------------------------------------------------
3959 dpurdie 19708
 
6999 dpurdie 19709
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PK_AMUTILS" FOR "ACCESS_MANAGER"."PK_AMUTILS";
19710
--------------------------------------------------------
19711
--  DDL for Synonymn PK_SECURITY
19712
--------------------------------------------------------
3959 dpurdie 19713
 
6999 dpurdie 19714
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PK_SECURITY" FOR "ACCESS_MANAGER"."PK_SECURITY";
19715
--------------------------------------------------------
19716
--  DDL for Synonymn ROLES
19717
--------------------------------------------------------
1373 dpurdie 19718
 
6999 dpurdie 19719
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."ROLES" FOR "ACCESS_MANAGER"."ROLES";
19720
--------------------------------------------------------
19721
--  DDL for Synonymn ROLE_PRIVILEGES
19722
--------------------------------------------------------
1373 dpurdie 19723
 
6999 dpurdie 19724
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."ROLE_PRIVILEGES" FOR "ACCESS_MANAGER"."ROLE_PRIVILEGES";
19725
--------------------------------------------------------
19726
--  DDL for Synonymn USERS
19727
--------------------------------------------------------
6031 dpurdie 19728
 
6999 dpurdie 19729
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USERS" FOR "ACCESS_MANAGER"."USERS";
19730
--------------------------------------------------------
19731
--  DDL for Synonymn USER_APPLICATIONS
19732
--------------------------------------------------------
6031 dpurdie 19733
 
6999 dpurdie 19734
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USER_APPLICATIONS" FOR "ACCESS_MANAGER"."USER_APPLICATIONS";
19735
--------------------------------------------------------
19736
--  DDL for Synonymn USER_ROLES
19737
--------------------------------------------------------
1373 dpurdie 19738
 
6999 dpurdie 19739
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USER_ROLES" FOR "ACCESS_MANAGER"."USER_ROLES";
19740
--------------------------------------------------------
19741
--  Constraints for Table RELEASE_TAGS
19742
--------------------------------------------------------
4040 dpurdie 19743
 
6999 dpurdie 19744
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" ADD CONSTRAINT "PK_RELEASE_TAGS" PRIMARY KEY ("RTAG_ID")
19745
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19746
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19747
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19748
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19749
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19750
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("PROJ_ID" NOT NULL ENABLE);
19751
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("PARENT_RTAG_ID" NOT NULL ENABLE);
19752
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("REBUILD_STAMP" NOT NULL ENABLE);
19753
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("REBUILD_ENV" NOT NULL ENABLE);
19754
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("OFFICIAL" NOT NULL ENABLE);
19755
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("RTAG_NAME" NOT NULL ENABLE);
19756
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 19757
--------------------------------------------------------
6999 dpurdie 19758
--  Constraints for Table PACKAGE_DOCUMENTS
4040 dpurdie 19759
--------------------------------------------------------
19760
 
6999 dpurdie 19761
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("DOC_NUM" NOT NULL ENABLE);
19762
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("DOC_ID" NOT NULL ENABLE);
19763
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
19764
--------------------------------------------------------
19765
--  Constraints for Table AUTOBUILD_FAILURE
19766
--------------------------------------------------------
1373 dpurdie 19767
 
6999 dpurdie 19768
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD PRIMARY KEY ("GROUP_EMAIL_ID")
19769
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19770
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19771
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19772
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19773
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19774
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" MODIFY ("GROUP_EMAIL_ID" NOT NULL ENABLE);
19775
--------------------------------------------------------
19776
--  Constraints for Table RELEASE_METRICS
19777
--------------------------------------------------------
1373 dpurdie 19778
 
6999 dpurdie 19779
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" ADD CONSTRAINT "UNQ_RELEASE_METRICS" UNIQUE ("RTAG_ID")
19780
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19781
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19782
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19783
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19784
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19785
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
19786
--------------------------------------------------------
19787
--  Constraints for Table RELEASE_COMPONENTS
19788
--------------------------------------------------------
1373 dpurdie 19789
 
6999 dpurdie 19790
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
19791
--------------------------------------------------------
19792
--  Constraints for Table SDK_CONTENT
19793
--------------------------------------------------------
1373 dpurdie 19794
 
6999 dpurdie 19795
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("SDKPKG_STATE" NOT NULL ENABLE);
19796
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("PV_ID" NOT NULL ENABLE);
19797
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("SDKTAG_ID" NOT NULL ENABLE);
19798
--------------------------------------------------------
19799
--  Constraints for Table ACTION_TYPE
19800
--------------------------------------------------------
4040 dpurdie 19801
 
6999 dpurdie 19802
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" ADD CONSTRAINT "UNQ_ACTTYPE_ID" PRIMARY KEY ("ACTTYPE_ID")
19803
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19804
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19805
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19806
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19807
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19808
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" MODIFY ("NAME" NOT NULL ENABLE);
19809
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
4040 dpurdie 19810
--------------------------------------------------------
6999 dpurdie 19811
--  Constraints for Table PLANNED
4040 dpurdie 19812
--------------------------------------------------------
19813
 
6999 dpurdie 19814
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "UNIQUE_PV_RTAG" UNIQUE ("PV_ID", "RTAG_ID")
19815
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19816
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19817
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19818
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19819
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19820
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("VIEW_ID" NOT NULL ENABLE);
19821
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("PV_ID" NOT NULL ENABLE);
19822
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("RTAG_ID" NOT NULL ENABLE);
19823
--------------------------------------------------------
19824
--  Constraints for Table SDK_TAGS
19825
--------------------------------------------------------
6031 dpurdie 19826
 
6999 dpurdie 19827
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_PK" PRIMARY KEY ("SDKTAG_ID")
19828
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19829
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19830
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19831
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19832
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19833
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDK_STATE" NOT NULL ENABLE);
19834
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
19835
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDK_ID" NOT NULL ENABLE);
19836
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDKTAG_NAME" NOT NULL ENABLE);
19837
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDKTAG_ID" NOT NULL ENABLE);
19838
--------------------------------------------------------
19839
--  Constraints for Table RELEASE_MODIFIED
19840
--------------------------------------------------------
6031 dpurdie 19841
 
6999 dpurdie 19842
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" ADD CONSTRAINT "RELEASE_MODIFIED_PK" PRIMARY KEY ("RTAG_ID")
19843
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19844
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19845
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19846
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19847
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19848
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" MODIFY ("RTAG_ID" NOT NULL ENABLE);
19849
--------------------------------------------------------
19850
--  Constraints for Table PACKAGE_METRICS
19851
--------------------------------------------------------
1373 dpurdie 19852
 
6999 dpurdie 19853
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" ADD CONSTRAINT "UNQ_PACKAGE_METRICS" UNIQUE ("PV_ID")
19854
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19855
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19856
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19857
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19858
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19859
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" MODIFY ("PV_ID" NOT NULL ENABLE);
19860
--------------------------------------------------------
19861
--  Constraints for Table PACKAGE_BUILD_ENV
19862
--------------------------------------------------------
6031 dpurdie 19863
 
6999 dpurdie 19864
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" MODIFY ("BE_ID" NOT NULL ENABLE);
19865
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" MODIFY ("PV_ID" NOT NULL ENABLE);
19866
--------------------------------------------------------
19867
--  Constraints for Table PROCESSES
19868
--------------------------------------------------------
4040 dpurdie 19869
 
6999 dpurdie 19870
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" ADD CONSTRAINT "PROCESSES_PK" PRIMARY KEY ("PROC_ID")
19871
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19872
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19873
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19874
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19875
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19876
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" MODIFY ("PROC_NAME" NOT NULL ENABLE);
19877
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" MODIFY ("PROC_ID" NOT NULL ENABLE);
4040 dpurdie 19878
--------------------------------------------------------
6999 dpurdie 19879
--  Constraints for Table BUILD_SERVICE_CONFIG
4040 dpurdie 19880
--------------------------------------------------------
19881
 
6999 dpurdie 19882
  ALTER TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" MODIFY ("CONFIG" NOT NULL ENABLE);
19883
  ALTER TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" MODIFY ("SERVICE" NOT NULL ENABLE);
19884
--------------------------------------------------------
19885
--  Constraints for Table PROJECT_ACTION_LOG
19886
--------------------------------------------------------
4040 dpurdie 19887
 
6999 dpurdie 19888
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
19889
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("PROJ_ID" NOT NULL ENABLE);
19890
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("ACTION_DATETIME" NOT NULL ENABLE);
19891
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 19892
--------------------------------------------------------
6999 dpurdie 19893
--  Constraints for Table ARCHIVE_ACTION_LOG
4040 dpurdie 19894
--------------------------------------------------------
19895
 
6999 dpurdie 19896
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("DESCRIPTION" NOT NULL ENABLE);
19897
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("RTAG_ID" NOT NULL ENABLE);
19898
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("DATE_TIME_STAMP" NOT NULL ENABLE);
19899
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
19900
--------------------------------------------------------
19901
--  Constraints for Table VTREES
19902
--------------------------------------------------------
4040 dpurdie 19903
 
6999 dpurdie 19904
  ALTER TABLE "RELEASE_MANAGER"."VTREES" ADD CONSTRAINT "PK_VTREES" PRIMARY KEY ("VTREE_ID")
19905
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19906
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19907
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19908
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19909
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19910
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("HIDE" NOT NULL ENABLE);
19911
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("VTREE_NAME" NOT NULL ENABLE);
19912
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("PROJ_ID" NOT NULL ENABLE);
19913
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("VTREE_ID" NOT NULL ENABLE);
4040 dpurdie 19914
--------------------------------------------------------
6999 dpurdie 19915
--  Constraints for Table GBE_MACHTYPE
4040 dpurdie 19916
--------------------------------------------------------
19917
 
6999 dpurdie 19918
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" ADD PRIMARY KEY ("GBE_ID")
19919
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19920
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19921
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19922
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19923
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19924
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("BM_ID" NOT NULL ENABLE);
19925
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("GBE_VALUE" NOT NULL ENABLE);
19926
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("GBE_ID" NOT NULL ENABLE);
19927
--------------------------------------------------------
19928
--  Constraints for Table PACKAGE_INTEREST
19929
--------------------------------------------------------
3959 dpurdie 19930
 
6999 dpurdie 19931
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("USER_ID" NOT NULL ENABLE);
19932
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("PROJ_ID" NOT NULL ENABLE);
19933
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("PKG_ID" NOT NULL ENABLE);
19934
--------------------------------------------------------
19935
--  Constraints for Table PACKAGES
19936
--------------------------------------------------------
3959 dpurdie 19937
 
6999 dpurdie 19938
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" ADD CONSTRAINT "PK_PACKAGES" PRIMARY KEY ("PKG_ID")
19939
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19940
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19941
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19942
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19943
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19944
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" MODIFY ("PKG_NAME" NOT NULL ENABLE);
19945
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" MODIFY ("PKG_ID" NOT NULL ENABLE);
19946
--------------------------------------------------------
19947
--  Constraints for Table IGNORE_WARNINGS
19948
--------------------------------------------------------
3959 dpurdie 19949
 
6999 dpurdie 19950
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("DPV_ID" NOT NULL ENABLE);
19951
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("PV_ID" NOT NULL ENABLE);
19952
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
19953
--------------------------------------------------------
19954
--  Constraints for Table PRODUCT_COMPONENTS
19955
--------------------------------------------------------
3959 dpurdie 19956
 
6999 dpurdie 19957
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" MODIFY ("OS_ID" NOT NULL ENABLE);
19958
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
19959
--------------------------------------------------------
19960
--  Constraints for Table TEST_TYPES
19961
--------------------------------------------------------
3959 dpurdie 19962
 
6999 dpurdie 19963
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" ADD CONSTRAINT "PK_TEST_TYPES" PRIMARY KEY ("TEST_TYPE_ID")
19964
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19965
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19966
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19967
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19968
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19969
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" MODIFY ("TEST_TYPE_NAME" NOT NULL ENABLE);
19970
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" MODIFY ("TEST_TYPE_ID" NOT NULL ENABLE);
19971
--------------------------------------------------------
19972
--  Constraints for Table MICROSOFTDTPROPERTIES
19973
--------------------------------------------------------
1373 dpurdie 19974
 
6999 dpurdie 19975
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ADD CONSTRAINT "MICROSOFT_PK_DTPROPERTIES" PRIMARY KEY ("ID", "PROPERTY")
19976
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19977
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19978
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19979
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19980
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19981
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("VERSION" CONSTRAINT "MICROSOFT_NN_VERSION" NOT NULL ENABLE);
19982
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("PROPERTY" CONSTRAINT "MICROSOFT_NN_PROPERTY" NOT NULL ENABLE);
19983
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("ID" CONSTRAINT "MICROSOFT_NN_ID" NOT NULL ENABLE);
4040 dpurdie 19984
--------------------------------------------------------
6999 dpurdie 19985
--  Constraints for Table PRODUCT_STATES
4040 dpurdie 19986
--------------------------------------------------------
19987
 
6999 dpurdie 19988
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" ADD CONSTRAINT "PRODUCT_STATES_PK" PRIMARY KEY ("STATE_ID")
19989
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
19990
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
19991
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19992
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
19993
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
19994
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" MODIFY ("STATE" NOT NULL ENABLE);
19995
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" MODIFY ("STATE_ID" NOT NULL ENABLE);
4040 dpurdie 19996
--------------------------------------------------------
6999 dpurdie 19997
--  Constraints for Table CODE_REVIEWS
4040 dpurdie 19998
--------------------------------------------------------
19999
 
6999 dpurdie 20000
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEWS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 20001
--------------------------------------------------------
6999 dpurdie 20002
--  Constraints for Table RELEASE_CONTENT
4040 dpurdie 20003
--------------------------------------------------------
20004
 
6999 dpurdie 20005
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("PKG_STATE" NOT NULL ENABLE);
20006
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("INSERTOR_ID" NOT NULL ENABLE);
20007
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("INSERT_STAMP" NOT NULL ENABLE);
20008
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("BASE_VIEW_ID" NOT NULL ENABLE);
20009
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("PV_ID" NOT NULL ENABLE);
20010
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 20011
--------------------------------------------------------
6999 dpurdie 20012
--  Constraints for Table WORLDS
4040 dpurdie 20013
--------------------------------------------------------
20014
 
6999 dpurdie 20015
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" ADD CONSTRAINT "PK_WORLDS" PRIMARY KEY ("WORLD_ID")
20016
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20017
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20018
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20019
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20020
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20021
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" MODIFY ("WORLD_NAME" NOT NULL ENABLE);
20022
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" MODIFY ("WORLD_ID" NOT NULL ENABLE);
4040 dpurdie 20023
--------------------------------------------------------
6999 dpurdie 20024
--  Constraints for Table PEGGED_VERSIONS
4040 dpurdie 20025
--------------------------------------------------------
20026
 
6999 dpurdie 20027
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" MODIFY ("PV_ID" NOT NULL ENABLE);
20028
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 20029
--------------------------------------------------------
6999 dpurdie 20030
--  Constraints for Table ABT_ACTION_LOG
4040 dpurdie 20031
--------------------------------------------------------
20032
 
6999 dpurdie 20033
  ALTER TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" MODIFY ("RCON_ID" NOT NULL ENABLE);
4040 dpurdie 20034
--------------------------------------------------------
6999 dpurdie 20035
--  Constraints for Table LICENCING
4040 dpurdie 20036
--------------------------------------------------------
20037
 
6999 dpurdie 20038
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD CONSTRAINT "LICENCING_PK" PRIMARY KEY ("PV_ID", "LICENCE")
20039
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20040
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20041
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20042
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20043
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20044
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" MODIFY ("LICENCE" NOT NULL ENABLE);
20045
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 20046
--------------------------------------------------------
6999 dpurdie 20047
--  Constraints for Table DASH_BOARD
4040 dpurdie 20048
--------------------------------------------------------
20049
 
6999 dpurdie 20050
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("TOTAL_PACKAGES" NOT NULL ENABLE);
20051
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("AUTOMATED_PACKAGES" NOT NULL ENABLE);
20052
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("LAST_BUILD_TIME" NOT NULL ENABLE);
20053
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("RTAG_ID" NOT NULL ENABLE);
20054
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4040 dpurdie 20055
--------------------------------------------------------
6999 dpurdie 20056
--  Constraints for Table BUILD_INSTANCES
4040 dpurdie 20057
--------------------------------------------------------
20058
 
6999 dpurdie 20059
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_ID" PRIMARY KEY ("BUILD_ID")
20060
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20061
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20062
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20063
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20064
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20065
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("STATE" NOT NULL ENABLE);
20066
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("TIMESTAMP" NOT NULL ENABLE);
20067
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("PV_ID" NOT NULL ENABLE);
20068
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("BUILD_ID" NOT NULL ENABLE);
4040 dpurdie 20069
--------------------------------------------------------
6999 dpurdie 20070
--  Constraints for Table BLAT_RELEASES
4040 dpurdie 20071
--------------------------------------------------------
20072
 
6999 dpurdie 20073
  ALTER TABLE "RELEASE_MANAGER"."BLAT_RELEASES" MODIFY ("RTAG_ID" NOT NULL ENABLE);
20074
  ALTER TABLE "RELEASE_MANAGER"."BLAT_RELEASES" MODIFY ("BLAT_ID" NOT NULL ENABLE);
4040 dpurdie 20075
--------------------------------------------------------
6999 dpurdie 20076
--  Constraints for Table NOTE_MANAGER
4040 dpurdie 20077
--------------------------------------------------------
20078
 
6999 dpurdie 20079
  ALTER TABLE "RELEASE_MANAGER"."NOTE_MANAGER" ADD CONSTRAINT "PKNOTE_MANAGER1" PRIMARY KEY ("NID")
20080
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20081
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20082
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20083
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20084
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20085
  ALTER TABLE "RELEASE_MANAGER"."NOTE_MANAGER" MODIFY ("NID" NOT NULL ENABLE);
4040 dpurdie 20086
--------------------------------------------------------
6999 dpurdie 20087
--  Constraints for Table BLAT_PROJECTS
4040 dpurdie 20088
--------------------------------------------------------
20089
 
6999 dpurdie 20090
  ALTER TABLE "RELEASE_MANAGER"."BLAT_PROJECTS" MODIFY ("PROJ_ID" NOT NULL ENABLE);
20091
  ALTER TABLE "RELEASE_MANAGER"."BLAT_PROJECTS" MODIFY ("BLAT_ID" NOT NULL ENABLE);
4040 dpurdie 20092
--------------------------------------------------------
6999 dpurdie 20093
--  Constraints for Table NOTIFICATION_HISTORY
4040 dpurdie 20094
--------------------------------------------------------
20095
 
6999 dpurdie 20096
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "PK_NOTIFICATION_HISTORY" PRIMARY KEY ("RTAG_ID", "PV_ID", "USER_ID")
20097
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20098
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20099
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20100
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20101
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20102
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("DATE_TIME_STAMP" NOT NULL ENABLE);
20103
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("USER_ID" NOT NULL ENABLE);
20104
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("PV_ID" NOT NULL ENABLE);
20105
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 20106
--------------------------------------------------------
6999 dpurdie 20107
--  Constraints for Table ACTION_LOG
4040 dpurdie 20108
--------------------------------------------------------
20109
 
6999 dpurdie 20110
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTION_TIMESTAMP" NOT NULL ENABLE);
20111
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
20112
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("PV_ID" NOT NULL ENABLE);
20113
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTION_DATETIME" NOT NULL ENABLE);
20114
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 20115
--------------------------------------------------------
6999 dpurdie 20116
--  Constraints for Table RELEASE_LINKS
20117
--------------------------------------------------------
5384 dpurdie 20118
 
6999 dpurdie 20119
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" MODIFY ("REF_RTAG_ID" NOT NULL ENABLE);
20120
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 20121
--------------------------------------------------------
6999 dpurdie 20122
--  Constraints for Table VTREES_WORLD
20123
--------------------------------------------------------
4040 dpurdie 20124
 
6999 dpurdie 20125
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" MODIFY ("VTREE_ID" NOT NULL ENABLE);
20126
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" MODIFY ("WORLD_ID" NOT NULL ENABLE);
4040 dpurdie 20127
--------------------------------------------------------
6999 dpurdie 20128
--  Constraints for Table DAEMON_ACTION_LOG
4040 dpurdie 20129
--------------------------------------------------------
20130
 
6999 dpurdie 20131
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" MODIFY ("RCON_ID" NOT NULL ENABLE);
20132
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 20133
--------------------------------------------------------
6999 dpurdie 20134
--  Constraints for Table BUILD_STANDARDS_ADDENDUM
4040 dpurdie 20135
--------------------------------------------------------
20136
 
6999 dpurdie 20137
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ADD CONSTRAINT "BUILD_STANDARDS_ADDENDUM_PK" PRIMARY KEY ("BSA_ID")
20138
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20139
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20140
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20141
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20142
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20143
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BS_ID" NOT NULL ENABLE);
20144
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BSA_NAME" NOT NULL ENABLE);
20145
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BSA_ID" NOT NULL ENABLE);
4040 dpurdie 20146
--------------------------------------------------------
6999 dpurdie 20147
--  Constraints for Table BUILD_MACHINES
4040 dpurdie 20148
--------------------------------------------------------
20149
 
6999 dpurdie 20150
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" ADD CONSTRAINT "BUILD_MACHINES_PK" PRIMARY KEY ("BM_ID")
20151
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20152
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20153
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20154
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20155
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20156
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" MODIFY ("BM_NAME" NOT NULL ENABLE);
20157
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" MODIFY ("BM_ID" NOT NULL ENABLE);
4040 dpurdie 20158
--------------------------------------------------------
6999 dpurdie 20159
--  Constraints for Table PLATFORMS
4040 dpurdie 20160
--------------------------------------------------------
20161
 
6999 dpurdie 20162
  ALTER TABLE "RELEASE_MANAGER"."PLATFORMS" MODIFY ("NAME" NOT NULL ENABLE);
20163
  ALTER TABLE "RELEASE_MANAGER"."PLATFORMS" MODIFY ("CODE" NOT NULL ENABLE);
4040 dpurdie 20164
--------------------------------------------------------
6999 dpurdie 20165
--  Constraints for Table WORK_IN_PROGRESS
4040 dpurdie 20166
--------------------------------------------------------
20167
 
6999 dpurdie 20168
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
20169
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("PV_ID" NOT NULL ENABLE);
20170
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 20171
--------------------------------------------------------
6999 dpurdie 20172
--  Constraints for Table CQ_ISSUES
4040 dpurdie 20173
--------------------------------------------------------
20174
 
6999 dpurdie 20175
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
20176
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_STATE" NOT NULL ENABLE);
20177
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_ID" NOT NULL ENABLE);
20178
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_DB" NOT NULL ENABLE);
20179
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 20180
--------------------------------------------------------
6999 dpurdie 20181
--  Constraints for Table BUILD_ORDER
4040 dpurdie 20182
--------------------------------------------------------
20183
 
6999 dpurdie 20184
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("PV_ID" NOT NULL ENABLE);
20185
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("STEP_NUM" NOT NULL ENABLE);
20186
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 20187
--------------------------------------------------------
6999 dpurdie 20188
--  Constraints for Table VALIDATION_RULES_DELETE_ME
4040 dpurdie 20189
--------------------------------------------------------
20190
 
6999 dpurdie 20191
  ALTER TABLE "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" MODIFY ("IS_REQUIRED" NOT NULL ENABLE);
20192
  ALTER TABLE "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" MODIFY ("FIELD_NAME" NOT NULL ENABLE);
4040 dpurdie 20193
--------------------------------------------------------
6999 dpurdie 20194
--  Constraints for Table CODE_REVIEW_URL
4040 dpurdie 20195
--------------------------------------------------------
20196
 
6999 dpurdie 20197
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PK" PRIMARY KEY ("CR_ID")
20198
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20199
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20200
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20201
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20202
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20203
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("DATE_OF_REVIEW" NOT NULL ENABLE);
20204
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("URL" NOT NULL ENABLE);
20205
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("PROJ_ID" NOT NULL ENABLE);
20206
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("PV_ID" NOT NULL ENABLE);
20207
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("CR_ID" NOT NULL ENABLE);
4040 dpurdie 20208
--------------------------------------------------------
6999 dpurdie 20209
--  Constraints for Table RELEASE_CONFIG
4040 dpurdie 20210
--------------------------------------------------------
20211
 
6999 dpurdie 20212
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD PRIMARY KEY ("RCON_ID")
20213
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20214
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20215
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20216
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20217
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20218
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" MODIFY ("RTAG_ID" NOT NULL ENABLE);
20219
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" MODIFY ("RCON_ID" NOT NULL ENABLE);
4040 dpurdie 20220
--------------------------------------------------------
6999 dpurdie 20221
--  Constraints for Table PACKAGE_PROCESSES
4040 dpurdie 20222
--------------------------------------------------------
20223
 
6999 dpurdie 20224
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" MODIFY ("PROC_ID" NOT NULL ENABLE);
20225
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 20226
--------------------------------------------------------
6999 dpurdie 20227
--  Constraints for Table PACKAGE_BUILD_INFO
4040 dpurdie 20228
--------------------------------------------------------
20229
 
6999 dpurdie 20230
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" MODIFY ("BM_ID" NOT NULL ENABLE);
20231
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 20232
--------------------------------------------------------
6999 dpurdie 20233
--  Constraints for Table VIEW_SETTINGS
4040 dpurdie 20234
--------------------------------------------------------
20235
 
6999 dpurdie 20236
  ALTER TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
20237
  ALTER TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 20238
--------------------------------------------------------
6999 dpurdie 20239
--  Constraints for Table DEPRECATED_PACKAGES
4040 dpurdie 20240
--------------------------------------------------------
20241
 
6999 dpurdie 20242
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("COMMENTS" NOT NULL ENABLE);
20243
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("PKG_ID" NOT NULL ENABLE);
20244
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 20245
--------------------------------------------------------
6999 dpurdie 20246
--  Constraints for Table BUILD_PLAN
4040 dpurdie 20247
--------------------------------------------------------
20248
 
6999 dpurdie 20249
  ALTER TABLE "RELEASE_MANAGER"."BUILD_PLAN" ADD CONSTRAINT "BUILD_PLAN_PK" PRIMARY KEY ("RTAG_ID", "BUILD_ORDER", "PV_ID")
20250
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20251
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20252
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20253
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20254
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4040 dpurdie 20255
--------------------------------------------------------
6999 dpurdie 20256
--  Constraints for Table MESSAGE_BOARD
4040 dpurdie 20257
--------------------------------------------------------
20258
 
6999 dpurdie 20259
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" ADD CONSTRAINT "PK_MESSAGE_BOARD" PRIMARY KEY ("MSG_ID")
20260
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20261
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20262
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20263
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20264
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20265
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("SUBMITION_DATE" NOT NULL ENABLE);
20266
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("MSG_DETAILS" NOT NULL ENABLE);
20267
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("MSG_ID" NOT NULL ENABLE);
4040 dpurdie 20268
--------------------------------------------------------
6999 dpurdie 20269
--  Constraints for Table VCS_TYPE
4040 dpurdie 20270
--------------------------------------------------------
20271
 
6999 dpurdie 20272
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" ADD CONSTRAINT "VCS_TYPE_PK" PRIMARY KEY ("VCS_TYPE_ID")
20273
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20274
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20275
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20276
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20277
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20278
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("TAG" NOT NULL ENABLE);
20279
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("NAME" NOT NULL ENABLE);
20280
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("VCS_TYPE_ID" NOT NULL ENABLE);
4040 dpurdie 20281
--------------------------------------------------------
6999 dpurdie 20282
--  Constraints for Table RUN_LEVEL
4040 dpurdie 20283
--------------------------------------------------------
20284
 
6999 dpurdie 20285
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD CONSTRAINT "PK_RUN_LEVEL" PRIMARY KEY ("RCON_ID")
20286
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20287
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20288
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20289
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20290
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20291
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" MODIFY ("RCON_ID" NOT NULL ENABLE);
4040 dpurdie 20292
--------------------------------------------------------
6999 dpurdie 20293
--  Constraints for Table DO_NOT_RIPPLE
4040 dpurdie 20294
--------------------------------------------------------
20295
 
6999 dpurdie 20296
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" MODIFY ("PV_ID" NOT NULL ENABLE);
20297
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 20298
--------------------------------------------------------
6999 dpurdie 20299
--  Constraints for Table CQ_SOFTWARE_ISSUE
4040 dpurdie 20300
--------------------------------------------------------
20301
 
6999 dpurdie 20302
  ALTER TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ADD CONSTRAINT "CQ_SOFTWARE_ISSUE_PK" PRIMARY KEY ("DBID")
20303
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20304
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20305
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20306
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20307
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20308
  ALTER TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" MODIFY ("DBID" NOT NULL ENABLE);
4040 dpurdie 20309
--------------------------------------------------------
6999 dpurdie 20310
--  Constraints for Table LICENCES
4040 dpurdie 20311
--------------------------------------------------------
20312
 
6999 dpurdie 20313
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" ADD CONSTRAINT "PK_LICENCES" PRIMARY KEY ("LICENCE")
20314
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20315
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20316
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20317
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20318
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20319
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" MODIFY ("NAME" NOT NULL ENABLE);
20320
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" MODIFY ("LICENCE" NOT NULL ENABLE);
4040 dpurdie 20321
--------------------------------------------------------
6999 dpurdie 20322
--  Constraints for Table UNIT_TESTS
4040 dpurdie 20323
--------------------------------------------------------
20324
 
6999 dpurdie 20325
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("TEST_TYPES_FK" NOT NULL ENABLE);
20326
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("PV_ID" NOT NULL ENABLE);
20327
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("TEST_ID" NOT NULL ENABLE);
4040 dpurdie 20328
--------------------------------------------------------
6999 dpurdie 20329
--  Constraints for Table BLAT_SERVERS
4040 dpurdie 20330
--------------------------------------------------------
20331
 
6999 dpurdie 20332
  ALTER TABLE "RELEASE_MANAGER"."BLAT_SERVERS" ADD CONSTRAINT "BLAT_SERVERS_UK1" UNIQUE ("BLAT_SERVER_NAME")
20333
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20334
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20335
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20336
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20337
  TABLESPACE "RELEASE_MANAGER_DATA"  ENABLE;
20338
  ALTER TABLE "RELEASE_MANAGER"."BLAT_SERVERS" ADD CONSTRAINT "BLAT_SERVERS_PK" PRIMARY KEY ("BLAT_ID")
20339
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20340
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20341
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20342
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20343
  TABLESPACE "RELEASE_MANAGER_DATA"  ENABLE;
20344
  ALTER TABLE "RELEASE_MANAGER"."BLAT_SERVERS" MODIFY ("BLAT_SEQNUM" NOT NULL ENABLE);
20345
  ALTER TABLE "RELEASE_MANAGER"."BLAT_SERVERS" MODIFY ("BLAT_DISPLAY_NAME" NOT NULL ENABLE);
20346
  ALTER TABLE "RELEASE_MANAGER"."BLAT_SERVERS" MODIFY ("BLAT_SERVER_NAME" NOT NULL ENABLE);
20347
  ALTER TABLE "RELEASE_MANAGER"."BLAT_SERVERS" MODIFY ("BLAT_ID" NOT NULL ENABLE);
4040 dpurdie 20348
--------------------------------------------------------
6999 dpurdie 20349
--  Constraints for Table CQ_STATEDEF
4040 dpurdie 20350
--------------------------------------------------------
20351
 
6999 dpurdie 20352
  ALTER TABLE "RELEASE_MANAGER"."CQ_STATEDEF" ADD CONSTRAINT "CQ_STATEDEF_PK" PRIMARY KEY ("ID")
20353
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20354
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20355
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20356
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20357
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20358
  ALTER TABLE "RELEASE_MANAGER"."CQ_STATEDEF" MODIFY ("ID" NOT NULL ENABLE);
4040 dpurdie 20359
--------------------------------------------------------
6999 dpurdie 20360
--  Constraints for Table TEMP_ENV_STATES
4040 dpurdie 20361
--------------------------------------------------------
20362
 
6999 dpurdie 20363
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("TES_STATE" NOT NULL ENABLE);
20364
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("PKG_ID" NOT NULL ENABLE);
20365
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("PV_ID" NOT NULL ENABLE);
20366
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("LEVEL_NUM" NOT NULL ENABLE);
20367
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("SESSION_NUM" NOT NULL ENABLE);
4040 dpurdie 20368
--------------------------------------------------------
6999 dpurdie 20369
--  Constraints for Table CQ_USERS
4040 dpurdie 20370
--------------------------------------------------------
20371
 
6999 dpurdie 20372
  ALTER TABLE "RELEASE_MANAGER"."CQ_USERS" ADD CONSTRAINT "CQ_USERS_PK" PRIMARY KEY ("DBID")
20373
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20374
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20375
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20376
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20377
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20378
  ALTER TABLE "RELEASE_MANAGER"."CQ_USERS" MODIFY ("DBID" NOT NULL ENABLE);
4040 dpurdie 20379
--------------------------------------------------------
6999 dpurdie 20380
--  Constraints for Table TEMP_ENV_DEPS
4040 dpurdie 20381
--------------------------------------------------------
20382
 
6999 dpurdie 20383
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" ADD CONSTRAINT "TEMP_ENV_DEPS_PK" PRIMARY KEY ("PV_ID", "SESSION_NUM", "DPV_ID")
20384
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20385
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20386
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20387
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20388
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20389
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("DPKG_ID" NOT NULL ENABLE);
20390
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("DPV_ID" NOT NULL ENABLE);
20391
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("PKG_ID" NOT NULL ENABLE);
20392
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("PV_ID" NOT NULL ENABLE);
20393
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("SESSION_NUM" NOT NULL ENABLE);
4040 dpurdie 20394
--------------------------------------------------------
6999 dpurdie 20395
--  Constraints for Table RUN_LEVEL_SCHEDULE
4040 dpurdie 20396
--------------------------------------------------------
20397
 
6999 dpurdie 20398
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" ADD PRIMARY KEY ("SCHEDULED_ID")
20399
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20400
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20401
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20402
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20403
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20404
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" MODIFY ("SCHEDULED_ID" NOT NULL ENABLE);
4040 dpurdie 20405
--------------------------------------------------------
6999 dpurdie 20406
--  Constraints for Table SDK_NAMES
4040 dpurdie 20407
--------------------------------------------------------
20408
 
6999 dpurdie 20409
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_PK" PRIMARY KEY ("SDK_ID")
20410
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20411
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20412
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20413
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20414
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20415
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_UK1" UNIQUE ("SDK_NAME")
20416
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20417
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20418
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20419
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20420
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20421
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("PROJ_ID" NOT NULL ENABLE);
20422
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("VIEW_ID" NOT NULL ENABLE);
20423
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("SDK_NAME" NOT NULL ENABLE);
20424
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("SDK_ID" NOT NULL ENABLE);
4040 dpurdie 20425
--------------------------------------------------------
6999 dpurdie 20426
--  Constraints for Table PROJECT_EXTENTIONS
4040 dpurdie 20427
--------------------------------------------------------
20428
 
6999 dpurdie 20429
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_EXTENTIONS" MODIFY ("EXT_NAME" NOT NULL ENABLE);
4040 dpurdie 20430
--------------------------------------------------------
6999 dpurdie 20431
--  Constraints for Table MEMBERS_GROUP
4040 dpurdie 20432
--------------------------------------------------------
20433
 
6999 dpurdie 20434
  ALTER TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" MODIFY ("GROUP_EMAIL_ID" NOT NULL ENABLE);
4040 dpurdie 20435
--------------------------------------------------------
6999 dpurdie 20436
--  Constraints for Table TEST_RUN
4040 dpurdie 20437
--------------------------------------------------------
20438
 
6999 dpurdie 20439
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" ADD CONSTRAINT "PK_TEST_RUN" PRIMARY KEY ("TESTRUN_ID")
20440
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20441
  STORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20442
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20443
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20444
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20445
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TEST_OUTCOME" NOT NULL ENABLE);
20446
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TEST_NAME" NOT NULL ENABLE);
20447
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TYPE" NOT NULL ENABLE);
20448
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("PLATFORM" NOT NULL ENABLE);
20449
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("BUILD_ID" NOT NULL ENABLE);
20450
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TESTRUN_ID" NOT NULL ENABLE);
4040 dpurdie 20451
--------------------------------------------------------
6999 dpurdie 20452
--  Constraints for Table BUILD_STANDARDS
4040 dpurdie 20453
--------------------------------------------------------
20454
 
6999 dpurdie 20455
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" ADD CONSTRAINT "BUILD_STANDARDS_PK" PRIMARY KEY ("BS_ID")
20456
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20457
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20458
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20459
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20460
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20461
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" MODIFY ("BS_NAME" NOT NULL ENABLE);
20462
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" MODIFY ("BS_ID" NOT NULL ENABLE);
4040 dpurdie 20463
--------------------------------------------------------
6999 dpurdie 20464
--  Constraints for Table RUNTIME_DEPENDENCIES
4040 dpurdie 20465
--------------------------------------------------------
20466
 
6999 dpurdie 20467
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("MOD_USER" NOT NULL ENABLE);
20468
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
20469
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 20470
--------------------------------------------------------
6999 dpurdie 20471
--  Constraints for Table DAEMON_INSTRUCTIONS
4040 dpurdie 20472
--------------------------------------------------------
20473
 
6999 dpurdie 20474
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_UK1" UNIQUE ("OP_CODE", "RTAG_ID", "PV_ID")
20475
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20476
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20477
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20478
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20479
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20480
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_PK" PRIMARY KEY ("DAEMON_INSTRUCTIONS_ID")
20481
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20482
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20483
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20484
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20485
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20486
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" MODIFY ("OP_CODE" NOT NULL ENABLE);
20487
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" MODIFY ("DAEMON_INSTRUCTIONS_ID" NOT NULL ENABLE);
4040 dpurdie 20488
--------------------------------------------------------
6999 dpurdie 20489
--  Constraints for Table PACKAGE_VERSIONS
4040 dpurdie 20490
--------------------------------------------------------
20491
 
6999 dpurdie 20492
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PK_PACKAGE_VERSIONS" PRIMARY KEY ("PV_ID")
20493
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20494
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20495
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20496
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20497
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20498
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("BUILD_TYPE" NOT NULL ENABLE);
20499
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("LAST_PV_ID" NOT NULL ENABLE);
20500
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("OWNER_ID" NOT NULL ENABLE);
20501
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("CREATOR_ID" NOT NULL ENABLE);
20502
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("MODIFIER_ID" NOT NULL ENABLE);
20503
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("DLOCKED" NOT NULL ENABLE);
20504
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PKG_VERSION" NOT NULL ENABLE);
20505
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PKG_ID" NOT NULL ENABLE);
20506
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 20507
--------------------------------------------------------
6999 dpurdie 20508
--  Constraints for Table BUILD_ENV_DOCUMENTS
4040 dpurdie 20509
--------------------------------------------------------
20510
 
6999 dpurdie 20511
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" MODIFY ("DOC_NUM" NOT NULL ENABLE);
20512
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" MODIFY ("BE_ID" NOT NULL ENABLE);
4040 dpurdie 20513
--------------------------------------------------------
6999 dpurdie 20514
--  Constraints for Table LXR_STATE
4040 dpurdie 20515
--------------------------------------------------------
20516
 
6999 dpurdie 20517
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" ADD CONSTRAINT "LXR_STATE_PK" PRIMARY KEY ("RTAG_ID")
20518
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20519
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20520
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20521
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20522
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20523
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 20524
--------------------------------------------------------
6999 dpurdie 20525
--  Constraints for Table BUILD_MACHINE_CONFIG
4040 dpurdie 20526
--------------------------------------------------------
20527
 
6999 dpurdie 20528
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ADD CONSTRAINT "PK_BUILD_MACHINE_CONFIG" PRIMARY KEY ("BMCON_ID")
20529
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20530
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20531
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20532
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20533
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20534
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("ACTIVE" NOT NULL ENABLE);
20535
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("GBE_ID" NOT NULL ENABLE);
20536
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("MACHINE_HOSTNAME" NOT NULL ENABLE);
20537
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("DISPLAY_NAME" NOT NULL ENABLE);
20538
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("BMCON_ID" NOT NULL ENABLE);
4040 dpurdie 20539
--------------------------------------------------------
6999 dpurdie 20540
--  Constraints for Table ADVISORY_RIPPLE
4040 dpurdie 20541
--------------------------------------------------------
20542
 
6999 dpurdie 20543
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" MODIFY ("PV_ID" NOT NULL ENABLE);
20544
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 20545
--------------------------------------------------------
6999 dpurdie 20546
--  Constraints for Table PROJECTS
4040 dpurdie 20547
--------------------------------------------------------
20548
 
6999 dpurdie 20549
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" ADD CONSTRAINT "PK_PROJECTS" PRIMARY KEY ("PROJ_ID")
20550
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20551
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20552
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20553
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20554
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20555
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" MODIFY ("PROJ_NAME" NOT NULL ENABLE);
20556
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4040 dpurdie 20557
--------------------------------------------------------
6999 dpurdie 20558
--  Constraints for Table PACKAGE_PATCHES
4040 dpurdie 20559
--------------------------------------------------------
20560
 
6999 dpurdie 20561
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("INSTALL_ORDER" NOT NULL ENABLE);
20562
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("PATCH_ID" NOT NULL ENABLE);
20563
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 20564
--------------------------------------------------------
6999 dpurdie 20565
--  Constraints for Table PACKAGE_DEPENDENCIES
4040 dpurdie 20566
--------------------------------------------------------
20567
 
6999 dpurdie 20568
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("BUILD_TYPE" NOT NULL ENABLE);
20569
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("DPKG_ID" NOT NULL ENABLE);
20570
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("PKG_ID" NOT NULL ENABLE);
20571
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("DPV_ID" NOT NULL ENABLE);
20572
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 20573
--------------------------------------------------------
6999 dpurdie 20574
--  Constraints for Table JIRA_ISSUES
4040 dpurdie 20575
--------------------------------------------------------
20576
 
6999 dpurdie 20577
  ALTER TABLE "RELEASE_MANAGER"."JIRA_ISSUES" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 20578
--------------------------------------------------------
6999 dpurdie 20579
--  Constraints for Table ADDITIONAL_NOTES
4040 dpurdie 20580
--------------------------------------------------------
20581
 
6999 dpurdie 20582
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("MOD_USER" NOT NULL ENABLE);
20583
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
20584
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("NOTE_TITLE" NOT NULL ENABLE);
20585
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("PV_ID" NOT NULL ENABLE);
20586
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("NOTE_ID" NOT NULL ENABLE);
4040 dpurdie 20587
--------------------------------------------------------
6999 dpurdie 20588
--  Constraints for Table ARCHIVE_DATA
4040 dpurdie 20589
--------------------------------------------------------
20590
 
6999 dpurdie 20591
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" MODIFY ("PV_ID" NOT NULL ENABLE);
20592
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 20593
--------------------------------------------------------
6999 dpurdie 20594
--  Constraints for Table BUILD_ENVIRONMENTS
4040 dpurdie 20595
--------------------------------------------------------
20596
 
6999 dpurdie 20597
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ADD CONSTRAINT "PK_BUILD_ENVIRONMENTS" PRIMARY KEY ("BE_ID")
20598
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20599
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20600
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20601
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20602
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20603
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" MODIFY ("BE_NAME" NOT NULL ENABLE);
20604
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" MODIFY ("BE_ID" NOT NULL ENABLE);
4040 dpurdie 20605
--------------------------------------------------------
6999 dpurdie 20606
--  Constraints for Table VIEWS
4040 dpurdie 20607
--------------------------------------------------------
20608
 
6999 dpurdie 20609
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" ADD CONSTRAINT "PK_VIEWS" PRIMARY KEY ("VIEW_ID")
20610
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
20611
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
20612
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
20613
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20614
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
20615
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("PUBLIC_READ" NOT NULL ENABLE);
20616
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("BASE_VIEW" NOT NULL ENABLE);
20617
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("OWNER_ID" NOT NULL ENABLE);
20618
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("VIEW_NAME" NOT NULL ENABLE);
20619
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4040 dpurdie 20620
--------------------------------------------------------
6999 dpurdie 20621
--  Constraints for Table VIEW_DEF
4040 dpurdie 20622
--------------------------------------------------------
20623
 
6999 dpurdie 20624
  ALTER TABLE "RELEASE_MANAGER"."VIEW_DEF" MODIFY ("PKG_ID" NOT NULL ENABLE);
20625
  ALTER TABLE "RELEASE_MANAGER"."VIEW_DEF" MODIFY ("VIEW_ID" NOT NULL ENABLE);
7039 dpurdie 20626
--------------------------------------------------------
20627
--  Ref Constraints for Table ABT_ACTION_LOG
20628
--------------------------------------------------------
20629
 
20630
  ALTER TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" ADD FOREIGN KEY ("RCON_ID")
20631
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
20632
--------------------------------------------------------
20633
--  Ref Constraints for Table ACTION_LOG
20634
--------------------------------------------------------
20635
 
20636
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" ADD CONSTRAINT "ACTION_LOG_FK1" FOREIGN KEY ("PV_ID")
20637
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
20638
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" ADD CONSTRAINT "REFACTION_TYPE48" FOREIGN KEY ("ACTTYPE_ID")
20639
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
20640
--------------------------------------------------------
20641
--  Ref Constraints for Table ADDITIONAL_NOTES
20642
--------------------------------------------------------
20643
 
20644
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" ADD CONSTRAINT "FK_ADDITION_REF_PV_ID" FOREIGN KEY ("PV_ID")
20645
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20646
--------------------------------------------------------
20647
--  Ref Constraints for Table ADVISORY_RIPPLE
20648
--------------------------------------------------------
20649
 
20650
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" ADD FOREIGN KEY ("RTAG_ID")
20651
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
20652
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" ADD FOREIGN KEY ("PV_ID")
20653
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20654
--------------------------------------------------------
20655
--  Ref Constraints for Table AUTOBUILD_FAILURE
20656
--------------------------------------------------------
20657
 
20658
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD FOREIGN KEY ("PROJ_ID")
20659
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
20660
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD FOREIGN KEY ("VIEW_ID")
20661
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
20662
--------------------------------------------------------
20663
--  Ref Constraints for Table BLAT_PROJECTS
20664
--------------------------------------------------------
20665
 
20666
  ALTER TABLE "RELEASE_MANAGER"."BLAT_PROJECTS" ADD CONSTRAINT "BLAT_PROJECTS_FK1" FOREIGN KEY ("BLAT_ID")
20667
	  REFERENCES "RELEASE_MANAGER"."BLAT_SERVERS" ("BLAT_ID") ON DELETE CASCADE ENABLE;
20668
  ALTER TABLE "RELEASE_MANAGER"."BLAT_PROJECTS" ADD CONSTRAINT "BLAT_PROJECTS_FK2" FOREIGN KEY ("PROJ_ID")
20669
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ON DELETE CASCADE ENABLE;
20670
--------------------------------------------------------
20671
--  Ref Constraints for Table BLAT_RELEASES
20672
--------------------------------------------------------
20673
 
20674
  ALTER TABLE "RELEASE_MANAGER"."BLAT_RELEASES" ADD CONSTRAINT "BLAT_RELEASES_FK1" FOREIGN KEY ("BLAT_ID")
20675
	  REFERENCES "RELEASE_MANAGER"."BLAT_SERVERS" ("BLAT_ID") ON DELETE CASCADE ENABLE;
20676
  ALTER TABLE "RELEASE_MANAGER"."BLAT_RELEASES" ADD CONSTRAINT "BLAT_RELEASES_FK2" FOREIGN KEY ("RTAG_ID")
20677
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
20678
--------------------------------------------------------
20679
--  Ref Constraints for Table BUILD_ENV_DOCUMENTS
20680
--------------------------------------------------------
20681
 
20682
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" ADD CONSTRAINT "FK_BUILD_E_DOCS_REF_BUILD_ENV" FOREIGN KEY ("BE_ID")
20683
	  REFERENCES "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") ENABLE;
20684
--------------------------------------------------------
20685
--  Ref Constraints for Table BUILD_INSTANCES
20686
--------------------------------------------------------
20687
 
20688
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_INSTANCES_FK1" FOREIGN KEY ("RTAG_ID")
20689
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE SET NULL ENABLE;
20690
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_INSTANCES_FK2" FOREIGN KEY ("PV_ID")
20691
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
20692
--------------------------------------------------------
20693
--  Ref Constraints for Table BUILD_MACHINE_CONFIG
20694
--------------------------------------------------------
20695
 
20696
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ADD CONSTRAINT "FK_BM_GBE_ID" FOREIGN KEY ("GBE_ID")
20697
	  REFERENCES "RELEASE_MANAGER"."GBE_MACHTYPE" ("GBE_ID") ENABLE;
20698
--------------------------------------------------------
20699
--  Ref Constraints for Table BUILD_ORDER
20700
--------------------------------------------------------
20701
 
20702
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" ADD CONSTRAINT "FK_BO_PV_ID" FOREIGN KEY ("PV_ID")
20703
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20704
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" ADD CONSTRAINT "FK_BO_RTAG_ID" FOREIGN KEY ("RTAG_ID")
20705
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
20706
--------------------------------------------------------
20707
--  Ref Constraints for Table BUILD_PLAN
20708
--------------------------------------------------------
20709
 
20710
  ALTER TABLE "RELEASE_MANAGER"."BUILD_PLAN" ADD CONSTRAINT "BUILD_PLAN_FK1" FOREIGN KEY ("PV_ID")
20711
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
20712
  ALTER TABLE "RELEASE_MANAGER"."BUILD_PLAN" ADD CONSTRAINT "BUILD_PLAN_FK2" FOREIGN KEY ("RTAG_ID")
20713
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
20714
--------------------------------------------------------
20715
--  Ref Constraints for Table BUILD_STANDARDS_ADDENDUM
20716
--------------------------------------------------------
20717
 
20718
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ADD CONSTRAINT "BUILD_STANDARDS_ADDENDUM_R01" FOREIGN KEY ("BS_ID")
20719
	  REFERENCES "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") ENABLE;
20720
--------------------------------------------------------
20721
--  Ref Constraints for Table CODE_REVIEWS
20722
--------------------------------------------------------
20723
 
20724
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEWS" ADD CONSTRAINT "FK_CODE_REV_REF_PV_ID" FOREIGN KEY ("PV_ID")
20725
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20726
--------------------------------------------------------
20727
--  Ref Constraints for Table CODE_REVIEW_URL
20728
--------------------------------------------------------
20729
 
20730
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PACKAGE_V_FK1" FOREIGN KEY ("PV_ID")
20731
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20732
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PROJECT_V_FK1" FOREIGN KEY ("PROJ_ID")
20733
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
20734
--------------------------------------------------------
20735
--  Ref Constraints for Table CQ_ISSUES
20736
--------------------------------------------------------
20737
 
20738
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" ADD CONSTRAINT "FK_CQ_PV_ID" FOREIGN KEY ("PV_ID")
20739
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20740
--------------------------------------------------------
20741
--  Ref Constraints for Table DAEMON_ACTION_LOG
20742
--------------------------------------------------------
20743
 
20744
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" ADD FOREIGN KEY ("RCON_ID")
20745
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
20746
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" ADD FOREIGN KEY ("ACTTYPE_ID")
20747
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
20748
--------------------------------------------------------
20749
--  Ref Constraints for Table DAEMON_INSTRUCTIONS
20750
--------------------------------------------------------
20751
 
20752
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_PV_ID_FK" FOREIGN KEY ("PV_ID")
20753
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20754
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_RTAG_ID_FK" FOREIGN KEY ("RTAG_ID")
20755
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
20756
--------------------------------------------------------
20757
--  Ref Constraints for Table DASH_BOARD
20758
--------------------------------------------------------
20759
 
20760
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" ADD FOREIGN KEY ("PROJ_ID")
20761
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
20762
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" ADD FOREIGN KEY ("RTAG_ID")
20763
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
20764
--------------------------------------------------------
20765
--  Ref Constraints for Table DO_NOT_RIPPLE
20766
--------------------------------------------------------
20767
 
20768
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" ADD FOREIGN KEY ("PV_ID")
20769
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20770
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" ADD FOREIGN KEY ("RTAG_ID")
20771
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
20772
--------------------------------------------------------
20773
--  Ref Constraints for Table GBE_MACHTYPE
20774
--------------------------------------------------------
20775
 
20776
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" ADD CONSTRAINT "GBE_MACHTYPE_BUILD_MACHIN_FK1" FOREIGN KEY ("BM_ID")
20777
	  REFERENCES "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") ENABLE;
20778
--------------------------------------------------------
20779
--  Ref Constraints for Table IGNORE_WARNINGS
20780
--------------------------------------------------------
20781
 
20782
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_DPV_ID" FOREIGN KEY ("DPV_ID")
20783
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20784
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_PV_ID" FOREIGN KEY ("PV_ID")
20785
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20786
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_RTAG_ID" FOREIGN KEY ("RTAG_ID")
20787
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
20788
--------------------------------------------------------
20789
--  Ref Constraints for Table JIRA_ISSUES
20790
--------------------------------------------------------
20791
 
20792
  ALTER TABLE "RELEASE_MANAGER"."JIRA_ISSUES" ADD CONSTRAINT "FK_JIRA_PV_ID" FOREIGN KEY ("PV_ID")
20793
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20794
--------------------------------------------------------
20795
--  Ref Constraints for Table LICENCING
20796
--------------------------------------------------------
20797
 
20798
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD FOREIGN KEY ("PV_ID")
20799
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20800
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD FOREIGN KEY ("LICENCE")
20801
	  REFERENCES "RELEASE_MANAGER"."LICENCES" ("LICENCE") ENABLE;
20802
--------------------------------------------------------
20803
--  Ref Constraints for Table LXR_STATE
20804
--------------------------------------------------------
20805
 
20806
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" ADD CONSTRAINT "LXR_STATE_FK1" FOREIGN KEY ("RTAG_ID")
20807
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
20808
--------------------------------------------------------
20809
--  Ref Constraints for Table MEMBERS_GROUP
20810
--------------------------------------------------------
20811
 
20812
  ALTER TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" ADD FOREIGN KEY ("GROUP_EMAIL_ID")
20813
	  REFERENCES "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ("GROUP_EMAIL_ID") ENABLE;
20814
--------------------------------------------------------
20815
--  Ref Constraints for Table NOTIFICATION_HISTORY
20816
--------------------------------------------------------
20817
 
20818
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "FK_NH_RTAG_ID" FOREIGN KEY ("RTAG_ID")
20819
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
20820
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "FK_NK_PV_ID" FOREIGN KEY ("PV_ID")
20821
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") DISABLE;
20822
--------------------------------------------------------
20823
--  Ref Constraints for Table PACKAGE_BUILD_ENV
20824
--------------------------------------------------------
20825
 
20826
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ADD CONSTRAINT "FK_PKG_BUILD_E_REF_BUILD_ENV" FOREIGN KEY ("BE_ID")
20827
	  REFERENCES "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") ENABLE;
20828
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ADD CONSTRAINT "FK_PKG_BUILD_E_REF_PKG_VERSION" FOREIGN KEY ("PV_ID")
20829
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20830
--------------------------------------------------------
20831
--  Ref Constraints for Table PACKAGE_BUILD_INFO
20832
--------------------------------------------------------
20833
 
20834
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" ADD FOREIGN KEY ("PV_ID")
20835
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20836
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" ADD FOREIGN KEY ("BM_ID")
20837
	  REFERENCES "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") ENABLE;
20838
--------------------------------------------------------
20839
--  Ref Constraints for Table PACKAGE_DEPENDENCIES
20840
--------------------------------------------------------
20841
 
20842
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK1" FOREIGN KEY ("PV_ID")
20843
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
20844
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK2" FOREIGN KEY ("DPV_ID")
20845
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
20846
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK3" FOREIGN KEY ("DPKG_ID")
20847
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ON DELETE CASCADE ENABLE;
20848
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK4" FOREIGN KEY ("PKG_ID")
20849
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ON DELETE CASCADE ENABLE;
20850
--------------------------------------------------------
20851
--  Ref Constraints for Table PACKAGE_DOCUMENTS
20852
--------------------------------------------------------
20853
 
20854
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ADD CONSTRAINT "FK_PKGDOCS_REF_PV" FOREIGN KEY ("PV_ID")
20855
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20856
--------------------------------------------------------
20857
--  Ref Constraints for Table PACKAGE_INTEREST
20858
--------------------------------------------------------
20859
 
20860
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" ADD FOREIGN KEY ("PROJ_ID")
20861
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
20862
--------------------------------------------------------
20863
--  Ref Constraints for Table PACKAGE_METRICS
20864
--------------------------------------------------------
20865
 
20866
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" ADD CONSTRAINT "FK_PACKAGE_METRICS_PV_ID" FOREIGN KEY ("PV_ID")
20867
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20868
--------------------------------------------------------
20869
--  Ref Constraints for Table PACKAGE_PATCHES
20870
--------------------------------------------------------
20871
 
20872
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" ADD CONSTRAINT "FK_PP_PATCH_ID" FOREIGN KEY ("PATCH_ID")
20873
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20874
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" ADD CONSTRAINT "FK_PP_PV_ID" FOREIGN KEY ("PV_ID")
20875
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20876
--------------------------------------------------------
20877
--  Ref Constraints for Table PACKAGE_PROCESSES
20878
--------------------------------------------------------
20879
 
20880
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" ADD CONSTRAINT "PACKAGE_PROCESSES_R01" FOREIGN KEY ("PV_ID")
20881
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20882
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" ADD CONSTRAINT "PACKAGE_PROCESSES_R02" FOREIGN KEY ("PROC_ID")
20883
	  REFERENCES "RELEASE_MANAGER"."PROCESSES" ("PROC_ID") ENABLE;
20884
--------------------------------------------------------
20885
--  Ref Constraints for Table PACKAGE_VERSIONS
20886
--------------------------------------------------------
20887
 
20888
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PACKAGE_VERSIONS_VCS_TYPE" FOREIGN KEY ("VCS_TYPE_ID")
20889
	  REFERENCES "RELEASE_MANAGER"."VCS_TYPE" ("VCS_TYPE_ID") ENABLE;
20890
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PKG_NAME_EXISTS" FOREIGN KEY ("PKG_ID")
20891
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
20892
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD FOREIGN KEY ("BS_ID")
20893
	  REFERENCES "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") ENABLE;
20894
--------------------------------------------------------
20895
--  Ref Constraints for Table PEGGED_VERSIONS
20896
--------------------------------------------------------
20897
 
20898
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" ADD CONSTRAINT "PEGGED_VERSIONS_PACKAG_FK1" FOREIGN KEY ("PV_ID")
20899
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20900
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" ADD CONSTRAINT "PEGGED_VERSIONS_RELEAS_FK1" FOREIGN KEY ("RTAG_ID")
20901
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
20902
--------------------------------------------------------
20903
--  Ref Constraints for Table PLANNED
20904
--------------------------------------------------------
20905
 
20906
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFPACKAGE_VERSIONS54" FOREIGN KEY ("PV_ID")
20907
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20908
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFRELEASE_TAGS53" FOREIGN KEY ("RTAG_ID")
20909
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
20910
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFVIEWS55" FOREIGN KEY ("VIEW_ID")
20911
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
20912
--------------------------------------------------------
20913
--  Ref Constraints for Table PLANNED_VERSIONS
20914
--------------------------------------------------------
20915
 
20916
  ALTER TABLE "RELEASE_MANAGER"."PLANNED_VERSIONS" ADD FOREIGN KEY ("PKG_ID")
20917
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
20918
--------------------------------------------------------
20919
--  Ref Constraints for Table PRODUCT_COMPONENTS
20920
--------------------------------------------------------
20921
 
20922
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" ADD CONSTRAINT "REFPACKAGE_VERSIONS49" FOREIGN KEY ("PV_ID")
20923
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20924
--------------------------------------------------------
20925
--  Ref Constraints for Table PROJECT_ACTION_LOG
20926
--------------------------------------------------------
20927
 
20928
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ADD CONSTRAINT "REFACTION_TYPE63" FOREIGN KEY ("ACTTYPE_ID")
20929
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
20930
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ADD FOREIGN KEY ("RTAG_ID")
20931
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") DISABLE;
20932
--------------------------------------------------------
20933
--  Ref Constraints for Table RELEASE_COMPONENTS
20934
--------------------------------------------------------
20935
 
20936
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" ADD CONSTRAINT "FK_RCONT_PV_ID" FOREIGN KEY ("PV_ID")
20937
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20938
--------------------------------------------------------
20939
--  Ref Constraints for Table RELEASE_CONFIG
20940
--------------------------------------------------------
20941
 
20942
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD FOREIGN KEY ("RTAG_ID")
20943
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
20944
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD FOREIGN KEY ("GBE_ID")
20945
	  REFERENCES "RELEASE_MANAGER"."GBE_MACHTYPE" ("GBE_ID") ENABLE;
20946
--------------------------------------------------------
20947
--  Ref Constraints for Table RELEASE_CONTENT
20948
--------------------------------------------------------
20949
 
20950
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD CONSTRAINT "RELEASE_CONTENT_FK1" FOREIGN KEY ("SDKTAG_ID")
20951
	  REFERENCES "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") ENABLE;
20952
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD FOREIGN KEY ("PKG_ID")
20953
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
20954
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD FOREIGN KEY ("PRODUCT_STATE")
20955
	  REFERENCES "RELEASE_MANAGER"."PRODUCT_STATES" ("STATE_ID") ENABLE;
20956
--------------------------------------------------------
20957
--  Ref Constraints for Table RELEASE_LINKS
20958
--------------------------------------------------------
20959
 
20960
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" ADD CONSTRAINT "REFRELEASE_TAGS56" FOREIGN KEY ("RTAG_ID")
20961
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
20962
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" ADD CONSTRAINT "REFRELEASE_TAGS58" FOREIGN KEY ("REF_RTAG_ID")
20963
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
20964
--------------------------------------------------------
20965
--  Ref Constraints for Table RELEASE_METRICS
20966
--------------------------------------------------------
20967
 
20968
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" ADD CONSTRAINT "FK_RELEASE_METRICS_RTAG_ID" FOREIGN KEY ("RTAG_ID")
20969
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
20970
--------------------------------------------------------
20971
--  Ref Constraints for Table RELEASE_MODIFIED
20972
--------------------------------------------------------
20973
 
20974
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" ADD CONSTRAINT "RELEASE_MODIFIED_RELEASE__FK1" FOREIGN KEY ("RTAG_ID")
20975
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
20976
--------------------------------------------------------
20977
--  Ref Constraints for Table RUNTIME_DEPENDENCIES
20978
--------------------------------------------------------
20979
 
20980
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ADD CONSTRAINT "FK_RTD_PV_ID" FOREIGN KEY ("PV_ID")
20981
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20982
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ADD CONSTRAINT "FK_RTD_RTD_ID" FOREIGN KEY ("RTD_ID")
20983
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20984
--------------------------------------------------------
20985
--  Ref Constraints for Table RUN_LEVEL
20986
--------------------------------------------------------
20987
 
20988
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD FOREIGN KEY ("RCON_ID")
20989
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
20990
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD FOREIGN KEY ("CURRENT_PKG_ID_BEING_BUILT")
20991
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
20992
--------------------------------------------------------
20993
--  Ref Constraints for Table SDK_CONTENT
20994
--------------------------------------------------------
20995
 
20996
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" ADD CONSTRAINT "SDK_CONTENT_FK1" FOREIGN KEY ("PV_ID")
20997
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
20998
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" ADD CONSTRAINT "SDK_CONTENT_FK2" FOREIGN KEY ("SDKTAG_ID")
20999
	  REFERENCES "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") ENABLE;
21000
--------------------------------------------------------
21001
--  Ref Constraints for Table SDK_NAMES
21002
--------------------------------------------------------
21003
 
21004
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_FK1" FOREIGN KEY ("VIEW_ID")
21005
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
21006
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_FK2" FOREIGN KEY ("PROJ_ID")
21007
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
21008
--------------------------------------------------------
21009
--  Ref Constraints for Table SDK_TAGS
21010
--------------------------------------------------------
21011
 
21012
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_FK1" FOREIGN KEY ("SDK_ID")
21013
	  REFERENCES "RELEASE_MANAGER"."SDK_NAMES" ("SDK_ID") ENABLE;
21014
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_FK2" FOREIGN KEY ("RTAG_ID")
21015
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
21016
--------------------------------------------------------
21017
--  Ref Constraints for Table TEST_RUN
21018
--------------------------------------------------------
21019
 
21020
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" ADD CONSTRAINT "TEST_RUN_FK1" FOREIGN KEY ("BUILD_ID")
21021
	  REFERENCES "RELEASE_MANAGER"."BUILD_INSTANCES" ("BUILD_ID") ON DELETE CASCADE ENABLE;
21022
--------------------------------------------------------
21023
--  Ref Constraints for Table UNIT_TESTS
21024
--------------------------------------------------------
21025
 
21026
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" ADD CONSTRAINT "FK_UT_REF_PV_ID" FOREIGN KEY ("PV_ID")
21027
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
21028
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" ADD CONSTRAINT "FK_UT_REF_TEST_TYPES" FOREIGN KEY ("TEST_TYPES_FK")
21029
	  REFERENCES "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_ID") ENABLE;
21030
--------------------------------------------------------
21031
--  Ref Constraints for Table VTREES_WORLD
21032
--------------------------------------------------------
21033
 
21034
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" ADD CONSTRAINT "FK_VW_REF_VTREE_ID" FOREIGN KEY ("VTREE_ID")
21035
	  REFERENCES "RELEASE_MANAGER"."VTREES" ("VTREE_ID") ENABLE;
21036
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" ADD CONSTRAINT "FK_VW_REF_WORLD_ID" FOREIGN KEY ("WORLD_ID")
21037
	  REFERENCES "RELEASE_MANAGER"."WORLDS" ("WORLD_ID") ENABLE;
21038
--------------------------------------------------------
21039
--  Ref Constraints for Table WORK_IN_PROGRESS
21040
--------------------------------------------------------
21041
 
21042
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFPACKAGE_VERSIONS51" FOREIGN KEY ("PV_ID")
21043
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
21044
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFRELEASE_TAGS50" FOREIGN KEY ("RTAG_ID")
21045
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
21046
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFVIEWS52" FOREIGN KEY ("VIEW_ID")
21047
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;