Subversion Repositories DevTools

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1374 dpurdie 1
--------------------------------------------------------
5384 dpurdie 2
--  File created - Friday-November-27-2015   
1374 dpurdie 3
--------------------------------------------------------
4040 dpurdie 4
--------------------------------------------------------
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
 
4040 dpurdie 10
/
11
--------------------------------------------------------
12
--  DDL for Type RELMGR_VARCHAR2_TAB_T
13
--------------------------------------------------------
14
 
5172 dpurdie 15
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_VARCHAR2_TAB_T" 
4040 dpurdie 16
as TABLE of VARCHAR2(4000)
17
 
18
/
19
--------------------------------------------------------
20
--  DDL for Type TDICTIONARY
21
--------------------------------------------------------
22
 
5172 dpurdie 23
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."TDICTIONARY" AS TABLE OF VARCHAR2(4000) INDEX BY VARCHAR2(4000)
4040 dpurdie 24
 
25
/
26
--------------------------------------------------------
27
--  DDL for Sequence MICROSOFTSEQDTPROPERTIES
28
--------------------------------------------------------
29
 
5172 dpurdie 30
   CREATE SEQUENCE  "RELEASE_MANAGER"."MICROSOFTSEQDTPROPERTIES"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 50 NOORDER  NOCYCLE ;
4040 dpurdie 31
--------------------------------------------------------
32
--  DDL for Sequence SEQ_ADDITIONAL_NOTES
33
--------------------------------------------------------
34
 
5384 dpurdie 35
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_ADDITIONAL_NOTES"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 36009 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 36
--------------------------------------------------------
37
--  DDL for Sequence SEQ_BMCON_ID
38
--------------------------------------------------------
39
 
5172 dpurdie 40
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BMCON_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 241 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 41
--------------------------------------------------------
42
--  DDL for Sequence SEQ_BM_ID
43
--------------------------------------------------------
44
 
5172 dpurdie 45
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BM_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 5 NOCACHE  ORDER  NOCYCLE ;
46
--------------------------------------------------------
47
--  DDL for Sequence SEQ_BSA_ID
48
--------------------------------------------------------
49
 
50
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BSA_ID"  MINVALUE 8 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 28 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 51
--------------------------------------------------------
5172 dpurdie 52
--  DDL for Sequence SEQ_BUILD_INSTANCE
53
--------------------------------------------------------
54
 
5384 dpurdie 55
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BUILD_INSTANCE"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 53381 CACHE 20 ORDER  NOCYCLE ;
5172 dpurdie 56
--------------------------------------------------------
4040 dpurdie 57
--  DDL for Sequence SEQ_CR_ID
58
--------------------------------------------------------
59
 
5384 dpurdie 60
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_CR_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 90606 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 61
--------------------------------------------------------
62
--  DDL for Sequence SEQ_DAEMON_INSTRUCTION_ID
63
--------------------------------------------------------
64
 
5384 dpurdie 65
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_DAEMON_INSTRUCTION_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 160148 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 66
--------------------------------------------------------
67
--  DDL for Sequence SEQ_GBE_ID
68
--------------------------------------------------------
69
 
5384 dpurdie 70
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_GBE_ID"  MINVALUE 40 MAXVALUE 9999999999999999999999990 INCREMENT BY 1 START WITH 1240 NOCACHE  ORDER  NOCYCLE ;
4040 dpurdie 71
--------------------------------------------------------
72
--  DDL for Sequence SEQ_GROUP_EMAIL_ID
73
--------------------------------------------------------
74
 
5172 dpurdie 75
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_GROUP_EMAIL_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999 INCREMENT BY 1 START WITH 1166 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 76
--------------------------------------------------------
77
--  DDL for Sequence SEQ_MSG_ID
78
--------------------------------------------------------
79
 
5172 dpurdie 80
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_MSG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 562 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 81
--------------------------------------------------------
82
--  DDL for Sequence SEQ_PKG_ID
83
--------------------------------------------------------
84
 
5384 dpurdie 85
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PKG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 62547 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 86
--------------------------------------------------------
87
--  DDL for Sequence SEQ_PROJ_ID
88
--------------------------------------------------------
89
 
5384 dpurdie 90
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PROJ_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 861 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 91
--------------------------------------------------------
92
--  DDL for Sequence SEQ_PV_ID
93
--------------------------------------------------------
94
 
5384 dpurdie 95
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PV_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1078645 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 96
--------------------------------------------------------
97
--  DDL for Sequence SEQ_RCON_ID
98
--------------------------------------------------------
99
 
5384 dpurdie 100
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RCON_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 28230 CACHE 20 ORDER  NOCYCLE ;
5172 dpurdie 101
--------------------------------------------------------
102
--  DDL for Sequence SEQ_RELEASE_MOD
103
--------------------------------------------------------
104
 
5384 dpurdie 105
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RELEASE_MOD"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 55336 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 106
--------------------------------------------------------
107
--  DDL for Sequence SEQ_RTAG_ID
108
--------------------------------------------------------
109
 
5384 dpurdie 110
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RTAG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 32745 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 111
--------------------------------------------------------
112
--  DDL for Sequence SEQ_SCHEDULED_ID
113
--------------------------------------------------------
114
 
5384 dpurdie 115
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SCHEDULED_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 27947 CACHE 20 ORDER  NOCYCLE ;
5172 dpurdie 116
--------------------------------------------------------
117
--  DDL for Sequence SEQ_SDKTAG_ID
118
--------------------------------------------------------
119
 
5384 dpurdie 120
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SDKTAG_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 121 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 121
--------------------------------------------------------
5172 dpurdie 122
--  DDL for Sequence SEQ_SDK_ID
123
--------------------------------------------------------
124
 
5384 dpurdie 125
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SDK_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 81 CACHE 20 NOORDER  NOCYCLE ;
5172 dpurdie 126
--------------------------------------------------------
4040 dpurdie 127
--  DDL for Sequence SEQ_SESSION_NUM
128
--------------------------------------------------------
129
 
5384 dpurdie 130
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SESSION_NUM"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1047766 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 131
--------------------------------------------------------
132
--  DDL for Sequence SEQ_UNIT_TESTS
133
--------------------------------------------------------
134
 
5384 dpurdie 135
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_UNIT_TESTS"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 358582 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 136
--------------------------------------------------------
137
--  DDL for Sequence SEQ_USER_ID
138
--------------------------------------------------------
139
 
5172 dpurdie 140
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_USER_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 3961 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 141
--------------------------------------------------------
142
--  DDL for Sequence SEQ_VCS_TYPE
143
--------------------------------------------------------
144
 
5172 dpurdie 145
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VCS_TYPE"  MINVALUE 1 MAXVALUE 255 INCREMENT BY 1 START WITH 43 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 146
--------------------------------------------------------
147
--  DDL for Sequence SEQ_VIEW_ID
148
--------------------------------------------------------
149
 
5384 dpurdie 150
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VIEW_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 5661 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 151
--------------------------------------------------------
152
--  DDL for Sequence SEQ_VTREE_ID
153
--------------------------------------------------------
154
 
5384 dpurdie 155
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VTREE_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 29564 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 156
--------------------------------------------------------
157
--  DDL for Table ABT_ACTION_LOG
158
--------------------------------------------------------
159
 
5172 dpurdie 160
  CREATE TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" 
4040 dpurdie 161
   (	"RCON_ID" NUMBER, 
162
	"ACTION_DATETIME" DATE, 
5172 dpurdie 163
	"ACTION" VARCHAR2(4000 BYTE)
164
   ) SEGMENT CREATION IMMEDIATE 
165
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
166
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
167
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
168
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 169
--------------------------------------------------------
170
--  DDL for Table ACTION_LOG
171
--------------------------------------------------------
172
 
5172 dpurdie 173
  CREATE TABLE "RELEASE_MANAGER"."ACTION_LOG" 
4040 dpurdie 174
   (	"USER_ID" NUMBER, 
5172 dpurdie 175
	"ACTION_DATETIME" DATE DEFAULT SYSDATE, 
4040 dpurdie 176
	"PV_ID" NUMBER, 
5172 dpurdie 177
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
178
	"ACTTYPE_ID" NUMBER, 
179
	"ACTION_TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP
180
   ) SEGMENT CREATION IMMEDIATE 
181
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
182
  STORAGE(INITIAL 308281344 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
183
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
184
  TABLESPACE "RELEASEM_DATA" ;
185
 
186
   COMMENT ON COLUMN "RELEASE_MANAGER"."ACTION_LOG"."ACTION_DATETIME" IS 'To be deprecated. Use timestamp instead';
4040 dpurdie 187
--------------------------------------------------------
188
--  DDL for Table ACTION_TYPE
189
--------------------------------------------------------
190
 
5172 dpurdie 191
  CREATE TABLE "RELEASE_MANAGER"."ACTION_TYPE" 
4040 dpurdie 192
   (	"ACTTYPE_ID" NUMBER, 
5172 dpurdie 193
	"NAME" VARCHAR2(255 BYTE), 
194
	"DESCRIPTION" VARCHAR2(4000 BYTE)
195
   ) SEGMENT CREATION IMMEDIATE 
196
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
197
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
198
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
199
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 200
--------------------------------------------------------
201
--  DDL for Table ADDITIONAL_NOTES
202
--------------------------------------------------------
203
 
5172 dpurdie 204
  CREATE TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" 
4040 dpurdie 205
   (	"NOTE_ID" NUMBER, 
206
	"PV_ID" NUMBER, 
5172 dpurdie 207
	"NOTE_TITLE" VARCHAR2(2000 BYTE), 
208
	"NOTE_BODY" VARCHAR2(4000 BYTE), 
4040 dpurdie 209
	"MOD_DATE" DATE, 
210
	"MOD_USER" NUMBER
5172 dpurdie 211
   ) SEGMENT CREATION IMMEDIATE 
212
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
213
  STORAGE(INITIAL 55574528 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
214
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
215
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 216
--------------------------------------------------------
217
--  DDL for Table ADVISORY_RIPPLE
218
--------------------------------------------------------
219
 
5172 dpurdie 220
  CREATE TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" 
4040 dpurdie 221
   (	"RTAG_ID" NUMBER, 
222
	"PV_ID" NUMBER
5172 dpurdie 223
   ) SEGMENT CREATION IMMEDIATE 
224
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
225
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
226
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
227
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 228
--------------------------------------------------------
229
--  DDL for Table ARCHIVE_ACTION_LOG
230
--------------------------------------------------------
231
 
5172 dpurdie 232
  CREATE TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" 
4040 dpurdie 233
   (	"USER_ID" NUMBER, 
234
	"DATE_TIME_STAMP" DATE, 
235
	"RTAG_ID" NUMBER, 
5172 dpurdie 236
	"DESCRIPTION" VARCHAR2(4000 BYTE)
237
   ) SEGMENT CREATION IMMEDIATE 
238
  PCTFREE 10 PCTUSED 0 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
239
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
240
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
241
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 242
--------------------------------------------------------
243
--  DDL for Table ARCHIVE_DATA
244
--------------------------------------------------------
245
 
5172 dpurdie 246
  CREATE TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" 
4040 dpurdie 247
   (	"RTAG_ID" NUMBER(*,0), 
248
	"PV_ID" NUMBER(*,0)
5172 dpurdie 249
   ) SEGMENT CREATION IMMEDIATE 
250
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
251
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
252
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
253
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 254
--------------------------------------------------------
255
--  DDL for Table AUTOBUILD_FAILURE
256
--------------------------------------------------------
257
 
5172 dpurdie 258
  CREATE TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" 
4040 dpurdie 259
   (	"GROUP_EMAIL_ID" NUMBER, 
260
	"PROJ_ID" NUMBER, 
261
	"VIEW_ID" NUMBER
5172 dpurdie 262
   ) SEGMENT CREATION IMMEDIATE 
263
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
264
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
265
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
266
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 267
--------------------------------------------------------
268
--  DDL for Table BUILD_ENVIRONMENTS
269
--------------------------------------------------------
270
 
5172 dpurdie 271
  CREATE TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" 
4040 dpurdie 272
   (	"BE_ID" NUMBER, 
5172 dpurdie 273
	"BE_NAME" VARCHAR2(255 BYTE)
274
   ) SEGMENT CREATION IMMEDIATE 
275
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
276
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
277
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
278
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 279
--------------------------------------------------------
280
--  DDL for Table BUILD_ENV_DOCUMENTS
281
--------------------------------------------------------
282
 
5172 dpurdie 283
  CREATE TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" 
4040 dpurdie 284
   (	"BE_ID" NUMBER, 
5172 dpurdie 285
	"DOC_NUM" VARCHAR2(255 BYTE)
286
   ) SEGMENT CREATION IMMEDIATE 
287
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
288
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
289
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
290
  TABLESPACE "RELEASEM_DATA" ;
291
--------------------------------------------------------
292
--  DDL for Table BUILD_INSTANCES
293
--------------------------------------------------------
294
 
295
  CREATE TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" 
296
   (	"BUILD_ID" NUMBER, 
297
	"RTAG_ID" NUMBER, 
298
	"PV_ID" NUMBER, 
299
	"TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP, 
300
	"REASON" CHAR(1 BYTE), 
301
	"STATE" CHAR(1 BYTE) DEFAULT 'B'
302
   ) SEGMENT CREATION IMMEDIATE 
303
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
304
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
305
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
306
  TABLESPACE "RELEASEM_DATA" ;
307
 
308
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."BUILD_ID" IS 'Unique. Auto generated when row is created.';
309
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."RTAG_ID" IS 'Link the build to a Release';
310
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."PV_ID" IS 'Link the build to a Package';
311
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."TIMESTAMP" IS 'When the instance is created';
312
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."REASON" IS 'Reason for the build. Ripple(''R''), Test(''T''), NewVersion(''N''), Restore(''P'')';
313
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."STATE" IS 'Result of the build. ''B'', ''Buiding'', ''C'', ''Complete'', ''E'', ''Error'', ''S'', ''SysErr''';
4040 dpurdie 314
--------------------------------------------------------
315
--  DDL for Table BUILD_MACHINES
316
--------------------------------------------------------
317
 
5172 dpurdie 318
  CREATE TABLE "RELEASE_MANAGER"."BUILD_MACHINES" 
4040 dpurdie 319
   (	"BM_ID" NUMBER, 
5172 dpurdie 320
	"BM_NAME" VARCHAR2(20 BYTE)
321
   ) SEGMENT CREATION IMMEDIATE 
322
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
323
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
324
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
325
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 326
--------------------------------------------------------
327
--  DDL for Table BUILD_MACHINE_CONFIG
328
--------------------------------------------------------
329
 
5172 dpurdie 330
  CREATE TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" 
4040 dpurdie 331
   (	"BMCON_ID" NUMBER, 
5172 dpurdie 332
	"DISPLAY_NAME" VARCHAR2(50 BYTE), 
333
	"MACHINE_HOSTNAME" VARCHAR2(50 BYTE), 
334
	"DESCRIPTION" VARCHAR2(512 BYTE), 
335
	"GBE_ID" NUMBER, 
336
	"ACTIVE" CHAR(1 BYTE) DEFAULT 'Y'
337
   ) SEGMENT CREATION IMMEDIATE 
338
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
339
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
340
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
341
  TABLESPACE "RELEASEM_DATA" ;
342
 
343
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG"."ACTIVE" IS 'Allows user to select deamon, otherwise its not shown unless already in use.';
4040 dpurdie 344
--------------------------------------------------------
345
--  DDL for Table BUILD_ORDER
346
--------------------------------------------------------
347
 
5172 dpurdie 348
  CREATE TABLE "RELEASE_MANAGER"."BUILD_ORDER" 
4040 dpurdie 349
   (	"RTAG_ID" NUMBER, 
350
	"STEP_NUM" NUMBER, 
351
	"PV_ID" NUMBER, 
5172 dpurdie 352
	"UNRESOLVED" CHAR(1 BYTE)
353
   ) SEGMENT CREATION IMMEDIATE 
354
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
355
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
356
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
357
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 358
--------------------------------------------------------
359
--  DDL for Table BUILD_SERVICE_CONFIG
360
--------------------------------------------------------
361
 
5172 dpurdie 362
  CREATE TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" 
363
   (	"SERVICE" VARCHAR2(50 BYTE), 
364
	"CONFIG" VARCHAR2(2000 BYTE)
365
   ) SEGMENT CREATION IMMEDIATE 
366
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
367
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
368
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
369
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 370
--------------------------------------------------------
371
--  DDL for Table BUILD_STANDARDS
372
--------------------------------------------------------
373
 
5172 dpurdie 374
  CREATE TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" 
4040 dpurdie 375
   (	"BS_ID" NUMBER, 
5172 dpurdie 376
	"BS_NAME" VARCHAR2(20 BYTE)
377
   ) SEGMENT CREATION IMMEDIATE 
378
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
379
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
380
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
381
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 382
--------------------------------------------------------
383
--  DDL for Table BUILD_STANDARDS_ADDENDUM
384
--------------------------------------------------------
385
 
5172 dpurdie 386
  CREATE TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" 
4040 dpurdie 387
   (	"BSA_ID" NUMBER, 
5172 dpurdie 388
	"BSA_NAME" VARCHAR2(4000 BYTE), 
4040 dpurdie 389
	"BS_ID" NUMBER
5172 dpurdie 390
   ) SEGMENT CREATION IMMEDIATE 
391
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
392
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
393
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
394
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 395
--------------------------------------------------------
396
--  DDL for Table CODE_REVIEWS
397
--------------------------------------------------------
398
 
5172 dpurdie 399
  CREATE TABLE "RELEASE_MANAGER"."CODE_REVIEWS" 
4040 dpurdie 400
   (	"PV_ID" NUMBER, 
401
	"DATE_OF_REVIEW" DATE, 
402
	"TIME_SPENT" FLOAT(126), 
5172 dpurdie 403
	"REVIEW_REASON" VARCHAR2(4000 BYTE), 
404
	"RTEAM_DOMAIN_EXPERT" VARCHAR2(4000 BYTE), 
405
	"RTEAM_LANGUAGE_EXPERT" VARCHAR2(4000 BYTE), 
406
	"RTEAM_PEER_DEVELOPER" VARCHAR2(4000 BYTE), 
407
	"RTEAM_AUTHOR" VARCHAR2(4000 BYTE), 
408
	"FILES_REVIEWED" VARCHAR2(4000 BYTE), 
4040 dpurdie 409
	"REVIEW_RESULTS" NUMBER, 
5172 dpurdie 410
	"ISSUES_RAISED" VARCHAR2(4000 BYTE), 
411
	"REVIEW_COMMENTS" VARCHAR2(4000 BYTE), 
412
	"FNC_S_MEETS_FUNCTIONALITY" CHAR(1 BYTE), 
413
	"FNC_C_MEETS_FUNCTIONALITY" VARCHAR2(4000 BYTE), 
414
	"RBS_S_BOUND_COND_HANDLED" CHAR(1 BYTE), 
415
	"RBS_C_BOUND_COND_HANDLED" VARCHAR2(4000 BYTE), 
416
	"RBS_S_CLASS_INTERF_PRECOND" CHAR(1 BYTE), 
417
	"RBS_C_CLASS_INTERF_PRECOND" VARCHAR2(4000 BYTE), 
418
	"RBS_S_NO_UNITIALISED_DATE" CHAR(1 BYTE), 
419
	"RBS_C_NO_UNITIALISED_DATE" VARCHAR2(4000 BYTE), 
420
	"RBS_S_EXCEP_HANDING" CHAR(1 BYTE), 
421
	"RBS_C_EXCEP_HANDING" VARCHAR2(4000 BYTE), 
422
	"RBS_S_RESOURCE_MNG" CHAR(1 BYTE), 
423
	"RBS_C_RESOURCE_MNG" VARCHAR2(4000 BYTE), 
424
	"RBS_S_TRANS_COMPLET" CHAR(1 BYTE), 
425
	"RBS_C_TRANS_COMPLET" VARCHAR2(4000 BYTE), 
426
	"RBS_S_THREADSAFETY" CHAR(1 BYTE), 
427
	"RBS_C_THREADSAFETY" VARCHAR2(4000 BYTE), 
428
	"RBS_S_RET_VALS" CHAR(1 BYTE), 
429
	"RBS_C_RET_VALS" VARCHAR2(4000 BYTE), 
430
	"RBS_S_CORR_ERR_HANDLING" CHAR(1 BYTE), 
431
	"RBS_C_CORR_ERR_HANDLING" VARCHAR2(4000 BYTE), 
432
	"RBS_S_SQL_STD" CHAR(1 BYTE), 
433
	"RBS_C_SQL_STD" VARCHAR2(4000 BYTE), 
434
	"MNT_S_EXT_REF" CHAR(1 BYTE), 
435
	"MNT_C_EXT_REF" VARCHAR2(4000 BYTE), 
436
	"MNT_S_CLASS_SIZE" CHAR(1 BYTE), 
437
	"MNT_C_CLASS_SIZE" VARCHAR2(4000 BYTE), 
438
	"MNT_S_METHOD_SIZE" CHAR(1 BYTE), 
439
	"MNT_C_METHOD_SIZE" VARCHAR2(4000 BYTE), 
440
	"MNT_S_APPROP_COMM" CHAR(1 BYTE), 
441
	"MNT_C_APPROP_COMM" VARCHAR2(4000 BYTE), 
442
	"MNT_S_IDENT_NAME_STD" CHAR(1 BYTE), 
443
	"MNT_C_IDENT_NAME_STD" VARCHAR2(4000 BYTE), 
444
	"MNT_S_SWITCH_HAVE_DEFAULTS" CHAR(1 BYTE), 
445
	"MNT_C_SWITCH_HAVE_DEFAULTS" VARCHAR2(4000 BYTE), 
446
	"MNT_S_NO_LIT_NUM" CHAR(1 BYTE), 
447
	"MNT_C_NO_LIT_NUM" VARCHAR2(4000 BYTE), 
448
	"MNT_S_NO_DEAD_CODE" CHAR(1 BYTE), 
449
	"MNT_C_NO_DEAD_CODE" VARCHAR2(4000 BYTE), 
450
	"DEI_S_STD_DES_PATT" CHAR(1 BYTE), 
451
	"DEI_C_STD_DES_PATT" VARCHAR2(4000 BYTE), 
452
	"DEI_S_APPROP_ALGOR" CHAR(1 BYTE), 
453
	"DEI_C_APPROP_ALGOR" VARCHAR2(4000 BYTE), 
454
	"DEI_S_APPROP_OBJ" CHAR(1 BYTE), 
455
	"DEI_C_APPROP_OBJ" VARCHAR2(4000 BYTE), 
456
	"DEI_S_APPROP_ERR_MSG" CHAR(1 BYTE), 
457
	"DEI_C_APPROP_ERR_MSG" VARCHAR2(4000 BYTE), 
458
	"DEI_S_STD_FRAMEW_COMP" CHAR(1 BYTE), 
459
	"DEI_C_STD_FRAMEW_COMP" VARCHAR2(4000 BYTE), 
460
	"DEI_S_APPROP_LOGGING" CHAR(1 BYTE), 
461
	"DEI_C_APPROP_LOGGING" VARCHAR2(4000 BYTE)
462
   ) SEGMENT CREATION IMMEDIATE 
463
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
464
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
465
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
466
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 467
--------------------------------------------------------
468
--  DDL for Table CODE_REVIEW_URL
469
--------------------------------------------------------
470
 
5172 dpurdie 471
  CREATE TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" 
4040 dpurdie 472
   (	"CR_ID" NUMBER, 
473
	"PV_ID" NUMBER, 
474
	"PROJ_ID" NUMBER, 
5172 dpurdie 475
	"URL" VARCHAR2(4000 BYTE), 
476
	"REASON" VARCHAR2(4000 BYTE), 
4040 dpurdie 477
	"DATE_OF_REVIEW" DATE, 
478
	"LAST_MODIFIED" DATE
5172 dpurdie 479
   ) SEGMENT CREATION IMMEDIATE 
480
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
481
  STORAGE(INITIAL 983040 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
482
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
483
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 484
--------------------------------------------------------
4585 dpurdie 485
--  DDL for Table CQ_HISTORY
486
--------------------------------------------------------
487
 
5172 dpurdie 488
  CREATE TABLE "RELEASE_MANAGER"."CQ_HISTORY" 
4585 dpurdie 489
   (	"DBID" NUMBER(10,0), 
490
	"ENTITY_DBID" NUMBER(10,0), 
491
	"ENTITYDEF_ID" NUMBER(10,0), 
492
	"ENTITYDEF_NAME" VARCHAR2(30 CHAR), 
493
	"ACTION_TIMESTAMP" DATE, 
494
	"USER_NAME" VARCHAR2(30 CHAR), 
495
	"ACTION_NAME" VARCHAR2(30 CHAR), 
496
	"OLD_STATE" VARCHAR2(30 CHAR), 
497
	"NEW_STATE" VARCHAR2(30 CHAR), 
498
	"EXPIRED_TIMESTAMP" DATE
5172 dpurdie 499
   ) SEGMENT CREATION IMMEDIATE 
500
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
501
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
502
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
503
  TABLESPACE "RELEASEM_DATA" ;
4585 dpurdie 504
--------------------------------------------------------
4040 dpurdie 505
--  DDL for Table CQ_ISSUES
506
--------------------------------------------------------
507
 
5172 dpurdie 508
  CREATE TABLE "RELEASE_MANAGER"."CQ_ISSUES" 
4040 dpurdie 509
   (	"PV_ID" NUMBER, 
510
	"ISS_DB" NUMBER, 
511
	"ISS_ID" NUMBER, 
512
	"ISS_STATE" NUMBER, 
513
	"MOD_DATE" DATE, 
5172 dpurdie 514
	"NOTES" VARCHAR2(255 BYTE)
515
   ) SEGMENT CREATION IMMEDIATE 
516
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
517
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
518
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
519
  TABLESPACE "RELEASEM_DATA" ;
4585 dpurdie 520
--------------------------------------------------------
521
--  DDL for Table CQ_SOFTWARE_ISSUE
522
--------------------------------------------------------
523
 
5172 dpurdie 524
  CREATE TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" 
4585 dpurdie 525
   (	"RATL_MASTERSHIP" NUMBER(10,0), 
526
	"DBID" NUMBER(10,0), 
527
	"IS_ACTIVE" NUMBER(10,0), 
528
	"ID" VARCHAR2(13 CHAR), 
529
	"STATE" NUMBER(10,0), 
530
	"VERSION" NUMBER(10,0), 
531
	"LOCK_VERSION" NUMBER(10,0), 
532
	"LOCKED_BY" NUMBER(10,0), 
533
	"IS_DUPLICATE" NUMBER(10,0), 
534
	"UNDUPLICATE_STATE" VARCHAR2(50 CHAR), 
535
	"HEADLINE" VARCHAR2(150 CHAR), 
536
	"DESCRIPTION" CLOB, 
537
	"PRIORITY" VARCHAR2(50 CHAR), 
538
	"SUBMITTER" NUMBER(10,0), 
539
	"SUBMIT_DATE" DATE, 
540
	"OWNER" NUMBER(10,0), 
541
	"APPROVER" NUMBER(10,0), 
542
	"NOTE_ENTRY" CLOB, 
543
	"NOTES_LOG" CLOB, 
544
	"RESOLUTION_DATE" DATE, 
545
	"ISSUE_TYPE" VARCHAR2(50 CHAR), 
546
	"PACKAGE_REF" VARCHAR2(50 CHAR), 
547
	"SOLUTION_APPROVED_DATE" DATE, 
548
	"CLOSE_DATE" DATE, 
549
	"BUILD_NUMBER" VARCHAR2(50 CHAR), 
550
	"NEW_NUM" VARCHAR2(50 CHAR), 
551
	"FOR_INFORMATION" CLOB, 
552
	"PROP_SOL_DATE" DATE, 
553
	"ARTIFACTS_TO_BE_UPDATED_1" CLOB, 
554
	"ISSUE_ID" NUMBER(10,0), 
555
	"SOLUTION_DATE" DATE, 
556
	"KPI_SOLUTION_DATE" DATE, 
557
	"TITLE" VARCHAR2(80 CHAR), 
558
	"PROJECT" VARCHAR2(50 CHAR), 
559
	"ORIGINATING_AREA" VARCHAR2(50 CHAR), 
560
	"ESTIMATED_TIME_INHOURS" NUMBER(10,0), 
561
	"RELEASE_PART1" NUMBER(10,0), 
562
	"RELEASE_PART2" NUMBER(10,0), 
563
	"RELEASE_PART3" NUMBER(10,0), 
564
	"SOLUTION_RELEASE_PART1" NUMBER(10,0), 
565
	"SOLUTION_RELEASE_PART2" NUMBER(10,0), 
566
	"SOLUTION_RELEASE_PART3" NUMBER(10,0), 
567
	"ORIGINAL_IMPLEMENT_DATE" DATE, 
568
	"ISSUE_LABEL" VARCHAR2(50 CHAR), 
569
	"PRODUCT" VARCHAR2(50 CHAR), 
570
	"ORIGIN" VARCHAR2(50 CHAR), 
571
	"CLONE_NOTE" CLOB, 
572
	"SOLUTION_LABEL" VARCHAR2(50 CHAR), 
573
	"REQUIRED_BY" DATE, 
574
	"ITERATION_AFFECTED" VARCHAR2(50 CHAR), 
575
	"MERGE_OLD_ID" VARCHAR2(150 CHAR), 
576
	"COMMENTS" CLOB, 
577
	"CHANGE_CONTROL" VARCHAR2(50 CHAR), 
578
	"MERGE_COMMENTS" CLOB, 
579
	"MERGE_CHANGE_CONTROL" VARCHAR2(50 CHAR), 
580
	"AWAITING_INFO_DESC" CLOB, 
581
	"REQUEST_CLOSE_DESC" CLOB, 
582
	"ROOT_CAUSE" VARCHAR2(50 CHAR), 
583
	"FLAGA" VARCHAR2(50 CHAR), 
584
	"FLAGB" VARCHAR2(50 CHAR), 
585
	"FLAGC" VARCHAR2(50 CHAR), 
586
	"SCHEDULED_RELEASE" VARCHAR2(60 CHAR), 
587
	"SEVERITY" VARCHAR2(50 CHAR), 
588
	"CUSTOM_FIELD_01" CLOB, 
589
	"CUSTOM_FIELD_02" CLOB, 
590
	"CUSTOM_FIELD_03" CLOB, 
591
	"CUSTOMER_REFERENCE" VARCHAR2(254 CHAR), 
592
	"TEAMLEADER" NUMBER(10,0), 
593
	"WIP" CLOB, 
594
	"RELEASEINFO" CLOB, 
595
	"SBOM" VARCHAR2(254 CHAR), 
596
	"NEW_EXTERNAL_NOTE" CLOB, 
597
	"EXTERNAL_NOTE_LOG" CLOB, 
598
	"CUSTOMER_REFERENCE_2" VARCHAR2(50 CHAR), 
599
	"CUSTOMER_REFERENCE_3" VARCHAR2(50 CHAR), 
600
	"CUSTOMER_REFERENCE_4" VARCHAR2(50 CHAR), 
601
	"CUSTOMER_REFERENCE_5" VARCHAR2(50 CHAR), 
602
	"TEST_CASES" CLOB, 
603
	"INTEGRATION_NOTES" CLOB, 
604
	"UPDATED_DESIGN_NOTES" VARCHAR2(50 CHAR), 
605
	"RELATED_DATABASE_PATCHES" VARCHAR2(50 CHAR), 
606
	"AFFECTED_PACKAGES" VARCHAR2(50 CHAR), 
607
	"CODEREVIEW_REFERENCE" CLOB, 
608
	"RISK" VARCHAR2(50 CHAR), 
609
	"DEPENDANT_DEVIS" VARCHAR2(50 CHAR), 
610
	"CUSTOM_FIELD_04" CLOB, 
611
	"CUSTOM_FIELD_05" CLOB, 
612
	"ITERATION_FOUND" VARCHAR2(50 CHAR)
5172 dpurdie 613
   ) SEGMENT CREATION IMMEDIATE 
614
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
615
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
616
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
617
  TABLESPACE "RELEASEM_DATA" 
618
 LOB ("DESCRIPTION") STORE AS BASICFILE (
619
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
620
  NOCACHE LOGGING 
621
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
622
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
623
 LOB ("NOTE_ENTRY") STORE AS BASICFILE (
624
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
625
  NOCACHE LOGGING 
626
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
627
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
628
 LOB ("NOTES_LOG") STORE AS BASICFILE (
629
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
630
  NOCACHE LOGGING 
631
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
632
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
633
 LOB ("FOR_INFORMATION") STORE AS BASICFILE (
634
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
635
  NOCACHE LOGGING 
636
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
637
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
638
 LOB ("ARTIFACTS_TO_BE_UPDATED_1") STORE AS BASICFILE (
639
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
640
  NOCACHE LOGGING 
641
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
642
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
643
 LOB ("CLONE_NOTE") STORE AS BASICFILE (
644
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
645
  NOCACHE LOGGING 
646
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
647
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
648
 LOB ("COMMENTS") STORE AS BASICFILE (
649
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
650
  NOCACHE LOGGING 
651
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
652
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
653
 LOB ("MERGE_COMMENTS") STORE AS BASICFILE (
654
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
655
  NOCACHE LOGGING 
656
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
657
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
658
 LOB ("AWAITING_INFO_DESC") STORE AS BASICFILE (
659
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
660
  NOCACHE LOGGING 
661
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
662
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
663
 LOB ("REQUEST_CLOSE_DESC") STORE AS BASICFILE (
664
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
665
  NOCACHE LOGGING 
666
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
667
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
668
 LOB ("CUSTOM_FIELD_01") STORE AS BASICFILE (
669
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
670
  NOCACHE LOGGING 
671
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
672
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
673
 LOB ("CUSTOM_FIELD_02") STORE AS BASICFILE (
674
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
675
  NOCACHE LOGGING 
676
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
677
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
678
 LOB ("CUSTOM_FIELD_03") STORE AS BASICFILE (
679
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
680
  NOCACHE LOGGING 
681
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
682
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
683
 LOB ("WIP") STORE AS BASICFILE (
684
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
685
  NOCACHE LOGGING 
686
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
687
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
688
 LOB ("RELEASEINFO") STORE AS BASICFILE (
689
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
690
  NOCACHE LOGGING 
691
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
692
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
693
 LOB ("NEW_EXTERNAL_NOTE") STORE AS BASICFILE (
694
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
695
  NOCACHE LOGGING 
696
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
697
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
698
 LOB ("EXTERNAL_NOTE_LOG") STORE AS BASICFILE (
699
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
700
  NOCACHE LOGGING 
701
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
702
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
703
 LOB ("TEST_CASES") STORE AS BASICFILE (
704
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
705
  NOCACHE LOGGING 
706
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
707
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
708
 LOB ("INTEGRATION_NOTES") STORE AS BASICFILE (
709
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
710
  NOCACHE LOGGING 
711
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
712
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
713
 LOB ("CODEREVIEW_REFERENCE") STORE AS BASICFILE (
714
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
715
  NOCACHE LOGGING 
716
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
717
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
718
 LOB ("CUSTOM_FIELD_04") STORE AS BASICFILE (
719
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
720
  NOCACHE LOGGING 
721
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
722
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
723
 LOB ("CUSTOM_FIELD_05") STORE AS BASICFILE (
724
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
725
  NOCACHE LOGGING 
726
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
727
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
4585 dpurdie 728
--------------------------------------------------------
729
--  DDL for Table CQ_STATEDEF
730
--------------------------------------------------------
731
 
5172 dpurdie 732
  CREATE TABLE "RELEASE_MANAGER"."CQ_STATEDEF" 
4585 dpurdie 733
   (	"ID" NUMBER(10,0), 
734
	"PACKAGE_OWNERSHIP" NUMBER(10,0), 
735
	"NAME" VARCHAR2(255 CHAR), 
736
	"ENTITYDEF_ID" NUMBER(10,0), 
737
	"ORDINAL" NUMBER(10,0)
5172 dpurdie 738
   ) SEGMENT CREATION IMMEDIATE 
739
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
740
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
741
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
742
  TABLESPACE "RELEASEM_DATA" ;
4585 dpurdie 743
--------------------------------------------------------
744
--  DDL for Table CQ_USERS
745
--------------------------------------------------------
746
 
5172 dpurdie 747
  CREATE TABLE "RELEASE_MANAGER"."CQ_USERS" 
748
   (	"DBID" VARCHAR2(8 BYTE), 
749
	"LOGIN_NAME" VARCHAR2(17 BYTE), 
750
	"FULLNAME" VARCHAR2(30 BYTE)
751
   ) SEGMENT CREATION IMMEDIATE 
752
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
753
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
754
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
755
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 756
--------------------------------------------------------
757
--  DDL for Table DAEMON_ACTION_LOG
758
--------------------------------------------------------
759
 
5172 dpurdie 760
  CREATE TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" 
4040 dpurdie 761
   (	"USER_ID" NUMBER, 
762
	"ACTION_DATETIME" DATE, 
763
	"RCON_ID" NUMBER, 
5172 dpurdie 764
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 765
	"ACTTYPE_ID" NUMBER
5172 dpurdie 766
   ) SEGMENT CREATION IMMEDIATE 
767
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
768
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
769
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
770
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 771
--------------------------------------------------------
772
--  DDL for Table DAEMON_INSTRUCTIONS
773
--------------------------------------------------------
774
 
5172 dpurdie 775
  CREATE TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" 
4040 dpurdie 776
   (	"DAEMON_INSTRUCTIONS_ID" NUMBER, 
777
	"OP_CODE" NUMBER(*,0), 
778
	"RTAG_ID" NUMBER, 
779
	"PV_ID" NUMBER, 
780
	"SCHEDULED_DATETIME" DATE, 
781
	"REPEAT_SECS" NUMBER(*,0), 
782
	"ADDED_DATETIME" DATE, 
783
	"USER_ID" NUMBER, 
5172 dpurdie 784
	"IN_PROGRESS" CHAR(1 BYTE)
785
   ) SEGMENT CREATION IMMEDIATE 
786
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
787
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
788
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
789
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 790
 
5172 dpurdie 791
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."OP_CODE" IS 'The instruction op-code';
792
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."SCHEDULED_DATETIME" IS 'The datetime after which the instruction can be carried out.';
793
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."REPEAT_SECS" IS 'The number of seconds to add to scheduled_datetime when instruction is repeating';
794
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."ADDED_DATETIME" IS 'The datetime the instruction was added to the table - informational only';
795
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."USER_ID" IS 'The user who added the instruction to the table  - informational only';
4040 dpurdie 796
--------------------------------------------------------
797
--  DDL for Table DASH_BOARD
798
--------------------------------------------------------
799
 
5172 dpurdie 800
  CREATE TABLE "RELEASE_MANAGER"."DASH_BOARD" 
4040 dpurdie 801
   (	"PROJ_ID" NUMBER, 
802
	"RTAG_ID" NUMBER, 
803
	"LAST_BUILD_TIME" DATE, 
804
	"AUTOMATED_PACKAGES" NUMBER, 
805
	"TOTAL_PACKAGES" NUMBER
5172 dpurdie 806
   ) SEGMENT CREATION IMMEDIATE 
807
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
808
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
809
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
810
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 811
--------------------------------------------------------
812
--  DDL for Table DEPRECATED_PACKAGES
813
--------------------------------------------------------
814
 
5172 dpurdie 815
  CREATE TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" 
4040 dpurdie 816
   (	"RTAG_ID" NUMBER, 
817
	"PKG_ID" NUMBER, 
5172 dpurdie 818
	"COMMENTS" VARCHAR2(4000 BYTE), 
819
	"V_EXT" VARCHAR2(50 BYTE)
820
   ) SEGMENT CREATION IMMEDIATE 
821
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
822
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
823
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
824
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 825
--------------------------------------------------------
826
--  DDL for Table DO_NOT_RIPPLE
827
--------------------------------------------------------
828
 
5172 dpurdie 829
  CREATE TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" 
4040 dpurdie 830
   (	"RTAG_ID" NUMBER, 
831
	"PV_ID" NUMBER, 
832
	"ROOT_PV_ID" NUMBER, 
5172 dpurdie 833
	"ROOT_CAUSE" VARCHAR2(50 BYTE), 
834
	"ROOT_FILE" VARCHAR2(100 BYTE)
835
   ) SEGMENT CREATION IMMEDIATE 
836
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
837
  STORAGE(INITIAL 655360 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
838
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
839
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 840
--------------------------------------------------------
841
--  DDL for Table GBE_MACHTYPE
842
--------------------------------------------------------
843
 
5172 dpurdie 844
  CREATE TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" 
4040 dpurdie 845
   (	"GBE_ID" NUMBER, 
5172 dpurdie 846
	"GBE_VALUE" VARCHAR2(20 BYTE), 
4040 dpurdie 847
	"BM_ID" NUMBER
5172 dpurdie 848
   ) SEGMENT CREATION IMMEDIATE 
849
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
850
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
851
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
852
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 853
--------------------------------------------------------
854
--  DDL for Table IGNORE_WARNINGS
855
--------------------------------------------------------
856
 
5172 dpurdie 857
  CREATE TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" 
4040 dpurdie 858
   (	"RTAG_ID" NUMBER, 
859
	"PV_ID" NUMBER, 
860
	"DPV_ID" NUMBER, 
5172 dpurdie 861
	"IS_PATCH_IGNORE" CHAR(1 BYTE)
862
   ) SEGMENT CREATION IMMEDIATE 
863
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
864
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
865
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
866
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 867
--------------------------------------------------------
868
--  DDL for Table JIRA_ISSUES
869
--------------------------------------------------------
870
 
5172 dpurdie 871
  CREATE TABLE "RELEASE_MANAGER"."JIRA_ISSUES" 
4040 dpurdie 872
   (	"PV_ID" NUMBER, 
5172 dpurdie 873
	"ISS_KEY" VARCHAR2(4000 BYTE), 
4040 dpurdie 874
	"DATE_TIME_STAMP" DATE
5172 dpurdie 875
   ) SEGMENT CREATION IMMEDIATE 
876
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
877
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
878
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
879
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 880
--------------------------------------------------------
881
--  DDL for Table LICENCES
882
--------------------------------------------------------
883
 
5172 dpurdie 884
  CREATE TABLE "RELEASE_MANAGER"."LICENCES" 
4040 dpurdie 885
   (	"LICENCE" NUMBER, 
5172 dpurdie 886
	"NAME" VARCHAR2(50 BYTE)
887
   ) SEGMENT CREATION IMMEDIATE 
888
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
889
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
890
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
891
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 892
--------------------------------------------------------
893
--  DDL for Table LICENCING
894
--------------------------------------------------------
895
 
5172 dpurdie 896
  CREATE TABLE "RELEASE_MANAGER"."LICENCING" 
4040 dpurdie 897
   (	"PV_ID" NUMBER, 
898
	"LICENCE" NUMBER
5172 dpurdie 899
   ) SEGMENT CREATION IMMEDIATE 
900
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
901
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
902
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
903
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 904
--------------------------------------------------------
5384 dpurdie 905
--  DDL for Table LXR_STATE
906
--------------------------------------------------------
907
 
908
  CREATE TABLE "RELEASE_MANAGER"."LXR_STATE" 
909
   (	"RTAG_ID" NUMBER, 
910
	"LXRSERVER" CHAR(1 BYTE) DEFAULT 'N'
911
   ) SEGMENT CREATION IMMEDIATE 
912
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
913
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
914
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
915
  TABLESPACE "RELEASEM_DATA" ;
916
 
917
   COMMENT ON COLUMN "RELEASE_MANAGER"."LXR_STATE"."RTAG_ID" IS 'Link to Release_Tags';
918
   COMMENT ON COLUMN "RELEASE_MANAGER"."LXR_STATE"."LXRSERVER" IS 'Written by server - I:Indexed, C:Closing, N:Not Known. May be InProgress.';
919
   COMMENT ON TABLE "RELEASE_MANAGER"."LXR_STATE"  IS 'Contains data updated by the LXR server.
920
This table is writable by a user known to the LXR Server';
921
--------------------------------------------------------
4040 dpurdie 922
--  DDL for Table MEMBERS_GROUP
923
--------------------------------------------------------
924
 
5172 dpurdie 925
  CREATE TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" 
4040 dpurdie 926
   (	"GROUP_EMAIL_ID" NUMBER, 
927
	"USER_ID" NUMBER
5172 dpurdie 928
   ) SEGMENT CREATION IMMEDIATE 
929
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
930
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
931
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
932
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 933
--------------------------------------------------------
934
--  DDL for Table MESSAGE_BOARD
935
--------------------------------------------------------
936
 
5172 dpurdie 937
  CREATE TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" 
4040 dpurdie 938
   (	"MSG_ID" NUMBER, 
5172 dpurdie 939
	"MSG_DETAILS" VARCHAR2(2000 BYTE), 
4040 dpurdie 940
	"SUBMITION_DATE" DATE, 
941
	"EXPIRY_DATE" DATE, 
942
	"DUE_DATE" DATE
5172 dpurdie 943
   ) SEGMENT CREATION IMMEDIATE 
944
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
945
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
946
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
947
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 948
--------------------------------------------------------
949
--  DDL for Table MICROSOFTDTPROPERTIES
950
--------------------------------------------------------
951
 
5172 dpurdie 952
  CREATE TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" 
4040 dpurdie 953
   (	"ID" NUMBER, 
954
	"OBJECTID" NUMBER, 
5172 dpurdie 955
	"PROPERTY" VARCHAR2(64 BYTE), 
956
	"VALUE" VARCHAR2(255 BYTE), 
4040 dpurdie 957
	"LVALUE" LONG RAW, 
958
	"VERSION" NUMBER DEFAULT (0)
5172 dpurdie 959
   ) SEGMENT CREATION IMMEDIATE 
960
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
961
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
962
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
963
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 964
--------------------------------------------------------
965
--  DDL for Table NOTE_MANAGER
966
--------------------------------------------------------
967
 
5172 dpurdie 968
  CREATE TABLE "RELEASE_MANAGER"."NOTE_MANAGER" 
969
   (	"NID" VARCHAR2(30 BYTE), 
970
	"LAST_USER" VARCHAR2(20 BYTE), 
4040 dpurdie 971
	"LAST_DATE" DATE, 
5172 dpurdie 972
	"DESCRIPTION" VARCHAR2(4000 BYTE)
973
   ) SEGMENT CREATION IMMEDIATE 
974
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
975
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
976
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
977
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 978
--------------------------------------------------------
979
--  DDL for Table NOTIFICATION_HISTORY
980
--------------------------------------------------------
981
 
5172 dpurdie 982
  CREATE TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" 
4040 dpurdie 983
   (	"RTAG_ID" NUMBER, 
984
	"PV_ID" NUMBER, 
985
	"USER_ID" NUMBER, 
986
	"DATE_TIME_STAMP" DATE
5172 dpurdie 987
   ) SEGMENT CREATION IMMEDIATE 
988
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
989
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
990
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
991
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 992
--------------------------------------------------------
993
--  DDL for Table PACKAGES
994
--------------------------------------------------------
995
 
5172 dpurdie 996
  CREATE TABLE "RELEASE_MANAGER"."PACKAGES" 
4040 dpurdie 997
   (	"PKG_ID" NUMBER, 
5172 dpurdie 998
	"PKG_NAME" VARCHAR2(255 BYTE), 
999
	"SUNOS_ELECTRONIC_NAME" VARCHAR2(255 BYTE), 
1000
	"WIN_ELECTRONIC_NAME" VARCHAR2(255 BYTE), 
1001
	"DEFAULT_PEGGED" CHAR(1 BYTE), 
1002
	"DEFAULT_ADVISORY_RIPPLE" CHAR(1 BYTE)
1003
   ) SEGMENT CREATION IMMEDIATE 
1004
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1005
  STORAGE(INITIAL 196608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1006
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1007
  TABLESPACE "RELEASEM_DATA" ;
1008
 
1009
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGES"."DEFAULT_PEGGED" IS 'Default pegged state for packages that are added to a release.';
1010
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGES"."DEFAULT_ADVISORY_RIPPLE" IS 'Default advisiory ripple state for packages that are added to a release.';
4040 dpurdie 1011
--------------------------------------------------------
1012
--  DDL for Table PACKAGE_BUILD_ENV
1013
--------------------------------------------------------
1014
 
5172 dpurdie 1015
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" 
4040 dpurdie 1016
   (	"PV_ID" NUMBER, 
1017
	"BE_ID" NUMBER, 
1018
	"BUILD_TYPE" NUMBER
5172 dpurdie 1019
   ) SEGMENT CREATION IMMEDIATE 
1020
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1021
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1022
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1023
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1024
--------------------------------------------------------
1025
--  DDL for Table PACKAGE_BUILD_INFO
1026
--------------------------------------------------------
1027
 
5172 dpurdie 1028
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" 
4040 dpurdie 1029
   (	"PV_ID" NUMBER, 
1030
	"BM_ID" NUMBER, 
1031
	"BSA_ID" NUMBER
5172 dpurdie 1032
   ) SEGMENT CREATION IMMEDIATE 
1033
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1034
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1035
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1036
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1037
--------------------------------------------------------
1038
--  DDL for Table PACKAGE_DEPENDENCIES
1039
--------------------------------------------------------
1040
 
5172 dpurdie 1041
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" 
4040 dpurdie 1042
   (	"PV_ID" NUMBER, 
1043
	"DPV_ID" NUMBER, 
1044
	"PKG_ID" NUMBER, 
1045
	"DPKG_ID" NUMBER, 
5172 dpurdie 1046
	"BUILD_TYPE" CHAR(1 BYTE), 
4040 dpurdie 1047
	"DISPLAY_ORDER" NUMBER
5172 dpurdie 1048
   ) SEGMENT CREATION IMMEDIATE 
1049
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1050
  STORAGE(INITIAL 100663296 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1051
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1052
  TABLESPACE "RELEASEM_DATA" ;
5384 dpurdie 1053
 
1054
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."PV_ID" IS 'Package Version Identifier';
1055
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."DPV_ID" IS 'Depends on this package version';
1056
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."BUILD_TYPE" IS 'B:BuildPkgArchive, L:LinkPkgArchive';
4040 dpurdie 1057
--------------------------------------------------------
1058
--  DDL for Table PACKAGE_DOCUMENTS
1059
--------------------------------------------------------
1060
 
5172 dpurdie 1061
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" 
4040 dpurdie 1062
   (	"PV_ID" NUMBER, 
1063
	"TEST_ID" NUMBER, 
1064
	"DOC_ID" NUMBER, 
5172 dpurdie 1065
	"DOC_NUM" VARCHAR2(50 BYTE), 
1066
	"IS_LATEST" CHAR(1 BYTE)
1067
   ) SEGMENT CREATION IMMEDIATE 
1068
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1069
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1070
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1071
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1072
--------------------------------------------------------
1073
--  DDL for Table PACKAGE_INTEREST
1074
--------------------------------------------------------
1075
 
5172 dpurdie 1076
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" 
4040 dpurdie 1077
   (	"PKG_ID" NUMBER, 
1078
	"PROJ_ID" NUMBER, 
1079
	"USER_ID" NUMBER
5172 dpurdie 1080
   ) SEGMENT CREATION IMMEDIATE 
1081
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1082
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1083
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1084
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1085
--------------------------------------------------------
1086
--  DDL for Table PACKAGE_METRICS
1087
--------------------------------------------------------
1088
 
5172 dpurdie 1089
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" 
4040 dpurdie 1090
   (	"PV_ID" NUMBER, 
1091
	"BRANCHES" NUMBER, 
5172 dpurdie 1092
	"BRANCH_LIST" VARCHAR2(4000 BYTE), 
4040 dpurdie 1093
	"CODE_FILES" NUMBER, 
1094
	"IGNORED_FILES" NUMBER, 
1095
	"DIRECTORIES" NUMBER, 
1096
	"DIRECTORY_DEPTH" NUMBER, 
1097
	"TOTAL_FILES" NUMBER, 
1098
	"MAKEFILES" NUMBER, 
1099
	"BLANK_LINES" NUMBER, 
1100
	"CODE_LINES" NUMBER, 
1101
	"COMMENT_LINES" NUMBER, 
1102
	"CREATED_STAMP" DATE
5172 dpurdie 1103
   ) SEGMENT CREATION IMMEDIATE 
1104
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1105
  STORAGE(INITIAL 12582912 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1106
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1107
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1108
--------------------------------------------------------
1109
--  DDL for Table PACKAGE_PATCHES
1110
--------------------------------------------------------
1111
 
5172 dpurdie 1112
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" 
4040 dpurdie 1113
   (	"PV_ID" NUMBER, 
1114
	"PATCH_ID" NUMBER, 
1115
	"INSTALL_ORDER" NUMBER, 
1116
	"PATCH_OBSOLETED_BY" NUMBER
5172 dpurdie 1117
   ) SEGMENT CREATION IMMEDIATE 
1118
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1119
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1120
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1121
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1122
--------------------------------------------------------
1123
--  DDL for Table PACKAGE_PROCESSES
1124
--------------------------------------------------------
1125
 
5172 dpurdie 1126
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" 
4040 dpurdie 1127
   (	"PV_ID" NUMBER, 
1128
	"PROC_ID" NUMBER
5172 dpurdie 1129
   ) SEGMENT CREATION IMMEDIATE 
1130
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1131
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1132
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1133
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1134
--------------------------------------------------------
1135
--  DDL for Table PACKAGE_VERSIONS
1136
--------------------------------------------------------
1137
 
5172 dpurdie 1138
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" 
4040 dpurdie 1139
   (	"PV_ID" NUMBER, 
1140
	"PKG_ID" NUMBER, 
5172 dpurdie 1141
	"PKG_VERSION" VARCHAR2(50 BYTE), 
1142
	"DLOCKED" CHAR(1 BYTE), 
4040 dpurdie 1143
	"RELEASED_AT" NUMBER, 
1144
	"MODIFIED_STAMP" DATE, 
1145
	"MODIFIER_ID" NUMBER, 
1146
	"CREATED_STAMP" DATE, 
1147
	"CREATOR_ID" NUMBER, 
5172 dpurdie 1148
	"COMMENTS" VARCHAR2(4000 BYTE), 
1149
	"V_MM" VARCHAR2(50 BYTE), 
1150
	"V_NMM" VARCHAR2(50 BYTE), 
1151
	"V_EXT" VARCHAR2(50 BYTE), 
1152
	"PKG_LABEL" VARCHAR2(60 BYTE), 
1153
	"SRC_PATH" VARCHAR2(2000 BYTE), 
1154
	"PV_DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1155
	"OWNER_ID" NUMBER, 
5172 dpurdie 1156
	"PV_OVERVIEW" VARCHAR2(4000 BYTE), 
1157
	"IS_PATCH" CHAR(1 BYTE), 
4040 dpurdie 1158
	"LAST_PV_ID" NUMBER, 
5172 dpurdie 1159
	"RELEASE_NOTES_INFO" VARCHAR2(1000 BYTE), 
1160
	"IS_DEPLOYABLE" CHAR(1 BYTE), 
1161
	"IS_BUILD_ENV_REQUIRED" CHAR(1 BYTE), 
1162
	"IS_OBSOLETE" CHAR(1 BYTE), 
1163
	"OBSOLETE_COMMENTS" VARCHAR2(4000 BYTE), 
1164
	"BUILD_TYPE" CHAR(1 BYTE), 
1165
	"CHANGE_TYPE" CHAR(1 BYTE), 
1166
	"LINK" VARCHAR2(4000 BYTE), 
1167
	"PATCH_ELECTRONIC_NAME" VARCHAR2(4000 BYTE), 
4040 dpurdie 1168
	"BS_ID" NUMBER, 
5172 dpurdie 1169
	"IS_AUTOBUILDABLE" CHAR(1 BYTE), 
1170
	"SBOM_PRIORITY" CHAR(1 BYTE), 
4040 dpurdie 1171
	"RIPPLE_FIELD" CHAR(1 CHAR), 
1172
	"MAXIMUM_BUILD_TIME" NUMBER, 
1173
	"ESTIMATED_COMPLETION_TIME" DATE, 
1174
	"MAJOR_LIMIT" NUMBER(10,0), 
1175
	"MINOR_LIMIT" NUMBER(10,0), 
1176
	"PATCH_LIMIT" NUMBER(10,0), 
1177
	"BUILD_NUMBER_LIMIT" NUMBER(10,0), 
5384 dpurdie 1178
	"VCS_TYPE_ID" NUMBER, 
1179
	"PKG_IDEXT" VARCHAR2(70 BYTE)
5172 dpurdie 1180
   ) SEGMENT CREATION IMMEDIATE 
1181
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1182
  STORAGE(INITIAL 134217728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1183
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1184
  TABLESPACE "RELEASEM_DATA" ;
1185
 
1186
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."RELEASED_AT" IS 'No longer used';
4040 dpurdie 1187
--------------------------------------------------------
1188
--  DDL for Table PEGGED_VERSIONS
1189
--------------------------------------------------------
1190
 
5172 dpurdie 1191
  CREATE TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" 
4040 dpurdie 1192
   (	"RTAG_ID" NUMBER, 
1193
	"PV_ID" NUMBER
5172 dpurdie 1194
   ) SEGMENT CREATION IMMEDIATE 
1195
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1196
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1197
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1198
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1199
--------------------------------------------------------
1200
--  DDL for Table PLANNED
1201
--------------------------------------------------------
1202
 
5172 dpurdie 1203
  CREATE TABLE "RELEASE_MANAGER"."PLANNED" 
4040 dpurdie 1204
   (	"RTAG_ID" NUMBER, 
1205
	"PV_ID" NUMBER, 
1206
	"VIEW_ID" NUMBER, 
5172 dpurdie 1207
	"OPERATION" CHAR(1 BYTE)
1208
   ) SEGMENT CREATION IMMEDIATE 
1209
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1210
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1211
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1212
  TABLESPACE "RELEASEM_DATA" ;
1213
 
1214
   COMMENT ON COLUMN "RELEASE_MANAGER"."PLANNED"."OPERATION" IS 'A: Add existing version.
1215
 
1216
S:Subtract existing Version. 
1217
 
1218
R:Add New Version';
1219
   COMMENT ON TABLE "RELEASE_MANAGER"."PLANNED"  IS 'This table contains WORK IN PROGRESS packages';
4040 dpurdie 1220
--------------------------------------------------------
1221
--  DDL for Table PLANNED_VERSIONS
1222
--------------------------------------------------------
1223
 
5172 dpurdie 1224
  CREATE TABLE "RELEASE_MANAGER"."PLANNED_VERSIONS" 
4040 dpurdie 1225
   (	"PKG_ID" NUMBER, 
5172 dpurdie 1226
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 1227
	"PLANNED_TIME" DATE
5172 dpurdie 1228
   ) SEGMENT CREATION IMMEDIATE 
1229
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1230
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1231
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1232
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1233
--------------------------------------------------------
1234
--  DDL for Table PLATFORMS
1235
--------------------------------------------------------
1236
 
5172 dpurdie 1237
  CREATE TABLE "RELEASE_MANAGER"."PLATFORMS" 
4040 dpurdie 1238
   (	"CODE" NUMBER, 
5172 dpurdie 1239
	"NAME" VARCHAR2(255 BYTE)
1240
   ) SEGMENT CREATION IMMEDIATE 
1241
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1242
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1243
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1244
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1245
--------------------------------------------------------
1246
--  DDL for Table PROCESSES
1247
--------------------------------------------------------
1248
 
5172 dpurdie 1249
  CREATE TABLE "RELEASE_MANAGER"."PROCESSES" 
4040 dpurdie 1250
   (	"PROC_ID" NUMBER, 
5172 dpurdie 1251
	"PROC_NAME" VARCHAR2(255 BYTE), 
1252
	"PROC_DESCRIPTION" VARCHAR2(255 BYTE), 
1253
	"RUN_AS" VARCHAR2(255 BYTE), 
1254
	"PKG_OWNER" VARCHAR2(4000 BYTE), 
1255
	"IS_INTERFACE" CHAR(1 BYTE)
1256
   ) SEGMENT CREATION IMMEDIATE 
1257
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1258
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1259
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1260
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1261
--------------------------------------------------------
1262
--  DDL for Table PRODUCT_COMPONENTS
1263
--------------------------------------------------------
1264
 
5172 dpurdie 1265
  CREATE TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" 
4040 dpurdie 1266
   (	"PV_ID" NUMBER, 
1267
	"OS_ID" NUMBER, 
5172 dpurdie 1268
	"FILE_PATH" VARCHAR2(4000 BYTE), 
1269
	"FILE_NAME" VARCHAR2(4000 BYTE), 
1270
	"DESTINATION_PATH" VARCHAR2(4000 BYTE), 
4040 dpurdie 1271
	"BYTE_SIZE" NUMBER, 
5172 dpurdie 1272
	"CRC_CKSUM" VARCHAR2(2000 BYTE)
1273
   ) SEGMENT CREATION IMMEDIATE 
1274
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1275
  STORAGE(INITIAL 31457280 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1276
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1277
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1278
--------------------------------------------------------
1279
--  DDL for Table PRODUCT_STATES
1280
--------------------------------------------------------
1281
 
5172 dpurdie 1282
  CREATE TABLE "RELEASE_MANAGER"."PRODUCT_STATES" 
4040 dpurdie 1283
   (	"STATE_ID" NUMBER, 
5172 dpurdie 1284
	"STATE" VARCHAR2(4000 BYTE)
1285
   ) SEGMENT CREATION IMMEDIATE 
1286
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1287
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1288
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1289
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1290
--------------------------------------------------------
1291
--  DDL for Table PROJECTS
1292
--------------------------------------------------------
1293
 
5172 dpurdie 1294
  CREATE TABLE "RELEASE_MANAGER"."PROJECTS" 
4040 dpurdie 1295
   (	"PROJ_ID" NUMBER, 
5172 dpurdie 1296
	"PROJ_NAME" VARCHAR2(50 BYTE), 
1297
	"BASE_URL" VARCHAR2(4000 BYTE), 
1298
	"JIRA_KEY" VARCHAR2(16 BYTE)
1299
   ) SEGMENT CREATION IMMEDIATE 
1300
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1301
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1302
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1303
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1304
--------------------------------------------------------
1305
--  DDL for Table PROJECT_ACTION_LOG
1306
--------------------------------------------------------
1307
 
5172 dpurdie 1308
  CREATE TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" 
4040 dpurdie 1309
   (	"USER_ID" NUMBER, 
1310
	"ACTION_DATETIME" DATE, 
1311
	"PROJ_ID" NUMBER, 
5172 dpurdie 1312
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1313
	"ACTTYPE_ID" NUMBER, 
1314
	"RTAG_ID" NUMBER
5172 dpurdie 1315
   ) SEGMENT CREATION IMMEDIATE 
1316
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1317
  STORAGE(INITIAL 851968 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1318
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1319
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1320
--------------------------------------------------------
1321
--  DDL for Table PROJECT_EXTENTIONS
1322
--------------------------------------------------------
1323
 
5172 dpurdie 1324
  CREATE TABLE "RELEASE_MANAGER"."PROJECT_EXTENTIONS" 
4040 dpurdie 1325
   (	"PROJ_ID" NUMBER, 
5172 dpurdie 1326
	"EXT_NAME" VARCHAR2(10 BYTE), 
1327
	"UCOMMENT" VARCHAR2(120 BYTE), 
1328
	"IS_VISIBLE" CHAR(1 BYTE) DEFAULT 'Y', 
1329
	"IS_COTS" CHAR(1 BYTE) DEFAULT 'N'
1330
   ) SEGMENT CREATION IMMEDIATE 
1331
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1332
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1333
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1334
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1335
--------------------------------------------------------
1336
--  DDL for Table RELEASE_COMPONENTS
1337
--------------------------------------------------------
1338
 
5172 dpurdie 1339
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" 
4040 dpurdie 1340
   (	"PV_ID" NUMBER, 
5172 dpurdie 1341
	"FILE_NAME" VARCHAR2(255 BYTE), 
1342
	"FILE_PATH" VARCHAR2(2000 BYTE), 
4040 dpurdie 1343
	"BYTE_SIZE" NUMBER, 
5172 dpurdie 1344
	"CRC_CKSUM" VARCHAR2(50 BYTE), 
1345
	"CRC_MODCRC" VARCHAR2(50 BYTE)
1346
   ) SEGMENT CREATION IMMEDIATE 
1347
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1348
  STORAGE(INITIAL 2828009472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1349
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1350
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1351
--------------------------------------------------------
1352
--  DDL for Table RELEASE_CONFIG
1353
--------------------------------------------------------
1354
 
5172 dpurdie 1355
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" 
4040 dpurdie 1356
   (	"RCON_ID" NUMBER, 
1357
	"RTAG_ID" NUMBER, 
1358
	"GBE_ID" NUMBER, 
5172 dpurdie 1359
	"DAEMON_HOSTNAME" VARCHAR2(50 BYTE), 
4040 dpurdie 1360
	"DAEMON_MODE" CHAR(1 CHAR), 
5172 dpurdie 1361
	"GBE_BUILDFILTER" VARCHAR2(255 BYTE), 
4308 dpurdie 1362
	"BMCON_ID" NUMBER
5172 dpurdie 1363
   ) SEGMENT CREATION IMMEDIATE 
1364
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1365
  STORAGE(INITIAL 196608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1366
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1367
  TABLESPACE "RELEASEM_DATA" ;
4308 dpurdie 1368
 
5172 dpurdie 1369
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."GBE_ID" IS 'Do not use. Data should come from build_machine_config';
1370
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."DAEMON_HOSTNAME" IS 'Do not use. Data should come from build_machine_config';
1371
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."BMCON_ID" IS 'Link to the build_machine_config table';
4040 dpurdie 1372
--------------------------------------------------------
1373
--  DDL for Table RELEASE_CONTENT
1374
--------------------------------------------------------
1375
 
5172 dpurdie 1376
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" 
4040 dpurdie 1377
   (	"RTAG_ID" NUMBER, 
1378
	"PV_ID" NUMBER, 
1379
	"BASE_VIEW_ID" NUMBER, 
1380
	"INSERT_STAMP" DATE, 
1381
	"INSERTOR_ID" NUMBER, 
1382
	"PKG_STATE" NUMBER, 
1383
	"PKG_ID" NUMBER, 
1384
	"DEPRECATED_STATE" NUMBER, 
5172 dpurdie 1385
	"PRODUCT_STATE" NUMBER, 
1386
	"SDKTAG_ID" NUMBER
1387
   ) SEGMENT CREATION IMMEDIATE 
1388
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1389
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1390
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1391
  TABLESPACE "RELEASEM_DATA" ;
1392
 
5384 dpurdie 1393
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."PKG_ID" IS 'NotUsed any more. Was:Package that has been deprecated';
5172 dpurdie 1394
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."DEPRECATED_STATE" IS '6: Deprecated Package, 7: Deprecated Dependent';
1395
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."SDKTAG_ID" IS 'Pkg imported via SDK';
4040 dpurdie 1396
--------------------------------------------------------
1397
--  DDL for Table RELEASE_LINKS
1398
--------------------------------------------------------
1399
 
5172 dpurdie 1400
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_LINKS" 
4040 dpurdie 1401
   (	"RTAG_ID" NUMBER, 
1402
	"REF_RTAG_ID" NUMBER
5172 dpurdie 1403
   ) SEGMENT CREATION IMMEDIATE 
1404
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1405
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1406
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1407
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1408
--------------------------------------------------------
1409
--  DDL for Table RELEASE_METRICS
1410
--------------------------------------------------------
1411
 
5172 dpurdie 1412
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_METRICS" 
4040 dpurdie 1413
   (	"RTAG_ID" NUMBER, 
1414
	"TOTAL_PACKAGES" NUMBER, 
1415
	"AUTOBUILT" NUMBER, 
1416
	"LINES_OF_CODE" NUMBER, 
1417
	"UNIT_TESTED" NUMBER, 
1418
	"AUTOTESTED" NUMBER, 
1419
	"BRANCHES" NUMBER, 
1420
	"LAST_BUILD_TIME" DATE
5172 dpurdie 1421
   ) SEGMENT CREATION IMMEDIATE 
1422
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1423
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1424
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1425
  TABLESPACE "RELEASEM_DATA" ;
1426
--------------------------------------------------------
1427
--  DDL for Table RELEASE_MODIFIED
1428
--------------------------------------------------------
1429
 
1430
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" 
1431
   (	"RTAG_ID" NUMBER, 
1432
	"TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP, 
1433
	"SEQNUM" NUMBER
1434
   ) SEGMENT CREATION IMMEDIATE 
1435
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1436
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1437
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1438
  TABLESPACE "RELEASEM_DATA" ;
1439
 
1440
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."RTAG_ID" IS 'Link to Release';
1441
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."TIMESTAMP" IS 'Time of the modification';
1442
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."SEQNUM" IS 'Unique number indicating change';
1443
   COMMENT ON TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED"  IS 'This table conatins a single entry for each RELEASE_TAG.
1444
It is used by the build system to help detect changes to the content of a Release.
1445
A stored proceedure simplifies the use of this table: PK_RELEASE.SET_RELEASE_MODIFIED
1446
 
1447
This should be called whenever the package_versions in the release have changed in such
1448
a manner that the build daemons should examine the release. This includes:
1449
 - Packages added and removed
1450
 - Packages build status changed (re-included in the release )
1451
 - Packages made Pending Build';
4040 dpurdie 1452
--------------------------------------------------------
1453
--  DDL for Table RELEASE_TAGS
1454
--------------------------------------------------------
1455
 
5172 dpurdie 1456
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_TAGS" 
4040 dpurdie 1457
   (	"RTAG_ID" NUMBER, 
1458
	"VTREE_ID" NUMBER, 
5172 dpurdie 1459
	"RTAG_NAME" VARCHAR2(50 BYTE), 
1460
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1461
	"CREATED_STAMP" DATE, 
1462
	"CREATOR_ID" NUMBER, 
1463
	"OFFICIAL_STAMP" DATE, 
1464
	"RELEASOR_ID" NUMBER, 
5172 dpurdie 1465
	"OFFICIAL" CHAR(1 BYTE), 
1466
	"REBUILD_ENV" CHAR(1 BYTE), 
4040 dpurdie 1467
	"REBUILD_STAMP" NUMBER, 
5172 dpurdie 1468
	"RTAG_VERSION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1469
	"RTAG_LIFE_CYCLE" NUMBER, 
1470
	"PARENT_RTAG_ID" NUMBER, 
1471
	"PROJ_ID" NUMBER, 
1472
	"DISPLAY_ORDER" NUMBER, 
5172 dpurdie 1473
	"OWNER_EMAIL" VARCHAR2(1000 BYTE), 
4040 dpurdie 1474
	"ASSOC_MASS_REF" NUMBER, 
5172 dpurdie 1475
	"OWNER_PERSONAL_EMAIL" VARCHAR2(1000 BYTE), 
1476
	"CONFIG_SPEC_BRANCH" VARCHAR2(4000 BYTE), 
1477
	"PRODUCT_STATE_USED" CHAR(1 BYTE), 
1478
	"OFFICIAL_ID" NUMBER, 
5384 dpurdie 1479
	"BUILD_AGE" NUMBER DEFAULT 31, 
1480
	"LXR" CHAR(1 BYTE) DEFAULT 'N'
5172 dpurdie 1481
   ) SEGMENT CREATION IMMEDIATE 
1482
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1483
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1484
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1485
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1486
 
5384 dpurdie 1487
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."CREATED_STAMP" IS 'Date Release was created';
1488
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."CREATOR_ID" IS 'User who created the release';
1489
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL_STAMP" IS 'Date OFFICIAL state was changed';
1490
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."RELEASOR_ID" IS 'Not Used';
1491
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL" IS 'State of release. A:Archived, Y:Closed, C:CCB Mode, R:Restricted, N: Open';
1492
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."REBUILD_ENV" IS 'Y: Rebuild Package State';
1493
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."REBUILD_STAMP" IS 'Not used ?';
1494
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL_ID" IS 'User last changed OFFICIAL state';
5172 dpurdie 1495
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."BUILD_AGE" IS 'Days without building before warning is shown';
5384 dpurdie 1496
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."LXR" IS 'Y:Enable LXR';
4040 dpurdie 1497
--------------------------------------------------------
1498
--  DDL for Table RIPPLE_FIELD_STATES
1499
--------------------------------------------------------
1500
 
5172 dpurdie 1501
  CREATE TABLE "RELEASE_MANAGER"."RIPPLE_FIELD_STATES" 
4040 dpurdie 1502
   (	"STATE_ID" NUMBER, 
5172 dpurdie 1503
	"STATE_ACRONYM" CHAR(1 BYTE), 
1504
	"STATE_NAME" VARCHAR2(50 BYTE)
1505
   ) SEGMENT CREATION IMMEDIATE 
1506
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1507
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1508
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1509
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1510
--------------------------------------------------------
1511
--  DDL for Table RM_PACKAGE_ISSUES
1512
--------------------------------------------------------
1513
 
5172 dpurdie 1514
  CREATE TABLE "RELEASE_MANAGER"."RM_PACKAGE_ISSUES" 
4040 dpurdie 1515
   (	"PKG_ID" NUMBER, 
5172 dpurdie 1516
	"PKG_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 1517
	"PV_ID" NUMBER, 
5172 dpurdie 1518
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 1519
	"DPV_ID" NUMBER, 
5172 dpurdie 1520
	"DPKG_NAME" VARCHAR2(50 BYTE), 
1521
	"DPKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 1522
	"ISS_DB" NUMBER, 
1523
	"ISS_ID" NUMBER
5172 dpurdie 1524
   ) SEGMENT CREATION IMMEDIATE 
1525
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1526
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1527
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1528
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1529
--------------------------------------------------------
1530
--  DDL for Table RM_PKG_ISSUES
1531
--------------------------------------------------------
1532
 
5172 dpurdie 1533
  CREATE GLOBAL TEMPORARY TABLE "RELEASE_MANAGER"."RM_PKG_ISSUES" 
4040 dpurdie 1534
   (	"PKG_ID" NUMBER, 
5172 dpurdie 1535
	"PKG_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 1536
	"PV_ID" NUMBER, 
5172 dpurdie 1537
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 1538
	"DPV_ID" NUMBER, 
5172 dpurdie 1539
	"DPKG_NAME" VARCHAR2(50 BYTE), 
1540
	"DPKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 1541
	"ISS_DB" NUMBER, 
1542
	"ISS_ID" NUMBER
1543
   ) ON COMMIT PRESERVE ROWS ;
1544
--------------------------------------------------------
1545
--  DDL for Table RUNTIME_DEPENDENCIES
1546
--------------------------------------------------------
1547
 
5172 dpurdie 1548
  CREATE TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" 
4040 dpurdie 1549
   (	"PV_ID" NUMBER, 
1550
	"RTD_ID" NUMBER, 
5172 dpurdie 1551
	"RTD_COMMENTS" VARCHAR2(2000 BYTE), 
1552
	"RTD_URL" VARCHAR2(2000 BYTE), 
4040 dpurdie 1553
	"MOD_DATE" DATE, 
1554
	"MOD_USER" NUMBER
5172 dpurdie 1555
   ) SEGMENT CREATION IMMEDIATE 
1556
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1557
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1558
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1559
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1560
--------------------------------------------------------
1561
--  DDL for Table RUN_LEVEL
1562
--------------------------------------------------------
1563
 
5172 dpurdie 1564
  CREATE TABLE "RELEASE_MANAGER"."RUN_LEVEL" 
4040 dpurdie 1565
   (	"RCON_ID" NUMBER, 
1566
	"CURRENT_BUILD_FILES" CLOB, 
1567
	"CURRENT_RUN_LEVEL" NUMBER, 
1568
	"PAUSE" NUMBER, 
1569
	"CURRENT_PKG_ID_BEING_BUILT" NUMBER, 
4553 dpurdie 1570
	"KEEP_ALIVE" DATE, 
1571
	"CURRENT_PV_ID" NUMBER, 
1572
	"LAST_BUILD" DATE DEFAULT sysdate
5172 dpurdie 1573
   ) SEGMENT CREATION IMMEDIATE 
1574
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1575
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1576
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1577
  TABLESPACE "RELEASEM_DATA" 
1578
 LOB ("CURRENT_BUILD_FILES") STORE AS BASICFILE (
1579
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
1580
  NOCACHE LOGGING 
1581
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1582
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
4553 dpurdie 1583
 
5172 dpurdie 1584
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."RCON_ID" IS 'Link to the Release_config table';
1585
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_BUILD_FILES" IS 'The current build file. Set by the Master, consumed by the Slaves.';
1586
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_RUN_LEVEL" IS 'Daemon indiactes its current state';
1587
   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';
1588
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_PKG_ID_BEING_BUILT" IS 'pkg_id of the package currently being built';
1589
   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.';
1590
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_PV_ID" IS 'The PV_ID of the package currently being built.';
1591
   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.';
4040 dpurdie 1592
--------------------------------------------------------
1593
--  DDL for Table RUN_LEVEL_SCHEDULE
1594
--------------------------------------------------------
1595
 
5172 dpurdie 1596
  CREATE TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" 
4040 dpurdie 1597
   (	"SCHEDULED_ID" NUMBER, 
1598
	"SCHEDULED_PAUSE" DATE, 
1599
	"SCHEDULED_RESUME" DATE, 
5172 dpurdie 1600
	"REPEAT" CHAR(1 BYTE), 
1601
	"INDEFINITE_PAUSE" CHAR(1 BYTE)
1602
   ) SEGMENT CREATION IMMEDIATE 
1603
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1604
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1605
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1606
  TABLESPACE "RELEASEM_DATA" ;
1607
 
1608
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_ID" IS 'Unique entry identifier';
1609
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_PAUSE" IS 'Start DateTime of the outage';
1610
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_RESUME" IS 'End DateTime of the outage';
1611
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."REPEAT" IS '0:Once, 1:Daily, 7:Weekly';
1612
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."INDEFINITE_PAUSE" IS 'Non Null indicates indefinite pause';
1613
--------------------------------------------------------
1614
--  DDL for Table SDK_CONTENT
1615
--------------------------------------------------------
1616
 
1617
  CREATE TABLE "RELEASE_MANAGER"."SDK_CONTENT" 
1618
   (	"SDKTAG_ID" NUMBER, 
1619
	"PV_ID" NUMBER, 
1620
	"SDKPKG_STATE" CHAR(1 BYTE) DEFAULT '-'
1621
   ) SEGMENT CREATION IMMEDIATE 
1622
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1623
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1624
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1625
  TABLESPACE "RELEASEM_DATA" ;
1626
 
1627
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."SDKTAG_ID" IS 'Ref to SDK TAG';
1628
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."PV_ID" IS 'Ref to Package Versions';
1629
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."SDKPKG_STATE" IS 'Package State: -:Not exposed, E:Exposed';
1630
--------------------------------------------------------
1631
--  DDL for Table SDK_NAMES
1632
--------------------------------------------------------
1633
 
1634
  CREATE TABLE "RELEASE_MANAGER"."SDK_NAMES" 
1635
   (	"SDK_ID" NUMBER, 
1636
	"SDK_NAME" VARCHAR2(50 BYTE), 
1637
	"SDK_COMMENT" VARCHAR2(4000 BYTE), 
1638
	"VIEW_ID" NUMBER, 
1639
	"PROJ_ID" NUMBER
1640
   ) SEGMENT CREATION IMMEDIATE 
1641
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1642
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1643
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1644
  TABLESPACE "RELEASEM_DATA" ;
1645
 
1646
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_ID" IS 'Auto Created when row is created';
1647
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_NAME" IS 'Name of the SDK';
1648
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_COMMENT" IS 'User comment';
1649
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."VIEW_ID" IS 'Base View for display';
1650
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."PROJ_ID" IS 'Project ID for Security context';
1651
--------------------------------------------------------
1652
--  DDL for Table SDK_TAGS
1653
--------------------------------------------------------
1654
 
1655
  CREATE TABLE "RELEASE_MANAGER"."SDK_TAGS" 
1656
   (	"SDKTAG_ID" NUMBER, 
1657
	"SDKTAG_NAME" VARCHAR2(50 BYTE), 
1658
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
1659
	"SDK_ID" NUMBER, 
1660
	"RTAG_ID" NUMBER, 
1661
	"CREATED_STAMP" TIMESTAMP (6) DEFAULT SYSTIMESTAMP, 
1662
	"CREATOR_ID" NUMBER, 
1663
	"STATE_STAMP" TIMESTAMP (6) DEFAULT SYSTIMESTAMP, 
1664
	"STATE_ID" NUMBER, 
1665
	"SDK_STATE" CHAR(1 BYTE) DEFAULT 'U'
1666
   ) SEGMENT CREATION IMMEDIATE 
1667
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1668
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1669
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1670
  TABLESPACE "RELEASEM_DATA" ;
1671
 
1672
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDKTAG_ID" IS 'Unique ID. Created automatically';
1673
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDKTAG_NAME" IS 'Name of the SDK Version';
1674
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."DESCRIPTION" IS 'General description';
1675
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDK_ID" IS 'Parent SDK';
1676
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."RTAG_ID" IS 'Release within which this SDK is maintained';
1677
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."CREATED_STAMP" IS 'When created';
1678
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."CREATOR_ID" IS 'Who Created the version';
1679
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."STATE_STAMP" IS 'Time of last change to this version';
1680
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."STATE_ID" IS 'User id who made the last state change';
1681
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDK_STATE" IS 'State: U-Under Development; R-Released; D-Deprecated';
4040 dpurdie 1682
--------------------------------------------------------
5384 dpurdie 1683
--  DDL for Table TEMP_ENV_DEPS
1684
--------------------------------------------------------
1685
 
1686
  CREATE TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" 
1687
   (	"SESSION_NUM" NUMBER, 
1688
	"PV_ID" NUMBER, 
1689
	"PKG_ID" NUMBER, 
1690
	"V_EXT" VARCHAR2(50 BYTE), 
1691
	"DPV_ID" NUMBER, 
1692
	"DPKG_ID" NUMBER, 
1693
	"DV_EXT" VARCHAR2(50 BYTE)
1694
   ) SEGMENT CREATION IMMEDIATE 
1695
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1696
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1697
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1698
  TABLESPACE "RELEASEM_DATA" ;
1699
 
1700
   COMMENT ON TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS"  IS 'This table is used in the creation of the package_state information
1701
Data in the table is temporary. It should be cleared out after its been used.
1702
Data will only be used for a few seconds.
1703
 
1704
The table is used to map DPV_IDs to PV_IDs, but only for DPV_IDs that are of interest';
1705
--------------------------------------------------------
4040 dpurdie 1706
--  DDL for Table TEMP_ENV_STATES
1707
--------------------------------------------------------
1708
 
5172 dpurdie 1709
  CREATE TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" 
4040 dpurdie 1710
   (	"SESSION_NUM" NUMBER, 
1711
	"LEVEL_NUM" NUMBER, 
1712
	"PV_ID" NUMBER, 
1713
	"PKG_ID" NUMBER, 
5172 dpurdie 1714
	"V_EXT" VARCHAR2(50 BYTE), 
4040 dpurdie 1715
	"TES_STATE" NUMBER
5172 dpurdie 1716
   ) SEGMENT CREATION IMMEDIATE 
1717
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1718
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1719
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1720
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1721
--------------------------------------------------------
1722
--  DDL for Table TEMP_SASH
1723
--------------------------------------------------------
1724
 
5172 dpurdie 1725
  CREATE TABLE "RELEASE_MANAGER"."TEMP_SASH" 
4040 dpurdie 1726
   (	"RTAG_ID" NUMBER, 
1727
	"PROJ_ID" NUMBER
5172 dpurdie 1728
   ) SEGMENT CREATION IMMEDIATE 
1729
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1730
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1731
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1732
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1733
--------------------------------------------------------
1734
--  DDL for Table TEMP_TREE_BROWSE
1735
--------------------------------------------------------
1736
 
5172 dpurdie 1737
  CREATE TABLE "RELEASE_MANAGER"."TEMP_TREE_BROWSE" 
4040 dpurdie 1738
   (	"SESSION_NUM" NUMBER, 
1739
	"LEVEL_NUM" NUMBER, 
1740
	"PV_ID" NUMBER, 
1741
	"PKG_ID" NUMBER, 
5172 dpurdie 1742
	"V_EXT" VARCHAR2(50 BYTE), 
4040 dpurdie 1743
	"DIRECTION" NUMBER
5172 dpurdie 1744
   ) SEGMENT CREATION IMMEDIATE 
1745
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1746
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1747
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1748
  TABLESPACE "RELEASEM_DATA" ;
1749
--------------------------------------------------------
1750
--  DDL for Table TEST_RUN
1751
--------------------------------------------------------
1752
 
1753
  CREATE TABLE "RELEASE_MANAGER"."TEST_RUN" 
1754
   (	"BUILD_ID" NUMBER, 
1755
	"PLATFORM" VARCHAR2(50 BYTE), 
1756
	"TYPE" VARCHAR2(1 BYTE), 
5384 dpurdie 1757
	"TEST_NAME" VARCHAR2(200 BYTE), 
5172 dpurdie 1758
	"TEST_OUTCOME" VARCHAR2(20 BYTE), 
1759
	"TIME_TAKEN" NUMBER, 
1760
	"FAIL_MESSAGE" CLOB
1761
   ) SEGMENT CREATION IMMEDIATE 
1762
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1763
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1764
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1765
  TABLESPACE "RELEASEM_DATA" 
1766
 LOB ("FAIL_MESSAGE") STORE AS BASICFILE (
1767
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
1768
  NOCACHE LOGGING 
1769
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1770
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
1771
 
1772
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."PLATFORM" IS 'Target Platform';
1773
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TYPE" IS 'P or D';
1774
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TEST_OUTCOME" IS 'PASS/FAIL/SKIP';
1775
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TIME_TAKEN" IS 'Test Duration in milliseconds';
1776
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."FAIL_MESSAGE" IS 'Failure Message';
4040 dpurdie 1777
--------------------------------------------------------
1778
--  DDL for Table TEST_TYPES
1779
--------------------------------------------------------
1780
 
5172 dpurdie 1781
  CREATE TABLE "RELEASE_MANAGER"."TEST_TYPES" 
4040 dpurdie 1782
   (	"TEST_TYPE_ID" NUMBER, 
5172 dpurdie 1783
	"TEST_TYPE_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 1784
	"DISPLAY_ORDER" NUMBER
5172 dpurdie 1785
   ) SEGMENT CREATION IMMEDIATE 
1786
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1787
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1788
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1789
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1790
--------------------------------------------------------
1791
--  DDL for Table UNIT_TESTS
1792
--------------------------------------------------------
1793
 
5172 dpurdie 1794
  CREATE TABLE "RELEASE_MANAGER"."UNIT_TESTS" 
4040 dpurdie 1795
   (	"TEST_ID" NUMBER, 
1796
	"PV_ID" NUMBER, 
1797
	"TEST_TYPES_FK" NUMBER, 
5172 dpurdie 1798
	"TEST_SUMMARY" VARCHAR2(4000 BYTE), 
4040 dpurdie 1799
	"COMPLETION_DATE" DATE, 
1800
	"COMPLETED_BY" NUMBER, 
5172 dpurdie 1801
	"RESULTS_URL" VARCHAR2(2000 BYTE), 
1802
	"RESULTS_ATTACHMENT_NAME" VARCHAR2(2000 BYTE), 
1803
	"TEST_ACCEPTED" CHAR(1 BYTE), 
4040 dpurdie 1804
	"ACCEPTANCE_DATE" DATE, 
1805
	"ACCEPTED_BY" NUMBER, 
5172 dpurdie 1806
	"REVIEW_COMMENTS" VARCHAR2(4000 BYTE), 
1807
	"NUMOF_TEST" VARCHAR2(50 BYTE)
1808
   ) SEGMENT CREATION IMMEDIATE 
1809
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1810
  STORAGE(INITIAL 31457280 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1811
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1812
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1813
--------------------------------------------------------
1814
--  DDL for Table VALIDATION_RULES
1815
--------------------------------------------------------
1816
 
5172 dpurdie 1817
  CREATE TABLE "RELEASE_MANAGER"."VALIDATION_RULES" 
1818
   (	"FIELD_NAME" VARCHAR2(1000 BYTE), 
1819
	"IS_REQUIRED" CHAR(1 BYTE), 
1820
	"IS_NUMERIC" CHAR(1 BYTE), 
4040 dpurdie 1821
	"MIN_NUMERIC_VALUE" NUMBER, 
1822
	"MAX_NUMERIC_VALUE" NUMBER, 
5172 dpurdie 1823
	"IS_DATE" CHAR(1 BYTE), 
4040 dpurdie 1824
	"START_DATE" DATE, 
1825
	"END_DATE" DATE, 
1826
	"MIN_STRING_LENGTH" NUMBER, 
1827
	"MAX_STRING_LENGTH" NUMBER, 
5172 dpurdie 1828
	"REGEXP" VARCHAR2(4000 BYTE), 
1829
	"REGEXP_DESCRIPTION" VARCHAR2(50 BYTE)
1830
   ) SEGMENT CREATION IMMEDIATE 
1831
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1832
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1833
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1834
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1835
--------------------------------------------------------
1836
--  DDL for Table VCS_TYPE
1837
--------------------------------------------------------
1838
 
5172 dpurdie 1839
  CREATE TABLE "RELEASE_MANAGER"."VCS_TYPE" 
4040 dpurdie 1840
   (	"VCS_TYPE_ID" NUMBER, 
5172 dpurdie 1841
	"NAME" VARCHAR2(128 BYTE), 
1842
	"TAG" VARCHAR2(32 BYTE)
1843
   ) SEGMENT CREATION IMMEDIATE 
1844
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1845
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1846
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1847
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1848
--------------------------------------------------------
1849
--  DDL for Table VIEWS
1850
--------------------------------------------------------
1851
 
5172 dpurdie 1852
  CREATE TABLE "RELEASE_MANAGER"."VIEWS" 
4040 dpurdie 1853
   (	"VIEW_ID" NUMBER, 
5172 dpurdie 1854
	"VIEW_NAME" VARCHAR2(30 BYTE), 
4040 dpurdie 1855
	"OWNER_ID" NUMBER, 
5172 dpurdie 1856
	"BASE_VIEW" CHAR(1 BYTE), 
1857
	"PUBLIC_READ" CHAR(1 BYTE)
1858
   ) SEGMENT CREATION IMMEDIATE 
1859
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1860
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1861
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1862
  TABLESPACE "RELEASEM_DATA" ;
1863
 
1864
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEWS"."OWNER_ID" IS '0:Public';
1865
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEWS"."BASE_VIEW" IS 'Y:Base View';
4040 dpurdie 1866
--------------------------------------------------------
1867
--  DDL for Table VIEW_DEF
1868
--------------------------------------------------------
1869
 
5172 dpurdie 1870
  CREATE TABLE "RELEASE_MANAGER"."VIEW_DEF" 
4040 dpurdie 1871
   (	"VIEW_ID" NUMBER, 
1872
	"PKG_ID" NUMBER
5172 dpurdie 1873
   ) SEGMENT CREATION IMMEDIATE 
1874
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1875
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1876
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1877
  TABLESPACE "RELEASEM_DATA" ;
1878
 
1879
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEW_DEF"."VIEW_ID" IS 'Non Base View ID';
1880
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEW_DEF"."PKG_ID" IS 'Package ID';
1881
   COMMENT ON TABLE "RELEASE_MANAGER"."VIEW_DEF"  IS 'Packages in a non-baseview';
4040 dpurdie 1882
--------------------------------------------------------
1883
--  DDL for Table VIEW_SETTINGS
1884
--------------------------------------------------------
1885
 
5172 dpurdie 1886
  CREATE TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" 
4040 dpurdie 1887
   (	"USER_ID" NUMBER, 
1888
	"VIEW_ID" NUMBER
5172 dpurdie 1889
   ) SEGMENT CREATION IMMEDIATE 
1890
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1891
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1892
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1893
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1894
--------------------------------------------------------
1895
--  DDL for Table VTREES
1896
--------------------------------------------------------
1897
 
5172 dpurdie 1898
  CREATE TABLE "RELEASE_MANAGER"."VTREES" 
4040 dpurdie 1899
   (	"VTREE_ID" NUMBER, 
1900
	"PROJ_ID" NUMBER, 
5172 dpurdie 1901
	"VTREE_NAME" VARCHAR2(50 BYTE), 
1902
	"HIDE" CHAR(1 BYTE)
1903
   ) SEGMENT CREATION IMMEDIATE 
1904
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1905
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1906
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1907
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1908
--------------------------------------------------------
1909
--  DDL for Table VTREES_WORLD
1910
--------------------------------------------------------
1911
 
5172 dpurdie 1912
  CREATE TABLE "RELEASE_MANAGER"."VTREES_WORLD" 
4040 dpurdie 1913
   (	"WORLD_ID" NUMBER, 
1914
	"VTREE_ID" NUMBER
5172 dpurdie 1915
   ) SEGMENT CREATION IMMEDIATE 
1916
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1917
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1918
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1919
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1920
--------------------------------------------------------
1921
--  DDL for Table WORK_IN_PROGRESS
1922
--------------------------------------------------------
1923
 
5172 dpurdie 1924
  CREATE TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" 
4040 dpurdie 1925
   (	"RTAG_ID" NUMBER, 
1926
	"PV_ID" NUMBER, 
1927
	"VIEW_ID" NUMBER
5172 dpurdie 1928
   ) SEGMENT CREATION IMMEDIATE 
1929
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1930
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1931
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1932
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1933
--------------------------------------------------------
1934
--  DDL for Table WORLDS
1935
--------------------------------------------------------
1936
 
5172 dpurdie 1937
  CREATE TABLE "RELEASE_MANAGER"."WORLDS" 
4040 dpurdie 1938
   (	"WORLD_ID" NUMBER, 
5172 dpurdie 1939
	"WORLD_NAME" VARCHAR2(30 BYTE), 
1940
	"WORLD_DESC" VARCHAR2(255 BYTE)
1941
   ) SEGMENT CREATION IMMEDIATE 
1942
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1943
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1944
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1945
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1946
--------------------------------------------------------
1947
--  DDL for View ENVIRONMENT_VIEW
1948
--------------------------------------------------------
1949
 
5172 dpurdie 1950
  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 
4040 dpurdie 1951
  SELECT 2 AS ENV_AREA,
1952
    rc.PV_ID,
1953
    rc.RTAG_ID,
1954
    rc.BASE_VIEW_ID AS VIEW_ID,
1955
    rc.PKG_STATE,
1956
 rc.DEPRECATED_STATE,
1957
    rc.INSERTOR_ID,
1958
    rc.INSERT_STAMP,
1959
    ' ' AS OPERATION
1960
  FROM RELEASE_CONTENT rc
1961
UNION
1962
SELECT 0 AS ENV_AREA,
1963
    wip.PV_ID,
1964
    wip.RTAG_ID,
1965
    wip.VIEW_ID,
1966
    NULL AS PKG_STATE,
1967
 NULL AS DEPRECATED_STATE,
1968
    NULL AS INSERTOR_ID,
1969
    NULL AS INSERT_STAMP,
1970
    ' ' AS OPERATION
1971
  FROM WORK_IN_PROGRESS wip
1972
UNION
1973
SELECT 1 AS ENV_AREA,
1974
    pl.PV_ID,
1975
    pl.RTAG_ID,
1976
    pl.VIEW_ID,
1977
    NULL AS PKG_STATE,
1978
 NULL AS DEPRECATED_STATE,
1979
    NULL AS INSERTOR_ID,
1980
    NULL AS INSERT_STAMP,
1981
    pl.operation
1982
FROM PLANNED pl;
1983
--------------------------------------------------------
1984
--  DDL for View RM_PKG_ISSUES_ID
1985
--------------------------------------------------------
1986
 
5172 dpurdie 1987
  CREATE OR REPLACE FORCE VIEW "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" ("ISS_ID", "PKG_VERSION") AS 
4040 dpurdie 1988
  SELECT DISTINCT ISS_ID, PKG_VERSION FROM RM_PACKAGE_ISSUES WHERE ISS_ID IS NOT NULL
1989
 
1990
;
1991
--------------------------------------------------------
4211 dpurdie 1992
--  DDL for Index PK_LICENCES
4040 dpurdie 1993
--------------------------------------------------------
1994
 
5172 dpurdie 1995
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_LICENCES" ON "RELEASE_MANAGER"."LICENCES" ("LICENCE") 
1996
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
1997
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1998
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1999
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2000
--------------------------------------------------------
4211 dpurdie 2001
--  DDL for Index UNQ_PKG_BUILD_ENV
4040 dpurdie 2002
--------------------------------------------------------
2003
 
5172 dpurdie 2004
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PKG_BUILD_ENV" ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ("PV_ID", "BE_ID") 
2005
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2006
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2007
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2008
  TABLESPACE "RELEASEM_INDX" ;
2009
--------------------------------------------------------
2010
--  DDL for Index SDK_NAMES_UK1
2011
--------------------------------------------------------
2012
 
2013
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_NAMES_UK1" ON "RELEASE_MANAGER"."SDK_NAMES" ("SDK_NAME") 
2014
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2015
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2016
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2017
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 2018
--------------------------------------------------------
4211 dpurdie 2019
--  DDL for Index UNQ_PACKAGES
4040 dpurdie 2020
--------------------------------------------------------
2021
 
5172 dpurdie 2022
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGES" ON "RELEASE_MANAGER"."PACKAGES" ("PKG_NAME") 
2023
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2024
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2025
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2026
  TABLESPACE "RELEASEM_INDX" ;
2027
--------------------------------------------------------
2028
--  DDL for Index INX_PACKAGES_ALIAS
2029
--------------------------------------------------------
2030
 
5384 dpurdie 2031
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_PACKAGES_ALIAS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID", "PKG_ID", "V_EXT") 
5172 dpurdie 2032
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2033
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2034
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2035
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 2036
--------------------------------------------------------
2037
--  DDL for Index CODE_REVIEW_URL_PK
2038
--------------------------------------------------------
2039
 
5172 dpurdie 2040
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CODE_REVIEW_URL_PK" ON "RELEASE_MANAGER"."CODE_REVIEW_URL" ("CR_ID") 
2041
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2042
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2043
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2044
  TABLESPACE "RELEASEM_INDX" ;
2045
--------------------------------------------------------
2046
--  DDL for Index SDK_NAMES_PK
2047
--------------------------------------------------------
2048
 
2049
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_NAMES_PK" ON "RELEASE_MANAGER"."SDK_NAMES" ("SDK_ID") 
2050
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2051
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2052
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2053
  TABLESPACE "RELEASEM_DATA" ;
2054
--------------------------------------------------------
2055
--  DDL for Index INX_ACTION_TIMESTAMP
2056
--------------------------------------------------------
2057
 
2058
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_TIMESTAMP" ON "RELEASE_MANAGER"."ACTION_LOG" ("ACTION_TIMESTAMP") 
2059
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2060
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2061
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2062
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 2063
--------------------------------------------------------
4211 dpurdie 2064
--  DDL for Index INX_UT_COMPLETED
4040 dpurdie 2065
--------------------------------------------------------
2066
 
5172 dpurdie 2067
  CREATE INDEX "RELEASE_MANAGER"."INX_UT_COMPLETED" ON "RELEASE_MANAGER"."UNIT_TESTS" ("COMPLETION_DATE", "COMPLETED_BY") 
2068
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2069
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2070
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2071
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2072
--------------------------------------------------------
4308 dpurdie 2073
--  DDL for Index INX_PV_ID_PKGDOC
2074
--------------------------------------------------------
4040 dpurdie 2075
 
5172 dpurdie 2076
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_ID_PKGDOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID") 
2077
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2078
  STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2079
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2080
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2081
--------------------------------------------------------
2082
--  DDL for Index UNQ_VIEW_SETTINGS
2083
--------------------------------------------------------
4040 dpurdie 2084
 
5172 dpurdie 2085
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEW_SETTINGS" ON "RELEASE_MANAGER"."VIEW_SETTINGS" ("USER_ID", "VIEW_ID") 
2086
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2087
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2088
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2089
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2090
--------------------------------------------------------
2091
--  DDL for Index INX_PP_PV_ID
2092
--------------------------------------------------------
4040 dpurdie 2093
 
5172 dpurdie 2094
  CREATE INDEX "RELEASE_MANAGER"."INX_PP_PV_ID" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PV_ID") 
2095
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2096
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2097
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2098
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2099
--------------------------------------------------------
2100
--  DDL for Index PK_VIEWS
2101
--------------------------------------------------------
4040 dpurdie 2102
 
5172 dpurdie 2103
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_VIEWS" ON "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") 
2104
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2105
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2106
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2107
  TABLESPACE "RELEASEM_INDX" ;
5384 dpurdie 2108
--------------------------------------------------------
2109
--  DDL for Index CQ_USERS_PK
2110
--------------------------------------------------------
2111
 
2112
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_USERS_PK" ON "RELEASE_MANAGER"."CQ_USERS" ("DBID") 
2113
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2114
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2115
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2116
  TABLESPACE "RELEASEM_DATA" ;
4308 dpurdie 2117
--------------------------------------------------------
2118
--  DDL for Index PK_PACKAGES
2119
--------------------------------------------------------
4040 dpurdie 2120
 
5172 dpurdie 2121
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PACKAGES" ON "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") 
2122
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2123
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2124
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2125
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2126
--------------------------------------------------------
2127
--  DDL for Index PK_TEST_TYPES
2128
--------------------------------------------------------
4040 dpurdie 2129
 
5172 dpurdie 2130
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_TEST_TYPES" ON "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_ID") 
2131
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2132
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2133
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2134
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2135
--------------------------------------------------------
2136
--  DDL for Index UNQ_ACTTYPE_ID
2137
--------------------------------------------------------
4040 dpurdie 2138
 
5172 dpurdie 2139
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_ACTTYPE_ID" ON "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") 
2140
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2141
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2142
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2143
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2144
--------------------------------------------------------
2145
--  DDL for Index INX_PROJ_ACTION_DATE_TIME
2146
--------------------------------------------------------
4040 dpurdie 2147
 
5172 dpurdie 2148
  CREATE INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_DATE_TIME" ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ("ACTION_DATETIME") 
2149
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2150
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2151
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2152
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2153
--------------------------------------------------------
2154
--  DDL for Index INX_RC_PKG_STATE
2155
--------------------------------------------------------
4040 dpurdie 2156
 
5172 dpurdie 2157
  CREATE INDEX "RELEASE_MANAGER"."INX_RC_PKG_STATE" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("PKG_STATE") 
2158
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2159
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2160
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2161
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2162
--------------------------------------------------------
2163
--  DDL for Index PROCESSES_PK
2164
--------------------------------------------------------
4040 dpurdie 2165
 
5172 dpurdie 2166
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PROCESSES_PK" ON "RELEASE_MANAGER"."PROCESSES" ("PROC_ID") 
2167
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2168
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2169
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2170
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2171
--------------------------------------------------------
2172
--  DDL for Index INX_PACKAGE_DEPS_DPV_ID
2173
--------------------------------------------------------
4040 dpurdie 2174
 
5172 dpurdie 2175
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPV_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPV_ID") 
2176
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2177
  STORAGE(INITIAL 75497472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2178
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2179
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2180
--------------------------------------------------------
2181
--  DDL for Index INX_PACKAGES_PKG_VERSION
2182
--------------------------------------------------------
4040 dpurdie 2183
 
5172 dpurdie 2184
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_VERSION" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_VERSION") 
2185
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2186
  STORAGE(INITIAL 10485760 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2187
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2188
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2189
--------------------------------------------------------
2190
--  DDL for Index UNQ_PACKAGE_METRICS
2191
--------------------------------------------------------
4040 dpurdie 2192
 
5172 dpurdie 2193
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_METRICS" ON "RELEASE_MANAGER"."PACKAGE_METRICS" ("PV_ID") 
2194
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2195
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2196
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2197
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2198
--------------------------------------------------------
2199
--  DDL for Index UNQ_PLATFORM
2200
--------------------------------------------------------
4040 dpurdie 2201
 
5172 dpurdie 2202
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PLATFORM" ON "RELEASE_MANAGER"."PLATFORMS" ("NAME") 
2203
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2204
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2205
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2206
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2207
--------------------------------------------------------
2208
--  DDL for Index UNQ_VIEWS
2209
--------------------------------------------------------
4040 dpurdie 2210
 
5172 dpurdie 2211
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEWS" ON "RELEASE_MANAGER"."VIEWS" ("VIEW_NAME", "OWNER_ID") 
2212
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2213
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2214
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2215
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2216
--------------------------------------------------------
4211 dpurdie 2217
--  DDL for Index PRODUCT_STATES_PK
4040 dpurdie 2218
--------------------------------------------------------
2219
 
5172 dpurdie 2220
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PRODUCT_STATES_PK" ON "RELEASE_MANAGER"."PRODUCT_STATES" ("STATE_ID") 
2221
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2222
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2223
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2224
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2225
--------------------------------------------------------
4211 dpurdie 2226
--  DDL for Index PK_MESSAGE_BOARD
4040 dpurdie 2227
--------------------------------------------------------
2228
 
5172 dpurdie 2229
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_MESSAGE_BOARD" ON "RELEASE_MANAGER"."MESSAGE_BOARD" ("MSG_ID") 
2230
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2231
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2232
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2233
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2234
--------------------------------------------------------
2235
--  DDL for Index PK_BUILD_MACHINE_CONFIG
2236
--------------------------------------------------------
4040 dpurdie 2237
 
5172 dpurdie 2238
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_BUILD_MACHINE_CONFIG" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ("BMCON_ID") 
2239
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2240
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2241
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2242
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2243
--------------------------------------------------------
2244
--  DDL for Index INX_MSGBOARD
2245
--------------------------------------------------------
4040 dpurdie 2246
 
5172 dpurdie 2247
  CREATE INDEX "RELEASE_MANAGER"."INX_MSGBOARD" ON "RELEASE_MANAGER"."MESSAGE_BOARD" ("EXPIRY_DATE", "DUE_DATE") 
2248
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2249
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2250
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2251
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2252
--------------------------------------------------------
2253
--  DDL for Index PK_VTREES
2254
--------------------------------------------------------
4040 dpurdie 2255
 
5172 dpurdie 2256
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_VTREES" ON "RELEASE_MANAGER"."VTREES" ("VTREE_ID") 
2257
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2258
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2259
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2260
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2261
--------------------------------------------------------
2262
--  DDL for Index UNQ_UT_PART1
2263
--------------------------------------------------------
4040 dpurdie 2264
 
5172 dpurdie 2265
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_UT_PART1" ON "RELEASE_MANAGER"."UNIT_TESTS" ("PV_ID", "TEST_ID") 
2266
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2267
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2268
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2269
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2270
--------------------------------------------------------
2271
--  DDL for Index UNQ_BUILD_ENV
2272
--------------------------------------------------------
4040 dpurdie 2273
 
5172 dpurdie 2274
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV" ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_NAME") 
2275
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2276
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2277
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2278
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2279
--------------------------------------------------------
4211 dpurdie 2280
--  DDL for Index INX_ACTION_DATE_TIME
4040 dpurdie 2281
--------------------------------------------------------
2282
 
5172 dpurdie 2283
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_DATE_TIME" ON "RELEASE_MANAGER"."ACTION_LOG" ("ACTION_DATETIME") 
2284
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2285
  STORAGE(INITIAL 92274688 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2286
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2287
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2288
--------------------------------------------------------
4308 dpurdie 2289
--  DDL for Index UNQ_BUILD_MACHINE_CONFIG02
2290
--------------------------------------------------------
4040 dpurdie 2291
 
5172 dpurdie 2292
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_MACHINE_CONFIG02" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ("MACHINE_HOSTNAME") 
2293
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2294
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2295
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2296
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2297
--------------------------------------------------------
5384 dpurdie 2298
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX6
2299
--------------------------------------------------------
2300
 
2301
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX6" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("NEW_NUM") 
2302
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2303
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2304
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2305
  TABLESPACE "RELEASEM_DATA" ;
2306
--------------------------------------------------------
4308 dpurdie 2307
--  DDL for Index BUILD_MACHINES_PK
2308
--------------------------------------------------------
4040 dpurdie 2309
 
5172 dpurdie 2310
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_MACHINES_PK" ON "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") 
2311
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2312
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2313
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2314
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2315
--------------------------------------------------------
2316
--  DDL for Index INX_TTB_SESSION
2317
--------------------------------------------------------
4040 dpurdie 2318
 
5172 dpurdie 2319
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_SESSION" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("SESSION_NUM") 
2320
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2321
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2322
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2323
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2324
--------------------------------------------------------
2325
--  DDL for Index UNQ_RTD
2326
--------------------------------------------------------
4040 dpurdie 2327
 
5172 dpurdie 2328
  CREATE INDEX "RELEASE_MANAGER"."UNQ_RTD" ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ("PV_ID", "RTD_ID") 
2329
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2330
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2331
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2332
  TABLESPACE "RELEASEM_INDX" ;
2333
--------------------------------------------------------
2334
--  DDL for Index SDK_CONTENT_INDEX1
2335
--------------------------------------------------------
2336
 
2337
  CREATE INDEX "RELEASE_MANAGER"."SDK_CONTENT_INDEX1" ON "RELEASE_MANAGER"."SDK_CONTENT" ("SDKTAG_ID") 
2338
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2339
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2340
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2341
  TABLESPACE "RELEASEM_DATA" ;
5384 dpurdie 2342
--------------------------------------------------------
2343
--  DDL for Index CQ_STATEDEF_PK
2344
--------------------------------------------------------
2345
 
2346
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_STATEDEF_PK" ON "RELEASE_MANAGER"."CQ_STATEDEF" ("ID") 
2347
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2348
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2349
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2350
  TABLESPACE "RELEASEM_DATA" ;
4308 dpurdie 2351
--------------------------------------------------------
4211 dpurdie 2352
--  DDL for Index INX_RL_RTAG_ID
4040 dpurdie 2353
--------------------------------------------------------
2354
 
5172 dpurdie 2355
  CREATE INDEX "RELEASE_MANAGER"."INX_RL_RTAG_ID" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("RTAG_ID") 
2356
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2357
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2358
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2359
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2360
--------------------------------------------------------
4211 dpurdie 2361
--  DDL for Index UNQ_VIEW_DEF
4040 dpurdie 2362
--------------------------------------------------------
2363
 
5172 dpurdie 2364
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEW_DEF" ON "RELEASE_MANAGER"."VIEW_DEF" ("VIEW_ID", "PKG_ID") 
2365
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2366
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2367
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2368
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2369
--------------------------------------------------------
4211 dpurdie 2370
--  DDL for Index INX_PACKAGES_PKG_NAME
4040 dpurdie 2371
--------------------------------------------------------
2372
 
5172 dpurdie 2373
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_NAME" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID") 
2374
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2375
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2376
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2377
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2378
--------------------------------------------------------
4211 dpurdie 2379
--  DDL for Index INX_PCOMP_FK_PV_ID
4040 dpurdie 2380
--------------------------------------------------------
2381
 
5172 dpurdie 2382
  CREATE INDEX "RELEASE_MANAGER"."INX_PCOMP_FK_PV_ID" ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" ("PV_ID") 
2383
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2384
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2385
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2386
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2387
--------------------------------------------------------
4211 dpurdie 2388
--  DDL for Index DAEMON_INSTRUCTIONS_UK1
4040 dpurdie 2389
--------------------------------------------------------
2390
 
5172 dpurdie 2391
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS_UK1" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("OP_CODE", "RTAG_ID", "PV_ID") 
2392
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2393
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2394
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2395
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2396
--------------------------------------------------------
4211 dpurdie 2397
--  DDL for Index INX_FILE_NAME
4040 dpurdie 2398
--------------------------------------------------------
2399
 
5172 dpurdie 2400
  CREATE INDEX "RELEASE_MANAGER"."INX_FILE_NAME" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" (UPPER("FILE_NAME")) 
2401
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2402
  STORAGE(INITIAL 1147142144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2403
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2404
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2405
--------------------------------------------------------
4211 dpurdie 2406
--  DDL for Index INX_IS_PATCH_IGNORE
4040 dpurdie 2407
--------------------------------------------------------
2408
 
5172 dpurdie 2409
  CREATE INDEX "RELEASE_MANAGER"."INX_IS_PATCH_IGNORE" ON "RELEASE_MANAGER"."IGNORE_WARNINGS" ("IS_PATCH_IGNORE") 
2410
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2411
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2412
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2413
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2414
--------------------------------------------------------
4211 dpurdie 2415
--  DDL for Index UNQ_BUILD_ENV_DOCS
4040 dpurdie 2416
--------------------------------------------------------
2417
 
5172 dpurdie 2418
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV_DOCS" ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" ("BE_ID", "DOC_NUM") 
2419
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2420
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2421
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2422
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2423
--------------------------------------------------------
4211 dpurdie 2424
--  DDL for Index INX_PROJ_ACTION_LOG_PROJ
4040 dpurdie 2425
--------------------------------------------------------
2426
 
5172 dpurdie 2427
  CREATE INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_LOG_PROJ" ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ("PROJ_ID") 
2428
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2429
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2430
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2431
  TABLESPACE "RELEASEM_INDX" ;
2432
--------------------------------------------------------
5384 dpurdie 2433
--  DDL for Index LICENCING_PK
2434
--------------------------------------------------------
2435
 
2436
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."LICENCING_PK" ON "RELEASE_MANAGER"."LICENCING" ("PV_ID", "LICENCE") 
2437
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2438
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2439
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2440
  TABLESPACE "RELEASEM_DATA" ;
2441
--------------------------------------------------------
5172 dpurdie 2442
--  DDL for Index BUILD_SERVICE_CONFIG_INDEX1
2443
--------------------------------------------------------
2444
 
2445
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG_INDEX1" ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" ("SERVICE") 
2446
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2447
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2448
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2449
  TABLESPACE "RELEASEM_DATA" ;
2450
--------------------------------------------------------
2451
--  DDL for Index RELEASE_MODIFIED_PK
2452
--------------------------------------------------------
2453
 
2454
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."RELEASE_MODIFIED_PK" ON "RELEASE_MANAGER"."RELEASE_MODIFIED" ("RTAG_ID") 
2455
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2456
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2457
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2458
  TABLESPACE "RELEASEM_DATA" ;
5384 dpurdie 2459
--------------------------------------------------------
2460
--  DDL for Index CQ_HISTORY_INDEX2
2461
--------------------------------------------------------
2462
 
2463
  CREATE INDEX "RELEASE_MANAGER"."CQ_HISTORY_INDEX2" ON "RELEASE_MANAGER"."CQ_HISTORY" ("ENTITYDEF_ID") 
2464
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2465
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2466
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2467
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 2468
--------------------------------------------------------
2469
--  DDL for Index INX_TTB_LEVEL_NUM
2470
--------------------------------------------------------
2471
 
5172 dpurdie 2472
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_LEVEL_NUM" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("LEVEL_NUM") 
2473
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2474
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2475
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2476
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2477
--------------------------------------------------------
4211 dpurdie 2478
--  DDL for Index UNQ_WORK_IN_PROGRESS
4040 dpurdie 2479
--------------------------------------------------------
2480
 
5172 dpurdie 2481
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_WORK_IN_PROGRESS" ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" ("RTAG_ID", "PV_ID") 
2482
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2483
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2484
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2485
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2486
--------------------------------------------------------
4211 dpurdie 2487
--  DDL for Index INX_PACKAGES_V_NMM
4040 dpurdie 2488
--------------------------------------------------------
2489
 
5172 dpurdie 2490
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_NMM" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_NMM") 
2491
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2492
  STORAGE(INITIAL 9437184 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2493
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2494
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2495
--------------------------------------------------------
4211 dpurdie 2496
--  DDL for Index UNQ_PLANNED
4040 dpurdie 2497
--------------------------------------------------------
2498
 
5172 dpurdie 2499
  CREATE INDEX "RELEASE_MANAGER"."UNQ_PLANNED" ON "RELEASE_MANAGER"."PLANNED" ("RTAG_ID", "PV_ID") 
2500
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2501
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2502
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2503
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2504
--------------------------------------------------------
4211 dpurdie 2505
--  DDL for Index INX_TES_PKGEXT
4040 dpurdie 2506
--------------------------------------------------------
2507
 
5172 dpurdie 2508
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_PKGEXT" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("PKG_ID", "V_EXT") 
2509
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2510
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2511
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2512
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2513
--------------------------------------------------------
2514
--  DDL for Index UNQ_BUILD_MACHINE_CONFIG01
2515
--------------------------------------------------------
4040 dpurdie 2516
 
5172 dpurdie 2517
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_MACHINE_CONFIG01" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" (LOWER("DISPLAY_NAME")) 
2518
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2519
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2520
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2521
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2522
--------------------------------------------------------
5384 dpurdie 2523
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX2
2524
--------------------------------------------------------
2525
 
2526
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX2" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("STATE") 
2527
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2528
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2529
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2530
  TABLESPACE "RELEASEM_DATA" ;
2531
--------------------------------------------------------
2532
--  DDL for Index TEMP_ENV_DEPS_PK
2533
--------------------------------------------------------
2534
 
2535
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."TEMP_ENV_DEPS_PK" ON "RELEASE_MANAGER"."TEMP_ENV_DEPS" ("PV_ID", "SESSION_NUM", "DPV_ID") 
2536
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2537
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2538
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2539
  TABLESPACE "RELEASEM_DATA" ;
2540
--------------------------------------------------------
4211 dpurdie 2541
--  DDL for Index UNQ_RELEASE_LINKS
4040 dpurdie 2542
--------------------------------------------------------
2543
 
5172 dpurdie 2544
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_LINKS" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("RTAG_ID", "REF_RTAG_ID") 
2545
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2546
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2547
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2548
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2549
--------------------------------------------------------
2550
--  DDL for Index UNQ_PKG_DOC
2551
--------------------------------------------------------
4040 dpurdie 2552
 
5172 dpurdie 2553
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PKG_DOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID", "DOC_NUM") 
2554
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2555
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2556
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2557
  TABLESPACE "RELEASEM_INDX" ;
5384 dpurdie 2558
--------------------------------------------------------
2559
--  DDL for Index LXR_STATE_PK
2560
--------------------------------------------------------
2561
 
2562
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."LXR_STATE_PK" ON "RELEASE_MANAGER"."LXR_STATE" ("RTAG_ID") 
2563
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2564
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2565
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2566
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 2567
--------------------------------------------------------
4211 dpurdie 2568
--  DDL for Index DAEMON_INSTRUCTIONS_PK
4040 dpurdie 2569
--------------------------------------------------------
2570
 
5172 dpurdie 2571
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS_PK" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("DAEMON_INSTRUCTIONS_ID") 
2572
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2573
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2574
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2575
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2576
--------------------------------------------------------
2577
--  DDL for Index INX_DAEMON_INST_SCHED_DATETIME
2578
--------------------------------------------------------
4040 dpurdie 2579
 
5172 dpurdie 2580
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_SCHED_DATETIME" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("SCHEDULED_DATETIME") 
2581
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2582
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2583
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2584
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2585
--------------------------------------------------------
4211 dpurdie 2586
--  DDL for Index INX_TTB_PKG
4040 dpurdie 2587
--------------------------------------------------------
2588
 
5172 dpurdie 2589
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_PKG" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("PKG_ID", "V_EXT") 
2590
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2591
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2592
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2593
  TABLESPACE "RELEASEM_INDX" ;
5384 dpurdie 2594
--------------------------------------------------------
2595
--  DDL for Index PACKAGE_VERSIONS_MODIFER_ID
2596
--------------------------------------------------------
2597
 
2598
  CREATE INDEX "RELEASE_MANAGER"."PACKAGE_VERSIONS_MODIFER_ID" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("MODIFIER_ID") 
2599
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2600
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2601
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2602
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 2603
--------------------------------------------------------
4211 dpurdie 2604
--  DDL for Index UNQ_VALIDATION_RULES
4040 dpurdie 2605
--------------------------------------------------------
2606
 
5172 dpurdie 2607
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VALIDATION_RULES" ON "RELEASE_MANAGER"."VALIDATION_RULES" ("FIELD_NAME") 
2608
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2609
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2610
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2611
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2612
--------------------------------------------------------
2613
--  DDL for Index BUILD_STANDARDS_ADDENDUM_PK
2614
--------------------------------------------------------
4040 dpurdie 2615
 
5172 dpurdie 2616
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM_PK" ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ("BSA_ID") 
2617
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2618
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2619
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2620
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2621
--------------------------------------------------------
4211 dpurdie 2622
--  DDL for Index INX_PV_OWNER_ID
4040 dpurdie 2623
--------------------------------------------------------
2624
 
5172 dpurdie 2625
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_OWNER_ID" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("OWNER_ID") 
2626
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2627
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2628
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2629
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2630
--------------------------------------------------------
4211 dpurdie 2631
--  DDL for Index INX_TES_TES_STATE
4040 dpurdie 2632
--------------------------------------------------------
2633
 
5172 dpurdie 2634
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_TES_STATE" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("TES_STATE") 
2635
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2636
  STORAGE(INITIAL 458752 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2637
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2638
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2639
--------------------------------------------------------
4308 dpurdie 2640
--  DDL for Index UNQ_AN_PART1
2641
--------------------------------------------------------
4040 dpurdie 2642
 
5172 dpurdie 2643
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_AN_PART1" ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" ("PV_ID", "NOTE_ID") 
2644
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2645
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2646
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2647
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2648
--------------------------------------------------------
4211 dpurdie 2649
--  DDL for Index UNQ_RELEASE_CONTENTS
4040 dpurdie 2650
--------------------------------------------------------
2651
 
5172 dpurdie 2652
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_CONTENTS" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("RTAG_ID", "PV_ID") 
2653
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2654
  STORAGE(INITIAL 10485760 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2655
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2656
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2657
--------------------------------------------------------
2658
--  DDL for Index INX_ACTION_LOG_PV_ID
2659
--------------------------------------------------------
4040 dpurdie 2660
 
5172 dpurdie 2661
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_LOG_PV_ID" ON "RELEASE_MANAGER"."ACTION_LOG" ("PV_ID") 
2662
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2663
  STORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2664
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2665
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2666
--------------------------------------------------------
4211 dpurdie 2667
--  DDL for Index UNQ_TEST_TYPE_NAME
4040 dpurdie 2668
--------------------------------------------------------
2669
 
5172 dpurdie 2670
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_TEST_TYPE_NAME" ON "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_NAME") 
2671
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2672
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2673
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2674
  TABLESPACE "RELEASEM_INDX" ;
2675
--------------------------------------------------------
2676
--  DDL for Index PEGGED_VERSIONS_INDEX1
2677
--------------------------------------------------------
2678
 
2679
  CREATE INDEX "RELEASE_MANAGER"."PEGGED_VERSIONS_INDEX1" ON "RELEASE_MANAGER"."PEGGED_VERSIONS" ("RTAG_ID", "PV_ID") 
2680
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2681
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2682
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2683
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 2684
--------------------------------------------------------
4308 dpurdie 2685
--  DDL for Index PKNOTE_MANAGER1
2686
--------------------------------------------------------
4040 dpurdie 2687
 
5172 dpurdie 2688
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PKNOTE_MANAGER1" ON "RELEASE_MANAGER"."NOTE_MANAGER" ("NID") 
2689
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2690
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2691
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2692
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2693
--------------------------------------------------------
2694
--  DDL for Index INX_PACKAGES_V_MM
2695
--------------------------------------------------------
4040 dpurdie 2696
 
5172 dpurdie 2697
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_MM" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_MM") 
2698
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2699
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2700
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2701
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2702
--------------------------------------------------------
2703
--  DDL for Index INX_CODE_REVIEW
2704
--------------------------------------------------------
4040 dpurdie 2705
 
5172 dpurdie 2706
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_CODE_REVIEW" ON "RELEASE_MANAGER"."CODE_REVIEWS" ("PV_ID") 
2707
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2708
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2709
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2710
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2711
--------------------------------------------------------
4211 dpurdie 2712
--  DDL for Index UNQ_VTREES
4040 dpurdie 2713
--------------------------------------------------------
2714
 
5172 dpurdie 2715
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VTREES" ON "RELEASE_MANAGER"."VTREES" ("PROJ_ID", "VTREE_NAME") 
2716
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2717
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2718
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2719
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2720
--------------------------------------------------------
2721
--  DDL for Index INX_PACKAGE_DEPS_PKG_ID
2722
--------------------------------------------------------
4040 dpurdie 2723
 
5172 dpurdie 2724
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PKG_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PKG_ID") 
2725
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2726
  STORAGE(INITIAL 83886080 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2727
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2728
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2729
--------------------------------------------------------
4211 dpurdie 2730
--  DDL for Index UNQ_PROJECTS
4040 dpurdie 2731
--------------------------------------------------------
2732
 
5172 dpurdie 2733
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PROJECTS" ON "RELEASE_MANAGER"."PROJECTS" ("PROJ_NAME") 
2734
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2735
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2736
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2737
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2738
--------------------------------------------------------
2739
--  DDL for Index INX_PACKAGES_V_EXT
2740
--------------------------------------------------------
4040 dpurdie 2741
 
5172 dpurdie 2742
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_EXT" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_EXT") 
2743
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2744
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2745
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2746
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2747
--------------------------------------------------------
4211 dpurdie 2748
--  DDL for Index PK_PROJECTS
4040 dpurdie 2749
--------------------------------------------------------
2750
 
5172 dpurdie 2751
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PROJECTS" ON "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") 
2752
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2753
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2754
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2755
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2756
--------------------------------------------------------
2757
--  DDL for Index INX_TES_PV
2758
--------------------------------------------------------
4040 dpurdie 2759
 
5172 dpurdie 2760
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_PV" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("PV_ID") 
2761
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2762
  STORAGE(INITIAL 851968 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2763
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2764
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2765
--------------------------------------------------------
5384 dpurdie 2766
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX5
2767
--------------------------------------------------------
2768
 
2769
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX5" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PRODUCT") 
2770
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2771
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2772
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2773
  TABLESPACE "RELEASEM_DATA" ;
2774
--------------------------------------------------------
4211 dpurdie 2775
--  DDL for Index UNQ_VTREE_WORLD
4040 dpurdie 2776
--------------------------------------------------------
2777
 
5172 dpurdie 2778
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VTREE_WORLD" ON "RELEASE_MANAGER"."VTREES_WORLD" ("WORLD_ID", "VTREE_ID") 
2779
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2780
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2781
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2782
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2783
--------------------------------------------------------
4308 dpurdie 2784
--  DDL for Index UNQ_IGW
2785
--------------------------------------------------------
4040 dpurdie 2786
 
5172 dpurdie 2787
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_IGW" ON "RELEASE_MANAGER"."IGNORE_WARNINGS" ("RTAG_ID", "PV_ID", "DPV_ID") 
2788
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2789
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2790
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2791
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2792
--------------------------------------------------------
2793
--  DDL for Index INX_DAEMON_INST_RTAG_ID
2794
--------------------------------------------------------
4040 dpurdie 2795
 
5172 dpurdie 2796
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_RTAG_ID" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("RTAG_ID") 
2797
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2798
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2799
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2800
  TABLESPACE "RELEASEM_INDX" ;
2801
--------------------------------------------------------
2802
--  DDL for Index SDK_TAGS_PK
2803
--------------------------------------------------------
2804
 
2805
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_TAGS_PK" ON "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") 
2806
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2807
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2808
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2809
  TABLESPACE "RELEASEM_DATA" ;
5384 dpurdie 2810
--------------------------------------------------------
2811
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX7
2812
--------------------------------------------------------
2813
 
2814
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX7" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("DEPENDANT_DEVIS") 
2815
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2816
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2817
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2818
  TABLESPACE "RELEASEM_DATA" ;
4308 dpurdie 2819
--------------------------------------------------------
2820
--  DDL for Index PK_NOTIFICATION_HISTORY
2821
--------------------------------------------------------
4040 dpurdie 2822
 
5172 dpurdie 2823
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_NOTIFICATION_HISTORY" ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ("RTAG_ID", "PV_ID", "USER_ID") 
2824
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2825
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2826
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2827
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2828
--------------------------------------------------------
2829
--  DDL for Index UNQ_PACKAGE_DEPENDENCIES
2830
--------------------------------------------------------
4040 dpurdie 2831
 
5172 dpurdie 2832
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_DEPENDENCIES" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PV_ID", "DPV_ID") 
2833
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2834
  STORAGE(INITIAL 100663296 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2835
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2836
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2837
--------------------------------------------------------
2838
--  DDL for Index INX_PACKAGE_DEPS_PV_ID
2839
--------------------------------------------------------
4040 dpurdie 2840
 
5172 dpurdie 2841
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PV_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PV_ID") 
2842
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2843
  STORAGE(INITIAL 75497472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2844
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2845
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2846
--------------------------------------------------------
4211 dpurdie 2847
--  DDL for Index BUILD_STANDARDS_PK
4040 dpurdie 2848
--------------------------------------------------------
2849
 
5172 dpurdie 2850
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_PK" ON "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") 
2851
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2852
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2853
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2854
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2855
--------------------------------------------------------
2856
--  DDL for Index UNQ_CQ
2857
--------------------------------------------------------
4040 dpurdie 2858
 
5172 dpurdie 2859
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_CQ" ON "RELEASE_MANAGER"."CQ_ISSUES" ("PV_ID", "ISS_ID", "ISS_DB") 
2860
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2861
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2862
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2863
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2864
--------------------------------------------------------
4211 dpurdie 2865
--  DDL for Index UNQ_PACKAGE_VERSIONS
4040 dpurdie 2866
--------------------------------------------------------
2867
 
5172 dpurdie 2868
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_VERSIONS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID", "PKG_VERSION") 
2869
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2870
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2871
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2872
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2873
--------------------------------------------------------
2874
--  DDL for Index INX_PV_ID_TEST_ID_PKGDOC
2875
--------------------------------------------------------
4040 dpurdie 2876
 
5172 dpurdie 2877
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_ID_TEST_ID_PKGDOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID", "TEST_ID") 
2878
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2879
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2880
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2881
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2882
--------------------------------------------------------
4211 dpurdie 2883
--  DDL for Index UNQ_PACKAGE_PATCHES
4040 dpurdie 2884
--------------------------------------------------------
2885
 
5172 dpurdie 2886
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_PATCHES" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PATCH_ID") 
2887
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2888
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2889
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2890
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2891
--------------------------------------------------------
5384 dpurdie 2892
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX3
2893
--------------------------------------------------------
2894
 
2895
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX3" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PACKAGE_REF") 
2896
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2897
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2898
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2899
  TABLESPACE "RELEASEM_DATA" ;
2900
--------------------------------------------------------
2901
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX4
2902
--------------------------------------------------------
2903
 
2904
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX4" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PROJECT") 
2905
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2906
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2907
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2908
  TABLESPACE "RELEASEM_DATA" ;
2909
--------------------------------------------------------
4308 dpurdie 2910
--  DDL for Index UNQ_REL_COMPONENTS
2911
--------------------------------------------------------
4040 dpurdie 2912
 
5172 dpurdie 2913
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_REL_COMPONENTS" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" ("PV_ID", "FILE_NAME", "FILE_PATH") 
2914
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2915
  STORAGE(INITIAL 3489660928 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2916
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2917
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2918
--------------------------------------------------------
2919
--  DDL for Index PK_PACKAGE_VERSIONS
2920
--------------------------------------------------------
4040 dpurdie 2921
 
5172 dpurdie 2922
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PACKAGE_VERSIONS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") 
2923
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2924
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2925
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2926
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2927
--------------------------------------------------------
2928
--  DDL for Index UNQ_RELEASE_METRICS
2929
--------------------------------------------------------
4040 dpurdie 2930
 
5172 dpurdie 2931
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_METRICS" ON "RELEASE_MANAGER"."RELEASE_METRICS" ("RTAG_ID") 
2932
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2933
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2934
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2935
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2936
--------------------------------------------------------
2937
--  DDL for Index UNQ_BUILD_ORDER
2938
--------------------------------------------------------
4040 dpurdie 2939
 
5172 dpurdie 2940
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ORDER" ON "RELEASE_MANAGER"."BUILD_ORDER" ("RTAG_ID", "PV_ID", "STEP_NUM") 
2941
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2942
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2943
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2944
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2945
--------------------------------------------------------
2946
--  DDL for Index PK_BUILD_ENVIRONMENTS
2947
--------------------------------------------------------
4040 dpurdie 2948
 
5172 dpurdie 2949
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_BUILD_ENVIRONMENTS" ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") 
2950
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2951
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2952
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2953
  TABLESPACE "RELEASEM_INDX" ;
5384 dpurdie 2954
--------------------------------------------------------
2955
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX1
2956
--------------------------------------------------------
2957
 
2958
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX1" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("DBID") 
2959
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2960
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2961
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2962
  TABLESPACE "RELEASEM_DATA" ;
4308 dpurdie 2963
--------------------------------------------------------
2964
--  DDL for Index INX_PACKAGE_DEPS_DPKG_ID
2965
--------------------------------------------------------
4040 dpurdie 2966
 
5172 dpurdie 2967
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPKG_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPKG_ID") 
2968
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2969
  STORAGE(INITIAL 83886080 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2970
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2971
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2972
--------------------------------------------------------
2973
--  DDL for Index INX_RL_REFRTAG_ID
2974
--------------------------------------------------------
4040 dpurdie 2975
 
5172 dpurdie 2976
  CREATE INDEX "RELEASE_MANAGER"."INX_RL_REFRTAG_ID" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("REF_RTAG_ID") 
2977
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2978
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2979
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2980
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2981
--------------------------------------------------------
2982
--  DDL for Index INX_RC_BASE_VIEW_ID
2983
--------------------------------------------------------
4040 dpurdie 2984
 
5172 dpurdie 2985
  CREATE INDEX "RELEASE_MANAGER"."INX_RC_BASE_VIEW_ID" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("BASE_VIEW_ID") 
2986
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2987
  STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2988
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2989
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2990
--------------------------------------------------------
2991
--  DDL for Index INX_DAEMON_INST_PV_ID
2992
--------------------------------------------------------
4211 dpurdie 2993
 
5172 dpurdie 2994
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_PV_ID" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("PV_ID") 
2995
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2996
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2997
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2998
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2999
--------------------------------------------------------
4040 dpurdie 3000
--  DDL for Index UNQ_PROJECT_EXT
3001
--------------------------------------------------------
3002
 
5172 dpurdie 3003
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PROJECT_EXT" ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" ("PROJ_ID", "EXT_NAME") 
3004
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3005
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3006
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3007
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3008
--------------------------------------------------------
3009
--  DDL for Index VCS_TYPE_PK
3010
--------------------------------------------------------
4040 dpurdie 3011
 
5172 dpurdie 3012
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."VCS_TYPE_PK" ON "RELEASE_MANAGER"."VCS_TYPE" ("VCS_TYPE_ID") 
3013
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3014
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3015
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3016
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 3017
--------------------------------------------------------
4211 dpurdie 3018
--  DDL for Index INX_PC_FILE_NAME
4040 dpurdie 3019
--------------------------------------------------------
3020
 
5172 dpurdie 3021
  CREATE INDEX "RELEASE_MANAGER"."INX_PC_FILE_NAME" ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" (UPPER("FILE_NAME")) 
3022
  PCTFREE 10 INITRANS 2 MAXTRANS 167 COMPUTE STATISTICS 
3023
  STORAGE(INITIAL 18874368 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3024
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3025
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3026
--------------------------------------------------------
3027
--  DDL for Index PK_RELEASE_TAGS
3028
--------------------------------------------------------
4040 dpurdie 3029
 
5172 dpurdie 3030
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_RELEASE_TAGS" ON "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") 
3031
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3032
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3033
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3034
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 3035
--------------------------------------------------------
4211 dpurdie 3036
--  DDL for Index FK_PROJ_ID_RELEASE_TAGS
4040 dpurdie 3037
--------------------------------------------------------
3038
 
5172 dpurdie 3039
  CREATE INDEX "RELEASE_MANAGER"."FK_PROJ_ID_RELEASE_TAGS" ON "RELEASE_MANAGER"."RELEASE_TAGS" ("PROJ_ID") 
3040
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3041
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3042
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3043
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 3044
--------------------------------------------------------
4211 dpurdie 3045
--  DDL for Index INX_RCOMP_PV_ID
4040 dpurdie 3046
--------------------------------------------------------
3047
 
5172 dpurdie 3048
  CREATE INDEX "RELEASE_MANAGER"."INX_RCOMP_PV_ID" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" ("PV_ID") 
3049
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3050
  STORAGE(INITIAL 724566016 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3051
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3052
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3053
--------------------------------------------------------
3054
--  DDL for Index MICROSOFT_PK_DTPROPERTIES
3055
--------------------------------------------------------
4040 dpurdie 3056
 
5172 dpurdie 3057
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."MICROSOFT_PK_DTPROPERTIES" ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ("ID", "PROPERTY") 
3058
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3059
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3060
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3061
  TABLESPACE "RELEASEM_INDX" ;
3062
--------------------------------------------------------
3063
--  DDL for Index BUILD_ID
3064
--------------------------------------------------------
3065
 
3066
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_ID" ON "RELEASE_MANAGER"."BUILD_INSTANCES" ("BUILD_ID") 
3067
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3068
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3069
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3070
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 3071
--------------------------------------------------------
4308 dpurdie 3072
--  DDL for Index INX_UT_PV_TEST_TYPE
3073
--------------------------------------------------------
4040 dpurdie 3074
 
5172 dpurdie 3075
  CREATE INDEX "RELEASE_MANAGER"."INX_UT_PV_TEST_TYPE" ON "RELEASE_MANAGER"."UNIT_TESTS" ("PV_ID", "TEST_TYPES_FK") 
3076
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3077
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3078
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3079
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3080
--------------------------------------------------------
3081
--  DDL for Index PK_WORLDS
3082
--------------------------------------------------------
4040 dpurdie 3083
 
5172 dpurdie 3084
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_WORLDS" ON "RELEASE_MANAGER"."WORLDS" ("WORLD_ID") 
3085
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3086
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3087
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3088
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3089
--------------------------------------------------------
5384 dpurdie 3090
--  DDL for Index CQ_HISTORY_INDEX1
3091
--------------------------------------------------------
3092
 
3093
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_HISTORY_INDEX1" ON "RELEASE_MANAGER"."CQ_HISTORY" ("DBID") 
3094
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3095
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3096
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3097
  TABLESPACE "RELEASEM_DATA" ;
3098
--------------------------------------------------------
4308 dpurdie 3099
--  DDL for Index UNQ_AN_PART2
3100
--------------------------------------------------------
4040 dpurdie 3101
 
5172 dpurdie 3102
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_AN_PART2" ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" ("PV_ID", "NOTE_TITLE") 
3103
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3104
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3105
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3106
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 3107
--------------------------------------------------------
4211 dpurdie 3108
--  Constraints for Table RELEASE_TAGS
4040 dpurdie 3109
--------------------------------------------------------
3110
 
5172 dpurdie 3111
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" ADD CONSTRAINT "PK_RELEASE_TAGS" PRIMARY KEY ("RTAG_ID")
3112
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3113
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3114
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3115
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3116
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("PROJ_ID" NOT NULL ENABLE);
3117
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("PARENT_RTAG_ID" NOT NULL ENABLE);
3118
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("REBUILD_STAMP" NOT NULL ENABLE);
3119
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("REBUILD_ENV" NOT NULL ENABLE);
3120
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("OFFICIAL" NOT NULL ENABLE);
3121
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("RTAG_NAME" NOT NULL ENABLE);
3122
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3123
--------------------------------------------------------
3124
--  Constraints for Table SDK_NAMES
3125
--------------------------------------------------------
3126
 
3127
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("VIEW_ID" NOT NULL ENABLE);
3128
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("PROJ_ID" NOT NULL ENABLE);
3129
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_PK" PRIMARY KEY ("SDK_ID")
3130
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3131
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3132
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3133
  TABLESPACE "RELEASEM_DATA"  ENABLE;
3134
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_UK1" UNIQUE ("SDK_NAME")
3135
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3136
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3137
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3138
  TABLESPACE "RELEASEM_DATA"  ENABLE;
3139
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("SDK_NAME" NOT NULL ENABLE);
3140
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("SDK_ID" NOT NULL ENABLE);
4040 dpurdie 3141
--------------------------------------------------------
5172 dpurdie 3142
--  Constraints for Table SDK_TAGS
3143
--------------------------------------------------------
3144
 
3145
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_PK" PRIMARY KEY ("SDKTAG_ID")
3146
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3147
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3148
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3149
  TABLESPACE "RELEASEM_DATA"  ENABLE;
3150
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDK_STATE" NOT NULL ENABLE);
3151
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3152
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDK_ID" NOT NULL ENABLE);
3153
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDKTAG_NAME" NOT NULL ENABLE);
3154
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDKTAG_ID" NOT NULL ENABLE);
3155
--------------------------------------------------------
4308 dpurdie 3156
--  Constraints for Table RIPPLE_FIELD_STATES
3157
--------------------------------------------------------
4040 dpurdie 3158
 
5172 dpurdie 3159
  ALTER TABLE "RELEASE_MANAGER"."RIPPLE_FIELD_STATES" MODIFY ("STATE_ACRONYM" NOT NULL DISABLE);
3160
  ALTER TABLE "RELEASE_MANAGER"."RIPPLE_FIELD_STATES" MODIFY ("STATE_ID" NOT NULL ENABLE);
4308 dpurdie 3161
--------------------------------------------------------
4211 dpurdie 3162
--  Constraints for Table RUNTIME_DEPENDENCIES
4040 dpurdie 3163
--------------------------------------------------------
3164
 
5172 dpurdie 3165
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("MOD_USER" NOT NULL ENABLE);
3166
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
3167
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("PV_ID" NOT NULL ENABLE);
5384 dpurdie 3168
--------------------------------------------------------
3169
--  Constraints for Table LXR_STATE
3170
--------------------------------------------------------
3171
 
3172
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3173
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" ADD CONSTRAINT "LXR_STATE_PK" PRIMARY KEY ("RTAG_ID")
3174
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3175
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3176
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3177
  TABLESPACE "RELEASEM_DATA"  ENABLE;
4308 dpurdie 3178
--------------------------------------------------------
3179
--  Constraints for Table PACKAGE_PROCESSES
3180
--------------------------------------------------------
4040 dpurdie 3181
 
5172 dpurdie 3182
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" MODIFY ("PROC_ID" NOT NULL ENABLE);
3183
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3184
--------------------------------------------------------
4211 dpurdie 3185
--  Constraints for Table DO_NOT_RIPPLE
4040 dpurdie 3186
--------------------------------------------------------
3187
 
5172 dpurdie 3188
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3189
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3190
--------------------------------------------------------
4211 dpurdie 3191
--  Constraints for Table RELEASE_COMPONENTS
4040 dpurdie 3192
--------------------------------------------------------
3193
 
5172 dpurdie 3194
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 3195
--------------------------------------------------------
3196
--  Constraints for Table VIEW_SETTINGS
3197
--------------------------------------------------------
4211 dpurdie 3198
 
5172 dpurdie 3199
  ALTER TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
3200
  ALTER TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 3201
--------------------------------------------------------
4211 dpurdie 3202
--  Constraints for Table WORLDS
4040 dpurdie 3203
--------------------------------------------------------
3204
 
5172 dpurdie 3205
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" ADD CONSTRAINT "PK_WORLDS" PRIMARY KEY ("WORLD_ID")
3206
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3207
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3208
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3209
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3210
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" MODIFY ("WORLD_NAME" NOT NULL ENABLE);
3211
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" MODIFY ("WORLD_ID" NOT NULL ENABLE);
4040 dpurdie 3212
--------------------------------------------------------
4211 dpurdie 3213
--  Constraints for Table UNIT_TESTS
4040 dpurdie 3214
--------------------------------------------------------
3215
 
5172 dpurdie 3216
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("TEST_TYPES_FK" NOT NULL ENABLE);
3217
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("PV_ID" NOT NULL ENABLE);
3218
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("TEST_ID" NOT NULL ENABLE);
4040 dpurdie 3219
--------------------------------------------------------
4211 dpurdie 3220
--  Constraints for Table PACKAGE_DOCUMENTS
4040 dpurdie 3221
--------------------------------------------------------
3222
 
5172 dpurdie 3223
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("DOC_NUM" NOT NULL ENABLE);
3224
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("DOC_ID" NOT NULL ENABLE);
3225
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3226
--------------------------------------------------------
4211 dpurdie 3227
--  Constraints for Table PACKAGE_BUILD_INFO
4040 dpurdie 3228
--------------------------------------------------------
3229
 
5172 dpurdie 3230
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" MODIFY ("BM_ID" NOT NULL ENABLE);
3231
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3232
--------------------------------------------------------
3233
--  Constraints for Table ADVISORY_RIPPLE
3234
--------------------------------------------------------
3235
 
5172 dpurdie 3236
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" MODIFY ("PV_ID" NOT NULL ENABLE);
3237
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3238
--------------------------------------------------------
4211 dpurdie 3239
--  Constraints for Table PRODUCT_STATES
4040 dpurdie 3240
--------------------------------------------------------
3241
 
5172 dpurdie 3242
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" ADD CONSTRAINT "PRODUCT_STATES_PK" PRIMARY KEY ("STATE_ID")
3243
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3244
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3245
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3246
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3247
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" MODIFY ("STATE" NOT NULL ENABLE);
3248
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" MODIFY ("STATE_ID" NOT NULL ENABLE);
4308 dpurdie 3249
--------------------------------------------------------
3250
--  Constraints for Table PRODUCT_COMPONENTS
3251
--------------------------------------------------------
4040 dpurdie 3252
 
5172 dpurdie 3253
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" MODIFY ("OS_ID" NOT NULL ENABLE);
3254
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 3255
--------------------------------------------------------
3256
--  Constraints for Table PACKAGE_PATCHES
3257
--------------------------------------------------------
4040 dpurdie 3258
 
5172 dpurdie 3259
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("INSTALL_ORDER" NOT NULL ENABLE);
3260
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("PATCH_ID" NOT NULL ENABLE);
3261
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 3262
--------------------------------------------------------
3263
--  Constraints for Table RUN_LEVEL_SCHEDULE
3264
--------------------------------------------------------
4040 dpurdie 3265
 
5172 dpurdie 3266
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" ADD PRIMARY KEY ("SCHEDULED_ID")
3267
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3268
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3269
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3270
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3271
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" MODIFY ("SCHEDULED_ID" NOT NULL ENABLE);
4040 dpurdie 3272
--------------------------------------------------------
4211 dpurdie 3273
--  Constraints for Table MICROSOFTDTPROPERTIES
4040 dpurdie 3274
--------------------------------------------------------
3275
 
5172 dpurdie 3276
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ADD CONSTRAINT "MICROSOFT_PK_DTPROPERTIES" PRIMARY KEY ("ID", "PROPERTY")
3277
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3278
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3279
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3280
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3281
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("VERSION" CONSTRAINT "MICROSOFT_NN_VERSION" NOT NULL ENABLE);
3282
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("PROPERTY" CONSTRAINT "MICROSOFT_NN_PROPERTY" NOT NULL ENABLE);
3283
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("ID" CONSTRAINT "MICROSOFT_NN_ID" NOT NULL ENABLE);
4040 dpurdie 3284
--------------------------------------------------------
4211 dpurdie 3285
--  Constraints for Table NOTE_MANAGER
4040 dpurdie 3286
--------------------------------------------------------
3287
 
5172 dpurdie 3288
  ALTER TABLE "RELEASE_MANAGER"."NOTE_MANAGER" ADD CONSTRAINT "PKNOTE_MANAGER1" PRIMARY KEY ("NID")
3289
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3290
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3291
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3292
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3293
  ALTER TABLE "RELEASE_MANAGER"."NOTE_MANAGER" MODIFY ("NID" NOT NULL ENABLE);
4040 dpurdie 3294
--------------------------------------------------------
4308 dpurdie 3295
--  Constraints for Table BUILD_SERVICE_CONFIG
3296
--------------------------------------------------------
4040 dpurdie 3297
 
5172 dpurdie 3298
  ALTER TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" MODIFY ("CONFIG" NOT NULL ENABLE);
3299
  ALTER TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" MODIFY ("SERVICE" NOT NULL ENABLE);
4308 dpurdie 3300
--------------------------------------------------------
3301
--  Constraints for Table GBE_MACHTYPE
3302
--------------------------------------------------------
4040 dpurdie 3303
 
5172 dpurdie 3304
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("BM_ID" NOT NULL ENABLE);
3305
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" ADD PRIMARY KEY ("GBE_ID")
3306
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3307
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3308
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3309
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3310
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("GBE_VALUE" NOT NULL ENABLE);
3311
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("GBE_ID" NOT NULL ENABLE);
4308 dpurdie 3312
--------------------------------------------------------
4211 dpurdie 3313
--  Constraints for Table ACTION_LOG
4040 dpurdie 3314
--------------------------------------------------------
3315
 
5172 dpurdie 3316
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
3317
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("PV_ID" NOT NULL ENABLE);
3318
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTION_DATETIME" NOT NULL ENABLE);
3319
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
3320
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTION_TIMESTAMP" NOT NULL ENABLE);
3321
--------------------------------------------------------
3322
--  Constraints for Table SDK_CONTENT
3323
--------------------------------------------------------
3324
 
3325
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("SDKPKG_STATE" NOT NULL ENABLE);
3326
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("PV_ID" NOT NULL ENABLE);
3327
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("SDKTAG_ID" NOT NULL ENABLE);
4308 dpurdie 3328
--------------------------------------------------------
3329
--  Constraints for Table ADDITIONAL_NOTES
3330
--------------------------------------------------------
4040 dpurdie 3331
 
5172 dpurdie 3332
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("MOD_USER" NOT NULL ENABLE);
3333
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
3334
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("NOTE_TITLE" NOT NULL ENABLE);
3335
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("PV_ID" NOT NULL ENABLE);
3336
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("NOTE_ID" NOT NULL ENABLE);
4040 dpurdie 3337
--------------------------------------------------------
4308 dpurdie 3338
--  Constraints for Table BUILD_STANDARDS_ADDENDUM
3339
--------------------------------------------------------
4040 dpurdie 3340
 
5172 dpurdie 3341
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ADD CONSTRAINT "BUILD_STANDARDS_ADDENDUM_PK" PRIMARY KEY ("BSA_ID")
3342
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3343
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3344
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3345
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3346
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BS_ID" NOT NULL ENABLE);
3347
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BSA_NAME" NOT NULL ENABLE);
3348
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BSA_ID" NOT NULL ENABLE);
4308 dpurdie 3349
--------------------------------------------------------
4211 dpurdie 3350
--  Constraints for Table TEST_TYPES
4040 dpurdie 3351
--------------------------------------------------------
3352
 
5172 dpurdie 3353
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" ADD CONSTRAINT "PK_TEST_TYPES" PRIMARY KEY ("TEST_TYPE_ID")
3354
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3355
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3356
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3357
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3358
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" MODIFY ("TEST_TYPE_NAME" NOT NULL ENABLE);
3359
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" MODIFY ("TEST_TYPE_ID" NOT NULL ENABLE);
3360
--------------------------------------------------------
3361
--  Constraints for Table BUILD_INSTANCES
3362
--------------------------------------------------------
3363
 
3364
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("STATE" NOT NULL ENABLE);
3365
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("BUILD_ID" NOT NULL ENABLE);
3366
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3367
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("PV_ID" NOT NULL ENABLE);
3368
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("TIMESTAMP" NOT NULL ENABLE);
3369
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_ID" PRIMARY KEY ("BUILD_ID")
3370
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3371
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3372
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3373
  TABLESPACE "RELEASEM_DATA"  ENABLE;
4040 dpurdie 3374
--------------------------------------------------------
4211 dpurdie 3375
--  Constraints for Table TEMP_ENV_STATES
4040 dpurdie 3376
--------------------------------------------------------
3377
 
5172 dpurdie 3378
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("TES_STATE" NOT NULL ENABLE);
3379
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("PKG_ID" NOT NULL ENABLE);
3380
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("PV_ID" NOT NULL ENABLE);
3381
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("LEVEL_NUM" NOT NULL ENABLE);
3382
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("SESSION_NUM" NOT NULL ENABLE);
4040 dpurdie 3383
--------------------------------------------------------
4211 dpurdie 3384
--  Constraints for Table VTREES_WORLD
4040 dpurdie 3385
--------------------------------------------------------
3386
 
5172 dpurdie 3387
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" MODIFY ("VTREE_ID" NOT NULL ENABLE);
3388
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" MODIFY ("WORLD_ID" NOT NULL ENABLE);
4040 dpurdie 3389
--------------------------------------------------------
4211 dpurdie 3390
--  Constraints for Table RELEASE_CONFIG
4040 dpurdie 3391
--------------------------------------------------------
3392
 
5172 dpurdie 3393
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD PRIMARY KEY ("RCON_ID")
3394
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3395
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3396
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3397
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3398
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3399
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" MODIFY ("RCON_ID" NOT NULL ENABLE);
4040 dpurdie 3400
--------------------------------------------------------
4211 dpurdie 3401
--  Constraints for Table VIEWS
4040 dpurdie 3402
--------------------------------------------------------
3403
 
5172 dpurdie 3404
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" ADD CONSTRAINT "PK_VIEWS" PRIMARY KEY ("VIEW_ID")
3405
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3406
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3407
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3408
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3409
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("PUBLIC_READ" NOT NULL ENABLE);
3410
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("BASE_VIEW" NOT NULL ENABLE);
3411
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("OWNER_ID" NOT NULL ENABLE);
3412
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("VIEW_NAME" NOT NULL ENABLE);
3413
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4040 dpurdie 3414
--------------------------------------------------------
4211 dpurdie 3415
--  Constraints for Table JIRA_ISSUES
4040 dpurdie 3416
--------------------------------------------------------
3417
 
5172 dpurdie 3418
  ALTER TABLE "RELEASE_MANAGER"."JIRA_ISSUES" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 3419
--------------------------------------------------------
3420
--  Constraints for Table PLATFORMS
3421
--------------------------------------------------------
4040 dpurdie 3422
 
5172 dpurdie 3423
  ALTER TABLE "RELEASE_MANAGER"."PLATFORMS" MODIFY ("NAME" NOT NULL ENABLE);
3424
  ALTER TABLE "RELEASE_MANAGER"."PLATFORMS" MODIFY ("CODE" NOT NULL ENABLE);
4040 dpurdie 3425
--------------------------------------------------------
3426
--  Constraints for Table IGNORE_WARNINGS
3427
--------------------------------------------------------
3428
 
5172 dpurdie 3429
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("DPV_ID" NOT NULL ENABLE);
3430
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("PV_ID" NOT NULL ENABLE);
3431
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3432
--------------------------------------------------------
4211 dpurdie 3433
--  Constraints for Table DASH_BOARD
4040 dpurdie 3434
--------------------------------------------------------
3435
 
5172 dpurdie 3436
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("TOTAL_PACKAGES" NOT NULL ENABLE);
3437
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("AUTOMATED_PACKAGES" NOT NULL ENABLE);
3438
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("LAST_BUILD_TIME" NOT NULL ENABLE);
3439
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3440
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4040 dpurdie 3441
--------------------------------------------------------
4211 dpurdie 3442
--  Constraints for Table ACTION_TYPE
4040 dpurdie 3443
--------------------------------------------------------
3444
 
5172 dpurdie 3445
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" ADD CONSTRAINT "UNQ_ACTTYPE_ID" PRIMARY KEY ("ACTTYPE_ID")
3446
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3447
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3448
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3449
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3450
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" MODIFY ("NAME" NOT NULL ENABLE);
3451
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
4040 dpurdie 3452
--------------------------------------------------------
4211 dpurdie 3453
--  Constraints for Table PACKAGE_VERSIONS
4040 dpurdie 3454
--------------------------------------------------------
3455
 
5172 dpurdie 3456
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PK_PACKAGE_VERSIONS" PRIMARY KEY ("PV_ID")
3457
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3458
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3459
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3460
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3461
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("BUILD_TYPE" NOT NULL ENABLE);
3462
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("LAST_PV_ID" NOT NULL ENABLE);
3463
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("OWNER_ID" NOT NULL ENABLE);
3464
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("CREATOR_ID" NOT NULL ENABLE);
3465
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("MODIFIER_ID" NOT NULL ENABLE);
3466
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("DLOCKED" NOT NULL ENABLE);
3467
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PKG_VERSION" NOT NULL ENABLE);
3468
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PKG_ID" NOT NULL ENABLE);
3469
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3470
--------------------------------------------------------
5384 dpurdie 3471
--  Constraints for Table CQ_SOFTWARE_ISSUE
3472
--------------------------------------------------------
3473
 
3474
  ALTER TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ADD CONSTRAINT "CQ_SOFTWARE_ISSUE_PK" PRIMARY KEY ("DBID")
3475
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3476
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3477
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3478
  TABLESPACE "RELEASEM_DATA"  ENABLE;
3479
  ALTER TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" MODIFY ("DBID" NOT NULL ENABLE);
3480
--------------------------------------------------------
4211 dpurdie 3481
--  Constraints for Table PACKAGE_INTEREST
4040 dpurdie 3482
--------------------------------------------------------
3483
 
5172 dpurdie 3484
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("USER_ID" NOT NULL ENABLE);
3485
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("PROJ_ID" NOT NULL ENABLE);
3486
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("PKG_ID" NOT NULL ENABLE);
4040 dpurdie 3487
--------------------------------------------------------
4211 dpurdie 3488
--  Constraints for Table RELEASE_CONTENT
4040 dpurdie 3489
--------------------------------------------------------
3490
 
5172 dpurdie 3491
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("PKG_STATE" NOT NULL ENABLE);
3492
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("INSERTOR_ID" NOT NULL ENABLE);
3493
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("INSERT_STAMP" NOT NULL ENABLE);
3494
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("BASE_VIEW_ID" NOT NULL ENABLE);
3495
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("PV_ID" NOT NULL ENABLE);
3496
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3497
--------------------------------------------------------
4211 dpurdie 3498
--  Constraints for Table RELEASE_METRICS
4040 dpurdie 3499
--------------------------------------------------------
3500
 
5172 dpurdie 3501
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" ADD CONSTRAINT "UNQ_RELEASE_METRICS" UNIQUE ("RTAG_ID")
3502
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3503
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3504
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3505
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3506
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3507
--------------------------------------------------------
4211 dpurdie 3508
--  Constraints for Table PROJECT_EXTENTIONS
4040 dpurdie 3509
--------------------------------------------------------
3510
 
5172 dpurdie 3511
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_EXTENTIONS" MODIFY ("EXT_NAME" NOT NULL ENABLE);
4040 dpurdie 3512
--------------------------------------------------------
4211 dpurdie 3513
--  Constraints for Table ABT_ACTION_LOG
4040 dpurdie 3514
--------------------------------------------------------
3515
 
5172 dpurdie 3516
  ALTER TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" MODIFY ("RCON_ID" NOT NULL ENABLE);
4040 dpurdie 3517
--------------------------------------------------------
4211 dpurdie 3518
--  Constraints for Table DAEMON_ACTION_LOG
4040 dpurdie 3519
--------------------------------------------------------
3520
 
5172 dpurdie 3521
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" MODIFY ("RCON_ID" NOT NULL ENABLE);
3522
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 3523
--------------------------------------------------------
4211 dpurdie 3524
--  Constraints for Table PACKAGE_METRICS
4040 dpurdie 3525
--------------------------------------------------------
3526
 
5172 dpurdie 3527
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" ADD CONSTRAINT "UNQ_PACKAGE_METRICS" UNIQUE ("PV_ID")
3528
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3529
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3530
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3531
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3532
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3533
--------------------------------------------------------
5384 dpurdie 3534
--  Constraints for Table CQ_USERS
3535
--------------------------------------------------------
3536
 
3537
  ALTER TABLE "RELEASE_MANAGER"."CQ_USERS" ADD CONSTRAINT "CQ_USERS_PK" PRIMARY KEY ("DBID")
3538
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3539
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3540
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3541
  TABLESPACE "RELEASEM_DATA"  ENABLE;
3542
  ALTER TABLE "RELEASE_MANAGER"."CQ_USERS" MODIFY ("DBID" NOT NULL ENABLE);
3543
--------------------------------------------------------
4211 dpurdie 3544
--  Constraints for Table CODE_REVIEW_URL
4040 dpurdie 3545
--------------------------------------------------------
3546
 
5172 dpurdie 3547
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PK" PRIMARY KEY ("CR_ID")
3548
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3549
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3550
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3551
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3552
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("DATE_OF_REVIEW" NOT NULL ENABLE);
3553
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("URL" NOT NULL ENABLE);
3554
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("PROJ_ID" NOT NULL ENABLE);
3555
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("PV_ID" NOT NULL ENABLE);
3556
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("CR_ID" NOT NULL ENABLE);
5384 dpurdie 3557
--------------------------------------------------------
3558
--  Constraints for Table CQ_STATEDEF
3559
--------------------------------------------------------
3560
 
3561
  ALTER TABLE "RELEASE_MANAGER"."CQ_STATEDEF" ADD CONSTRAINT "CQ_STATEDEF_PK" PRIMARY KEY ("ID")
3562
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3563
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3564
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3565
  TABLESPACE "RELEASEM_DATA"  ENABLE;
3566
  ALTER TABLE "RELEASE_MANAGER"."CQ_STATEDEF" MODIFY ("ID" NOT NULL ENABLE);
4040 dpurdie 3567
--------------------------------------------------------
4211 dpurdie 3568
--  Constraints for Table AUTOBUILD_FAILURE
4040 dpurdie 3569
--------------------------------------------------------
3570
 
5172 dpurdie 3571
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD PRIMARY KEY ("GROUP_EMAIL_ID")
3572
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3573
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3574
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3575
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3576
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" MODIFY ("GROUP_EMAIL_ID" NOT NULL ENABLE);
4040 dpurdie 3577
--------------------------------------------------------
4211 dpurdie 3578
--  Constraints for Table BUILD_MACHINE_CONFIG
4040 dpurdie 3579
--------------------------------------------------------
3580
 
5172 dpurdie 3581
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ADD CONSTRAINT "PK_BUILD_MACHINE_CONFIG" PRIMARY KEY ("BMCON_ID")
3582
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3583
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3584
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3585
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3586
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("GBE_ID" NOT NULL ENABLE);
3587
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("MACHINE_HOSTNAME" NOT NULL ENABLE);
3588
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("DISPLAY_NAME" NOT NULL ENABLE);
3589
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("BMCON_ID" NOT NULL ENABLE);
3590
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("ACTIVE" NOT NULL ENABLE);
3591
--------------------------------------------------------
3592
--  Constraints for Table TEST_RUN
3593
--------------------------------------------------------
3594
 
3595
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TYPE" NOT NULL ENABLE);
3596
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("PLATFORM" NOT NULL ENABLE);
3597
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TEST_OUTCOME" NOT NULL ENABLE);
3598
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TEST_NAME" NOT NULL ENABLE);
3599
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("BUILD_ID" NOT NULL ENABLE);
4040 dpurdie 3600
--------------------------------------------------------
4211 dpurdie 3601
--  Constraints for Table VIEW_DEF
4040 dpurdie 3602
--------------------------------------------------------
3603
 
5172 dpurdie 3604
  ALTER TABLE "RELEASE_MANAGER"."VIEW_DEF" MODIFY ("PKG_ID" NOT NULL ENABLE);
3605
  ALTER TABLE "RELEASE_MANAGER"."VIEW_DEF" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4040 dpurdie 3606
--------------------------------------------------------
4211 dpurdie 3607
--  Constraints for Table BUILD_STANDARDS
4040 dpurdie 3608
--------------------------------------------------------
3609
 
5172 dpurdie 3610
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" ADD CONSTRAINT "BUILD_STANDARDS_PK" PRIMARY KEY ("BS_ID")
3611
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3612
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3613
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3614
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3615
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" MODIFY ("BS_NAME" NOT NULL ENABLE);
3616
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" MODIFY ("BS_ID" NOT NULL ENABLE);
4308 dpurdie 3617
--------------------------------------------------------
3618
--  Constraints for Table PACKAGE_BUILD_ENV
3619
--------------------------------------------------------
4040 dpurdie 3620
 
5172 dpurdie 3621
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" MODIFY ("BE_ID" NOT NULL ENABLE);
3622
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" MODIFY ("PV_ID" NOT NULL ENABLE);
3623
--------------------------------------------------------
3624
--  Constraints for Table RELEASE_MODIFIED
3625
--------------------------------------------------------
3626
 
3627
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3628
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" ADD CONSTRAINT "RELEASE_MODIFIED_PK" PRIMARY KEY ("RTAG_ID")
3629
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3630
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3631
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3632
  TABLESPACE "RELEASEM_DATA"  ENABLE;
4040 dpurdie 3633
--------------------------------------------------------
5384 dpurdie 3634
--  Constraints for Table TEMP_ENV_DEPS
3635
--------------------------------------------------------
3636
 
3637
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("PV_ID" NOT NULL ENABLE);
3638
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("PKG_ID" NOT NULL ENABLE);
3639
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("DPV_ID" NOT NULL ENABLE);
3640
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("SESSION_NUM" NOT NULL ENABLE);
3641
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("DPKG_ID" NOT NULL ENABLE);
3642
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" ADD CONSTRAINT "TEMP_ENV_DEPS_PK" PRIMARY KEY ("PV_ID", "SESSION_NUM", "DPV_ID")
3643
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3644
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3646
  TABLESPACE "RELEASEM_DATA"  ENABLE;
3647
--------------------------------------------------------
4211 dpurdie 3648
--  Constraints for Table VTREES
4040 dpurdie 3649
--------------------------------------------------------
3650
 
5172 dpurdie 3651
  ALTER TABLE "RELEASE_MANAGER"."VTREES" ADD CONSTRAINT "PK_VTREES" PRIMARY KEY ("VTREE_ID")
3652
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3653
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3654
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3655
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3656
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("HIDE" NOT NULL ENABLE);
3657
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("VTREE_NAME" NOT NULL ENABLE);
3658
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("PROJ_ID" NOT NULL ENABLE);
3659
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("VTREE_ID" NOT NULL ENABLE);
4040 dpurdie 3660
--------------------------------------------------------
4308 dpurdie 3661
--  Constraints for Table NOTIFICATION_HISTORY
3662
--------------------------------------------------------
4040 dpurdie 3663
 
5172 dpurdie 3664
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "PK_NOTIFICATION_HISTORY" PRIMARY KEY ("RTAG_ID", "PV_ID", "USER_ID")
3665
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3666
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3667
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3668
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3669
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("DATE_TIME_STAMP" NOT NULL ENABLE);
3670
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("USER_ID" NOT NULL ENABLE);
3671
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("PV_ID" NOT NULL ENABLE);
3672
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 3673
--------------------------------------------------------
3674
--  Constraints for Table RELEASE_LINKS
3675
--------------------------------------------------------
4040 dpurdie 3676
 
5172 dpurdie 3677
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" MODIFY ("REF_RTAG_ID" NOT NULL ENABLE);
3678
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 3679
--------------------------------------------------------
3680
--  Constraints for Table PACKAGES
3681
--------------------------------------------------------
4040 dpurdie 3682
 
5172 dpurdie 3683
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" ADD CONSTRAINT "PK_PACKAGES" PRIMARY KEY ("PKG_ID")
3684
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3685
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3686
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3687
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3688
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" MODIFY ("PKG_NAME" NOT NULL ENABLE);
3689
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" MODIFY ("PKG_ID" NOT NULL ENABLE);
4308 dpurdie 3690
--------------------------------------------------------
3691
--  Constraints for Table PROJECTS
3692
--------------------------------------------------------
4040 dpurdie 3693
 
5172 dpurdie 3694
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" ADD CONSTRAINT "PK_PROJECTS" PRIMARY KEY ("PROJ_ID")
3695
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3696
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3697
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3698
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3699
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" MODIFY ("PROJ_NAME" NOT NULL ENABLE);
3700
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4308 dpurdie 3701
--------------------------------------------------------
3702
--  Constraints for Table LICENCING
3703
--------------------------------------------------------
4040 dpurdie 3704
 
5384 dpurdie 3705
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD CONSTRAINT "LICENCING_PK" PRIMARY KEY ("PV_ID", "LICENCE")
3706
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3707
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3708
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3709
  TABLESPACE "RELEASEM_DATA"  ENABLE;
5172 dpurdie 3710
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" MODIFY ("LICENCE" NOT NULL ENABLE);
3711
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 3712
--------------------------------------------------------
3713
--  Constraints for Table MESSAGE_BOARD
3714
--------------------------------------------------------
4040 dpurdie 3715
 
5172 dpurdie 3716
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" ADD CONSTRAINT "PK_MESSAGE_BOARD" PRIMARY KEY ("MSG_ID")
3717
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3718
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3719
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3720
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3721
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("SUBMITION_DATE" NOT NULL ENABLE);
3722
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("MSG_DETAILS" NOT NULL ENABLE);
3723
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("MSG_ID" NOT NULL ENABLE);
4308 dpurdie 3724
--------------------------------------------------------
3725
--  Constraints for Table PROJECT_ACTION_LOG
3726
--------------------------------------------------------
4040 dpurdie 3727
 
5172 dpurdie 3728
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
3729
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("PROJ_ID" NOT NULL ENABLE);
3730
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("ACTION_DATETIME" NOT NULL ENABLE);
3731
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4308 dpurdie 3732
--------------------------------------------------------
3733
--  Constraints for Table ARCHIVE_DATA
3734
--------------------------------------------------------
4040 dpurdie 3735
 
5172 dpurdie 3736
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" MODIFY ("PV_ID" NOT NULL ENABLE);
3737
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 3738
--------------------------------------------------------
3739
--  Constraints for Table VALIDATION_RULES
3740
--------------------------------------------------------
4040 dpurdie 3741
 
5172 dpurdie 3742
  ALTER TABLE "RELEASE_MANAGER"."VALIDATION_RULES" MODIFY ("IS_REQUIRED" NOT NULL ENABLE);
3743
  ALTER TABLE "RELEASE_MANAGER"."VALIDATION_RULES" MODIFY ("FIELD_NAME" NOT NULL ENABLE);
4308 dpurdie 3744
--------------------------------------------------------
3745
--  Constraints for Table LICENCES
3746
--------------------------------------------------------
4040 dpurdie 3747
 
5172 dpurdie 3748
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" ADD CONSTRAINT "PK_LICENCES" PRIMARY KEY ("LICENCE")
3749
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3750
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3751
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3752
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3753
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" MODIFY ("NAME" NOT NULL ENABLE);
3754
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" MODIFY ("LICENCE" NOT NULL ENABLE);
4308 dpurdie 3755
--------------------------------------------------------
3756
--  Constraints for Table MEMBERS_GROUP
3757
--------------------------------------------------------
4040 dpurdie 3758
 
5172 dpurdie 3759
  ALTER TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" MODIFY ("GROUP_EMAIL_ID" NOT NULL ENABLE);
4308 dpurdie 3760
--------------------------------------------------------
3761
--  Constraints for Table CQ_ISSUES
3762
--------------------------------------------------------
4040 dpurdie 3763
 
5172 dpurdie 3764
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
3765
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_STATE" NOT NULL ENABLE);
3766
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_ID" NOT NULL ENABLE);
3767
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_DB" NOT NULL ENABLE);
3768
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 3769
--------------------------------------------------------
3770
--  Constraints for Table ARCHIVE_ACTION_LOG
3771
--------------------------------------------------------
4040 dpurdie 3772
 
5172 dpurdie 3773
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("DESCRIPTION" NOT NULL ENABLE);
3774
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3775
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("DATE_TIME_STAMP" NOT NULL ENABLE);
3776
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4308 dpurdie 3777
--------------------------------------------------------
4211 dpurdie 3778
--  Constraints for Table CODE_REVIEWS
4040 dpurdie 3779
--------------------------------------------------------
3780
 
5172 dpurdie 3781
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEWS" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 3782
--------------------------------------------------------
3783
--  Constraints for Table PLANNED
3784
--------------------------------------------------------
4040 dpurdie 3785
 
5172 dpurdie 3786
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "UNIQUE_PV_RTAG" UNIQUE ("PV_ID", "RTAG_ID")
3787
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3788
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3789
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3790
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3791
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("VIEW_ID" NOT NULL ENABLE);
3792
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("PV_ID" NOT NULL ENABLE);
3793
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 3794
--------------------------------------------------------
3795
--  Constraints for Table VCS_TYPE
3796
--------------------------------------------------------
4040 dpurdie 3797
 
5172 dpurdie 3798
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" ADD CONSTRAINT "VCS_TYPE_PK" PRIMARY KEY ("VCS_TYPE_ID")
3799
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3800
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3801
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3802
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3803
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("TAG" NOT NULL ENABLE);
3804
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("NAME" NOT NULL ENABLE);
3805
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("VCS_TYPE_ID" NOT NULL ENABLE);
4308 dpurdie 3806
--------------------------------------------------------
3807
--  Constraints for Table BUILD_MACHINES
3808
--------------------------------------------------------
4040 dpurdie 3809
 
5172 dpurdie 3810
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" ADD CONSTRAINT "BUILD_MACHINES_PK" PRIMARY KEY ("BM_ID")
3811
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3812
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3813
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3814
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3815
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" MODIFY ("BM_NAME" NOT NULL ENABLE);
3816
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" MODIFY ("BM_ID" NOT NULL ENABLE);
4308 dpurdie 3817
--------------------------------------------------------
3818
--  Constraints for Table PEGGED_VERSIONS
3819
--------------------------------------------------------
4040 dpurdie 3820
 
5172 dpurdie 3821
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" MODIFY ("PV_ID" NOT NULL ENABLE);
3822
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 3823
--------------------------------------------------------
3824
--  Constraints for Table DAEMON_INSTRUCTIONS
3825
--------------------------------------------------------
4040 dpurdie 3826
 
5172 dpurdie 3827
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_UK1" UNIQUE ("OP_CODE", "RTAG_ID", "PV_ID")
3828
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3829
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3830
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3831
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3832
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_PK" PRIMARY KEY ("DAEMON_INSTRUCTIONS_ID")
3833
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3834
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3835
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3836
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3837
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" MODIFY ("OP_CODE" NOT NULL ENABLE);
3838
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" MODIFY ("DAEMON_INSTRUCTIONS_ID" NOT NULL ENABLE);
4040 dpurdie 3839
--------------------------------------------------------
4211 dpurdie 3840
--  Constraints for Table WORK_IN_PROGRESS
4040 dpurdie 3841
--------------------------------------------------------
3842
 
5172 dpurdie 3843
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
3844
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("PV_ID" NOT NULL ENABLE);
3845
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3846
--------------------------------------------------------
4308 dpurdie 3847
--  Constraints for Table BUILD_ENV_DOCUMENTS
3848
--------------------------------------------------------
4040 dpurdie 3849
 
5172 dpurdie 3850
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" MODIFY ("DOC_NUM" NOT NULL ENABLE);
3851
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" MODIFY ("BE_ID" NOT NULL ENABLE);
4308 dpurdie 3852
--------------------------------------------------------
4211 dpurdie 3853
--  Constraints for Table BUILD_ORDER
4040 dpurdie 3854
--------------------------------------------------------
3855
 
5172 dpurdie 3856
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("PV_ID" NOT NULL ENABLE);
3857
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("STEP_NUM" NOT NULL ENABLE);
3858
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 3859
--------------------------------------------------------
3860
--  Constraints for Table PACKAGE_DEPENDENCIES
3861
--------------------------------------------------------
4040 dpurdie 3862
 
5172 dpurdie 3863
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("BUILD_TYPE" NOT NULL ENABLE);
3864
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("DPKG_ID" NOT NULL ENABLE);
3865
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("PKG_ID" NOT NULL ENABLE);
3866
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("DPV_ID" NOT NULL ENABLE);
3867
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 3868
--------------------------------------------------------
3869
--  Constraints for Table PROCESSES
3870
--------------------------------------------------------
4040 dpurdie 3871
 
5172 dpurdie 3872
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" ADD CONSTRAINT "PROCESSES_PK" PRIMARY KEY ("PROC_ID")
3873
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3874
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3875
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3876
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3877
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" MODIFY ("PROC_NAME" NOT NULL ENABLE);
3878
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" MODIFY ("PROC_ID" NOT NULL ENABLE);
4308 dpurdie 3879
--------------------------------------------------------
3880
--  Constraints for Table BUILD_ENVIRONMENTS
3881
--------------------------------------------------------
4040 dpurdie 3882
 
5172 dpurdie 3883
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ADD CONSTRAINT "PK_BUILD_ENVIRONMENTS" PRIMARY KEY ("BE_ID")
3884
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3885
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3886
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3887
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3888
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" MODIFY ("BE_NAME" NOT NULL ENABLE);
3889
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" MODIFY ("BE_ID" NOT NULL ENABLE);
4308 dpurdie 3890
--------------------------------------------------------
3891
--  Constraints for Table DEPRECATED_PACKAGES
3892
--------------------------------------------------------
4040 dpurdie 3893
 
5172 dpurdie 3894
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("COMMENTS" NOT NULL ENABLE);
3895
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("PKG_ID" NOT NULL ENABLE);
3896
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3897
--------------------------------------------------------
3898
--  Ref Constraints for Table ABT_ACTION_LOG
3899
--------------------------------------------------------
3900
 
5172 dpurdie 3901
  ALTER TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" ADD FOREIGN KEY ("RCON_ID")
3902
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
4040 dpurdie 3903
--------------------------------------------------------
3904
--  Ref Constraints for Table ACTION_LOG
3905
--------------------------------------------------------
3906
 
5172 dpurdie 3907
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" ADD CONSTRAINT "REFACTION_TYPE48" FOREIGN KEY ("ACTTYPE_ID")
3908
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
4040 dpurdie 3909
--------------------------------------------------------
3910
--  Ref Constraints for Table ADDITIONAL_NOTES
3911
--------------------------------------------------------
3912
 
5172 dpurdie 3913
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" ADD CONSTRAINT "FK_ADDITION_REF_PV_ID" FOREIGN KEY ("PV_ID")
3914
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 3915
--------------------------------------------------------
3916
--  Ref Constraints for Table ADVISORY_RIPPLE
3917
--------------------------------------------------------
3918
 
5172 dpurdie 3919
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" ADD FOREIGN KEY ("RTAG_ID")
3920
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
3921
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" ADD FOREIGN KEY ("PV_ID")
3922
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 3923
--------------------------------------------------------
3924
--  Ref Constraints for Table AUTOBUILD_FAILURE
3925
--------------------------------------------------------
3926
 
5172 dpurdie 3927
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD FOREIGN KEY ("PROJ_ID")
3928
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
3929
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD FOREIGN KEY ("VIEW_ID")
3930
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
4040 dpurdie 3931
--------------------------------------------------------
3932
--  Ref Constraints for Table BUILD_ENV_DOCUMENTS
3933
--------------------------------------------------------
3934
 
5172 dpurdie 3935
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" ADD CONSTRAINT "FK_BUILD_E_DOCS_REF_BUILD_ENV" FOREIGN KEY ("BE_ID")
3936
	  REFERENCES "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") ENABLE;
3937
--------------------------------------------------------
3938
--  Ref Constraints for Table BUILD_INSTANCES
3939
--------------------------------------------------------
3940
 
3941
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_INSTANCES_FK1" FOREIGN KEY ("RTAG_ID")
3942
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
3943
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_INSTANCES_FK2" FOREIGN KEY ("PV_ID")
3944
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 3945
--------------------------------------------------------
3946
--  Ref Constraints for Table BUILD_MACHINE_CONFIG
3947
--------------------------------------------------------
3948
 
5172 dpurdie 3949
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ADD CONSTRAINT "FK_BM_GBE_ID" FOREIGN KEY ("GBE_ID")
3950
	  REFERENCES "RELEASE_MANAGER"."GBE_MACHTYPE" ("GBE_ID") ENABLE;
4040 dpurdie 3951
--------------------------------------------------------
3952
--  Ref Constraints for Table BUILD_ORDER
3953
--------------------------------------------------------
3954
 
5172 dpurdie 3955
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" ADD CONSTRAINT "FK_BO_PV_ID" FOREIGN KEY ("PV_ID")
3956
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") DISABLE;
3957
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" ADD CONSTRAINT "FK_BO_RTAG_ID" FOREIGN KEY ("RTAG_ID")
3958
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 3959
--------------------------------------------------------
3960
--  Ref Constraints for Table BUILD_STANDARDS_ADDENDUM
3961
--------------------------------------------------------
3962
 
5172 dpurdie 3963
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ADD CONSTRAINT "BUILD_STANDARDS_ADDENDUM_R01" FOREIGN KEY ("BS_ID")
3964
	  REFERENCES "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") ENABLE;
4040 dpurdie 3965
--------------------------------------------------------
3966
--  Ref Constraints for Table CODE_REVIEWS
3967
--------------------------------------------------------
3968
 
5172 dpurdie 3969
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEWS" ADD CONSTRAINT "FK_CODE_REV_REF_PV_ID" FOREIGN KEY ("PV_ID")
3970
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 3971
--------------------------------------------------------
3972
--  Ref Constraints for Table CODE_REVIEW_URL
3973
--------------------------------------------------------
3974
 
5172 dpurdie 3975
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PACKAGE_V_FK1" FOREIGN KEY ("PV_ID")
3976
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
3977
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PROJECT_V_FK1" FOREIGN KEY ("PROJ_ID")
3978
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4040 dpurdie 3979
--------------------------------------------------------
3980
--  Ref Constraints for Table CQ_ISSUES
3981
--------------------------------------------------------
3982
 
5172 dpurdie 3983
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" ADD CONSTRAINT "FK_CQ_PV_ID" FOREIGN KEY ("PV_ID")
3984
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 3985
--------------------------------------------------------
3986
--  Ref Constraints for Table DAEMON_ACTION_LOG
3987
--------------------------------------------------------
3988
 
5172 dpurdie 3989
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" ADD FOREIGN KEY ("RCON_ID")
3990
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
3991
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" ADD FOREIGN KEY ("ACTTYPE_ID")
3992
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
4040 dpurdie 3993
--------------------------------------------------------
3994
--  Ref Constraints for Table DAEMON_INSTRUCTIONS
3995
--------------------------------------------------------
3996
 
5172 dpurdie 3997
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_PV_ID_FK" FOREIGN KEY ("PV_ID")
3998
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
3999
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_RTAG_ID_FK" FOREIGN KEY ("RTAG_ID")
4000
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4001
--------------------------------------------------------
4002
--  Ref Constraints for Table DASH_BOARD
4003
--------------------------------------------------------
4004
 
5172 dpurdie 4005
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" ADD FOREIGN KEY ("PROJ_ID")
4006
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4007
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" ADD FOREIGN KEY ("RTAG_ID")
4008
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4009
--------------------------------------------------------
4010
--  Ref Constraints for Table DO_NOT_RIPPLE
4011
--------------------------------------------------------
4012
 
5172 dpurdie 4013
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" ADD FOREIGN KEY ("PV_ID")
4014
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4015
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" ADD FOREIGN KEY ("RTAG_ID")
4016
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4017
--------------------------------------------------------
4018
--  Ref Constraints for Table GBE_MACHTYPE
4019
--------------------------------------------------------
4020
 
5172 dpurdie 4021
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" ADD CONSTRAINT "GBE_MACHTYPE_BUILD_MACHIN_FK1" FOREIGN KEY ("BM_ID")
4022
	  REFERENCES "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") ENABLE;
4040 dpurdie 4023
--------------------------------------------------------
4024
--  Ref Constraints for Table IGNORE_WARNINGS
4025
--------------------------------------------------------
4026
 
5172 dpurdie 4027
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_DPV_ID" FOREIGN KEY ("DPV_ID")
4028
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4029
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_PV_ID" FOREIGN KEY ("PV_ID")
4030
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4031
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_RTAG_ID" FOREIGN KEY ("RTAG_ID")
4032
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4033
--------------------------------------------------------
4034
--  Ref Constraints for Table JIRA_ISSUES
4035
--------------------------------------------------------
4036
 
5172 dpurdie 4037
  ALTER TABLE "RELEASE_MANAGER"."JIRA_ISSUES" ADD CONSTRAINT "FK_JIRA_PV_ID" FOREIGN KEY ("PV_ID")
4038
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4039
--------------------------------------------------------
4040
--  Ref Constraints for Table LICENCING
4041
--------------------------------------------------------
4042
 
5172 dpurdie 4043
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD FOREIGN KEY ("PV_ID")
4044
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4045
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD FOREIGN KEY ("LICENCE")
4046
	  REFERENCES "RELEASE_MANAGER"."LICENCES" ("LICENCE") ENABLE;
4040 dpurdie 4047
--------------------------------------------------------
5384 dpurdie 4048
--  Ref Constraints for Table LXR_STATE
4049
--------------------------------------------------------
4050
 
4051
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" ADD CONSTRAINT "LXR_STATE_FK1" FOREIGN KEY ("RTAG_ID")
4052
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
4053
--------------------------------------------------------
4040 dpurdie 4054
--  Ref Constraints for Table MEMBERS_GROUP
4055
--------------------------------------------------------
4056
 
5172 dpurdie 4057
  ALTER TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" ADD FOREIGN KEY ("GROUP_EMAIL_ID")
4058
	  REFERENCES "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ("GROUP_EMAIL_ID") ENABLE;
4040 dpurdie 4059
--------------------------------------------------------
4060
--  Ref Constraints for Table NOTIFICATION_HISTORY
4061
--------------------------------------------------------
4062
 
5172 dpurdie 4063
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "FK_NH_RTAG_ID" FOREIGN KEY ("RTAG_ID")
4064
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4065
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "FK_NK_PV_ID" FOREIGN KEY ("PV_ID")
4066
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") DISABLE;
4040 dpurdie 4067
--------------------------------------------------------
4068
--  Ref Constraints for Table PACKAGE_BUILD_ENV
4069
--------------------------------------------------------
4070
 
5172 dpurdie 4071
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ADD CONSTRAINT "FK_PKG_BUILD_E_REF_BUILD_ENV" FOREIGN KEY ("BE_ID")
4072
	  REFERENCES "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") ENABLE;
4073
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ADD CONSTRAINT "FK_PKG_BUILD_E_REF_PKG_VERSION" FOREIGN KEY ("PV_ID")
4074
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4075
--------------------------------------------------------
4076
--  Ref Constraints for Table PACKAGE_BUILD_INFO
4077
--------------------------------------------------------
4078
 
5172 dpurdie 4079
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" ADD FOREIGN KEY ("PV_ID")
4080
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4081
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" ADD FOREIGN KEY ("BM_ID")
4082
	  REFERENCES "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") ENABLE;
4040 dpurdie 4083
--------------------------------------------------------
4084
--  Ref Constraints for Table PACKAGE_DOCUMENTS
4085
--------------------------------------------------------
4086
 
5172 dpurdie 4087
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ADD CONSTRAINT "FK_PKGDOCS_REF_PV" FOREIGN KEY ("PV_ID")
4088
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4089
--------------------------------------------------------
4090
--  Ref Constraints for Table PACKAGE_INTEREST
4091
--------------------------------------------------------
4092
 
5172 dpurdie 4093
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" ADD FOREIGN KEY ("PROJ_ID")
4094
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4040 dpurdie 4095
--------------------------------------------------------
4096
--  Ref Constraints for Table PACKAGE_METRICS
4097
--------------------------------------------------------
4098
 
5172 dpurdie 4099
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" ADD CONSTRAINT "FK_PACKAGE_METRICS_PV_ID" FOREIGN KEY ("PV_ID")
4100
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4101
--------------------------------------------------------
4102
--  Ref Constraints for Table PACKAGE_PATCHES
4103
--------------------------------------------------------
4104
 
5172 dpurdie 4105
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" ADD CONSTRAINT "FK_PP_PATCH_ID" FOREIGN KEY ("PATCH_ID")
4106
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4107
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" ADD CONSTRAINT "FK_PP_PV_ID" FOREIGN KEY ("PV_ID")
4108
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4109
--------------------------------------------------------
4110
--  Ref Constraints for Table PACKAGE_PROCESSES
4111
--------------------------------------------------------
4112
 
5172 dpurdie 4113
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" ADD CONSTRAINT "PACKAGE_PROCESSES_R01" FOREIGN KEY ("PV_ID")
4114
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4115
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" ADD CONSTRAINT "PACKAGE_PROCESSES_R02" FOREIGN KEY ("PROC_ID")
4116
	  REFERENCES "RELEASE_MANAGER"."PROCESSES" ("PROC_ID") ENABLE;
4040 dpurdie 4117
--------------------------------------------------------
4118
--  Ref Constraints for Table PACKAGE_VERSIONS
4119
--------------------------------------------------------
4120
 
5172 dpurdie 4121
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PACKAGE_VERSIONS_VCS_TYPE" FOREIGN KEY ("VCS_TYPE_ID")
4122
	  REFERENCES "RELEASE_MANAGER"."VCS_TYPE" ("VCS_TYPE_ID") ENABLE;
4123
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD FOREIGN KEY ("BS_ID")
4124
	  REFERENCES "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") ENABLE;
4040 dpurdie 4125
--------------------------------------------------------
4126
--  Ref Constraints for Table PEGGED_VERSIONS
4127
--------------------------------------------------------
4128
 
5172 dpurdie 4129
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" ADD CONSTRAINT "PEGGED_VERSIONS_PACKAG_FK1" FOREIGN KEY ("PV_ID")
4130
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4131
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" ADD CONSTRAINT "PEGGED_VERSIONS_RELEAS_FK1" FOREIGN KEY ("RTAG_ID")
4132
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4133
--------------------------------------------------------
4134
--  Ref Constraints for Table PLANNED
4135
--------------------------------------------------------
4136
 
5172 dpurdie 4137
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFPACKAGE_VERSIONS54" FOREIGN KEY ("PV_ID")
4138
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4139
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFRELEASE_TAGS53" FOREIGN KEY ("RTAG_ID")
4140
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4141
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFVIEWS55" FOREIGN KEY ("VIEW_ID")
4142
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
4040 dpurdie 4143
--------------------------------------------------------
4144
--  Ref Constraints for Table PLANNED_VERSIONS
4145
--------------------------------------------------------
4146
 
5172 dpurdie 4147
  ALTER TABLE "RELEASE_MANAGER"."PLANNED_VERSIONS" ADD FOREIGN KEY ("PKG_ID")
4148
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
4040 dpurdie 4149
--------------------------------------------------------
4150
--  Ref Constraints for Table PRODUCT_COMPONENTS
4151
--------------------------------------------------------
4152
 
5172 dpurdie 4153
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" ADD CONSTRAINT "REFPACKAGE_VERSIONS49" FOREIGN KEY ("PV_ID")
4154
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4155
--------------------------------------------------------
4156
--  Ref Constraints for Table PROJECT_ACTION_LOG
4157
--------------------------------------------------------
4158
 
5172 dpurdie 4159
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ADD CONSTRAINT "REFACTION_TYPE63" FOREIGN KEY ("ACTTYPE_ID")
4160
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
4161
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ADD FOREIGN KEY ("RTAG_ID")
4162
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") DISABLE;
4040 dpurdie 4163
--------------------------------------------------------
4164
--  Ref Constraints for Table RELEASE_COMPONENTS
4165
--------------------------------------------------------
4166
 
5172 dpurdie 4167
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" ADD CONSTRAINT "FK_RCONT_PV_ID" FOREIGN KEY ("PV_ID")
4168
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4169
--------------------------------------------------------
4170
--  Ref Constraints for Table RELEASE_CONFIG
4171
--------------------------------------------------------
4172
 
5172 dpurdie 4173
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD FOREIGN KEY ("RTAG_ID")
4174
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4175
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD FOREIGN KEY ("GBE_ID")
4176
	  REFERENCES "RELEASE_MANAGER"."GBE_MACHTYPE" ("GBE_ID") ENABLE;
4040 dpurdie 4177
--------------------------------------------------------
4178
--  Ref Constraints for Table RELEASE_CONTENT
4179
--------------------------------------------------------
4180
 
5172 dpurdie 4181
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD CONSTRAINT "RELEASE_CONTENT_FK1" FOREIGN KEY ("SDKTAG_ID")
4182
	  REFERENCES "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") ENABLE;
4183
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD FOREIGN KEY ("PKG_ID")
4184
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
4185
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD FOREIGN KEY ("PRODUCT_STATE")
4186
	  REFERENCES "RELEASE_MANAGER"."PRODUCT_STATES" ("STATE_ID") ENABLE;
4040 dpurdie 4187
--------------------------------------------------------
4188
--  Ref Constraints for Table RELEASE_LINKS
4189
--------------------------------------------------------
4190
 
5172 dpurdie 4191
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" ADD CONSTRAINT "REFRELEASE_TAGS56" FOREIGN KEY ("RTAG_ID")
4192
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4193
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" ADD CONSTRAINT "REFRELEASE_TAGS58" FOREIGN KEY ("REF_RTAG_ID")
4194
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4195
--------------------------------------------------------
4196
--  Ref Constraints for Table RELEASE_METRICS
4197
--------------------------------------------------------
4198
 
5172 dpurdie 4199
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" ADD CONSTRAINT "FK_RELEASE_METRICS_RTAG_ID" FOREIGN KEY ("RTAG_ID")
4200
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4201
--------------------------------------------------------
4202
--  Ref Constraints for Table RELEASE_MODIFIED
4203
--------------------------------------------------------
4204
 
4205
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" ADD CONSTRAINT "RELEASE_MODIFIED_RELEASE__FK1" FOREIGN KEY ("RTAG_ID")
4206
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 4207
--------------------------------------------------------
4208
--  Ref Constraints for Table RUNTIME_DEPENDENCIES
4209
--------------------------------------------------------
4210
 
5172 dpurdie 4211
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ADD CONSTRAINT "FK_RTD_PV_ID" FOREIGN KEY ("PV_ID")
4212
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4213
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ADD CONSTRAINT "FK_RTD_RTD_ID" FOREIGN KEY ("RTD_ID")
4214
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4215
--------------------------------------------------------
4216
--  Ref Constraints for Table RUN_LEVEL
4217
--------------------------------------------------------
4218
 
5172 dpurdie 4219
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD FOREIGN KEY ("RCON_ID")
4220
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
4221
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD FOREIGN KEY ("CURRENT_PKG_ID_BEING_BUILT")
4222
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
4223
--------------------------------------------------------
4224
--  Ref Constraints for Table SDK_CONTENT
4225
--------------------------------------------------------
4226
 
4227
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" ADD CONSTRAINT "SDK_CONTENT_FK1" FOREIGN KEY ("PV_ID")
4228
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4229
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" ADD CONSTRAINT "SDK_CONTENT_FK2" FOREIGN KEY ("SDKTAG_ID")
4230
	  REFERENCES "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") ENABLE;
4231
--------------------------------------------------------
4232
--  Ref Constraints for Table SDK_NAMES
4233
--------------------------------------------------------
4234
 
4235
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_FK1" FOREIGN KEY ("VIEW_ID")
4236
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
4237
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_FK2" FOREIGN KEY ("PROJ_ID")
4238
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4239
--------------------------------------------------------
4240
--  Ref Constraints for Table SDK_TAGS
4241
--------------------------------------------------------
4242
 
4243
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_FK1" FOREIGN KEY ("SDK_ID")
4244
	  REFERENCES "RELEASE_MANAGER"."SDK_NAMES" ("SDK_ID") ENABLE;
4245
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_FK2" FOREIGN KEY ("RTAG_ID")
4246
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4247
--------------------------------------------------------
4248
--  Ref Constraints for Table TEST_RUN
4249
--------------------------------------------------------
4250
 
4251
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" ADD CONSTRAINT "TEST_RUN_FK1" FOREIGN KEY ("BUILD_ID")
4252
	  REFERENCES "RELEASE_MANAGER"."BUILD_INSTANCES" ("BUILD_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 4253
--------------------------------------------------------
4254
--  Ref Constraints for Table UNIT_TESTS
4255
--------------------------------------------------------
4256
 
5172 dpurdie 4257
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" ADD CONSTRAINT "FK_UT_REF_PV_ID" FOREIGN KEY ("PV_ID")
4258
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4259
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" ADD CONSTRAINT "FK_UT_REF_TEST_TYPES" FOREIGN KEY ("TEST_TYPES_FK")
4260
	  REFERENCES "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_ID") ENABLE;
4040 dpurdie 4261
--------------------------------------------------------
4262
--  Ref Constraints for Table VTREES_WORLD
4263
--------------------------------------------------------
4264
 
5172 dpurdie 4265
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" ADD CONSTRAINT "FK_VW_REF_VTREE_ID" FOREIGN KEY ("VTREE_ID")
4266
	  REFERENCES "RELEASE_MANAGER"."VTREES" ("VTREE_ID") ENABLE;
4267
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" ADD CONSTRAINT "FK_VW_REF_WORLD_ID" FOREIGN KEY ("WORLD_ID")
4268
	  REFERENCES "RELEASE_MANAGER"."WORLDS" ("WORLD_ID") ENABLE;
4040 dpurdie 4269
--------------------------------------------------------
4270
--  Ref Constraints for Table WORK_IN_PROGRESS
4271
--------------------------------------------------------
4272
 
5172 dpurdie 4273
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFPACKAGE_VERSIONS51" FOREIGN KEY ("PV_ID")
4274
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4275
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFRELEASE_TAGS50" FOREIGN KEY ("RTAG_ID")
4276
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4277
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFVIEWS52" FOREIGN KEY ("VIEW_ID")
4278
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
4279
--------------------------------------------------------
4280
--  DDL for Trigger TRIGGER_BSA_ID
4281
--------------------------------------------------------
4282
 
4283
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_BSA_ID" 
4284
BEFORE INSERT ON BUILD_STANDARDS_ADDENDUM 
4285
for each row
4286
BEGIN
4287
  select SEQ_BSA_ID.nextval
4288
  into :new.BSA_ID
4289
  from DUAL;
4290
END;
4040 dpurdie 4291
/
5172 dpurdie 4292
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_BSA_ID" ENABLE;
4293
--------------------------------------------------------
4294
--  DDL for Trigger TRIGGER_BUILD_INSTANCE
4295
--------------------------------------------------------
4296
 
4297
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_BUILD_INSTANCE" 
4298
BEFORE INSERT ON BUILD_INSTANCES 
4299
for each row
4300
BEGIN
4301
  select SEQ_BUILD_INSTANCE.nextval
4302
  into :new.BUILD_ID
4303
  from DUAL;
4304
END;
4305
/
4306
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_BUILD_INSTANCE" ENABLE;
4307
--------------------------------------------------------
4308
--  DDL for Trigger TRIGGER_SDK_NAMES
4309
--------------------------------------------------------
4310
 
4311
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_NAMES" 
4312
BEFORE INSERT ON SDK_NAMES 
4313
for each row
4314
BEGIN
4315
  select SEQ_SDK_ID.nextval
4316
  into :new.SDK_ID
4317
  from DUAL;
4318
END;
4319
/
4320
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_NAMES" ENABLE;
4321
--------------------------------------------------------
4322
--  DDL for Trigger TRIGGER_SDK_TAGS
4323
--------------------------------------------------------
4324
 
4325
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_TAGS" 
4326
BEFORE INSERT ON SDK_TAGS 
4327
for each row
4328
BEGIN
4329
  select SEQ_SDKTAG_ID.nextval
4330
  into :new.SDKTAG_ID
4331
  from DUAL;
4332
END;
4333
/
4334
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_TAGS" ENABLE;
4040 dpurdie 4335
--------------------------------------------------------
4336
--  DDL for Function CAN_EDIT_PKG_IN_PROJECT
4337
--------------------------------------------------------
4338
 
5172 dpurdie 4339
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."CAN_EDIT_PKG_IN_PROJECT" ( nPvId IN NUMBER, nRtagId IN NUMBER ) RETURN NUMBER IS
5384 dpurdie 4340
-- Returns 0 : Package is not editable in this Release
4341
--         1 : Package is editable in this release
1373 dpurdie 4342
/* ---------------------------------------------------------------------------
4343
    Version: 3.0.0
4344
   --------------------------------------------------------------------------- */
4345
 
5384 dpurdie 4346
  VExt PACKAGE_VERSIONS.V_EXT%TYPE;
4347
  ProjId NUMBER;
4348
  RowCount NUMBER;
4349
  cReleaseMode CHAR(1);
1373 dpurdie 4350
 
4351
BEGIN
5384 dpurdie 4352
 
4353
  /*--------------- Business Rules Here -------------------*/
4354
  IF (nRtagId IS NULL)  OR  (nRtagId < 1)THEN
4355
    RETURN 0;
4356
  END IF;
4357
  /*-------------------------------------------------------*/
4358
 
4359
  /*-- First Check. See if package is used through release reference --*/
4360
  SELECT COUNT(rc.PV_ID) INTO RowCount
4361
    FROM (
4362
        SELECT rl.REF_RTAG_ID
4363
        FROM RELEASE_LINKS rl
4364
       WHERE rl.RTAG_ID = nRtagId
4365
        ) rl,
4366
      RELEASE_CONTENT rc
4367
    WHERE rc.RTAG_ID = rl.REF_RTAG_ID
4368
      AND rc.PV_ID = nPvId;     
4369
 
4370
  -- Decide if package can be edited  
4371
  IF RowCount > 0 THEN
4372
    -- Package is referenced from other release, hence cannot be edited
4373
    RETURN 0; 
4374
  END IF;   
4375
 
5172 dpurdie 4376
-- Check if the package is included through an SDK reference
4377
  SELECT count(*) INTO RowCount
4378
    FROM RELEASE_CONTENT rc
4379
   WHERE rc.RTAG_ID = nRtagId
5384 dpurdie 4380
      AND rc.PV_ID = nPvId
5172 dpurdie 4381
      AND rc.SDKTAG_ID is not NULL ;
4382
 
5384 dpurdie 4383
  IF RowCount > 0 THEN
4384
    -- Package is imported via SDK
4385
    RETURN 0; 
4386
  END IF; 
5172 dpurdie 4387
 
5384 dpurdie 4388
--  Pegged packages can be edited. Other checking needs to be done
4389
--  -- Check if the package is pegged
4390
--  SELECT count(*) INTO RowCount
4391
--    FROM pegged_versions
4392
--   WHERE RTAG_ID = nRtagId
4393
--      AND PV_ID = nPvId;
5172 dpurdie 4394
 
5384 dpurdie 4395
--  IF RowCount > 0 THEN
4396
--    -- Package is Pegged
4397
--    RETURN 0; 
4398
--  END IF; 
5172 dpurdie 4399
 
5384 dpurdie 4400
  -- Check is only done for releases in restrictive mode
4401
  SELECT rt.OFFICIAL INTO cReleaseMode
4402
    FROM RELEASE_TAGS rt
4403
   WHERE rt.RTAG_ID = nRtagId;
4404
 
4405
  IF cReleaseMode = 'N' OR cReleaseMode = 'R'  OR cReleaseMode = 'C' THEN
4406
    -- Do not do any further checking,
4407
    -- Package is editable here
4408
    RETURN 1;
4409
  END IF; 
4410
 
5172 dpurdie 4411
 
5384 dpurdie 4412
  /*-- Further checking --*/
4413
  -- Get proj_id
4414
  SELECT rt.PROJ_ID  INTO  ProjId
4415
    FROM RELEASE_TAGS rt
4416
   WHERE rt.RTAG_ID = nRtagId;
5172 dpurdie 4417
 
5384 dpurdie 4418
  BEGIN
4419
    -- Get v_ext
4420
    SELECT pv.V_EXT  INTO  Vext
4421
      FROM PACKAGE_VERSIONS pv
4422
     WHERE pv.PV_ID = nPvId;  
1373 dpurdie 4423
 
5384 dpurdie 4424
    EXCEPTION
4425
        WHEN NO_DATA_FOUND THEN
4426
            Vext := NULL;
4427
  END;   
4428
 
4429
  --Temp Hack for Step Project
4430
  IF ProjId != 281 THEN
4431
    -- Find if package can be edited in this project
4432
      SELECT COUNT(pe.EXT_NAME) INTO RowCount
4433
      FROM PROJECT_EXTENTIONS pe
4434
      WHERE pe.PROJ_ID != ProjId  
4435
        AND pe.EXT_NAME = VExt;
4436
  END IF;   
4437
 
4438
  -- Decide if package can be edited  
4439
  IF RowCount > 0 THEN
4440
    -- Package extension is found in other projects, hence NOT EDITABLE
4441
    RETURN 0;
4442
  ELSE
4443
    RETURN 1; 
4444
  END IF;
1373 dpurdie 4445
 
5384 dpurdie 4446
 
1373 dpurdie 4447
END CAN_EDIT_PKG_IN_PROJECT;
4040 dpurdie 4448
 
1374 dpurdie 4449
/
4040 dpurdie 4450
--------------------------------------------------------
4451
--  DDL for Function DT_ADDUSEROBJECT
4452
--------------------------------------------------------
4453
 
5172 dpurdie 4454
  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;
4040 dpurdie 4455
 
3959 dpurdie 4456
/
4040 dpurdie 4457
--------------------------------------------------------
4458
--  DDL for Function GET_AUTOMATED_LABEL
4459
--------------------------------------------------------
4460
 
5172 dpurdie 4461
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_AUTOMATED_LABEL" ( nPvId IN NUMBER ) RETURN VARCHAR2 IS
3959 dpurdie 4462
 
4463
/* ---------------------------------------------------------------------------
4464
    Version: 3.0.0
4465
   --------------------------------------------------------------------------- */
4466
 
4211 dpurdie 4467
  sPkgName VARCHAR2(4000);
4468
  sPkgVersion VARCHAR2(4000);
4469
  sVext VARCHAR2(4000);
4470
  cChangeType CHAR;
4471
  cBuildType CHAR;
4472
 
3959 dpurdie 4473
 
1373 dpurdie 4474
BEGIN
4475
 
3959 dpurdie 4476
	-- Get package details
4211 dpurdie 4477
	SELECT pkg.PKG_NAME, pv.V_EXT, pv.build_type, pv.change_type, pv.pkg_version INTO sPkgName, sVext,cBuildType, cChangeType, sPkgVersion  
3959 dpurdie 4478
	  FROM PACKAGE_VERSIONS pv,
4479
	  	   PACKAGES pkg
4480
	 WHERE pv.PKG_ID = pkg.PKG_ID
4481
	   AND pv.PV_ID = nPvId;
4482
 
4211 dpurdie 4483
  -- Generate Label for manually built package
4484
  If cBuildType = 'M' Then
4485
    return (sPkgName ||'_'|| sPkgVersion );
4486
  End If;
3959 dpurdie 4487
 
4211 dpurdie 4488
  -- Generate Label for automated build with specified package version
4489
  IF cchangetype = 'F' Then
4490
    return (sPkgName ||'_'|| sPkgVersion ||'.WIP');
4491
  End If;
4492
 
3959 dpurdie 4493
	-- Generate Label for automated build
4494
	RETURN UPPER( sPkgName ||'.'|| nPvId || sVext ||'.WIP' );
4495
 
4496
END GET_AUTOMATED_LABEL;
4040 dpurdie 4497
 
1374 dpurdie 4498
/
4040 dpurdie 4499
--------------------------------------------------------
4500
--  DDL for Function GET_BUILD_NUMBER
4501
--------------------------------------------------------
4502
 
5172 dpurdie 4503
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_BUILD_NUMBER" (s_version IN VARCHAR2) RETURN VARCHAR2
1373 dpurdie 4504
IS
4505
/* ---------------------------------------------------------------------------
4506
    Version: 1.0.0
4507
   --------------------------------------------------------------------------- */
4508
BEGIN
4509
    IF is_number(s_version) AND LENGTH(s_version) > 3
4510
    THEN
4511
        RETURN MOD(TO_NUMBER(s_version), 1000);
4512
    ELSE
4513
        RETURN 0;
4514
    END IF;
4515
END get_build_number;
4040 dpurdie 4516
 
1374 dpurdie 4517
/
4040 dpurdie 4518
--------------------------------------------------------
4519
--  DDL for Function GET_PATCH_VERSION
4520
--------------------------------------------------------
4521
 
5172 dpurdie 4522
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_PATCH_VERSION" (s_version IN VARCHAR2) RETURN VARCHAR2
1373 dpurdie 4523
IS
4524
/* ---------------------------------------------------------------------------
3959 dpurdie 4525
    Version: 1.0.0
1373 dpurdie 4526
   --------------------------------------------------------------------------- */
4527
BEGIN
3959 dpurdie 4528
    IF is_number(s_version) AND LENGTH(s_version) > 3
1373 dpurdie 4529
    THEN
3959 dpurdie 4530
        RETURN FLOOR(TO_NUMBER(s_version) / 1000);
1373 dpurdie 4531
    ELSE
3959 dpurdie 4532
        RETURN s_version;
1373 dpurdie 4533
    END IF;
3959 dpurdie 4534
END get_patch_version;
4040 dpurdie 4535
 
1374 dpurdie 4536
/
4040 dpurdie 4537
--------------------------------------------------------
4538
--  DDL for Function GET_PV_FIRST_MODIFIED
4539
--------------------------------------------------------
4540
 
5172 dpurdie 4541
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" (v_pv_id NUMBER) RETURN DATE IS
3959 dpurdie 4542
  ret DATE;
1373 dpurdie 4543
BEGIN
3959 dpurdie 4544
  SELECT q.modified_stamp
4545
    INTO ret
4546
    FROM (
4547
            SELECT level AS lvl, pvc.pv_id, pvc.modified_stamp, pvc.change_type
4548
              FROM package_versions pvc
4549
              START WITH pvc.pv_id = v_pv_id
4550
            CONNECT BY NOCYCLE pvc.pv_id = PRIOR pvc.last_pv_id
4551
          ) Q
4552
  WHERE q.change_type IS NOT NULL
4553
    AND rownum = 1
4554
  ORDER BY q.lvl;
4555
 
4556
  RETURN ret;
4557
END;
4040 dpurdie 4558
 
1374 dpurdie 4559
/
4040 dpurdie 4560
--------------------------------------------------------
4561
--  DDL for Function GET_V_EXT
4562
--------------------------------------------------------
4563
 
5172 dpurdie 4564
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_V_EXT" (SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE) RETURN VARCHAR2 IS
3959 dpurdie 4565
 
1373 dpurdie 4566
/* ---------------------------------------------------------------------------
3959 dpurdie 4567
    Version: 3.0.0
1373 dpurdie 4568
   --------------------------------------------------------------------------- */
3959 dpurdie 4569
 
4570
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
4571
    lastDot NUMBER;
4572
 
1373 dpurdie 4573
BEGIN
3959 dpurdie 4574
    lastDot := INSTR (SSpkg_version, '.', -1);
4575
 
4576
    IF ( lastDot > 0 ) AND ( lastDot != LENGTH(SSpkg_version) )
1373 dpurdie 4577
    THEN
3959 dpurdie 4578
        -- YES dot separator found --
4579
        SSV_EXT := SUBSTR (SSpkg_version, lastDot, LENGTH(SSpkg_version)-lastDot+1);
4580
 
4581
        IF IS_VERSION_EXTENSION ( SSV_EXT )
4582
        THEN
4583
            RETURN SSV_EXT;
4584
        ELSE
4585
            RETURN NULL;
4586
        END IF;
4587
 
1373 dpurdie 4588
    ELSE
3959 dpurdie 4589
        -- NO dot separator found --
4590
        RETURN NULL;
1373 dpurdie 4591
    END IF;
3959 dpurdie 4592
 
4593
END GET_V_EXT;
4040 dpurdie 4594
 
1374 dpurdie 4595
/
4040 dpurdie 4596
--------------------------------------------------------
4597
--  DDL for Function IN_LIST_NUMBER
4598
--------------------------------------------------------
4599
 
5172 dpurdie 4600
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER" ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS
1373 dpurdie 4601
 
4602
/* ---------------------------------------------------------------------------
4603
    Version: 3.0.0
4604
   --------------------------------------------------------------------------- */
4605
 
4606
    sync_rtags		   RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
4607
	pos				   NUMBER;
3959 dpurdie 4608
	in_list			   VARCHAR2(4000) := sInList || ',';
1373 dpurdie 4609
 
4610
BEGIN
4611
 
4612
	IF NOT sInList IS NULL
4613
	THEN
4614
		LOOP
4615
	        EXIT WHEN in_list IS NULL;
4616
	        pos := INSTR ( in_list, ',' );
4617
	        sync_rtags.extend;
4618
	        sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
4619
	        in_list := SUBSTR ( in_list, pos+1 );
4620
		END LOOP;
4621
	END IF;
4622
 
4623
	RETURN sync_rtags;
3959 dpurdie 4624
END IN_LIST_NUMBER;
4040 dpurdie 4625
 
1374 dpurdie 4626
/
4040 dpurdie 4627
--------------------------------------------------------
4628
--  DDL for Function IN_LIST_NUMBER2
4629
--------------------------------------------------------
4630
 
5172 dpurdie 4631
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER2" ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS
1373 dpurdie 4632
 
4633
/* ---------------------------------------------------------------------------
4634
    Version: 3.0.0
4635
   --------------------------------------------------------------------------- */
4636
 
4637
    sync_rtags		   RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
4638
	pos				   NUMBER;
3959 dpurdie 4639
	in_list			   VARCHAR2(32767) := sInList || ',';
1373 dpurdie 4640
 
4641
BEGIN
4642
 
4643
	IF NOT sInList IS NULL
4644
	THEN
4645
		LOOP
4646
	        EXIT WHEN in_list IS NULL;
4647
	        pos := INSTR ( in_list, ',' );
4648
	        sync_rtags.extend;
4649
	        sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
4650
	        in_list := SUBSTR ( in_list, pos+1 );
4651
		END LOOP;
4652
	END IF;
4653
 
4654
	RETURN sync_rtags;
3959 dpurdie 4655
END IN_LIST_NUMBER2;
4040 dpurdie 4656
 
1374 dpurdie 4657
/
4040 dpurdie 4658
--------------------------------------------------------
4659
--  DDL for Function IN_LIST_VARCHAR2
4660
--------------------------------------------------------
4661
 
5172 dpurdie 4662
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_VARCHAR2" ( sInList IN VARCHAR2, cSeparator IN VARCHAR2 ) RETURN RELMGR_VARCHAR2_TAB_t IS
1373 dpurdie 4663
 
4664
/* ---------------------------------------------------------------------------
4665
    Version: 3.1
4666
   --------------------------------------------------------------------------- */
4667
 
4668
    cItemCollection	   RELMGR_VARCHAR2_TAB_t := RELMGR_VARCHAR2_TAB_t();
4669
	pos				   NUMBER;
4670
	in_list			   VARCHAR2(4000) := sInList || cSeparator;
4671
	val				   VARCHAR2(4000);
4672
 
4673
BEGIN
4674
 
4675
	IF NOT sInList IS NULL
4676
	THEN
4677
		LOOP
4678
	        EXIT WHEN in_list IS NULL;
4679
	        pos := INSTR ( in_list, cSeparator );
4680
			val := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
4681
 
4682
			IF (NOT val IS NULL) THEN
4683
		        cItemCollection.extend;
4684
		        cItemCollection(cItemCollection.count) := val;
4685
			END IF;
4686
 
4687
	        in_list := SUBSTR ( in_list, pos+1 );
4688
		END LOOP;
4689
	END IF;
4690
 
4691
	RETURN cItemCollection;
4692
END IN_LIST_VARCHAR2;
4040 dpurdie 4693
 
1374 dpurdie 4694
/
4040 dpurdie 4695
--------------------------------------------------------
4696
--  DDL for Function IS_NUMBER
4697
--------------------------------------------------------
4698
 
5172 dpurdie 4699
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IS_NUMBER" (p_val IN VARCHAR2) RETURN BOOLEAN
3959 dpurdie 4700
IS
4701
   temp_num NUMBER;
4702
/* ---------------------------------------------------------------------------
4703
    Version: 1.0.0
4704
   --------------------------------------------------------------------------- */
4705
BEGIN
4706
   temp_num := TO_NUMBER(p_val);
4707
   RETURN true;
4708
EXCEPTION WHEN VALUE_ERROR THEN
4709
   RETURN false;
4710
END IS_NUMBER;
4040 dpurdie 4711
 
3959 dpurdie 4712
/
4040 dpurdie 4713
--------------------------------------------------------
4714
--  DDL for Function IS_VERSION_EXTENSION
4715
--------------------------------------------------------
4716
 
5172 dpurdie 4717
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IS_VERSION_EXTENSION" (SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE) RETURN BOOLEAN
3959 dpurdie 4718
IS
4719
/* ---------------------------------------------------------------------------
4720
    Version: 3.0.0
4721
   --------------------------------------------------------------------------- */
1373 dpurdie 4722
 
3959 dpurdie 4723
BEGIN
4724
    IF LENGTH ( TRIM (TRANSLATE (SSV_EXT, '.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',' ') ) ) > 0
4725
    THEN
4726
        RETURN FALSE;
4727
    ELSE
4728
        RETURN TRUE;
4729
    END IF;
1373 dpurdie 4730
 
3959 dpurdie 4731
END IS_VERSION_EXTENSION;
4040 dpurdie 4732
 
1374 dpurdie 4733
/
4040 dpurdie 4734
--------------------------------------------------------
4735
--  DDL for Function ORA_SYSDATE
4736
--------------------------------------------------------
4737
 
5172 dpurdie 4738
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."ORA_SYSDATE" 
3959 dpurdie 4739
RETURN DATE
1373 dpurdie 4740
IS
3959 dpurdie 4741
/* ---------------------------------------------------------------------------
4742
    Version: 3.0.0
4743
   --------------------------------------------------------------------------- */
4744
BEGIN
1373 dpurdie 4745
 
3959 dpurdie 4746
    RETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY' ),'DD-MON-YYYY' );
4747
END ORA_SYSDATE;
4040 dpurdie 4748
 
3959 dpurdie 4749
/
4040 dpurdie 4750
--------------------------------------------------------
4751
--  DDL for Function ORA_SYSDATETIME
4752
--------------------------------------------------------
4753
 
5172 dpurdie 4754
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."ORA_SYSDATETIME" 
3959 dpurdie 4755
RETURN DATE
4756
IS
4757
/* ---------------------------------------------------------------------------
4758
    Version: 3.0.0
4759
   --------------------------------------------------------------------------- */
4760
BEGIN
1373 dpurdie 4761
 
3959 dpurdie 4762
    RETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY HH24:MI:SS' ),'DD-MON-YYYY HH24:MI:SS' );
4763
END ORA_SYSDATETIME;
4040 dpurdie 4764
 
3959 dpurdie 4765
/
4040 dpurdie 4766
--------------------------------------------------------
4767
--  DDL for Function PERL_DBD_TESTFUNC
4768
--------------------------------------------------------
4769
 
5172 dpurdie 4770
  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;
4040 dpurdie 4771
 
1374 dpurdie 4772
/
4040 dpurdie 4773
--------------------------------------------------------
4774
--  DDL for Function RELEASE_MODE
4775
--------------------------------------------------------
4776
 
5172 dpurdie 4777
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."RELEASE_MODE" ( nRtagId IN NUMBER ) RETURN CHAR IS
1373 dpurdie 4778
 
3959 dpurdie 4779
/* ---------------------------------------------------------------------------
4780
    Version: 3.0.0
4781
   --------------------------------------------------------------------------- */
1373 dpurdie 4782
 
3959 dpurdie 4783
   returnValue CHAR(1);
1373 dpurdie 4784
 
3959 dpurdie 4785
BEGIN
1373 dpurdie 4786
 
3959 dpurdie 4787
    /*--------------- Business Rules Here -------------------*/
4788
	/*-------------------------------------------------------*/
4789
 
4790
	-- Get release mode
4791
	SELECT rt.OFFICIAL INTO returnValue
4792
	  FROM RELEASE_TAGS rt
4793
	 WHERE rt.RTAG_ID = nRtagId;
4794
 
4795
	RETURN returnValue;
4796
 
4797
END RELEASE_MODE;
4040 dpurdie 4798
 
1374 dpurdie 4799
/
4040 dpurdie 4800
--------------------------------------------------------
4801
--  DDL for Package PK_APP_UTILS
4802
--------------------------------------------------------
4803
 
5172 dpurdie 4804
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_APP_UTILS" IS
1373 dpurdie 4805
/*
4806
------------------------------
4807
||  Last Modified:  S.Vukovic
4808
||  Modified Date:  26/Apr/2005
4809
||  Spec Version:   1.0
4810
------------------------------
4811
*/
4812
 
4813
	TYPE typeCur IS REF CURSOR;
4814
 
4815
    /*================================================================================================*/
4816
 
4817
	PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur);
4818
 
4819
	/*================================================================================================*/
4820
 
4821
END PK_APP_UTILS;
4040 dpurdie 4822
 
1374 dpurdie 4823
/
4040 dpurdie 4824
--------------------------------------------------------
4825
--  DDL for Package PK_ARCHIVE
4826
--------------------------------------------------------
4827
 
5172 dpurdie 4828
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_ARCHIVE" 
1373 dpurdie 4829
IS
3959 dpurdie 4830
/*
4831
------------------------------
4832
||  Author:  Rupesh Solanki
4833
||  Date:    26 October 2006
4834
||  Version:   1.0
4835
------------------------------
4836
*/
1373 dpurdie 4837
 
3959 dpurdie 4838
   /*================================================================================================*/
4839
   PROCEDURE populate_packages_table;
4840
 
4841
   PROCEDURE populate_archive_data_table (
4842
      nrtagid   IN   release_tags.rtag_id%TYPE
4843
   );
1373 dpurdie 4844
 
3959 dpurdie 4845
   PROCEDURE migrate_pv_to_archive_SCHEMA (nrtagid IN release_tags.rtag_id%TYPE);
1373 dpurdie 4846
 
3959 dpurdie 4847
   PROCEDURE migrate_rtag_to_archive_schema (
4848
      nrtagid   IN   release_tags.rtag_id%TYPE
4849
   );
1373 dpurdie 4850
 
3959 dpurdie 4851
   PROCEDURE clean_up_archive_data_table (
4852
      nrtagid   IN   release_tags.rtag_id%TYPE
4853
   );
1373 dpurdie 4854
 
3959 dpurdie 4855
   PROCEDURE write_action_log (
4856
      nuserid   IN   NUMBER,
4857
      nrtagid   IN   release_tags.rtag_id%TYPE
1373 dpurdie 4858
   );
4859
/*================================================================================================*/
3959 dpurdie 4860
END pk_archive;
4040 dpurdie 4861
 
1374 dpurdie 4862
/
4040 dpurdie 4863
--------------------------------------------------------
4864
--  DDL for Package PK_BUILDAPI
4865
--------------------------------------------------------
4866
 
5172 dpurdie 4867
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_BUILDAPI" 
1373 dpurdie 4868
IS
4869
   /*================================================================================================*/
4870
   PROCEDURE add_product_component (
4871
      npvid           IN   NUMBER,
4872
      sosname         IN   VARCHAR2,
4873
      sorigfilepath   IN   VARCHAR2,
4874
      sfilename       IN   VARCHAR2,
4875
      sdestfilepath   IN   VARCHAR2,
4876
      nbytesize       IN   NUMBER,
4877
      scrccksum       IN   VARCHAR2
4878
   );
4879
 
4880
   PROCEDURE remove_all_product_components (
4881
      npvid     IN   NUMBER,
4882
      sosname   IN   VARCHAR2
4883
   );
4884
 
4885
   /*================================================================================================*/
4886
   FUNCTION get_osid (sosname IN VARCHAR2)
4887
      RETURN NUMBER;
4888
 
4308 dpurdie 4889
  /*================================================================================================*/
4890
    PROCEDURE update_build_service_info (
1373 dpurdie 4891
      sdatabaseserver   IN   VARCHAR2,
4892
      sarchiveserver    IN   VARCHAR2,
4893
      smailserver       IN   VARCHAR2,
4894
      smailsender       IN   VARCHAR2,
4211 dpurdie 4895
      faultmlist        IN   VARCHAR2,
1373 dpurdie 4896
      sdiskspace        IN   VARCHAR2,
4897
      ssbommanagement   IN   VARCHAR2
4898
   );
4899
 
4900
   /*================================================================================================*/
4040 dpurdie 4901
   PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2, sgbeclass IN NUMBER);
1373 dpurdie 4902
 
4903
   /*================================================================================================*/
4904
   PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER);
4905
 
4906
   /*================================================================================================*/
4040 dpurdie 4907
   PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2, sgbeclass IN NUMBER);
1373 dpurdie 4908
 
4040 dpurdie 4909
  /*================================================================================================*/
4910
   PROCEDURE add_buildmachine (sbmvalue IN VARCHAR2);
4911
 
1373 dpurdie 4912
   /*================================================================================================*/
4040 dpurdie 4913
   PROCEDURE remove_buildmachine (nbm_id IN NUMBER);
4914
 
4915
   /*================================================================================================*/
4916
   PROCEDURE update_buildmachine (nbm_id IN NUMBER, sbmvalue IN VARCHAR2);
4917
 
4918
   /*================================================================================================*/
1373 dpurdie 4919
   PROCEDURE delete_daemon (srconidlist IN VARCHAR2);
4308 dpurdie 4920
 
1373 dpurdie 4921
   /*================================================================================================*/
4308 dpurdie 4922
   PROCEDURE remove_daemon (srconidlist IN VARCHAR2);
1373 dpurdie 4923
 
4924
   /*================================================================================================*/
4925
   PROCEDURE insert_schedule_info (
4926
      dschedulepause     IN   DATE,
4927
      dscheduleresume    IN   DATE,
4928
      crepeat            IN   VARCHAR2,
4929
      cindefinitepause   IN   VARCHAR2
4930
   );
4931
 
4932
   /*================================================================================================*/
4933
   PROCEDURE delete_schedule (nscheduleid IN NUMBER);
4934
 
4935
   /*================================================================================================*/
4936
   PROCEDURE set_infinite_pause;
4937
 
4938
   /*================================================================================================*/
4939
   PROCEDURE set_resume;
4940
 
4941
   /*================================================================================================*/
4942
   PROCEDURE delete_out_of_date_schedule;
4943
 
4944
   /*================================================================================================*/
4945
   PROCEDURE set_daemon_resume (nrconid IN NUMBER);
4946
 
4947
   /*================================================================================================*/
4948
   PROCEDURE set_daemon_pause (nrconid IN NUMBER);
4949
 
4950
   /*================================================================================================*/
4951
   PROCEDURE set_daemon_disable (nrconid NUMBER);
4952
 
4953
   /*================================================================================================*/
4954
   PROCEDURE set_daemon_states (nrtagid NUMBER, nstate NUMBER);
4955
 
4956
   /*================================================================================================*/
4957
   PROCEDURE mark_daemon_inst_in_progress( nInstId IN NUMBER );
4958
   /*================================================================================================*/
4959
   PROCEDURE mark_daemon_inst_completed( nInstId IN NUMBER );
4960
   /*================================================================================================*/
4961
   FUNCTION get_daemon_inst(
4962
      nRtag_id IN NUMBER,
4963
      nInst_id IN OUT NUMBER,
4964
      nOp_code IN OUT NUMBER,
4965
      nPv_id OUT NUMBER,
4966
      nUser_id OUT NUMBER,
4967
      nInProgress OUT NUMBER
4968
   ) RETURN NUMBER;
4969
   /*================================================================================================*/
4970
   PROCEDURE cleanup_stranded_daemon_insts;
4971
   /*================================================================================================*/
4972
   PROCEDURE insert_daemon_inst(
4973
      nOp_code IN NUMBER,
4974
      nRtag_id IN NUMBER,
4975
      nPv_id IN NUMBER,
4976
      nSchedDate IN DATE,
4977
      nRepeatSecs IN NUMBER,
4978
      nAddedDate IN DATE,
4979
      nUser_id IN NUMBER
4980
   );
4981
   /*================================================================================================*/
4982
   PROCEDURE del_daemon_inst( nInstId IN NUMBER );
4983
   /*================================================================================================*/
4984
   PROCEDURE del_daemon_inst_by_rtag_pvid(
4985
      nOp_code IN NUMBER,
4986
      nRtag_id IN NUMBER,
4987
      nPv_id IN NUMBER
4988
   );
4989
   /*================================================================================================*/
4990
   PROCEDURE update_daemon_inst(
4991
      nInstId IN NUMBER,
4992
      nOp_code IN NUMBER,
4993
      nRtag_id IN NUMBER,
4994
      nPv_id IN NUMBER,
4995
      nSchedDate IN DATE,
4996
      nRepeatSecs IN NUMBER,
4997
      nAddedDate IN DATE,
4998
      nUser_id IN NUMBER
4999
   );
5000
   /*================================================================================================*/
5001
   FUNCTION daemon_ops_for_rtag_pvid(
5002
      nRtag_id IN NUMBER,
5003
      nPv_id IN NUMBER
5004
   ) RETURN VARCHAR2;
5005
   /*================================================================================================*/
5006
   FUNCTION daemon_ops_for_rtag(
5007
      nRtag_id IN NUMBER
5008
   ) RETURN VARCHAR2;
5009
   /*================================================================================================*/
5010
   PROCEDURE add_daemon_config (
5011
      nrtagid           IN   NUMBER,
5012
      nbmcon_id         IN   NUMBER,
5013
      sdaemon_mode      IN   VARCHAR2,
5014
      sgbebuildfilter   IN   VARCHAR2
5015
   );
5016
   /*================================================================================================*/
5017
   PROCEDURE update_daemon_config (
5018
      nrconid           IN   NUMBER,
5019
      nbmcon_id         IN   NUMBER,
5020
      sdaemon_mode      IN   VARCHAR2,
5021
      sgbebuildfilter   IN   VARCHAR2
5022
   );
5023
 
4308 dpurdie 5024
 /*================================================================================================*/
5025
   PROCEDURE duplicate_daemon_config (
5026
      nrtagid           IN   NUMBER,
5027
      nbmcon_id         IN   NUMBER,
5028
      sdaemonhostname   IN   VARCHAR2,
5029
      ngbe_id           IN   NUMBER,
5030
      sdaemon_mode      IN   VARCHAR2,
5031
      sgbebuildfilter   IN   VARCHAR2
5032
   );
5033
 
1373 dpurdie 5034
   /*================================================================================================*/
5035
   PROCEDURE add_build_machine (
5036
      sdisplay_name          IN   VARCHAR2,
5037
      smachine_hostname      IN   VARCHAR2,
5038
      ngbeid                 IN   NUMBER,
5172 dpurdie 5039
      sdescription           IN   VARCHAR2,
5040
      sactive                IN CHAR
1373 dpurdie 5041
   );
5042
   /*================================================================================================*/
5043
   PROCEDURE delete_build_machine (sbmcon_id_list IN VARCHAR2);
5044
   /*================================================================================================*/
5045
   PROCEDURE update_build_machine (
5046
      nbmcon_id              IN   NUMBER,
5047
      sdisplay_name          IN   VARCHAR2,
5048
      smachine_hostname      IN   VARCHAR2,
5049
      ngbeid                 IN   NUMBER,
5172 dpurdie 5050
      sdescription           IN   VARCHAR2,
5051
      sactive                IN CHAR
1373 dpurdie 5052
   );
4553 dpurdie 5053
   /*================================================================================================*/
5054
   PROCEDURE import_daemons ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER  );
5172 dpurdie 5055
   /*================================================================================================*/
5056
   PROCEDURE set_finite_pause (
5057
      duration IN NUMBER
5058
   );
5059
 
1373 dpurdie 5060
END pk_buildapi;
4040 dpurdie 5061
 
1374 dpurdie 5062
/
4040 dpurdie 5063
--------------------------------------------------------
5064
--  DDL for Package PK_ENVIRONMENT
5065
--------------------------------------------------------
5066
 
5172 dpurdie 5067
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_ENVIRONMENT" IS
1373 dpurdie 5068
/*
5069
------------------------------
3959 dpurdie 5070
||  Last Modified:  G.Huddy
5071
||  Modified Date:  28/May/2008
5072
||  Spec Version:   1.2
1373 dpurdie 5073
------------------------------
5074
*/
5075
 
3959 dpurdie 5076
	TYPE typeCur IS REF CURSOR;
5077
 
1373 dpurdie 5078
	/*================================================================================================*/
5079
 
3959 dpurdie 5080
	FUNCTION SELECT_ENVIRONMENT_AREA ( cDlock IN PACKAGE_VERSIONS.DLOCKED%TYPE ) RETURN NUMBER;
5081
	FUNCTION GET_PACKAGE_AREA ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5082
	FUNCTION GET_VIEW_LOCATION ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5384 dpurdie 5083
	PROCEDURE ADD_PACKAGE ( PvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, imode IN   CHAR default NULL );
5084
	PROCEDURE ADD_PACKAGE_BULK ( PvIdList IN VARCHAR2, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, imode IN CHAR default NULL );
3959 dpurdie 5085
	PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5086
	FUNCTION REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, ForceRemove IN CHAR ) RETURN NUMBER;
5087
 
5088
	PROCEDURE GET_ENVIRONMENT_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5089
	PROCEDURE GET_RELEASED_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5090
	PROCEDURE GET_PENDING_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5091
	PROCEDURE GET_WORK_IN_PROGRESS_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5092
 
5093
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
5094
 
5095
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5096
 
5097
 
5098
	PROCEDURE MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5099
	PROCEDURE MAKE_UNRELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5100
 
5101
	PROCEDURE MAKE_PENDING ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5102
	PROCEDURE MAKE_APPROVED ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5103
	PROCEDURE MAKE_REJECT ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5104
	PROCEDURE APPROVE_MERGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5105
 
5106
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
5107
 
5108
	PROCEDURE FIND_PACKAGE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, RecordSet OUT typeCur );
5109
	PROCEDURE FIND_FILE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, nPageSize IN NUMBER, RecordSet OUT typeCur );
5110
 
5111
	PROCEDURE AUTO_MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, VExt IN
5112
							 PACKAGE_VERSIONS.V_EXT%TYPE, SSV_EXT IN PACKAGE_VERSIONS.V_EXT%TYPE,
5113
							 CloneFromPvId IN NUMBER );
5114
 
5115
	PROCEDURE GET_PRODRELEASE_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5116
 
5117
	PROCEDURE GET_INTEGRATION_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5118
 
5119
	PROCEDURE GET_TEST_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5120
 
5121
	PROCEDURE GET_DEPLOY_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5122
 
5123
	PROCEDURE GET_REJECT_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
1373 dpurdie 5124
	/*================================================================================================*/
3959 dpurdie 5125
 
5126
END PK_ENVIRONMENT;
4040 dpurdie 5127
 
1374 dpurdie 5128
/
4040 dpurdie 5129
--------------------------------------------------------
5130
--  DDL for Package PK_LICENCING
5131
--------------------------------------------------------
5132
 
5172 dpurdie 5133
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_LICENCING" IS
3959 dpurdie 5134
/*
5135
------------------------------
5136
||  Last Modified:  G.Huddy
5137
||  Modified Date:  19/Aug/2008
5138
||  Spec Version:   1.0
5139
------------------------------
5140
*/
5141
 
5142
   TYPE typeCur IS REF CURSOR;
5143
 
5144
    /*================================================================================================*/
5145
   PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER );
5146
   PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER );
5147
   PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER );
5148
   FUNCTION  IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER;
5149
   PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER );
5150
   /*================================================================================================*/
5151
 
5152
END PK_LICENCING;
4040 dpurdie 5153
 
3959 dpurdie 5154
/
4040 dpurdie 5155
--------------------------------------------------------
5156
--  DDL for Package PK_PACKAGE
5157
--------------------------------------------------------
5158
 
5172 dpurdie 5159
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PACKAGE" 
1373 dpurdie 5160
IS
5161
/*
5162
------------------------------
3959 dpurdie 5163
||  Last Modified:  Jeremy Tweddle
5164
||  Modified Date:  24/08/2007
1373 dpurdie 5165
||
5166
------------------------------
5167
*/
5168
   TYPE typecur IS REF CURSOR;
5169
 
5170
/*================================================================================================*/
5171
   PROCEDURE new_version (
5172
      nlastpvid                   IN       NUMBER,
5173
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
5174
      cbuildtype                  IN       CHAR,
4211 dpurdie 5175
      cchangetype                 IN       CHAR,
1373 dpurdie 5176
      nsettopvid                  IN       NUMBER DEFAULT NULL,
5177
      nrtagid                     IN       NUMBER,
5178
      nuserid                     IN       NUMBER,
5179
      enumissues_state_imported   IN       NUMBER,
5180
      returnpvid                  OUT      NUMBER
5181
   );
5182
 
5183
   PROCEDURE change_state (
5184
      pvid       IN   NUMBER,
5185
      newstate   IN   package_versions.dlocked%TYPE,
5186
      userid     IN   NUMBER
5187
   );
5188
 
5189
   PROCEDURE new_patch (
5190
      snewpatchversion   IN       package_versions.pkg_version%TYPE,
5191
      nparentpvid        IN       NUMBER,
5192
      spatchidlist       IN       VARCHAR2,
5193
      nuserid            IN       NUMBER,
5194
      returnpatchid      OUT      NUMBER
5195
   );
5196
 
5197
   PROCEDURE obsolete_patch (
5198
      patchid            IN   NUMBER,
5199
      isobsolete         IN   CHAR,
5200
      obsoletecomments   IN   VARCHAR2,
5201
      userid             IN   NUMBER
5202
   );
5203
 
5204
   PROCEDURE obsolete_patches (
5205
      spatchidlist       IN   VARCHAR2,
5206
      isobsolete         IN   CHAR,
5207
      obsoletecomments   IN   VARCHAR2,
5208
      userid             IN   NUMBER
5209
   );
5210
 
5211
   PROCEDURE destroy_package (
5212
      pvid               IN       NUMBER,
5213
      overridewarnings   IN       CHAR DEFAULT 'N',
5214
      problemstring      OUT      VARCHAR2
5215
   );
5216
 
5217
   PROCEDURE add_process (
5218
      nprocid         IN   processes.proc_id%TYPE,
5219
      shealthtag      IN   processes.proc_name%TYPE,
5220
      sprocdesc       IN   processes.proc_description%TYPE,
5221
      scmdinterface   IN   processes.run_as%TYPE,
5222
      spkgowner       IN   processes.pkg_owner%TYPE,
5223
      sisinterface    IN   processes.is_interface%TYPE,
5224
      npvid           IN   package_processes.pv_id%TYPE,
5225
      nuserid         IN   NUMBER
5226
   );
5227
 
5228
   PROCEDURE add_package_process (
5229
      nprocidlist   IN   VARCHAR2,
5230
      npvid         IN   package_processes.pv_id%TYPE,
5231
      nuserid       IN   NUMBER
5232
   );
5233
 
5234
 
5235
 
5236
   PROCEDURE remove_process (
5237
      nprocid   IN   package_processes.proc_id%TYPE,
5238
      npvid     IN   package_processes.pv_id%TYPE,
5239
      nuserid   IN   NUMBER
5240
   );
5241
 
5242
   PROCEDURE move_package (
5243
   	  npvid  			  IN package_versions.pv_id%TYPE,
5244
	  nrtagid 			  IN release_tags.rtag_id%TYPE,
5245
	  nnewrtagid 		  IN release_tags.rtag_id%TYPE,
5246
	  nuserid			  IN NUMBER		 
5247
   ); 
5248
 
3959 dpurdie 5249
   PROCEDURE modify_product_state (
1373 dpurdie 5250
   	  npvid IN package_versions.pv_id%TYPE,
3959 dpurdie 5251
	  nrtagid IN release_tags.rtag_id%TYPE,
1373 dpurdie 5252
	  nstateid IN product_states.state_id%TYPE,
5253
	  nuserid IN NUMBER
5254
   );
3959 dpurdie 5255
 
5256
   PROCEDURE add_code_review_url (
5257
        npvid           IN    NUMBER,
5258
        nprojid         IN    NUMBER,
5259
        surl            IN    VARCHAR2,
5260
        sreason         IN    VARCHAR2,
4553 dpurdie 5261
        ddateofreview   IN    VARCHAR2
3959 dpurdie 5262
   );
5263
 
5264
   PROCEDURE update_code_review_url (
5265
        ncrid           IN    NUMBER,
5266
        nprojid         IN    NUMBER,
5267
        surl            IN    VARCHAR2,
4553 dpurdie 5268
        sreason         IN    VARCHAR2,
5269
        ddateofreview   IN    VARCHAR2
3959 dpurdie 5270
   );
5271
 
5272
   PROCEDURE remove_code_review_url (
5273
        ncrid           IN    NUMBER
5274
   );
1373 dpurdie 5275
/*================================================================================================*/
3959 dpurdie 5276
END pk_package;
4040 dpurdie 5277
 
1374 dpurdie 5278
/
4040 dpurdie 5279
--------------------------------------------------------
5280
--  DDL for Package PK_PLANNED
5281
--------------------------------------------------------
5282
 
5172 dpurdie 5283
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PLANNED" IS
1373 dpurdie 5284
/*
5285
------------------------------
5286
||  Last Modified:  G.Huddy
5287
||  Modified Date:  28/May/2008
5288
||  Spec Version:   1.1
5289
------------------------------
5290
*/
5291
 
5292
	TYPE typeCur IS REF CURSOR;
5293
 
5294
    /*================================================================================================*/
5384 dpurdie 5295
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, OPR IN CHAR DEFAULT 'R'  );
1373 dpurdie 5296
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5297
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5298
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
5299
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
5300
	PROCEDURE MERGE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, mergeOperation IN CHAR);
5301
	/*================================================================================================*/
5302
 
5303
END PK_PLANNED;
4040 dpurdie 5304
 
1374 dpurdie 5305
/
4040 dpurdie 5306
--------------------------------------------------------
5307
--  DDL for Package PK_PROJECT
5308
--------------------------------------------------------
5309
 
5172 dpurdie 5310
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PROJECT" IS
1373 dpurdie 5311
 
3959 dpurdie 5312
    TYPE typecur IS REF CURSOR;
1373 dpurdie 5313
 
3959 dpurdie 5314
    /*------------------------------------------------------------------------*/
5315
    PROCEDURE update_base_url (
5316
        nprojid   IN  projects.proj_id%TYPE,
5317
        sbaseurl  IN  VARCHAR2
5318
    );
5319
    /*------------------------------------------------------------------------*/
5320
    PROCEDURE update_project_config (
5321
    nprojid   IN  projects.proj_id%TYPE,
5322
    sbaseurl  IN  VARCHAR2,
5323
    sjirakey  IN  VARCHAR2
5324
    );
5325
    /*------------------------------------------------------------------------*/
1373 dpurdie 5326
 
3959 dpurdie 5327
    END pk_project;
4040 dpurdie 5328
 
1374 dpurdie 5329
/
4040 dpurdie 5330
--------------------------------------------------------
5331
--  DDL for Package PK_RELEASE
5332
--------------------------------------------------------
5333
 
5172 dpurdie 5334
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_RELEASE" IS
1373 dpurdie 5335
/*
5336
------------------------------
5337
||  Last Modified:  S.Vukovic
5338
||  Modified Date:  12/Sep/2005
5339
||  Body Version:   3.0
5340
------------------------------
5341
*/
5342
 
5343
	TYPE typeCur IS REF CURSOR;
5344
 
5345
    /*================================================================================================*/
5346
	PROCEDURE New_Release ( sReleaseName IN VARCHAR2, sReleaseComments IN VARCHAR2, nProjId IN NUMBER, nSourceRtagId IN NUMBER, sIsBranched IN CHAR, nUserId IN NUMBER );
5384 dpurdie 5347
	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 5348
	PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER  );
5349
	PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER );
5350
	PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER );
5351
	PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER );
5352
	FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR ) RETURN NUMBER;
5353
	PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER );
5354
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );								 
5355
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5356
	--PROCEDURE ADD_DEPRECATE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, nPkgId IN NUMBER );
5357
	PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5358
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5359
	PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5360
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5361
	PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER );
5362
	PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER );
5363
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
5364
	PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 );
5365
	PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER );
5366
	PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR );
5172 dpurdie 5367
  PROCEDURE SET_RELEASE_MODIFIED (nRtagId IN NUMBER );
5368
  PROCEDURE ADD_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER, nUserId IN NUMBER, bDelete IN  NUMBER, nInsertCount OUT NUMBER, curReturn OUT typeCur );
5369
  PROCEDURE REMOVE_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER );
5370
  FUNCTION CAN_ADD_PKG_TO_RELEASE ( nRtagId IN NUMBER, nPvid in NUMBER ) RETURN NUMBER;
1373 dpurdie 5371
 
5372
	/*================================================================================================*/
5384 dpurdie 5373
 
1373 dpurdie 5374
END PK_RELEASE;
4040 dpurdie 5375
 
1374 dpurdie 5376
/
4040 dpurdie 5377
--------------------------------------------------------
5378
--  DDL for Package PK_RMAPI
5379
--------------------------------------------------------
5380
 
5172 dpurdie 5381
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_RMAPI" 
3959 dpurdie 5382
IS
5383
   TYPE typecur IS REF CURSOR;
1373 dpurdie 5384
 
3959 dpurdie 5385
   FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)
5386
      RETURN typecur;
1373 dpurdie 5387
 
3959 dpurdie 5388
   FUNCTION wip_iteration_package (
5389
      projname        VARCHAR2,
5390
      iterationname   VARCHAR2,
5391
      pkgname         VARCHAR2
5392
   )
5393
      RETURN typecur;
1373 dpurdie 5394
 
3959 dpurdie 5395
   FUNCTION auto_make_vcsrelease (
5396
      rtagid                   IN   NUMBER,
5397
      pkgname                  IN   VARCHAR2,
5398
      vext                     IN   VARCHAR2,
5399
      newpkgversion            IN   VARCHAR2,
5400
      vcstag                   IN   VARCHAR2,
5401
      dependenciesimportlist   IN   VARCHAR2,
5402
      isrippled                IN   NUMBER,
5403
      username                 IN   VARCHAR2
5404
   )
5405
      RETURN NUMBER;
1373 dpurdie 5406
 
5407
 
3959 dpurdie 5408
   PROCEDURE import_dependencies (
5409
      pvid                     IN   NUMBER,
5410
      dependenciesimportlist   IN   VARCHAR2,
5411
      userid                   IN   NUMBER
5412
   );
1373 dpurdie 5413
 
3959 dpurdie 5414
   FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)
5415
      RETURN VARCHAR2;
1373 dpurdie 5416
 
3959 dpurdie 5417
   FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)
5418
      RETURN VARCHAR2;
1373 dpurdie 5419
 
3959 dpurdie 5420
   PROCEDURE update_dash_board (rtagid IN NUMBER);
1373 dpurdie 5421
 
3959 dpurdie 5422
   FUNCTION exclude_from_build (
5423
      pvid          IN   NUMBER,
5424
      spkgversion   IN   VARCHAR2,
5425
      rtagid        IN   NUMBER,
5426
      username      IN   VARCHAR2
5427
   )
5428
      RETURN NUMBER;
1373 dpurdie 5429
 
3959 dpurdie 5430
   FUNCTION exclude_indirect_from_build (
5431
      pvid          IN   NUMBER,
5432
      spkgversion   IN   VARCHAR2,
5433
      rtagid        IN   NUMBER,
5434
      username      IN   VARCHAR2,
5435
      rootpvid      IN   NUMBER,
5436
      rootcause     IN   VARCHAR2,
5437
      rootfile      IN   VARCHAR2
5438
   )
5439
      RETURN NUMBER;
1373 dpurdie 5440
 
3959 dpurdie 5441
   PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2);
1373 dpurdie 5442
 
3959 dpurdie 5443
   FUNCTION insert_package_metrics (
5444
      rtagid IN NUMBER,
5445
      pkgname IN VARCHAR2,
5446
      vext IN VARCHAR2,
5447
      metricstring IN VARCHAR2
5448
   )
5449
      RETURN NUMBER;
1373 dpurdie 5450
 
3959 dpurdie 5451
   PROCEDURE update_release_metrics (rtagid IN NUMBER);
1373 dpurdie 5452
 
3959 dpurdie 5453
   FUNCTION return_vcs_tag(pvid IN NUMBER) RETURN VARCHAR2;
5454
 
5455
   PROCEDURE update_vcs_details(ipv_id IN NUMBER, vcstag IN VARCHAR2, user_id IN NUMBER);
5456
 
5457
   FUNCTION isSVN( pkgid IN NUMBER ) RETURN NUMBER;
5458
 
5459
   FUNCTION isSVNbyName( pkgname IN VARCHAR2 ) RETURN NUMBER;
5460
 
5172 dpurdie 5461
   FUNCTION new_build_instance( rtag_id IN NUMBER, pv_id IN NUMBER, reason IN CHAR ) return NUMBER;
5462
 
5463
   FUNCTION update_build_instance( nbuild_id IN NUMBER, npv_id IN NUMBER default null, nstate IN CHAR default null ) return NUMBER;
5464
 
5465
   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;
5466
 
5467
 
3959 dpurdie 5468
END pk_rmapi;
4040 dpurdie 5469
 
1374 dpurdie 5470
/
4040 dpurdie 5471
--------------------------------------------------------
5472
--  DDL for Package PK_WORK_IN_PROGRESS
5473
--------------------------------------------------------
5474
 
5172 dpurdie 5475
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS
1373 dpurdie 5476
/*
5477
------------------------------
5478
||  Last Modified:  S.Vukovic
3959 dpurdie 5479
||  Modified Date:  2/May/2005
5480
||  Spec Version:   1.0
1373 dpurdie 5481
------------------------------
5482
*/
5483
 
5484
	TYPE typeCur IS REF CURSOR;
5485
 
5486
    /*================================================================================================*/
5487
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5488
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
3959 dpurdie 5489
	PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER );
5490
 
1373 dpurdie 5491
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
3959 dpurdie 5492
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );	
1373 dpurdie 5493
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
5494
	/*================================================================================================*/
3959 dpurdie 5495
 
5496
END PK_WORK_IN_PROGRESS;
4040 dpurdie 5497
 
1374 dpurdie 5498
/
4040 dpurdie 5499
--------------------------------------------------------
5500
--  DDL for Package RM_ISSUES
5501
--------------------------------------------------------
5502
 
5172 dpurdie 5503
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."RM_ISSUES" AS
1373 dpurdie 5504
 
3959 dpurdie 5505
	TYPE T_Cur IS REF CURSOR;
1373 dpurdie 5506
 
3959 dpurdie 5507
	FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;
5508
	FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBER;
5509
	FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;
5510
	FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBER;
1373 dpurdie 5511
 
3959 dpurdie 5512
	PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );
5513
	PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );
5514
	PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 );
1373 dpurdie 5515
 
3959 dpurdie 5516
END Rm_Issues;
4040 dpurdie 5517
 
3959 dpurdie 5518
/
4040 dpurdie 5519
--------------------------------------------------------
5520
--  DDL for Package Body PK_APP_UTILS
5521
--------------------------------------------------------
5522
 
5172 dpurdie 5523
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_APP_UTILS" IS
1373 dpurdie 5524
 
3959 dpurdie 5525
/*
5526
------------------------------
5527
||  Last Modified:  S.Vukovic
5528
||  Modified Date:  26/Apr/2005
5529
||  Body Version:   1.0
5530
------------------------------
5531
*/
1373 dpurdie 5532
 
5533
 
5534
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5535
PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur)   IS
1373 dpurdie 5536
 
5537
 
5538
BEGIN
5539
 
5540
 
3959 dpurdie 5541
	IF (NOT RtagId IS NULL) THEN
5542
		-- Case with RTAG_ID present
5543
		OPEN records FOR
5544
		SELECT rt.PROJ_ID,
5545
			   rt.RTAG_ID AS RTAG_ID
5546
		  FROM RELEASE_TAGS rt
5547
		 WHERE rt.RTAG_ID = TO_NUMBER(RtagId);
1373 dpurdie 5548
 
3959 dpurdie 5549
	ELSIF (NOT ProjId IS NULL) THEN
5550
		-- Case with PROJ_ID present
5551
		OPEN records FOR
5552
		SELECT TO_NUMBER(ProjId) AS PROJ_ID,
5553
			   -1 AS RTAG_ID
5554
		  FROM DUAL;
1373 dpurdie 5555
 
3959 dpurdie 5556
	ELSE
5557
		-- Case with none present
5558
		OPEN records FOR
5559
		SELECT -1 AS PROJ_ID,
5560
			   -1 AS RTAG_ID
5561
		  FROM DUAL;
1373 dpurdie 5562
 
3959 dpurdie 5563
	END IF;
1373 dpurdie 5564
 
5565
 
5566
 
5567
 
3959 dpurdie 5568
   	--RETURN records;
1373 dpurdie 5569
 
5570
END;
5571
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5572
END PK_APP_UTILS;
4040 dpurdie 5573
 
1374 dpurdie 5574
/
4040 dpurdie 5575
--------------------------------------------------------
5576
--  DDL for Package Body PK_ARCHIVE
5577
--------------------------------------------------------
5578
 
5172 dpurdie 5579
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_ARCHIVE" 
1373 dpurdie 5580
IS
3959 dpurdie 5581
/*
5582
------------------------------
5583
||  Author:  Rupesh Solanki
5584
||  Date:    26 October 2006
5585
||  Version:   1.0
5586
------------------------------
5587
*/
5588
/*---------------------------*/
5589
PROCEDURE populate_packages_table IS
1373 dpurdie 5590
 
3959 dpurdie 5591
BEGIN
5592
		  INSERT INTO archive_manager.PACKAGES
5593
		  (
5594
		  select * from packages where pkg_id not in 
5595
		  		  (select pkg_id from archive_manager.packages)
5596
		  );
1373 dpurdie 5597
 
3959 dpurdie 5598
          INSERT INTO archive_manager.PROCESSES
5599
          (
5600
          select * from processes where proc_id not in 
5601
            (select proc_id from archive_manager.processes)
5602
          );
5603
 
1373 dpurdie 5604
 
5605
 
3959 dpurdie 5606
END;
1373 dpurdie 5607
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5608
   PROCEDURE populate_archive_data_table (
5609
      nrtagid   IN   release_tags.rtag_id%TYPE
1373 dpurdie 5610
   )
5611
   IS
3959 dpurdie 5612
/*
5613
Reason: To populate the archive_data table with information regarding the
5614
         number of package versions that exist in other releases.
5615
*/
5616
      numcount      NUMBER;
5617
      numusedby     NUMBER;
5618
      numruntime    NUMBER;
5619
 
5620
      /* Get all the package versions in the release */
5621
      CURSOR archive_cur
5622
      IS
5623
         SELECT pv_id
5624
           FROM release_content
5625
          WHERE rtag_id = nrtagid;
5626
 
5627
      archive_rec   archive_cur%ROWTYPE;
1373 dpurdie 5628
   BEGIN
3959 dpurdie 5629
/*--------------- Business Rules Here -------------------*/
5630
/*-------------------------------------------------------*/
5631
      OPEN archive_cur;
1373 dpurdie 5632
 
3959 dpurdie 5633
      FETCH archive_cur
5634
       INTO archive_rec;
5635
 
5636
      WHILE archive_cur%FOUND
5637
      LOOP
5638
        /* How many packages depend on this package version? */
5639
         SELECT COUNT (*)
5640
           INTO numusedby
5641
           FROM package_dependencies
5642
          WHERE dpv_id = archive_rec.pv_id;
5643
 
5644
        /* How many project releases use this package version?  */
5645
         SELECT COUNT (*)
5646
           INTO numcount
5647
           FROM release_content
5648
          WHERE pv_id = archive_rec.pv_id;
5649
 
5650
        /* How many packages have this package version as runtime
5651
        dependency? */
5652
         SELECT COUNT (*)
5653
           INTO numruntime
5654
           FROM runtime_dependencies
5655
          WHERE rtd_id = archive_rec.pv_id;
5656
 
5657
        /* Insert into the archive_data table if they are not runtime dependant
5658
        and package dependant and they exist in that particular release only*/
5659
         IF numusedby = 0 AND numcount = 1 AND numruntime = 0
1373 dpurdie 5660
         THEN
3959 dpurdie 5661
            INSERT INTO archive_data
5662
                        (rtag_id, pv_id
5663
                        )
5664
                 VALUES (nrtagid, archive_rec.pv_id
5665
                        );
1373 dpurdie 5666
         END IF;
5667
 
3959 dpurdie 5668
         FETCH archive_cur
5669
          INTO archive_rec;
5670
      END LOOP;
1373 dpurdie 5671
   END;
5672
 
5673
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5674
   PROCEDURE migrate_pv_to_archive_schema (
5675
      nrtagid   IN   release_tags.rtag_id%TYPE
1373 dpurdie 5676
   )
5677
   IS
5678
   BEGIN
5679
 
3959 dpurdie 5680
      /* MIGRATION - PACKAGE_VERSIONS */
5681
      INSERT INTO archive_manager.package_versions
5682
         SELECT *
5683
           FROM package_versions
5684
          WHERE pv_id IN (SELECT pv_id
5685
                            FROM archive_data);
1373 dpurdie 5686
 
3959 dpurdie 5687
      /* MIGRATION - PACKAGE_BUILD_ENV */
5688
      INSERT INTO archive_manager.package_build_env
5689
         SELECT *
5690
           FROM package_build_env
5691
          WHERE pv_id IN (SELECT pv_id
5692
                            FROM archive_data);
1373 dpurdie 5693
 
3959 dpurdie 5694
      /* PURGE DATA FROM PACKAGE_BUILD_ENV */
5695
      DELETE FROM package_build_env
5696
            WHERE pv_id IN (SELECT pv_id
5697
                              FROM archive_data);
1373 dpurdie 5698
 
3959 dpurdie 5699
      /* MIGRATION - PACKAGE_BUILD_INFO */
5700
      INSERT INTO archive_manager.package_build_info
5701
         SELECT *
5702
           FROM package_build_info
5703
          WHERE pv_id IN (SELECT pv_id
5704
                            FROM archive_data);
1373 dpurdie 5705
 
3959 dpurdie 5706
      /* PURGE DATA FROM PACKAGE_BUILD_info */
5707
      DELETE FROM package_build_info
5708
            WHERE pv_id IN (SELECT pv_id
5709
                              FROM archive_data);							  
1373 dpurdie 5710
 
3959 dpurdie 5711
      /* MIGRATION - UNIT_TESTS  */
5712
      INSERT INTO archive_manager.unit_tests
5713
         SELECT *
5714
           FROM unit_tests
5715
          WHERE pv_id IN (SELECT pv_id
5716
                            FROM archive_data);
1373 dpurdie 5717
 
3959 dpurdie 5718
      /* PURGE DATA FROM UNIT_TESTS*/
5719
      DELETE FROM unit_tests
5720
            WHERE pv_id IN (SELECT pv_id
5721
                              FROM archive_data);
1373 dpurdie 5722
 
3959 dpurdie 5723
      /* MIGRATION - PACKAGE_PROCESSES */
5724
      INSERT INTO archive_manager.package_processes
5725
         SELECT *
5726
           FROM package_processes
5727
          WHERE pv_id IN (SELECT pv_id
5728
                            FROM archive_data);
1373 dpurdie 5729
 
3959 dpurdie 5730
      /* PURGE DATA FROM PACKAGE_PROCESSES*/
5731
      DELETE FROM package_processes
5732
            WHERE pv_id IN (SELECT pv_id
5733
                              FROM archive_data);
1373 dpurdie 5734
 
3959 dpurdie 5735
      /* MIGRATION - PACKAGE_DEPENDENCIES */
5736
      INSERT INTO archive_manager.package_dependencies
5737
         SELECT *
5738
           FROM package_dependencies
5739
          WHERE pv_id IN (SELECT pv_id
5740
                            FROM archive_data);
2735 dpurdie 5741
 
3959 dpurdie 5742
      /* PURGE DATA FROM PACKAGE_DEPENDENCIES*/
5743
      DELETE FROM package_dependencies
5744
            WHERE pv_id IN (SELECT pv_id
5745
                              FROM archive_data);
1373 dpurdie 5746
 
3959 dpurdie 5747
      /* MIGRATION - CODE_REVIEWS */
5748
      INSERT INTO archive_manager.code_reviews
5749
         SELECT *
5750
           FROM code_reviews
5751
          WHERE pv_id IN (SELECT pv_id
5752
                            FROM archive_data);
1373 dpurdie 5753
 
3959 dpurdie 5754
      /* PURGE DATA FROM CODE_REVIEWS*/
5755
      DELETE FROM code_reviews
5756
            WHERE pv_id IN (SELECT pv_id
5757
                              FROM archive_data);
1373 dpurdie 5758
 
3959 dpurdie 5759
      /* MIGRATION - RUNTIME_DEPENDENCIES*/
5760
      INSERT INTO archive_manager.runtime_dependencies
5761
         SELECT *
5762
           FROM runtime_dependencies
5763
          WHERE pv_id IN (SELECT pv_id
5764
                            FROM archive_data);
1373 dpurdie 5765
 
3959 dpurdie 5766
      /* PURGE DATA FROM RUNTIME_DEPENDENCIES*/
5767
      DELETE FROM runtime_dependencies
5768
            WHERE pv_id IN (SELECT pv_id
5769
                              FROM archive_data);
1373 dpurdie 5770
 
3959 dpurdie 5771
      /* MIGRATION - PACKAGE_DOCUMENTS */
5772
      INSERT INTO archive_manager.package_documents
5773
         SELECT *
5774
           FROM package_documents
5775
          WHERE pv_id IN (SELECT pv_id
5776
                            FROM archive_data);
1373 dpurdie 5777
 
3959 dpurdie 5778
      /* PURGE DATA FROM PACKAGE_DOCUMENTS*/
5779
      DELETE FROM package_documents
5780
            WHERE pv_id IN (SELECT pv_id
5781
                              FROM archive_data);
1373 dpurdie 5782
 
3959 dpurdie 5783
      /* MIGRATION - PACKAGE_PATCHES */
5784
      INSERT INTO archive_manager.package_patches
5785
         SELECT *
5786
           FROM package_patches
5787
          WHERE pv_id IN (SELECT pv_id
5788
                            FROM archive_data);
1373 dpurdie 5789
 
3959 dpurdie 5790
      /* PURGE DATA FROM PACKAGE_PATCHES*/
5791
      DELETE FROM package_patches
5792
            WHERE pv_id IN (SELECT pv_id
5793
                              FROM archive_data);
1373 dpurdie 5794
 
3959 dpurdie 5795
      /* MIGRATION - CQ_ISSUES */
5796
      INSERT INTO archive_manager.cq_issues
5797
         SELECT *
5798
           FROM cq_issues
5799
          WHERE pv_id IN (SELECT pv_id
5800
                            FROM archive_data);
1373 dpurdie 5801
 
3959 dpurdie 5802
      /* PURGE DATA FROM CQ_ISSUES*/
5803
      DELETE FROM cq_issues
5804
            WHERE pv_id IN (SELECT pv_id
5805
                              FROM archive_data);
1373 dpurdie 5806
 
3959 dpurdie 5807
      /* MIGRATION - ADDITIONAL_NOTES */
5808
      INSERT INTO archive_manager.additional_notes
5809
         SELECT *
5810
           FROM additional_notes
5811
          WHERE pv_id IN (SELECT pv_id
5812
                            FROM archive_data);
1373 dpurdie 5813
 
3959 dpurdie 5814
      /* PURGE DATA FROM ADDITIONAL_NOTES*/
5815
      DELETE FROM additional_notes
5816
            WHERE pv_id IN (SELECT pv_id
5817
                              FROM archive_data);
1373 dpurdie 5818
 
3959 dpurdie 5819
      /* MIGRATION - RELEASE_COMPONENTS */
5820
      INSERT INTO archive_manager.release_components
5821
         SELECT *
5822
           FROM release_components
5823
          WHERE pv_id IN (SELECT pv_id
5824
                            FROM archive_data);
1373 dpurdie 5825
 
3959 dpurdie 5826
      /* PURGE DATA FROM RELEASE_COMPONENTS*/
5827
      DELETE FROM release_components
5828
            WHERE pv_id IN (SELECT pv_id
5829
                              FROM archive_data);
1373 dpurdie 5830
 
3959 dpurdie 5831
      /* MIGRATION - IGNORE_WARNINGS */
5832
      INSERT INTO archive_manager.ignore_warnings
5833
         SELECT *
5834
           FROM ignore_warnings
5835
          WHERE pv_id IN (SELECT pv_id
5836
                            FROM archive_data);
1374 dpurdie 5837
 
3959 dpurdie 5838
      /* PURGE DATA FROM IGNORE_WARNINGS*/
5839
      DELETE FROM ignore_warnings
5840
            WHERE pv_id IN (SELECT pv_id
5841
                              FROM archive_data);
1373 dpurdie 5842
 
3959 dpurdie 5843
      /* PURGE DATA FROM WORK_IN_PROGRESS */
5844
      DELETE FROM work_in_progress
5845
            WHERE rtag_id = nrtagid;
1374 dpurdie 5846
 
3959 dpurdie 5847
      /* PURGE DATA FROM PLANNED */
5848
      DELETE FROM planned
5849
            WHERE rtag_id = nrtagid;
1373 dpurdie 5850
 
3959 dpurdie 5851
      /* MIGRATION - JIRA_ISSUES */
5852
      INSERT INTO archive_manager.jira_issues
5853
         SELECT *
5854
           FROM jira_issues
5855
          WHERE pv_id IN (SELECT pv_id
5856
                            FROM archive_data);
1373 dpurdie 5857
 
3959 dpurdie 5858
      /* PURGE DATA FROM JIRA_ISSUES*/
5859
      DELETE FROM jira_issues
5860
            WHERE pv_id IN (SELECT pv_id
5861
                              FROM archive_data);
1373 dpurdie 5862
 
3959 dpurdie 5863
      /* MIGRATION - PRODUCT_COMPONENTS */
5864
      INSERT INTO archive_manager.product_components
5865
         SELECT *
5866
           FROM product_components
5867
          WHERE pv_id IN (SELECT pv_id
5868
                            FROM archive_data);
1373 dpurdie 5869
 
3959 dpurdie 5870
      /* PURGE DATA FROM PRODUCT_COMPONENTS*/
5871
      DELETE FROM product_components
5872
            WHERE pv_id IN (SELECT pv_id
5873
                              FROM archive_data);
1373 dpurdie 5874
 
3959 dpurdie 5875
      /* MIGRATION - ACTION_LOG */
5876
      INSERT INTO archive_manager.action_log
5877
         SELECT *
5878
           FROM action_log
5879
          WHERE pv_id IN (SELECT pv_id
5880
                            FROM archive_data);
1373 dpurdie 5881
 
3959 dpurdie 5882
      /* PURGE DATA FROM ACTION_LOG*/
5883
      DELETE FROM action_log
5884
            WHERE pv_id IN (SELECT pv_id
5885
                              FROM archive_data);
1373 dpurdie 5886
 
5887
 
5888
   END;
5889
 
5890
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5891
   PROCEDURE migrate_rtag_to_archive_schema (
5892
      nrtagid   IN   release_tags.rtag_id%TYPE
1373 dpurdie 5893
   )
5894
   IS
5895
   BEGIN
3959 dpurdie 5896
      /* MIGRATION - DO_NOT_RIPPLE */
5897
      INSERT INTO archive_manager.do_not_ripple
5898
         SELECT *
5899
           FROM do_not_ripple dnp
5900
          WHERE rtag_id = nrtagid;
1373 dpurdie 5901
 
3959 dpurdie 5902
      /* PURGE DATA FROM DO_NOT_RIPPLE */
5903
      DELETE FROM do_not_ripple
5904
            WHERE rtag_id = nrtagid;
5905
 
5906
      /* MIGRATION - ADVISORY_RIPPLES*/
5907
      INSERT INTO archive_manager.advisory_ripples
5908
         SELECT *
5909
           FROM advisory_ripple dnp
5910
          WHERE rtag_id = nrtagid;
1373 dpurdie 5911
 
3959 dpurdie 5912
      /* PURGE DATA FROM ADVISORY_RIPPLES*/
5913
      DELETE FROM advisory_ripple
5914
            WHERE rtag_id = nrtagid;			
1373 dpurdie 5915
 
3959 dpurdie 5916
      /* MIGRATION - RELEASE_CONTENT */
5917
      INSERT INTO archive_manager.release_content
5918
         SELECT *
5919
           FROM release_content
5920
          WHERE rtag_id = nrtagid;
1373 dpurdie 5921
 
3959 dpurdie 5922
      /* PURGE DATA FROM RELEASE_CONTENT*/
5923
      DELETE FROM release_content
5924
            WHERE rtag_id = nrtagid;
1373 dpurdie 5925
 
3959 dpurdie 5926
      /* MIGRATION - NOTIFICATION_HISTORY */
5927
      INSERT INTO archive_manager.notification_history
5928
         SELECT *
5929
           FROM notification_history
5930
          WHERE rtag_id = nrtagid;
1373 dpurdie 5931
 
3959 dpurdie 5932
      /* PURGE DATA FROM NOTIFICATION_HISTORY*/
5933
      DELETE FROM notification_history
5934
            WHERE rtag_id = nrtagid;
1373 dpurdie 5935
 
3959 dpurdie 5936
      /* MIGRATION - BUILD_ORDER   */
5937
      INSERT INTO archive_manager.build_order
5938
         SELECT *
5939
           FROM build_order
5940
          WHERE rtag_id = nrtagid;
1373 dpurdie 5941
 
3959 dpurdie 5942
      /* PURGE DATA FROM BUILD_ORDER*/
5943
      DELETE FROM build_order
5944
            WHERE rtag_id = nrtagid;
1373 dpurdie 5945
 
3959 dpurdie 5946
      /* MIGRATION - PROJECT_ACTION_LOG */
5947
      INSERT INTO archive_manager.project_action_log
5948
         SELECT *
5949
           FROM project_action_log
5950
          WHERE rtag_id = nrtagid;
1373 dpurdie 5951
 
3959 dpurdie 5952
      /* PURGE DATA FROM PROJECT_ACTION_LOG */
5953
      DELETE FROM project_action_log
5954
            WHERE rtag_id = nrtagid;
1373 dpurdie 5955
 
3959 dpurdie 5956
      /* MIGRATION - DEPRECATED_PACKAGES */
5957
      INSERT INTO archive_manager.deprecated_packages
5958
         SELECT *
5959
           FROM deprecated_packages
5960
          WHERE rtag_id = nrtagid;
1373 dpurdie 5961
 
3959 dpurdie 5962
      /* PURGE DATA FROM DEPRECATED_PACKAGES */
5963
      DELETE FROM deprecated_packages
5964
            WHERE rtag_id = nrtagid;
5965
 
5966
      /* MIGRATION - RELEASE_TAGS */
5967
      INSERT INTO archive_manager.release_tags
5968
         SELECT *
1373 dpurdie 5969
           FROM release_tags
3959 dpurdie 5970
          WHERE rtag_id = nrtagid;
5971
 
5972
 
5973
      /* PURGE DATA FROM PACKAGE_VERSIONS*/
5974
      DELETE FROM package_versions
5975
            WHERE pv_id IN (SELECT pv_id
5976
                              FROM archive_data);
5977
 
5978
 
1373 dpurdie 5979
   END;
5980
 
5981
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5982
   PROCEDURE clean_up_archive_data_table (
5983
      nrtagid   IN   release_tags.rtag_id%TYPE
1373 dpurdie 5984
   )
5985
   IS
5986
   BEGIN
3959 dpurdie 5987
      /* Cleaning Up The Archive_Data Table */
5988
      DELETE FROM archive_data
5989
            WHERE rtag_id = nrtagid;
1373 dpurdie 5990
   END;
5991
 
5992
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5993
   PROCEDURE write_action_log (
5994
      nuserid   IN   NUMBER,
5995
      nrtagid   IN   release_tags.rtag_id%TYPE
1373 dpurdie 5996
   )
5997
   IS
5998
   BEGIN
3959 dpurdie 5999
      /* Write Into Archive_Action_Log Table */
6000
      INSERT INTO archive_action_log
6001
                  (user_id, date_time_stamp, rtag_id,
6002
                   description
1373 dpurdie 6003
                  )
3959 dpurdie 6004
           VALUES (nuserid, ora_sysdatetime, nrtagid,
6005
                   'Release has been archived to the ARCHIVE_MANAGER schema'
1373 dpurdie 6006
                  );
6007
   END;
6008
/*-------------------------------------------------------------------------------------------------------*/
5384 dpurdie 6009
END pk_archive;
4040 dpurdie 6010
 
1374 dpurdie 6011
/
4040 dpurdie 6012
--------------------------------------------------------
6013
--  DDL for Package Body PK_BUILDAPI
6014
--------------------------------------------------------
6015
 
5172 dpurdie 6016
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_BUILDAPI" 
1373 dpurdie 6017
IS
6018
   /*-------------------------------------------------------------------------------------------------------*/
6019
   PROCEDURE add_product_component (
6020
      npvid           IN   NUMBER,
6021
      sosname         IN   VARCHAR2,
6022
      sorigfilepath   IN   VARCHAR2,
6023
      sfilename       IN   VARCHAR2,
6024
      sdestfilepath   IN   VARCHAR2,
6025
      nbytesize       IN   NUMBER,
6026
      scrccksum       IN   VARCHAR2
6027
   )
6028
   IS
6029
      nosid   NUMBER;
6030
   BEGIN
6031
      /*--------------- Business Rules Here -------------------*/
6032
      -- OS Name Requirements --
6033
      IF (sosname IS NULL)
6034
      THEN
6035
         raise_application_error (-20000, 'OsName cannot be NULL.');
6036
      END IF;
6037
 
6038
      -- File Requirements --
6039
      IF (NOT sfilename IS NULL)
6040
      THEN
6041
         IF (nbytesize IS NULL)
6042
         THEN
6043
            raise_application_error (-20000, 'Byte Size cannot be NULL.');
6044
         ELSIF (scrccksum IS NULL)
6045
         THEN
6046
            raise_application_error (-20000, 'CRC CKSUM cannot be NULL.');
6047
         END IF;
6048
      END IF;
6049
 
6050
      -- Folder Requirements --
6051
      -- No requirements for now.
6052
 
6053
      /*-------------------------------------------------------*/
6054
 
6055
      -- Get OsId
6056
      nosid := get_osid (sosname);
6057
 
6058
      -- Insert component entry
6059
      INSERT INTO product_components
6060
                  (pv_id, os_id, file_path, file_name, destination_path,
6061
                  byte_size, crc_cksum
6062
                  )
6063
         VALUES (npvid, nosid, sorigfilepath, sfilename, sdestfilepath,
6064
                  nbytesize, scrccksum
6065
                  );
6066
   EXCEPTION
6067
      WHEN DUP_VAL_ON_INDEX
6068
      THEN
6069
         raise_application_error (-20000,
6070
                                 'Cannot have duplicate product components.'
6071
                                 );
6072
   END;
6073
 
6074
/*-------------------------------------------------------------------------------------------------------*/
6075
   PROCEDURE remove_all_product_components (
6076
      npvid     IN   NUMBER,
6077
      sosname   IN   VARCHAR2
6078
   )
6079
   IS
6080
      nosid   NUMBER;
6081
   BEGIN
6082
/*--------------- Business Rules Here -------------------*/
6083
/*-------------------------------------------------------*/
6084
 
6085
      -- Get OsId
6086
      nosid := get_osid (sosname);
6087
 
6088
      -- Delete component entry
6089
      DELETE FROM product_components pc
6090
            WHERE pc.pv_id = npvid AND pc.os_id = nosid;
6091
   END;
6092
 
6093
/*-------------------------------------------------------------------------------------------------------*/
6094
   FUNCTION get_osid (sosname IN VARCHAR2)
6095
      RETURN NUMBER
6096
   IS
6097
      code   NUMBER;
6098
   BEGIN
6099
      -- Get Platform Code --
6100
      SELECT pf.code
6101
      INTO code
6102
      FROM platforms pf
6103
      WHERE UPPER (pf.NAME) = UPPER (sosname);
6104
 
6105
      RETURN code;
6106
   EXCEPTION
6107
      WHEN NO_DATA_FOUND
6108
      THEN
6109
         raise_application_error
6110
            (-20000,
6111
               'Platform '
6112
            || sosname
6113
            || ' is not valid. It needs to be added to PLATFORMS table in Release Manager.'
6114
            );
6115
         RAISE;
6116
   END;
6117
 
6118
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 6119
 PROCEDURE update_build_service_info (
1373 dpurdie 6120
      sdatabaseserver   IN   VARCHAR2,
6121
      sarchiveserver    IN   VARCHAR2,
6122
      smailserver       IN   VARCHAR2,
6123
      smailsender       IN   VARCHAR2,
4211 dpurdie 6124
      faultmlist        IN   VARCHAR2,
1373 dpurdie 6125
      sdiskspace        IN   VARCHAR2,
6126
      ssbommanagement   IN   VARCHAR2
6127
   )
6128
   IS
6129
   BEGIN
6130
      UPDATE build_service_config
6131
         SET config = sdatabaseserver
6132
      WHERE service = 'DATABASE SERVER';
6133
 
6134
      UPDATE build_service_config
6135
         SET config = sarchiveserver
6136
      WHERE service = 'ARCHIVE SERVER';
6137
 
6138
      UPDATE build_service_config
6139
         SET config = smailserver
6140
      WHERE service = 'MAIL SERVER';
6141
 
6142
      UPDATE build_service_config
6143
         SET config = smailsender
6144
      WHERE service = 'BUILD FAILURE MAIL SENDER';
6145
 
6146
      UPDATE build_service_config
4211 dpurdie 6147
         SET config = faultmlist
6148
      WHERE service = 'FAULT EMAIL ADDRESS LIST';
6149
 
6150
      UPDATE build_service_config
1373 dpurdie 6151
         SET config = sdiskspace
6152
      WHERE service = 'DPKG_ARCHIVE DISK SPACE USED';
6153
 
6154
      UPDATE build_service_config
6155
         SET config = ssbommanagement
6156
      WHERE service = 'SBOM MANAGEMENT';
6157
   END;
4308 dpurdie 6158
 
1373 dpurdie 6159
 
6160
 
6161
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 6162
   PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2, sgbeclass IN NUMBER)
1373 dpurdie 6163
   IS
6164
      gbe_id   NUMBER;
6165
   BEGIN
6166
      -- Get GBE_ID
6167
      SELECT seq_gbe_id.NEXTVAL
6168
      INTO gbe_id
6169
      FROM DUAL;
6170
 
6171
      INSERT INTO gbe_machtype
4040 dpurdie 6172
                  (gbe_id, gbe_value, bm_id )
6173
         VALUES (gbe_id, sgbevalue, sgbeclass );
1373 dpurdie 6174
   END;
6175
 
6176
/*-------------------------------------------------------------------------------------------------------*/
6177
   PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER)
6178
   IS
6179
   BEGIN
6180
      DELETE FROM gbe_machtype
6181
            WHERE gbe_id = ngbe_id;
6182
   END;
6183
 
6184
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 6185
   PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2, sgbeclass IN NUMBER)
1373 dpurdie 6186
   IS
6187
   BEGIN
6188
      UPDATE gbe_machtype
4040 dpurdie 6189
         SET gbe_value = sgbevalue,
6190
             bm_id = sgbeclass
1373 dpurdie 6191
      WHERE gbe_id = ngbe_id;
6192
   END;
6193
 
6194
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 6195
PROCEDURE add_buildmachine (sbmvalue IN VARCHAR2)
6196
   IS
6197
      bm_id   NUMBER;
6198
   BEGIN
6199
      -- Get BM_ID
6200
      SELECT seq_bm_id.NEXTVAL
6201
      INTO bm_id
6202
      FROM DUAL;
6203
 
6204
      INSERT INTO build_machines
6205
                  (bm_id, bm_name)
6206
         VALUES (bm_id, sbmvalue );
6207
   END;
6208
 
6209
/*-------------------------------------------------------------------------------------------------------*/
6210
   PROCEDURE remove_buildmachine (nbm_id IN NUMBER)
6211
   IS
6212
   BEGIN
6213
      DELETE FROM build_machines
6214
            WHERE bm_id = nbm_id;
6215
   END;
6216
 
6217
/*-------------------------------------------------------------------------------------------------------*/
6218
   PROCEDURE update_buildmachine (nbm_id IN NUMBER, sbmvalue IN VARCHAR2) 
6219
   IS
6220
   BEGIN
6221
      UPDATE build_machines
6222
         SET bm_name = sbmvalue
6223
         WHERE bm_id = nbm_id;
6224
   END;
6225
 
6226
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 6227
   PROCEDURE delete_daemon (srconidlist IN VARCHAR2)
6228
   IS
6229
   BEGIN
6230
      -- Entries in the daemon_action_log, run_level and abt_action_log tables must be deleted first.
6231
      DELETE FROM daemon_action_log
6232
            WHERE rcon_id IN (
6233
                     SELECT *
6234
                     FROM THE
6235
                              (SELECT CAST
6236
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6237
                                          )
6238
                                 FROM DUAL
6239
                              ));
6240
 
6241
      DELETE FROM run_level
6242
            WHERE rcon_id IN (
6243
                     SELECT *
6244
                     FROM THE
6245
                              (SELECT CAST
6246
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6247
                                          )
6248
                                 FROM DUAL
6249
                              ));
6250
 
6251
      DELETE FROM abt_action_log
6252
            WHERE rcon_id IN (
6253
                     SELECT *
6254
                     FROM THE
6255
                              (SELECT CAST
6256
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6257
                                          )
6258
                                 FROM DUAL
6259
                              ));
6260
 
6261
      -- Once entries in daemon_action_log, run_level and abt_action_log are removed, the daemon is deleted.
6262
      DELETE FROM release_config
6263
            WHERE rcon_id IN (
6264
                     SELECT *
6265
                     FROM THE
6266
                              (SELECT CAST
6267
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6268
                                          )
6269
                                 FROM DUAL
6270
                              ));
6271
   END;
6272
 
6273
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 6274
   PROCEDURE remove_daemon (srconidlist IN VARCHAR2)
1373 dpurdie 6275
   IS
4308 dpurdie 6276
   oRconIdList RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
6277
 
1373 dpurdie 6278
   BEGIN
4308 dpurdie 6279
 
6280
   oRconIdList := IN_LIST_NUMBER ( srconidlist );
6281
 
6282
      -- Break the linkage between the release_config and the build_machine_config
6283
 
6284
      -- Delete the linkage between the two tables.
6285
       UPDATE release_config
6286
         SET daemon_hostname = NULL,
6287
             bmcon_id = NULL 
6288
      WHERE rcon_id IN ( SELECT * FROM TABLE ( CAST ( oRconIdList AS RELMGR_NUMBER_TAB_t ) ) );
1373 dpurdie 6289
   END;
6290
 
6291
/*-------------------------------------------------------------------------------------------------------*/
6292
   PROCEDURE insert_schedule_info (
6293
      dschedulepause     IN   DATE,
6294
      dscheduleresume    IN   DATE,
6295
      crepeat            IN   VARCHAR2,
6296
      cindefinitepause   IN   VARCHAR2
6297
   )
6298
   IS
6299
      nscheduledid   NUMBER;
6300
   BEGIN
6301
      -- Get Next Available Scheduled Id
6302
      SELECT seq_scheduled_id.NEXTVAL
6303
      INTO nscheduledid
6304
      FROM DUAL;
6305
 
6306
      INSERT INTO run_level_schedule
6307
         VALUES (nscheduledid, dschedulepause, dscheduleresume, crepeat,
6308
                  cindefinitepause);
6309
   END;
6310
 
6311
/*-------------------------------------------------------------------------------------------------------*/
6312
   PROCEDURE delete_schedule (nscheduleid IN NUMBER)
6313
   IS
6314
   BEGIN
6315
      DELETE FROM run_level_schedule
6316
            WHERE scheduled_id = nscheduleid;
6317
   END;
6318
 
6319
/*-------------------------------------------------------------------------------------------------------*/
6320
   PROCEDURE set_infinite_pause
6321
   IS
6322
      nscheduledid   NUMBER;
6323
   BEGIN
6324
      -- Get Next Available Scheduled Id
6325
      SELECT seq_scheduled_id.NEXTVAL
6326
      INTO nscheduledid
6327
      FROM DUAL;
6328
 
6329
      INSERT INTO run_level_schedule
5172 dpurdie 6330
         VALUES (nscheduledid, ora_sysdatetime, NULL, NULL, 'P');
1373 dpurdie 6331
   END;
5172 dpurdie 6332
 
6333
/*-------------------------------------------------------------------------------------------------------*/
6334
   PROCEDURE set_finite_pause (duration IN NUMBER)
6335
   IS
6336
      nscheduledid   NUMBER;
6337
      currentDate    DATE := ora_sysdatetime;
6338
   BEGIN
6339
 
6340
      -- Get Next Available Scheduled Id
6341
      SELECT seq_scheduled_id.NEXTVAL
6342
      INTO nscheduledid
6343
      FROM DUAL;
1373 dpurdie 6344
 
5172 dpurdie 6345
      INSERT INTO run_level_schedule
6346
         VALUES (nscheduledid, currentDate, currentDate + duration/(24*60), 0, 'F');
6347
      COMMIT; 
6348
 
6349
      -- Ensure that we have only ONE finite pause by deleting all old ones
6350
      -- Under race conditions the last one wins
6351
      DELETE FROM run_level_schedule 
6352
        WHERE SCHEDULED_ID < nscheduledid
6353
        AND INDEFINITE_PAUSE = 'F';
6354
   END;   
6355
 
1373 dpurdie 6356
/*-------------------------------------------------------------------------------------------------------*/
6357
   PROCEDURE set_resume
6358
   IS
6359
   BEGIN
6360
      DELETE FROM run_level_schedule
5172 dpurdie 6361
            WHERE indefinite_pause in ('F', 'P' );
1373 dpurdie 6362
   END;
6363
 
6364
/*-------------------------------------------------------------------------------------------------------*/
6365
   PROCEDURE delete_out_of_date_schedule
6366
   IS
6367
   BEGIN
6368
      DELETE FROM run_level_schedule
6369
            WHERE scheduled_resume < ora_sysdatetime AND repeat = 0;
6370
   END;
6371
 
6372
/*-------------------------------------------------------------------------------------------------------*/
6373
   PROCEDURE set_daemon_resume (nrconid IN NUMBER)
6374
   IS
6375
   BEGIN
6376
      UPDATE run_level
6377
         SET PAUSE = NULL
6378
      WHERE rcon_id = nrconid;
6379
   END;
6380
 
6381
/*-------------------------------------------------------------------------------------------------------*/
6382
   PROCEDURE set_daemon_pause (nrconid IN NUMBER)
6383
   IS
6384
   BEGIN
6385
      UPDATE run_level
6386
         SET PAUSE = 1
6387
      WHERE rcon_id = nrconid;
6388
   END;
6389
/*-------------------------------------------------------------------------------------------------------*/
6390
   PROCEDURE set_daemon_disable (nrconid NUMBER)
6391
   IS
6392
   BEGIN
6393
      UPDATE run_level
6394
         SET PAUSE = 2
6395
      WHERE rcon_id = nrconid;
6396
   END;
6397
 
6398
/*-------------------------------------------------------------------------------------------------------*/
6399
   PROCEDURE set_daemon_states (nrtagid NUMBER, nstate NUMBER)
6400
   IS
6401
   BEGIN
6402
     UPDATE run_level
6403
     SET pause = nstate
6404
     WHERE rcon_id IN
6405
     (SELECT rc.rcon_id FROM release_config rc WHERE rc.rtag_id = nrtagid);
6406
   END;
6407
 
6408
/*-------------------------------------------------------------------------------------------------------*/
6409
   -- inserts a new daemon instruction
6410
   -- This is for use by the Release Manager Website code.
6411
   --
6412
   PROCEDURE insert_daemon_inst
6413
   ( nOp_code IN NUMBER
6414
   , nRtag_id IN NUMBER
6415
   , nPv_id IN NUMBER
6416
   , nSchedDate IN DATE
6417
   , nRepeatSecs IN NUMBER
6418
   , nAddedDate IN DATE
6419
   , nUser_id IN NUMBER
6420
   ) IS
6421
      nInstId   NUMBER;
6422
   BEGIN
6423
      -- Get Next Available Scheduled Id
6424
      SELECT seq_daemon_instruction_id.NEXTVAL
6425
      INTO nInstId
6426
      FROM DUAL;
6427
 
6428
      INSERT INTO Daemon_Instructions
6429
         VALUES (nInstId, nOp_code, nRtag_id,
6430
                  nPv_id, nSchedDate, nRepeatSecs,
6431
                  nAddedDate, nUser_id, '0');
5172 dpurdie 6432
 
6433
   -- Mark the Release as modified for build purposes      
6434
   PK_RELEASE.SET_RELEASE_MODIFIED(nRtag_id);  
6435
 
1373 dpurdie 6436
   EXCEPTION
6437
      WHEN DUP_VAL_ON_INDEX
6438
      THEN
6439
         raise_application_error (-20000,
6440
                                 'Table already contains a record with the specified OPERATION, RELEASE, and PACKAGE VERSION'
6441
                                 );
6442
      WHEN OTHERS
6443
      THEN
6444
         raise;
5172 dpurdie 6445
 
1373 dpurdie 6446
   END insert_daemon_inst;
6447
 
6448
/*-------------------------------------------------------------------------------------------------------*/
6449
   -- Deletes a daemon instruction matching the specified instruction ID
6450
   --
6451
   PROCEDURE del_daemon_inst
6452
   ( nInstId IN NUMBER
6453
   ) IS
6454
 
6455
   BEGIN
6456
      DELETE FROM Daemon_Instructions
6457
      WHERE DAEMON_INSTRUCTIONS_ID = nInstId;
6458
 
6459
   END del_daemon_inst;
6460
 
6461
/*-------------------------------------------------------------------------------------------------------*/
6462
   -- Deletes a daemon instruction matching the specified op-code, ratag, and pv_id
6463
   --
6464
   PROCEDURE del_daemon_inst_by_rtag_pvid(
6465
      nOp_code IN NUMBER,
6466
      nRtag_id IN NUMBER,
6467
      nPv_id IN NUMBER
6468
   ) IS
6469
   BEGIN
6470
      DELETE FROM Daemon_Instructions
6471
      WHERE OP_CODE = nOp_code
6472
      AND RTAG_ID = nRtag_id
6473
      AND PV_ID   = nPv_id;
6474
 
6475
   END del_daemon_inst_by_rtag_pvid;
6476
 
6477
/*-------------------------------------------------------------------------------------------------------*/
6478
   -- Updates a daemon instruction
6479
   -- This is for use by the Release Manager Website code.
6480
   --
6481
   PROCEDURE update_daemon_inst
6482
   ( nInstId IN NUMBER
6483
   , nOp_code IN NUMBER
6484
   , nRtag_id IN NUMBER
6485
   , nPv_id IN NUMBER
6486
   , nSchedDate IN DATE
6487
   , nRepeatSecs IN NUMBER
6488
   , nAddedDate IN DATE
6489
   , nUser_id IN NUMBER
6490
   ) IS
6491
      CURSOR daemon_inst_cur IS
6492
         SELECT *
6493
         FROM daemon_instructions di
6494
         WHERE di.DAEMON_INSTRUCTIONS_ID = nInstId;
6495
 
6496
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6497
 
6498
      exc_inst_removed EXCEPTION;
6499
   BEGIN
6500
      OPEN daemon_inst_cur;
6501
 
6502
      FETCH daemon_inst_cur
6503
      INTO daemon_inst_rec;
6504
 
6505
      IF daemon_inst_cur%FOUND THEN
6506
 
6507
         UPDATE Daemon_Instructions
6508
         SET op_code = nOp_code,
6509
            rtag_id = nRtag_id,
6510
            pv_id   = nPv_id,
6511
            scheduled_datetime = nSchedDate,
6512
            repeat_secs = nRepeatSecs,
6513
            added_datetime = nAddedDate,
6514
            user_id = nUser_id,
6515
            in_progress = '0'
6516
         WHERE daemon_instructions_id = nInstId;
6517
      ELSE
6518
         raise exc_inst_removed;
6519
      END IF;
6520
 
6521
      CLOSE daemon_inst_cur;
5172 dpurdie 6522
 
6523
      -- Mark the Release as modified for build purposes      
6524
      PK_RELEASE.SET_RELEASE_MODIFIED(nRtag_id);         
6525
 
1373 dpurdie 6526
   EXCEPTION
6527
      WHEN DUP_VAL_ON_INDEX
6528
      THEN
6529
         raise_application_error (-20000,
6530
                                 'Table already contains a record with the specified OPERATION, RELEASE, and PACKAGE VERSION'
6531
                                 );
6532
      WHEN exc_inst_removed
6533
      THEN
6534
         raise_application_error (-20000,
6535
                                 'Record was probably deleted by the Buildtool during your edit-form session. Please create a new Daemon Instruction.'
6536
                                 );
6537
      WHEN OTHERS
6538
      THEN
6539
         raise;
5172 dpurdie 6540
 
1373 dpurdie 6541
   END update_daemon_inst;
6542
 
6543
/*-------------------------------------------------------------------------------------------------------*/
6544
   -- Returns a comma-separated list of operation codes found for a given rtag and pv_id combination
6545
   -- This is for use by the Release Manager Website code.
6546
   --
6547
   FUNCTION daemon_ops_for_rtag_pvid(
6548
      nRtag_id IN NUMBER,
6549
      nPv_id IN NUMBER
6550
   ) RETURN VARCHAR2
6551
   IS
6552
      CURSOR daemon_inst_cur IS
6553
         SELECT di.OP_CODE
6554
         FROM daemon_instructions di
6555
         WHERE di.RTAG_ID = nRtag_id
6556
            AND di.PV_ID = nPv_id;
6557
 
6558
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6559
 
6560
      sRetList VARCHAR2(4000) := '';
6561
 
6562
   BEGIN
6563
      OPEN daemon_inst_cur;
6564
 
6565
      FETCH daemon_inst_cur
6566
      INTO daemon_inst_rec;
6567
 
6568
      WHILE daemon_inst_cur%FOUND
6569
      LOOP
6570
         sRetList := sRetList || daemon_inst_rec.op_code || ',';
6571
 
6572
         FETCH daemon_inst_cur
6573
         INTO daemon_inst_rec;
6574
      END LOOP;
6575
 
6576
      CLOSE daemon_inst_cur;
6577
 
6578
      RETURN sRetList;
6579
   END daemon_ops_for_rtag_pvid;
6580
/*-------------------------------------------------------------------------------------------------------*/
6581
   -- Returns a comma-separated list of operation codes found for a given rtag
6582
   -- This is for use by the Release Manager Website code.
6583
   --
6584
   FUNCTION daemon_ops_for_rtag(
6585
      nRtag_id IN NUMBER
6586
   ) RETURN VARCHAR2
6587
   IS
6588
      CURSOR daemon_inst_cur IS
6589
         SELECT di.OP_CODE
6590
         FROM daemon_instructions di
6591
         WHERE di.RTAG_ID = nRtag_id;
6592
 
6593
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6594
 
6595
      sRetList VARCHAR2(4000) := '';
6596
 
6597
   BEGIN
6598
      OPEN daemon_inst_cur;
6599
 
6600
      FETCH daemon_inst_cur
6601
      INTO daemon_inst_rec;
6602
 
6603
      WHILE daemon_inst_cur%FOUND
6604
      LOOP
6605
         sRetList := sRetList || daemon_inst_rec.op_code || ',';
6606
 
6607
         FETCH daemon_inst_cur
6608
         INTO daemon_inst_rec;
6609
      END LOOP;
6610
 
6611
      CLOSE daemon_inst_cur;
6612
 
6613
      RETURN sRetList;
6614
   END daemon_ops_for_rtag;
6615
/*-------------------------------------------------------------------------------------------------------*/
6616
   -- Gets a record from the daemon instruction table that can be carried out now and returns the fields
6617
   -- in the record a daemon will need
6618
   -- The Buildtool should use this to find a job to do for a particular release. It should then call
6619
   -- mark_daemon_inst_in_progress(inst_id) before carrying out the work, and then call
6620
   -- mark_daemon_inst_completed(inst_id) to signal its completion.
6621
   -- Can be called repeatedly to get a full list of all instructions for a release, by passing back in
6622
   -- the instruction ID obtained from the previous call (the 1st call should use 0)
6623
   -- Can be called repeatedly to get a full list of all instructions of a specific op-code value for a release,
6624
   -- by passing back in an op-code value of 0 or higher (use -1 if no op-code filtering is needed)
6625
   -- Returns 1 if a record was found, else 0.
6626
   --
6627
   FUNCTION get_daemon_inst(
6628
      nRtag_id IN NUMBER,
6629
      nInst_id IN OUT NUMBER,
6630
      nOp_code IN OUT NUMBER,
6631
      nPv_id OUT NUMBER,
6632
      nUser_id OUT NUMBER,
6633
      nInProgress OUT NUMBER
6634
   ) RETURN NUMBER
6635
   IS
6636
      CURSOR daemon_inst_cur IS
6637
         SELECT di.daemon_instructions_id, di.op_code, di.pv_id ,di.user_id, di.in_progress
6638
           FROM daemon_instructions di
6639
          WHERE di.rtag_id = nRtag_id
6640
            AND di.daemon_instructions_id > nInst_id
6641
            AND di.scheduled_datetime <= ora_sysdatetime
6642
            AND ((nOp_code = -1) OR (nOp_code = di.op_code))
6643
            AND rownum <= 1
6644
       ORDER BY di.daemon_instructions_id;
6645
 
6646
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6647
   BEGIN
6648
      OPEN daemon_inst_cur;
6649
 
6650
      FETCH daemon_inst_cur
6651
      INTO daemon_inst_rec;
6652
 
6653
      -- If we found a record, return it.
6654
      IF daemon_inst_cur%FOUND THEN
6655
         nInst_id := daemon_inst_rec.daemon_instructions_id;
6656
         nOp_code := daemon_inst_rec.op_code;
6657
         nPv_id   := daemon_inst_rec.pv_id;
6658
         nUser_id := daemon_inst_rec.user_id;
6659
         IF daemon_inst_rec.in_progress = '1' THEN
6660
            nInProgress := 1;
6661
         ELSE
6662
            nInProgress := 0;
6663
         END IF;
6664
         CLOSE daemon_inst_cur;
6665
         RETURN 1;
6666
      END IF;
6667
 
6668
      CLOSE daemon_inst_cur;
6669
      RETURN 0;
6670
 
6671
   END get_daemon_inst;
6672
/*-------------------------------------------------------------------------------------------------------*/
6673
   -- Marks a daemon instruction as being processed by a daemon
6674
   -- The Buildtool should use this before it embarks on the work the instruction commands
6675
   --
6676
   PROCEDURE mark_daemon_inst_in_progress( nInstId IN NUMBER )
6677
   IS
6678
   BEGIN
6679
      UPDATE Daemon_Instructions
6680
      SET in_progress = '1'
6681
      WHERE daemon_instructions_id = nInstId;
6682
 
6683
   END mark_daemon_inst_in_progress;
6684
 
6685
/*-------------------------------------------------------------------------------------------------------*/
6686
   -- Once the Buildtool has finished carrying out the daemon instruction, it should call this stored
6687
   -- procedure in order to either delete the instruction or update it in the case where it is a repeating
6688
   -- instruction.
6689
   --
6690
   PROCEDURE mark_daemon_inst_completed( nInstId IN NUMBER )
6691
   IS
6692
      repSecs NUMBER;
6693
      schedDate  DATE;
6694
 
6695
      CURSOR daemon_inst_cur IS
6696
         SELECT di.REPEAT_SECS AS repSecs, di.SCHEDULED_DATETIME AS schedDate
6697
         FROM daemon_instructions di
6698
         WHERE di.daemon_instructions_id = nInstId;
6699
 
6700
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6701
   BEGIN
6702
      OPEN daemon_inst_cur;
6703
 
6704
      FETCH daemon_inst_cur
6705
      INTO daemon_inst_rec;
6706
 
6707
      IF daemon_inst_cur%FOUND THEN
6708
 
6709
         -- if instruction repeats daily, add 1 day to the scheduled time and update the record
6710
         IF daemon_inst_rec.repSecs = 86400 THEN
6711
            UPDATE Daemon_Instructions
6712
               SET scheduled_datetime = daemon_inst_rec.schedDate + 1,
6713
                  in_progress = '0'
6714
            WHERE daemon_instructions_id = nInstId;
6715
         ELSE
6716
            -- Delete the daemon instruction, we are done with it
6717
            del_daemon_inst(nInstId);
6718
         END IF;
6719
      END IF;
6720
 
6721
      CLOSE daemon_inst_cur;
6722
 
6723
   EXCEPTION
6724
      WHEN OTHERS
6725
      THEN
6726
         raise;
6727
 
6728
   END mark_daemon_inst_completed;
6729
/*-------------------------------------------------------------------------------------------------------*/
6730
   -- This function deletes any old daemon instruction that appears stranded due to a problem that might
6731
   -- have occured during buildtool operation such as might occur if the buildtool or the machine it was
6732
   -- hosted on came down whilst it was processing a daemon instruction.
6733
   PROCEDURE cleanup_stranded_daemon_insts
6734
   IS
6735
   BEGIN
6736
      -- delete records at least two days old
6737
      DELETE FROM daemon_instructions di
6738
      WHERE  (di.scheduled_datetime + 5) <= ora_sysdatetime;
6739
 
6740
   END cleanup_stranded_daemon_insts;
6741
/*-------------------------------------------------------------------------------------------------------*/
6742
  --This function supersedes function, add_daemon. Done for DEVI-046806
6743
   PROCEDURE add_daemon_config (
6744
      nrtagid           IN   NUMBER,
6745
      nbmcon_id         IN   NUMBER,
6746
      sdaemon_mode      IN   VARCHAR2,
6747
      sgbebuildfilter   IN   VARCHAR2
6748
   )
6749
   IS
6750
      nrecordnumber   NUMBER;
6751
      nrconid         NUMBER;
6752
      sdaemonhostname VARCHAR2(50);
6753
      ngbeid         NUMBER;
6754
   BEGIN
6755
      -- Get RCON_ID
6756
      SELECT seq_rcon_id.NEXTVAL
6757
      INTO nrconid
6758
      FROM DUAL;
6759
 
6760
      SELECT COUNT (*)
6761
      INTO nrecordnumber
6762
      FROM release_config
6763
      WHERE rtag_id = nrtagid;
6764
 
6765
      SELECT machine_hostname,gbe_id INTO sdaemonhostname,ngbeid
6766
      FROM build_machine_config
6767
      WHERE bmcon_id = nbmcon_id;
6768
 
6769
      INSERT INTO release_config
6770
             (rcon_id, rtag_id, daemon_hostname, daemon_mode,
4308 dpurdie 6771
                gbe_id, gbe_buildfilter, bmcon_id)
1373 dpurdie 6772
      VALUES (nrconid, nrtagid, sdaemonhostname, sdaemon_mode,
4308 dpurdie 6773
                ngbeid, sgbebuildfilter, nbmcon_id);
1373 dpurdie 6774
 
6775
      -- A newly configured daemon should initially be paused (DEVI-047277)
6776
      INSERT INTO run_level
6777
                  (rcon_id, pause)
6778
           VALUES (nrconid, 2);
6779
 
6780
   END;
6781
 
6782
/*-------------------------------------------------------------------------------------------------------*/
6783
  --This function supersedes function, update_daemon. Done for DEVI-046806
6784
   PROCEDURE update_daemon_config (
6785
      nrconid           IN   NUMBER,
6786
      nbmcon_id         IN   NUMBER,
6787
      sdaemon_mode      IN   VARCHAR2,
6788
      sgbebuildfilter   IN   VARCHAR2
6789
   )
6790
   IS
6791
      sdaemonhostname VARCHAR2(50);
6792
      ngbeid         NUMBER;
6793
   BEGIN
6794
 
6795
      SELECT machine_hostname,gbe_id INTO sdaemonhostname,ngbeid
6796
      FROM build_machine_config
6797
      WHERE bmcon_id = nbmcon_id;
6798
 
6799
      UPDATE release_config
6800
         SET daemon_hostname = sdaemonhostname,
6801
            gbe_id = ngbeid,
6802
            daemon_mode = sdaemon_mode,
4308 dpurdie 6803
            gbe_buildfilter = sgbebuildfilter,
6804
            bmcon_id = nbmcon_id 
1373 dpurdie 6805
      WHERE rcon_id = nrconid;
6806
   END;
6807
 
6808
 
6809
/*-------------------------------------------------------------------------------------------------------*/
6810
   PROCEDURE add_build_machine (
6811
      sdisplay_name          IN   VARCHAR2,
6812
      smachine_hostname      IN   VARCHAR2,
6813
      ngbeid                 IN   NUMBER,
5172 dpurdie 6814
      sdescription           IN   VARCHAR2,
6815
      sactive                IN   CHAR
1373 dpurdie 6816
   )
6817
   IS
6818
      nrecordnumber   NUMBER;
6819
      nbmcon_id       NUMBER;
6820
   BEGIN
6821
      -- Get BMCON_ID
6822
      SELECT seq_bmcon_id.NEXTVAL INTO nbmcon_id FROM DUAL;
6823
 
5172 dpurdie 6824
      INSERT INTO build_machine_config(bmcon_id, display_name, machine_hostname,gbe_id,description,active)
6825
            VALUES (nbmcon_id,sdisplay_name,smachine_hostname,ngbeid,sdescription, NVL(sactive,'N'));
1373 dpurdie 6826
 
6827
   EXCEPTION
6828
      WHEN DUP_VAL_ON_INDEX
6829
      THEN
6830
         raise_application_error (-20000,
6831
                                 'Cannot have duplicate machines.'
6832
                                 );
6833
 
6834
   END;
6835
 
6836
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 6837
 PROCEDURE duplicate_daemon_config (
6838
      nrtagid           IN   NUMBER,
6839
      nbmcon_id         IN   NUMBER,
6840
      sdaemonhostname   IN   VARCHAR2,
6841
      ngbe_id           IN   NUMBER,
6842
      sdaemon_mode      IN   VARCHAR2,
6843
      sgbebuildfilter   IN   VARCHAR2
6844
   )
6845
   IS
6846
      nrecordnumber   NUMBER;
6847
      nrconid         NUMBER;
6848
    BEGIN
6849
 
6850
      -- Get RCON_ID
6851
      SELECT seq_rcon_id.NEXTVAL
6852
      INTO nrconid
6853
      FROM DUAL;
6854
 
6855
      INSERT INTO release_config
6856
             (rcon_id, rtag_id, daemon_hostname, daemon_mode,
6857
                gbe_id, gbe_buildfilter, bmcon_id)
6858
      VALUES (nrconid, nrtagid, sdaemonhostname, sdaemon_mode,
6859
                ngbe_id, sgbebuildfilter, nbmcon_id);
6860
 
6861
    -- A newly configured daemon should initially be disabled (DEVI-047277)
6862
      INSERT INTO run_level
6863
                  (rcon_id, pause)
6864
           VALUES (nrconid, 2);
6865
 
6866
   END;
6867
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 6868
   PROCEDURE delete_build_machine (sbmcon_id_list IN VARCHAR2)
6869
   IS
6870
   BEGIN
6871
      DELETE FROM build_machine_config
6872
            WHERE bmcon_id IN (
6873
                     SELECT * FROM THE
6874
                              (SELECT CAST
6875
                                          (in_list_number (sbmcon_id_list) AS relmgr_number_tab_t
6876
                                          )
6877
                                 FROM DUAL
6878
                              ));
6879
   END;
6880
 
6881
 
6882
/*-------------------------------------------------------------------------------------------------------*/
6883
   PROCEDURE update_build_machine (
6884
      nbmcon_id              IN   NUMBER,
6885
      sdisplay_name          IN   VARCHAR2,
6886
      smachine_hostname      IN   VARCHAR2,
6887
      ngbeid                 IN   NUMBER,
5172 dpurdie 6888
      sdescription           IN   VARCHAR2,
6889
      sactive                IN   CHAR
1373 dpurdie 6890
   )
6891
   IS
6892
   BEGIN
6893
      UPDATE build_machine_config
6894
         SET display_name = sdisplay_name,
6895
             machine_hostname = smachine_hostname,
6896
             gbe_id = ngbeid,
5172 dpurdie 6897
             description = sdescription,
6898
             active = NVL(sactive, 'N')
1373 dpurdie 6899
      WHERE bmcon_id = nbmcon_id;
6900
   EXCEPTION
6901
      WHEN DUP_VAL_ON_INDEX
6902
      THEN
6903
         raise_application_error (-20000,
6904
                                 'Cannot have duplicate machines.'
6905
                                 );
6906
   END;
4553 dpurdie 6907
 
6908
/*-------------------------------------------------------------------------------------------------------*/
6909
PROCEDURE import_daemons ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER  ) IS
6910
 
6911
   sSourceLocation VARCHAR2(4000);
6912
   sTargetLocation VARCHAR2(4000);
6913
   ProjId NUMBER;
6914
   cReleaseMode CHAR(1);
6915
   RconId NUMBER;
6916
 
6917
   -- this cursor gets the source release daemon configurations, ensuring that the
6918
   -- first record will be the master daemon, and subsequent records will be the slaves.
6919
   CURSOR curSrcReleaseConfigs IS
6920
    SELECT daemon_hostname, gbe_id, gbe_buildfilter, bmcon_id, daemon_mode
6921
     FROM RELEASE_CONFIG rc
6922
    WHERE rc.RTAG_ID = nSourceRtagId
6923
    ORDER BY rc.daemon_mode;
6924
    recSrcReleaseConfigs curSrcReleaseConfigs%ROWTYPE;
6925
 
6926
    -- this cursor looks for target release daemons
6927
   CURSOR curTgtReleaseConfigs IS
6928
    SELECT rcon_id
6929
     FROM RELEASE_CONFIG rc
6930
    WHERE rc.RTAG_ID = nTargetRtagId;
6931
    recTgtReleaseConfigs curTgtReleaseConfigs%ROWTYPE;
6932
 
6933
    -- this cursor looks for target release daemon run level entries
6934
   CURSOR curTgtReleaseConfigRunLevel IS
6935
    SELECT current_run_level
6936
     FROM RUN_LEVEL rl
6937
    WHERE rl.RCON_ID = recTgtReleaseConfigs.rcon_id;
6938
    recTgtReleaseConfigRunLevel curTgtReleaseConfigRunLevel%ROWTYPE;
6939
 
6940
BEGIN
6941
   /*--------------- Business Rules Here -------------------*/
6942
   IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)
6943
   THEN
6944
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );
6945
   END IF;
6946
 
6947
   IF (nSourceRtagId = nTargetRtagId) THEN
6948
      RAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );
6949
   END IF;
6950
 
6951
   -- Check if Target release is in OPEN mode
6952
   SELECT rt.OFFICIAL  INTO  cReleaseMode
6953
     FROM RELEASE_TAGS rt
6954
    WHERE rt.RTAG_ID = nTargetRtagId;
6955
 
6956
   IF (cReleaseMode != 'N') THEN
6957
      RAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the contents.' );
6958
   END IF;
6959
 
6960
   -- check that the target release's daemons are all paused before we allow an import operation
6961
   OPEN curTgtReleaseConfigs;
6962
   FETCH curtgtReleaseConfigs INTO recTgtReleaseConfigs;
6963
 
6964
   WHILE curTgtReleaseConfigs%FOUND
6965
   LOOP
6966
      OPEN curTgtReleaseConfigRunLevel;
6967
      FETCH curTgtReleaseConfigRunLevel INTO recTgtReleaseConfigRunLevel;
6968
      IF curTgtReleaseConfigRunLevel%FOUND THEN
6969
         IF (recTgtReleaseConfigRunLevel.current_run_level IS NULL) OR
6970
            (recTgtReleaseConfigRunLevel.current_run_level <> 2) THEN
6971
            RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
6972
         END IF;
6973
      ELSE
6974
         -- we don't know what the daemon run level is so err on the side of caution
6975
         RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
6976
      END IF;
6977
      CLOSE curTgtReleaseConfigRunLevel;
6978
 
6979
      FETCH curTgtReleaseConfigs INTO recTgtReleaseConfigs;
6980
   END LOOP;
6981
 
6982
   CLOSE curTgtReleaseConfigs;
6983
 
6984
 
6985
   /*-------------------------------------------------------*/
6986
 
6987
   --Import Release Configuration Information
6988
   OPEN curSrcReleaseConfigs;
6989
   FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
6990
 
6991
     WHILE curSrcReleaseConfigs%FOUND
6992
   LOOP
6993
      -- add a daemon to the target release
6994
      PK_BUILDAPI.duplicate_daemon_config( nTargetRtagId, 
6995
                                     recSrcReleaseConfigs.bmcon_id, 
6996
                                     recSrcReleaseConfigs.daemon_hostname, 
6997
                                     recSrcReleaseConfigs.gbe_id, 
6998
                                     recSrcReleaseConfigs.daemon_mode ,
6999
                                     recSrcReleaseConfigs.gbe_buildfilter );
7000
 
7001
      FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
7002
   END LOOP;
7003
 
7004
   CLOSE curSrcReleaseConfigs;
7005
 
7006
 
7007
   /* Log Project Action */
7008
   -- Get Source Location
7009
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sSourceLocation
7010
     FROM RELEASE_TAGS rt,
7011
           PROJECTS pr
7012
    WHERE rt.PROJ_ID = pr.PROJ_ID
7013
      AND rt.RTAG_ID = nSourceRtagId;
7014
 
7015
   -- Get Target Location
7016
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sTargetLocation
7017
     FROM RELEASE_TAGS rt,
7018
           PROJECTS pr
7019
    WHERE rt.PROJ_ID = pr.PROJ_ID
7020
      AND rt.RTAG_ID = nTargetRtagId;
7021
 
7022
   -- Get project id
7023
   SELECT rt.PROJ_ID  INTO  ProjId
7024
     FROM RELEASE_TAGS rt
7025
    WHERE rt.RTAG_ID = nTargetRtagId;
7026
 
7027
   Log_Project_Action ( ProjId, 'import_daemon_configuration', nUserId, 'SOURCE: '|| sSourceLocation ||'   TARGET: '|| sTargetLocation, nTargetRtagId );
7028
END;
7029
 
1373 dpurdie 7030
END pk_buildapi;
4040 dpurdie 7031
 
1374 dpurdie 7032
/
4040 dpurdie 7033
--------------------------------------------------------
7034
--  DDL for Package Body PK_ENVIRONMENT
7035
--------------------------------------------------------
7036
 
5172 dpurdie 7037
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_ENVIRONMENT" 
1373 dpurdie 7038
IS
7039
 
7040
   /*-------------------------------------------------------------------------------------------------------*/
7041
   FUNCTION select_environment_area (cdlock IN package_versions.dlocked%TYPE)
7042
     RETURN NUMBER
7043
   IS
7044
   BEGIN
7045
      /*
7046
     || N - unlocked
7047
     || Y - release and locked
7048
     || P - penging approval
7049
     || A - approved package ready for auto-build
7050
     */
7051
     IF cdlock = 'N' OR cdlock = 'R'
7052
     THEN
7053
       -- WORK IN PROGRESS --
7054
       RETURN 0;
7055
     ELSIF cdlock = 'P' OR cdlock = 'A'
7056
     THEN
7057
       -- PENDING --
7058
       RETURN 1;
7059
     ELSIF cdlock = 'Y'
7060
     THEN
7061
       -- RELEASED --
7062
       RETURN 2;
7063
     ELSE
7064
       -- NOT FOUND --
7065
       raise_application_error
7066
                   (-20000,
7067
                      'Cannot decide where to place package. [cDlock='
7068
                    || cdlock
7069
                    || ']'
7070
                   );
7071
     END IF;
7072
   END;
7073
 
7074
/*-------------------------------------------------------------------------------------------------------*/
7075
   FUNCTION get_package_area (pvid IN NUMBER, rtagid IN NUMBER)
7076
     RETURN NUMBER
7077
   IS
7078
     envtab   NUMBER         := -1;
7079
 
7080
     CURSOR curarea
7081
     IS
7082
       SELECT 2 AS envtab
7083
         FROM release_content rc
7084
        WHERE rc.rtag_id = rtagid AND rc.pv_id = pvid
7085
       UNION
7086
       SELECT 0 AS envtab
7087
         FROM work_in_progress wip
7088
        WHERE wip.rtag_id = rtagid AND wip.pv_id = pvid
7089
       UNION
7090
       SELECT 1 AS envtab
7091
         FROM planned pl
7092
        WHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;
7093
 
7094
     recarea   curarea%ROWTYPE;
7095
   BEGIN
7096
     OPEN curarea;
7097
 
7098
     FETCH curarea
7099
      INTO recarea;
7100
 
7101
     IF curarea%FOUND
7102
     THEN
7103
       envtab := recarea.envtab;
7104
     END IF;
7105
 
7106
     CLOSE curarea;
7107
 
7108
     RETURN envtab;
7109
   END;
7110
 
7111
/*-------------------------------------------------------------------------------------------------------*/
7112
   FUNCTION get_view_location (pvid IN NUMBER, rtagid IN NUMBER)
7113
     RETURN NUMBER
7114
   IS
7115
     ispatch   package_versions.dlocked%TYPE;
7116
     viewid   NUMBER                    := -1;
7117
 
7118
     CURSOR curview
7119
     IS
7120
       SELECT rc.base_view_id AS view_id
7121
         FROM release_content rc
7122
        WHERE rc.rtag_id = rtagid AND rc.pv_id = pvid
7123
       UNION
7124
       SELECT wip.view_id AS view_id
7125
         FROM work_in_progress wip
7126
        WHERE wip.rtag_id = rtagid AND wip.pv_id = pvid
7127
       UNION
7128
       SELECT pl.view_id AS view_id
7129
         FROM planned pl
7130
        WHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;
7131
 
7132
     recview   curview%ROWTYPE;
7133
   BEGIN
7134
     -- Get dlock state
7135
     SELECT pv.is_patch
7136
      INTO ispatch
7137
      FROM package_versions pv
7138
      WHERE pv.pv_id = pvid;
7139
 
7140
     -- Decide which view id should package go under.
7141
     IF (ispatch != 'Y') OR (ispatch IS NULL)
7142
     THEN
7143
       -- Get VIEW ID of Package
7144
       OPEN curview;
7145
 
7146
       FETCH curview
7147
        INTO recview;
7148
 
7149
       IF curview%FOUND
7150
       THEN
7151
         viewid := recview.view_id;
7152
       ELSE
7153
         raise_application_error
7154
            (-20000,
7155
               'Cannot find view_id to proceed. [PvId='
7156
            || pvid
7157
            || ']. The current version may not exist in the release anymore.'
7158
            );
7159
       END IF;
7160
 
7161
       CLOSE curview;
7162
     ELSE
7163
       -- Get VIEW ID of Patch (view id of parent package)
7164
       SELECT rc.base_view_id
7165
         INTO viewid
7166
         FROM release_content rc, package_patches ppv
7167
        WHERE rc.rtag_id = rtagid
7168
         AND rc.pv_id = ppv.pv_id
7169
         AND ppv.patch_id = pvid;
7170
     END IF;
7171
 
7172
     RETURN viewid;
7173
   END;
7174
 
7175
/*-------------------------------------------------------------------------------------------------------*/
5384 dpurdie 7176
--  Add a package to the specified release
7177
--  Default imode: Will determine the tab ( WIP, PENDING, RELEASE ) to add the package
7178
--  Otherwise will Add the package to the PENDING set
7179
--
1373 dpurdie 7180
   PROCEDURE add_package (
7181
     pvid    IN   NUMBER,
5384 dpurdie 7182
     viewid  IN   NUMBER,
7183
     rtagid  IN   NUMBER,
7184
     userid  IN   NUMBER,
7185
     imode   IN   CHAR default NULL
1373 dpurdie 7186
   )
7187
   IS
7188
     dlocked   package_versions.dlocked%TYPE;
7189
     envtab   NUMBER;
5384 dpurdie 7190
     pendOpr CHAR := 'R';
1373 dpurdie 7191
   BEGIN
7192
     IF can_edit_pkg_in_project (pvid, rtagid) = 1
7193
     THEN
5384 dpurdie 7194
       IF iMode IS NULL THEN
7195
         -- Determine the tab to use based on the package lock state
7196
         -- Get dlock state
7197
         SELECT pv.dlocked
7198
           INTO dlocked
7199
           FROM package_versions pv
7200
          WHERE pv.pv_id = pvid;
7201
 
7202
         -- Get which area should go under
7203
         envtab := select_environment_area (dlocked);
7204
       ELSE
7205
        -- Assume that the package is to be added to Pending
7206
        envtab := 1;
7207
        pendOpr := 'A';
7208
       END IF;
1373 dpurdie 7209
       -- Log
5172 dpurdie 7210
       --log_action (pvid, 'action', userid, 'Start of Package Add...');
1373 dpurdie 7211
 
5384 dpurdie 7212
       -- Add Package
1373 dpurdie 7213
       IF envtab = 0
7214
       THEN
7215
         -- WORK IN PROGRESS --
7216
         pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
7217
       ELSIF envtab = 1
7218
       THEN
7219
         -- PENDING --
5384 dpurdie 7220
         pk_planned.add_package (pvid, viewid, rtagid, userid, pendOpr);
1373 dpurdie 7221
       ELSIF envtab = 2
7222
       THEN
7223
         -- RELEASED --
7224
         -- NOTE: this package will be replaced with matching package
7225
         pk_release.add_package (pvid, viewid, rtagid, userid);
7226
         -- Now do post Release Actions
7227
         pk_release.run_post_actions (pvid, rtagid);
7228
       END IF;
7229
 
7230
       -- Log
5172 dpurdie 7231
       --log_action (pvid, 'action', userid, 'End of Package Add...');
1373 dpurdie 7232
     END IF;
7233
   END;
7234
 
7235
/*-------------------------------------------------------------------------------------------------------*/
7236
   PROCEDURE add_package_bulk (
7237
     pvidlist   IN   VARCHAR2,
7238
     viewid    IN   NUMBER,
7239
     rtagid    IN   NUMBER,
5384 dpurdie 7240
     userid    IN   NUMBER,
7241
     imode     IN   CHAR DEFAULT NULL
1373 dpurdie 7242
   )
7243
   IS
5384 dpurdie 7244
     nidcollector relmgr_number_tab_t         := relmgr_number_tab_t();
1373 dpurdie 7245
     dlocked      package_versions.dlocked%TYPE;
7246
     pvid         NUMBER;
7247
     envtab       NUMBER;
7248
   BEGIN
7249
     /*--------------- Business Rules Here -------------------*/
7250
     IF (pvidlist IS NULL)
7251
     THEN
7252
       raise_application_error (-20000,
7253
                          'Please select at least one package.'
7254
                         );
7255
     END IF;
7256
 
7257
/*-------------------------------------------------------*/
7258
     nidcollector := in_list_number (pvidlist);
7259
 
7260
     FOR i IN 1 .. nidcollector.COUNT
7261
     LOOP
7262
       pvid := nidcollector (i);
5384 dpurdie 7263
       add_package (pvid, viewid, rtagid, userid, imode);
1373 dpurdie 7264
     END LOOP;
7265
   END;
7266
 
7267
/*-------------------------------------------------------------------------------------------------------*/
7268
   PROCEDURE replace_package (
7269
     newpvid  IN   NUMBER,
7270
     oldpvid  IN   NUMBER,
7271
     rtagid   IN   NUMBER,
7272
     userid   IN   NUMBER
7273
   )
7274
   IS
7275
     dlocked      package_versions.dlocked%TYPE;
7276
     viewid       NUMBER;
7277
     envtab       NUMBER;
7278
     ROWCOUNT     NUMBER;
7279
     creleasemode CHAR (1);
7280
     npkgid       NUMBER;
7281
   BEGIN
7282
     /*--------------- Business Rules Here -------------------*/
7283
     -- Check if oldPvId exists. It could have been removed
7284
     SELECT COUNT (pv.pv_id)
7285
       INTO ROWCOUNT
7286
       FROM package_versions pv
7287
      WHERE pv.pv_id = oldpvid;
7288
 
7289
/*-------------------------------------------------------*/
7290
 
7291
     /* This procedure is usually used by "History" option in Release Manager */
7292
 
7293
     -- Get dlock state
7294
     SELECT pv.dlocked
7295
       INTO dlocked
7296
       FROM package_versions pv
7297
      WHERE pv.pv_id = newpvid;
7298
 
7299
     -- Get VIEW_ID ---
7300
     IF ROWCOUNT = 1
7301
     THEN
7302
       viewid := get_view_location (oldpvid, rtagid);
7303
     ELSE
7304
       -- Set ViewID to default
7305
       viewid := 7;
7306
     END IF;
7307
 
7308
     -- Get which area should go under
7309
     envtab := select_environment_area (dlocked);
7310
     -- Log
5172 dpurdie 7311
     --log_action (oldpvid, 'action', userid, 'Start of Package Replace...');
1373 dpurdie 7312
 
7313
     -- Replace package
7314
     IF envtab = 0
7315
     THEN
7316
       -- WORK IN PROGRESS --
7317
 
7318
       -- Delete old package
7319
       pk_work_in_progress.remove_package (oldpvid, rtagid, userid);
7320
 
7321
       -- Add new package
7322
       pk_work_in_progress.add_package (newpvid, viewid, rtagid, userid);
7323
     ELSIF envtab = 1
7324
     THEN
7325
       -- PENDING --
7326
 
7327
       -- Delete old package
7328
       pk_planned.remove_package (oldpvid, rtagid, userid);
7329
 
7330
       -- Add new package
7331
       pk_planned.add_package (newpvid, viewid, rtagid, userid);
7332
     ELSIF envtab = 2
7333
     THEN
7334
       -- RELEASED --
5172 dpurdie 7335
 
7336
       -- Replace Package
7337
       pk_release.replace_package(newpvid, oldpvid, rtagid, userid);
7338
 
1373 dpurdie 7339
       -- Now do post Release Actions
7340
       pk_release.run_post_actions (newpvid, rtagid);
7341
     END IF;
7342
 
7343
     -- Log
5172 dpurdie 7344
     --log_action (oldpvid, 'action', userid, 'End of Package Replace...');
1373 dpurdie 7345
   END;
7346
 
7347
/*-------------------------------------------------------------------------------------------------------*/
7348
   FUNCTION remove_package (
7349
     pvid        IN   NUMBER,
7350
     rtagid      IN   NUMBER,
7351
     userid      IN   NUMBER,
7352
     forceremove IN   CHAR
7353
   )
7354
     RETURN NUMBER
7355
   IS
7356
     envtab      NUMBER;
7357
     isused      BOOLEAN;
7358
     recordcount   NUMBER;
7359
   BEGIN
7360
/*--------------- Business Rules Here -------------------*/
7361
/*-------------------------------------------------------*/
7362
 
7363
     -- Find location of package
7364
     envtab := get_package_area (pvid, rtagid);
7365
 
7366
     -- Remove Package
7367
     IF envtab = 0
7368
     THEN
7369
       -- WORK IN PROGRESS --
7370
       -- Delete package
7371
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
7372
 
7373
       RETURN 0;
7374
     ELSIF envtab = 1
7375
     THEN
7376
       -- PENDING --
7377
       -- Delete package
7378
       pk_planned.remove_package (pvid, rtagid, userid);
7379
 
7380
       RETURN 0;
7381
     ELSIF envtab = 2
7382
     THEN
7383
       -- RELEASED --
7384
 
7385
       -- Check if is used by other packages
7386
       isused := TRUE;
7387
 
7388
       IF forceremove = 'N'
7389
       THEN
5172 dpurdie 7390
          select count(dpv.PKG_ID) INTO recordcount from 
7391
          (SELECT  rc.pv_id
7392
          FROM RELEASE_CONTENT rc, PEGGED_VERSIONS peg
7393
            WHERE rc.rtag_id = rtagid
7394
            AND peg.RTAG_ID(+) = rc.RTAG_ID
7395
            AND peg.PV_ID(+) = rc.PV_ID
7396
            AND peg.rtag_id is null
7397
            AND rc.SDKTAG_ID is null
7398
            ) arc,
7399
          PACKAGE_DEPENDENCIES dep,
7400
          PACKAGE_VERSIONS pv,
7401
          PACKAGE_VERSIONS dpv,
7402
          PACKAGE_VERSIONS bpv
7403
          where dep.PV_ID = arc.pv_id
7404
          AND dep.pv_id = pv.pv_id
7405
          AND dep.dpv_id = dpv.PV_ID
7406
          AND dpv.PKG_ID = bpv.PKG_ID
7407
          AND NVL(dpv.V_EXT, '.NULL') = NVL(bpv.V_EXT, '.NULL')
7408
          AND bpv.pv_id = pvid;
1373 dpurdie 7409
 
7410
         IF recordcount > 0
7411
         THEN
7412
            RETURN 1;               -- Return 1 as package being used
7413
         ELSE
7414
            isused := FALSE;
7415
         END IF;
7416
       END IF;
7417
 
7418
       IF forceremove = 'Y' OR NOT isused
7419
       THEN
7420
         -- Delete old package
7421
         pk_release.remove_package (pvid, rtagid, userid);
7422
 
7423
         -- Delete old package's pegging info
7424
         DELETE FROM PEGGED_VERSIONS pegv WHERE pegv.RTAG_ID = rtagid AND pegv.PV_ID = pvid;
7425
 
7426
         -- Delete old package's advisory ripple info
7427
         DELETE FROM ADVISORY_RIPPLE avr WHERE avr.RTAG_ID = rtagid AND avr.PV_ID = pvid;
7428
 
7429
         -- Now do post Release Actions
7430
         pk_release.run_post_actions (pvid, rtagid);
7431
         RETURN 0;
7432
       END IF;
7433
     END IF;
7434
   END;
7435
 
7436
/*-------------------------------------------------------------------------------------------------------*/
7437
   -- DEVI-45275 added the return of the new "operation" column in the recordset.
7438
 
7439
   PROCEDURE get_environment_items (
7440
     viewtype         IN      NUMBER,
7441
     userid           IN      NUMBER,
7442
     rtagid           IN      NUMBER,
7443
     sviewidshowlist  IN      VARCHAR2,
7444
     ntruerecordcount OUT     NUMBER,
7445
     recordset        OUT     typecur
7446
   )
7447
   IS
7448
   BEGIN
7449
     -- Get true record count because views can give false count
7450
     SELECT COUNT (pl.pv_id)
7451
      INTO ntruerecordcount
7452
      FROM environment_view pl
7453
      WHERE pl.rtag_id = rtagid;
7454
 
7455
     IF viewtype = 1
7456
     THEN
7457
       /*--- GUEST VIEW ---*/
7458
       OPEN recordset FOR
7459
         SELECT   *
7460
            FROM (
7461
                 /* Base Views collapsed */
7462
                 SELECT DISTINCT vi.view_id, vi.view_name,
7463
                             TO_NUMBER (NULL) AS pkg_state,
7464
                             TO_NUMBER (NULL) AS deprecated_state,
7465
                             TO_NUMBER (NULL) AS pv_id,
7466
                             NULL AS pkg_name, NULL AS pkg_version,
7467
                             NULL AS dlocked, NULL AS pv_description,
7468
                             rel.operation
7469
                         FROM environment_view rel, views vi
7470
                        WHERE rel.view_id = vi.view_id
7471
                          AND rtag_id = rtagid
7472
                          AND rel.view_id NOT IN (
7473
                               SELECT *
7474
                                 FROM THE
7475
                                       (SELECT CAST
7476
                                               (in_list_number
7477
                                                  (sviewidshowlist
7478
                                                  ) AS relmgr_number_tab_t
7479
                                               )
7480
                                         FROM DUAL
7481
                                       ))
7482
                 UNION
7483
                 /* Base Views expanded */
7484
                 SELECT vi.view_id, vi.view_name,
7485
                      DECODE (rel.pkg_state,
7486
                            NULL, 0,
7487
                            rel.pkg_state
7488
                           ) AS pkg_state,
7489
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7490
                      pv.pkg_version, pv.dlocked, pv.pv_description,
7491
                      rel.operation
7492
                  FROM environment_view rel,
7493
                      PACKAGES pkg,
7494
                      package_versions pv,
7495
                      views vi
7496
                  WHERE pv.pkg_id = pkg.pkg_id
7497
                   AND rel.pv_id = pv.pv_id
7498
                   AND rel.view_id = vi.view_id
7499
                   AND rel.view_id IN (
7500
                        SELECT *
7501
                          FROM THE
7502
                                (SELECT CAST
7503
                                        (in_list_number
7504
                                               (sviewidshowlist) AS relmgr_number_tab_t
7505
                                        )
7506
                                  FROM DUAL
7507
                                ))
7508
                   AND rtag_id = rtagid) ord
7509
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7510
     ELSIF viewtype = 2
7511
     THEN
7512
       /*--- PERSONAL VIEW ---*/
7513
       OPEN recordset FOR
7514
         SELECT   *
7515
            FROM (
7516
                 /* Base Views collapsed */
7517
                 SELECT DISTINCT vi.view_id, vi.view_name,
7518
                             TO_NUMBER (NULL) AS pkg_state,
7519
                             TO_NUMBER (NULL) AS deprecated_state,
7520
                             TO_NUMBER (NULL) AS pv_id,
7521
                             NULL AS pkg_name, NULL AS pkg_version,
7522
                             NULL AS dlocked, NULL AS pv_description,
7523
                             rel.operation
7524
                         FROM environment_view rel,
7525
                             view_settings vs,
7526
                             views vi
7527
                        WHERE rel.view_id = vi.view_id
7528
                          AND vs.view_id = rel.view_id
7529
                          AND vs.user_id = userid
7530
                          AND rtag_id = rtagid
7531
                          AND rel.view_id NOT IN (
7532
                               SELECT *
7533
                                 FROM THE
7534
                                       (SELECT CAST
7535
                                               (in_list_number
7536
                                                  (sviewidshowlist
7537
                                                  ) AS relmgr_number_tab_t
7538
                                               )
7539
                                         FROM DUAL
7540
                                       ))
7541
                 UNION
7542
                 /* Base Views expanded */
7543
                 SELECT vi.view_id, vi.view_name,
7544
                      DECODE (rel.pkg_state,
7545
                            NULL, 0,
7546
                            rel.pkg_state
7547
                           ) AS pkg_state,
7548
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7549
                      pv.pkg_version, pv.dlocked, pv.pv_description,
7550
                      rel.operation
7551
                  FROM environment_view rel,
7552
                      PACKAGES pkg,
7553
                      package_versions pv,
7554
                      views vi,
7555
                      view_settings vs
7556
                  WHERE pv.pkg_id = pkg.pkg_id
7557
                   AND rel.pv_id = pv.pv_id
7558
                   AND rel.view_id = vi.view_id
7559
                   AND vs.view_id = vi.view_id
7560
                   AND vs.user_id = userid
7561
                   AND rel.view_id IN (
7562
                        SELECT *
7563
                          FROM THE
7564
                                (SELECT CAST
7565
                                        (in_list_number
7566
                                               (sviewidshowlist) AS relmgr_number_tab_t
7567
                                        )
7568
                                  FROM DUAL
7569
                                ))
7570
                   AND rtag_id = rtagid
7571
                 UNION
7572
                 /* Private Views collapsed */
7573
                 SELECT vi.view_id, vi.view_name,
7574
                      TO_NUMBER (NULL) AS pkg_state,
7575
                      TO_NUMBER (NULL) AS deprecated_state,
7576
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
7577
                      NULL AS pkg_version, NULL AS dlocked,
7578
                      NULL AS pv_description,
7579
                      rel.operation
7580
                  FROM view_settings vs,
7581
                      view_def vd,
7582
                      views vi,
7583
                      environment_view rel,
7584
                      package_versions pv
7585
                  WHERE vs.view_id = vi.view_id
7586
                   AND rel.pv_id = pv.pv_id
7587
                   AND vd.pkg_id = pv.pkg_id
7588
                   AND vd.view_id = vi.view_id
7589
                   AND vi.base_view = 'N'
7590
                   AND rel.rtag_id = rtagid
7591
                   AND vs.user_id = userid
7592
                   AND vi.view_id NOT IN (
7593
                        SELECT *
7594
                          FROM THE
7595
                                (SELECT CAST
7596
                                        (in_list_number
7597
                                               (sviewidshowlist) AS relmgr_number_tab_t
7598
                                        )
7599
                                  FROM DUAL
7600
                                ))
7601
                 UNION
7602
                 /* Private Views expanded */
7603
                 SELECT vi.view_id, vi.view_name,
7604
                      DECODE (rel.pkg_state,
7605
                            NULL, 0,
7606
                            rel.pkg_state
7607
                           ) AS pkg_state,
7608
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7609
                      pv.pkg_version, pv.dlocked, pv.pv_description,
7610
                      rel.operation
7611
                  FROM users usr,
7612
                      view_settings vs,
7613
                      view_def vd,
7614
                      views vi,
7615
                      environment_view rel,
7616
                      PACKAGES pkg,
7617
                      package_versions pv
7618
                  WHERE vs.user_id = usr.user_id
7619
                   AND vs.view_id = vi.view_id
7620
                   AND vd.view_id = vi.view_id
7621
                   AND pv.pkg_id = pkg.pkg_id
7622
                   AND rel.pv_id = pv.pv_id
7623
                   AND rel.rtag_id = rtagid
7624
                   AND vd.pkg_id = pkg.pkg_id
7625
                   AND vi.base_view = 'N'
7626
                   AND vi.view_id IN (
7627
                        SELECT *
7628
                          FROM THE
7629
                                (SELECT CAST
7630
                                        (in_list_number
7631
                                               (sviewidshowlist) AS relmgr_number_tab_t
7632
                                        )
7633
                                  FROM DUAL
7634
                                ))
7635
                   AND usr.user_id = userid) ord
7636
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7637
     END IF;
7638
   END;
7639
 
7640
/*-------------------------------------------------------------------------------------------------------*/
7641
   PROCEDURE get_released_items (
7642
     viewtype         IN      NUMBER,
7643
     userid           IN      NUMBER,
7644
     rtagid           IN      NUMBER,
7645
     sviewidshowlist  IN      VARCHAR2,
7646
     ntruerecordcount OUT     NUMBER,
7647
     recordset        OUT     typecur
7648
   )
7649
   IS
7650
   BEGIN
7651
     -- Get true record count because views can give false count
7652
     SELECT COUNT (rc.pv_id)
7653
      INTO ntruerecordcount
7654
      FROM release_content rc
7655
      WHERE rc.rtag_id = rtagid;
7656
 
7657
     IF viewtype = 1
7658
     THEN
7659
       /*--- GUEST VIEW ---*/
7660
       OPEN recordset FOR
7661
         SELECT   *
7662
            FROM (
7663
                 /* Base Views collapsed */
7664
                 SELECT DISTINCT vi.view_id, vi.view_name,
7665
                             TO_NUMBER (NULL) AS pkg_state,
7666
                             TO_NUMBER (NULL) AS deprecated_state,
7667
                             TO_NUMBER (NULL) AS pv_id,
7668
                             NULL AS pkg_name, NULL AS pkg_version,
7669
                             NULL AS dlocked, NULL AS pv_description
7670
                         FROM release_content rel, views vi
7671
                        WHERE rel.base_view_id = vi.view_id
7672
                          AND rtag_id = rtagid
7673
                          AND rel.base_view_id NOT IN (
7674
                               SELECT *
7675
                                 FROM THE
7676
                                       (SELECT CAST
7677
                                               (in_list_number
7678
                                                  (sviewidshowlist
7679
                                                  ) AS relmgr_number_tab_t
7680
                                               )
7681
                                         FROM DUAL
7682
                                       ))
7683
                 UNION
7684
                 /* Base Views expanded */
7685
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
7686
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7687
                      pv.pkg_version, pv.dlocked, pv.pv_description
7688
                  FROM release_content rel,
7689
                      PACKAGES pkg,
7690
                      package_versions pv,
7691
                      views vi
7692
                  WHERE pv.pkg_id = pkg.pkg_id
7693
                   AND rel.pv_id = pv.pv_id
7694
                   AND rel.base_view_id = vi.view_id
7695
                   AND rel.base_view_id IN (
7696
                        SELECT *
7697
                          FROM THE
7698
                                (SELECT CAST
7699
                                        (in_list_number
7700
                                               (sviewidshowlist) AS relmgr_number_tab_t
7701
                                        )
7702
                                  FROM DUAL
7703
                                ))
7704
                   AND rtag_id = rtagid) ord
7705
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7706
     ELSIF viewtype = 2
7707
     THEN
7708
       /*--- PERSONAL VIEW ---*/
7709
       OPEN recordset FOR
7710
         SELECT   *
7711
            FROM (
7712
                 /* Base Views collapsed */
7713
                 SELECT DISTINCT vi.view_id, vi.view_name,
7714
                             TO_NUMBER (NULL) AS pkg_state,
7715
                             TO_NUMBER (NULL) AS deprecated_state,
7716
                             TO_NUMBER (NULL) AS pv_id,
7717
                             NULL AS pkg_name, NULL AS pkg_version,
7718
                             NULL AS dlocked, NULL AS pv_description
7719
                         FROM release_content rel,
7720
                             view_settings vs,
7721
                             views vi
7722
                        WHERE rel.base_view_id = vi.view_id
7723
                          AND vs.view_id = rel.base_view_id
7724
                          AND vs.user_id = userid
7725
                          AND rtag_id = rtagid
7726
                          AND rel.base_view_id NOT IN (
7727
                               SELECT *
7728
                                 FROM THE
7729
                                       (SELECT CAST
7730
                                               (in_list_number
7731
                                                  (sviewidshowlist
7732
                                                  ) AS relmgr_number_tab_t
7733
                                               )
7734
                                         FROM DUAL
7735
                                       ))
7736
                 UNION
7737
                 /* Base Views expanded */
7738
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
7739
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7740
                      pv.pkg_version, pv.dlocked, pv.pv_description
7741
                  FROM release_content rel,
7742
                      PACKAGES pkg,
7743
                      package_versions pv,
7744
                      views vi,
7745
                      view_settings vs
7746
                  WHERE pv.pkg_id = pkg.pkg_id
7747
                   AND rel.pv_id = pv.pv_id
7748
                   AND rel.base_view_id = vi.view_id
7749
                   AND vs.view_id = vi.view_id
7750
                   AND vs.user_id = userid
7751
                   AND rel.base_view_id IN (
7752
                        SELECT *
7753
                          FROM THE
7754
                                (SELECT CAST
7755
                                        (in_list_number
7756
                                               (sviewidshowlist) AS relmgr_number_tab_t
7757
                                        )
7758
                                  FROM DUAL
7759
                                ))
7760
                   AND rtag_id = rtagid
7761
                 UNION
7762
                 /* Private Views collapsed */
7763
                 SELECT vi.view_id, vi.view_name,
7764
                      TO_NUMBER (NULL) AS pkg_state,
7765
                      TO_NUMBER (NULL) AS deprecated_state,
7766
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
7767
                      NULL AS pkg_version, NULL AS dlocked,
7768
                      NULL AS pv_description
7769
                  FROM view_settings vs,
7770
                      view_def vd,
7771
                      views vi,
7772
                      release_content rel,
7773
                      package_versions pv
7774
                  WHERE vs.view_id = vi.view_id
7775
                   AND rel.pv_id = pv.pv_id
7776
                   AND vd.pkg_id = pv.pkg_id
7777
                   AND vd.view_id = vi.view_id
7778
                   AND vi.base_view = 'N'
7779
                   AND rel.rtag_id = rtagid
7780
                   AND vs.user_id = userid
7781
                   AND vi.view_id NOT IN (
7782
                        SELECT *
7783
                          FROM THE
7784
                                (SELECT CAST
7785
                                        (in_list_number
7786
                                               (sviewidshowlist) AS relmgr_number_tab_t
7787
                                        )
7788
                                  FROM DUAL
7789
                                ))
7790
                 UNION
7791
                 /* Private Views expanded */
7792
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
7793
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7794
                      pv.pkg_version, pv.dlocked, pv.pv_description
7795
                  FROM users usr,
7796
                      view_settings vs,
7797
                      view_def vd,
7798
                      views vi,
7799
                      release_content rel,
7800
                      PACKAGES pkg,
7801
                      package_versions pv
7802
                  WHERE vs.user_id = usr.user_id
7803
                   AND vs.view_id = vi.view_id
7804
                   AND vd.view_id = vi.view_id
7805
                   AND pv.pkg_id = pkg.pkg_id
7806
                   AND rel.pv_id = pv.pv_id
7807
                   AND rel.rtag_id = rtagid
7808
                   AND vd.pkg_id = pkg.pkg_id
7809
                   AND vi.base_view = 'N'
7810
                   AND vi.view_id IN (
7811
                        SELECT *
7812
                          FROM THE
7813
                                (SELECT CAST
7814
                                        (in_list_number
7815
                                               (sviewidshowlist) AS relmgr_number_tab_t
7816
                                        )
7817
                                  FROM DUAL
7818
                                ))
7819
                   AND usr.user_id = userid) ord
7820
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7821
     END IF;
7822
   END;
7823
 
7824
/*-------------------------------------------------------------------------------------------------------*/
7825
   PROCEDURE get_work_in_progress_items (
7826
     viewtype         IN      NUMBER,
7827
     userid           IN      NUMBER,
7828
     rtagid           IN      NUMBER,
7829
     sviewidshowlist  IN      VARCHAR2,
7830
     ntruerecordcount OUT     NUMBER,
7831
     recordset        OUT     typecur
7832
   )
7833
   IS
7834
   BEGIN
7835
     -- Get true record count because views can give false count
7836
     SELECT COUNT (wip.pv_id)
7837
      INTO ntruerecordcount
7838
      FROM work_in_progress wip
7839
      WHERE wip.rtag_id = rtagid;
7840
 
7841
     IF viewtype = 1
7842
     THEN
7843
       /*--- GUEST VIEW ---*/
7844
       OPEN recordset FOR
7845
         SELECT   *
7846
            FROM (
7847
                 /* Base Views collapsed */
7848
                 SELECT DISTINCT vi.view_id, vi.view_name,
7849
                             TO_NUMBER (NULL) AS pkg_state,
7850
                             TO_NUMBER (NULL) AS deprecated_state,
7851
                             TO_NUMBER (NULL) AS pv_id,
7852
                             NULL AS pkg_name, NULL AS pkg_version,
7853
                             NULL AS dlocked, NULL AS pv_description
7854
                         FROM work_in_progress rel, views vi
7855
                        WHERE rel.view_id = vi.view_id
7856
                          AND rtag_id = rtagid
7857
                          AND rel.view_id NOT IN (
7858
                               SELECT *
7859
                                 FROM THE
7860
                                       (SELECT CAST
7861
                                               (in_list_number
7862
                                                  (sviewidshowlist
7863
                                                  ) AS relmgr_number_tab_t
7864
                                               )
7865
                                         FROM DUAL
7866
                                       ))
7867
                 UNION
7868
                 /* Base Views expanded */
7869
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
7870
 
7871
                      --rel.pkg_state,
7872
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
7873
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
7874
                      pv.pv_description
7875
                  FROM work_in_progress rel,
7876
                      PACKAGES pkg,
7877
                      package_versions pv,
7878
                      views vi
7879
                  WHERE pv.pkg_id = pkg.pkg_id
7880
                   AND rel.pv_id = pv.pv_id
7881
                   AND rel.view_id = vi.view_id
7882
                   AND rel.view_id IN (
7883
                        SELECT *
7884
                          FROM THE
7885
                                (SELECT CAST
7886
                                        (in_list_number
7887
                                               (sviewidshowlist) AS relmgr_number_tab_t
7888
                                        )
7889
                                  FROM DUAL
7890
                                ))
7891
                   AND rtag_id = rtagid) ord
7892
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7893
     ELSIF viewtype = 2
7894
     THEN
7895
       /*--- PERSONAL VIEW ---*/
7896
       OPEN recordset FOR
7897
         SELECT   *
7898
            FROM (
7899
                 /* Base Views collapsed */
7900
                 SELECT DISTINCT vi.view_id, vi.view_name,
7901
                             TO_NUMBER (NULL) AS pkg_state,
7902
                             TO_NUMBER (NULL) AS deprecated_state,
7903
                             TO_NUMBER (NULL) AS pv_id,
7904
                             NULL AS pkg_name, NULL AS pkg_version,
7905
                             NULL AS dlocked, NULL AS pv_description
7906
                         FROM work_in_progress rel,
7907
                             view_settings vs,
7908
                             views vi
7909
                        WHERE rel.view_id = vi.view_id
7910
                          AND vs.view_id = rel.view_id
7911
                          AND vs.user_id = userid
7912
                          AND rtag_id = rtagid
7913
                          AND rel.view_id NOT IN (
7914
                               SELECT *
7915
                                 FROM THE
7916
                                       (SELECT CAST
7917
                                               (in_list_number
7918
                                                  (sviewidshowlist
7919
                                                  ) AS relmgr_number_tab_t
7920
                                               )
7921
                                         FROM DUAL
7922
                                       ))
7923
                 UNION
7924
                 /* Base Views expanded */
7925
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
7926
 
7927
                      --rel.pkg_state,
7928
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
7929
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
7930
                      pv.pv_description
7931
                  FROM work_in_progress rel,
7932
                      PACKAGES pkg,
7933
                      package_versions pv,
7934
                      views vi,
7935
                      view_settings vs
7936
                  WHERE pv.pkg_id = pkg.pkg_id
7937
                   AND rel.pv_id = pv.pv_id
7938
                   AND rel.view_id = vi.view_id
7939
                   AND vs.view_id = vi.view_id
7940
                   AND vs.user_id = userid
7941
                   AND rel.view_id IN (
7942
                        SELECT *
7943
                          FROM THE
7944
                                (SELECT CAST
7945
                                        (in_list_number
7946
                                               (sviewidshowlist) AS relmgr_number_tab_t
7947
                                        )
7948
                                  FROM DUAL
7949
                                ))
7950
                   AND rtag_id = rtagid
7951
                 UNION
7952
                 /* Private Views collapsed */
7953
                 SELECT vi.view_id, vi.view_name,
7954
                      TO_NUMBER (NULL) AS pkg_state,
7955
                      TO_NUMBER (NULL) AS deprecated_state,
7956
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
7957
                      NULL AS pkg_version, NULL AS dlocked,
7958
                      NULL AS pv_description
7959
                  FROM view_settings vs,
7960
                      view_def vd,
7961
                      views vi,
7962
                      work_in_progress rel,
7963
                      package_versions pv
7964
                  WHERE vs.view_id = vi.view_id
7965
                   AND rel.pv_id = pv.pv_id
7966
                   AND vd.pkg_id = pv.pkg_id
7967
                   AND vd.view_id = vi.view_id
7968
                   AND vi.base_view = 'N'
7969
                   AND rel.rtag_id = rtagid
7970
                   AND vs.user_id = userid
7971
                   AND vi.view_id NOT IN (
7972
                        SELECT *
7973
                          FROM THE
7974
                                (SELECT CAST
7975
                                        (in_list_number
7976
                                               (sviewidshowlist) AS relmgr_number_tab_t
7977
                                        )
7978
                                  FROM DUAL
7979
                                ))
7980
                 UNION
7981
                 /* Private Views expanded */
7982
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
7983
 
7984
                      --rel.pkg_state,
7985
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
7986
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
7987
                      pv.pv_description
7988
                  FROM users usr,
7989
                      view_settings vs,
7990
                      view_def vd,
7991
                      views vi,
7992
                      work_in_progress rel,
7993
                      PACKAGES pkg,
7994
                      package_versions pv
7995
                  WHERE vs.user_id = usr.user_id
7996
                   AND vs.view_id = vi.view_id
7997
                   AND vd.view_id = vi.view_id
7998
                   AND pv.pkg_id = pkg.pkg_id
7999
                   AND rel.pv_id = pv.pv_id
8000
                   AND rel.rtag_id = rtagid
8001
                   AND vd.pkg_id = pkg.pkg_id
8002
                   AND vi.base_view = 'N'
8003
                   AND vi.view_id IN (
8004
                        SELECT *
8005
                          FROM THE
8006
                                (SELECT CAST
8007
                                        (in_list_number
8008
                                               (sviewidshowlist) AS relmgr_number_tab_t
8009
                                        )
8010
                                  FROM DUAL
8011
                                ))
8012
                   AND usr.user_id = userid) ord
8013
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8014
     END IF;
8015
   END;
8016
 
8017
/*-------------------------------------------------------------------------------------------------------*/
8018
   -- DEVI-45275 added the return of the new "operation" column in the recordset.
8019
 
8020
   PROCEDURE get_pending_items (
8021
     viewtype         IN      NUMBER,
8022
     userid           IN      NUMBER,
8023
     rtagid           IN      NUMBER,
8024
     sviewidshowlist  IN      VARCHAR2,
8025
     ntruerecordcount OUT     NUMBER,
8026
     recordset        OUT     typecur
8027
   )
8028
   IS
8029
   BEGIN
8030
     -- Get true record count because views can give false count
8031
     SELECT COUNT (pl.pv_id)
8032
      INTO ntruerecordcount
8033
      FROM planned pl
8034
      WHERE pl.rtag_id = rtagid;
8035
 
8036
     IF viewtype = 1
8037
     THEN
8038
       /*--- GUEST VIEW ---*/
8039
       OPEN recordset FOR
8040
         SELECT   *
8041
            FROM (
8042
                 /* Base Views collapsed */
8043
                 SELECT DISTINCT vi.view_id, vi.view_name,
8044
                             TO_NUMBER (NULL) AS pkg_state,
8045
                             TO_NUMBER (NULL) AS deprecated_state,
8046
                             TO_NUMBER (NULL) AS pv_id,
8047
                             NULL AS pkg_name, NULL AS pkg_version,
8048
                             NULL AS dlocked, NULL AS pv_description,
8049
                             rel.operation
8050
                         FROM planned rel, views vi
8051
                        WHERE rel.view_id = vi.view_id
8052
                          AND rtag_id = rtagid
8053
                          AND rel.view_id NOT IN (
8054
                               SELECT *
8055
                                 FROM THE
8056
                                       (SELECT CAST
8057
                                               (in_list_number
8058
                                                  (sviewidshowlist
8059
                                                  ) AS relmgr_number_tab_t
8060
                                               )
8061
                                         FROM DUAL
8062
                                       ))
8063
                 UNION
8064
                 /* Base Views expanded */
8065
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8066
 
8067
                      --rel.pkg_state,
8068
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8069
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8070
                      pv.pv_description,
8071
                      rel.operation
8072
                  FROM planned rel,
8073
                      PACKAGES pkg,
8074
                      package_versions pv,
8075
                      views vi
8076
                  WHERE pv.pkg_id = pkg.pkg_id
8077
                   AND rel.pv_id = pv.pv_id
8078
                   AND rel.view_id = vi.view_id
8079
                   AND rel.view_id IN (
8080
                        SELECT *
8081
                          FROM THE
8082
                                (SELECT CAST
8083
                                        (in_list_number
8084
                                               (sviewidshowlist) AS relmgr_number_tab_t
8085
                                        )
8086
                                  FROM DUAL
8087
                                ))
8088
                   AND rtag_id = rtagid) ord
8089
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8090
     ELSIF viewtype = 2
8091
     THEN
8092
       /*--- PERSONAL VIEW ---*/
8093
       OPEN recordset FOR
8094
         SELECT   *
8095
            FROM (
8096
                 /* Base Views collapsed */
8097
                 SELECT DISTINCT vi.view_id, vi.view_name,
8098
                             TO_NUMBER (NULL) AS pkg_state,
8099
                             TO_NUMBER (NULL) AS deprecated_state,
8100
                             TO_NUMBER (NULL) AS pv_id,
8101
                             NULL AS pkg_name, NULL AS pkg_version,
8102
                             NULL AS dlocked, NULL AS pv_description,
8103
                             rel.operation
8104
                         FROM planned rel, view_settings vs, views vi
8105
                        WHERE rel.view_id = vi.view_id
8106
                          AND vs.view_id = rel.view_id
8107
                          AND vs.user_id = userid
8108
                          AND rtag_id = rtagid
8109
                          AND rel.view_id NOT IN (
8110
                               SELECT *
8111
                                 FROM THE
8112
                                       (SELECT CAST
8113
                                               (in_list_number
8114
                                                  (sviewidshowlist
8115
                                                  ) AS relmgr_number_tab_t
8116
                                               )
8117
                                         FROM DUAL
8118
                                       ))
8119
                 UNION
8120
                 /* Base Views expanded */
8121
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8122
 
8123
                      --rel.pkg_state,
8124
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8125
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8126
                      pv.pv_description,
8127
                      rel.operation
8128
                  FROM planned rel,
8129
                      PACKAGES pkg,
8130
                      package_versions pv,
8131
                      views vi,
8132
                      view_settings vs
8133
                  WHERE pv.pkg_id = pkg.pkg_id
8134
                   AND rel.pv_id = pv.pv_id
8135
                   AND rel.view_id = vi.view_id
8136
                   AND vs.view_id = vi.view_id
8137
                   AND vs.user_id = userid
8138
                   AND rel.view_id IN (
8139
                        SELECT *
8140
                          FROM THE
8141
                                (SELECT CAST
8142
                                        (in_list_number
8143
                                               (sviewidshowlist) AS relmgr_number_tab_t
8144
                                        )
8145
                                  FROM DUAL
8146
                                ))
8147
                   AND rtag_id = rtagid
8148
                 UNION
8149
                 /* Private Views collapsed */
8150
                 SELECT vi.view_id, vi.view_name,
8151
                      TO_NUMBER (NULL) AS pkg_state,
8152
                      TO_NUMBER (NULL) AS deprecated_state,
8153
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
8154
                      NULL AS pkg_version, NULL AS dlocked,
8155
                      NULL AS pv_description,
8156
                      rel.operation
8157
                  FROM view_settings vs,
8158
                      view_def vd,
8159
                      views vi,
8160
                      planned rel,
8161
                      package_versions pv
8162
                  WHERE vs.view_id = vi.view_id
8163
                   AND rel.pv_id = pv.pv_id
8164
                   AND vd.pkg_id = pv.pkg_id
8165
                   AND vd.view_id = vi.view_id
8166
                   AND vi.base_view = 'N'
8167
                   AND rel.rtag_id = rtagid
8168
                   AND vs.user_id = userid
8169
                   AND vi.view_id NOT IN (
8170
                        SELECT *
8171
                          FROM THE
8172
                                (SELECT CAST
8173
                                        (in_list_number
8174
                                               (sviewidshowlist) AS relmgr_number_tab_t
8175
                                        )
8176
                                  FROM DUAL
8177
                                ))
8178
                 UNION
8179
                 /* Private Views expanded */
8180
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8181
 
8182
                      --rel.pkg_state,
8183
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8184
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8185
                      pv.pv_description,
8186
                      rel.operation
8187
                  FROM users usr,
8188
                      view_settings vs,
8189
                      view_def vd,
8190
                      views vi,
8191
                      planned rel,
8192
                      PACKAGES pkg,
8193
                      package_versions pv
8194
                  WHERE vs.user_id = usr.user_id
8195
                   AND vs.view_id = vi.view_id
8196
                   AND vd.view_id = vi.view_id
8197
                   AND pv.pkg_id = pkg.pkg_id
8198
                   AND rel.pv_id = pv.pv_id
8199
                   AND rel.rtag_id = rtagid
8200
                   AND vd.pkg_id = pkg.pkg_id
8201
                   AND vi.base_view = 'N'
8202
                   AND vi.view_id IN (
8203
                        SELECT *
8204
                          FROM THE
8205
                                (SELECT CAST
8206
                                        (in_list_number
8207
                                               (sviewidshowlist) AS relmgr_number_tab_t
8208
                                        )
8209
                                  FROM DUAL
8210
                                ))
8211
                   AND usr.user_id = userid) ord
8212
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8213
     END IF;
8214
   END;
8215
 
8216
/*-------------------------------------------------------------------------------------------------------*/
8217
   PROCEDURE get_view_content (
8218
     rtagid     IN      NUMBER,
8219
     viewid     IN      NUMBER,
8220
     recordset OUT     typecur
8221
   )
8222
   IS
8223
     isbaseview   CHAR (1);
8224
   BEGIN
8225
     -- Check if the view is BASE VIEW
8226
     SELECT vi.base_view
8227
      INTO isbaseview
8228
      FROM views vi
8229
      WHERE vi.view_id = viewid;
8230
 
5172 dpurdie 8231
     IF (IsBaseView IN ('Y', 'S'))
1373 dpurdie 8232
     THEN
8233
       -- Get Base view content
8234
       OPEN recordset FOR
8235
         SELECT   DECODE (rel.pkg_state,
8236
                      NULL, 0,
8237
                      rel.pkg_state
8238
                     ) AS pkg_state,
8239
                rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8240
                pv.pkg_version, pv.dlocked, pv.pv_description,
8241
                pv.build_type,
8242
                rel.operation
8243
            FROM environment_view rel, PACKAGES pkg, package_versions pv
8244
            WHERE pv.pkg_id = pkg.pkg_id
8245
             AND rel.pv_id = pv.pv_id
8246
             AND rel.view_id = viewid
8247
             AND rel.rtag_id = rtagid
8248
         ORDER BY UPPER (pkg.pkg_name);
8249
     ELSE
8250
       -- Get non base view content
8251
       OPEN recordset FOR
8252
         SELECT   DECODE (rel.pkg_state,
8253
                      NULL, 0,
8254
                      rel.pkg_state
8255
                     ) AS pkg_state,
8256
                rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8257
                pv.pkg_version, pv.dlocked, pv.pv_description,
8258
                pv.build_type,
8259
                rel.operation
8260
            FROM environment_view rel,
8261
                PACKAGES pkg,
8262
                package_versions pv,
8263
                view_def vd
8264
            WHERE pv.pkg_id = pkg.pkg_id
8265
             AND rel.pv_id = pv.pv_id
8266
             AND rel.rtag_id = rtagid
8267
             AND vd.view_id = viewid
8268
             AND vd.pkg_id = pv.pkg_id
8269
         ORDER BY UPPER (pkg.pkg_name);
8270
     END IF;
8271
   END;
8272
 
8273
/*-------------------------------------------------------------------------------------------------------*/
8274
   FUNCTION get_package_view (pvid IN NUMBER, rtagid IN NUMBER)
8275
     RETURN NUMBER
8276
   IS
8277
     envtab           NUMBER;
8278
     returnvalue      NUMBER;
8279
     return_not_found NUMBER := -1;
8280
   BEGIN
8281
     envtab := get_package_area (pvid, rtagid);
8282
 
8283
     IF envtab = 0
8284
     THEN
8285
       -- WORK IN PROGRESS --
8286
       returnvalue := pk_work_in_progress.get_package_view (pvid, rtagid);
8287
     ELSIF envtab = 1
8288
     THEN
8289
       -- PENDING --
8290
       returnvalue := pk_planned.get_package_view (pvid, rtagid);
8291
     ELSIF envtab = 2
8292
     THEN
8293
       -- RELEASED --
8294
       returnvalue := pk_release.get_package_view (pvid, rtagid);
8295
     ELSE
8296
       -- This may be a Patch not located anywhere but unlocked
8297
       returnvalue := return_not_found;
8298
     END IF;
8299
 
8300
     RETURN returnvalue;
8301
   END;
8302
 
8303
/*-------------------------------------------------------------------------------------------------------*/
5172 dpurdie 8304
  PROCEDURE make_release (
4585 dpurdie 8305
     pvid          IN   NUMBER,                         -- NEW  PKG pvid
8306
     rtagid        IN   NUMBER,                         -- Release Id
8307
     userid        IN   NUMBER                          -- User performing Release
8308
   )
1373 dpurdie 8309
   IS
8310
     viewid        NUMBER;
8311
     envtab        NUMBER;
8312
     ispatch       CHAR (1) := NULL;
8313
     buildtype     CHAR (1) := NULL;
8314
   BEGIN
8315
     -- Check if package is patch
8316
     SELECT pv.is_patch, pv.build_type
8317
      INTO ispatch, buildtype
8318
      FROM package_versions pv
8319
      WHERE pv.pv_id = pvid;
8320
 
8321
     -- Get ViewId
8322
     viewid := get_package_view (pvid, rtagid);
8323
     -- Remove from current area
8324
     envtab := pk_environment.get_package_area (pvid, rtagid);
8325
 
8326
     -- Make sure that package was in work-in-progress or pending before makeing it release
8327
     -- Exclude patches, ripple builds
8328
     IF (envtab < 0)
8329
     THEN
8330
       -- Not found in work-in-progress or pending
8331
       IF (ispatch IS NULL) AND (buildtype = 'M')
8332
       THEN
8333
         raise_application_error (-20000,
8334
                            'This package cannot be released here.'
8335
                           );
8336
       END IF;
8337
     END IF;
8338
 
8339
     -- Log
5172 dpurdie 8340
     --log_action (pvid, 'action', userid, 'Start of Make Package Release...');
1373 dpurdie 8341
 
8342
     IF envtab = 0
8343
     THEN
8344
       -- WORK IN PROGRESS --
8345
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
8346
     ELSIF envtab = 1
8347
     THEN
8348
       -- PENDING --
8349
       pk_planned.remove_package (pvid, rtagid, userid);
8350
     END IF;
8351
 
8352
     -- Change package state
4585 dpurdie 8353
     -- Set dlocked state to mark the package a 'Released and Locked'
1373 dpurdie 8354
     pk_package.change_state (pvid, 'Y', userid);
8355
 
8356
     -- Make sure it is valid BASE VIEW
8357
     IF viewid < 1
8358
     THEN
8359
       viewid := 7;                     -- This is default base view
8360
     END IF;
8361
 
8362
     IF (ispatch IS NULL)
8363
     THEN
4585 dpurdie 8364
       -- Add (Replace) package to new area
1373 dpurdie 8365
       pk_release.add_package (pvid, viewid, rtagid, userid);
8366
     END IF;
8367
 
8368
     -- Now do post Release Actions
8369
     pk_release.run_post_actions (pvid, rtagid);
8370
 
8371
     -- The release has changed and there may now be invalid rtag_id/pv_id combinations in
8372
     -- the DO_NOT_RIPPLE and ADVISORY_RIPPLE Tables so perform a clean-up operation upon them.
8373
     clean_do_not_ripple(rtagid);
8374
     clean_advisory_ripple(rtagid);
8375
 
8376
     -- Log
5172 dpurdie 8377
     --log_action (pvid, 'action', userid, 'End of Make Package Release...');
1373 dpurdie 8378
   END;
8379
 
8380
/*-------------------------------------------------------------------------------------------------------*/
4585 dpurdie 8381
  --  Release a specified package into a specified release
8382
  --
8383
  --  Similar to 'make_release', but it attempts to handle the case where a package-version
8384
  --  is being replaced with one with a different package-suffix, but it doesn't
8385
  --  handle all the cases well. 
8386
  --
8387
  --  The current build system cannot do this automatically - yet
8388
  --
8389
  --
1373 dpurdie 8390
   PROCEDURE auto_make_release (
4585 dpurdie 8391
     pvid          IN   NUMBER,                         -- NEW  PKG pvid
8392
     rtagid        IN   NUMBER,                         -- Release Id
8393
     userid        IN   NUMBER,                         -- User performing Release
8394
     vext          IN   package_versions.v_ext%TYPE,    -- Package Extension for original pkg
8395
     ssv_ext       IN   package_versions.v_ext%TYPE,    -- Package Extension for new package
8396
     clonefrompvid IN   NUMBER                          -- PVID of Original
1373 dpurdie 8397
   )
8398
   IS
8399
     viewid        NUMBER;
8400
     envtab        NUMBER;
4585 dpurdie 8401
 
8402
     clone_removal NUMBER := 0;
8403
     clone_viewid  NUMBER := -1;
8404
     clone_envtab  NUMBER := -1;
8405
 
1373 dpurdie 8406
     ispatch       CHAR (1) := NULL;
4585 dpurdie 8407
     buildtype     CHAR (1) := NULL;
8408
 
1373 dpurdie 8409
   BEGIN
8410
     -- Check if package is patch
8411
     SELECT pv.is_patch, pv.build_type
8412
      INTO ispatch, buildtype
8413
      FROM package_versions pv
8414
      WHERE pv.pv_id = pvid;
8415
 
4585 dpurdie 8416
     --
8417
     -- Determine the viewid and environment for the new package
8418
     --
8419
     viewid := get_package_view (pvid, rtagid);
8420
     envtab := pk_environment.get_package_area (pvid, rtagid);
8421
 
8422
     --
8423
     -- If changing pkgExt, then we need to delete the orig package, not just replace it
8424
     --
8425
     IF (clonefrompvid is NOT NULL) AND (vext <> ssv_ext)
1373 dpurdie 8426
     THEN
4585 dpurdie 8427
        clone_removal := 1;
8428
        clone_viewid := get_package_view (clonefrompvid, rtagid);
8429
        clone_envtab := pk_environment.get_package_area (clonefrompvid, rtagid);
1373 dpurdie 8430
     END IF;
8431
 
4585 dpurdie 8432
     --
1373 dpurdie 8433
     -- Make sure that package was in work-in-progress or pending before makeing it release
8434
     -- Exclude patches, ripple builds
4585 dpurdie 8435
     --
1373 dpurdie 8436
     IF (envtab < 0)
8437
     THEN
8438
       -- Not found in work-in-progress or pending
8439
       IF (ispatch IS NULL) AND (buildtype = 'M')
8440
       THEN
8441
         raise_application_error (-20000,
8442
                            'This package cannot be released here.'
8443
                           );
8444
       END IF;
8445
     END IF;
8446
 
8447
     -- Log
5172 dpurdie 8448
     --log_action (pvid, 'action', userid, 'Start of Make Package Release...');
1373 dpurdie 8449
 
4585 dpurdie 8450
     --
8451
     -- Remove the package from the WIP or PENDING tab
8452
     -- Do NOT remove from the release area. 
8453
     --     This will be handled later with a process that
8454
     --     will do a 'replace' so that meta data is not lost
8455
     --
8456
    IF envtab = 0
8457
    THEN
8458
        -- WORK IN PROGRESS --
8459
        pk_work_in_progress.remove_package (pvid, rtagid, userid);
8460
    ELSIF envtab = 1
8461
    THEN
8462
        -- PENDING --
8463
        pk_planned.remove_package (pvid, rtagid, userid);
8464
    END IF;
8465
 
8466
    --
8467
    --  If we are changing the pkgExt, then fully remove the base package
8468
    --  This includes removing it from the 'release' area.
8469
    --
8470
    IF clone_removal = 1
8471
    THEN
8472
        IF clone_envtab = 0
8473
        THEN
8474
            -- WORK IN PROGRESS --
8475
            pk_work_in_progress.remove_package (clonefrompvid, rtagid, userid);
8476
        ELSIF clone_envtab = 1
8477
        THEN
8478
            -- PENDING --
8479
            pk_planned.remove_package (clonefrompvid, rtagid, userid);
8480
        ELSIF clone_envtab = 2
8481
        THEN
8482
            -- RELEASED --
8483
            pk_release.remove_package (clonefrompvid, rtagid, userid);
1373 dpurdie 8484
       END IF;
4585 dpurdie 8485
    END IF;
1373 dpurdie 8486
 
8487
     -- Change package state
4585 dpurdie 8488
     -- Set dlocked state to mark the package a 'Released and Locked'
1373 dpurdie 8489
     pk_package.change_state (pvid, 'Y', userid);
8490
 
8491
     -- Make sure it is valid BASE VIEW
4585 dpurdie 8492
     -- If its not specified, give it a default (7) view
1373 dpurdie 8493
     IF viewid < 1
8494
     THEN
4585 dpurdie 8495
        IF clone_viewid >= 0
8496
        THEN
8497
            viewid := clone_viewid; 
8498
        ELSE
8499
            viewid := 7;
8500
        END IF;
1373 dpurdie 8501
     END IF;
8502
 
8503
     IF (ispatch IS NULL)
8504
     THEN
4585 dpurdie 8505
       -- Add (Replace) package to new area
1373 dpurdie 8506
       pk_release.add_package (pvid, viewid, rtagid, userid);
8507
     END IF;
8508
 
8509
     -- Now do post Release Actions
8510
     pk_release.run_post_actions (pvid, rtagid);
8511
     -- Now update the Dash_Board Table (DEPRECATED)
8512
     pk_rmapi.update_dash_board (rtagid);
8513
 
8514
     -- The release has changed and there may now be invalid rtag_id/pv_id combinations in
8515
     -- the DO_NOT_RIPPLE and ADVISORY_RIPPLE Tables so perform a clean-up operation upon them.
8516
     clean_do_not_ripple(rtagid);
8517
     clean_advisory_ripple(rtagid);
8518
 
8519
     -- Log
5172 dpurdie 8520
     --log_action (pvid, 'action', userid, 'End of Make Package Release...');
1373 dpurdie 8521
   END;
8522
 
5172 dpurdie 8523
 
1373 dpurdie 8524
/*-------------------------------------------------------------------------------------------------------*/
8525
   PROCEDURE make_unrelease (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
8526
   IS
8527
     viewid   NUMBER;
8528
     envtab   NUMBER;
8529
   BEGIN
8530
     -- Get ViewId
8531
     --ViewId := PK_RELEASE.GET_PACKAGE_VIEW ( PvId, RtagId );
8532
     viewid := get_package_view (pvid, rtagid);
8533
     -- Remove from current area
8534
     envtab := pk_environment.get_package_area (pvid, rtagid);
8535
     -- Log
5172 dpurdie 8536
     -- log_action (pvid, 'action', userid, 'Start of Make Package UnRelease...' );
1373 dpurdie 8537
 
8538
     IF envtab = 2
8539
     THEN
8540
       -- RELEASE AREA --
8541
       pk_release.remove_package (pvid, rtagid, userid);
8542
     ELSIF envtab = 1
8543
     THEN
8544
       -- PENDING --
8545
       pk_planned.remove_package (pvid, rtagid, userid);
8546
     END IF;
8547
 
8548
     -- Change package state
8549
     pk_package.change_state (pvid, 'N', userid);
8550
 
8551
     -- Make sure it is valid BASE VIEW
8552
     IF viewid < 1
8553
     THEN
8554
       viewid := 7;                     -- This is default base view
8555
     END IF;
8556
 
8557
     -- Add package to new area
8558
     pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
8559
     -- Now do post Release Actions
8560
     pk_release.run_post_actions (pvid, rtagid);
5172 dpurdie 8561
 
1373 dpurdie 8562
     -- Log
5172 dpurdie 8563
     -- log_action (pvid, 'action', userid, 'End of Make Package UnRelease...');
1373 dpurdie 8564
   END;
8565
 
8566
/*-------------------------------------------------------------------------------------------------------*/
8567
   PROCEDURE make_pending (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
8568
   IS
8569
     viewid     NUMBER;
8570
     ispatch    CHAR (1) := NULL;
8571
     buildtype  CHAR (1) := NULL;
8572
   BEGIN
8573
     -- Check if package is patch
8574
     SELECT pv.is_patch, pv.build_type
8575
      INTO ispatch, buildtype
8576
      FROM package_versions pv
8577
      WHERE pv.pv_id = pvid;
8578
 
8579
     -- Get ViewId
8580
     viewid := get_package_view (pvid, rtagid);
8581
     --ViewId := PK_WORK_IN_PROGRESS.GET_PACKAGE_VIEW ( PvId, RtagId );
8582
 
8583
     -- Log
5172 dpurdie 8584
     --log_action (pvid, 'action', userid, 'Start of Make Package Pending...');
1373 dpurdie 8585
 
8586
     IF (ispatch IS NULL)
8587
     THEN
8588
       -- Remove from current area
8589
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
8590
       -- Change package state
8591
       pk_package.change_state (pvid, 'P', userid);
8592
       -- Add package to new area
8593
       pk_planned.add_package (pvid, viewid, rtagid, userid);
8594
     END IF;
8595
 
8596
     -- Log
5172 dpurdie 8597
     --log_action (pvid, 'action', userid, 'End of Make Package Pending...');
1373 dpurdie 8598
   END;
8599
 
8600
/*-------------------------------------------------------------------------------------------------------*/
8601
   PROCEDURE make_approved (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
8602
   IS
8603
   BEGIN
8604
     -- Log
5172 dpurdie 8605
     -- log_action (pvid, 'action', userid, 'Start of Package Pending Approval...' );
1373 dpurdie 8606
     -- Change package state
8607
     pk_package.change_state (pvid, 'A', userid);
5172 dpurdie 8608
 
8609
     -- Flag Release has changed for the purposes of building
8610
     PK_RELEASE.SET_RELEASE_MODIFIED(rtagid);
8611
 
1373 dpurdie 8612
     -- Log
5172 dpurdie 8613
     -- log_action (pvid, 'action', userid, 'End of Package Pending Approval...');
1373 dpurdie 8614
   END;
8615
 
8616
/*-------------------------------------------------------------------------------------------------------*/
8617
   PROCEDURE make_reject (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
8618
   IS
8619
     viewid   NUMBER;
8620
     operation CHAR;
8621
   BEGIN
8622
     -- Get ViewId
8623
     viewid := get_package_view (pvid, rtagid);
8624
     -- ViewId := PK_PLANNED.GET_PACKAGE_VIEW ( PvId, RtagId );
8625
 
8626
     -- DEVI-45275
8627
     -- If the package version is an official version that is to be rejected from a merge operation
8628
     -- then find out in order to prevent it being added back to work-in-progress table . This will
8629
     -- be denoted by the operation field in the planned table being A or S
8630
     operation := ' ';
8631
     SELECT
8632
     (CASE WHEN pl.operation IS NOT NULL THEN pl.operation ELSE ' ' END) INTO operation
8633
     FROM planned pl
8634
     WHERE pl.PV_ID = pvid
8635
     AND pl.RTAG_ID = rtagid;
8636
 
8637
     -- Log
5172 dpurdie 8638
     -- log_action (pvid, 'action', userid, 'Start of Reject Package...');
8639
 
1373 dpurdie 8640
     -- Remove from current area
8641
     pk_planned.remove_package (pvid, rtagid, userid);
8642
 
8643
     -- DEVI-45275 - Prevent merge candidate from being added back to work-in-progress table .
8644
     IF operation <> 'A' AND operation <> 'S'
8645
     THEN
8646
     -- Change package state
8647
     pk_package.change_state (pvid, 'R', userid);
8648
     -- Add package to new area
8649
     pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
8650
     ELSE
8651
      log_action (pvid, 'action', userid, 'Rejected Package Merge');
8652
     END IF;
5172 dpurdie 8653
 
1373 dpurdie 8654
     -- Log
5172 dpurdie 8655
     -- log_action (pvid, 'action', userid, 'End of Reject Package...');
1373 dpurdie 8656
   END;
8657
 
8658
/*-------------------------------------------------------------------------------------------------------*/
8659
   PROCEDURE change_package_view (
8660
     pvid       IN   NUMBER,
8661
     rtagid     IN   NUMBER,
8662
     newviewid  IN   NUMBER
8663
   )
8664
   IS
8665
     envtab   NUMBER;
8666
   BEGIN
8667
     envtab := pk_environment.get_package_area (pvid, rtagid);
8668
 
8669
     IF envtab = 0
8670
     THEN
8671
       -- WORK IN PROGRESS --
8672
       pk_work_in_progress.change_package_view (pvid, rtagid, newviewid);
8673
     ELSIF envtab = 1
8674
     THEN
8675
       -- PENDING --
8676
       pk_planned.change_package_view (pvid, rtagid, newviewid);
8677
     ELSIF envtab = 2
8678
     THEN
8679
       -- RELEASED --
8680
       pk_release.change_package_view (pvid, rtagid, newviewid);
8681
     END IF;
8682
   END;
8683
 
8684
/*-------------------------------------------------------------------------------------------------------*/
8685
   PROCEDURE find_package (
8686
     skeyword     IN      VARCHAR2,
8687
     nrtagid      IN      NUMBER,
8688
     nsearcharea  IN      NUMBER,
8689
     recordset    OUT     typecur
8690
   )
8691
   IS
8692
   BEGIN
8693
     IF nsearcharea = 0
8694
     THEN
8695
       /* Search Work In Progress */
8696
       OPEN recordset FOR
8697
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
8698
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
8699
                pv.modified_stamp, usr.full_name, usr.user_email
8700
           FROM views vi,
8701
                work_in_progress rc,
8702
                PACKAGES pkg,
8703
                package_versions pv,
8704
                users usr
8705
          WHERE rc.view_id = vi.view_id
8706
            AND rc.pv_id = pv.pv_id
8707
            AND pkg.pkg_id = pv.pkg_id
8708
            AND pv.modifier_id = usr.user_id
8709
            AND rc.rtag_id = nrtagid
8710
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
8711
       ORDER BY UPPER (pkg.pkg_name);
8712
     ELSIF nsearcharea = 1
8713
     THEN
8714
       /* Search Pending */
8715
       OPEN recordset FOR
8716
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
8717
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
8718
                pv.modified_stamp, usr.full_name, usr.user_email
8719
           FROM views vi,
8720
                planned rc,
8721
                PACKAGES pkg,
8722
                package_versions pv,
8723
                users usr
8724
          WHERE rc.view_id = vi.view_id
8725
            AND rc.pv_id = pv.pv_id
8726
            AND pkg.pkg_id = pv.pkg_id
8727
            AND pv.modifier_id = usr.user_id
8728
            AND rc.rtag_id = nrtagid
8729
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
8730
       ORDER BY UPPER (pkg.pkg_name);
8731
     ELSIF nsearcharea = 2
8732
     THEN
8733
       /* Search Released */
8734
       OPEN recordset FOR
8735
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
8736
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
8737
                pv.modified_stamp, usr.full_name, usr.user_email
8738
           FROM views vi,
8739
                release_content rc,
8740
                PACKAGES pkg,
8741
                package_versions pv,
8742
                users usr
8743
          WHERE rc.base_view_id = vi.view_id
8744
            AND rc.pv_id = pv.pv_id
8745
            AND pkg.pkg_id = pv.pkg_id
8746
            AND pv.modifier_id = usr.user_id
8747
            AND rc.rtag_id = nrtagid
8748
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
8749
         ORDER BY UPPER (pkg.pkg_name);
8750
     ELSIF nsearcharea = 3
8751
     THEN
8752
       /* Search ALL */
8753
       OPEN recordset FOR
8754
         SELECT rc.env_area, vi.view_name, pv.dlocked, pkg.pkg_name,
8755
                pv.pv_id, pv.pkg_version, pv.comments,
8756
                pv.modified_stamp, usr.full_name, usr.user_email
8757
           FROM views vi,
8758
                environment_view rc,
8759
                PACKAGES pkg,
8760
                package_versions pv,
8761
                users usr
8762
          WHERE rc.view_id = vi.view_id
8763
            AND rc.pv_id = pv.pv_id
8764
            AND pkg.pkg_id = pv.pkg_id
8765
            AND pv.modifier_id = usr.user_id
8766
            AND rc.rtag_id = nrtagid
8767
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
8768
         ORDER BY UPPER (pkg.pkg_name);
8769
     END IF;
8770
   END;
8771
 
8772
/*-------------------------------------------------------------------------------------------------------*/
8773
   PROCEDURE find_file (
8774
     skeyword     IN      VARCHAR2,
8775
     nrtagid      IN      NUMBER,
8776
     nsearcharea  IN      NUMBER,
8777
     npagesize    IN      NUMBER,
8778
     recordset    OUT     typecur
8779
   )
8780
   IS
8781
   BEGIN
8782
     IF nsearcharea = 0
8783
     THEN
8784
       /* Search Work In Progress */
8785
       OPEN recordset FOR
8786
         SELECT   qry.*
8787
            FROM (
8788
                 /* File search on Packages */
8789
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8790
                        pv.pv_id, pv.pkg_version, art.crc_cksum
8791
                   FROM work_in_progress rc,
8792
                        PACKAGES pkg,
8793
                        package_versions pv,
8794
                        release_components art
8795
                  WHERE rc.pv_id = art.pv_id
8796
                    AND pv.pkg_id = pkg.pkg_id
8797
                    AND rc.pv_id = pv.pv_id
8798
                    AND rc.rtag_id = nrtagid
8799
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
8800
                 UNION ALL
8801
                 /* File search on Products */
8802
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8803
                        pv.pv_id, pv.pkg_version, art.crc_cksum
8804
                   FROM work_in_progress rc,
8805
                        PACKAGES pkg,
8806
                        package_versions pv,
8807
                        product_components art
8808
                  WHERE rc.pv_id = art.pv_id
8809
                    AND pv.pkg_id = pkg.pkg_id
8810
                    AND rc.pv_id = pv.pv_id
8811
                    AND rc.rtag_id = nrtagid
8812
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
8813
            WHERE ROWNUM <= npagesize
8814
         ORDER BY UPPER (qry.pkg_name);
8815
     ELSIF nsearcharea = 1
8816
     THEN
8817
       /* Search Pending */
8818
       OPEN recordset FOR
8819
         SELECT   qry.*
8820
            FROM (
8821
                 /* File search on Packages */
8822
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8823
                        pv.pv_id, pv.pkg_version, art.crc_cksum
8824
                   FROM planned rc,
8825
                        PACKAGES pkg,
8826
                        package_versions pv,
8827
                        release_components art
8828
                  WHERE rc.pv_id = art.pv_id
8829
                    AND pv.pkg_id = pkg.pkg_id
8830
                    AND rc.pv_id = pv.pv_id
8831
                    AND rc.rtag_id = nrtagid
8832
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
8833
                 UNION ALL
8834
                 /* File search on Products */
8835
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8836
                        pv.pv_id, pv.pkg_version, art.crc_cksum
8837
                   FROM planned rc,
8838
                        PACKAGES pkg,
8839
                        package_versions pv,
8840
                        product_components art
8841
                  WHERE rc.pv_id = art.pv_id
8842
                    AND pv.pkg_id = pkg.pkg_id
8843
                    AND rc.pv_id = pv.pv_id
8844
                    AND rc.rtag_id = nrtagid
8845
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
8846
            WHERE ROWNUM <= npagesize
8847
         ORDER BY UPPER (qry.pkg_name);
8848
     ELSIF nsearcharea = 2
8849
     THEN
8850
       /* Search Released */
8851
       OPEN recordset FOR
8852
         SELECT   qry.*
8853
            FROM (
8854
                 /* File search on Packages */
8855
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8856
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
8857
                        NULL AS patch_id
8858
                   FROM release_content rc,
8859
                        PACKAGES pkg,
8860
                        package_versions pv,
8861
                        release_components art
8862
                  WHERE rc.pv_id = art.pv_id
8863
                    AND pv.pkg_id = pkg.pkg_id
8864
                    AND rc.pv_id = pv.pv_id
8865
                    AND rc.rtag_id = nrtagid
8866
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
8867
                 UNION ALL
8868
                 /* File search on Products */
8869
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8870
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
8871
                        NULL AS patch_id
8872
                   FROM release_content rc,
8873
                        PACKAGES pkg,
8874
                        package_versions pv,
8875
                        product_components art
8876
                  WHERE rc.pv_id = art.pv_id
8877
                    AND pv.pkg_id = pkg.pkg_id
8878
                    AND rc.pv_id = pv.pv_id
8879
                    AND rc.rtag_id = nrtagid
8880
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
8881
                 UNION ALL
8882
                 /* File search on Patches */
8883
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8884
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
8885
                        DECODE (art.file_path,
8886
                                NULL, pp.patch_id,
8887
                                NULL
8888
                                ) AS patch_id
8889
                   FROM release_content rc,
8890
                        PACKAGES pkg,
8891
                        package_versions pv,
8892
                        release_components art,
8893
                        package_patches pp
8894
                  WHERE pv.pv_id = pp.pv_id
8895
                    AND pv.pkg_id = pkg.pkg_id
8896
                    AND rc.rtag_id = nrtagid
8897
                    AND art.pv_id = pp.patch_id
8898
                    AND rc.pv_id = pp.pv_id
8899
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
8900
            WHERE ROWNUM <= npagesize
8901
         ORDER BY UPPER (qry.pkg_name);
8902
     ELSIF nsearcharea = 3
8903
     THEN
8904
       /* Search ALL */
8905
       OPEN recordset FOR
8906
         SELECT   qry.*
8907
            FROM (
8908
                 /* File search on Packages */
8909
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8910
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
8911
                        NULL AS patch_id
8912
                   FROM environment_view rc,
8913
                        PACKAGES pkg,
8914
                        package_versions pv,
8915
                        release_components art
8916
                  WHERE rc.pv_id = art.pv_id
8917
                    AND pv.pkg_id = pkg.pkg_id
8918
                    AND rc.pv_id = pv.pv_id
8919
                    AND rc.rtag_id = nrtagid
8920
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
8921
                 UNION ALL
8922
                 /* File search on Products */
8923
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8924
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
8925
                        NULL AS patch_id
8926
                   FROM environment_view rc,
8927
                        PACKAGES pkg,
8928
                        package_versions pv,
8929
                        product_components art
8930
                  WHERE rc.pv_id = art.pv_id
8931
                    AND pv.pkg_id = pkg.pkg_id
8932
                    AND rc.pv_id = pv.pv_id
8933
                    AND rc.rtag_id = nrtagid
8934
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
8935
                 UNION ALL
8936
                 /* File search on Patches */
8937
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8938
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
8939
                        DECODE (art.file_path,
8940
                                NULL, pp.patch_id,
8941
                                NULL
8942
                               ) AS patch_id
8943
                   FROM release_content rc,
8944
                        PACKAGES pkg,
8945
                        package_versions pv,
8946
                        release_components art,
8947
                        package_patches pp
8948
                  WHERE pv.pv_id = pp.pv_id
8949
                    AND pv.pkg_id = pkg.pkg_id
8950
                    AND rc.rtag_id = nrtagid
8951
                    AND art.pv_id = pp.patch_id
8952
                    AND rc.pv_id = pp.pv_id
8953
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
8954
            WHERE ROWNUM <= npagesize
8955
         ORDER BY UPPER (qry.pkg_name);
8956
     END IF;
8957
   END;
8958
 
8959
/*-------------------------------------------------------------------------------------------------------*/
8960
   PROCEDURE get_prodrelease_items (
8961
     rtagid           IN      NUMBER,
8962
     ntruerecordcount OUT     NUMBER,
8963
     recordset        OUT     typecur
8964
   )
8965
   IS
8966
   BEGIN
8967
     -- Get true record count n the number of integration products
8968
     SELECT COUNT (rc.pv_id)
8969
      INTO ntruerecordcount
8970
      FROM release_content rc
8971
      WHERE rc.rtag_id = rtagid;
8972
 
8973
     OPEN recordset FOR
8974
       SELECT vi.view_id, vi.view_name, rel.pkg_state,   --rel.pkg_state,
8975
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8976
              pv.pkg_version, pv.dlocked, pv.pv_description
8977
         FROM release_content rel,
8978
              PACKAGES pkg,
8979
              package_versions pv,
8980
              views vi
8981
        WHERE pv.pkg_id = pkg.pkg_id
8982
          AND rel.pv_id = pv.pv_id
8983
          AND rel.base_view_id = vi.view_id
8984
          AND pv.is_deployable = 'Y'
8985
          AND rtag_id = rtagid
8986
          AND pv.pv_id NOT IN (SELECT DISTINCT prod_id
8987
                                 FROM deployment_manager.os_contents)
8988
          AND rel.product_state IS NULL
8989
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
8990
   END;
8991
 
8992
/*-------------------------------------------------------------------------------------------------------*/
8993
   PROCEDURE get_integration_items (
8994
     rtagid           IN      NUMBER,
8995
     ntruerecordcount OUT     NUMBER,
8996
     recordset        OUT     typecur
8997
   )
8998
   IS
8999
   BEGIN
9000
     -- Get true record count n the number of integration products
9001
     SELECT COUNT (rc.pv_id)
9002
      INTO ntruerecordcount
9003
      FROM release_content rc
9004
      WHERE rc.rtag_id = rtagid AND rc.product_state = 1;
9005
 
9006
     OPEN recordset FOR
9007
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9008
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9009
              pv.pkg_version, pv.dlocked, pv.pv_description
9010
         FROM release_content rel,
9011
              PACKAGES pkg,
9012
              package_versions pv,
9013
              views vi
9014
        WHERE pv.pkg_id = pkg.pkg_id
9015
          AND rel.pv_id = pv.pv_id
9016
          AND rel.base_view_id = vi.view_id
9017
          AND pv.is_deployable = 'Y'
9018
          AND rtag_id = rtagid
9019
          AND rel.product_state IN (1, 5)
9020
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9021
   END;
9022
 
9023
/*-------------------------------------------------------------------------------------------------------*/
9024
   PROCEDURE get_test_items (
9025
     rtagid           IN      NUMBER,
9026
     ntruerecordcount OUT     NUMBER,
9027
     recordset        OUT     typecur
9028
   )
9029
   IS
9030
   BEGIN
9031
     -- Get true record count n the number of test products
9032
     SELECT COUNT (rc.pv_id)
9033
      INTO ntruerecordcount
9034
      FROM release_content rc
9035
      WHERE rc.rtag_id = rtagid AND rc.product_state = 2;
9036
 
9037
     OPEN recordset FOR
9038
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9039
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9040
              pv.pkg_version, pv.dlocked, pv.pv_description
9041
         FROM release_content rel,
9042
              PACKAGES pkg,
9043
              package_versions pv,
9044
              views vi
9045
        WHERE pv.pkg_id = pkg.pkg_id
9046
          AND rel.pv_id = pv.pv_id
9047
          AND rel.base_view_id = vi.view_id
9048
          AND pv.is_deployable = 'Y'
9049
          AND rtag_id = rtagid
9050
          AND rel.product_state = 2
9051
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9052
   END;
9053
 
9054
/*-------------------------------------------------------------------------------------------------------*/
9055
   PROCEDURE get_deploy_items (
9056
     rtagid           IN      NUMBER,
9057
     ntruerecordcount OUT     NUMBER,
9058
     recordset        OUT     typecur
9059
   )
9060
   IS
9061
   BEGIN
9062
     -- Get true record count n the number of deploy products
9063
     SELECT COUNT (rc.pv_id)
9064
      INTO ntruerecordcount
9065
      FROM release_content rc
9066
      WHERE rc.rtag_id = rtagid AND rc.product_state = 3;
9067
 
9068
     OPEN recordset FOR
9069
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9070
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9071
              pv.pkg_version, pv.dlocked, pv.pv_description
9072
         FROM release_content rel,
9073
              PACKAGES pkg,
9074
              package_versions pv,
9075
              views vi
9076
        WHERE pv.pkg_id = pkg.pkg_id
9077
          AND rel.pv_id = pv.pv_id
9078
          AND rel.base_view_id = vi.view_id
9079
          AND pv.is_deployable = 'Y'
9080
          AND rtag_id = rtagid
9081
          AND rel.product_state IN (3, 5)
9082
          AND pv.pv_id NOT IN (SELECT DISTINCT prod_id
9083
                                 FROM deployment_manager.os_contents)
9084
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9085
   END;
9086
 
9087
/*-------------------------------------------------------------------------------------------------------*/
9088
   PROCEDURE get_reject_items (
9089
     rtagid           IN      NUMBER,
9090
     ntruerecordcount OUT     NUMBER,
9091
     recordset        OUT     typecur
9092
   )
9093
   IS
9094
   BEGIN
9095
     -- Get true record count n the number of reject products
9096
     SELECT COUNT (rc.pv_id)
9097
       INTO ntruerecordcount
9098
       FROM release_content rc
9099
      WHERE rc.rtag_id = rtagid AND rc.product_state = 4;
9100
 
9101
     OPEN recordset FOR
9102
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9103
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9104
              pv.pkg_version, pv.dlocked, pv.pv_description
9105
         FROM release_content rel,
9106
              PACKAGES pkg,
9107
              package_versions pv,
9108
              views vi
9109
        WHERE pv.pkg_id = pkg.pkg_id
9110
          AND rel.pv_id = pv.pv_id
9111
          AND rel.base_view_id = vi.view_id
9112
          AND pv.is_deployable = 'Y'
9113
          AND rtag_id = rtagid
9114
          AND rel.product_state = 4
9115
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9116
   END;
9117
/*-------------------------------------------------------------------------------------------------------*/
9118
   -- DEVI-45275 - this procedure performs the merge of an existing package version in the planned table
9119
   -- to the release_content table.
9120
 
9121
  PROCEDURE approve_merge (
9122
   PvId    IN NUMBER,
9123
   RtagId  IN NUMBER,
9124
   UserId  IN NUMBER
9125
  )
9126
  IS
9127
   viewid        NUMBER;
9128
   envtab        NUMBER;
9129
   oper         CHAR;
9130
  BEGIN
9131
      -- Get ViewId
9132
     viewid := get_package_view (pvid, rtagid);
9133
 
9134
     -- Get the view tab
9135
     envtab := pk_environment.get_package_area (pvid, rtagid);
9136
 
9137
     -- Make sure that package was in pending before merging it to released
9138
     IF (envtab <> 1)
9139
     THEN
9140
       -- Not found in pending
9141
       raise_application_error (-20000,
9142
                          'This package cannot be released here.'
9143
                         );
9144
     END IF;
9145
 
9146
     -- Log
5172 dpurdie 9147
     --log_action (pvid, 'action', userid, 'Start of Package Merge...');
1373 dpurdie 9148
 
9149
     -- Get the planned operation type A=Add, S=Subtract
9150
     SELECT ev.operation INTO oper
9151
       FROM environment_view ev
9152
      WHERE ev.rtag_id = RtagId
9153
        AND ev.pv_id = PvId
9154
        AND (ev.operation = 'A' OR ev.operation = 'S');
9155
 
9156
     -- Remove from Pending
9157
     pk_planned.remove_package (PvId, RtagId, UserId);
9158
 
9159
     -- Either add to the release, or remove from the release as the operation commands
9160
     IF oper = 'A'
9161
     THEN
9162
       pk_release.add_package(PvId, viewId, RtagId, UserId);
9163
 
9164
     ELSIF oper = 'S'
9165
     THEN
9166
       pk_release.remove_package(PvId, RtagId, UserId);
9167
 
9168
       -- Delete old package's pegging info
9169
       DELETE FROM PEGGED_VERSIONS pegv WHERE pegv.RTAG_ID = RtagId AND pegv.PV_ID = PvId;
9170
 
9171
       -- Delete old package's advisory ripple info
9172
       DELETE FROM ADVISORY_RIPPLE avr WHERE avr.RTAG_ID = RtagId AND avr.PV_ID = PvId;
9173
     END IF;
9174
 
9175
     touch_release(RtagId);
9176
 
9177
     -- Log
5172 dpurdie 9178
     --log_action (pvid, 'action', userid, 'End of Package Merge...');
1373 dpurdie 9179
  END;
9180
/*-------------------------------------------------------------------------------------------------------*/
9181
END pk_environment;
4040 dpurdie 9182
 
1374 dpurdie 9183
/
4040 dpurdie 9184
--------------------------------------------------------
9185
--  DDL for Package Body PK_LICENCING
9186
--------------------------------------------------------
9187
 
5172 dpurdie 9188
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_LICENCING" IS
1373 dpurdie 9189
 
9190
/*
9191
------------------------------
3959 dpurdie 9192
||  Last Modified:  G.Huddy
9193
||  Modified Date:  19/Aug/2008
1373 dpurdie 9194
||  Body Version:   1.0
9195
------------------------------
9196
*/
9197
 
3959 dpurdie 9198
   PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) IS
9199
   BEGIN
9200
      IF IS_LICENCED(PvId, licenceId) = 0 THEN
9201
         -- Add entry to licencing table
9202
         INSERT INTO licencing (pv_id, licence)
9203
         VALUES (PvId, licenceId);
1373 dpurdie 9204
 
3959 dpurdie 9205
         -- log action
9206
         -- TODO
9207
      END IF;
1373 dpurdie 9208
 
3959 dpurdie 9209
   END;
1373 dpurdie 9210
 
9211
/*-------------------------------------------------------------------------------------------------------*/
9212
 
3959 dpurdie 9213
   PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) IS
9214
   BEGIN
9215
      IF NOT IS_LICENCED(PvId, licenceId) = 0 THEN
9216
         -- Delete entry from licencing table
9217
         DELETE FROM licencing
9218
         WHERE pv_id = PvId
9219
         AND licence = licenceId;
1373 dpurdie 9220
 
3959 dpurdie 9221
         -- log action
9222
         -- TODO
9223
      END IF;
9224
   END;
1373 dpurdie 9225
 
9226
/*-------------------------------------------------------------------------------------------------------*/
9227
 
3959 dpurdie 9228
   PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 9229
 
3959 dpurdie 9230
      CURSOR licencing_cur
9231
      IS
9232
         SELECT *
9233
         FROM licencing
9234
         WHERE pv_id = fromPvId;
1373 dpurdie 9235
 
3959 dpurdie 9236
      licencing_rec licencing_cur%ROWTYPE;
1373 dpurdie 9237
 
9238
   BEGIN
3959 dpurdie 9239
      -- For each licence association that the Last PV_ID had, create a similar
9240
      -- arrangement for the new PV_ID
9241
      -- NOTE that any additional licencing associations the new PV_ID has that the old one
9242
      -- does not have, are retained. The assumption is that the user has made those and so we do not
9243
      -- have any right to destroy them without asking them.
9244
      OPEN licencing_cur;
1373 dpurdie 9245
 
3959 dpurdie 9246
      FETCH licencing_cur
9247
      INTO licencing_rec;
1373 dpurdie 9248
 
3959 dpurdie 9249
      WHILE licencing_cur%FOUND
1373 dpurdie 9250
      LOOP
3959 dpurdie 9251
         ADD_LICENCE ( toPvId, licencing_rec.licence, UserId );
1373 dpurdie 9252
 
3959 dpurdie 9253
         FETCH licencing_cur
9254
         INTO licencing_rec;
1373 dpurdie 9255
      END LOOP;
9256
   END;
9257
 
9258
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 9259
 
9260
   FUNCTION IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER IS
9261
      found NUMBER;
1373 dpurdie 9262
   BEGIN
9263
 
3959 dpurdie 9264
      SELECT COUNT(*) INTO found
9265
      FROM licencing
9266
      WHERE pv_id = PvId
9267
      AND licence = LicenceId;
1373 dpurdie 9268
 
3959 dpurdie 9269
      RETURN found;
1373 dpurdie 9270
   END;
9271
 
9272
/*-------------------------------------------------------------------------------------------------------*/
9273
 
3959 dpurdie 9274
   PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 9275
 
3959 dpurdie 9276
      CURSOR licencing_cur
9277
      IS
1373 dpurdie 9278
         SELECT *
3959 dpurdie 9279
         FROM licencing
9280
         WHERE pv_id = PvId;
1373 dpurdie 9281
 
3959 dpurdie 9282
      licencing_rec licencing_cur%ROWTYPE;
9283
   BEGIN
9284
      -- For each licence association that the PV_ID had, remove it
9285
      OPEN licencing_cur;
1373 dpurdie 9286
 
3959 dpurdie 9287
      FETCH licencing_cur
9288
      INTO licencing_rec;
1373 dpurdie 9289
 
3959 dpurdie 9290
      WHILE licencing_cur%FOUND
9291
      LOOP
9292
         REMOVE_LICENCE ( PvId, licencing_rec.licence, UserId );
1373 dpurdie 9293
 
3959 dpurdie 9294
         FETCH licencing_cur
9295
         INTO licencing_rec;
9296
      END LOOP;
1373 dpurdie 9297
   END;
9298
 
9299
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 9300
END PK_LICENCING;
4040 dpurdie 9301
 
1374 dpurdie 9302
/
4040 dpurdie 9303
--------------------------------------------------------
9304
--  DDL for Package Body PK_PACKAGE
9305
--------------------------------------------------------
9306
 
5172 dpurdie 9307
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PACKAGE" 
1373 dpurdie 9308
IS
9309
   /*-------------------------------------------------------------------------------------------------------*/
9310
   PROCEDURE new_version (
9311
      nlastpvid                   IN       NUMBER,
9312
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
9313
      cbuildtype                  IN       CHAR,
4211 dpurdie 9314
      cchangetype                 IN       CHAR,
1373 dpurdie 9315
      nsettopvid                  IN       NUMBER DEFAULT NULL,
9316
      nrtagid                     IN       NUMBER,
9317
      nuserid                     IN       NUMBER,
9318
      enumissues_state_imported   IN       NUMBER,
9319
      returnpvid                  OUT      NUMBER
9320
   )
9321
   IS
3959 dpurdie 9322
      origpkg_id                  package_versions.pkg_id%TYPE;
9323
      origdlocked                 package_versions.dlocked%TYPE;
9324
      ssv_mm                      package_versions.v_mm%TYPE;
9325
      ssv_nmm                     package_versions.v_nmm%TYPE;
9326
      ssv_ext                     package_versions.v_ext%TYPE;
9327
      spackageversion             VARCHAR2 (4000);
9328
      nissuestypes                NUMBER;
9329
      nviewid                     NUMBER;
9330
      reccount                    NUMBER;
9331
      isreleased                  package_versions.dlocked%TYPE := 'N';
9332
      slabel                      VARCHAR2 (4000)               := NULL;
4211 dpurdie 9333
      uchangetype                 CHAR := cchangetype;
1373 dpurdie 9334
 
9335
      CURSOR package_versions_cur
9336
      IS
9337
         SELECT pv.pv_id, pv.is_patch, pv.dlocked
9338
           FROM package_versions pv
9339
          WHERE pv.pkg_version = snewpkgversion
9340
            AND pv.pkg_id IN (SELECT DISTINCT origpv.pkg_id
9341
                                         FROM package_versions origpv
9342
                                        WHERE origpv.pv_id = nlastpvid);
9343
 
3959 dpurdie 9344
      package_versions_rec package_versions_cur%ROWTYPE;
1373 dpurdie 9345
 
9346
      CURSOR clone_package_versions_cur
9347
      IS
9348
         SELECT DISTINCT pkg_id, dlocked
9349
                    FROM package_versions
9350
                   WHERE pv_id = nlastpvid;
9351
 
3959 dpurdie 9352
      clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
1373 dpurdie 9353
   BEGIN
9354
      spackageversion := snewpkgversion;
9355
 
9356
      IF nsettopvid IS NULL
9357
      THEN
9358
         -- SetToPv_id is not supplied, hence proceed.
9359
 
9360
         /* ---------------------------------------------------- */
3959 dpurdie 9361
         /* Find id package_version exists                       */
9362
         /* ---------------------------------------------------- */
1373 dpurdie 9363
         OPEN package_versions_cur;
9364
 
9365
         FETCH package_versions_cur
9366
          INTO package_versions_rec;
9367
 
9368
         IF package_versions_cur%NOTFOUND
9369
         THEN
9370
            ---  Create brand new package ---
9371
            SELECT seq_pv_id.NEXTVAL
9372
              INTO returnpvid
9373
              FROM DUAL;
9374
 
9375
            -- Split Version to get extention + other
9376
            split_version (spackageversion, ssv_mm, ssv_nmm, ssv_ext);
9377
 
9378
            -- Get previous package to clone from
9379
            OPEN clone_package_versions_cur;
9380
 
9381
            FETCH clone_package_versions_cur
9382
             INTO clone_package_versions_rec;
9383
 
9384
            origpkg_id := clone_package_versions_rec.pkg_id;
9385
            origdlocked := clone_package_versions_rec.dlocked;
9386
 
9387
            CLOSE clone_package_versions_cur;
9388
 
9389
            -- Automated built config
4211 dpurdie 9390
            IF ( cbuildtype = 'M' ) THEN
9391
              uchangetype := 'F';
9392
            END IF;  
9393
 
9394
            -- Automated version numbering
9395
            -- Make sure that version is still unique
9396
            IF (uchangetype != 'F') THEN
9397
              spackageversion := '(' || returnpvid || ')' || ssv_ext;
1373 dpurdie 9398
            END IF;
4211 dpurdie 9399
 
1373 dpurdie 9400
 
9401
            -- Clone Package Version Details --
3959 dpurdie 9402
            INSERT INTO package_versions(pv_id, pkg_id, pkg_version, dlocked, created_stamp,
9403
                                         creator_id, modified_stamp, modifier_id, v_mm, v_nmm,
9404
                                         v_ext, src_path, pv_description, pv_overview,
9405
                                         last_pv_id, owner_id, is_deployable,
4211 dpurdie 9406
                                         is_build_env_required, build_type, change_type, 
9407
                                         bs_id, is_autobuildable, ripple_field)
3959 dpurdie 9408
                 SELECT returnpvid AS pv_id, origpkg_id AS pkg_id,
9409
                        spackageversion AS pkg_version, 'N' AS dlocked,
9410
                        ora_sysdate AS created_stamp, nuserid AS creator_id,
9411
                        ora_sysdatetime AS modified_stamp,
9412
                        nuserid AS modifier_id, ssv_mm AS v_mm,
9413
                        ssv_nmm AS v_nmm, ssv_ext AS v_ext, pv.src_path,
9414
                        pv.pv_description, pv.pv_overview,
9415
                        nlastpvid AS last_pv_id, pv.owner_id, pv.is_deployable,
4211 dpurdie 9416
                        pv.is_build_env_required, cbuildtype, uchangetype, 
9417
                        pv.bs_id, pv.is_autobuildable, pv.ripple_field
3959 dpurdie 9418
                   FROM package_versions pv
9419
                  WHERE pv.pv_id = nlastpvid;
1373 dpurdie 9420
 
9421
            -- Set Issues Type for cloning ---
9422
            IF origdlocked = 'Y'
9423
            THEN
9424
               nissuestypes := enumissues_state_imported;
9425
            ELSE
9426
               nissuestypes := NULL;
9427
            END IF;
9428
 
9429
            basic_clone (nlastpvid,
9430
                         returnpvid,
9431
                         nrtagid,
9432
                         nuserid,
9433
                         origpkg_id,
9434
                         nissuestypes
9435
                        );
4211 dpurdie 9436
 
9437
            -- Update Label for versioning purposes
9438
            slabel := get_automated_label (returnpvid);
9439
            UPDATE package_versions pv
9440
            SET pv.pkg_label = slabel
9441
            WHERE pv.pv_id = returnpvid;
9442
 
1373 dpurdie 9443
         ELSE
9444
            --- Package already exists, hence reuse ---
9445
            returnpvid := package_versions_rec.pv_id;
9446
            isreleased := package_versions_rec.dlocked;
9447
         END IF;
9448
 
9449
         CLOSE package_versions_cur;
9450
      ELSE
9451
         returnpvid := nsettopvid;
9452
      END IF;
9453
   END new_version;
9454
 
9455
/*-------------------------------------------------------------------------------------------------------*/
9456
   PROCEDURE change_state (
9457
      pvid       IN   NUMBER,
9458
      newstate   IN   package_versions.dlocked%TYPE,
9459
      userid     IN   NUMBER
9460
   )
9461
   IS
9462
   BEGIN
9463
      -- Set package in Released mode
9464
      UPDATE package_versions pv
9465
         SET pv.dlocked = newstate,
9466
             pv.modified_stamp = ora_sysdatetime,
9467
             pv.modifier_id = userid
9468
       WHERE pv.pv_id = pvid;
9469
 
9470
      -- Log action --
9471
      IF newstate = 'Y'
9472
      THEN
9473
         -- RELEASED --
9474
         log_action (pvid,
9475
                     'makeofficial',
9476
                     userid,
9477
                     'Package state change to: Released'
9478
                    );
9479
      ELSIF newstate = 'N'
9480
      THEN
9481
         -- UNLOCKED --
9482
         log_action (pvid,
9483
                     'makeunofficial',
9484
                     userid,
9485
                     'Package state change to: Ulocked'
9486
                    );
9487
      ELSIF newstate = 'P'
9488
      THEN
9489
         -- PENDING APPROVAL --
9490
         log_action (pvid,
9491
                     'add_to_planned',
9492
                     userid,
9493
                     'Package state change to: Pending Approval'
9494
                    );
9495
      ELSIF newstate = 'R'
9496
      THEN
9497
         -- REJECTED --
9498
         log_action (pvid,
9499
                     'reject_package',
9500
                     userid,
9501
                     'Package state change to: Rejected'
9502
                    );
9503
      ELSIF newstate = 'A'
9504
      THEN
9505
         -- APPROVED --
9506
         log_action (pvid,
9507
                     'approve_package',
9508
                     userid,
9509
                     'Package state change to: Approved'
9510
                    );
9511
      END IF;
9512
   END;
9513
 
9514
/*-------------------------------------------------------------------------------------------------------*/
9515
   PROCEDURE destroy_package (
9516
      pvid               IN       NUMBER,
9517
      overridewarnings   IN       CHAR DEFAULT 'N',
9518
      problemstring      OUT      VARCHAR2
9519
   )
9520
   IS
9521
      LOCKED     CHAR;
9522
      pkgid      NUMBER;
9523
      ROWCOUNT   NUMBER;
9524
   BEGIN
9525
      /*
9526
      || This will destroy all package details from database.
9527
      || It will only be used to remove unwanted work in progress packages,
9528
      || or mestaken versions
9529
      */
9530
 
9531
      /*--------------- Business Rules Here -------------------*/
9532
      problemstring := NULL;
9533
 
9534
      IF overridewarnings = 'N'
9535
      THEN
9536
         -- Package must not be official
9537
         SELECT pv.dlocked
9538
           INTO LOCKED
9539
           FROM package_versions pv
9540
          WHERE pv.pv_id = pvid;
9541
 
9542
         IF LOCKED = 'Y'
9543
         THEN
9544
            problemstring :=
9545
                  problemstring
9546
               || '- Package is locked and released.'
9547
               || UTL_TCP.crlf;
9548
         END IF;
9549
 
9550
         -- Cannot remove if used in BOMs
9551
         SELECT COUNT (osc.prod_id)
9552
           INTO ROWCOUNT
9553
           FROM deployment_manager.os_contents osc
9554
          WHERE osc.prod_id = pvid;
9555
 
9556
         IF ROWCOUNT > 0
9557
         THEN
9558
            problemstring :=
9559
                  problemstring
9560
               || '- Package is part of Bill-Of-Material (BOM) in Deployment Manager.'
9561
               || UTL_TCP.crlf;
9562
         END IF;
9563
 
9564
         -- Cannot remove if Referenced as build dependency
9565
         SELECT COUNT (dep.pv_id)
9566
           INTO ROWCOUNT
9567
           FROM package_dependencies dep
9568
          WHERE dep.dpv_id = pvid;
9569
 
9570
         IF ROWCOUNT > 0
9571
         THEN
9572
            problemstring :=
9573
                  problemstring
9574
               || '- Package is referenced by other package as build dependency.'
9575
               || UTL_TCP.crlf;
9576
         END IF;
9577
 
9578
         -- Cannot remove if Referenced as runtime dependency
9579
         SELECT COUNT (rd.pv_id)
9580
           INTO ROWCOUNT
9581
           FROM runtime_dependencies rd
9582
          WHERE rd.rtd_id = pvid;
9583
 
9584
         IF ROWCOUNT > 0
9585
         THEN
9586
            problemstring :=
9587
                  problemstring
9588
               || '- Package is referenced by other package as runtime dependency.'
9589
               || UTL_TCP.crlf;
9590
         END IF;
9591
 
9592
         -- Cannot remove if Referenced as patch
9593
         SELECT COUNT (pp.pv_id)
9594
           INTO ROWCOUNT
9595
           FROM package_patches pp
9596
          WHERE pp.patch_id = pvid;
9597
 
9598
         IF ROWCOUNT > 0
9599
         THEN
9600
            problemstring :=
9601
                  problemstring
9602
               || '- Package is used as patch by other package.'
9603
               || UTL_TCP.crlf;
9604
         END IF;
9605
      END IF;
9606
 
9607
/*-------------------------------------------------------*/
9608
      IF (problemstring IS NULL)
9609
      THEN
9610
         --- Remove From Work in Progress
9611
         DELETE FROM work_in_progress wip
9612
               WHERE wip.pv_id = pvid;
9613
 
9614
         --- Remove From Pending
9615
         DELETE FROM planned pl
9616
               WHERE pl.pv_id = pvid;
9617
 
9618
         --- Remove From Released area
9619
         DELETE FROM release_content rc
9620
               WHERE rc.pv_id = pvid;
9621
 
9622
         ---Remove From Package Processes
9623
         DELETE FROM package_processes pp
9624
               WHERE pp.pv_id = pvid;
9625
 
9626
         --- Remove Dependencies
9627
         DELETE FROM package_dependencies dep
9628
               WHERE dep.pv_id = pvid;
9629
 
9630
         DELETE FROM package_dependencies dep
9631
               WHERE dep.dpv_id = pvid;
9632
 
9633
         --- Remove Runtime dependencies
9634
         DELETE FROM runtime_dependencies rtd
9635
               WHERE rtd.pv_id = pvid;
9636
 
9637
         DELETE FROM runtime_dependencies rtd
9638
               WHERE rtd.rtd_id = pvid;
9639
 
9640
         --- Remove components
9641
         DELETE FROM product_components pc
9642
               WHERE pc.pv_id = pvid;
9643
 
9644
         DELETE FROM release_components rc
9645
               WHERE rc.pv_id = pvid;
9646
 
9647
         --- Remove From Notification History
9648
         DELETE FROM notification_history nh
9649
               WHERE nh.pv_id = pvid;
9650
 
9651
         --- Remove From Ignore Warnings
9652
         DELETE FROM ignore_warnings iw
9653
               WHERE iw.pv_id = pvid;
9654
 
9655
         --- Remove From Additional Notes
9656
         DELETE FROM additional_notes an
9657
               WHERE an.pv_id = pvid;
9658
 
9659
         --- Remove From CQ Issues
9660
         DELETE FROM cq_issues cq
9661
               WHERE cq.pv_id = pvid;
9662
 
9663
         --- Remove from Package Patches
9664
         DELETE FROM package_patches pp
9665
               WHERE pp.pv_id = pvid;
9666
 
9667
         DELETE FROM package_patches pp
9668
               WHERE pp.patch_id = pvid;
9669
 
9670
         --- Remove From Package Documents
9671
         DELETE FROM package_documents pd
9672
               WHERE pd.pv_id = pvid;
9673
 
9674
         --- Remove from Code Review
9675
         DELETE FROM code_reviews cr
9676
               WHERE cr.pv_id = pvid;
9677
 
3959 dpurdie 9678
         --- Remove from Code Review URL
9679
         DELETE FROM code_review_url cru
9680
               WHERE cru.pv_id = pvid;
9681
 
1373 dpurdie 9682
         --- Remove from Unit Tests
9683
         DELETE FROM unit_tests ut
9684
               WHERE ut.pv_id = pvid;
9685
 
9686
         --- Remove from Package BuildEnv
9687
         DELETE FROM package_build_env pbe
9688
               WHERE pbe.pv_id = pvid;
9689
 
3959 dpurdie 9690
         --- Remove from Package Build Info
9691
         DELETE FROM package_build_info pbi
9692
               WHERE pbi.pv_id = pvid;
9693
 
1373 dpurdie 9694
         --- Remove from Build Order
9695
         DELETE FROM build_order bo
9696
               WHERE bo.pv_id = pvid;
9697
 
3959 dpurdie 9698
         --- Remove from Licencing
9699
         PK_LICENCING.REMOVE_ALL_LICENCING( pvid, 0 );
9700
 
1373 dpurdie 9701
         --- Remove from Note Manager
9702
         DELETE FROM note_manager nm
9703
               WHERE nm.nid = pvid;
9704
 
9705
         --- Remove from Action log
9706
         DELETE FROM action_log al
9707
               WHERE al.pv_id = pvid;
3959 dpurdie 9708
 
9709
         --- Remove from Do Not Ripple
9710
         DELETE FROM DO_NOT_RIPPLE dnr
9711
               WHERE dnr.PV_ID = pvid;
9712
 
9713
         --- Remove from Advisory Ripple
9714
         DELETE FROM ADVISORY_RIPPLE ar
9715
               WHERE ar.PV_ID = pvid;
9716
 
9717
         --- Remove from Jira Issues
9718
         DELETE FROM JIRA_ISSUES jira
9719
               WHERE jira.PV_ID = pvid;
9720
 
9721
         --- Remove from Package Metrics
9722
         DELETE FROM package_metrics pm
9723
              WHERE pm.pv_id = pvid;
9724
 
9725
         -- Delete from Pegged Versions
9726
         DELETE FROM pegged_versions pegv
9727
              WHERE pegv.pv_id = pvid;
9728
 
1373 dpurdie 9729
         --- Finally Remove From Package Versions
9730
         --- Get Package name
9731
         SELECT pv.pkg_id
9732
           INTO pkgid
9733
           FROM package_versions pv
9734
          WHERE pv.pv_id = pvid;
9735
 
9736
         DELETE FROM package_versions pv
9737
               WHERE pv.pv_id = pvid;
9738
 
9739
         --- Remove package name if not used any more
9740
         SELECT COUNT (pv.pv_id)
9741
           INTO ROWCOUNT
9742
           FROM package_versions pv
9743
          WHERE pv.pkg_id = pkgid;
9744
 
9745
         IF ROWCOUNT < 1
9746
         THEN
9747
            DELETE FROM PACKAGES pkg
9748
                  WHERE pkg.pkg_id = pkgid;
9749
         END IF;
9750
      END IF;
9751
   END;
9752
 
9753
/*-------------------------------------------------------------------------------------------------------*/
9754
   PROCEDURE new_patch (
9755
      snewpatchversion   IN       package_versions.pkg_version%TYPE,
9756
      nparentpvid        IN       NUMBER,
9757
      spatchidlist       IN       VARCHAR2,
9758
      nuserid            IN       NUMBER,
9759
      returnpatchid      OUT      NUMBER
9760
   )
9761
   IS
9762
      patchpv_id           NUMBER;
9763
      parpkg_id            NUMBER;
9764
      lastinstallorder     NUMBER;
9765
      ispatchdlocked       package_versions.dlocked%TYPE;
9766
      ssv_mm               package_versions.v_mm%TYPE;
9767
      ssv_nmm              package_versions.v_nmm%TYPE;
9768
      ssv_ext              package_versions.v_ext%TYPE;
3959 dpurdie 9769
      opatchdepcollector   relmgr_number_tab_t  := relmgr_number_tab_t ();
1373 dpurdie 9770
 
9771
      CURSOR parent_cur
9772
      IS
9773
         SELECT pv.*, pkg.pkg_name
9774
           FROM package_versions pv, PACKAGES pkg
9775
          WHERE pv.pv_id = nparentpvid AND pv.pkg_id = pkg.pkg_id;
9776
 
3959 dpurdie 9777
      parent_rec parent_cur%ROWTYPE;
1373 dpurdie 9778
 
9779
      CURSOR patch_cur
9780
      IS
9781
         SELECT pv.*, pg.pkg_name
9782
           FROM package_versions pv, PACKAGES pg
9783
          WHERE pv.pkg_id = parpkg_id
9784
            AND pv.pkg_version = snewpatchversion
9785
            AND pv.pkg_id = pg.pkg_id;
9786
 
3959 dpurdie 9787
      patch_rec  patch_cur%ROWTYPE;
1373 dpurdie 9788
 
9789
      CURSOR releases_cur
9790
      IS
9791
         SELECT rc.pv_id
9792
           FROM release_content rc
9793
          WHERE rc.pv_id = patch_rec.pv_id;
9794
 
3959 dpurdie 9795
      releases_rec releases_cur%ROWTYPE;
1373 dpurdie 9796
   BEGIN
9797
      -- Get Last Install Order
9798
      SELECT COUNT (*)
9799
        INTO lastinstallorder
9800
        FROM package_patches pp
9801
       WHERE pp.pv_id = nparentpvid;
9802
 
9803
      -- Get parent details
9804
      OPEN parent_cur;
9805
 
9806
      FETCH parent_cur
9807
       INTO parent_rec;
9808
 
9809
      parpkg_id := parent_rec.pkg_id;
9810
 
9811
      -- Find if patch exists in database
9812
      OPEN patch_cur;
9813
 
9814
      FETCH patch_cur
9815
       INTO patch_rec;
9816
 
9817
      -- Parent must be official
9818
      IF parent_rec.dlocked = 'Y'
9819
      THEN
9820
         IF patch_cur%NOTFOUND
9821
         THEN
9822
            ispatchdlocked := 'N';
9823
 
9824
            -- Create new patch version --
9825
            SELECT seq_pv_id.NEXTVAL
9826
              INTO patchpv_id
9827
              FROM DUAL;
9828
 
9829
            split_version (snewpatchversion, ssv_mm, ssv_nmm, ssv_ext);
9830
 
9831
            INSERT INTO package_versions
9832
                        (pv_id, pkg_id, pkg_version,
9833
                         dlocked, created_stamp, creator_id,
9834
                         modified_stamp, modifier_id, v_mm, v_nmm, v_ext,
9835
                         src_path,
9836
                         pv_description,
9837
                         owner_id, is_patch, last_pv_id, build_type, is_build_env_required, bs_id,
3959 dpurdie 9838
                         is_autobuildable, ripple_field
1373 dpurdie 9839
                        )
9840
                 VALUES (patchpv_id, parpkg_id, snewpatchversion,
9841
                         ispatchdlocked, ora_sysdate, nuserid,
9842
                         ora_sysdatetime, nuserid, ssv_mm, ssv_nmm, ssv_ext,
9843
                         parent_rec.src_path,
9844
                            'This is a patch to '
9845
                         || parent_rec.pkg_name
9846
                         || ' '
9847
                         || parent_rec.pkg_version,
3959 dpurdie 9848
                         nuserid, 'Y', patchpv_id, 'M', 'N', 3, 'N', parent_rec.ripple_field
1373 dpurdie 9849
                        );
9850
 
9851
            INSERT INTO package_patches
9852
                        (pv_id, patch_id, install_order)
3959 dpurdie 9853
                (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
9854
                        lastinstallorder + 1 AS install_order
9855
                   FROM package_versions pv
9856
                  WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
1373 dpurdie 9857
 
9858
            /* LOG ACTION */
9859
            log_action (patchpv_id,
9860
                        'new_version',
9861
                        nuserid,
9862
                        'Patch version created: ' || snewpatchversion
9863
                       );
9864
            log_action (nparentpvid,
9865
                        'patch_add',
9866
                        nuserid,
9867
                        'New patch created and attached: ' || snewpatchversion
9868
                       );
9869
         ELSE
9870
            patchpv_id := patch_rec.pv_id;
9871
            ispatchdlocked := patch_rec.dlocked;
9872
 
9873
            -- Find if pv_id exists in release content (i.e. it cannot be a patch)
9874
            OPEN releases_cur;
9875
 
9876
            FETCH releases_cur
9877
             INTO releases_rec;
9878
 
9879
            IF releases_cur%NOTFOUND
9880
            THEN
9881
               -- This pv_id is trully a patch, hence add Y to column IS_PATCH
9882
               UPDATE package_versions
9883
                  SET is_patch = 'Y'
9884
                WHERE pv_id = patchpv_id;
9885
 
9886
               INSERT INTO package_patches
9887
                           (pv_id, patch_id, install_order)
3959 dpurdie 9888
                   (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
9889
                           lastinstallorder + 1 AS install_order
9890
                      FROM package_versions pv
9891
                     WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
1373 dpurdie 9892
            END IF;
9893
 
9894
            CLOSE releases_cur;
9895
 
9896
            /* LOG ACTION */
9897
            log_action (nparentpvid,
9898
                        'patch_add',
9899
                        nuserid,
9900
                           'Patch version was found and attached: '
9901
                        || snewpatchversion
9902
                       );
9903
         END IF;
9904
      END IF;
9905
 
9906
      /* Create Patch Dependencies */
9907
      opatchdepcollector := in_list_number (spatchidlist);
9908
 
9909
      -- Make sure patch is unofficial before altering its dependencies
9910
      IF (opatchdepcollector.COUNT > 0) AND (ispatchdlocked = 'N')
9911
      THEN
9912
         -- Delete Existing Dependencies
9913
         DELETE FROM package_dependencies dep
9914
               WHERE dep.pv_id = patchpv_id;
9915
 
9916
         -- Insert new dependencies
9917
         INSERT INTO package_dependencies
9918
                     (pv_id, dpv_id, pkg_id, dpkg_id, build_type)
3959 dpurdie 9919
              SELECT patchpv_id AS pv_id, pv.pv_id AS dpv_id,
9920
                     parpkg_id AS pkg_id, pv.pkg_id AS dpkg_id,
9921
                     'L' AS build_type
9922
                FROM package_versions pv
9923
               WHERE pv.pv_id IN (
1373 dpurdie 9924
                      SELECT *
9925
                        FROM TABLE
9926
                                (CAST
9927
                                    (opatchdepcollector AS relmgr_number_tab_t)
9928
                                ));
9929
      END IF;
9930
 
9931
      -- Return patch_id
9932
      returnpatchid := patchpv_id;
9933
 
9934
      CLOSE parent_cur;
9935
 
9936
      CLOSE patch_cur;
9937
   EXCEPTION
9938
      WHEN DUP_VAL_ON_INDEX
9939
      THEN
9940
         raise_application_error (-20000,
9941
                                     'Patch version '
9942
                                  || snewpatchversion
9943
                                  || ' already exist.'
9944
                                 );
9945
   END;
9946
 
9947
/*-------------------------------------------------------------------------------------------------------*/
9948
   PROCEDURE obsolete_patch (
9949
      patchid            IN   NUMBER,
9950
      isobsolete         IN   CHAR,
9951
      obsoletecomments   IN   VARCHAR2,
9952
      userid             IN   NUMBER
9953
   )
9954
   IS
9955
   BEGIN
9956
      -- Update patch
9957
      UPDATE package_versions pv
9958
         SET pv.is_obsolete = isobsolete,
9959
             pv.obsolete_comments = obsoletecomments
9960
       WHERE pv.pv_id = patchid;
9961
 
9962
      /*
9963
      -- Update patch children
9964
      UPDATE PACKAGE_VERSIONS pv SET
9965
      pv.IS_OBSOLETE = IsObsolete,
9966
      pv.OBSOLETE_COMMENTS = ObsoleteComments
9967
      WHERE pv.PV_ID IN (
9968
                     SELECT DISTINCT dep.DPV_ID
9969
                       FROM PACKAGE_DEPENDENCIES dep
9970
                      WHERE dep.PV_ID = PatchId
9971
                     );
9972
 
9973
 
9974
      -- Update patch parent
9975
      UPDATE PACKAGE_VERSIONS pv SET
9976
      pv.IS_OBSOLETE = IsObsolete,
9977
      pv.OBSOLETE_COMMENTS = ObsoleteComments
9978
      WHERE pv.PV_ID IN (
9979
                     SELECT DISTINCT dep.PV_ID
9980
                       FROM PACKAGE_DEPENDENCIES dep
9981
                      WHERE dep.DPV_ID = PatchId
9982
                     );
9983
 
3959 dpurdie 9984
      */
1373 dpurdie 9985
 
9986
      /* LOG ACTION */
9987
      IF isobsolete IS NOT NULL
9988
      THEN
9989
         log_action (patchid,
9990
                     'patch_obsolete',
9991
                     userid,
9992
                     'Obsolete patch. ' || obsoletecomments
9993
                    );
9994
      ELSE
9995
         log_action (patchid,
9996
                     'patch_obsolete',
9997
                     userid,
9998
                     'Undo patch obsolete.'
9999
                    );
10000
      END IF;
10001
   END;
10002
 
10003
/*-------------------------------------------------------------------------------------------------------*/
10004
   PROCEDURE obsolete_patches (
10005
      spatchidlist       IN   VARCHAR2,
10006
      isobsolete         IN   CHAR,
10007
      obsoletecomments   IN   VARCHAR2,
10008
      userid             IN   NUMBER
10009
   )
10010
   IS
10011
   BEGIN
10012
      /*--------------- Business Rules Here -------------------*/
10013
      IF spatchidlist IS NULL
10014
      THEN
10015
         raise_application_error (-20000,
10016
                                  'Please select one or more Patches.'
10017
                                 );
10018
      END IF;
10019
 
10020
/*-------------------------------------------------------*/
10021
 
10022
      -- Update patch
10023
      UPDATE package_versions pv
10024
         SET pv.is_obsolete = isobsolete,
10025
             pv.obsolete_comments = obsoletecomments
10026
       WHERE pv.pv_id IN (
10027
                SELECT *
10028
                  FROM THE
10029
                          (SELECT CAST
10030
                                     (in_list_number (spatchidlist) AS relmgr_number_tab_t
10031
                                     )
10032
                             FROM DUAL
10033
                          ));
3959 dpurdie 10034
      /*
10035
      -- Update patch children
10036
      UPDATE PACKAGE_VERSIONS pv SET
10037
      pv.IS_OBSOLETE = IsObsolete,
10038
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10039
      WHERE pv.PV_ID IN (
10040
                     SELECT DISTINCT dep.DPV_ID
10041
                       FROM PACKAGE_DEPENDENCIES dep
10042
                      WHERE dep.PV_ID = PatchId
10043
                     );
1373 dpurdie 10044
 
10045
 
3959 dpurdie 10046
      -- Update patch parent
10047
      UPDATE PACKAGE_VERSIONS pv SET
10048
      pv.IS_OBSOLETE = IsObsolete,
10049
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10050
      WHERE pv.PV_ID IN (
10051
                     SELECT DISTINCT dep.PV_ID
10052
                       FROM PACKAGE_DEPENDENCIES dep
10053
                      WHERE dep.DPV_ID = PatchId
10054
                     );
1373 dpurdie 10055
 
10056
      */
10057
 
3959 dpurdie 10058
      /* LOG ACTION
10059
      IF IsObsolete IS NOT NULL THEN
1373 dpurdie 10060
         Log_Action ( PatchId, 'patch_obsolete', UserId,
3959 dpurdie 10061
                     'Obsolete patch. '|| ObsoleteComments );
10062
      ELSE
10063
         Log_Action ( PatchId, 'patch_obsolete', UserId,
10064
                     'Undo patch obsolete.' );
10065
      END IF;  */
1373 dpurdie 10066
   END;
10067
 
10068
/*-------------------------------------------------------------------------------------------------------*/
10069
   PROCEDURE add_process (
10070
      nprocid         IN   processes.proc_id%TYPE,
10071
      shealthtag      IN   processes.proc_name%TYPE,
10072
      sprocdesc       IN   processes.proc_description%TYPE,
10073
      scmdinterface   IN   processes.run_as%TYPE,
10074
      spkgowner       IN   processes.pkg_owner%TYPE,
10075
      sisinterface    IN   processes.is_interface%TYPE,
10076
      npvid           IN   package_processes.pv_id%TYPE,
10077
      nuserid         IN   NUMBER
10078
   )
10079
   IS
10080
      pkgname   VARCHAR2 (100);
3959 dpurdie 10081
 
1373 dpurdie 10082
   BEGIN
10083
      INSERT INTO processes
10084
                  (proc_id, proc_name, proc_description, run_as, pkg_owner,
10085
                   is_interface
10086
                  )
10087
           VALUES (nprocid, shealthtag, sprocdesc, scmdinterface, spkgowner,
10088
                   sisinterface
10089
                  );
10090
 
10091
      pk_package.add_package_process (nprocid, npvid, nuserid);
10092
   END;
10093
 
10094
/*-------------------------------------------------------------------------------------------------------*/
10095
   PROCEDURE add_package_process (
10096
      nprocidlist   IN   VARCHAR2,
10097
      npvid         IN   package_processes.pv_id%TYPE,
10098
      nuserid       IN   NUMBER
10099
   )
10100
   IS
10101
      processname   VARCHAR2 (4000);
10102
 
10103
      CURSOR proc_cur
10104
      IS
10105
         SELECT prc.proc_id
10106
           FROM processes prc
10107
          WHERE prc.proc_id IN (
10108
                   SELECT *
10109
                     FROM THE
10110
                             (SELECT CAST
10111
                                        (in_list_number (nprocidlist) AS relmgr_number_tab_t
10112
                                        )
10113
                                FROM DUAL
10114
                             ));
10115
 
3959 dpurdie 10116
      proc_rec  proc_cur%ROWTYPE;
1373 dpurdie 10117
   BEGIN
10118
      OPEN proc_cur;
10119
 
10120
      FETCH proc_cur
10121
       INTO proc_rec;
10122
 
10123
      WHILE proc_cur%FOUND
10124
      LOOP
3959 dpurdie 10125
         INSERT INTO package_processes (proc_id, pv_id)
10126
              VALUES (proc_rec.proc_id, npvid);
1373 dpurdie 10127
 
10128
         SELECT prc.proc_name
10129
           INTO processname
10130
           FROM processes prc
10131
          WHERE prc.proc_id = proc_rec.proc_id;
10132
 
10133
         -- Log Action --
10134
         log_action (npvid,
10135
                     'process_add',
10136
                     nuserid,
10137
                     'Added process with health tag ' || processname
10138
                    );
10139
 
10140
         FETCH proc_cur
10141
          INTO proc_rec;
10142
      END LOOP;
3959 dpurdie 10143
 
10144
      CLOSE proc_cur;
1373 dpurdie 10145
   END;
10146
 
10147
/*-------------------------------------------------------------------------------------------------------*/
10148
   PROCEDURE remove_process (
10149
      nprocid   IN   package_processes.proc_id%TYPE,
10150
      npvid     IN   package_processes.pv_id%TYPE,
10151
      nuserid   IN   NUMBER
10152
   )
10153
   IS
10154
      processname   VARCHAR2 (4000);
10155
   BEGIN
10156
      SELECT prc.proc_name
10157
        INTO processname
10158
        FROM processes prc
10159
       WHERE prc.proc_id = nprocid;
10160
 
10161
      DELETE FROM package_processes
10162
            WHERE proc_id = nprocid AND pv_id = npvid;
10163
 
10164
      -- Log Action --
10165
      log_action (npvid,
10166
                  'process_remove',
10167
                  nuserid,
10168
                  'Removed process with health tag ' || processname
10169
                 );
10170
   END;
10171
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10172
   /*
10173
   ** Author: Rupesh Solanki
10174
   ** Purpose: To move package versions from one release to another
10175
   ** Release: 4th September 2006
10176
   */
10177
   PROCEDURE move_package (
10178
      npvid        IN package_versions.pv_id%TYPE,
10179
      nrtagid      IN release_tags.rtag_id%TYPE,
10180
      nnewrtagid   IN release_tags.rtag_id%TYPE,
10181
      nuserid      IN NUMBER
10182
   )
10183
   IS
1373 dpurdie 10184
 
3959 dpurdie 10185
      oldrtag_name VARCHAR2(4000);newrtag_name VARCHAR2(4000);
10186
 
10187
   BEGIN
10188
      SELECT rtag_name into oldrtag_name
10189
      FROM RELEASE_TAGS
10190
      WHERE rtag_id = nrtagid;
10191
 
10192
      SELECT rtag_name into newrtag_name
10193
      FROM RELEASE_TAGS
10194
      WHERE rtag_id = nnewrtagid;
10195
 
10196
      /* Table Work In Progress*/
10197
      UPDATE WORK_IN_PROGRESS
10198
      SET RTAG_ID = nnewrtagid
10199
      WHERE RTAG_ID = nrtagid
10200
      AND PV_ID = npvid;
10201
 
10202
      /* Table PLANNED*/
10203
      UPDATE PLANNED
10204
      SET RTAG_ID = nnewrtagid
10205
      WHERE RTAG_ID = nrtagid
10206
      AND PV_ID = npvid;
10207
 
10208
      /* Table PEGGED_VERSIONS */
10209
      DELETE FROM PEGGED_VERSIONS pegv
10210
      WHERE pegv.RTAG_ID = nrtagid
10211
      AND pegv.PV_ID = npvid;
10212
 
10213
      /* Table ADVISORY_RIPPLE*/
10214
      DELETE FROM ADVISORY_RIPPLE
10215
      WHERE RTAG_ID = nrtagid
10216
      AND PV_ID = npvid;
10217
 
10218
 
1373 dpurdie 10219
      -- Log Action --
10220
      log_action (npvid,
10221
                  'move_package_version',
10222
                  nuserid,
10223
                  'Moved package version from ' || oldrtag_name || ' to ' || newrtag_name
3959 dpurdie 10224
                 );
10225
   END;
10226
 
1373 dpurdie 10227
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10228
   /*
10229
   ** Author: Rupesh Solanki
10230
   ** Purpose: To modify the product state from integration to test to deployment
10231
   ** Release: 25th January 2006
10232
   */
10233
   PROCEDURE modify_product_state (
10234
      npvid    IN package_versions.pv_id%TYPE,
10235
      nrtagid  IN release_tags.rtag_id%TYPE,
10236
      nstateid IN product_states.state_id%TYPE,
10237
      nuserid  IN NUMBER
1373 dpurdie 10238
   ) IS
3959 dpurdie 10239
 
10240
      sStateName VARCHAR2(4000);
10241
      sRtagName VARCHAR2(4000);
10242
 
10243
   BEGIN
10244
 
10245
      UPDATE RELEASE_CONTENT
10246
      SET PRODUCT_STATE = nstateid
10247
      WHERE PV_ID = npvid
10248
      AND RTAG_ID = nrtagid;
10249
 
10250
 
10251
      SELECT STATE INTO sStateName
10252
      FROM PRODUCT_STATES
10253
      WHERE STATE_ID = nstateid;
10254
 
10255
      SELECT RTAG_NAME into sRtagName
10256
      FROM RELEASE_TAGS
10257
      WHERE RTAG_ID = nrtagid;
10258
 
10259
 
10260
      -- Log Action --
10261
      log_action (npvid,
10262
                  'modify_product_state',
10263
                     nuserid,
10264
                     sStateName || ' in '|| sRtagName
10265
                  );
10266
   END;
10267
/*-------------------------------------------------------------------------------------------------------*/
10268
   /*
10269
   ** Author: Jeremy Tweddle
10270
   ** Date: 24/Aug/2007
10271
   */
10272
   PROCEDURE add_code_review_url (
10273
      npvid           IN    NUMBER,
10274
      nprojid         IN    NUMBER,
10275
      surl            IN    VARCHAR2,
10276
      sreason         IN    VARCHAR2,
4553 dpurdie 10277
      ddateofreview   IN    VARCHAR2
3959 dpurdie 10278
   ) IS
10279
 
10280
      ncrid NUMBER;
10281
 
10282
   BEGIN
10283
 
10284
      SELECT seq_cr_id.NEXTVAL INTO ncrid FROM DUAL;
10285
 
4553 dpurdie 10286
      INSERT INTO code_review_url ( cr_id, pv_id, proj_id, url, reason, date_of_review, last_modified )
10287
      VALUES ( ncrid, npvid, nprojid, surl, sreason, TO_DATE( ddateofreview,'DD/MM/YYYY' ), ora_sysdate );
3959 dpurdie 10288
 
10289
   END;
10290
/*-------------------------------------------------------------------------------------------------------*/
10291
   /*
10292
   ** Author: Jeremy Tweddle
10293
   ** Date: 22/Aug/2007
10294
   */
10295
   PROCEDURE update_code_review_url (
10296
      ncrid           IN    NUMBER,
10297
      nprojid         IN    NUMBER,
10298
      surl            IN    VARCHAR2,
4553 dpurdie 10299
      sreason         IN    VARCHAR2,
10300
      ddateofreview   IN    VARCHAR2
3959 dpurdie 10301
   ) IS
10302
 
10303
   BEGIN
10304
 
10305
      UPDATE code_review_url
10306
      SET url = surl,
10307
          proj_id = nprojid,
10308
          reason = sreason,
4553 dpurdie 10309
          date_of_review = TO_DATE( ddateofreview,'DD/MM/YYYY' ), 
3959 dpurdie 10310
          last_modified = ora_sysdate
10311
      WHERE cr_id = ncrid;
10312
 
10313
   END;
4553 dpurdie 10314
 
3959 dpurdie 10315
/*-------------------------------------------------------------------------------------------------------*/
10316
   /*
10317
   ** Author: Jeremy Tweddle
10318
   ** Date: 22/Aug/2007
10319
   */
10320
   PROCEDURE remove_code_review_url (
10321
      ncrid  IN    NUMBER
10322
   ) IS
10323
 
10324
   BEGIN
10325
      DELETE FROM code_review_url
10326
      WHERE cr_id = ncrid;
10327
   END;
10328
/*-------------------------------------------------------------------------------------------------------*/
10329
END pk_package;
4040 dpurdie 10330
 
1374 dpurdie 10331
/
4040 dpurdie 10332
--------------------------------------------------------
10333
--  DDL for Package Body PK_PLANNED
10334
--------------------------------------------------------
10335
 
5172 dpurdie 10336
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PLANNED" IS
3959 dpurdie 10337
 
1373 dpurdie 10338
/*
10339
------------------------------
3959 dpurdie 10340
||  Last Modified:  G.Huddy
10341
||  Modified Date:  05/Aug/2008
10342
||  Body Version:   1.2
1373 dpurdie 10343
------------------------------
10344
*/
10345
 
10346
 
10347
/*-------------------------------------------------------------------------------------------------------*/
5384 dpurdie 10348
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, OPR IN CHAR DEFAULT 'R' ) IS
1373 dpurdie 10349
 
3959 dpurdie 10350
    oldPvId NUMBER;
10351
    ReleaseLocation VARCHAR2(4000);
10352
    IsPatch CHAR(1) := NULL;
10353
    sLocation VARCHAR2(4000) := NULL;
10354
    nRtagIdLocation NUMBER;
1373 dpurdie 10355
 
10356
 
10357
 
3959 dpurdie 10358
BEGIN
10359
    /*--------------- Business Rules Here -------------------*/
10360
    /*-------------------------------------------------------*/
5384 dpurdie 10361
 
10362
    IF OPR = 'R' THEN
10363
      BEGIN
10364
          -- Check if Exists in "Work in progress" anywhere in the world, except "Closed mode" releases
10365
          SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME, rt.RTAG_ID  INTO sLocation, nRtagIdLocation
10366
            FROM PLANNED pl,
10367
                 RELEASE_TAGS rt,
10368
                 PROJECTS proj
10369
           WHERE pl.PV_ID = newPvId
10370
             AND pl.RTAG_ID = rt.RTAG_ID
10371
             AND rt.OFFICIAL != 'Y'
10372
             AND rt.PROJ_ID = proj.PROJ_ID;
10373
 
10374
          EXCEPTION
10375
              WHEN NO_DATA_FOUND THEN
10376
                  sLocation := NULL;
10377
      END;
10378
 
10379
      IF (sLocation IS NULL) OR (nRtagIdLocation = RtagId) THEN
10380
 
10381
          -- Add to "Pending" area
10382
          INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )
10383
          VALUES( RtagId, newPvId, ViewId, OPR );
10384
 
10385
          /* LOG ACTION */
10386
          SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
10387
            FROM PROJECTS proj,
10388
                 RELEASE_TAGS rt
10389
           WHERE rt.PROJ_ID = proj.PROJ_ID
10390
             AND rt.RTAG_ID = RtagId;
10391
 
10392
          Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
10393
 
10394
      ELSE
10395
            RAISE_APPLICATION_ERROR (-20000, 'This version is already in Pending Area at '|| sLocation ||'.' );
10396
        END IF;
10397
 
3959 dpurdie 10398
    ELSE
5384 dpurdie 10399
      -- Not adding a WIP. Merging a package version 
10400
      MERGE_PACKAGE ( newPvId, ViewId, RtagId, UserId, OPR );
3959 dpurdie 10401
    END IF;
10402
 
10403
END;
1373 dpurdie 10404
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10405
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 10406
 
3959 dpurdie 10407
    ReleaseLocation VARCHAR2(4000);
1373 dpurdie 10408
 
3959 dpurdie 10409
BEGIN
1373 dpurdie 10410
 
3959 dpurdie 10411
    /*--------------- Business Rules Here -------------------*/
10412
    /*-------------------------------------------------------*/
1373 dpurdie 10413
 
10414
 
3959 dpurdie 10415
    -- Get release location for logging pusposes
10416
    SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
10417
      FROM PROJECTS proj,
10418
           RELEASE_TAGS rt
10419
     WHERE rt.PROJ_ID = proj.PROJ_ID
10420
       AND rt.RTAG_ID = RtagId;
1373 dpurdie 10421
 
10422
 
3959 dpurdie 10423
    -- Delete from Work In Progress
10424
    DELETE
10425
      FROM PLANNED pl
10426
     WHERE pl.RTAG_ID = RtagId
10427
       AND pl.PV_ID = PvId;
1373 dpurdie 10428
 
3959 dpurdie 10429
    Log_Action ( PvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
10430
 
10431
 
10432
 
10433
 
10434
END;
1373 dpurdie 10435
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10436
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
1373 dpurdie 10437
 
3959 dpurdie 10438
    ReturnValue NUMBER;
1373 dpurdie 10439
 
3959 dpurdie 10440
BEGIN
10441
    SELECT pl.VIEW_ID INTO ReturnValue
10442
      FROM PLANNED pl
10443
     WHERE pl.RTAG_ID = RtagId
10444
       AND pl.PV_ID = PvId;
10445
 
10446
    RETURN ReturnValue;
10447
END;
10448
/*-------------------------------------------------------------------------------------------------------*/
10449
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
10450
 
10451
    IsBaseView CHAR(1);
10452
 
10453
BEGIN
10454
 
10455
    -- Check if the view is BASE VIEW
10456
    SELECT vi.BASE_VIEW INTO IsBaseView
10457
      FROM VIEWS vi
10458
     WHERE vi.VIEW_ID = ViewId;
10459
 
10460
 
5172 dpurdie 10461
    IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 10462
        -- Get Base view content
10463
        OPEN RecordSet FOR
10464
        SELECT 0 AS PKG_STATE,
10465
               NULL AS DEPRECATED_STATE,
10466
               pv.pv_id,
10467
               pkg.pkg_name,
10468
               pv.pkg_version,
10469
               pv.dlocked,
10470
               pv.pv_description,
10471
               pv.BUILD_TYPE,
10472
               rel.operation
10473
          FROM PLANNED rel,
10474
               packages pkg,
10475
               package_versions pv
10476
         WHERE pv.pkg_id = pkg.pkg_id
10477
           AND rel.pv_id = pv.pv_id
10478
           AND rel.VIEW_ID = ViewId
10479
           AND rel.RTAG_ID = RtagId
10480
         ORDER BY UPPER(pkg.PKG_NAME);
10481
 
10482
    ELSE
10483
 
10484
        -- Get non base view content
10485
        OPEN RecordSet FOR
10486
        SELECT 0 AS PKG_STATE,
10487
               NULL AS DEPRECATED_STATE,
10488
               pv.pv_id,
10489
               pkg.pkg_name,
10490
               pv.pkg_version,
10491
               pv.dlocked,
10492
               pv.pv_description,
10493
               pv.BUILD_TYPE,
10494
               rel.operation
10495
          FROM PLANNED rel,
10496
               packages pkg,
10497
               package_versions pv,
10498
               VIEW_DEF vd
10499
         WHERE pv.pkg_id = pkg.pkg_id
10500
           AND rel.pv_id = pv.pv_id
10501
           AND rel.RTAG_ID = RtagId
10502
           AND vd.VIEW_ID = ViewId
10503
           AND vd.PKG_ID = pv.PKG_ID
10504
         ORDER BY UPPER(pkg.PKG_NAME);
10505
 
10506
    END IF;
10507
 
10508
 
10509
END;
10510
/*-------------------------------------------------------------------------------------------------------*/
10511
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
10512
 
10513
BEGIN
10514
 
10515
    UPDATE PLANNED pl SET
10516
    pl.VIEW_ID = NewViewId
10517
    WHERE pl.PV_ID = PvId
10518
      AND pl.RTAG_ID = RtagId;
10519
 
10520
END;
10521
/*-------------------------------------------------------------------------------------------------------*/
10522
-- DEVI-45275 This new function supports the ability to insert into the planned table, and existing
10523
-- version of a package as part of a release-to-release merge operation carried out within release manager.
10524
-- DEVI-49594 This function has subsequently been changed to allow a merge operation to cancel its
10525
-- opposite operation, if the opposite already exists in the planned table. This supports user activity
10526
-- via the Release Manager merge manager display
10527
 
10528
PROCEDURE MERGE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, mergeOperation IN CHAR ) IS
10529
 
10530
    ReleaseLocation VARCHAR2(4000);
10531
 
10532
        entryExists NUMBER;
10533
        existingOperation CHAR;
10534
BEGIN
10535
    /*--------------- Business Rules Here -------------------*/
10536
    /*-------------------------------------------------------*/
10537
 
10538
      -- Determine if the specified PV_ID already exists in the planned table....
10539
      SELECT COUNT (pl.pv_id) INTO entryExists
10540
      FROM PLANNED pl
10541
      WHERE pl.pv_id = newPvId
10542
      AND pl.rtag_id = RtagId
10543
      AND pl.view_id = ViewId;
10544
 
10545
      -- If the specified PV_ID already exists in the planned table....
10546
      IF entryExists = 1 THEN
10547
 
10548
         -- Get the operation for the existing entry
10549
         SELECT pl.operation INTO existingOperation
10550
         FROM PLANNED pl
10551
         WHERE pl.pv_id = newPvId
10552
         AND pl.rtag_id = RtagId
10553
         AND pl.view_id = ViewId;
10554
 
10555
         -- Is the specified merge operation the opposite of the existing entry?
10556
         -- If it is not, then there is nothing to do, otherwise...
10557
         -- NOTE: A = Add, S = Subtract
10558
         IF (mergeOperation = 'S' AND existingOperation = 'A')
10559
            OR (mergeOperation = 'A' AND existingOperation = 'S') THEN
10560
 
10561
           -- It is the opposite, so effectively it cancels the existing entry
10562
           -- Remove the entry from the planned table
10563
           DELETE
10564
            FROM PLANNED pl
10565
           WHERE pl.pv_id = newPvId
10566
             AND pl.rtag_id = RtagId
10567
             AND pl.view_id = ViewId;
10568
 
10569
           -- Log action
10570
           SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
10571
             FROM PROJECTS proj,
10572
                  RELEASE_TAGS rt
10573
            WHERE rt.PROJ_ID = proj.PROJ_ID
10574
              AND rt.RTAG_ID = RtagId;
10575
 
10576
           Log_Action ( newPvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 10577
         END IF;
3959 dpurdie 10578
      ELSE
10579
         -- Add to Planned tabled
10580
         INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )
10581
         VALUES( RtagId, newPvId, ViewId, mergeOperation );
1373 dpurdie 10582
 
3959 dpurdie 10583
         -- Log Action
10584
         SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
10585
          FROM PROJECTS proj,
10586
               RELEASE_TAGS rt
10587
         WHERE rt.PROJ_ID = proj.PROJ_ID
10588
         AND   rt.RTAG_ID = RtagId;
10589
 
10590
         Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 10591
      END IF;
10592
 
3959 dpurdie 10593
END;
1373 dpurdie 10594
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10595
END PK_PLANNED;
4040 dpurdie 10596
 
3959 dpurdie 10597
/
4040 dpurdie 10598
--------------------------------------------------------
10599
--  DDL for Package Body PK_PROJECT
10600
--------------------------------------------------------
10601
 
5172 dpurdie 10602
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PROJECT" IS
1373 dpurdie 10603
 
3959 dpurdie 10604
    /*------------------------------------------------------------------------*/
10605
    PROCEDURE update_base_url (
10606
    nprojid   IN  projects.proj_id%TYPE,
10607
    sbaseurl  IN  VARCHAR2
10608
    ) IS
10609
    BEGIN
1373 dpurdie 10610
 
3959 dpurdie 10611
    UPDATE projects
10612
    SET base_url = sbaseurl
10613
    WHERE proj_id = nprojid;
10614
 
10615
    END update_base_url;
10616
 
10617
/*------------------------------------------------------------------------*/
10618
    PROCEDURE update_project_config (
10619
    nprojid   IN  projects.proj_id%TYPE,
10620
    sbaseurl  IN  VARCHAR2,
10621
    sjirakey  IN  VARCHAR2
10622
    ) IS
10623
    BEGIN
10624
 
10625
    UPDATE projects
10626
    SET base_url = sbaseurl,
10627
        jira_key = sjirakey
10628
    WHERE proj_id = nprojid;
10629
 
10630
    END update_project_config;
10631
    /*------------------------------------------------------------------------*/
10632
 
10633
    END pk_project;
4040 dpurdie 10634
 
3959 dpurdie 10635
/
4040 dpurdie 10636
--------------------------------------------------------
10637
--  DDL for Package Body PK_RELEASE
10638
--------------------------------------------------------
10639
 
5172 dpurdie 10640
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_RELEASE" IS
3959 dpurdie 10641
 
1373 dpurdie 10642
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10643
PROCEDURE New_Release ( sReleaseName IN VARCHAR2, sReleaseComments IN VARCHAR2, nProjId IN NUMBER, nSourceRtagId IN NUMBER, sIsBranched IN CHAR, nUserId IN NUMBER ) IS
1373 dpurdie 10644
 
3959 dpurdie 10645
RtagId NUMBER;
10646
ParentRtagId NUMBER;
10647
RecCount NUMBER := 0;
10648
VtreeId NUMBER;
1373 dpurdie 10649
 
3959 dpurdie 10650
BEGIN
10651
   /*--------------- Business Rules Here -------------------*/
10652
   -- Check for missing parameters
10653
   IF (sReleaseName IS NULL) OR (nUserId IS NULL)
10654
   THEN
10655
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId );
1373 dpurdie 10656
 
3959 dpurdie 10657
   END IF;
1373 dpurdie 10658
 
3959 dpurdie 10659
 
10660
   -- Check for duplicate Release Names
10661
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
10662
     FROM RELEASE_TAGS rt
10663
    WHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )
10664
      AND rt.PROJ_ID = nProjId;
10665
 
10666
   IF (RecCount > 0) THEN
10667
      RAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');
10668
   END IF;
10669
   /*-------------------------------------------------------*/
10670
 
10671
 
10672
   -- Get rtag_id
10673
   SELECT SEQ_RTAG_ID.NEXTVAL INTO RtagId FROM DUAL;
10674
 
10675
   SELECT SEQ_VTREE_ID.NEXTVAL INTO VtreeId FROM DUAL;
10676
 
10677
 
10678
 
10679
   -- Get Parent RtagId
10680
   ParentRtagId := GET_PARENT_RTAG ( RtagId, nSourceRtagId, sIsBranched );
10681
 
10682
   -- If the parent RTAG is NOT in this project then we cannot use it.
10683
   -- We must re-assign the parent to be the new release's RTAG_ID instead
10684
   -- else it will not show up in the projects release tree (DEVI-55480)
10685
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
10686
     FROM RELEASE_TAGS rt
10687
    WHERE rt.RTAG_ID = ParentRtagId
10688
      AND rt.PROJ_ID = nProjId;
10689
 
10690
   IF (RecCount = 0) THEN
10691
     ParentRtagId := RtagId;
10692
   END IF;
10693
 
10694
   -- Create new release
10695
   INSERT INTO RELEASE_TAGS ( RTAG_ID, RTAG_NAME, DESCRIPTION, CREATED_STAMP, CREATOR_ID,
10696
                        OFFICIAL, REBUILD_ENV, REBUILD_STAMP,
10697
                        PARENT_RTAG_ID, PROJ_ID, VTREE_ID )
10698
   VALUES ( RtagId,
10699
          sReleaseName,
10700
          sReleaseComments,
10701
          ORA_SYSDATE,
10702
          nUserId,
10703
          'N',
10704
          'N',
10705
          0,
10706
          ParentRtagId,
10707
          nProjId,
10708
          VtreeId );
10709
 
10710
   -- If a source release is provided, clone its config spec branch information into the new release (DEVI-56650)
10711
   IF (NOT nSourceRtagId IS NULL)
10712
   THEN
10713
      UPDATE RELEASE_TAGS rtd
10714
      SET rtd.config_spec_branch = (SELECT rts.CONFIG_SPEC_BRANCH FROM RELEASE_TAGS rts WHERE rts.RTAG_ID = nSourceRtagId)
10715
      WHERE rtd.RTAG_ID = RtagId;
10716
   END IF;
10717
 
10718
   -- Update display Order
10719
   UPDATE_DISPLAY_ORDER ( nProjId );
10720
 
10721
   /* Log Project Action */
10722
   Log_Project_Action ( nProjId, 'new_release', nUserId, sReleaseName, RtagId );
10723
 
10724
 
10725
   -- Import Release Contents
10726
   IF (NOT nSourceRtagId IS NULL) THEN
10727
      Import_Release_Contents ( nSourceRtagId, RtagId, nUserId );
10728
   END IF;
10729
 
10730
END;
10731
/*-------------------------------------------------------------------------------------------------------*/
10732
PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER ) IS
10733
 
10734
 
10735
BEGIN
10736
 
10737
 
10738
   /*--------------- Business Rules Here -------------------*/
10739
   /*-------------------------------------------------------*/
10740
 
10741
   UPDATE RELEASE_TAGS urt SET
10742
   urt.DISPLAY_ORDER = (
10743
                  SELECT qry.REC_NUM
10744
                    FROM (
10745
                        SELECT rel.*, ROWNUM AS REC_NUM
10746
                          FROM (
10747
 
10748
                                SELECT rt.RTAG_ID,
10749
                                    rt.DISPLAY_ORDER,
10750
                                     DECODE( rt.PARENT_RTAG_ID,
10751
                                             rt.RTAG_ID, 0, rt.PARENT_RTAG_ID ) AS PARENT_RTAG_ID
10752
                                FROM RELEASE_TAGS rt
10753
                               WHERE rt.PROJ_ID = nProjId
10754
 
10755
                                ) rel
10756
                        START WITH rel.PARENT_RTAG_ID = 0
10757
                        CONNECT BY PRIOR rel.RTAG_ID = rel.PARENT_RTAG_ID
10758
                        ORDER SIBLINGS BY rel.DISPLAY_ORDER
10759
                        ) qry
10760
                     WHERE qry.RTAG_ID = urt.RTAG_ID
10761
                  )
10762
   WHERE urt.PROJ_ID = nProjId;
10763
 
10764
END;
10765
/*-------------------------------------------------------------------------------------------------------*/
10766
PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER  ) IS
10767
 
10768
   nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
10769
   SeqNum NUMBER;
10770
 
10771
BEGIN
10772
 
10773
 
10774
   /*--------------- Business Rules Here -------------------*/
10775
   /*-------------------------------------------------------*/
10776
 
10777
   nIdCollector := IN_LIST_NUMBER ( sRtagIdList );
10778
 
10779
   -- Set start sequence number
10780
   SeqNum := 1;
10781
 
10782
   FOR i IN 1..nIdCollector.COUNT
10783
   LOOP
10784
 
10785
      -- Update new display order
10786
      UPDATE RELEASE_TAGS rt SET
10787
         rt.DISPLAY_ORDER = SeqNum
10788
       WHERE rt.PROJ_ID = nProjId
10789
         AND rt.RTAG_ID = nIdCollector(i);
10790
 
10791
      SeqNum := SeqNum + 1;
10792
 
10793
   END LOOP;
10794
 
10795
END;
10796
/*-------------------------------------------------------------------------------------------------------*/
5172 dpurdie 10797
PROCEDURE Update_Release ( nRtagId IN NUMBER, 
10798
                           sReleaseName IN VARCHAR2, 
10799
                           sReleaseComments IN VARCHAR2, 
10800
                           nParentRtagId IN NUMBER, 
10801
                           nMASSRtagId IN NUMBER, 
10802
                           nConfigSpecBranch IN VARCHAR2, 
10803
                           sOwnerEmail IN VARCHAR2, 
10804
                           nUserId IN NUMBER, 
10805
                           cState IN VARCHAR, 
5384 dpurdie 10806
                           nBuildAge in NUMBER,
10807
                           cLxr in CHAR) IS
3959 dpurdie 10808
 
10809
RecCount NUMBER := 0;
10810
ProjId NUMBER;
10811
 
10812
BEGIN
10813
 
10814
 
10815
   /*--------------- Business Rules Here -------------------*/
10816
   -- Check for missing parameters
10817
   IF (sReleaseName IS NULL) OR (nUserId IS NULL) OR (nRtagId IS NULL)
10818
   THEN
10819
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId ||', nRtagId='|| nRtagId);
10820
 
10821
   END IF;
10822
 
10823
 
10824
   -- Check for duplicate Release Names
10825
   SELECT rt.PROJ_ID INTO ProjId
10826
     FROM RELEASE_TAGS rt
10827
    WHERE rt.RTAG_ID = nRtagId;
10828
 
10829
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
10830
     FROM RELEASE_TAGS rt
10831
    WHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )
10832
      AND rt.RTAG_ID != nRtagId
10833
      AND rt.PROJ_ID = ProjId;
10834
 
10835
 
10836
   IF (RecCount > 0) THEN
10837
      RAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');
10838
   END IF;
10839
   /*-------------------------------------------------------*/
10840
 
10841
 
10842
 
10843
   -- Update release details
10844
   UPDATE RELEASE_TAGS rt SET
10845
   rt.RTAG_NAME = sReleaseName,
10846
   rt.DESCRIPTION = sReleaseComments,
10847
   rt.PARENT_RTAG_ID = nParentRtagId,
10848
   rt.ASSOC_MASS_REF = nMASSRtagId,
10849
   rt.CONFIG_SPEC_BRANCH = nConfigSpecBranch,
10850
   rt.OWNER_EMAIL = sOwnerEmail,
5172 dpurdie 10851
   rt.PRODUCT_STATE_USED = cState,
5384 dpurdie 10852
   rt.BUILD_AGE = nBuildAge,
10853
   rt.LXR = cLxr
3959 dpurdie 10854
   WHERE rt.RTAG_ID = nRtagId;
10855
 
10856
   -- Update display Order
10857
   UPDATE_DISPLAY_ORDER ( ProjId );
10858
 
10859
   /* Log Project Action */
10860
   Log_Project_Action ( ProjId, 'update_release', nUserId, 'Release Name: <br>Release Comments:', nRtagId );
10861
 
10862
 
10863
 
10864
 
10865
END;
10866
/*-------------------------------------------------------------------------------------------------------*/
10867
PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER ) IS
10868
 
10869
   RecCount NUMBER := 0;
10870
   sReleaseId VARCHAR2(4000);
10871
   ProjId NUMBER;
10872
 
10873
BEGIN
10874
   /*--------------- Business Rules Here -------------------*/
10875
   IF (nRtagId IS NULL)
10876
   THEN
10877
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId  );
10878
   END IF;
10879
 
10880
 
10881
 
10882
   -- Check for any kids
10883
   SELECT COUNT( rt.RTAG_ID ) INTO RecCount
10884
     FROM RELEASE_TAGS rt
10885
    WHERE rt.PARENT_RTAG_ID = nRtagId
10886
      AND rt.RTAG_ID != rt.PARENT_RTAG_ID;
10887
 
10888
   IF (RecCount > 0) THEN
10889
      RAISE_APPLICATION_ERROR (-20000, 'Cannot destroy this release. You need to destroy its children releases first.'  );
10890
   END IF;
10891
   /*-------------------------------------------------------*/
10892
 
10893
   -- Clear the release contents
10894
   Clean_Release_Contents ( nRtagId, nUserId );
10895
 
10896
   /* Log Project Action */
10897
   SELECT rt.PROJ_ID, rt.RTAG_NAME ||'['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']' INTO ProjId, sReleaseId
10898
     FROM RELEASE_TAGS rt
10899
    WHERE rt.RTAG_ID = nRtagId;
10900
 
10901
   Log_Project_Action ( ProjId, 'destroy_release', nUserId, sReleaseId, nRtagId );
10902
 
10903
 
10904
   -- Remove Release
10905
   DELETE
10906
     FROM RELEASE_TAGS rt
10907
    WHERE rt.RTAG_ID = nRtagId;
10908
 
10909
 
10910
 
10911
END;
10912
/*-------------------------------------------------------------------------------------------------------*/
10913
PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER  ) IS
10914
 
10915
   sSourceLocation VARCHAR2(4000);
10916
   sTargetLocation VARCHAR2(4000);
10917
   ProjId NUMBER;
10918
   cReleaseMode CHAR(1);
10919
   RconId NUMBER;
10920
 
10921
   -- this cursor gets the source release daemon configurations, ensuring that the
10922
   -- first record will be the master daemon, and subsequent records will be the slaves.
10923
   CURSOR curSrcReleaseConfigs IS
4308 dpurdie 10924
    SELECT daemon_hostname, gbe_id, gbe_buildfilter, bmcon_id, daemon_mode
3959 dpurdie 10925
     FROM RELEASE_CONFIG rc
10926
    WHERE rc.RTAG_ID = nSourceRtagId
10927
    ORDER BY rc.daemon_mode;
10928
    recSrcReleaseConfigs curSrcReleaseConfigs%ROWTYPE;
10929
 
10930
    -- this cursor looks for target release daemons
10931
   CURSOR curTgtReleaseConfigs IS
10932
    SELECT rcon_id
10933
     FROM RELEASE_CONFIG rc
10934
    WHERE rc.RTAG_ID = nTargetRtagId;
10935
    recTgtReleaseConfigs curTgtReleaseConfigs%ROWTYPE;
10936
 
10937
    -- this cursor looks for target release daemon run level entries
10938
   CURSOR curTgtReleaseConfigRunLevel IS
10939
    SELECT current_run_level
10940
     FROM RUN_LEVEL rl
10941
    WHERE rl.RCON_ID = recTgtReleaseConfigs.rcon_id;
10942
    recTgtReleaseConfigRunLevel curTgtReleaseConfigRunLevel%ROWTYPE;
10943
 
10944
BEGIN
10945
   /*--------------- Business Rules Here -------------------*/
10946
   IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)
10947
   THEN
10948
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );
10949
   END IF;
10950
 
10951
   IF (nSourceRtagId = nTargetRtagId) THEN
10952
      RAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );
10953
   END IF;
10954
 
10955
 
10956
   -- Check if Target release is in OPEN mode
10957
   SELECT rt.OFFICIAL  INTO  cReleaseMode
10958
     FROM RELEASE_TAGS rt
10959
    WHERE rt.RTAG_ID = nTargetRtagId;
10960
 
10961
   IF (cReleaseMode != 'N') THEN
10962
      RAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the contents.' );
10963
   END IF;
10964
 
10965
   -- check that the target release's daemons are all paused before we allow an import operation
10966
   OPEN curTgtReleaseConfigs;
10967
   FETCH curtgtReleaseConfigs INTO recTgtReleaseConfigs;
10968
 
10969
   WHILE curTgtReleaseConfigs%FOUND
10970
   LOOP
10971
      OPEN curTgtReleaseConfigRunLevel;
10972
      FETCH curTgtReleaseConfigRunLevel INTO recTgtReleaseConfigRunLevel;
10973
      IF curTgtReleaseConfigRunLevel%FOUND THEN
10974
         IF (recTgtReleaseConfigRunLevel.current_run_level IS NULL) OR
10975
            (recTgtReleaseConfigRunLevel.current_run_level <> 2) THEN
10976
            RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
10977
         END IF;
1373 dpurdie 10978
      ELSE
3959 dpurdie 10979
         -- we don't know what the daemon run level is so err on the side of caution
10980
         RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
1373 dpurdie 10981
      END IF;
3959 dpurdie 10982
      CLOSE curTgtReleaseConfigRunLevel;
1373 dpurdie 10983
 
3959 dpurdie 10984
      FETCH curTgtReleaseConfigs INTO recTgtReleaseConfigs;
10985
   END LOOP;
1373 dpurdie 10986
 
3959 dpurdie 10987
   CLOSE curTgtReleaseConfigs;
1373 dpurdie 10988
 
10989
 
3959 dpurdie 10990
   /*-------------------------------------------------------*/
1373 dpurdie 10991
 
3959 dpurdie 10992
   -- Clean target contents
10993
   Clean_Release_Contents ( nTargetRtagId, nUserId );
1373 dpurdie 10994
 
10995
 
3959 dpurdie 10996
   -- Import Released Area Contents
5384 dpurdie 10997
   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 10998
   SELECT nTargetRtagId AS RTAG_ID,
10999
         rc.PV_ID,
11000
         rc.BASE_VIEW_ID,
11001
         rc.INSERT_STAMP,
11002
         rc.INSERTOR_ID,
11003
         rc.PKG_STATE,
11004
         rc.PKG_ID,
5384 dpurdie 11005
         rc.DEPRECATED_STATE,
11006
         rc.PRODUCT_STATE,
11007
         rc.SDKTAG_ID
3959 dpurdie 11008
     FROM RELEASE_CONTENT rc
11009
    WHERE rc.RTAG_ID = nSourceRtagId;
11010
 
11011
 
11012
   -- Import any Pegged Version settings from the source release
11013
   INSERT INTO PEGGED_VERSIONS ( RTAG_ID, PV_ID )
11014
   SELECT nTargetRtagId AS RTAG_ID,
11015
          pegv.PV_ID
11016
     FROM PEGGED_VERSIONS pegv
11017
    WHERE pegv.RTAG_ID = nSourceRtagId;
11018
 
11019
   -- Import any Advisory Ripple settings from the source release
11020
   INSERT INTO ADVISORY_RIPPLE ( RTAG_ID, PV_ID )
11021
   SELECT nTargetRtagId AS RTAG_ID,
11022
          avr.PV_ID
11023
     FROM ADVISORY_RIPPLE avr
11024
    WHERE avr.RTAG_ID = nSourceRtagId;
11025
 
11026
 
11027
   --Import Release Configuration Information
11028
   OPEN curSrcReleaseConfigs;
11029
   FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
11030
 
4308 dpurdie 11031
     WHILE curSrcReleaseConfigs%FOUND
3959 dpurdie 11032
   LOOP
11033
      -- add a daemon to the target release
4308 dpurdie 11034
      PK_BUILDAPI.duplicate_daemon_config( nTargetRtagId, 
11035
                                     recSrcReleaseConfigs.bmcon_id, 
11036
                                     recSrcReleaseConfigs.daemon_hostname, 
11037
                                     recSrcReleaseConfigs.gbe_id, 
11038
                                     recSrcReleaseConfigs.daemon_mode ,
11039
                                     recSrcReleaseConfigs.gbe_buildfilter );
3959 dpurdie 11040
 
11041
      FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
11042
   END LOOP;
11043
 
11044
   CLOSE curSrcReleaseConfigs;
11045
 
11046
 
11047
 
11048
   -- Import Ignore Warning states
11049
   INSERT INTO IGNORE_WARNINGS ( RTAG_ID, PV_ID, DPV_ID )
11050
   SELECT nTargetRtagId AS RTAG_ID,
11051
          igw.PV_ID,
11052
          igw.DPV_ID
11053
     FROM IGNORE_WARNINGS igw
11054
    WHERE igw.rtag_id = nSourceRtagId;
11055
 
11056
 
11057
   /* Log Project Action */
11058
   -- Get Source Location
11059
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sSourceLocation
11060
     FROM RELEASE_TAGS rt,
11061
           PROJECTS pr
11062
    WHERE rt.PROJ_ID = pr.PROJ_ID
11063
      AND rt.RTAG_ID = nSourceRtagId;
11064
 
11065
   -- Get Target Location
11066
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sTargetLocation
11067
     FROM RELEASE_TAGS rt,
11068
           PROJECTS pr
11069
    WHERE rt.PROJ_ID = pr.PROJ_ID
11070
      AND rt.RTAG_ID = nTargetRtagId;
11071
 
11072
   -- Get project id
11073
   SELECT rt.PROJ_ID  INTO  ProjId
11074
     FROM RELEASE_TAGS rt
11075
    WHERE rt.RTAG_ID = nTargetRtagId;
11076
 
11077
   Log_Project_Action ( ProjId, 'import_release_contents', nUserId, 'SOURCE: '|| sSourceLocation ||'   TARGET: '|| sTargetLocation, nTargetRtagId );
11078
END;
11079
 
11080
 
11081
 
1373 dpurdie 11082
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11083
PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER ) IS
1373 dpurdie 11084
 
3959 dpurdie 11085
   RecCount NUMBER;
11086
        rconIdList VARCHAR2(4000);
1373 dpurdie 11087
 
3959 dpurdie 11088
BEGIN
11089
   /*--------------- Business Rules Here -------------------*/
11090
   IF (nRtagId IS NULL)
11091
   THEN
11092
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId  );
11093
   END IF;
1373 dpurdie 11094
 
11095
 
3959 dpurdie 11096
   -- Check if other release references this release
11097
   SELECT COUNT( rl.RTAG_ID ) INTO RecCount
11098
     FROM RELEASE_LINKS rl
11099
    WHERE rl.REF_RTAG_ID = nRtagId;
1373 dpurdie 11100
 
3959 dpurdie 11101
   IF (RecCount > 0) THEN
11102
      RAISE_APPLICATION_ERROR (-20000, 'This release is referenced by other release and cannot be destroyed.'  );
11103
   END IF;
11104
   /*-------------------------------------------------------*/
1373 dpurdie 11105
 
3959 dpurdie 11106
   -- Delete Release links
11107
   DELETE
11108
     FROM RELEASE_LINKS rl
11109
    WHERE rl.RTAG_ID = nRtagId;
11110
 
11111
   -- Delete ignore warning
11112
   DELETE
11113
     FROM IGNORE_WARNINGS iw
11114
    WHERE iw.RTAG_ID = nRtagId;
11115
 
11116
 
11117
   -- Delete Build Order cached calculations
11118
   DELETE
11119
     FROM BUILD_ORDER bo
11120
    WHERE bo.RTAG_ID = nRtagId;
11121
 
11122
 
11123
   -- Delete Notification History
11124
   DELETE
11125
     FROM NOTIFICATION_HISTORY nh
11126
    WHERE nh.RTAG_ID = nRtagId;
11127
 
11128
 
11129
   -- Delete Released Area Contents
11130
   DELETE
11131
     FROM RELEASE_CONTENT rc
11132
    WHERE rc.RTAG_ID = nRtagId;
11133
 
11134
 
11135
   -- Delete Work In Progress Area Contents
11136
   DELETE
11137
     FROM WORK_IN_PROGRESS wip
11138
    WHERE wip.RTAG_ID = nRtagId;
11139
 
11140
 
11141
   -- Delete Pending Area Contents
11142
   DELETE
11143
     FROM PLANNED pl
11144
    WHERE pl.RTAG_ID = nRtagId;
11145
 
11146
   -- Delete Deprecated Packages
11147
   DELETE
11148
     FROM DEPRECATED_PACKAGES dp
11149
    WHERE dp.RTAG_ID = nRtagId;
11150
 
11151
   -- Delete Project Action Log
11152
   DELETE
11153
     FROM PROJECT_ACTION_LOG pal
11154
    WHERE pal.RTAG_ID = nRtagId;
11155
 
11156
   -- Delete Do Not Ripple Contents
11157
   DELETE
11158
     FROM DO_NOT_RIPPLE dnr
11159
    WHERE dnr.RTAG_ID = nRtagId;
11160
 
11161
   -- Delete Dash Board Contents
11162
   DELETE
11163
     FROM DASH_BOARD db
11164
    WHERE db.RTAG_ID = nRtagId;
11165
 
11166
   -- Delete Advisory Ripple Contents
11167
   DELETE
11168
     FROM ADVISORY_RIPPLE adr
11169
    WHERE adr.RTAG_ID = nRtagId;
11170
 
11171
   -- Delete Archive Action Log
11172
   DELETE
11173
     FROM ARCHIVE_ACTION_LOG aal
11174
    WHERE aal.RTAG_ID = nRtagId;
11175
 
11176
   -- Delete Daemons For This Release
11177
   FOR rcon IN (SELECT rc.RCON_ID FROM RELEASE_CONFIG rc WHERE rc.RTAG_ID = nRtagId )
11178
   LOOP
11179
      rconIdList := rconIdList || rcon.RCON_ID || ',';
11180
   END LOOP;
11181
 
11182
   pk_buildapi.DELETE_DAEMON(rconIdList);
11183
 
11184
   -- Delete Release Metrics Contents
11185
   DELETE
11186
     FROM RELEASE_METRICS rm
11187
    WHERE rm.RTAG_ID = nRtagId;
11188
 
11189
   -- Delete Release Configuration Contents
11190
   DELETE
11191
     FROM RELEASE_CONFIG rc
11192
    WHERE rc.RTAG_ID = nRtagId;
11193
 
11194
   -- Delete Pegged Version Contents
11195
   DELETE
11196
     FROM PEGGED_VERSIONS pegv
11197
    WHERE pegv.RTAG_ID = nRtagId;
11198
 
11199
END;
11200
/*-------------------------------------------------------------------------------------------------------*/
11201
FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR )  RETURN NUMBER IS
11202
 
11203
   nSourceParentRtagId NUMBER;
11204
 
11205
BEGIN
11206
   /*--------------- Business Rules Here -------------------*/
11207
   IF (nRtagId IS NULL) OR (cIsBranch IS NULL)
11208
   THEN
11209
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId ||', cIsBranch= '|| cIsBranch );
11210
   END IF;
11211
   /*-------------------------------------------------------*/
11212
 
11213
 
11214
   IF ( nSourceRtagId IS NULL ) THEN
11215
      -- Create new on main branch
11216
      RETURN nRtagId;
11217
 
11218
   ELSE
11219
      -- Create from source rtag_id
11220
 
11221
      -- Find parent of Source RtagId
11222
      SELECT rt.PARENT_RTAG_ID INTO nSourceParentRtagId
11223
        FROM RELEASE_TAGS rt
11224
       WHERE rt.RTAG_ID = nSourceRtagId;
11225
 
11226
      IF (UPPER(cIsBranch) = 'Y') THEN
11227
         RETURN nSourceRtagId;
11228
      ELSE
11229
         IF (nSourceRtagId = nSourceParentRtagId) THEN
11230
            RETURN nRtagId;
11231
         ELSE
11232
            RETURN nSourceParentRtagId;
1373 dpurdie 11233
         END IF;
11234
      END IF;
11235
 
3959 dpurdie 11236
 
11237
   END IF;
11238
 
11239
 
11240
END;
1373 dpurdie 11241
/*-------------------------------------------------------------------------------------------------------*/
11242
 
3959 dpurdie 11243
-- PROCEDURE Get_Next_Version ( nSourceRtagId IN NUMBER,
11244
--                       sNextVersion OUT VARCHAR2,
11245
--                       nNextLifeCycle OUT NUMBER,
11246
--                       nParentRtagId OUT NUMBER,
11247
--                       nProjId IN NUMBER ) IS
11248
--
11249
-- SourceBranchCount NUMBER;
11250
-- ProjRootVersion VARCHAR2(4000);
11251
-- LastLifeCycle NUMBER;
11252
-- ROOT_VERSION_NOT_FOUND NUMBER := -1;
11253
-- SET_PARENT_AS_YOURSELF NUMBER := -1;
11254
--
11255
-- SourceProjId NUMBER;
11256
-- SourceVersion RELEASE_TAGS.RTAG_VERSION%TYPE;
11257
-- SourceLifeCycle RELEASE_TAGS.RTAG_LIFE_CYCLE%TYPE;
11258
--
11259
-- BEGIN
11260
--    /*--------------- Business Rules Here -------------------*/
11261
--    /*-------------------------------------------------------*/
11262
--
11263
--
11264
--    BEGIN
11265
--       -- Get Project root version
11266
--       SELECT rt.RTAG_VERSION INTO ProjRootVersion
11267
--         FROM RELEASE_TAGS rt
11268
--        WHERE rt.PROJ_ID = nProjId
11269
--          AND rt.RTAG_ID = rt.PARENT_RTAG_ID;
11270
--
11271
--       EXCEPTION
11272
--       WHEN NO_DATA_FOUND THEN
11273
--       ProjRootVersion := ROOT_VERSION_NOT_FOUND;
11274
--    END;
11275
--
11276
--
11277
--
11278
--
11279
--    BEGIN
11280
--       -- Get info for source rtagid
11281
--       SELECT rt.PROJ_ID, rt.RTAG_VERSION, rt.RTAG_LIFE_CYCLE  INTO  SourceProjId, SourceVersion, SourceLifeCycle
11282
--         FROM RELEASE_TAGS rt
11283
--        WHERE rt.RTAG_ID = nSourceRtagId;
11284
--
11285
--       EXCEPTION
11286
--       WHEN NO_DATA_FOUND THEN
11287
--       SourceProjId := NULL;
11288
--       SourceVersion := NULL;
11289
--       SourceLifeCycle := NULL;
11290
--    END;
11291
--
11292
--
11293
--    IF (nSourceRtagId IS NULL)  OR  ( SourceProjId != nProjId ) THEN
11294
--
11295
--       /* Blank Release Required  OR  Release imported from other project */
11296
--
11297
--       IF (ProjRootVersion = ROOT_VERSION_NOT_FOUND) THEN
11298
--          /* No Releases found in the project, hence calculate next version available.  */
11299
--
11300
--          -- Set parent rtag
11301
--          nParentRtagId := SET_PARENT_AS_YOURSELF;
11302
--
11303
--
11304
--          BEGIN
11305
--             -- Get Next Available Global Root Version
11306
--             SELECT MAX( TO_NUMBER( rt.RTAG_VERSION ) )  INTO  ProjRootVersion
11307
--               FROM RELEASE_TAGS rt
11308
--              WHERE rt.RTAG_ID = rt.PARENT_RTAG_ID;
11309
--
11310
--             -- Set Next Rtag Version
11311
--             sNextVersion := CAST( ProjRootVersion + 1 AS VARCHAR2 );
11312
--
11313
--             -- Restart Lifecycle
11314
--             nNextLifeCycle := 0;
11315
--
11316
--
11317
--             EXCEPTION
11318
--             WHEN NO_DATA_FOUND THEN
11319
--             -- Release Manager has no releases, hence start from 1
11320
--             sNextVersion := '1';
11321
--             nNextLifeCycle := 0;
11322
--
11323
--          END;
11324
--
11325
--
11326
--
11327
--       ELSE
11328
--          /* Releases found in this project. */
11329
--
11330
--          SELECT qry.RTAG_ID, qry.RTAG_LIFE_CYCLE  INTO nParentRtagId, LastLifeCycle
11331
--            FROM (
11332
--                SELECT rt.RTAG_ID, rt.RTAG_LIFE_CYCLE
11333
--                  FROM RELEASE_TAGS rt
11334
--                 WHERE rt.PROJ_ID = nProjId
11335
--                   AND rt.RTAG_VERSION = ProjRootVersion
11336
--                 ORDER BY rt.RTAG_LIFE_CYCLE DESC
11337
--                  ) qry
11338
--           WHERE ROWNUM = 1;
11339
--
11340
--
11341
--          -- Set same Rtag Version
11342
--          sNextVersion := ProjRootVersion;
11343
--
11344
--          -- Increase Lifecycle
11345
--          nNextLifeCycle := LastLifeCycle + 1;
11346
--
11347
--       END IF;
11348
--
11349
--
11350
--
11351
--    ELSE
11352
--       /* Create Release From other release within this project */
11353
--
11354
--       -- Set parent id
11355
--       nParentRtagId := nSourceRtagId;
11356
--
11357
--
11358
--       -- Get number of source branches
11359
--       SELECT COUNT(rt.RTAG_ID) INTO SourceBranchCount
11360
--         FROM RELEASE_TAGS rt
11361
--        WHERE rt.PROJ_ID = nProjId
11362
--          AND rt.PARENT_RTAG_ID = nSourceRtagId;
11363
--
11364
--
11365
--       IF SourceBranchCount = 0 THEN
11366
--          /* Release is Head (i.e. Tip on its branch ) */
11367
--
11368
--          -- Set Next Rtag Version
11369
--          sNextVersion := SourceVersion;
11370
--
11371
--          -- Increase Lifecycle
11372
--          nNextLifeCycle := SourceLifeCycle + 1;
11373
--
11374
--
11375
--       ELSIF SourceBranchCount = 1 THEN
11376
--          /* Release IS NOT Head, but can be branched */
11377
--
11378
--          -- Set Next Rtag Version
11379
--          sNextVersion := SourceVersion ||'.'|| SourceLifeCycle;
11380
--
11381
--          -- Reset Lifecycle to 1
11382
--          nNextLifeCycle := 1;
11383
--
11384
--
11385
--       ELSE
11386
--          -- Limit of two branches is reached
11387
--          RAISE_APPLICATION_ERROR (-20000, 'This release is already branched and cannot be branched again. ');
11388
--
11389
--       END IF;
11390
--
11391
--
11392
--
11393
--
11394
--
11395
--
11396
--    END IF;
11397
--
11398
--
11399
-- END;
11400
 
11401
/*-------------------------------------------------------------------------------------------------------*/
11402
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
11403
 
11404
   IsBaseView CHAR(1);
11405
 
11406
BEGIN
11407
 
11408
   -- Check if the view is BASE VIEW
11409
   SELECT vi.BASE_VIEW INTO IsBaseView
11410
     FROM VIEWS vi
11411
    WHERE vi.VIEW_ID = ViewId;
11412
 
5172 dpurdie 11413
   IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 11414
      -- Get Base view content
11415
      OPEN RecordSet FOR
11416
      SELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,
11417
            rel.deprecated_state,
11418
            pv.pv_id,
11419
            pkg.pkg_name,
11420
            pv.pkg_version,
11421
            pv.dlocked,
11422
            pv.pv_description,
11423
            pv.BUILD_TYPE
11424
        FROM release_content rel,
11425
             packages pkg,
11426
             package_versions pv
11427
       WHERE pv.pkg_id = pkg.pkg_id
11428
         AND rel.pv_id = pv.pv_id
11429
         AND rel.BASE_VIEW_ID = ViewId
11430
         AND rel.RTAG_ID = RtagId
11431
       ORDER BY UPPER(pkg.PKG_NAME);
11432
 
11433
   ELSE
11434
 
11435
       -- Get non base view content
11436
      OPEN RecordSet FOR
11437
      SELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,
11438
            rel.deprecated_state,
11439
            pv.pv_id,
11440
            pkg.pkg_name,
11441
            pv.pkg_version,
11442
            pv.dlocked,
11443
            pv.pv_description,
11444
            pv.BUILD_TYPE
11445
        FROM release_content rel,
11446
             packages pkg,
11447
             package_versions pv,
11448
            VIEW_DEF vd
11449
       WHERE pv.pkg_id = pkg.pkg_id
11450
         AND rel.pv_id = pv.pv_id
11451
         AND vd.VIEW_ID = ViewId
11452
         AND vd.PKG_ID = pv.PKG_ID
11453
         AND rel.RTAG_ID = RtagId
11454
       ORDER BY UPPER(pkg.PKG_NAME);
11455
 
11456
   END IF;
11457
 
11458
 
11459
 
11460
 
11461
END;
11462
/*-------------------------------------------------------------------------------------------------------*/
4585 dpurdie 11463
  -- Add or Replace a package to the specified release
3959 dpurdie 11464
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
11465
   ReleaseLocation VARCHAR2(4000);
11466
   nPkgId NUMBER;
11467
   sVExt VARCHAR2(4000);
11468
   IsPatch PACKAGE_VERSIONS.IS_PATCH%TYPE := 'N';
5172 dpurdie 11469
   default_pegged CHAR := 'N';
11470
   default_advisory_ripple CHAR := 'N';
3959 dpurdie 11471
 
11472
   -- Find package for replacement
11473
   CURSOR curReplacePkg IS
11474
    SELECT pv.PV_ID
11475
     FROM RELEASE_CONTENT rc,
11476
           PACKAGE_VERSIONS pv
11477
    WHERE rc.PV_ID = pv.PV_ID
11478
      AND rc.RTAG_ID = RtagId
11479
      AND pv.PKG_ID = nPkgId
11480
      AND NVL( pv.V_EXT, 'LINK_A_NULL' ) = NVL( sVExt, 'LINK_A_NULL' );
11481
    recReplacePkg curReplacePkg%ROWTYPE;
11482
 
11483
BEGIN
11484
   -- Get is_patch, pkg_id and v_ext
5172 dpurdie 11485
   SELECT pv.IS_PATCH, pv.PKG_ID, pv.V_EXT 
11486
     INTO IsPatch, nPkgId, sVExt
3959 dpurdie 11487
     FROM PACKAGE_VERSIONS pv
11488
    WHERE pv.PV_ID = newPvId;
11489
 
11490
   -- Never put patch in relesed area
11491
   IF (IsPatch != 'Y') OR (IsPatch IS NULL) THEN
11492
 
11493
      -- Try to get a package to be replaced with this new one.
11494
      -- Use unique constraint of PKG_ID and V_EXT
11495
      OPEN curReplacePkg;
11496
       FETCH curReplacePkg INTO recReplacePkg;
11497
 
11498
       IF curReplacePkg%FOUND THEN
11499
         -- Replace package
11500
         REPLACE_PACKAGE ( newPvId, recReplacePkg.PV_ID, RtagId, UserId );
11501
 
11502
      ELSE
11503
         -- Add new package
11504
         INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )
11505
         VALUES( RtagId, newPvId, ViewId, Ora_Sysdate, UserId, 0);
5172 dpurdie 11506
 
11507
        -- Insert default package flags
11508
        -- Get Package Level defaults
11509
 
11510
        SELECT pkg.default_pegged, pkg.DEFAULT_ADVISORY_RIPPLE 
11511
         INTO  default_pegged, default_advisory_ripple
11512
         FROM  PACKAGES pkg
11513
        WHERE  pkg.PKG_ID = nPkgId; 
3959 dpurdie 11514
 
5172 dpurdie 11515
        -- Apply to the newly inserted package
11516
        IF default_pegged = 'Y' THEN
11517
          INSERT INTO PEGGED_VERSIONS ( RTAG_ID, PV_ID ) VALUES (RtagId, newPvId);
11518
          -- Log_Action ( newPvId, 'action', UserId, 'Set default package peg' );
11519
        END IF;
11520
 
11521
        IF default_advisory_ripple = 'Y' THEN
11522
          INSERT INTO ADVISORY_RIPPLE ( RTAG_ID, PV_ID ) VALUES (RtagId, newPvId);
11523
          -- Log_Action ( newPvId, 'action', UserId, 'Set default advisory ripple' );
11524
        END IF;
3959 dpurdie 11525
 
5172 dpurdie 11526
        -- Mark Release as chnaged
11527
        SET_RELEASE_MODIFIED(RtagId);
11528
        RUN_POST_ACTIONS(newPvId, RtagId);
11529
 
3959 dpurdie 11530
          /* LOG ACTION */
11531
         SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11532
           FROM PROJECTS proj,
11533
                 RELEASE_TAGS rt
11534
          WHERE rt.PROJ_ID = proj.PROJ_ID
11535
            AND rt.RTAG_ID = RtagId;
11536
 
11537
         Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );
11538
 
1373 dpurdie 11539
      END IF;
3959 dpurdie 11540
      CLOSE curReplacePkg;
11541
   END IF;
5172 dpurdie 11542
END;
3959 dpurdie 11543
 
1373 dpurdie 11544
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11545
PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 11546
 
3959 dpurdie 11547
   ReleaseLocation VARCHAR2(4000);
11548
   sPkgVersion VARCHAR2(4000);
5172 dpurdie 11549
   nSdkTag NUMBER;
3959 dpurdie 11550
BEGIN
5172 dpurdie 11551
   -- Trap SDK Replacement
11552
   -- This is a last ditch check. The application should not allow this condition to happen
11553
      SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
11554
      WHERE rtag_id = RtagId
11555
       AND pv_id = oldPvId;
11556
 
11557
     If nSdkTag IS NOT NULL  THEN
11558
       raise_application_error (-20000, 'Attempt to replace a package provided by an SDK.');
11559
     END IF;
3959 dpurdie 11560
 
11561
   -- Replace Package
11562
    UPDATE RELEASE_CONTENT
11563
       SET pv_id = newPvId,
11564
           insert_stamp = Ora_Sysdate,
11565
           insertor_id = UserId,
11566
         product_state = NULL
11567
     WHERE rtag_id = RtagId
11568
       AND pv_id = oldPvId;
11569
 
11570
   -- update the pegging table
11571
   UPDATE PEGGED_VERSIONS
11572
      SET pv_id = newPvId
11573
     WHERE rtag_id = RtagId
11574
       AND pv_id = oldPvId;
11575
 
11576
   -- update the advisory_ripple table
11577
   UPDATE ADVISORY_RIPPLE
11578
      SET pv_id = newPvId
11579
     WHERE rtag_id = RtagId
11580
       AND pv_id = oldPvId;
11581
 
11582
    /* LOG ACTION */
11583
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11584
     FROM PROJECTS proj,
11585
           RELEASE_TAGS rt
11586
    WHERE rt.PROJ_ID = proj.PROJ_ID
11587
      AND rt.RTAG_ID = RtagId;
11588
 
11589
   SELECT pv.PKG_VERSION INTO sPkgVersion
11590
     FROM PACKAGE_VERSIONS pv
11591
    WHERE pv.PV_ID = newPvId;
11592
 
5172 dpurdie 11593
   SET_RELEASE_MODIFIED(RtagId);
3959 dpurdie 11594
   Log_Action ( oldPvId, 'replaced_with', UserId, 'Replacing with: '|| sPkgVersion ||' at '|| ReleaseLocation );
11595
   Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );
11596
 
11597
END;
11598
/*-------------------------------------------------------------------------------------------------------*/
11599
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
11600
   ReleaseLocation VARCHAR2(4000);
5172 dpurdie 11601
   nSdkTag NUMBER;
3959 dpurdie 11602
BEGIN
5172 dpurdie 11603
   -- Trap SDK Package Deletion
11604
   -- This is a last ditch check. The application should not allow this condition to happen
11605
      SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
11606
      WHERE rtag_id = RtagId
11607
       AND pv_id = PvId;
11608
 
11609
     If nSdkTag IS NOT NULL  THEN
11610
       raise_application_error (-20000, 'Attempt to delete a package provided by an SDK.');
11611
     END IF;
3959 dpurdie 11612
 
11613
   -- Delete old package
11614
   DELETE
11615
     FROM RELEASE_CONTENT rc
11616
    WHERE rc.PV_ID = PvId
11617
      AND rc.RTAG_ID = RtagId;
11618
 
11619
 
11620
   /* LOG ACTION */
11621
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11622
     FROM PROJECTS proj,
11623
          RELEASE_TAGS rt
11624
    WHERE rt.PROJ_ID = proj.PROJ_ID
11625
      AND rt.RTAG_ID = RtagId;
11626
 
11627
   Log_Action ( PvId, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );
11628
 
11629
 
11630
END;
11631
/*-------------------------------------------------------------------------------------------------------*/
11632
PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
11633
   ReleaseLocation VARCHAR2(4000);
11634
 
11635
   CURSOR curMatchingPackage IS
11636
    SELECT mpv.PV_ID
11637
     FROM RELEASE_CONTENT rc,
11638
           PACKAGE_VERSIONS mpv,
11639
         PACKAGE_VERSIONS pv
11640
    WHERE rc.PV_ID = mpv.PV_ID
11641
      AND rc.RTAG_ID = RtagId
11642
      AND pv.PV_ID = PvId
11643
      AND pv.PKG_ID = mpv.PKG_ID
11644
      AND NVL( pv.V_EXT, '|LINK_A_NULL|' ) = NVL( mpv.V_EXT, '|LINK_A_NULL|' );
11645
    recMatchingPackage curMatchingPackage%ROWTYPE;
11646
 
11647
BEGIN
11648
 
11649
   OPEN curMatchingPackage;
11650
    FETCH curMatchingPackage INTO recMatchingPackage;
11651
 
11652
    IF curMatchingPackage%FOUND THEN
11653
      -- Delete old package
11654
      DELETE
11655
        FROM RELEASE_CONTENT rc
11656
       WHERE rc.PV_ID = recMatchingPackage.PV_ID
11657
         AND rc.RTAG_ID = RtagId;
11658
 
11659
 
11660
      /* LOG ACTION */
11661
      SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11662
        FROM PROJECTS proj,
11663
              RELEASE_TAGS rt
11664
       WHERE rt.PROJ_ID = proj.PROJ_ID
11665
         AND rt.RTAG_ID = RtagId;
11666
 
11667
      Log_Action ( recMatchingPackage.PV_ID, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );
11668
 
11669
   END IF;
11670
 
11671
 
11672
   CLOSE curMatchingPackage;
11673
 
11674
 
11675
 
11676
 
11677
END;
11678
/*-------------------------------------------------------------------------------------------------------*/
11679
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
11680
 
11681
   ReturnValue NUMBER;
11682
 
11683
BEGIN
11684
   SELECT rc.BASE_VIEW_ID INTO ReturnValue
11685
     FROM RELEASE_CONTENT rc
11686
    WHERE rc.RTAG_ID = RtagId
11687
      AND rc.PV_ID = PvId;
11688
 
11689
   RETURN ReturnValue;
11690
END;
11691
/*-------------------------------------------------------------------------------------------------------*/
11692
PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER ) IS
11693
 
11694
BEGIN
11695
   -- Reset Ignore warnings up-the-tree
11696
   RESET_IGNORE_WARNINGS ( TO_CHAR(PvId), RtagId );
11697
 
11698
   -- Refresh Package states
11699
   TOUCH_RELEASE ( RtagId );
11700
 
11701
END;
11702
/*-------------------------------------------------------------------------------------------------------*/
11703
PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER ) IS
11704
   CURSOR curReleases IS
11705
    SELECT rc.RTAG_ID
11706
     FROM RELEASE_CONTENT rc
11707
    WHERE rc.PV_ID = PvId;
11708
    recReleases curReleases%ROWTYPE;
11709
 
11710
BEGIN
11711
 
11712
   OPEN curReleases;
11713
    FETCH curReleases INTO recReleases;
11714
 
11715
   WHILE curReleases%FOUND
11716
   LOOP
11717
 
11718
      RUN_POST_ACTIONS ( PvId, recReleases.RTAG_ID );
11719
 
11720
      FETCH curReleases INTO recReleases;
11721
   END LOOP;
11722
 
11723
   CLOSE curReleases;
11724
 
11725
END;
11726
/*-------------------------------------------------------------------------------------------------------*/
11727
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
11728
 
11729
BEGIN
11730
 
11731
   UPDATE RELEASE_CONTENT rc SET
11732
   rc.BASE_VIEW_ID = NewViewId
11733
   WHERE rc.PV_ID = PvId
11734
     AND rc.RTAG_ID = RtagId;
11735
 
11736
END;
11737
/*-------------------------------------------------------------------------------------------------------*/
11738
PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 ) IS
11739
 
11740
   RowCount NUMBER;
11741
 
11742
 
11743
   CURSOR curPackageClash IS
11744
   SELECT pkg.PKG_NAME,
11745
         er.*
11746
     FROM (
11747
 
11748
           /* Get existing referenced packages */
11749
         SELECT pv.PKG_ID,
11750
                pv.V_EXT
11751
           FROM RELEASE_LINKS rl,
11752
                 RELEASE_CONTENT rc,
11753
                 PACKAGE_VERSIONS pv
11754
          WHERE rl.RTAG_ID = nRtagId
11755
            AND rl.REF_RTAG_ID = rc.RTAG_ID
11756
            AND rc.PV_ID = pv.PV_ID
11757
 
11758
            ) er,
11759
         (
11760
 
11761
         /* Get current reference packages */
11762
         SELECT pv.PKG_ID,
11763
                pv.V_EXT
11764
           FROM RELEASE_CONTENT rc,
11765
                 PACKAGE_VERSIONS pv
11766
          WHERE rc.RTAG_ID = nRefRtagId
11767
            AND rc.PV_ID = pv.PV_ID
11768
 
11769
         ) cr,
11770
         PACKAGES PKG
11771
    WHERE er.PKG_ID = cr.PKG_ID
11772
      AND NVL(er.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
11773
      AND er.PKG_ID = pkg.PKG_ID;
11774
 
11775
   recPackageClash curPackageClash%ROWTYPE;
11776
 
11777
BEGIN
11778
   /*--------------- Business Rules Here -------------------*/
11779
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
11780
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
11781
   END IF;
11782
 
11783
   IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THEN
11784
      RAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );
11785
   END IF;
11786
   /*-------------------------------------------------------*/
11787
   ProblemString := NULL;
11788
 
11789
 
11790
   -- Check if release already has references
11791
   SELECT COUNT(rl.RTAG_ID)  INTO  RowCount
11792
     FROM RELEASE_LINKS rl
11793
    WHERE rl.RTAG_ID = nRtagId;
11794
 
11795
 
11796
   IF RowCount > 0 THEN
11797
      -- Found existing references
11798
 
11799
      -- Make sure there is no package clashes
11800
      OPEN curPackageClash;
11801
       FETCH curPackageClash INTO recPackageClash;
11802
 
11803
      IF curPackageClash%FOUND THEN
11804
 
11805
         ProblemString := ProblemString ||'Following is partial list of package already referenced from other release:'|| UTL_TCP.CRLF;
11806
 
11807
         WHILE curPackageClash%FOUND
11808
         LOOP
11809
            EXIT WHEN LENGTH( ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT  || UTL_TCP.CRLF ) > 200;   -- Do not allow variable overflow
11810
 
11811
            ProblemString := ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT  || UTL_TCP.CRLF;
11812
 
11813
            FETCH curPackageClash INTO recPackageClash;
11814
         END LOOP;
11815
 
1373 dpurdie 11816
      END IF;
11817
 
3959 dpurdie 11818
      CLOSE curPackageClash;
11819
 
11820
 
11821
   ELSE
11822
      -- No references found, hence reference a release
11823
 
11824
 
11825
      -- Remove exising package from this release to be referenced
11826
      REMOVE_RELEASE_REFERENCE ( nRtagId, nRefRtagId);
11827
 
11828
 
11829
      -- Add new linked packages to release
11830
      INSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE)
11831
      SELECT nRtagId,
11832
            rc.PV_ID,
11833
            rc.BASE_VIEW_ID,
11834
            rc.INSERT_STAMP,
11835
            rc.INSERTOR_ID,
11836
            rc.PKG_STATE
11837
        FROM RELEASE_CONTENT rc
11838
       WHERE rc.RTAG_ID = nRefRtagId;
11839
 
11840
 
11841
 
11842
      -- Copy ignore warnings for referenced packages
11843
      INSERT INTO IGNORE_WARNINGS iw (RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE)
11844
      SELECT nRtagId,
11845
            iw.PV_ID,
11846
            iw.DPV_ID,
11847
            iw.IS_PATCH_IGNORE
11848
        FROM IGNORE_WARNINGS iw,
11849
              RELEASE_CONTENT rc
11850
       WHERE iw.RTAG_ID = rc.RTAG_ID
11851
         AND iw.PV_ID = rc.PV_ID
11852
         AND rc.RTAG_ID = nRefRtagId;
11853
 
11854
 
11855
 
11856
      -- Reference release
11857
      INSERT INTO RELEASE_LINKS (RTAG_ID, REF_RTAG_ID)
11858
      VALUES ( nRtagId, nRefRtagId );
11859
 
11860
 
11861
      -- Refresh Package states
11862
      TOUCH_RELEASE ( nRtagId );
11863
 
11864
   END IF;
11865
 
11866
 
11867
END;
1373 dpurdie 11868
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11869
PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER ) IS
1373 dpurdie 11870
 
3959 dpurdie 11871
 
11872
BEGIN
11873
   /*--------------- Business Rules Here -------------------*/
11874
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
11875
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
11876
   END IF;
11877
 
11878
   IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THEN
11879
      RAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );
11880
   END IF;
11881
 
11882
   /*-------------------------------------------------------*/
11883
 
11884
 
11885
   -- Remove ignore warnings for those packages who use referenced packages
11886
   DELETE FROM IGNORE_WARNINGS iw
11887
    WHERE iw.RTAG_ID = nRtagId
11888
      AND iw.DPV_ID IN (
11889
                        SELECT dep.DPV_ID
11890
                       FROM (
11891
 
11892
                           /* Get referenced packages */
11893
                           SELECT pv.PKG_ID,
11894
                                  pv.V_EXT
11895
                             FROM RELEASE_CONTENT rc,
11896
                                   PACKAGE_VERSIONS pv
11897
                            WHERE rc.RTAG_ID = nRefRtagId
11898
                              AND rc.PV_ID = pv.PV_ID
11899
 
11900
                           ) cr,
11901
                           (
11902
 
11903
                           /* Get all dependencies for current release */
11904
                           SELECT DISTINCT
11905
                                 pv.PKG_ID,
11906
                                 pv.V_EXT,
11907
                                 dep.DPV_ID
11908
                             FROM RELEASE_CONTENT rc,
11909
                                 PACKAGE_DEPENDENCIES dep,
11910
                                 PACKAGE_VERSIONS pv
11911
                            WHERE rc.RTAG_ID = nRtagId
11912
                              AND rc.PV_ID = dep.PV_ID
11913
                              AND dep.PV_ID = pv.PV_ID
11914
 
11915
                           ) dep
11916
                      WHERE dep.PKG_ID = cr.PKG_ID
11917
                        AND NVL(dep.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
11918
                     );
11919
 
11920
 
11921
 
11922
 
11923
   -- Remove ignore warnings for those package which are going to be replaced with the reference
11924
   DELETE FROM IGNORE_WARNINGS iw
11925
    WHERE iw.RTAG_ID = nRtagId
11926
      AND iw.PV_ID IN (
11927
                  SELECT pv.PV_ID
11928
                    FROM (
11929
 
11930
                        /* Get referenced packages */
11931
                        SELECT pv.PKG_ID,
11932
                               pv.V_EXT
11933
                          FROM RELEASE_CONTENT rc,
11934
                                PACKAGE_VERSIONS pv
11935
                         WHERE rc.RTAG_ID = nRefRtagId
11936
                           AND rc.PV_ID = pv.PV_ID
11937
 
11938
                        ) cr,
11939
                        RELEASE_CONTENT rc,
11940
                        PACKAGE_VERSIONS pv
11941
                   WHERE pv.PKG_ID = cr.PKG_ID
11942
                     AND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
11943
                     AND rc.RTAG_ID = nRtagId
11944
                     AND rc.PV_ID = pv.PV_ID
11945
                  );
11946
 
11947
 
11948
 
11949
 
11950
 
11951
   -- Remove matching packages from release
11952
   DELETE FROM RELEASE_CONTENT rc
11953
    WHERE rc.RTAG_ID = nRtagId
11954
      AND rc.PV_ID IN (
11955
                  SELECT pv.PV_ID
11956
                    FROM (
11957
 
11958
                        /* Get referenced packages */
11959
                        SELECT pv.PKG_ID,
11960
                               pv.V_EXT
11961
                          FROM RELEASE_CONTENT rc,
11962
                                PACKAGE_VERSIONS pv
11963
                         WHERE rc.RTAG_ID = nRefRtagId
11964
                           AND rc.PV_ID = pv.PV_ID
11965
 
11966
                        ) cr,
11967
                        RELEASE_CONTENT rc,
11968
                        PACKAGE_VERSIONS pv
11969
                   WHERE pv.PKG_ID = cr.PKG_ID
11970
                     AND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
11971
                     AND rc.RTAG_ID = nRtagId
11972
                     AND rc.PV_ID = pv.PV_ID
11973
                  );
11974
 
11975
 
11976
 
11977
 
11978
 
11979
   -- Remove Reference release
11980
   DELETE
11981
     FROM RELEASE_LINKS rl
11982
    WHERE rl.RTAG_ID = nRtagId
11983
      AND rl.REF_RTAG_ID = nRefRtagId;
11984
 
11985
 
11986
   -- Refresh Package states
11987
   TOUCH_RELEASE ( nRtagId );
11988
 
11989
 
11990
END;
11991
/*-------------------------------------------------------------------------------------------------------*/
11992
PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR ) IS
11993
 
11994
   cReleaseMode CHAR(1);
11995
   cPvMode CHAR(1);
11996
 
11997
BEGIN
11998
 
11999
   -- Get Release Mode
12000
   SELECT rt.OFFICIAL INTO cReleaseMode
12001
     FROM RELEASE_TAGS rt
12002
    WHERE rt.RTAG_ID = RtagId;
12003
 
12004
 
12005
   -- Get Package Mode
12006
   SELECT pv.DLOCKED INTO cPvMode
12007
     FROM PACKAGE_VERSIONS pv
12008
    WHERE pv.PV_ID = PvId;
12009
 
12010
   -- Only check if package is locked
12011
   IF (cPvMode = 'Y') THEN
12012
 
12013
      IF (cReleaseMode != 'N') AND (Permission != 'Y')
1373 dpurdie 12014
      THEN
3959 dpurdie 12015
         RAISE_APPLICATION_ERROR (-20000, 'Cannot add package to this release. Release needs to be in Open Mode.' );
12016
 
1373 dpurdie 12017
      END IF;
12018
 
3959 dpurdie 12019
   END IF;
5172 dpurdie 12020
END;
3959 dpurdie 12021
 
5172 dpurdie 12022
/*-----------------------------------------------------------------------------*/
12023
PROCEDURE SET_RELEASE_MODIFIED (nRtagId IN NUMBER ) IS
12024
--
12025
--  Set flags to indicate that the specified release has changed for the
12026
--  purposes of building. (Not every single change)
12027
--
12028
--  Used by Build System to streamline build decisions
12029
--    Bump a sequence number
12030
--    Set a TimeStamp
12031
--
12032
--  Care must be taken to avoid concuency issues
12033
--  Must Insert or Update in a safe manner
12034
--
12035
--  This should be called whenever the package_versions in the release have changed in such
12036
--  a manner that the build daemons should examine the release. This includes:
12037
--   - Packages added, removed and version updated
12038
--   - Packages build status changed (re-included in the release)
12039
--   - Packages made Pending Build
12040
--   - Daemon instruction add/updated (Test Build)
12041
--
12042
--  Note: Not yet used (10-Oct-2014)
12043
--        Uses SEQ_RELEASE_MOD and Table: RELEASE_MODIFIED
12044
BEGIN
12045
 LOOP
12046
  BEGIN
12047
    MERGE INTO RELEASE_MODIFIED USING dual ON ( RTAG_ID=nRtagId )
12048
      WHEN MATCHED THEN UPDATE SET SEQNUM=SEQ_RELEASE_MOD.NEXTVAL,TIMESTAMP=CURRENT_TIMESTAMP 
12049
      WHEN NOT MATCHED THEN INSERT (RTAG_ID,TIMESTAMP,SEQNUM) 
12050
        VALUES (nRtagId, CURRENT_TIMESTAMP,SEQ_RELEASE_MOD.NEXTVAL );
12051
    EXIT; -- success? -> exit loop
12052
  EXCEPTION
12053
    WHEN NO_DATA_FOUND THEN -- the entry was concurrently deleted
12054
      NULL; -- exception? -> no op, i.e. continue looping
12055
    WHEN DUP_VAL_ON_INDEX THEN -- an entry was concurrently inserted
12056
      NULL; -- exception? -> no op, i.e. continue looping
12057
  END;
12058
 END LOOP;
12059
END;
3959 dpurdie 12060
 
5172 dpurdie 12061
/*-------------------------------------------------------------------------------------------------------*/
12062
--  ADD_RELEASE_SDK
12063
--  ADD an SDK Reference to a Release
12064
--  Args: nRtagId           - RTAG_ID of Release to Process
12065
--        nSdktagId         - SDKTAG_ID of SDK to add to Release
12066
--        nUserId           - User IF of user performing the action
12067
--        bDelete           - Delete conflicting (non sdk) packages from the release 0:False
12068
--        nInsertCount      - Returns: Number of Packages inserted: -1 is an error
12069
--        curReturn         - Returns: On error a table of PV_IDs of packages causing the conflict
12070
--
12071
PROCEDURE ADD_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER, nUserId IN NUMBER, bDelete IN NUMBER, nInsertCount OUT NUMBER, curReturn OUT typeCur )IS
12072
 
12073
  vartbl RELMGR_NUMBER_TAB_T := RELMGR_NUMBER_TAB_T();
12074
  ii NUMBER;
12075
  view_id NUMBER;
12076
 
12077
    -- Detect clashing packages
12078
    -- Packages provided by the SDK that are present in the Release
12079
    CURSOR curPackageClash
12080
    IS
12081
      SELECT release.pvid
12082
      FROM
12083
        -- Alias and pvid from SDK
12084
        (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
12085
          pv.PV_ID                  AS pvid
12086
        FROM SDK_CONTENT sc, PACKAGE_VERSIONS pv
12087
        WHERE sc.SDKTAG_ID  = nSdktagId
12088
        AND sc.SDKPKG_STATE = 'E'
12089
        AND pv.PV_ID        = sc.PV_ID
12090
        ) sdk,
12091
      -- Alias and pvid from Release
12092
      (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
12093
        pv.PV_ID                  AS pvid
12094
      FROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pv
12095
      WHERE rc.rtag_id = nRtagId
12096
      AND rc.PV_ID    = pv.PV_ID
12097
      ) RELEASE
12098
    WHERE sdk.pkgAlias = release.pkgAlias;
12099
 
12100
   -- Detect packages in the release that are provided by the SDK
12101
   -- Do not include packages provided by an SDK - these cannot be replaced
12102
       CURSOR curPackageReplacable
12103
    IS
12104
      SELECT release.pvid
12105
      FROM
12106
        -- Alias and pvid from SDK
12107
        (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
12108
                pv.PV_ID                            AS pvid
12109
        FROM SDK_CONTENT sc, PACKAGE_VERSIONS pv
12110
        WHERE sc.SDKTAG_ID    = nSdktagId
12111
          AND sc.SDKPKG_STATE = 'E'
12112
          AND pv.PV_ID        = sc.PV_ID
12113
        ) sdk,
12114
      -- Alias and pvid from Release
12115
      --  Excluding those import by any SDK
12116
      (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
12117
              pv.PV_ID                            AS pvid
12118
       FROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pv
12119
       WHERE rc.rtag_id = nRtagId
12120
         AND rc.PV_ID   = pv.PV_ID
12121
         AND rc.SDKTAG_ID is NULL
12122
      ) RELEASE
12123
    WHERE sdk.pkgAlias = release.pkgAlias;
12124
 
12125
BEGIN
12126
   /*--------------- Business Rules Here -------------------*/
12127
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
12128
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
12129
   END IF;
12130
 
12131
   IF (nSdktagId = 0) OR ( nSdktagId IS NULL ) THEN
12132
      RAISE_APPLICATION_ERROR (-20000, 'nSdktagId is not supplied. [nSdktagId='|| nSdktagId ||']' );
12133
   END IF;
12134
   /*-------------------------------------------------------*/
12135
 
12136
   -- Delete packages from the release if they are provided by the SDK
12137
   -- provided they are not provided by another SDK 
12138
    IF bDelete != 0 THEN
12139
      FOR rdata IN curPackageClash LOOP
12140
        DELETE FROM RELEASE_CONTENT rc
12141
          WHERE rc.RTAG_ID = nRtagId
12142
          AND rc.PV_ID = rdata.pvid;
12143
      END LOOP;
12144
 
12145
      -- Remove exising package from this release to be referenced
12146
      REMOVE_RELEASE_SDK ( nRtagId, nSdktagId);
12147
    END IF;
12148
 
12149
    -- Detect and report package clashes
12150
    -- Packages provided by the SDK that are (still) in the release
12151
    ii := 1;
12152
    FOR rdata IN curPackageClash LOOP
12153
      vartbl.extend;
12154
      --vartbl(ii) := TABLE_PVID(rdata.pvid);
12155
      vartbl(ii) := rdata.pvid;
12156
      ii := ii + 1;
12157
    END LOOP;
12158
    -- Make sure there is no package clashes
12159
 
12160
    IF ii != 1 THEN
12161
      nInsertCount := -1;
12162
      open curReturn for select * from table(vartbl);
12163
      --curReturn := vartbl;
12164
      RETURN;
12165
    END IF;
12166
 
12167
    -- Determine the target view_id
12168
    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;
12169
 
12170
    -- Add SDK exported packages to release
12171
    INSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE, SDKTAG_ID)
12172
    SELECT nRtagId, sc.PV_ID, view_id, sysdate, nUserId, 11, nSdktagId 
12173
        FROM SDK_CONTENT sc
12174
        WHERE sc.SDKTAG_ID = nSdktagId
12175
        AND sc.SDKPKG_STATE = 'E';
12176
    nInsertCount := sql%ROWCOUNT;
12177
 
12178
    -- Refresh Package states
12179
    TOUCH_RELEASE ( nRtagId );
12180
    SET_RELEASE_MODIFIED(nRtagId);
12181
 
3959 dpurdie 12182
END;
12183
 
1373 dpurdie 12184
/*-------------------------------------------------------------------------------------------------------*/
5172 dpurdie 12185
--  Name:   REMOVE_RELEASE_SDK
12186
--  Desc:   Remove an SDK from the specified Release
12187
--          It is not an error to remove an SDK that is not attached to the release
12188
--  Args:   nRtagId         - RTAG_ID of the Release to Process
12189
--          nSdktagId       - SDKTAG_ID to remove
12190
--
12191
PROCEDURE REMOVE_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER ) IS
12192
 
12193
BEGIN
12194
   /*--------------- Business Rules Here -------------------*/
12195
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
12196
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
12197
   END IF;
12198
 
12199
   IF (nSdktagId = 0) OR ( nSdktagId IS NULL ) THEN
12200
      RAISE_APPLICATION_ERROR (-20000, 'nSdktagId is not supplied. [nSdktagId='|| nSdktagId ||']' );
12201
   END IF;
12202
 
12203
   /*-------------------------------------------------------*/
12204
 
12205
   -- Remove matching packages from release
12206
   DELETE FROM RELEASE_CONTENT rc
12207
    WHERE rc.RTAG_ID = nRtagId
12208
      AND rc.SDKTAG_ID = nSdktagId;
12209
 
12210
   -- Refresh Package states
12211
   TOUCH_RELEASE ( nRtagId );
12212
   SET_RELEASE_MODIFIED(nRtagId);
12213
END;
12214
 
12215
--------------------------------------------------------------------------------
12216
--  CAN_ADD_PKG_TO_RELEASE
12217
--  Test if a Package (pvid) can be added to a given release
12218
--  The test will not allwo an exiting package to be replaced IF it is imported via an
12219
--  SDK
12220
--
12221
--  Returns:  0 - Package cannot be replaced
12222
--            1 - Package can be replaced
12223
--            2 - Package will be added
12224
--            
12225
FUNCTION CAN_ADD_PKG_TO_RELEASE ( nRtagId IN NUMBER, nPvid in NUMBER ) RETURN NUMBER IS
12226
 
12227
   sAlias VARCHAR2(4000);
12228
 
12229
    -- Find package for proccessing
12230
    -- Use unique constraint of PKG_ID and V_EXT
12231
   CURSOR curReplacePkg IS
12232
    SELECT pv.PV_ID
12233
     FROM RELEASE_CONTENT rc,
12234
           PACKAGE_VERSIONS pv
12235
    WHERE rc.PV_ID = pv.PV_ID
12236
      AND rc.RTAG_ID = nRtagId
12237
      AND pv.PKG_ID || NVL( pv.V_EXT, 'LINK_A_NULL' ) = sAlias;
12238
 
12239
    recReplacePkg curReplacePkg%ROWTYPE;
12240
    nSdkTag NUMBER;
12241
 
12242
BEGIN
12243
   /*--------------- Business Rules Here -------------------*/
12244
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
12245
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
12246
   END IF;
12247
 
12248
   IF (nPvid = 0) OR ( nPvid IS NULL ) THEN
12249
      RAISE_APPLICATION_ERROR (-20000, 'nPvid is not supplied. [nPvid='|| nPvid ||']' );
12250
   END IF;
12251
 
12252
    -- Find pkg Alias for provided package
12253
   SELECT pv.PKG_ID || NVL( pv.V_EXT, 'LINK_A_NULL' )  
12254
     INTO sAlias
12255
     FROM PACKAGE_VERSIONS pv
12256
    WHERE pv.PV_ID = nPvid;
12257
 
12258
      -- Find Package that may be replaced
12259
      OPEN curReplacePkg;
12260
       FETCH curReplacePkg INTO recReplacePkg;
12261
 
12262
       IF curReplacePkg%FOUND THEN
12263
        SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
12264
         WHERE rtag_id = nRtagId
12265
         AND pv_id = recReplacePkg.PV_ID;
12266
 
12267
        If nSdkTag IS NOT NULL  THEN
12268
          RETURN 0;
12269
        ELSE
12270
          RETURN 1;
12271
        END IF;
12272
      END IF;
12273
 
12274
  -- No package found, so it can be added
12275
  RETURN 2;
12276
 
12277
  EXCEPTION
12278
  WHEN NO_DATA_FOUND THEN
12279
    RAISE_APPLICATION_ERROR (-20000, 'nPvid is not valid. [nPvid='|| nPvid ||']' );
12280
END;
12281
 
12282
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12283
END PK_RELEASE;
4040 dpurdie 12284
 
3959 dpurdie 12285
/
4040 dpurdie 12286
--------------------------------------------------------
12287
--  DDL for Package Body PK_RMAPI
12288
--------------------------------------------------------
12289
 
5172 dpurdie 12290
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_RMAPI" 
3959 dpurdie 12291
IS
12292
 
12293
   /*-------------------------------------------------------------------------------------------------------*/
12294
   FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)
12295
      RETURN typecur
1373 dpurdie 12296
   IS
3959 dpurdie 12297
      npvid     NUMBER  := 0;
12298
      RECORDS   typecur;
1373 dpurdie 12299
   BEGIN
3959 dpurdie 12300
      BEGIN
12301
         -- Get PV_ID --
12302
         SELECT pv.pv_id
12303
           INTO npvid
12304
           FROM PACKAGES pkg, package_versions pv
12305
          WHERE pv.pkg_id = pkg.pkg_id
12306
            AND pkg.pkg_name = pkgname
12307
            AND pv.pkg_version = pkgversion;
12308
      EXCEPTION
12309
         WHEN NO_DATA_FOUND
12310
         THEN
12311
            raise_application_error (-20000, 'Package Not Found!');
12312
            --WHEN OTHERS THEN
12313
                  -- Consider logging the error and then re-raise
12314
            RAISE;
12315
      END;
1373 dpurdie 12316
 
3959 dpurdie 12317
      -- Finally get package dependencies --
12318
      OPEN RECORDS FOR
12319
         SELECT dpv.pv_id, dpkg.pkg_name, dpv.pkg_version
12320
           FROM package_dependencies dep, PACKAGES dpkg, package_versions dpv
12321
          WHERE dep.pv_id = npvid
12322
            AND dpv.pkg_id = dpkg.pkg_id
12323
            AND dpv.pv_id = dep.dpv_id;
12324
 
12325
      RETURN RECORDS;
1373 dpurdie 12326
   END;
12327
 
12328
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12329
   FUNCTION wip_iteration_package (
12330
      projname        VARCHAR2,
12331
      iterationname   VARCHAR2,
12332
      pkgname         VARCHAR2
1373 dpurdie 12333
   )
3959 dpurdie 12334
      RETURN typecur
1373 dpurdie 12335
   IS
3959 dpurdie 12336
      nrtagid   NUMBER  := 0;
12337
      RECORDS   typecur;
1373 dpurdie 12338
   BEGIN
3959 dpurdie 12339
      BEGIN
12340
         -- Get latest rtag_id --
12341
         SELECT rt.rtag_id
12342
           INTO nrtagid
12343
           FROM projects proj, release_tags rt
12344
          WHERE rt.proj_id = proj.proj_id
12345
            AND UPPER (proj.proj_name) = UPPER (projname)
12346
            AND UPPER (rt.rtag_name) = UPPER (iterationname);
1373 dpurdie 12347
 
3959 dpurdie 12348
         IF (nrtagid IS NULL)
12349
         THEN
12350
            raise_application_error (-20000,
12351
                                     'Work In Progress is Not Found!');
12352
         END IF;
12353
      EXCEPTION
12354
         WHEN NO_DATA_FOUND
12355
         THEN
12356
            raise_application_error (-20000,
12357
                                     'Work In Progress is Not Found!');
12358
            RAISE;
12359
      END;
12360
 
12361
      -- Finally get package dependencies --
12362
      OPEN RECORDS FOR
12363
         SELECT pv.pkg_version, pv.dlocked AS is_official, pv.pkg_label,
12364
                pv.src_path
12365
           FROM PACKAGES pkg, package_versions pv, work_in_progress wip
12366
          WHERE pv.pkg_id = pkg.pkg_id
12367
            AND wip.pv_id = pv.pv_id
12368
            AND wip.rtag_id = nrtagid
12369
            AND pkg.pkg_name = pkgname;
12370
 
12371
      RETURN RECORDS;
1373 dpurdie 12372
   END;
12373
 
12374
/*-------------------------------------------------------------------------------------------------------*/
4553 dpurdie 12375
-- Use:
12376
--   Used by the Automated Build System to release a new package
12377
-- Returns:
12378
--    Use application errors to indicate programming errors
12379
--    Use negative return codes to indicate correctable user problems
12380
--    Positive return code is the new PVID of the package
12381
  FUNCTION auto_make_vcsrelease (
3959 dpurdie 12382
      rtagid                   IN   NUMBER,
12383
      pkgname                  IN   VARCHAR2,
12384
      vext                     IN   VARCHAR2,
12385
      newpkgversion            IN   VARCHAR2,
12386
      vcstag                   IN   VARCHAR2,
12387
      dependenciesimportlist   IN   VARCHAR2,
12388
      isrippled                IN   NUMBER,
12389
      username                 IN   VARCHAR2
12390
   )
1373 dpurdie 12391
      RETURN NUMBER
12392
   IS
3959 dpurdie 12393
      pkgid                           NUMBER;
12394
      pvid                            NUMBER                        := 0;
12395
      userid                          NUMBER;
12396
      dlocked                         VARCHAR2 (20)                 := NULL;
12397
      clonefrompvid                   NUMBER;
12398
      ssv_mm                          package_versions.v_mm%TYPE;
12399
      ssv_nmm                         package_versions.v_nmm%TYPE;
12400
      ssv_ext                         package_versions.v_ext%TYPE;
12401
      return_package_not_found        NUMBER                        := -1;
12402
      return_package_already_exists   NUMBER                        := -2;
12403
      return_not_approved             NUMBER                        := -3;
12404
      return_migrated_pkg             NUMBER                        := -4;
4553 dpurdie 12405
      return_svn_path_changed         NUMBER                        := -5;
1373 dpurdie 12406
 
12407
 
3959 dpurdie 12408
      x_vcstypeid                     NUMBER;
12409
      x_tag                           VARCHAR2(32);
12410
      x_label                         VARCHAR2(60);
12411
      x_srcpath                       VARCHAR2(2000);
12412
      p_srcpath                       VARCHAR2(2000);
1373 dpurdie 12413
 
3959 dpurdie 12414
      -- Regular expression constituents
12415
      Token         VARCHAR2(16) := '([^:]+)';  -- a token is anything except a ':' character
12416
      Seperator     VARCHAR2(4)  := '::';       -- tokens will be seperated by '::'
12417
      BOL           VARCHAR2(4)  := '^';
12418
      Anything      VARCHAR2(4)  := '.*';
12419
      ReplaceToken1 VARCHAR2(4)  := '\1';
12420
      ReplaceToken2 VARCHAR2(4)  := '\2';
12421
      ReplaceToken3 VARCHAR2(4)  := '\3';
12422
      iprev_modifier_id               NUMBER;
12423
 
1373 dpurdie 12424
   BEGIN
3959 dpurdie 12425
      /*--------------- Business Rules Here -------------------*/
12426
      IF (rtagid IS NULL)
12427
      THEN
12428
         raise_application_error (-20000, 'RtagId must be supplied.');
12429
      END IF;
1373 dpurdie 12430
 
3959 dpurdie 12431
      IF (pkgname IS NULL)
12432
      THEN
12433
         raise_application_error (-20000, 'PkgName must be supplied.');
12434
      END IF;
1373 dpurdie 12435
 
3959 dpurdie 12436
      IF (newpkgversion IS NULL)
1373 dpurdie 12437
      THEN
3959 dpurdie 12438
         raise_application_error (-20000, 'PkgVersion must be supplied.');
1373 dpurdie 12439
      END IF;
12440
 
3959 dpurdie 12441
      IF (vcstag IS NULL)
1373 dpurdie 12442
      THEN
3959 dpurdie 12443
         raise_application_error (-20000, 'PkgVcsTag must be supplied.');
1373 dpurdie 12444
      END IF;
12445
 
3959 dpurdie 12446
      IF (isrippled IS NULL) OR (isrippled < 0) OR (isrippled > 1)
1373 dpurdie 12447
      THEN
4553 dpurdie 12448
         raise_application_error (-20000, 'IsRippled must be set to 1 (Is rippled build) or 0 (Is planned build).');
1373 dpurdie 12449
      END IF;
12450
 
3959 dpurdie 12451
      IF (username IS NULL)
1373 dpurdie 12452
      THEN
3959 dpurdie 12453
         raise_application_error (-20000, 'UserName must be supplied.');
1373 dpurdie 12454
      END IF;
12455
 
3959 dpurdie 12456
      -- Parse the PkgVcsTag
12457
      -- Sets up
12458
      --   x_tag, x_label, x_srcpath
1373 dpurdie 12459
 
3959 dpurdie 12460
       BEGIN
12461
          -- Extract the first token - this will be the short tag name for the VCS (eg. 'CC', 'SVN', etc)
12462
          x_tag := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Anything, ReplaceToken1);
1373 dpurdie 12463
 
3959 dpurdie 12464
          -- Decode the short tag
12465
          CASE x_tag
12466
             WHEN 'CC' THEN
12467
                -- extract the 2nd and 3rd tokens, those being the source path and label respectively
12468
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
12469
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
1373 dpurdie 12470
 
3959 dpurdie 12471
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
12472
                -- check for that error as well as the obvious zero-length string conditions.
12473
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
12474
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
12475
                END IF;
12476
 
12477
                IF isSVNbyName(pkgname) > 0 THEN
12478
                    -- Don't allow migrated packages to be released from a CC label
12479
                    return return_migrated_pkg;
12480
                END IF;
1373 dpurdie 12481
 
12482
 
3959 dpurdie 12483
             WHEN 'SVN' THEN
12484
                -- extract the 2nd token, that being the subversion tag
12485
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
12486
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
1373 dpurdie 12487
 
3959 dpurdie 12488
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
12489
                -- check for that error as well as the obvious zero-length string conditions.
12490
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
12491
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
12492
                END IF;
12493
 
12494
             WHEN 'UC' THEN
12495
                -- nothing to extract, just assign defaults
12496
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
12497
                x_label   := 'N/A';
12498
             ELSE
12499
                raise_application_error (-20000, 'Unrecognised VCS Tag!');
12500
          END CASE;
12501
       END;
12502
 
12503
      -- Get the VCS_TYPE_ID for the version control system.
12504
      BEGIN
12505
         SELECT vt.vcs_type_id
12506
         INTO x_vcstypeid
12507
         FROM VCS_TYPE vt
12508
         WHERE vt.tag = x_tag;
12509
         EXCEPTION
12510
            WHEN NO_DATA_FOUND THEN
12511
               raise_application_error (-20000, 'Database is missing a version control system tag (' || x_tag || ')!' );
12512
      END;
12513
 
12514
 
12515
      -- Get user_id
12516
      BEGIN
12517
         SELECT usr.user_id
12518
           INTO userid
12519
           FROM users usr
12520
          WHERE UPPER (usr.user_name) = UPPER (username)
12521
            AND usr.is_disabled IS NULL;
12522
      EXCEPTION
12523
         WHEN NO_DATA_FOUND
1373 dpurdie 12524
         THEN
4585 dpurdie 12525
            raise_application_error (-20000, 'UserName: ' || username || ' is not valid or disabled.' );
3959 dpurdie 12526
      END;
1373 dpurdie 12527
 
3959 dpurdie 12528
/*-------------------------------------------------------*/
1373 dpurdie 12529
 
3959 dpurdie 12530
      -- Create package if necessary
12531
      IF isrippled = 1
1373 dpurdie 12532
      THEN
3959 dpurdie 12533
         /* Ripple Build */
12534
         BEGIN
12535
            -- Make sure that package does not exist
12536
            SELECT pv.pv_id
12537
              INTO pvid
12538
              FROM package_versions pv, PACKAGES pkg
12539
             WHERE pv.pkg_id = pkg.pkg_id
12540
               AND pkg.pkg_name = pkgname
12541
               AND pv.pkg_version = newpkgversion;
12542
         EXCEPTION
12543
            WHEN NO_DATA_FOUND
12544
            THEN
12545
               pvid := 0;
12546
         END;
12547
 
12548
         IF (pvid = 0)
1373 dpurdie 12549
         THEN
3959 dpurdie 12550
            -- Split current version in parts
12551
            split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
12552
 
12553
            BEGIN
12554
               -- Find package to be replaced with the ripple package
12555
               IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
12556
               THEN
12557
                  SELECT pv.pv_id, pv.src_path
12558
                    INTO clonefrompvid, p_srcpath
12559
                    FROM PACKAGES pkg, package_versions pv,
12560
                         release_content rc
12561
                   WHERE rc.pv_id = pv.pv_id
12562
                     AND pv.pkg_id = pkg.pkg_id
12563
                     AND rc.rtag_id = rtagid
12564
                     AND pkg.pkg_name = pkgname
12565
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|');
12566
               ELSE
12567
                  SELECT pv.pv_id, pv.src_path
12568
                    INTO clonefrompvid, p_srcpath
12569
                    FROM PACKAGES pkg, package_versions pv,
12570
                         release_content rc
12571
                   WHERE rc.pv_id = pv.pv_id
12572
                     AND pv.pkg_id = pkg.pkg_id
12573
                     AND rc.rtag_id = rtagid
12574
                     AND pkg.pkg_name = pkgname
12575
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
12576
               END IF;
12577
            EXCEPTION
12578
               WHEN NO_DATA_FOUND
12579
               THEN
12580
                  raise_application_error
12581
                                        (-20000,
12582
                                            'Cannot get CloneFromPvId. VExt='
12583
                                         || vext
12584
                                         || ', RtagId='
12585
                                         || rtagid
12586
                                         || ', PkgName='
12587
                                         || pkgname
12588
                                         || ', SSV_EXT='
12589
                                         || ssv_ext
12590
                                        );
12591
            END;
12592
 
12593
            IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
12594
            THEN
12595
               -- Create package
12596
               seed_package_names_versions (pkgname,
12597
                                            newpkgversion,
12598
                                            userid,
12599
                                            pvid,
12600
                                            clonefrompvid
12601
                                           );
12602
            ELSE
4585 dpurdie 12603
               -- Create package (now both the same)
12604
               seed_package_names_versions (pkgname,
3959 dpurdie 12605
                                             newpkgversion,
12606
                                             userid,
12607
                                             pvid,
12608
                                             clonefrompvid
12609
                                            );
12610
            END IF;
12611
 
12612
            -- Update Package reason for release
12613
            UPDATE package_versions pv
12614
               SET pv.comments = 'Rippled Build.',
12615
                   pv.build_type = 'Y'
12616
             WHERE pv.pv_id = pvid;
12617
         ELSE
12618
            -- Package already exists, it was built previously, and has just been re-built again probably due to the
12619
            -- fact that the archive was cleaned of the original build artifacts at some point, and those artifacts
12620
            -- are now needed once more. As such, we need to ensure that a new release note generation occurs so
12621
            -- reset the package_versions[pvid].release_notes_info field to enable that to happen.
12622
            UPDATE package_versions pv
12623
               SET pv.release_notes_info = null,
12624
                   pv.modified_stamp = ora_sysdatetime
12625
             WHERE pv.pv_id = pvid;
12626
 
12627
            --DEVI-066151
12628
            log_action (pvid, 'package_rebuilt', userid, 'Package Re-built...');
12629
 
12630
            RETURN return_package_already_exists;
1373 dpurdie 12631
         END IF;
12632
      ELSE
3959 dpurdie 12633
         /* Auto build from Pending area */
12634
 
12635
         -- Find package in pending area
12636
         BEGIN
12637
            SELECT pv.pv_id, pv.dlocked, pv.src_path
12638
              INTO pvid, dlocked, p_srcpath
12639
              FROM planned pl, package_versions pv, PACKAGES pkg
12640
             WHERE pl.pv_id = pv.pv_id
12641
               AND pv.pkg_id = pkg.pkg_id
12642
               AND pl.rtag_id = rtagid
12643
               AND pkg.pkg_name = pkgname
12644
               AND pv.dlocked = 'A'
12645
               AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|')
12646
               AND rownum = 1
12647
             ORDER BY pv.modified_stamp;
12648
         EXCEPTION
12649
            WHEN NO_DATA_FOUND
12650
            THEN
12651
               pvid := 0;
12652
         END;
12653
 
12654
         IF (pvid = 0)
1373 dpurdie 12655
         THEN
3959 dpurdie 12656
            -- Package does not exist in pending area, hence report it
12657
            RETURN return_package_not_found;
12658
         ELSIF (dlocked != 'A')
1373 dpurdie 12659
         THEN
3959 dpurdie 12660
            -- Package is not approved for autobuild
12661
            RETURN return_not_approved;
1373 dpurdie 12662
         END IF;
12663
 
12664
      END IF;
12665
 
3959 dpurdie 12666
      -- Ensure Source Path does not change
12667
      -- Do not expect the SVN development branch to change
12668
      -- From the previous package
12669
      IF ( x_tag = 'SVN' AND p_srcpath != x_srcpath )
1373 dpurdie 12670
      THEN
4553 dpurdie 12671
        return return_svn_path_changed;
1373 dpurdie 12672
      END IF;
12673
 
3959 dpurdie 12674
      BEGIN
12675
         -- Import Dependencies
12676
         import_dependencies (pvid, dependenciesimportlist, userid);
12677
      END;
1373 dpurdie 12678
 
12679
 
3959 dpurdie 12680
      BEGIN
12681
         -- Split current version in parts
12682
         split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
1373 dpurdie 12683
 
3959 dpurdie 12684
         -- Update Package Details
12685
         UPDATE package_versions pv
12686
            SET pv.pkg_version = newpkgversion,
12687
                pv.v_ext = ssv_ext,
12688
                pv.v_mm = ssv_mm,
12689
                pv.v_nmm = ssv_nmm,
12690
                pv.src_path = x_srcpath,
12691
                pv.pkg_label = x_label,
12692
                pv.vcs_type_id = x_vcstypeid
12693
          WHERE pv.pv_id = pvid;
12694
      EXCEPTION
12695
         WHEN DUP_VAL_ON_INDEX
12696
         THEN
12697
            -- Package already exists, hence cannot be used for ripple build
12698
            RETURN return_package_already_exists;
12699
      END;
12700
 
12701
      -- Update the is_autobuildable
12702
      UPDATE package_versions
12703
         SET is_autobuildable = 'Y'
12704
       WHERE pv_id = pvid;
12705
 
12706
      -- DEVI-063601
12707
      -- For planned builds the modifier_id shouldn't be set to buildadm.
12708
      -- To ensure this the modifier_id is obtained so it can be restored after
12709
      -- the function pk_environment.auto_make_release is called.
12710
      -- This function calls, change_state, which sets the modifier_id to the
12711
      -- specified userid, which for auto builds is buildadm.
12712
      SELECT pv.modifier_id INTO iprev_modifier_id
12713
      FROM package_versions pv WHERE pv.pv_id = pvid;
12714
 
12715
      -- Now release package
12716
      pk_environment.auto_make_release (pvid,
12717
                                        rtagid,
12718
                                        userid,
12719
                                        vext,
12720
                                        ssv_ext,
12721
                                        clonefrompvid
12722
                                       );
12723
 
12724
      -- DEVI-063601
12725
      -- if it is a planned build then restore the modifier_id to the previous modifier
12726
      UPDATE package_versions pv SET pv.modifier_id = iprev_modifier_id
12727
      WHERE pv.pv_id = pvid;
12728
 
12729
      --Now clean the PLANNED_VERSIONS table
12730
      SELECT pkg_id
12731
        INTO pkgid
12732
        FROM PACKAGES
12733
       WHERE pkg_name = pkgname;
12734
 
12735
      DELETE FROM planned_versions
12736
            WHERE pkg_id = pkgid AND pkg_version = newpkgversion;
12737
 
12738
      RETURN pvid;
1373 dpurdie 12739
   END;
12740
 
12741
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12742
   PROCEDURE import_dependencies (
12743
      pvid                     IN   NUMBER,
12744
      dependenciesimportlist   IN   VARCHAR2,
12745
      userid                   IN   NUMBER
12746
   )
1373 dpurdie 12747
   IS
3959 dpurdie 12748
/*
12749
|| DependenciesImportList Format:
12750
|| "pkgA","1.0.0";"pkgB","2.0.0";
12751
||  OR 'pkgA','1.0.0';'pkgB','2.0.0';
12752
*/
12753
      TYPE tdictionary IS TABLE OF VARCHAR2 (4000)
12754
         INDEX BY VARCHAR2 (4000);
12755
 
12756
      seperator         VARCHAR2 (2)           := '||';
12757
      pkgname           VARCHAR2 (4000);
12758
      pkgversion        VARCHAR2 (4000);
12759
      buildtype         VARCHAR2 (50);
12760
      pkgid             NUMBER;
12761
      vext              VARCHAR2 (4000);
12762
      dpvid             NUMBER;
12763
      slist             VARCHAR2 (4000);
12764
      cbuildtypes       tdictionary;
12765
      dependencyrow     NUMBER;
12766
      sdependency       VARCHAR2 (4000);
12767
      first_pos         VARCHAR2 (4000);
12768
      second_pos        VARCHAR2 (4000);
12769
      third_pos         VARCHAR2 (4000);
12770
      forth_pos         VARCHAR2 (4000);
12771
      citemcollection   relmgr_varchar2_tab_t  := relmgr_varchar2_tab_t ();
12772
 
12773
      CURSOR curbuildtype
12774
      IS
12775
         SELECT dpv.pkg_id || seperator || dpv.v_ext AS pkgid_ext,
12776
                dep.build_type
12777
           FROM package_dependencies dep, package_versions dpv
12778
          WHERE dep.pv_id = pvid AND dep.dpv_id = dpv.pv_id;
12779
 
12780
      recbuildtype      curbuildtype%ROWTYPE;
1373 dpurdie 12781
   BEGIN
3959 dpurdie 12782
      slist := dependenciesimportlist;
1373 dpurdie 12783
 
3959 dpurdie 12784
      -- Preformat String
12785
      IF NOT slist IS NULL
1373 dpurdie 12786
      THEN
3959 dpurdie 12787
         slist := REPLACE (slist, ' ');                      -- Remove spaces
12788
         slist := REPLACE (slist, UTL_TCP.crlf);
12789
         -- Remove new line and carriage-return characters
12790
         slist := REPLACE (slist, '''', '"');             -- Replace ' with "
1373 dpurdie 12791
      END IF;
12792
 
3959 dpurdie 12793
      -- Get Current Dependencies
12794
      OPEN curbuildtype;
1373 dpurdie 12795
 
3959 dpurdie 12796
      FETCH curbuildtype
12797
       INTO recbuildtype;
1373 dpurdie 12798
 
3959 dpurdie 12799
      WHILE curbuildtype%FOUND
12800
      LOOP
12801
         cbuildtypes (recbuildtype.pkgid_ext) := recbuildtype.build_type;
1373 dpurdie 12802
 
3959 dpurdie 12803
         FETCH curbuildtype
12804
          INTO recbuildtype;
12805
      END LOOP;
1373 dpurdie 12806
 
3959 dpurdie 12807
      CLOSE curbuildtype;
1373 dpurdie 12808
 
3959 dpurdie 12809
      -- Separate dependencies with ; separator
12810
      citemcollection := in_list_varchar2 (slist, ';');
1373 dpurdie 12811
 
3959 dpurdie 12812
      BEGIN
12813
         -- Remove old dependencies
12814
         DELETE FROM package_dependencies dep
12815
               WHERE dep.pv_id = pvid;
1373 dpurdie 12816
 
3959 dpurdie 12817
         -- Loop through dependencies
12818
         FOR dependencyrow IN 1 .. citemcollection.COUNT
12819
         LOOP
12820
            -- Extract pkg_name and pkg_version
12821
            sdependency := citemcollection (dependencyrow);
12822
            first_pos := INSTR (sdependency, '"', 1, 1);
12823
            second_pos := INSTR (sdependency, '"', 1, 2);
12824
            third_pos := INSTR (sdependency, '"', 1, 3);
12825
            forth_pos := INSTR (sdependency, '"', 1, 4);
12826
            pkgname :=
12827
               SUBSTR (sdependency,
12828
                       (first_pos + 1),
12829
                       (second_pos - first_pos - 1)
12830
                      );
12831
            pkgversion :=
12832
               SUBSTR (sdependency,
12833
                       (third_pos + 1),
12834
                       (forth_pos - third_pos - 1)
12835
                      );
12836
 
12837
            -- Dependency must exits to be linked against
12838
            BEGIN
12839
               SELECT pv.pv_id, pv.pkg_id, pv.v_ext
12840
                 INTO dpvid, pkgid, vext
12841
                 FROM package_versions pv, PACKAGES pkg
12842
                WHERE pv.pkg_id = pkg.pkg_id
12843
                  AND pkg.pkg_name = pkgname
12844
                  AND pv.pkg_version = pkgversion;
12845
            EXCEPTION
12846
               WHEN NO_DATA_FOUND
12847
               THEN
12848
                  raise_application_error
12849
                                  (-20000,
12850
                                      'Dependency ['
12851
                                   || pkgname
12852
                                   || ' '
12853
                                   || pkgversion
12854
                                   || '] does not exist yet and cannot be used!'
12855
                                  );
12856
            END;
12857
 
12858
            -- Get Build Type (i.e. BuildPackageArchive or LinkPackageArchive)
12859
            BEGIN
12860
               buildtype := cbuildtypes (pkgid || seperator || vext);
12861
 
12862
               IF buildtype IS NULL
12863
               THEN
12864
                  -- Set build type to LinkPackageArchive by default
12865
                  buildtype := 'L';
12866
               END IF;
12867
            EXCEPTION
12868
               WHEN NO_DATA_FOUND
12869
               THEN
12870
                  buildtype := 'L';
12871
            END;
12872
 
12873
            -- Insert Dependencies
12874
            update_package_dependency (pvid,
12875
                                       pkgname,
12876
                                       pkgversion,
12877
                                       buildtype,
12878
                                       userid,
12879
 
12880
                                      );
12881
         END LOOP;
12882
      END;
1373 dpurdie 12883
   END;
12884
 
12885
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12886
   FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)
12887
      RETURN VARCHAR2
1373 dpurdie 12888
   IS
3959 dpurdie 12889
      pkgversion   VARCHAR2 (4000);
1373 dpurdie 12890
   BEGIN
3959 dpurdie 12891
      BEGIN
12892
         SELECT pv.pkg_version
12893
           INTO pkgversion
12894
           FROM PACKAGES pkg, release_content rc, package_versions pv
12895
          WHERE pv.pv_id = rc.pv_id
12896
            AND pkg.pkg_id = pv.pkg_id
12897
            AND pkg.pkg_name = pkgname
12898
            AND rc.rtag_id = rtagid;
12899
 
12900
         RETURN pkgversion;
12901
      END;
1373 dpurdie 12902
   END;
12903
 
12904
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12905
   FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)
12906
      RETURN VARCHAR2
1373 dpurdie 12907
   IS
3959 dpurdie 12908
      pkgversion   VARCHAR2 (4000);
1373 dpurdie 12909
   BEGIN
3959 dpurdie 12910
      BEGIN
12911
         SELECT pv.pkg_version
12912
           INTO pkgversion
12913
           FROM PACKAGES pkg, work_in_progress wip, package_versions pv
12914
          WHERE pv.pv_id = wip.pv_id
12915
            AND pkg.pkg_id = pv.pkg_id
12916
            AND pkg.pkg_name = pkgname
12917
            AND wip.rtag_id = rtagid;
1373 dpurdie 12918
 
3959 dpurdie 12919
         IF pkgversion IS NULL
12920
         THEN
12921
            SELECT pv.pkg_version
12922
              INTO pkgversion
12923
              FROM PACKAGES pkg, planned pl, package_versions pv
12924
             WHERE pv.pv_id = pl.pv_id
12925
               AND pkg.pkg_id = pv.pkg_id
12926
               AND pkg.pkg_name = pkgname
12927
               AND pl.rtag_id = rtagid;
12928
         END IF;
12929
 
12930
         RETURN pkgversion;
12931
      END;
1373 dpurdie 12932
   END;
12933
 
12934
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12935
   PROCEDURE update_dash_board (rtagid IN NUMBER)
1373 dpurdie 12936
   IS
3959 dpurdie 12937
      projid       NUMBER;
12938
      projiddb     NUMBER;
12939
      total        NUMBER;
12940
      auto_total   NUMBER;
12941
      rtagiddb     NUMBER;
1373 dpurdie 12942
   BEGIN
3959 dpurdie 12943
      SELECT COUNT (*)
12944
        INTO total
12945
        FROM release_content rc, package_versions pv
12946
       WHERE pv.pv_id = rc.pv_id AND rc.rtag_id = rtagid;
1373 dpurdie 12947
 
3959 dpurdie 12948
      SELECT COUNT (*)
12949
        INTO auto_total
12950
        FROM release_content rc, package_versions pv
12951
       WHERE pv.pv_id = rc.pv_id
12952
         AND pv.is_autobuildable = 'Y'
12953
         AND rc.rtag_id = rtagid;
12954
 
12955
      BEGIN
12956
         SELECT rtag_id
12957
           INTO rtagiddb
12958
           FROM dash_board
12959
          WHERE rtag_id = rtagid;
12960
 
12961
         SELECT proj_id
12962
           INTO projiddb
12963
           FROM dash_board
12964
          WHERE rtag_id = rtagid;
12965
      EXCEPTION
12966
         WHEN NO_DATA_FOUND
12967
         THEN
12968
            rtagiddb := '';
12969
      END;
12970
 
12971
      IF rtagiddb IS NULL
1373 dpurdie 12972
      THEN
3959 dpurdie 12973
         SELECT proj_id
12974
           INTO projid
12975
           FROM release_tags
12976
          WHERE rtag_id = rtagid;
12977
 
12978
         INSERT INTO dash_board
12979
                     (proj_id, rtag_id, last_build_time, automated_packages,
12980
                      total_packages
12981
                     )
12982
              VALUES (projid, rtagid, ora_sysdatetime, auto_total,
12983
                      total
12984
                     );
12985
      ELSE
12986
         UPDATE dash_board
12987
            SET last_build_time = ora_sysdatetime,
12988
                automated_packages = auto_total,
12989
                total_packages = total
12990
          WHERE proj_id = projiddb AND rtag_id = rtagiddb;
1373 dpurdie 12991
      END IF;
12992
   END;
12993
 
12994
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12995
   FUNCTION exclude_from_build (
12996
      pvid          IN   NUMBER,
12997
      spkgversion   IN   VARCHAR2,
12998
      rtagid        IN   NUMBER,
12999
      username      IN   VARCHAR2
1373 dpurdie 13000
   )
3959 dpurdie 13001
      RETURN NUMBER
1373 dpurdie 13002
   IS
3959 dpurdie 13003
      userid              NUMBER;
13004
      outerrcode          NUMBER;
13005
      pkgid               NUMBER;
13006
 
13007
      CURSOR dnr_duplicate_cur
13008
      IS
13009
         SELECT *
13010
           FROM do_not_ripple
13011
          WHERE pv_id = pvid AND rtag_id = rtagid;
13012
 
13013
      dnr_duplicate_rec   dnr_duplicate_cur%ROWTYPE;
1373 dpurdie 13014
   BEGIN
3959 dpurdie 13015
      outerrcode := -1;       -- Set default return error code to ERROR state
13016
 
13017
      /*--------------- Business Rules Here -------------------*/
13018
      IF (rtagid IS NULL)
1373 dpurdie 13019
      THEN
3959 dpurdie 13020
         RETURN outerrcode;
13021
--         raise_application_error (-20000, 'RtagId must be supplied.');
13022
      END IF;
13023
 
13024
      IF (pvid IS NULL)
1373 dpurdie 13025
      THEN
3959 dpurdie 13026
         RETURN outerrcode;
13027
--         raise_application_error (-20000, 'PvId must be supplied.');
13028
      END IF;
13029
 
13030
      IF (username IS NULL)
1373 dpurdie 13031
      THEN
3959 dpurdie 13032
         RETURN outerrcode;
13033
--         raise_application_error (-20000, 'UserName must be supplied.');
13034
      END IF;
13035
 
13036
      -- Get user_id
13037
      BEGIN
13038
         SELECT usr.user_id
13039
           INTO userid
13040
           FROM users usr
13041
          WHERE UPPER (usr.user_name) = UPPER (username)
13042
            AND usr.is_disabled IS NULL;
13043
      EXCEPTION
13044
         WHEN NO_DATA_FOUND
13045
         THEN
13046
            RETURN outerrcode;
13047
--            raise_application_error (-20000,
13048
--                                        'UserName '
13049
--                                     || username
13050
--                                     || ' is not valid or disabled.'
13051
--                                    );
13052
      END;
13053
 
13054
      OPEN dnr_duplicate_cur;
13055
 
13056
      FETCH dnr_duplicate_cur
13057
       INTO dnr_duplicate_rec;
13058
 
13059
      IF dnr_duplicate_cur%FOUND
1373 dpurdie 13060
      THEN
3959 dpurdie 13061
         outerrcode := 0;
1373 dpurdie 13062
      END IF;
3959 dpurdie 13063
 
13064
      IF dnr_duplicate_cur%NOTFOUND
13065
      THEN
13066
         /* No duplicate recordset */
13067
         unripple_package (pvid, rtagid, userid);
13068
         outerrcode := 0;                            -- Set return to SUCCESS
13069
      END IF;
13070
 
13071
      CLOSE dnr_duplicate_cur;
13072
 
13073
      SELECT pkg_id
13074
        INTO pkgid
13075
        FROM package_versions
13076
       WHERE pv_id = pvid;
13077
 
13078
      DELETE FROM planned_versions
13079
            WHERE pkg_id = pkgid AND pkg_version = spkgversion;
13080
 
13081
      RETURN outerrcode;
1373 dpurdie 13082
   END;
13083
 
13084
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13085
   FUNCTION exclude_indirect_from_build (
13086
      pvid          IN   NUMBER,
13087
      spkgversion   IN   VARCHAR2,
13088
      rtagid        IN   NUMBER,
13089
      username      IN   VARCHAR2,
13090
      rootpvid      IN   NUMBER,
13091
      rootcause     IN   VARCHAR2,
13092
      rootfile      IN   VARCHAR2
1373 dpurdie 13093
   )
3959 dpurdie 13094
      RETURN NUMBER
1373 dpurdie 13095
   IS
3959 dpurdie 13096
      userid              NUMBER;
13097
      outerrcode          NUMBER;
13098
      pkgid               NUMBER;
13099
 
13100
      CURSOR dnr_duplicate_cur
13101
      IS
13102
         SELECT *
13103
           FROM do_not_ripple
13104
          WHERE pv_id = pvid AND rtag_id = rtagid;
13105
 
13106
      dnr_duplicate_rec   dnr_duplicate_cur%ROWTYPE;
1373 dpurdie 13107
   BEGIN
3959 dpurdie 13108
      outerrcode := -1;       -- Set default return error code to ERROR state
13109
 
13110
      /*--------------- Business Rules Here -------------------*/
13111
      IF (rtagid IS NULL)
1373 dpurdie 13112
      THEN
3959 dpurdie 13113
         RETURN outerrcode;
13114
--         raise_application_error (-20000, 'RtagId must be supplied.');
13115
      END IF;
13116
 
13117
      IF (pvid IS NULL)
1373 dpurdie 13118
      THEN
3959 dpurdie 13119
         RETURN outerrcode;
13120
--         raise_application_error (-20000, 'PvId must be supplied.');
13121
      END IF;
13122
 
13123
      IF (username IS NULL)
1373 dpurdie 13124
      THEN
3959 dpurdie 13125
         RETURN outerrcode;
13126
--         raise_application_error (-20000, 'UserName must be supplied.');
1373 dpurdie 13127
      END IF;
3959 dpurdie 13128
 
13129
      -- Get user_id
13130
      BEGIN
13131
         SELECT usr.user_id
13132
           INTO userid
13133
           FROM users usr
13134
          WHERE UPPER (usr.user_name) = UPPER (username)
13135
            AND usr.is_disabled IS NULL;
13136
      EXCEPTION
13137
         WHEN NO_DATA_FOUND
13138
         THEN
13139
            RETURN outerrcode;
13140
--            raise_application_error (-20000,
13141
--                                        'UserName '
13142
--                                     || username
13143
--                                     || ' is not valid or disabled.'
13144
--                                    );
13145
      END;
13146
 
13147
     /* No duplicate recordset */
13148
     unripple_package_indirect (pvid, rtagid, userid, rootpvid, rootcause, rootfile);
13149
     outerrcode := 0;                            -- Set return to SUCCESS
13150
 
13151
      SELECT pkg_id
13152
        INTO pkgid
13153
        FROM package_versions
13154
       WHERE pv_id = pvid;
13155
 
13156
      DELETE FROM planned_versions
13157
            WHERE pkg_id = pkgid AND pkg_version = spkgversion;
13158
 
13159
      RETURN outerrcode;
1373 dpurdie 13160
   END;
13161
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13162
   PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2)
1373 dpurdie 13163
   IS
13164
   BEGIN
3959 dpurdie 13165
      INSERT INTO abt_action_log
13166
                  (rcon_id, action_datetime, action
13167
                  )
13168
           VALUES (rconid, ora_sysdatetime, action
13169
                  );
1373 dpurdie 13170
   END;
13171
 
13172
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13173
   FUNCTION insert_package_metrics (
13174
      rtagid                   IN   NUMBER,
13175
      pkgname                  IN   VARCHAR2,
13176
      vext                     IN   VARCHAR2,
13177
      metricstring             IN   VARCHAR2
1373 dpurdie 13178
   )
3959 dpurdie 13179
      RETURN NUMBER
1373 dpurdie 13180
   IS
3959 dpurdie 13181
      citemcollection          relmgr_varchar2_tab_t  := relmgr_varchar2_tab_t ();
13182
      lv_pvid                  NUMBER                 := 0;
13183
      rownumber                NUMBER;
13184
      rowcontent               VARCHAR2(4000);
13185
      metricname               VARCHAR2(1000);
13186
      metricvalue              VARCHAR2(4000);
13187
      return_insert_error      NUMBER                 := -1;
13188
      return_insert_success    NUMBER                 := 0;
13189
 
13190
      /* Metrics */
13191
      lv_branches                 NUMBER;
13192
      lv_branchlist               VARCHAR2(4000);
13193
      lv_codefiles                NUMBER;
13194
      lv_ignoredfiles             NUMBER;
13195
      lv_directories              NUMBER;
13196
      lv_directorydepth           NUMBER;
13197
      lv_totalfiles               NUMBER;
13198
      lv_makefiles                NUMBER;
13199
      lv_blanklines               NUMBER;
13200
      lv_codelines                NUMBER;
13201
      lv_commentlines             NUMBER;
13202
 
1373 dpurdie 13203
   BEGIN
3959 dpurdie 13204
      /*--------------- Business Rules Here -------------------*/
13205
      IF (rtagid IS NULL)
13206
      THEN
13207
         RETURN return_insert_error;
13208
      END IF;
1373 dpurdie 13209
 
3959 dpurdie 13210
      IF (pkgname IS NULL)
13211
      THEN
13212
         RETURN return_insert_error;
13213
      END IF;
13214
 
13215
      IF (metricstring IS NULL)
13216
      THEN
13217
         RETURN return_insert_error;
13218
      END IF;
13219
 
13220
      BEGIN
13221
         SELECT pv.pv_id
13222
           INTO lv_pvid
13223
           FROM package_versions pv, packages pkg, release_content rc
13224
          WHERE pv.pkg_id = pkg.pkg_id
13225
            AND rc.rtag_id = rtagid
13226
            AND pv.pv_id = rc.pv_id
13227
            AND pkg.pkg_name = pkgname
13228
            AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
13229
      EXCEPTION
13230
           WHEN NO_DATA_FOUND
13231
           THEN
13232
                lv_pvid := 0;
13233
      END;
13234
 
13235
      citemcollection := in_list_varchar2 (metricstring, ';');
13236
 
13237
      FOR rownumber IN 1 .. citemcollection.COUNT
13238
      LOOP
13239
         rowcontent := citemcollection(rownumber);
13240
         metricvalue := SUBSTR(rowcontent, (INSTR(rowcontent, '=') + 1));
13241
         metricname := REGEXP_REPLACE(rowcontent, '=.*$', '');
13242
 
13243
         IF    metricname = 'ccbranch.count' THEN lv_branches := metricvalue;
13244
         ELSIF metricname = 'ccbranch.list' THEN lv_branchlist := metricvalue;
13245
         ELSIF metricname = 'code.files' THEN lv_codefiles := metricvalue;
13246
         ELSIF metricname = 'code.ignored' THEN lv_ignoredfiles := metricvalue;
13247
         ELSIF metricname = 'count.dir' THEN lv_directories := metricvalue;
13248
         ELSIF metricname = 'count.dirdepth' THEN lv_directorydepth := metricvalue;
13249
         ELSIF metricname = 'count.file' THEN lv_totalfiles := metricvalue;
13250
         ELSIF metricname = 'count.makefile' THEN lv_makefiles := metricvalue;
13251
         ELSIF metricname = 'lines.blank' THEN lv_blanklines := metricvalue;
13252
         ELSIF metricname = 'lines.code' THEN lv_codelines := metricvalue;
13253
         ELSIF metricname = 'lines.comment' THEN lv_commentlines := metricvalue;
13254
         END IF;
13255
      END LOOP;
13256
 
13257
      IF (lv_pvid > 0)
13258
      THEN
13259
         -- Delete any existing entries for this package version to makes sure our data is untainted
13260
         DELETE FROM package_metrics pm
13261
         WHERE pm.pv_id = lv_pvid;
13262
 
13263
         -- Insert the new data into the metrics table
13264
         INSERT INTO package_metrics
13265
                     (pv_id, branches, branch_list, code_files, ignored_files, directories, directory_depth,
13266
                      total_files, makefiles, blank_lines, code_lines, comment_lines, created_stamp
13267
                     )
13268
              VALUES (lv_pvid, lv_branches, lv_branchlist, lv_codefiles, lv_ignoredfiles, lv_directories, lv_directorydepth,
13269
                      lv_totalfiles, lv_makefiles, lv_blanklines, lv_codelines, lv_commentlines, ora_sysdatetime
13270
                     );
13271
 
13272
         -- Now update the Release_Metrics Table
13273
         update_release_metrics(rtagid);
13274
 
13275
         RETURN return_insert_success;
13276
      ELSE
13277
         RETURN return_insert_error;
13278
      END IF;
1373 dpurdie 13279
   END;
13280
 
13281
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13282
   PROCEDURE update_release_metrics (rtagid IN NUMBER)
1373 dpurdie 13283
   IS
3959 dpurdie 13284
      lv_totalpackages       NUMBER;
13285
      lv_autobuilt           NUMBER;
13286
      lv_linesofcode         NUMBER;
13287
      lv_unittested          NUMBER;
13288
      lv_autotested          NUMBER;
13289
      lv_numOfbranches       NUMBER;
13290
      lv_lastbuildtime       DATE;
1373 dpurdie 13291
   BEGIN
3959 dpurdie 13292
      IF (rtagid > 0)
13293
      THEN
13294
         -- Get the total number of packages in this release and the number of
13295
         -- those that are autobuilt
13296
         SELECT COUNT (DISTINCT rc.pv_id),
13297
                COUNT (DISTINCT autobuilt_qry.pv_id)
13298
           INTO lv_totalpackages, lv_autobuilt
13299
           FROM release_content rc,
13300
                package_versions pv,
13301
                (
13302
                 SELECT rc.pv_id
13303
                   FROM release_content rc,
13304
                        package_versions pv
13305
                  WHERE pv.is_autobuildable = 'Y'
13306
                    AND pv.pv_id = rc.pv_id
13307
                    AND rc.rtag_id = rtagid
13308
                ) autobuilt_qry
13309
          WHERE pv.pv_id = rc.pv_id
13310
            AND rc.rtag_id = rtagid
13311
            AND autobuilt_qry.pv_id (+) = rc.pv_id;
1373 dpurdie 13312
 
3959 dpurdie 13313
         -- Get the build time of the last package built in this release and the
13314
         -- total number of lines of code
13315
         SELECT MAX(pm.created_stamp),
13316
                SUM(pm.code_lines)
13317
           INTO lv_lastbuildtime, lv_linesofcode
13318
           FROM package_metrics pm, release_content rc
13319
          WHERE pm.pv_id = rc.pv_id
13320
            AND rc.rtag_id = rtagid;
13321
 
13322
         -- Get the number of packages with unit tests in this release and the
13323
         -- number of those that are autotested
13324
         SELECT COUNT(DISTINCT ut.pv_id) INTO lv_unittested
13325
           FROM unit_tests ut,
13326
                release_content rc
13327
          WHERE ut.pv_id = rc.pv_id
13328
            AND rc.rtag_id = rtagid
13329
        AND ut.test_types_fk != 1;
13330
 
13331
        SELECT COUNT(DISTINCT ut.pv_id) INTO lv_autotested
13332
          FROM unit_tests ut,
13333
               release_content rc
13334
         WHERE ut.pv_id = rc.pv_id
13335
           AND rc.rtag_id = rtagid
13336
           AND ut.test_types_fk = 7;
13337
 
13338
 
13339
         -- Count the number of unique branches in the packages in this release.
13340
--         SELECT COUNT(DISTINCT branch) INTO lv_numOfbranches
13341
--           FROM (
13342
--                SELECT pv_id,
13343
--                       regexp_substr(str, '[^,]+', 1, level) branch,
13344
--                       level lv,
13345
--                       lag(level, 1, 0) over (partition by pv_id order by level) lg
13346
--                  FROM (
13347
--                       SELECT pm.pv_id,
13348
--                              ','||pm.branch_list str
13349
--                         FROM package_metrics pm,
13350
--                              release_content rc
13351
--                        WHERE pm.pv_id = rc.pv_id
13352
--                          AND rc.rtag_id = rtagid
13353
--                       )
13354
--                CONNECT BY regexp_substr(str, '[^,]+', 1, LEVEL) IS NOT NULL
13355
--                )
13356
--          WHERE lv != lg;
13357
 
13358
         UPDATE release_metrics rm
13359
            SET rm.total_packages = lv_totalpackages,
13360
                rm.autobuilt = lv_autobuilt,
13361
                rm.lines_of_code = lv_linesofcode,
13362
                rm.unit_tested = lv_unittested,
13363
                rm.autotested = lv_autotested,
13364
--                rm.branches = lv_numOfbranches,
13365
                rm.last_build_time = lv_lastbuildtime
13366
          WHERE rtag_id = rtagid;
13367
 
13368
         IF (SQL%ROWCOUNT = 0)
13369
         THEN
13370
            INSERT INTO release_metrics
13371
                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
13372
                         autotested, last_build_time
13373
                        )
13374
                 VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,
13375
                         lv_autotested, lv_lastbuildtime
13376
                        );
13377
         END IF;
13378
--         IF (SQL%ROWCOUNT = 0)
13379
--         THEN
13380
--            INSERT INTO release_metrics
13381
--                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
13382
--                         autotested, branches, last_build_time
13383
--                        )
13384
--                 VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,
13385
--                         lv_autotested, lv_numOfbranches, lv_lastbuildtime
13386
--                        );
13387
--         END IF;
13388
--      ELSE
13389
--         raise_application_error (-20000, 'RtagId must be supplied.');
13390
      END IF;
1373 dpurdie 13391
   END;
13392
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13393
   FUNCTION return_vcs_tag(pvid IN NUMBER) RETURN VARCHAR2
1373 dpurdie 13394
   IS
3959 dpurdie 13395
      vcstypeid    NUMBER;
13396
      vcstag       VARCHAR2(32);
13397
      label        VARCHAR2(60);
13398
      srcpath      VARCHAR2(2000);
13399
      vcstypeid_cc NUMBER;
13400
      vcstypeid_uc NUMBER;
1373 dpurdie 13401
   BEGIN
3959 dpurdie 13402
      -- Get the VCS_TYPE_ID for the ClearCase version control system. We do this so that we make no assumptions about
13403
      -- what the primary key value is for the ClearCase VCS entry.
13404
      BEGIN
13405
         SELECT vt.vcs_type_id
13406
         INTO vcstypeid_cc
13407
         FROM VCS_TYPE vt
13408
         WHERE vt.tag = 'CC';
13409
         EXCEPTION
13410
            WHEN NO_DATA_FOUND THEN
13411
               raise_application_error (-20000, 'Database is missing compulsory CC version control system tag!');
13412
      END;
1373 dpurdie 13413
 
3959 dpurdie 13414
      -- Get the VCS_TYPE_ID for the Uncontrolled version control system. We do this so that we make no assumptions about
13415
      -- what the primary key value is for the Uncontrolled VCS entry.
13416
      BEGIN
13417
         SELECT vt.vcs_type_id
13418
         INTO vcstypeid_uc
13419
         FROM VCS_TYPE vt
13420
         WHERE vt.tag = 'UC';
13421
         EXCEPTION
13422
            WHEN NO_DATA_FOUND THEN
13423
               raise_application_error (-20000, 'Database is missing compulsory UC version control system tag!');
13424
      END;
13425
 
13426
      -- Get the PKG_LABEL, SRC_PATH, VCS_TYPE_ID for the package version
13427
      -- As additional VCS types are introduced, we may have to extend what this SELECT statement returns
13428
      BEGIN
13429
         SELECT pv.pkg_label, pv.src_path,
13430
           (CASE WHEN pv.pkg_label = 'N/A' AND pv.vcs_type_id IS NULL THEN vcstypeid_uc
13431
                 WHEN pv.vcs_type_id IS NULL THEN vcstypeid_cc
13432
                 ELSE pv.vcs_type_id END) AS vcs_type_id
13433
         INTO label, srcpath, vcstypeid
13434
         FROM PACKAGE_VERSIONS pv
13435
         WHERE pv.pv_id = pvid;
13436
         EXCEPTION
13437
            WHEN NO_DATA_FOUND THEN
13438
               raise_application_error (-20000, 'Package Version Not Found!');
13439
      END;
13440
 
13441
      -- Get the VCS TAG for the VCS_TYPE_ID.
13442
      BEGIN
13443
         SELECT vt.tag
13444
         INTO vcstag
13445
         FROM VCS_TYPE vt
13446
         WHERE vt.vcs_type_id = vcstypeid;
13447
         EXCEPTION
13448
            WHEN NO_DATA_FOUND THEN
13449
               raise_application_error (-20000, 'Could not get VCS Tag for the package version!');
13450
      END;
13451
 
13452
      -- Return value depending upon which VCS Tag is being used.
13453
      -- As additional VCS types are introduced, we have to add additional WHEN clauses
13454
      CASE vcstag
13455
         WHEN 'CC' THEN
13456
            RETURN vcstag || '::' || srcpath || '::' || label;
13457
         WHEN 'SVN' THEN
13458
            RETURN vcstag || '::' || srcpath || '::' || label;
13459
         ELSE
13460
            RETURN vcstag || '::';
13461
      END CASE;
13462
 
1373 dpurdie 13463
   END;
3959 dpurdie 13464
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 13465
 
3959 dpurdie 13466
/*-------------------------------------------------------------------------------------------------------
13467
Name:        update_vcs_details
13468
Description: Updates the Version Control System (vcs) details specified in the vcstag
13469
             parameter for the specified package version.
13470
             The specified package vcstag is parsed and split into 3 fields:
13471
                vcs type, src path, label
13472
             These fields are then stored for the specified pv_id in the package_versions, table.
13473
             An action is recorded in the action log and provides information for tracking and
13474
             for restoring the previous vcs settings if a recovery is required.
13475
Paramters:
13476
             ipv_id:     Package version identifier
13477
             vcstag:     Full version control tag.
13478
                         Examples:
13479
                             "SVN::AUPERASVN01/DPG_SWBase/tools/trunk::daf_tools_25.1.7027.cr@1234"
13480
                            "CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr"
13481
             user_id:    Identifier of the user that is performing this function.
13482
*/
13483
PROCEDURE update_vcs_details(ipv_id IN NUMBER, vcstag IN VARCHAR2, user_id IN NUMBER)
1373 dpurdie 13484
   IS
3959 dpurdie 13485
      ivcs_type_id   NUMBER;
13486
      svcs_type      VARCHAR2(128);
13487
      ssrc_path      VARCHAR2(512);
13488
      spkg_label     VARCHAR2(512);
13489
      spattern       VARCHAR2(64);
13490
      saction_desc   VARCHAR2(2048);
13491
      old_vcs_type   VARCHAR2(128);
13492
      old_src_path   VARCHAR2(512);
13493
      old_pkg_label  VARCHAR2(512);
13494
      old_pkg_vcstag VARCHAR2(1024);
13495
      i              NUMBER;
13496
      vcount         NUMBER;
1373 dpurdie 13497
   BEGIN
3959 dpurdie 13498
     -- Split vcs tag into fields: vcs type, src path, label
13499
     -- Fields are separated by '::'
13500
     -- e.g "CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr"
13501
     -- The below regular expression pattern has groups to achieve this.
1373 dpurdie 13502
 
3959 dpurdie 13503
     spattern:= '^([^:]*)::([^:]*)(::(.*))?$';
13504
 
13505
     --As Oracle 10g does not allow REGEXP_SUBSTR to return a group,
13506
     --REGEXP_REPLACE is used instead (Note: Oracle 11g has this enhancement).
13507
     SELECT REGEXP_REPLACE(vcstag,spattern, '\1') INTO svcs_type  FROM DUAL;
13508
     SELECT REGEXP_REPLACE(vcstag,spattern, '\2') INTO ssrc_path  FROM DUAL;
13509
     SELECT REGEXP_REPLACE(vcstag,spattern, '\4') INTO spkg_label FROM DUAL;
13510
 
13511
     -- Validate vcs type
13512
     BEGIN
13513
       SELECT vc.vcs_type_id INTO ivcs_type_id FROM vcs_type vc WHERE UPPER(svcs_type) = UPPER(vc.tag);
13514
     EXCEPTION
13515
       WHEN NO_DATA_FOUND THEN
13516
         raise_application_error (-20000, 'Invalid vcs type: ' || '"' || svcs_type || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
13517
       --RAISE;
13518
     END;
13519
 
13520
     -- If Clearcase
13521
     IF (ivcs_type_id = 2) THEN
13522
       -- Validate source path
13523
       IF NOT REGEXP_LIKE(ssrc_path,'^(\\|\/)[a-z]+[0-9a-z_\.\-\\\/ -]*$','i') THEN
13524
         raise_application_error (-20000, 'Invalid CC src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
13525
       END IF;
13526
 
13527
       -- Validate label
13528
       -- For clearcase the label must be specified. For subversion it is not required.
13529
       IF NOT REGEXP_LIKE(spkg_label,'^[0-9a-z_\.\-]+$','i') THEN
13530
         raise_application_error (-20000, 'Invalid CC label:' || '"' || spkg_label || '"' || ' for package version:' || ipv_id || ', vcstag:' || '"' || vcstag || '"');
13531
       END IF;
13532
 
13533
     -- if Subversion
13534
     ELSIF (ivcs_type_id = 23) THEN
13535
       -- general validity
13536
       -- Not as picky as the RM Data entry
13537
       IF NOT REGEXP_LIKE(ssrc_path,'^([0-9a-z_\.\-]+)(\/([0-9a-z_\.\-]+))+$','i') THEN
13538
         raise_application_error (-20000, 'Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
13539
       END IF;
13540
 
13541
       -- Validate Tag
13542
       -- May be a Peg or a Label
13543
       IF NOT REGEXP_LIKE(spkg_label,'^@?[0-9]+$','i') THEN
13544
           IF NOT REGEXP_LIKE(spkg_label,'^[0-9a-z_\.\-]+($|@[0-9]+)','i') THEN
13545
             raise_application_error (-20000, 'Invalid SVN tag:' || '"' || spkg_label || '"' || ' for package version:' || ipv_id || ', vcstag:' || '"' || vcstag || '"');
13546
           END IF;
13547
       END IF;
13548
 
13549
        -- Check for suitable ending
13550
        IF NOT REGEXP_LIKE(ssrc_path,'(\/tags$)|(\/branches\/)|(\/trunk$)','i') THEN
13551
            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 || '"');
13552
        END IF;
13553
 
13554
       -- Check for combined use of tags, branches, trunk or repeats of each
13555
       -- Count occurrences of /tags or /branches/ or /trunk
13556
       vcount:=0;
13557
       i:=1;
13558
       WHILE i > 0 LOOP
13559
         i:=REGEXP_INSTR(ssrc_path,'(\/tags(\/|$))|(\/branches(\/|$))|(\/trunk(\/|$))',i,1,1,'i');
13560
         IF i > 0 THEN
13561
           -- if found then increment count
13562
           vcount:=vcount+1;
13563
           i:=i-1;  -- move index back to "/"
13564
         END IF;
13565
       END LOOP;
13566
 
13567
       IF vcount = 0  THEN
13568
         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 || '"');
13569
       END IF;
13570
 
13571
       IF vcount > 1  THEN
13572
         raise_application_error (-20000, 'Combined use of /trunk, /tags, or /branches/. Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
13573
       END IF;
13574
 
13575
 
13576
     END IF;
13577
 
13578
     BEGIN
13579
       -- Get current vcs tag for specified package version
13580
       SELECT pv.src_path, pv.pkg_label, vc.tag as vcs_type
13581
       INTO old_src_path, old_pkg_label, old_vcs_type
13582
       FROM package_versions pv, vcs_type vc
13583
       WHERE pv.pv_id = ipv_id
13584
       AND pv.vcs_type_id = vc.vcs_type_id (+);
13585
 
13586
     EXCEPTION
13587
       WHEN NO_DATA_FOUND THEN
13588
         raise_application_error (-20000, 'Package version not found: ' || ipv_id);
13589
     END;
13590
 
13591
     old_pkg_vcstag:= old_vcs_type || '::' || old_src_path;
13592
     IF (old_pkg_label IS NOT NULL) THEN
13593
       old_pkg_vcstag:=old_pkg_vcstag || '::' || old_pkg_label;
13594
     END IF;
13595
 
13596
     -- Create action description
13597
     -- This description will contain the old and new tags.
13598
     -- Its purpose is to provide information for tracking and for restoring previous vcs settings if a recovery is required.
13599
     -- An example of the action description is below:
13600
     --   OldTag:CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr NewTag:SVN::DPG_SWBase/tools/tags/daf_tools_25.1.7027.cr
13601
     saction_desc:='OldTag:' || old_pkg_vcstag || ' ' || 'NewTag:' || vcstag;
13602
 
13603
     -- Store new vcs details
13604
     UPDATE package_versions SET
13605
       src_path = ssrc_path,
13606
       pkg_label = spkg_label,
13607
       vcs_type_id = ivcs_type_id
13608
     WHERE
13609
       pv_id = ipv_id;
13610
 
13611
     -- Store action in action log so that we can back track and also restore vcs settings if required.
13612
     log_action (ipv_id,'VcsConversion',user_id,saction_desc);
13613
 
13614
   END update_vcs_details;
13615
 
13616
/*-------------------------------------------------------------------------------------------------------
13617
Name:        isSVN
13618
Description: Determine if any of the packages versions are controlled under SVN
13619
			 Intended to be used to prevent users from releasing a package
13620
			 that has been migrated to SVN
13621
 
13622
Paramters:	pkgid:     Package ID
13623
 
13624
Returns:	Number of versions under SVN version control
13625
*/
13626
 
13627
FUNCTION isSVN( pkgid IN NUMBER )
13628
    RETURN NUMBER
13629
    IS
13630
    svncount   NUMBER  := 0;
13631
   BEGIN
13632
        SELECT COUNT(*) INTO svncount FROM PACKAGE_VERSIONS pv WHERE pv.PKG_ID = pkgid AND pv.VCS_TYPE_ID = 23;
13633
        RETURN (svncount);
1373 dpurdie 13634
   END;
3959 dpurdie 13635
 
13636
/*-------------------------------------------------------------------------------------------------------
13637
Name:        isSVNbyName
13638
Description: Determine if any of the packages versions are controlled under SVN
13639
			 Intended to be used to prevent users from releasing a package
13640
			 that has been migrated to SVN
13641
 
13642
Paramters:	pkgname:	Package Name
13643
 
13644
Returns:	Number of versions under SVN version control
13645
*/
13646
 
13647
FUNCTION isSVNbyName( pkgname IN VARCHAR2 ) 
13648
    RETURN NUMBER
13649
IS
13650
   svncount   NUMBER  := 0;
13651
   BEGIN
13652
        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;
13653
        RETURN (svncount);
13654
   END;
5172 dpurdie 13655
/*-------------------------------------------------------------------------------------------------------
13656
Name:        new_build_instance
13657
Description: Create a new entry in the BUILD_INSTANCE table
13658
             The BUILD_ID will be allocated.
13659
             The timestamp will be created
13660
 
13661
Paramters:	rtag_id:	Release ID - must exist
13662
            pv_id:    Package ID - must exist
13663
            reason:   Reason code for the build
13664
 
13665
Returns:	BUILD_ID for the new entry
13666
          Returns -1 on error, PV_ID or RTAG_ID do not exist
13667
*/ 
13668
FUNCTION new_build_instance( rtag_id IN NUMBER, pv_id IN NUMBER , reason IN CHAR) 
13669
  RETURN NUMBER   
13670
  IS
13671
    build_id NUMBER := 0;
13672
  BEGIN
13673
    INSERT into BUILD_INSTANCES (RTAG_ID, PV_ID, REASON)
13674
    values( rtag_id, pv_id, reason)
13675
    returning BUILD_ID into build_id;
13676
    return build_id;
13677
  EXCEPTION
13678
    WHEN OTHERS THEN
13679
      return -1;
13680
  END;
13681
 
13682
/*-------------------------------------------------------------------------------------------------------
13683
Name: update_build_instance
13684
Description: Update fields in an existing build instance
13685
Returns: -1 on error
13686
*/
13687
FUNCTION update_build_instance(
13688
    nbuild_id IN NUMBER,
13689
    npv_id    IN NUMBER DEFAULT NULL,
13690
    nstate    IN CHAR DEFAULT NULL )
13691
  RETURN NUMBER
13692
IS
13693
BEGIN
13694
  IF ( npv_id IS NOT NULL AND npv_id > 0 ) THEN
13695
    UPDATE BUILD_INSTANCES SET PV_ID = npv_id WHERE BUILD_ID = nbuild_id;
13696
    IF SQL%NOTFOUND THEN
13697
      RETURN -2;
13698
    END IF;
13699
  END IF;
13700
 
13701
  IF ( nstate        IS NOT NULL ) THEN
13702
    IF (LENGTH(nstate) = 1 ) THEN
13703
      UPDATE BUILD_INSTANCES SET STATE = nstate WHERE BUILD_ID = nbuild_id;
13704
        IF SQL%NOTFOUND THEN
13705
          RETURN -3;
13706
        END IF;
13707
    ELSE
13708
      RETURN -4;
13709
    END IF;
13710
  END IF;
13711
 
13712
  RETURN 1;
13713
  EXCEPTION
13714
    WHEN OTHERS THEN
13715
      RETURN -1;
13716
  END;
13717
 
13718
/*-------------------------------------------------------------------------------------------------------
13719
Name:        insert_test_run
13720
Description: Insert data into the test_run table
13721
 
13722
 
13723
Paramters:	See below
13724
 
13725
Returns:	1 on success
13726
          Returns -1 on error
13727
*/  
13728
  FUNCTION insert_test_run( 
13729
      build_id  IN NUMBER, 
13730
      name      IN VARCHAR2, 
13731
      outcome   IN VARCHAR2, 
13732
      platform  IN VARCHAR2, 
13733
      stype     IN VARCHAR2, 
13734
      duration  IN NUMBER default null, 
13735
      message   IN CLOB default null
13736
      ) return NUMBER
13737
IS
13738
  sName VARCHAR2(1000) := name;
13739
  sNameLen NUMBER;
13740
 
13741
BEGIN
13742
  sNameLen := LENGTH(sName);
5384 dpurdie 13743
  IF sNameLen >= 199 Then
13744
    sName := '...' || SUBSTR(sName, sNameLen - 196); 
5172 dpurdie 13745
  END IF;
13746
 
13747
  INSERT into TEST_RUN
13748
    (BUILD_ID, TEST_NAME, TEST_OUTCOME, TIME_TAKEN,FAIL_MESSAGE,PLATFORM, TYPE)
13749
    VALUES(build_id,sName,outcome, duration, message, platform, stype);
13750
    return 1;
13751
  EXCEPTION
13752
    WHEN OTHERS THEN
13753
      return -1;
13754
 
13755
END;
3959 dpurdie 13756
 
13757
   END;
4040 dpurdie 13758
 
1374 dpurdie 13759
/
4040 dpurdie 13760
--------------------------------------------------------
13761
--  DDL for Package Body PK_WORK_IN_PROGRESS
13762
--------------------------------------------------------
13763
 
5172 dpurdie 13764
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS
1373 dpurdie 13765
 
13766
/*
13767
------------------------------
13768
||  Last Modified:  S.Vukovic
3959 dpurdie 13769
||  Modified Date:  2/May/2005
1373 dpurdie 13770
||  Body Version:   1.0
13771
------------------------------
13772
*/
13773
 
13774
 
13775
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13776
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 13777
 
3959 dpurdie 13778
	oldPvId NUMBER;
13779
	ReleaseLocation VARCHAR2(4000);
13780
	sLocation VARCHAR2(4000) := NULL;
1373 dpurdie 13781
 
3959 dpurdie 13782
 
1373 dpurdie 13783
BEGIN
13784
	/*--------------- Business Rules Here -------------------*/
3959 dpurdie 13785
	/*-------------------------------------------------------*/
1373 dpurdie 13786
 
3959 dpurdie 13787
	BEGIN
5384 dpurdie 13788
		-- Check if Exists in "Work in progress" anywhere in the world in a non-closed Release
3959 dpurdie 13789
		SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME  INTO sLocation
13790
		  FROM WORK_IN_PROGRESS wip,
13791
		  	   RELEASE_TAGS rt,
13792
			   PROJECTS proj
13793
		 WHERE wip.PV_ID = newPvId
13794
		   AND wip.RTAG_ID = rt.RTAG_ID
5384 dpurdie 13795
		   AND rt.OFFICIAL in ('N','R','C')
3959 dpurdie 13796
		   AND rt.PROJ_ID = proj.PROJ_ID;
1373 dpurdie 13797
 
3959 dpurdie 13798
		EXCEPTION
13799
	    	WHEN NO_DATA_FOUND THEN
13800
	       		sLocation := NULL;
13801
 
13802
	END;	   	   
1373 dpurdie 13803
 
13804
 
13805
 
3959 dpurdie 13806
	IF (sLocation IS NULL)  THEN
1373 dpurdie 13807
 
3959 dpurdie 13808
		-- Add to "Work in progress"
13809
		INSERT INTO WORK_IN_PROGRESS ( RTAG_ID, PV_ID, VIEW_ID )
13810
		VALUES( RtagId, newPvId, ViewId );
13811
 
13812
 
13813
	    /* LOG ACTION */
13814
		SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
13815
		  FROM PROJECTS proj,
13816
		  	   RELEASE_TAGS rt
13817
		 WHERE rt.PROJ_ID = proj.PROJ_ID
13818
		   AND rt.RTAG_ID = RtagId;
13819
 
13820
		Log_Action ( newPvId, 'work_in_progress', UserId, 'Location: '|| ReleaseLocation );
13821
 
13822
	ELSE
13823
 
13824
		RAISE_APPLICATION_ERROR (-20000, 'This version is already in Work-In-Progress Area at '|| sLocation ||'.' );
13825
 
1373 dpurdie 13826
	END IF;
13827
 
3959 dpurdie 13828
END;
13829
/*-------------------------------------------------------------------------------------------------------*/
13830
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 13831
 
3959 dpurdie 13832
	ReleaseLocation VARCHAR2(4000);
1373 dpurdie 13833
 
3959 dpurdie 13834
BEGIN
13835
 
13836
	/*--------------- Business Rules Here -------------------*/
1373 dpurdie 13837
	/*-------------------------------------------------------*/
13838
 
13839
 
3959 dpurdie 13840
	-- Get release location for logging pusposes
13841
	SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
13842
	  FROM PROJECTS proj,
13843
	  	   RELEASE_TAGS rt
13844
	 WHERE rt.PROJ_ID = proj.PROJ_ID
13845
	   AND rt.RTAG_ID = RtagId;
1373 dpurdie 13846
 
13847
 
3959 dpurdie 13848
	-- Delete from Work In Progress
13849
	DELETE
13850
	  FROM WORK_IN_PROGRESS wip
13851
	 WHERE wip.RTAG_ID = RtagId
13852
	   AND wip.PV_ID = PvId;
1373 dpurdie 13853
 
3959 dpurdie 13854
	Log_Action ( PvId, 'delete_from_wip', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 13855
 
3959 dpurdie 13856
 
13857
 
13858
 
1373 dpurdie 13859
END;
13860
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13861
PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 13862
 
3959 dpurdie 13863
	nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
13864
	ReleaseLocation VARCHAR2(4000);
13865
	PvId NUMBER;
1373 dpurdie 13866
 
13867
BEGIN
3959 dpurdie 13868
 
1373 dpurdie 13869
	/*--------------- Business Rules Here -------------------*/
3959 dpurdie 13870
	IF (PvIdList IS NULL)
13871
	THEN
13872
		RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
13873
	END IF;
1373 dpurdie 13874
	/*-------------------------------------------------------*/
13875
 
13876
 
3959 dpurdie 13877
	nIdCollector := IN_LIST_NUMBER ( PvIdList );
1373 dpurdie 13878
 
13879
 
3959 dpurdie 13880
	-- Get release location for logging pusposes
13881
	SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
13882
	  FROM PROJECTS proj,
13883
	  	   RELEASE_TAGS rt
13884
	 WHERE rt.PROJ_ID = proj.PROJ_ID
13885
	   AND rt.RTAG_ID = RtagId;
1373 dpurdie 13886
 
3959 dpurdie 13887
 
13888
	FOR i IN 1..nIdCollector.COUNT
13889
	LOOP
13890
		PvId := nIdCollector(i);
13891
 
13892
		-- Delete from Work In Progress
13893
		DELETE
13894
		  FROM WORK_IN_PROGRESS wip
13895
		 WHERE wip.RTAG_ID = RtagId
13896
		   AND wip.PV_ID = PvId;
13897
 
13898
		Log_Action ( PvId, 'remove_from_work_in_progress', UserId, 'Location: '|| ReleaseLocation );
13899
 
13900
	END LOOP;
13901
 
13902
 
1373 dpurdie 13903
END;
13904
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13905
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
13906
 
13907
	ReturnValue NUMBER;
13908
 
1373 dpurdie 13909
BEGIN
3959 dpurdie 13910
	SELECT wip.VIEW_ID INTO ReturnValue
13911
	  FROM WORK_IN_PROGRESS wip
13912
	 WHERE wip.RTAG_ID = RtagId
13913
	   AND wip.PV_ID = PvId;
1373 dpurdie 13914
 
3959 dpurdie 13915
	RETURN ReturnValue;
1373 dpurdie 13916
END;
13917
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13918
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
13919
 
13920
	IsBaseView CHAR(1);
13921
 
1373 dpurdie 13922
BEGIN
13923
 
3959 dpurdie 13924
	-- Check if the view is BASE VIEW
13925
	SELECT vi.BASE_VIEW INTO IsBaseView
13926
	  FROM VIEWS vi
13927
	 WHERE vi.VIEW_ID = ViewId;
13928
 
5172 dpurdie 13929
	IF (IsBaseView IN ('Y', 'S')) THEN 
3959 dpurdie 13930
		-- Get Base view content
13931
		OPEN RecordSet FOR
13932
		SELECT 0 AS PKG_STATE,
13933
			   NULL AS DEPRECATED_STATE,
13934
			   pv.pv_id, 
13935
			   pkg.pkg_name, 
13936
			   pv.pkg_version, 
13937
			   pv.dlocked, 
13938
			   pv.pv_description,
13939
			   pv.BUILD_TYPE
13940
		  FROM WORK_IN_PROGRESS rel,
13941
		       packages pkg,
13942
		       package_versions pv
13943
		 WHERE pv.pkg_id = pkg.pkg_id
13944
		   AND rel.pv_id = pv.pv_id
13945
		   AND rel.VIEW_ID = ViewId
13946
		   AND rel.RTAG_ID = RtagId
13947
		 ORDER BY UPPER(pkg.PKG_NAME);
13948
 
1373 dpurdie 13949
 
3959 dpurdie 13950
	ELSE	 
1373 dpurdie 13951
 
3959 dpurdie 13952
	 	-- Get non base view content
13953
		OPEN RecordSet FOR
13954
		SELECT 0 AS PKG_STATE,
13955
			   NULL AS DEPRECATED_STATE,
13956
			   pv.pv_id, 
13957
			   pkg.pkg_name, 
13958
			   pv.pkg_version, 
13959
			   pv.dlocked, 
13960
			   pv.pv_description,
13961
			   pv.BUILD_TYPE
13962
		  FROM WORK_IN_PROGRESS rel,
13963
		       packages pkg,
13964
		       package_versions pv,
13965
			   VIEW_DEF vd
13966
		 WHERE pv.pkg_id = pkg.pkg_id
13967
		   AND rel.pv_id = pv.pv_id
13968
		   AND vd.VIEW_ID = ViewId
13969
		   AND vd.PKG_ID = pv.PKG_ID
13970
		   AND rel.RTAG_ID = RtagId
13971
		 ORDER BY UPPER(pkg.PKG_NAME);
1373 dpurdie 13972
 
3959 dpurdie 13973
 
13974
	END IF;	 	
13975
 
13976
 
1373 dpurdie 13977
END;
13978
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13979
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
13980
 
1373 dpurdie 13981
BEGIN
13982
 
3959 dpurdie 13983
	UPDATE WORK_IN_PROGRESS wip SET
13984
	wip.VIEW_ID = NewViewId
13985
	WHERE wip.PV_ID = PvId
13986
	  AND wip.RTAG_ID = RtagId;
13987
 
1373 dpurdie 13988
END;
13989
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13990
END PK_WORK_IN_PROGRESS;
4040 dpurdie 13991
 
3959 dpurdie 13992
/
4040 dpurdie 13993
--------------------------------------------------------
13994
--  DDL for Package Body RM_ISSUES
13995
--------------------------------------------------------
13996
 
5172 dpurdie 13997
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."RM_ISSUES" AS
1373 dpurdie 13998
 
3959 dpurdie 13999
-- Private Implementation -----------------------------------------------------
1373 dpurdie 14000
 
14001
 
3959 dpurdie 14002
	FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER
14003
	AS
1373 dpurdie 14004
 
3959 dpurdie 14005
	BEGIN
14006
		-- start boundary case
14007
		IF ( XXstart < XX ) THEN
14008
			RETURN 1;
1373 dpurdie 14009
 
3959 dpurdie 14010
		ELSIF ( XXstart = XX ) THEN
1373 dpurdie 14011
 
3959 dpurdie 14012
			-- need to consider YY
14013
			IF ( YYstart < YY ) THEN
14014
				RETURN 1;
1373 dpurdie 14015
 
3959 dpurdie 14016
			ELSIF ( YYstart = YY ) THEN
1373 dpurdie 14017
 
3959 dpurdie 14018
					-- need to consider ZZ
14019
					IF ( ZZstart <= ZZ ) THEN
14020
						RETURN 1;
14021
 
14022
					ELSE
14023
						RETURN 0;
14024
					END IF;
14025
 
14026
			ELSE
14027
				RETURN 0;
14028
			END IF;
14029
		ELSE
14030
			RETURN 0;
14031
		END IF;
14032
	EXCEPTION
14033
		WHEN OTHERS THEN
14034
			RETURN -1;
14035
	END;
14036
 
14037
 
14038
	FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER
14039
	AS
14040
 
14041
	BEGIN
14042
		-- end boundary case
14043
		IF ( XX < XXend ) THEN
14044
			RETURN 1;
14045
 
14046
		ELSIF ( XX = XXend ) THEN
14047
 
14048
			-- need to consider YY
14049
			IF ( YY < YYend ) THEN
14050
				RETURN 1;
14051
 
14052
			ELSIF ( YY = YYend ) THEN
14053
 
14054
					-- need to consider ZZ
14055
					IF ( ZZ <= ZZend ) THEN
14056
						RETURN 1;
14057
 
14058
					ELSE
14059
						RETURN 0;
14060
					END IF;
14061
			ELSE
14062
 
14063
				RETURN 0;
14064
			END IF;
14065
		ELSE
14066
			RETURN 0;
14067
		END IF;
14068
	EXCEPTION
14069
		WHEN OTHERS THEN
14070
			RETURN -1;
14071
	END;
14072
 
14073
	/*
14074
	-	version format:		XX.YY.ZZ.abc
14075
	*/
14076
	FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBER
14077
	AS
14078
		XXstart		NUMBER	:=	0;
14079
		XXend		NUMBER	:=	0;
14080
		XX			NUMBER	:=	0;
14081
		YYstart		NUMBER	:=	0;
14082
		YYend		NUMBER	:=	0;
14083
		YY			NUMBER	:=	0;
14084
		ZZstart		NUMBER	:=	0;
14085
		ZZend		NUMBER	:=	0;
14086
		ZZ			NUMBER	:=	0;
14087
		first_dot	NUMBER	:=	0;
14088
		second_dot	NUMBER	:=	0;
14089
		third_dot	NUMBER	:=	0;
14090
 
14091
		ProjExtstart	VARCHAR2(10);
14092
		ProjExtend		VARCHAR2(10);
14093
		ProjExt			VARCHAR2(10);
14094
 
14095
	BEGIN
14096
		-- strip the version number
14097
		first_dot :=  INSTR(version_start, '.', 1, 1);
14098
		second_dot :=  INSTR(version_start, '.', 1, 2);
14099
		third_dot :=  INSTR(version_start, '.', 1, 3);
14100
 
14101
		XXstart := TO_NUMBER( SUBSTR( version_start, 1, first_dot - 1 ) );
14102
		YYstart := TO_NUMBER( SUBSTR( version_start, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
14103
		ZZstart := TO_NUMBER( SUBSTR( version_start, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
14104
		ProjExtstart := SUBSTR( version_start, third_dot + 1, LENGTH(version_start) - third_dot );
14105
 
14106
		first_dot :=  INSTR(version_end, '.', 1, 1);
14107
		second_dot :=  INSTR(version_end, '.', 1, 2);
14108
		third_dot :=  INSTR(version_end, '.', 1, 3);
14109
 
14110
		XXend := TO_NUMBER( SUBSTR( version_end, 1, first_dot - 1 ) );
14111
		YYend := TO_NUMBER( SUBSTR( version_end, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
14112
		ZZend := TO_NUMBER( SUBSTR( version_end, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
14113
		ProjExtend := SUBSTR( version_end, third_dot + 1, LENGTH(version_end) - third_dot );
14114
 
14115
		first_dot :=  INSTR(version, '.', 1, 1);
14116
		second_dot :=  INSTR(version, '.', 1, 2);
14117
		third_dot :=  INSTR(version, '.', 1, 3);
14118
 
14119
		XX := TO_NUMBER( SUBSTR( version, 1, first_dot - 1 ) );
14120
		YY := TO_NUMBER( SUBSTR( version, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
14121
		ZZ := TO_NUMBER( SUBSTR( version, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
14122
		ProjExt := SUBSTR( version, third_dot + 1, LENGTH(version) - third_dot );
14123
 
14124
		-- only include versions if all project extensions are the same
14125
		IF ( ProjExtstart = ProjExt AND ProjExt = ProjExtend ) THEN
14126
 
14127
			IF ( VerIsGrtrThanOrEqlToStart( XXstart, XX, YYstart, YY, ZZstart, ZZ ) = 1 AND VerIsLessThanOrEqlToEnd( XXend, XX, YYend, YY, ZZend, ZZ ) = 1 ) THEN
14128
				RETURN 1;
14129
			ELSE
14130
				RETURN 0;
14131
			END IF;
14132
		ELSE
14133
			RETURN 0;
14134
		END IF;
14135
 
14136
	EXCEPTION
14137
		WHEN OTHERS THEN
14138
			RETURN -1;
14139
	END;
14140
 
14141
	FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBER
14142
	AS
14143
	    pkg_id NUMBER;
14144
	BEGIN
14145
		SELECT
14146
			p.PKG_ID
14147
		INTO
14148
			pkg_id
14149
		FROM
14150
			PACKAGES p
14151
		WHERE
14152
			p.PKG_NAME = pkgName;
14153
 
14154
		RETURN pkg_id;
14155
	EXCEPTION
14156
	    WHEN OTHERS THEN
14157
			dbms_output.put_line('GetPkgId exception: ' || SQLERRM );
14158
			RETURN -1;
14159
	END;
14160
 
14161
 
14162
-- Public Implementation ------------------------------------------------------
14163
 
14164
	/*
14165
	-- Proc: AllIssues - Gets all issues for a package from dependent packages one level deep
14166
	--
14167
	-- INPUT PARAMETERS:
14168
	--
14169
	--		pkg_name  	-  	The name of the top level package to get issues for
14170
	--		version_start	-	The start version for the comparison
14171
	--		version_end	-	The end version for the comparison
14172
	*/
14173
	PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )
14174
	AS
14175
		pkgId	NUMBER;
14176
	BEGIN
14177
		-- get pkg_id of the input package:
14178
		pkgId := GetPkgId( pkg_name );
14179
 
14180
		OPEN vCursor FOR
14181
		SELECT
14182
			  pv.PKG_ID,
14183
			  pv.PKG_VERSION,
14184
			  pv.PV_ID,
14185
			  i_pkg.ISS_ID,
14186
			  ( SELECT pkg_name FROM PACKAGES WHERE pkg_id = pd.DPKG_ID ) AS DPV_NAME,
14187
			  pd.DPKG_ID,
14188
			  ( SELECT pkg_version FROM PACKAGE_VERSIONS WHERE pv_id = pd.DPV_ID ) AS DPV_VER,
14189
			  pd.DPV_ID,
14190
			  i_dpkg.ISS_ID AS ISSUE_ID
14191
		FROM
14192
			 PACKAGE_VERSIONS pv
14193
							  LEFT OUTER JOIN CQ_ISSUES i_pkg ON pv.PV_ID = i_pkg.PV_ID
14194
							  LEFT OUTER JOIN PACKAGE_DEPENDENCIES pd ON pv.PV_ID = pd.PV_ID
14195
							  LEFT OUTER JOIN CQ_ISSUES i_dpkg ON pd.DPV_ID = i_dpkg.PV_ID
14196
		WHERE
14197
   			 pv.PKG_ID = pkgId
14198
		AND
14199
			VersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1
14200
		AND
14201
			 ( i_dpkg.ISS_ID IS NOT NULL OR i_pkg.ISS_ID IS NOT NULL )
14202
		ORDER BY
14203
			 pv.PKG_ID,
14204
			 pv.PV_ID,
14205
			 pd.DPKG_ID,
14206
			 pd.DPV_ID;
14207
	EXCEPTION
14208
		WHEN OTHERS THEN
14209
			dbms_output.put_line('AllIssues exception: ' || SQLERRM );
14210
	END;
14211
 
14212
 
14213
	-- NOTE: make RM_PACKAGE_ISSUES a temporary table when tested ok
14214
 
14215
	/*
14216
	-- Proc: LoadIssuesTable
14217
	--
14218
	-- Populates Package_Issues table with details of issues from all dependent packages.
14219
	-- This will be for all package versions of the input pkg_name between the
14220
	-- version_start and version_end.
14221
	--
14222
	-- INPUT PARAMETERS:
14223
	--
14224
	--		pkg_name  	-  	The name of the top level package to get issues for
14225
	--		version_start	-	The start version for the comparison
14226
	--		version_end	-	The end version for the comparison
14227
	*/
14228
	PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )
14229
	AS
14230
		pkgId	NUMBER;
14231
 
14232
		CURSOR pack_vers_cur IS
14233
			SELECT
14234
				pv.PV_ID,
14235
				pv.PKG_VERSION,
14236
				pv.PKG_ID,
14237
				p.PKG_NAME
14238
			FROM
14239
				PACKAGE_VERSIONS pv
14240
					JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
14241
			WHERE
14242
   				 pv.PKG_ID = pkgId
14243
			AND
14244
				VersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1;
14245
 
14246
	BEGIN
14247
		DELETE FROM RELEASE_MANAGER.RM_PKG_ISSUES; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
14248
 
14249
		-- get the pkg_id we are finding issues for
14250
		pkgId := GetPkgId( pkg_name );
14251
 
14252
		-- find all the top level packages we are dealing with and recursively process their issues and their dependent package issues.
14253
		FOR pack_ver_rec IN  pack_vers_cur
14254
		LOOP
14255
			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 );
14256
			COMMIT;
14257
		END LOOP;
14258
 
14259
		-- The output cursor - shows the individual versions of the top level package then were reported on
14260
		OPEN vCursor FOR
14261
		SELECT DISTINCT ISS_ID, PKG_VERSION FROM RM_PKG_ISSUES WHERE ISS_ID IS NOT NULL; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
14262
/*removed
14263
		SELECT
14264
			PKG_VERSION
14265
		FROM
14266
			RELEASE_MANAGER.RM_PACKAGE_ISSUES;
14267
*/
14268
 
14269
 
14270
	EXCEPTION
14271
		WHEN OTHERS THEN
14272
			dbms_output.put_line('LoadIssuesTable exception: ' || SQLERRM );
14273
	END;
14274
 
14275
 
14276
	/*
14277
	-- Proc: InsertIssuesForDepends
14278
	--
14279
	-- Used by LoadIssuesTable to recursively find issues for all dependent packages
14280
	--
14281
	-- INPUT PARAMETERS:
14282
	--
14283
	--		pvID  		-  	The package version id of the package to get issues for
14284
	--		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)
14285
	--		top_pkgName -  	The package name of the top level package
14286
	--		top_pvID  	-  	The package version id of the top level package
14287
	--		top_pkgVer  -  	The package version description of the top level package
14288
	*/
14289
	PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 )
14290
	AS
14291
		pkgId		NUMBER;
14292
		issCnt		NUMBER := 0;
14293
		pkgCheck	NUMBER := 0;
14294
		depCheck	NUMBER := 0;
14295
 
14296
		dpkgName	VARCHAR(50);
14297
		dpkgVersion	VARCHAR(50);
14298
 
14299
		CURSOR dep_packs_cur IS
14300
			SELECT
14301
				DPV_ID
14302
			FROM
14303
				PACKAGE_DEPENDENCIES
14304
			WHERE
14305
				PV_ID = pvID;
14306
 
14307
	BEGIN
14308
 
14309
		-- check to see if the package has been processed previously
14310
		SELECT
14311
			COUNT(*)
14312
		INTO
14313
			pkgCheck
14314
		FROM
14315
			RM_PKG_ISSUES /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
14316
		WHERE
14317
			DPV_ID = pvID;
14318
 
14319
		dbms_output.put_line('pkgCheck: ' || pkgCheck );
14320
 
14321
		-- Package not already processed (no cyclic dependency) - process it
14322
		IF ( pkgCheck = 0 ) THEN
14323
 
14324
			-- check to see if this package version has any issues assigned to it
14325
			SELECT
14326
				COUNT(*)
14327
			INTO
14328
				issCnt
14329
			FROM
14330
				CQ_ISSUES i
14331
			WHERE
14332
				i.PV_ID = pvID;
14333
 
14334
			dbms_output.put_line('issCnt: ' || issCnt );
14335
 
14336
			-- Always enter a marker row into the table even if there are no issues for the package.
14337
			-- This allows us to pick up any cyclic dependencies.
14338
			IF ( issCnt > 0 ) THEN
14339
				-- get issues and insert into RM_PACKAGE_ISSUES
14340
				/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
14341
 
14342
				INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )
14343
					SELECT DISTINCT
14344
						top_pkgID		AS PKG_ID,
14345
						top_pkgName		AS PKG_NAME,
14346
						top_pvID		AS PV_ID,
14347
						top_pkgVer		AS PKG_VERSION,
14348
						pv.PV_ID		AS DPV_ID,
14349
						p.PKG_NAME		AS DPKG_NAME,
14350
						pv.PKG_VERSION	AS DPKG_VERSION,
14351
						ci.ISS_DB,
14352
						ci.ISS_ID
14353
					FROM
14354
						PACKAGE_VERSIONS pv
14355
							JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
14356
							JOIN CQ_ISSUES ci ON pv.PV_ID = ci.PV_ID
14357
					WHERE
14358
						pv.PV_ID = pvID;
14359
 
14360
			ELSE
14361
				-- get the dpkg details - there will always be a row returned here
14362
				SELECT
14363
					p.PKG_NAME
14364
				INTO
14365
					dpkgName
14366
				FROM
14367
					PACKAGE_VERSIONS pv
14368
						JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
14369
				WHERE
14370
	   				 pv.PV_ID = pvID;
14371
 
14372
				SELECT
14373
					pv.PKG_VERSION
14374
				INTO
14375
					dpkgVersion
14376
				FROM
14377
					PACKAGE_VERSIONS pv
14378
				WHERE
14379
	   				 pv.PV_ID = pvID;
14380
 
14381
				-- enter a marker row
14382
				/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
14383
				INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )
14384
				VALUES (
14385
					top_pkgID,
14386
					top_pkgName,
14387
					top_pvID,
14388
					top_pkgVer,
14389
					pvID,
14390
					dpkgName,
14391
					dpkgVersion,
14392
					NULL,
14393
					NULL );
14394
 
14395
			END IF;
14396
 
14397
			-- If this package version has dependencies then recurse
14398
			SELECT
14399
				COUNT(*)
14400
			INTO
14401
				depCheck
14402
			FROM
14403
				PACKAGE_DEPENDENCIES
14404
			WHERE
14405
				PV_ID = pvID;
14406
 
14407
			IF ( depCheck > 0 ) THEN
14408
				-- get dependencies and call this function recursively for each one
14409
				FOR dep_rec IN  dep_packs_cur
14410
				LOOP
14411
					InsertIssuesForDepends( dep_rec.DPV_ID, top_pkgID, top_pkgName, top_pvID, top_pkgVer );
14412
				END LOOP;
14413
 
14414
			END IF;
14415
 
14416
		END IF;
14417
 
14418
	/*EXCEPTION
14419
		WHEN OTHERS THEN
14420
			no exception handling required
14421
	*/
14422
	END;
14423
 
14424
END Rm_Issues;
4040 dpurdie 14425
 
1374 dpurdie 14426
/
4040 dpurdie 14427
--------------------------------------------------------
14428
--  DDL for Procedure ADD_AUTOBUILD_FAILURE_INFO
14429
--------------------------------------------------------
14430
set define off;
14431
 
5172 dpurdie 14432
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_AUTOBUILD_FAILURE_INFO" (
1373 dpurdie 14433
   nprojid     IN   NUMBER,
14434
   nviewid     IN   NUMBER,
14435
   suserlist   IN   VARCHAR2
14436
)
14437
IS
14438
   groupid   NUMBER;
14439
/******************************************************************************
14440
   NAME:       ADD_AUTOBUILD_FAILURE
14441
   PURPOSE:
14442
 
14443
   REVISIONS:
14444
   Ver        Date        Author           Description
14445
   ---------  ----------  ---------------  ------------------------------------
14446
   1.0        11/04/2006   Rupesh Solanki Created this procedure.
14447
 
14448
   NOTES:
14449
 
14450
   Automatically available Auto Replace Keywords:
14451
      Object Name:     ADD_AUTOBUILD_FAILURE
14452
      Sysdate:         11/04/2006
14453
      Date and Time:   11/04/2006, 9:28:28 AM, and 11/04/2006 9:28:28 AM
14454
      Username:         (set in TOAD Options, Procedure Editor)
14455
      Table Name:       (set in the "New PL/SQL Object" dialog)
14456
 
14457
******************************************************************************/
14458
BEGIN
14459
   BEGIN
14460
      SELECT group_email_id
14461
        INTO groupid
14462
        FROM autobuild_failure
14463
       WHERE proj_id = nprojid AND view_id = nviewid;
14464
   EXCEPTION
14465
      WHEN NO_DATA_FOUND
14466
      THEN
14467
         --  Create Next Sequence Id ---
14468
         SELECT seq_group_email_id.NEXTVAL
14469
           INTO groupid
14470
           FROM DUAL;
14471
 
14472
         INSERT INTO autobuild_failure
14473
                     (group_email_id, proj_id, view_id
14474
                     )
14475
              VALUES (groupid, nprojid, nviewid
14476
                     );
14477
   END;
14478
 
14479
   add_view_members (groupid, suserlist);
14480
END add_autobuild_failure_info;
4040 dpurdie 14481
 
1374 dpurdie 14482
/
4040 dpurdie 14483
--------------------------------------------------------
14484
--  DDL for Procedure ADD_COMPONENT
14485
--------------------------------------------------------
14486
set define off;
14487
 
5172 dpurdie 14488
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_COMPONENT" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE,
3959 dpurdie 14489
	   	  		  						  	sFileName IN RELEASE_COMPONENTS.FILE_NAME%TYPE,
14490
											sFilePath IN RELEASE_COMPONENTS.FILE_PATH%TYPE DEFAULT NULL,
14491
											nByteSize IN RELEASE_COMPONENTS.BYTE_SIZE%TYPE,
14492
											sCRCcksum IN RELEASE_COMPONENTS.CRC_CKSUM%TYPE DEFAULT NULL,
14493
											sCRCmodcrc IN RELEASE_COMPONENTS.CRC_MODCRC%TYPE DEFAULT NULL
14494
                                           ) IS
14495
/* ---------------------------------------------------------------------------
14496
    Version: 3.0.0
14497
   --------------------------------------------------------------------------- */
1373 dpurdie 14498
 
14499
 
14500
BEGIN
14501
 
3959 dpurdie 14502
	 --- Insert into RELEASE_COMPONENTS
14503
	 INSERT INTO RELEASE_COMPONENTS ( PV_ID, FILE_NAME, FILE_PATH, BYTE_SIZE, CRC_CKSUM, CRC_MODCRC )
14504
	 VALUES ( nPvId, sFileName, sFilePath, nByteSize, sCRCcksum, sCRCmodcrc  );
1373 dpurdie 14505
 
14506
 
3959 dpurdie 14507
 
14508
 
14509
END Add_Component;
4040 dpurdie 14510
 
1374 dpurdie 14511
/
4040 dpurdie 14512
--------------------------------------------------------
14513
--  DDL for Procedure ADD_PACKAGE_INTEREST
14514
--------------------------------------------------------
14515
set define off;
14516
 
5384 dpurdie 14517
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_PACKAGE_INTEREST" (
14518
    nProjId    IN PROJECTS.PROJ_ID%TYPE,
14519
    nPkgIdList IN VARCHAR2,
14520
    nUserId    IN NUMBER )
14521
IS
14522
  npkgidcollector relmgr_number_tab_t := relmgr_number_tab_t ();
14523
  nPkgId        NUMBER;
14524
  alreadyExists NUMBER;
1373 dpurdie 14525
BEGIN
5384 dpurdie 14526
  npkgidcollector := in_list_number2 (nPkgIdList);
14527
  FOR i IN 1..npkgidcollector.COUNT
14528
  LOOP
14529
    nPkgId := npkgidcollector(i);
14530
    --- Ensure it doesn't already exist
14531
    SELECT COUNT(*)
14532
    INTO alreadyExists
14533
    FROM PACKAGE_INTEREST
14534
    WHERE USER_ID      = nUserId
14535
    AND PKG_ID         = nPkgId
14536
    AND PROJ_ID        = nProjId;
14537
 
14538
    IF ( alreadyExists = 0 ) THEN
14539
      --- Insert into PACKAGE_INTEREST TABLE
14540
      INSERT
14541
        INTO PACKAGE_INTEREST (PROJ_ID, PKG_ID, USER_ID )
14542
        VALUES (nProjId, nPkgId, nUserId );
14543
    END IF;
14544
  END LOOP;
3959 dpurdie 14545
END ADD_PACKAGE_INTEREST;
4040 dpurdie 14546
 
3959 dpurdie 14547
/
4040 dpurdie 14548
--------------------------------------------------------
14549
--  DDL for Procedure ADD_RUNTIME_DEPENDENCY
14550
--------------------------------------------------------
14551
set define off;
14552
 
5172 dpurdie 14553
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_RUNTIME_DEPENDENCY" ( NNpv_id IN NUMBER,
3959 dpurdie 14554
                                                     SSrtd_name IN PACKAGES.pkg_name%TYPE,
14555
                                                     SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
14556
                                                     NNuser_id IN NUMBER
14557
                                                    ) IS
1373 dpurdie 14558
/* ---------------------------------------------------------------------------
3959 dpurdie 14559
    Version: 3.1
1373 dpurdie 14560
   --------------------------------------------------------------------------- */
14561
 
3959 dpurdie 14562
    retRTD_ID NUMBER;
14563
 
14564
	CURSOR rtd_cur IS
14565
        SELECT rtd_id FROM runtime_dependencies WHERE pv_id = NNpv_id AND rtd_id = retRTD_ID;
14566
    rtd_rec rtd_cur%ROWTYPE;
14567
 
1373 dpurdie 14568
BEGIN
3959 dpurdie 14569
    --- Seed database with package_name and version if required ---
14570
    Seed_Package_Names_Versions ( SSrtd_name, SSrtd_version, NNuser_id, retRTD_ID );
1373 dpurdie 14571
 
3959 dpurdie 14572
	OPEN rtd_cur;
14573
    FETCH rtd_cur INTO rtd_rec;
1373 dpurdie 14574
 
3959 dpurdie 14575
    IF rtd_cur%NOTFOUND
14576
    THEN
14577
		/* Make sure it does not exists already as runtime dependency */
1373 dpurdie 14578
 
3959 dpurdie 14579
		--- Add new Runtime Dependency ---
14580
	    INSERT INTO runtime_dependencies ( pv_id, rtd_id, mod_date, mod_user )
14581
	    VALUES (  NNpv_id, retRTD_ID, ORA_SYSDATE , NNuser_id );
1373 dpurdie 14582
 
3959 dpurdie 14583
    	/* LOG ACTION */
14584
        Log_Action ( NNpv_id, 'runtime_add', NNuser_id,
14585
    			     'Runtime package: '|| SSrtd_name ||' '|| SSrtd_version );
14586
 
14587
	END IF;
14588
 
14589
 
14590
END Add_Runtime_Dependency;
4040 dpurdie 14591
 
1374 dpurdie 14592
/
4040 dpurdie 14593
--------------------------------------------------------
14594
--  DDL for Procedure ADD_VIEW_MEMBERS
14595
--------------------------------------------------------
14596
set define off;
14597
 
5172 dpurdie 14598
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_VIEW_MEMBERS" (nGroupId IN NUMBER, sUserList IN VARCHAR2) IS
3959 dpurdie 14599
 
14600
/******************************************************************************
14601
   NAME:       ADD_VIEW_MEMBERS
14602
   PURPOSE:    
14603
 
14604
   REVISIONS:
14605
   Ver        Date        Author           Description
14606
   ---------  ----------  ---------------  ------------------------------------
14607
   1.0        11/04/2006          1. Created this procedure.
14608
 
14609
   NOTES:
14610
 
14611
   Automatically available Auto Replace Keywords:
14612
      Object Name:     ADD_VIEW_MEMBERS
14613
      Sysdate:         11/04/2006
14614
      Date and Time:   11/04/2006, 9:52:58 AM, and 11/04/2006 9:52:58 AM
14615
      Username:         (set in TOAD Options, Procedure Editor)
14616
      Table Name:       (set in the "New PL/SQL Object" dialog)
14617
 
14618
******************************************************************************/
14619
CURSOR user_cur IS
14620
	SELECT u.USER_ID
14621
	  FROM USERS u
14622
	 WHERE u.USER_ID IN (
14623
	 	   			   	SELECT * 
14624
						  FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserList ) AS RELMGR_NUMBER_TAB_t ) FROM dual ) 
14625
						);
14626
user_rec user_cur%ROWTYPE;
14627
 
14628
 
14629
BEGIN
14630
 
14631
	 OPEN user_cur;
14632
	 FETCH user_cur INTO user_rec;
14633
 
14634
	 WHILE user_cur%FOUND
14635
	 LOOP
14636
	 	 INSERT INTO MEMBERS_GROUP (GROUP_EMAIL_ID, USER_ID)
14637
	 	 VALUES ( nGroupId, user_rec.USER_ID);
14638
 
14639
	 	 FETCH user_cur INTO user_rec;	 
14640
	 END LOOP;	 
14641
 
14642
 
14643
 
14644
END ADD_VIEW_MEMBERS;
4040 dpurdie 14645
 
1374 dpurdie 14646
/
4040 dpurdie 14647
--------------------------------------------------------
14648
--  DDL for Procedure BASIC_CLONE
14649
--------------------------------------------------------
14650
set define off;
14651
 
5172 dpurdie 14652
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."BASIC_CLONE" ( nFROMpv_id IN NUMBER,
1373 dpurdie 14653
                        nTOpv_id IN NUMBER,
14654
                        nRtag_id IN NUMBER,
14655
                        nUser_id IN NUMBER,
14656
                        nTOpkg_id IN NUMBER DEFAULT NULL,
14657
                        enumISSUES_STATE_IMPORTED IN NUMBER DEFAULT NULL ) IS
14658
 
14659
   FromVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
14660
   major NUMBER;
14661
   minor NUMBER;
14662
   patch NUMBER;
14663
   buildn NUMBER;
14664
   from_vcs_type_id NUMBER;
14665
BEGIN
14666
------------------------------ Version Control System ------------------------------------------
14667
   SELECT vcs_type_id
14668
      INTO from_vcs_type_id
14669
      FROM package_versions WHERE pv_id = nFROMpv_id;
14670
 
14671
   UPDATE package_versions
14672
      SET vcs_type_id = from_vcs_type_id
14673
      WHERE pv_id = nTOpv_id;
14674
------------------------------------- Limits ---------------------------------------------------
14675
   select major_limit, minor_limit, patch_limit, build_number_limit
14676
   into major, minor, patch, buildn
14677
   from package_versions where pv_id=nFROMpv_id;
14678
    UPDATE package_versions SET
14679
           major_limit = major,
14680
           minor_limit = minor,
14681
           patch_limit = patch,
14682
           build_number_limit = buildn
14683
     WHERE PV_ID = nTOpv_id;
14684
------------------------------------- Clone Dependencies ---------------------------------------------------
14685
   IF NOT nRtag_id IS NULL
14686
   THEN
14687
      -- Auto Update Dependencies --
14688
      INSERT INTO PACKAGE_DEPENDENCIES
14689
           SELECT nTOpv_id AS pv_id,
14690
                  DECODE(nUser_id,
14691
                         frc.modifier_id,
14692
                         frc.pv_id,
14693
                         DECODE(frc.dlocked,
14694
                                'Y',
14695
                                frc.pv_id,
14696
                                dep.dpv_id)
14697
                         ) AS dpv_id,
14698
                  nTOpkg_id AS pkg_id,
14699
                  dep.dpkg_id,
14700
                  dep.build_type,
14701
                  dep.display_order
14702
             FROM PACKAGE_DEPENDENCIES dep,
14703
                  PACKAGE_VERSIONS pv,
14704
                  (
14705
                  /* Full Release Contents used for reference*/
14706
                  SELECT rpv.pv_id, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext, rpv.modifier_id, rpv.dlocked
14707
                  FROM RELEASE_CONTENT rel, PACKAGE_VERSIONS rpv
14708
                  WHERE rel.pv_id = rpv.pv_id AND rtag_id = nRtag_id
14709
                  ) frc
14710
            WHERE dep.pv_id = nFROMpv_id
14711
              AND dep.dpv_id = pv.pv_id
14712
              AND pv.pkg_id = frc.pkg_id(+)
14713
              AND NVL(pv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+);
14714
   ELSE
14715
      -- Clone Dependencies --
14716
      INSERT INTO PACKAGE_DEPENDENCIES
14717
           SELECT nTOpv_id         AS pv_id,
14718
                  dep.dpv_id,
14719
                  nTOpkg_id        AS pkg_id,
14720
                  dep.dpkg_id,
14721
                  dep.build_type,
14722
                  dep.display_order
14723
             FROM PACKAGE_DEPENDENCIES dep
14724
            WHERE dep.pv_id = nFROMpv_id;
14725
 
14726
   END IF;
14727
 
14728
----------------------------------------- Clone Issues -------------------------------------------------------
14729
   IF enumISSUES_STATE_IMPORTED IS NULL
14730
   THEN
14731
        /* All Issues */
14732
       INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
14733
            SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
14734
              FROM CQ_ISSUES
14735
             WHERE pv_id = nFROMpv_id;
14736
   ELSE
14737
       /* Outstanding Issues Only */
14738
       INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
14739
            SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
14740
              FROM CQ_ISSUES
14741
             WHERE pv_id = nFROMpv_id
14742
               AND iss_state = enumISSUES_STATE_IMPORTED;
14743
   END IF;
14744
 
14745
------------------------------------ Clone Runtime Dependencies -----------------------------------------------
14746
   INSERT INTO RUNTIME_DEPENDENCIES (pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user)
14747
       SELECT nTOpv_id AS pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user
14748
       FROM RUNTIME_DEPENDENCIES WHERE pv_id = nFROMpv_id;
14749
 
14750
--------------------------------------- Clone Additional Notes ------------------------------------------------
14751
   INSERT INTO ADDITIONAL_NOTES ( NOTE_ID, PV_ID, NOTE_TITLE, NOTE_BODY, MOD_DATE, MOD_USER )
14752
        SELECT an.NOTE_ID,
14753
               nTOpv_id AS PV_ID,
14754
               an.NOTE_TITLE,
14755
               an.NOTE_BODY,
14756
               an.MOD_DATE,
14757
               an.MOD_USER
14758
          FROM ADDITIONAL_NOTES an
14759
         WHERE an.PV_ID = nFROMpv_id;
14760
 
14761
-------------------------------------------- Clone Unit Tests -------------------------------------------------
14762
   -- Clone only Automatic unit tests --
14763
   INSERT INTO UNIT_TESTS (
14764
                           TEST_ID,
14765
                           PV_ID,
14766
                           TEST_TYPES_FK,
14767
                           TEST_SUMMARY,
14768
                           COMPLETION_DATE,
14769
                           COMPLETED_BY,
14770
                           RESULTS_URL,
14771
                           RESULTS_ATTACHMENT_NAME,
14772
                           NUMOF_TEST
14773
                          )
14774
        SELECT ut.TEST_ID,
14775
               nTOpv_id AS PV_ID,
14776
               ut.TEST_TYPES_FK,
14777
               ut.TEST_SUMMARY,
14778
               Ora_Sysdate AS COMPLETION_DATE,
14779
               nUser_id AS COMPLETED_BY,
14780
               ut.RESULTS_URL,
14781
               ut.RESULTS_ATTACHMENT_NAME,
14782
               ut.NUMOF_TEST
14783
          FROM UNIT_TESTS ut
14784
         WHERE ut.PV_ID = nFROMpv_id
14785
           AND ut.TEST_TYPES_FK IN ( 5, 7 );
14786
 
14787
    -- Clone only Interactive Unit Tests --
14788
    INSERT INTO UNIT_TESTS (
14789
                            TEST_ID,
14790
                            PV_ID,
14791
                            TEST_TYPES_FK,
14792
                            TEST_SUMMARY
14793
                           )
14794
       SELECT ut.TEST_ID,
14795
              nTOpv_id AS PV_ID,
14796
              ut.TEST_TYPES_FK,
14797
              ut.TEST_SUMMARY
14798
         FROM UNIT_TESTS ut
14799
        WHERE ut.PV_ID = nFROMpv_id
14800
          AND ut.TEST_TYPES_FK IN (6);
14801
 
14802
-------------------------------------------- Clone Package Documents ------------------------------------------
14803
   INSERT INTO PACKAGE_DOCUMENTS ( PV_ID, TEST_ID, DOC_NUM, DOC_ID, IS_LATEST )
14804
        SELECT nTOpv_id AS PV_ID,
14805
               pd.test_id,
14806
               pd.doc_num,
14807
               pd.doc_id,
14808
               pd.IS_LATEST
14809
          FROM PACKAGE_DOCUMENTS pd
14810
         WHERE pd.PV_ID = nFROMpv_id;
14811
 
14812
-------------------------------------------- Clone Build Environments -----------------------------------------
14813
    INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID, BUILD_TYPE )
14814
    SELECT nTOpv_id AS PV_ID,
14815
           pkgbe.BE_ID,
14816
           pkgbe.BUILD_TYPE
14817
      FROM PACKAGE_BUILD_ENV pkgbe
14818
     WHERE pkgbe.PV_ID = nFROMpv_id;
14819
---------------------------------------------Clone Package Build Info------------------------------------------
14820
    INSERT INTO PACKAGE_BUILD_INFO (PV_ID, BM_ID, BSA_ID)
14821
    SELECT nTOpv_id AS PV_ID,
14822
           pkgbinfo.BM_ID,
14823
           pkgbinfo.BSA_ID
14824
      FROM PACKAGE_BUILD_INFO pkgbinfo
14825
     WHERE pkgbinfo.PV_ID = nFROMpv_id;
14826
---------------------------------------------Clone Package Version Processes-----------------------------------
14827
    INSERT INTO PACKAGE_PROCESSES ( PV_ID, PROC_ID )
14828
    SELECT nTOpv_id AS PV_ID,
14829
           pp.PROC_ID
14830
      FROM PACKAGE_PROCESSES pp
14831
     WHERE pp.PV_ID = nFROMpv_id;
14832
---------------------------------------------Clone Licencing Associations-----------------------------------
14833
    PK_LICENCING.CLONE_LICENCING(nFROMpv_id, nTOpv_id, nUser_id);
14834
---------------------------------------------------------------------------------------------------------------
14835
 
14836
    /* LOG ACTION */
14837
    SELECT pv.PKG_VERSION INTO FromVersion
14838
      FROM PACKAGE_VERSIONS pv
14839
     WHERE pv.PV_ID = nFROMpv_id;
14840
 
14841
    Log_Action ( nTOpv_id, 'clone_from', nUser_id,
14842
                 'Details cloned from: '|| FromVersion );
14843
 
14844
---------------------------------------------------------------------------------------------------------------
14845
 
14846
END Basic_Clone;
4040 dpurdie 14847
 
1374 dpurdie 14848
/
4040 dpurdie 14849
--------------------------------------------------------
14850
--  DDL for Procedure BUILD_TREE
14851
--------------------------------------------------------
14852
set define off;
14853
 
5172 dpurdie 14854
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."BUILD_TREE" ( nRtag_id IN NUMBER,
3959 dpurdie 14855
	   	  		  					     retSessionNum OUT NUMBER ) IS
14856
 
1373 dpurdie 14857
/* ---------------------------------------------------------------------------
3959 dpurdie 14858
    Version: 3.0.0
1373 dpurdie 14859
   --------------------------------------------------------------------------- */
3959 dpurdie 14860
    rowCnt 			NUMBER := 0;						-- Iterations counter
14861
    iteration 		NUMBER := 1;                  -- Maximum number of iterations allowed.
14862
    maxIterations 	NUMBER := 50;      	  	-- This will prevent infinite loops if cyrcular dependencies are found
14863
	UP_THE_TREE 	CONSTANT NUMBER DEFAULT 1;
14864
	DOWN_THE_TREE 	CONSTANT NUMBER DEFAULT -1;
14865
    sessionNum 		NUMBER;
14866
	levelNum		NUMBER;
14867
 
14868
BEGIN
14869
    SELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;
14870
 
14871
	/*
14872
	||	   Start UP THE TREE
14873
	*/
14874
 
14875
 
14876
	/* Packages with no dependencies */    
14877
    INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
14878
		SELECT sessionNum AS SESSION_NUM,
14879
			   iteration AS LEVEL_NUM,
14880
			   UP_THE_TREE AS DIRECTION,
14881
			   rc.pv_id, pv.pkg_id, pv.v_ext
14882
		  FROM release_content rc,
14883
		  	   package_versions pv
14884
		 WHERE rc.rtag_id = nRtag_id
14885
		   AND rc.pv_id = pv.pv_id
14886
		 MINUS
14887
		SELECT sessionNum AS SESSION_NUM, 
14888
			   iteration AS LEVEL_NUM,
14889
			   UP_THE_TREE AS DIRECTION,
14890
			   dep.pv_id, pv.pkg_id, pv.v_ext
14891
		  FROM package_dependencies dep,
14892
		  	   package_versions pv
14893
		 WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtag_id )
14894
		   AND dep.pv_id = pv.pv_id;
14895
 
14896
 
14897
	/* Browse UP the build tree */	   
14898
	iteration := iteration + 1;
14899
    LOOP
14900
 
14901
		INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
14902
			SELECT DISTINCT 
14903
			       sessionNum AS SESSION_NUM,
14904
			       iteration AS LEVEL_NUM,
14905
				   UP_THE_TREE AS DIRECTION, 
14906
				   rdep.pv_id, rdep.pkg_id, rdep.v_ext
14907
			  FROM (  
14908
			        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
14909
			          FROM package_dependencies dep,
14910
			               release_content rc,
14911
						   package_versions pv,
14912
						   package_versions dpv
14913
			         WHERE dep.pv_id = rc.pv_id
14914
			           AND rc.rtag_id = nRtag_id
14915
					   AND dep.pv_id = pv.pv_id
14916
					   AND dep.dpv_id = dpv.pv_id
14917
					) rdep,
14918
					temp_tree_browse ttb
14919
			 WHERE rdep.dpkg_id  = ttb.pkg_id
14920
			   AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext,'|LINK_A_NULL|')
14921
			   AND ttb.SESSION_NUM = sessionNum
14922
			   AND ttb.LEVEL_NUM = iteration - 1	
14923
			MINUS
14924
			/* Packages with all depencencies NOT matched */  
14925
			SELECT DISTINCT 
14926
			       sessionNum AS SESSION_NUM,
14927
			       iteration AS LEVEL_NUM, 
14928
				   UP_THE_TREE AS DIRECTION,
14929
				   rdep.pv_id, rdep.pkg_id, rdep.v_ext
14930
			  FROM (  
14931
			        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
14932
			          FROM package_dependencies dep,
14933
			               release_content rc,
14934
						   package_versions pv,
14935
						   package_versions dpv
14936
			         WHERE dep.pv_id = rc.pv_id
14937
			           AND rc.rtag_id = nRtag_id
14938
					   AND dep.pv_id = pv.pv_id
14939
					   AND dep.dpv_id = dpv.pv_id
14940
					) rdep,
14941
					(
14942
					 SELECT tb.*
14943
					   FROM temp_tree_browse tb
14944
					  WHERE tb.SESSION_NUM = sessionNum
14945
					) ttb
14946
			 WHERE rdep.dpkg_id  = ttb.pkg_id (+)
14947
			   AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext (+),'|LINK_A_NULL|')
14948
			   AND ttb.SESSION_NUM IS NULL;
14949
 
14950
		rowCnt := SQL%ROWCOUNT;
14951
		IF rowCnt > 0 THEN
14952
           iteration := iteration + 1;
14953
		END IF;
14954
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
14955
    END LOOP;
14956
 
14957
	/*---------------------------------------------------------------------------------------------------------------------*/
14958
 
14959
	/*     Check for unresolved dependencies
14960
	||  
14961
	*/
14962
	/* UNRESOLVED */
14963
	 SELECT COUNT(*) INTO rowCnt
14964
	   FROM (
14965
			 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
14966
			  FROM release_content rc,
14967
			  	   package_versions pv
14968
			 WHERE rc.rtag_id = nRtag_id
14969
			   AND rc.pv_id = pv.pv_id	   
14970
			MINUS
14971
			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
14972
			  FROM temp_tree_browse ttb
14973
			 WHERE ttb.session_num = sessionNum
14974
			);
14975
 
14976
 
14977
 
14978
	 IF rowCnt > 0 
14979
	 THEN
14980
	 	 /*     Circular dependencies detected.
14981
		 ||     Try to resolve build order from the top now.
14982
		 ||		Start DOWN THE TREE
14983
		 */
14984
 
14985
		iteration := 0; 
14986
		 /* Top Level packages */	
14987
		INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )	   
14988
			SELECT sessionNum AS SESSION_NUM,
14989
			       iteration AS LEVEL_NUM,
14990
				   DOWN_THE_TREE AS DIRECTION,
14991
				   pv.pv_id, pv.pkg_id, pv.v_ext
14992
			  FROM (		   
14993
					/* Packages no one depends on ( Top level packages )*/
14994
					( 
14995
					/* All parents*/ 
14996
					SELECT pv.pkg_id, pv.v_ext
14997
			          FROM package_dependencies dep,
14998
			               release_content rc,
14999
						   package_versions pv
15000
			         WHERE dep.pv_id = rc.pv_id
15001
			           AND rc.rtag_id = nRtag_id
15002
					   AND dep.pv_id = pv.pv_id
15003
					 MINUS
15004
					 /* All children */
15005
					SELECT dpv.pkg_id, dpv.v_ext
15006
			          FROM package_dependencies dep,
15007
			               release_content rc,
15008
						   package_versions dpv
15009
			         WHERE dep.pv_id = rc.pv_id
15010
			           AND rc.rtag_id = nRtag_id
15011
					   AND dep.dpv_id = dpv.pv_id
15012
					 ) 
15013
					 MINUS
15014
					/* Packages with resolved dependencies from UP THE TREE */ 
15015
					SELECT ttb.pkg_id, ttb.v_ext
15016
					  FROM temp_tree_browse ttb
15017
					 WHERE ttb.session_num = sessionNum
15018
				  ) tpkg,
15019
				  package_versions pv,
15020
				  release_content rc
15021
			WHERE rc.rtag_id = nRtag_id
15022
			  AND rc.pv_id = pv.pv_id
15023
			  AND tpkg.pkg_id = pv.pkg_id
15024
			  AND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');
15025
 
15026
 
15027
		 /* Keep taking packages which no one depende on */			  
15028
		 iteration := iteration - 1;  
15029
		 LOOP	  
15030
			   INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
15031
					SELECT sessionNum AS SESSION_NUM,
15032
					       iteration AS LEVEL_NUM,
15033
					       DOWN_THE_TREE AS DIRECTION,
15034
					       pv.pv_id, pv.pkg_id, pv.v_ext
15035
					  FROM (		   
15036
					 	/* All Unresolved */
15037
					 	(
15038
					 	SELECT pv.pkg_id, pv.v_ext
15039
					 	  FROM release_content rc,
15040
					 	  	   package_versions pv
15041
					 	 WHERE rc.rtag_id = nRtag_id
15042
					 	   AND rc.pv_id = pv.pv_id	   
15043
					 	MINUS
15044
					 	SELECT ttb.pkg_id, ttb.v_ext
15045
					 	  FROM temp_tree_browse ttb
15046
					 	 WHERE ttb.session_num = sessionNum
15047
					 	)
15048
					 	 MINUS
15049
					 	(  
15050
					 	 /* Children of Unresolved */  
15051
					 	SELECT dpv.pkg_id, dpv.V_EXT
15052
					 	  FROM (
15053
					 			SELECT pv.pv_id, pv.pkg_id, pv.v_ext
15054
					 			  FROM release_content rc,
15055
					 			  	   package_versions pv
15056
					 			 WHERE rc.rtag_id = nRtag_id
15057
					 			   AND rc.pv_id = pv.pv_id	   
15058
					 			MINUS
15059
					 			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
15060
					 			  FROM temp_tree_browse ttb
15061
					 			 WHERE ttb.session_num = sessionNum
15062
					 		   ) unr,
15063
					 		   package_dependencies dep,
15064
					 		   package_versions dpv
15065
					 	 WHERE unr.pv_id = dep.pv_id
15066
					 	   AND dep.dpv_id = dpv.pv_id
15067
					 	 )  
15068
					   ) tpkg,
15069
					   package_versions pv,
15070
					   release_content rc
15071
					WHERE rc.rtag_id = nRtag_id
15072
					  AND rc.pv_id = pv.pv_id
15073
					  AND tpkg.pkg_id = pv.pkg_id
15074
					  AND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');
15075
 
15076
            rowCnt := SQL%ROWCOUNT;
15077
        	IF rowCnt > 0 THEN
15078
	           iteration := iteration - 1;
15079
			END IF;
15080
            EXIT WHEN (rowCnt < 1);
15081
     	END LOOP;
15082
 
15083
	 END IF;
15084
 
15085
 
15086
	/*---------------------------------------------------------------------------------------------------------------------*/
15087
 
15088
	/* 
15089
	|| 	 Save results from temp table
15090
	*/	
15091
	/* Clean up build_order table */
15092
	DELETE FROM BUILD_ORDER WHERE rtag_id = nRtag_id;
15093
 
15094
	/* Save UP THE TREE */
15095
	INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )
15096
		SELECT nRtag_id AS rtag_id,
15097
			   ttb.level_num AS step_num, 
15098
			   ttb.PV_ID
15099
		  FROM temp_tree_browse ttb
15100
		 WHERE ttb.session_num = sessionNum
15101
		   AND ttb.direction = UP_THE_TREE;	
15102
 
15103
	/*Get last step_num */
15104
	SELECT MAX(ttb.level_num) + 1 INTO levelNum
15105
	FROM temp_tree_browse ttb WHERE ttb.session_num = sessionNum AND ttb.DIRECTION = UP_THE_TREE;
15106
 
15107
	/* UNRESOLVED */
15108
	 SELECT COUNT(*) INTO rowCnt
15109
	   FROM (
15110
			 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
15111
			  FROM release_content rc,
15112
			  	   package_versions pv
15113
			 WHERE rc.rtag_id = nRtag_id
15114
			   AND rc.pv_id = pv.pv_id	   
15115
			MINUS
15116
			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
15117
			  FROM temp_tree_browse ttb
15118
			 WHERE ttb.session_num = sessionNum
15119
			);
15120
 
15121
 
15122
	IF rowCnt > 0
15123
	THEN
15124
		/* Save unresolved packages */
15125
 		INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID, UNRESOLVED )
15126
		    SELECT  nRtag_id AS rtag_id,
15127
				    levelNum AS step_num, 
15128
				    upv.PV_ID,
15129
					'Y' AS UNRESOLVED
15130
			   FROM (
15131
					 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
15132
					  FROM release_content rc,
15133
					  	   package_versions pv
15134
					 WHERE rc.rtag_id = nRtag_id
15135
					   AND rc.pv_id = pv.pv_id	   
15136
					MINUS
15137
					SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
15138
					  FROM temp_tree_browse ttb
15139
					 WHERE ttb.session_num = sessionNum
15140
					) upv;
15141
	END IF;	
15142
 
15143
	/* Save DOWN THE TREE */
15144
	levelNum := 1000;
15145
	INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )
15146
		SELECT nRtag_id AS rtag_id,
15147
			   levelNum + ttb.level_num  AS step_num, 
15148
			   ttb.PV_ID
15149
		  FROM temp_tree_browse ttb
15150
		 WHERE ttb.session_num = sessionNum
15151
		   AND ttb.direction = DOWN_THE_TREE;
15152
 
15153
 
15154
	/*---------------------------------------------------------------------------------------------------------------------*/
15155
 
15156
	/* Clean up temp table */
15157
	DELETE FROM TEMP_TREE_BROWSE WHERE session_num = sessionNum;
15158
 
15159
	retSessionNum := sessionNum;
15160
END Build_Tree;
4040 dpurdie 15161
 
3959 dpurdie 15162
/
4040 dpurdie 15163
--------------------------------------------------------
15164
--  DDL for Procedure CHANGE_PACKAGE_STATE
15165
--------------------------------------------------------
15166
set define off;
15167
 
5172 dpurdie 15168
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHANGE_PACKAGE_STATE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 15169
											 nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS
15170
/* ---------------------------------------------------------------------------
15171
    Version: 4.0
15172
   --------------------------------------------------------------------------- */
1373 dpurdie 15173
 
15174
BEGIN
15175
 
3959 dpurdie 15176
    -- Unlock Package
15177
    UPDATE RELEASE_CONTENT rc SET
15178
    	rc.PKG_STATE = 0
15179
    WHERE rc.PV_ID = nPvId
15180
	AND rc.RTAG_ID = nRtagId;
1373 dpurdie 15181
 
3959 dpurdie 15182
    /* LOG ACTION */
15183
   /*	Log_Action ( nPvId, 'unlock_package', nUserId );*/
1373 dpurdie 15184
 
3959 dpurdie 15185
END Change_Package_State;
4040 dpurdie 15186
 
1374 dpurdie 15187
/
4040 dpurdie 15188
--------------------------------------------------------
15189
--  DDL for Procedure CHANGE_RELEASE_MODE
15190
--------------------------------------------------------
15191
set define off;
15192
 
5172 dpurdie 15193
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHANGE_RELEASE_MODE" ( nModeCode IN NUMBER, nRtagId IN NUMBER, UserId IN NUMBER ) IS
3959 dpurdie 15194
/* ---------------------------------------------------------------------------
15195
    Version: 3.0.0
15196
   --------------------------------------------------------------------------- */
1373 dpurdie 15197
 
3959 dpurdie 15198
	cMode CHAR(1) := NULL;  
15199
	nProjId NUMBER; 
1373 dpurdie 15200
 
15201
BEGIN
3959 dpurdie 15202
 
1373 dpurdie 15203
 
3959 dpurdie 15204
	/*
15205
	Author: Rupesh Solanki
15206
	Modified: 24th October 2006
15207
	Reason: Added the archive mode state into Release Manager 
15208
	||	1 - Open Mode
15209
	||	2 - Restrictive Mode
15210
	||	3 - Closed Mode
15211
	||	4 - CCB Mode
15212
	||	5 - Archive Mode
5384 dpurdie 15213
  ||  6 - Preserve Mode
3959 dpurdie 15214
	*/	
15215
	-- Get project Id
15216
	SELECT rt.PROJ_ID INTO nProjId
15217
	  FROM RELEASE_TAGS rt
15218
	 WHERE rt.RTAG_ID = nRtagId; 
15219
 
15220
	IF nModeCode = 1 THEN
15221
		-- Open Mode
15222
		cMode := 'N';
15223
 
15224
		/* LOG ACTION */
15225
   		Log_Project_Action ( nProjId, 'set_to_open_mode', UserId, 'Release is set to Open Mode', nRtagId );
15226
 
15227
	ELSIF nModeCode = 2 THEN
15228
		-- Restrictive Mode
15229
		cMode := 'R';
15230
 
15231
		/* LOG ACTION */
15232
   		Log_Project_Action ( nProjId, 'set_to_restrictive_mode', UserId, 'Release is set to Restrictive Mode', nRtagId );
15233
 
15234
	ELSIF nModeCode = 3 THEN
15235
		-- Closed Mode
15236
		cMode := 'Y';
15237
 
15238
		/* LOG ACTION */
15239
   		Log_Project_Action ( nProjId, 'set_to_closed_mode', UserId, 'Release is set to Closed Mode', nRtagId  );
1373 dpurdie 15240
 
3959 dpurdie 15241
	ELSIF nModeCode = 4 THEN
15242
		-- CCB Mode
15243
		cMode := 'C';
15244
 
15245
		/* LOG ACTION */
15246
   		Log_Project_Action ( nProjId, 'set_to_ccb_mode', UserId, 'Release is set to CCB Mode', nRtagId  );
15247
 
15248
	ELSIF nModeCode = 5 THEN
15249
		-- Archive Mode
15250
		cMode := 'A';
15251
 
15252
		/* LOG ACTION */
15253
   		Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Archive Mode', nRtagId  );	
15254
 
5384 dpurdie 15255
  ELSIF nModeCode = 6 THEN
15256
		-- Archive Mode
15257
		cMode := 'P';
3959 dpurdie 15258
 
5384 dpurdie 15259
		/* LOG ACTION */
15260
   		Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Preserve Mode', nRtagId  );		
3959 dpurdie 15261
	END IF;
15262
 
15263
 
15264
 
15265
	-- Now update table
15266
	IF NOT cMode IS NULL THEN
15267
		UPDATE RELEASE_TAGS rt SET
4211 dpurdie 15268
		rt.OFFICIAL = cMode,
15269
    rt.OFFICIAL_STAMP = ORA_SYSDATETIME,
15270
    rt.OFFICIAL_ID = UserId
3959 dpurdie 15271
		WHERE rt.RTAG_ID = nRtagId;
15272
 
15273
	END IF;
1373 dpurdie 15274
 
15275
 
3959 dpurdie 15276
END CHANGE_RELEASE_MODE;
4040 dpurdie 15277
 
1374 dpurdie 15278
/
4040 dpurdie 15279
--------------------------------------------------------
15280
--  DDL for Procedure CHECK_NEW_PATCHES
15281
--------------------------------------------------------
15282
set define off;
15283
 
5172 dpurdie 15284
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHECK_NEW_PATCHES" (
3959 dpurdie 15285
   nrtagid   IN   release_content.rtag_id%TYPE
1373 dpurdie 15286
)
15287
IS
15288
/* ---------------------------------------------------------------------------
3959 dpurdie 15289
    Version: 3.0
1373 dpurdie 15290
   --------------------------------------------------------------------------- */
15291
BEGIN
3959 dpurdie 15292
   /*--------------- Business Rules Here -------------------*/
15293
   /*IF nRtagId NOT IN (SELECT RTAG_ID FROM RELEASE_TAGS ) THEN
15294
      RAISE_APPLICATION_ERROR (-20000, 'Please contact the person in charge of Release Manager now.' );
15295
   END IF
15296
 
15297
   /*-------------------------------------------------------*/
15298
   UPDATE release_content rc
15299
      SET rc.pkg_state = 5                          -- enumPKG_STATE_NEW_PATCH
15300
    WHERE rc.pv_id IN (
15301
             SELECT prod.pv_id
15302
               FROM (SELECT   pp.pv_id AS orig_parent_id,
15303
                              COUNT (*) AS num_of_patches
15304
                         FROM release_content rc, package_patches pp
15305
                        WHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagid
15306
                     GROUP BY pp.pv_id) orig,
15307
                    (SELECT   prodpp.pv_id, pp.pv_id AS parent_id,
15308
                              COUNT (*) AS num_of_patches
15309
                         FROM release_content rc,
15310
                              package_patches pp,
15311
                              package_dependencies dep,
15312
                              package_versions pv,
15313
                              package_patches prodpp
15314
                        WHERE rc.pv_id = pp.pv_id
15315
                          AND rc.rtag_id = nrtagid
15316
                          AND pp.patch_id = dep.dpv_id
15317
                          AND dep.pv_id = pv.pv_id
15318
                          AND pv.is_patch = 'Y'
15319
                          AND pv.dlocked = 'Y'
15320
                          AND prodpp.patch_id = dep.pv_id
15321
                     GROUP BY prodpp.pv_id, pp.pv_id) prod,
15322
                    release_content rc
15323
              WHERE orig.orig_parent_id = prod.pv_id
15324
                AND orig.num_of_patches != prod.num_of_patches
15325
                AND rc.rtag_id = nrtagid
15326
                AND rc.pv_id = prod.pv_id
15327
                AND rc.pkg_state = 0
15328
             UNION
15329
             SELECT   prodpp.pv_id
15330
                 FROM release_content rc,
15331
                      package_patches pp,
15332
                      package_dependencies dep,
1373 dpurdie 15333
                      package_versions pv,
3959 dpurdie 15334
                      package_patches prodpp
15335
                WHERE rc.pv_id = pp.pv_id
15336
                  AND rc.rtag_id = nrtagid
15337
                  AND pp.patch_id = dep.dpv_id
1373 dpurdie 15338
                  AND dep.pv_id = pv.pv_id
3959 dpurdie 15339
                  AND pv.is_patch = 'Y'
15340
                  AND pv.dlocked = 'Y'
15341
                  AND prodpp.patch_id = dep.pv_id
15342
             GROUP BY prodpp.pv_id, pp.pv_id
15343
             MINUS
15344
             SELECT   pp.pv_id
15345
                 FROM release_content rc, package_patches pp
15346
                WHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagid
15347
             GROUP BY pp.pv_id);
15348
END check_new_patches;
4040 dpurdie 15349
 
1374 dpurdie 15350
/
4040 dpurdie 15351
--------------------------------------------------------
15352
--  DDL for Procedure CLEAN_ADVISORY_RIPPLE
15353
--------------------------------------------------------
15354
set define off;
15355
 
5172 dpurdie 15356
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAN_ADVISORY_RIPPLE" (nrtagid IN NUMBER)
3959 dpurdie 15357
IS
15358
/******************************************************************************
15359
   NAME:       clean_advisory_ripple
1373 dpurdie 15360
 
3959 dpurdie 15361
   PURPOSE:    To delete entries from the advisory_ripple table based upon
15362
               an RTAG_ID only
1373 dpurdie 15363
 
3959 dpurdie 15364
               This is a tidy-up operation performed against the advisory_ripple
15365
               table, ensuring that the table does not have rtag_id/pv_id
15366
               combinations that cannot be found in the release's wip/pending/release
15367
               tabs.
15368
 
15369
******************************************************************************/
1373 dpurdie 15370
BEGIN
3959 dpurdie 15371
   -- Delete any invalid rtag_id/pv_id combination from the advisory_ripple table.
15372
   -- An invalid rtag_id/pv_id combination is one that cannot be found in the
15373
   -- work_in_progress, planned, or release_content table.
15374
   -- NOTE: Planned operations that represent pending additive/subtractive merge
15375
   -- operations are ignored because they have not been approved yet and so
15376
   -- cannot be said to be "in the release".
15377
   DELETE FROM advisory_ripple
15378
         WHERE rtag_id = nrtagid
15379
           AND pv_id not in
15380
               ((SELECT pv_id FROM release_content WHERE rtag_id = nrtagid)
15381
                 UNION
15382
                (SELECT pv_id FROM work_in_progress WHERE rtag_id = nrtagid)
15383
                 UNION
15384
                (SELECT pv_id FROM planned WHERE rtag_id = nrtagid AND (operation is null OR operation = 'R'))
15385
               );
15386
END clean_advisory_ripple;
4040 dpurdie 15387
 
3959 dpurdie 15388
/
4040 dpurdie 15389
--------------------------------------------------------
15390
--  DDL for Procedure CLEAN_DO_NOT_RIPPLE
15391
--------------------------------------------------------
15392
set define off;
15393
 
5172 dpurdie 15394
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAN_DO_NOT_RIPPLE" (nrtagid IN NUMBER)
3959 dpurdie 15395
IS
15396
/******************************************************************************
15397
   NAME:       clean_do_not_ripple
1373 dpurdie 15398
 
3959 dpurdie 15399
   PURPOSE:    To delete entries from the do_not_ripple table based upon
15400
               an RTAG_ID only
15401
 
15402
               This is a tidy-up operation performed against the do_not_ripple
15403
               table, ensuring that the table does not have rtag_id/pv_id
15404
               combinations that cannot be found in the release's wip/pending/release
15405
               tabs.
15406
 
15407
******************************************************************************/
15408
BEGIN
15409
   -- Delete any invalid rtag_id/pv_id combination from the do_not_ripple table.
15410
   -- An invalid rtag_id/pv_id combination is one that cannot be found in the
15411
   -- work_in_progress, planned, or release_content table.
15412
   -- NOTE: Planned operations that represent pending additive/subtractive merge
15413
   -- operations are ignored because they have not been approved yet and so
15414
   -- cannot be said to be "in the release".
15415
   DELETE FROM do_not_ripple
15416
         WHERE rtag_id = nrtagid
15417
           AND pv_id not in
15418
               ((SELECT pv_id FROM release_content WHERE rtag_id = nrtagid)
15419
                 UNION
15420
                (SELECT pv_id FROM work_in_progress WHERE rtag_id = nrtagid)
15421
                 UNION
15422
                (SELECT pv_id FROM planned WHERE rtag_id = nrtagid AND (operation is null OR operation = 'R'))
15423
               );
15424
END clean_do_not_ripple;
4040 dpurdie 15425
 
1374 dpurdie 15426
/
4040 dpurdie 15427
--------------------------------------------------------
15428
--  DDL for Procedure CLEAR_ADVISORY_RIPPLE
15429
--------------------------------------------------------
15430
set define off;
15431
 
5172 dpurdie 15432
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAR_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 15433
	   	  		  							   nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
15434
											 nUserId IN NUMBER ) IS
1373 dpurdie 15435
/* ---------------------------------------------------------------------------
3959 dpurdie 15436
    Version: 4.0
1373 dpurdie 15437
   --------------------------------------------------------------------------- */
15438
 
15439
BEGIN
15440
 
3959 dpurdie 15441
    -- Clear Advisory Ripple Package
15442
    DELETE FROM ADVISORY_RIPPLE
15443
	WHERE PV_ID = nPvId
15444
	AND RTAG_ID = nRtagId;
1373 dpurdie 15445
 
3959 dpurdie 15446
    /* LOG ACTION */
15447
   	Log_Action ( nPvId, 'clear_advisory_ripple', nUserId );
15448
 
15449
	/*Rebuild_Environment(nRtagId);*/
1373 dpurdie 15450
 
3959 dpurdie 15451
END Clear_Advisory_Ripple;
4040 dpurdie 15452
 
1374 dpurdie 15453
/
4040 dpurdie 15454
--------------------------------------------------------
15455
--  DDL for Procedure CLONED_PACKAGE_PROCESSES
15456
--------------------------------------------------------
15457
set define off;
15458
 
5172 dpurdie 15459
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLONED_PACKAGE_PROCESSES" 
3959 dpurdie 15460
IS
1373 dpurdie 15461
 
3959 dpurdie 15462
proc_id NUMBER;
1373 dpurdie 15463
/******************************************************************************
3959 dpurdie 15464
   NAME:       DELETE_DO_NOT_RIPPLE
15465
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
15466
               IS RELEASED
1373 dpurdie 15467
 
15468
   REVISIONS:
15469
   Ver        Date        Author           Description
15470
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 15471
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
1373 dpurdie 15472
 
15473
   NOTES:
15474
 
15475
   Automatically available Auto Replace Keywords:
3959 dpurdie 15476
      Object Name:     DELETE_DO_NOT_RIPPLE
15477
      Sysdate:         21/04/2006
15478
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
1373 dpurdie 15479
      Username:         (set in TOAD Options, Procedure Editor)
15480
      Table Name:       (set in the "New PL/SQL Object" dialog)
15481
 
15482
******************************************************************************/
3959 dpurdie 15483
   CURSOR ripple_cur
15484
   IS
15485
      select distinct proc_id, prod_id from deployment_manager.processes_config;
15486
 
15487
   ripple_rec   ripple_cur%ROWTYPE;
1373 dpurdie 15488
BEGIN
3959 dpurdie 15489
   OPEN ripple_cur;
1373 dpurdie 15490
 
3959 dpurdie 15491
   FETCH ripple_cur
15492
    INTO ripple_rec;
1373 dpurdie 15493
 
3959 dpurdie 15494
   WHILE ripple_cur%FOUND
15495
   LOOP
15496
 
1373 dpurdie 15497
 
3959 dpurdie 15498
 
15499
insert into package_processes (PROC_ID, PV_ID) 
15500
values( ripple_rec.proc_id, ripple_rec.prod_id);
15501
 
15502
      FETCH ripple_cur
15503
       INTO ripple_rec;
15504
   END LOOP;
15505
END CLONED_PACKAGE_PROCESSES;
4040 dpurdie 15506
 
1374 dpurdie 15507
/
4040 dpurdie 15508
--------------------------------------------------------
15509
--  DDL for Procedure CLONED_PROCESSES
15510
--------------------------------------------------------
15511
set define off;
15512
 
5172 dpurdie 15513
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLONED_PROCESSES" 
3959 dpurdie 15514
IS
15515
 
15516
proc_id NUMBER;
15517
/******************************************************************************
15518
   NAME:       DELETE_DO_NOT_RIPPLE
15519
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
15520
               IS RELEASED
15521
 
15522
   REVISIONS:
15523
   Ver        Date        Author           Description
15524
   ---------  ----------  ---------------  ------------------------------------
15525
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
15526
 
15527
   NOTES:
15528
 
15529
   Automatically available Auto Replace Keywords:
15530
      Object Name:     DELETE_DO_NOT_RIPPLE
15531
      Sysdate:         21/04/2006
15532
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
15533
      Username:         (set in TOAD Options, Procedure Editor)
15534
      Table Name:       (set in the "New PL/SQL Object" dialog)
15535
 
15536
******************************************************************************/
15537
   CURSOR ripple_cur
15538
   IS
15539
      select distinct pkg_health_tag, cmd_interface, pkg_owner, is_interface from deployment_manager.processes_config;
15540
 
15541
   ripple_rec   ripple_cur%ROWTYPE;
1373 dpurdie 15542
BEGIN
3959 dpurdie 15543
   OPEN ripple_cur;
1373 dpurdie 15544
 
3959 dpurdie 15545
   FETCH ripple_cur
15546
    INTO ripple_rec;
1373 dpurdie 15547
 
3959 dpurdie 15548
   WHILE ripple_cur%FOUND
15549
   LOOP
15550
 
15551
   select deployment_manager.seq_proc_id.nextval into proc_id from dual;
15552
 
15553
insert into processes (PROC_ID, PROC_NAME, RUN_AS, PKG_OWNER, IS_INTERFACE) 
15554
values(proc_id, ripple_rec.pkg_health_tag, ripple_rec.cmd_interface, ripple_rec.pkg_owner, ripple_rec.is_interface);
1373 dpurdie 15555
 
3959 dpurdie 15556
      FETCH ripple_cur
15557
       INTO ripple_rec;
15558
   END LOOP;
15559
END CLONED_PROCESSES;
4040 dpurdie 15560
 
1374 dpurdie 15561
/
4040 dpurdie 15562
--------------------------------------------------------
15563
--  DDL for Procedure DELETE_AUTOBUILD_FAILURE_INFO
15564
--------------------------------------------------------
15565
set define off;
15566
 
5172 dpurdie 15567
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DELETE_AUTOBUILD_FAILURE_INFO" 
3959 dpurdie 15568
IS
1373 dpurdie 15569
/******************************************************************************
3959 dpurdie 15570
   NAME:       DELETE_AUTOBUILD_FAILURE_INFO
15571
   PURPOSE:
1373 dpurdie 15572
 
15573
   REVISIONS:
3959 dpurdie 15574
   Ver        Date        Author           Description
1373 dpurdie 15575
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 15576
   1.0        2/06/2006    Rupesh Solanki      1. Created this procedure.
1373 dpurdie 15577
 
15578
   NOTES:
15579
 
15580
   Automatically available Auto Replace Keywords:
3959 dpurdie 15581
      Object Name:     DELETE_AUTOBUILD_FAILURE_INFO
15582
      Sysdate:         2/06/2006
15583
      Date and Time:   2/06/2006, 8:44:25 AM, and 2/06/2006 8:44:25 AM
1373 dpurdie 15584
      Username:         (set in TOAD Options, Procedure Editor)
15585
      Table Name:       (set in the "New PL/SQL Object" dialog)
15586
 
15587
******************************************************************************/
15588
BEGIN
3959 dpurdie 15589
   DELETE FROM autobuild_failure
15590
         WHERE group_email_id NOT IN (SELECT group_email_id
15591
                                        FROM members_group);
15592
END delete_autobuild_failure_info;
4040 dpurdie 15593
 
1374 dpurdie 15594
/
4040 dpurdie 15595
--------------------------------------------------------
15596
--  DDL for Procedure DEPLOY_TO_RELEASE
15597
--------------------------------------------------------
15598
set define off;
15599
 
5172 dpurdie 15600
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DEPLOY_TO_RELEASE" IS
1373 dpurdie 15601
 
15602
/******************************************************************************
15603
 
15604
 
15605
******************************************************************************/
15606
 
15607
	CURSOR curInfo IS
15608
    SELECT DISTINCT
15609
        qry.DPV_ID
15610
     FROM (
15611
             SELECT dep.*,
15612
                    LEVEL AS LEVEL_NUM
15613
               FROM PACKAGE_DEPENDENCIES dep
15614
             START WITH dep.PV_ID IN ( 
15615
 
4308 dpurdie 15616
                        69124,63479,60048,49566,49562,54351,63560,54360,46053,59753,97060,97061,100883,78236,75241,92371,92372,105682,135506,127204,135615,136498,137571,61534,76540,96787,133102,96770,96771,116692,133768,61537,88935,110216,96797,69469,98123,111626,96802,100289,97233,97623,135801,69700,77808,43026,77809,43027,100825,126854,105589,96405,102105,133770,134408,91177,91179,96822,96824,48031,78965,78936,78935,79114,76620,125164,61804,96826,61977,67592,72594,134415,135804,65097,64850,64851,64879,64881,64882,64884,67612,67613,67614,67615,68501,68502,68503,68516,68518,68519,68521,71974,68659,69764,68662,68661,68757,69765,69766,69767,71975,71976,71977,71978,71979,71980,75149,71982,71983,75153,75158,71986,75160,75161,75162,72418,72419,71987,71988,71990,75164,72420,72421,72423,72424,72425,75165,75181,75182,83285,75184,75201,75220,75240,75260,75280,75242,76320,75320,76340,76321,82031,76341,76342,76344,76345,76806,76350,76810,76811,76360,76361,76362,76380,76637,76638,76639,76647,76649,76812,76650,78261,76815,77603,76818,76846,76847,76848,76849,77604,77606,77016,77607,77608,77609,78518,77671,77610,78519,78520,78205,78206,77795,78262,78263,78666,78521,78669,78767,78768,78770,78771,82032,79471,78772,82033,80856,80210,80898,82449,80211,80212,80214,80215,80216,80611,80217,82034,82035,80749,80750,82036,94266,82037,82038,82039,82040,82041,82042,82043,82044,82045,82046,82450,82296,82297,82451,82047,82298,82299,82300,82452,82453,82454,82455,82456,82457,82769,82458,82459,82770,82460,82461,82771,83286,85069,83543,83544,83287,85070,84959,85071,85072,84960,85073,85074,84975,85194,85075,85195,85196,85197,85198,85199,94267,85231,85237,94268,94269,94270,94271,94273,94274,94275,94276,94277,94278,94279,94280,94281,94282,94283,94284,94285,94286,94287,94288,94289,94290,94291,94292,94293,94294,94295,94296,94297,94298,94299,94300,94301,94302,94303,94304,94305,94306,94307,94308,94309,94310,94311,94312,94313,94314,94315,94316,94634,94317,94635,97035,94319,94320,94636,94637,94322,96536,96552,96554,96555,96556,96568,96569,96570,96571,96572,96573,96574,96575,96576,96577,96578,96579,96580,96581,96582,96583,96584,96585,96586,96818,97435,96819,96820,97599,97436,97437,97438,97439,97440,97434,97723,97640,97641,97642,97724,97725,97729,97743,97825,98097,98098,98099,98100,97999,98049,98101,98102,98103,99506,98268,98207,99507,99508,99509,99159,99510,99511,99512,102883,99513,99514,100243,99515,99880,99562,99563,99676,99677,99678,99881,99882,99883,99884,100244,100245,100623,100247,100624,100625,100626,100885,100719,100886,100887,100888,100889,100890,100990,100991,101301,101603,110065,101605,102180,102627,102181,102182,102183,102184,102185,102186,102187,102188,102189,102190,102191,104378,102192,104379,102193,102379,102380,102381,102884,102410,102411,102628,102465,102629,102630,102885,102886,102887,104380,104381,104382,104383,104384,104385,104387,110063,104389,106409,104561,104594,104660,105088,105089,105090,105091,105093,105097,105673,105768,106410,109314,106173,110064,137890,106433,106960,109080,111665,122015,110954,116763,110066,116764,110123,111867,110713,116765,111666,116869,111667,111668,116766,116767,115142,115143,121477,113924,114594,116768,115144,116769,115170,115172,115171,115644,120042,120043,116092,116870,116871,118382,116872,116876,120044,118026,119364,121485,120045,120416,121478,120417,122016,124577,129495,123602,123600,124578,124579,124580,124581,124784,125238,127096,127097,129496,129497,128036,128415,129498,129499,129914,130063,130064,130680,130681,131333,131488,133886,132219,132477,132478,133887,136537,136552,136538,136539,136540,136553,136554,136555,137869,85076,80857,62418,64889,64890,64891,64893,68666,68667,68668,68670,68671,68672,68673,72019,72020,72023,72024,72227,77745,77746,77747,77748,77749,77750,77751,77798,78773,80751,82464,82465,83288,92874,92875,92876,92877,92878,94122,94123,96290,96882,96883,97554,97514,97726,98008,98009,98051,99193,100248,99608,100249,100250,100670,100671,100672,101059,101061,101607,102194,102195,102412,102413,102633,104390,104391,106421,104560,104595,105767,106174,106426,109081,122017,137851,110712,116873,115145,115146,114597,115645,116095,120046,123551,122018,124584,124585,129500,129501,129502,128417,129503,129915,130066,131487,133897,133882,133883,136559,85078,100673,63475,78264,78265,78266,78267,78775,80753,94118,94119,94120,94121,96888,100251,100252,102631,102590,102632,65229,43366,69139,132551,59764,127129,101196,96830,61535,105433,96833,96835,96839,83795,77723,126868,99146,70188,117523,117524,117525,99237,100854,100855,137314,137315,96868,138232,138233,69709,96907,130854,119208,69520,124772,96878,60049,47875,70354,59371,54558,59849,33893,43087,43134,33894,60054,24345,49563,49558,97474,84982,31770,30950,49926,60050,52670,59846,59891,30966,59744,61988,59745,59881,59746,59741,47449,59747,64101,63480,63562,105382,105383,60052,48955,49561,49556,47401,65896,65906,65909,65985,108670,68697,68698,59754,59752,59751,62526,59805,59799,66981,46050,59756,46044,59806,46051,59807,82290,66980,59808,46046,61536,88834,70260,111081,105409,66093,66095,66094,47440,65778,59750,56748,99152,78409
1373 dpurdie 15617
 
15618
                        ) 
15619
 			CONNECT BY PRIOR dep.DPV_ID = dep.PV_ID
15620
 		) qry,
15621
 		PACKAGES pkg,
15622
		PACKAGE_VERSIONS pv
15623
 	 WHERE qry.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_ID
15624
         and (pv.is_patch is null or pv.is_patch = 'N');
15625
    recInfo curInfo%ROWTYPE;
15626
 
15627
 
15628
BEGIN
15629
 
15630
	OPEN curInfo;
15631
    FETCH curInfo INTO recInfo;
15632
 
15633
	WHILE curInfo%FOUND
15634
	LOOP
15635
 
15636
	insert into release_content(RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE)
15637
    VALUES(8027, recInfo.dpv_id, 7, ora_sysdatetime, 0, 0);
15638
 
15639
    FETCH curInfo INTO recInfo;
15640
 
15641
	END LOOP;
15642
 
15643
	CLOSE curInfo;
15644
 
15645
 
15646
 
15647
 
15648
END DEPLOY_TO_RELEASE; 
4040 dpurdie 15649
 
1374 dpurdie 15650
/
4040 dpurdie 15651
--------------------------------------------------------
15652
--  DDL for Procedure DEPRECATE_PACKAGE
15653
--------------------------------------------------------
15654
set define off;
15655
 
5384 dpurdie 15656
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DEPRECATE_PACKAGE" (
15657
    nPvId     IN PACKAGE_VERSIONS.PV_ID%TYPE,
15658
    nRtagId   IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,
15659
    nPkgId    IN DEPRECATED_PACKAGES.PKG_ID%TYPE,
15660
    sComments IN DEPRECATED_PACKAGES.COMMENTS%TYPE,
15661
    nUserId   IN NUMBER)
15662
IS
15663
  ext VARCHAR2(50);
1373 dpurdie 15664
BEGIN
5384 dpurdie 15665
  --Extract the package version extension
15666
  SELECT V_EXT INTO ext
15667
  FROM PACKAGE_VERSIONS
15668
  WHERE PV_ID = nPvId;
15669
 
15670
  -- Deprecate Package
15671
  INSERT INTO DEPRECATED_PACKAGES
15672
    ( RTAG_ID, PKG_ID, COMMENTS, V_EXT )
15673
    VALUES ( nRtagId, nPkgId, sComments, ext );
15674
 
15675
  -- Update Release Contents entry
15676
  -- Process PackageName.ext for the package. ie: Allow multiple
15677
  -- versions of the package to be in the release.
15678
    UPDATE RELEASE_CONTENT
15679
    SET 
15680
      DEPRECATED_STATE = 6
15681
    WHERE RTAG_ID      = nRtagId
15682
    AND PV_ID IN (
15683
      SELECT PV.PV_ID
15684
      FROM PACKAGE_VERSIONS PV
15685
      WHERE PV.PKG_ID   = nPkgId
15686
      AND NVL(PV.V_EXT, '.NULL') = NVL(ext,'.NULL')
15687
      );
1373 dpurdie 15688
 
5384 dpurdie 15689
  -- Update consumers of the package
15690
  --  Update ALL packages in the Release
15691
 
15692
  REBUILD_DEPRECATE_STATE(nRtagId);
1373 dpurdie 15693
 
5384 dpurdie 15694
  /* LOG ACTION */
15695
  /*Log_Action ( nPkgId, 'deprecated_package', nUserId );*/
3959 dpurdie 15696
END Deprecate_Package;
4040 dpurdie 15697
 
1374 dpurdie 15698
/
4040 dpurdie 15699
--------------------------------------------------------
15700
--  DDL for Procedure DT_DROPUSEROBJECTBYID
15701
--------------------------------------------------------
15702
set define off;
15703
 
5172 dpurdie 15704
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DT_DROPUSEROBJECTBYID" ( PARAM_ID IN NUMBER ) AS BEGIN DELETE FROM MICROSOFTDTPROPERTIES WHERE OBJECTID = PARAM_ID; END DT_DROPUSEROBJECTBYID;
4040 dpurdie 15705
 
1374 dpurdie 15706
/
4040 dpurdie 15707
--------------------------------------------------------
15708
--  DDL for Procedure DT_SETPROPERTYBYID
15709
--------------------------------------------------------
15710
set define off;
15711
 
5384 dpurdie 15712
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DT_SETPROPERTYBYID" (
15713
    PARAM_ID       IN NUMBER,
15714
    PARAM_PROPERTY IN VARCHAR2,
15715
    PARAM_VALUE    IN VARCHAR2,
15716
    PARAM_LVALUE   IN LONG RAW )
15717
AS
15718
BEGIN
15719
  DECLARE
15720
    X NUMBER(38);
15721
  BEGIN
15722
    SELECT COUNT(*)
15723
    INTO X
15724
    FROM MICROSOFTDTPROPERTIES
15725
    WHERE OBJECTID=PARAM_ID
15726
    AND PROPERTY  =PARAM_PROPERTY;
15727
    IF X          = 0 THEN
15728
      INSERT
15729
      INTO MICROSOFTDTPROPERTIES
15730
        (
15731
          ID,
15732
          PROPERTY,
15733
          OBJECTID,
15734
          VALUE,
15735
          LVALUE,
15736
          VERSION
15737
        )
15738
        VALUES
15739
        (
15740
          MICROSOFTSEQDTPROPERTIES.NEXTVAL,
15741
          PARAM_PROPERTY,
15742
          PARAM_ID,
15743
          PARAM_VALUE,
15744
          PARAM_LVALUE,
15745
 
15746
        );
15747
    ELSE
15748
      UPDATE MICROSOFTDTPROPERTIES
15749
      SET VALUE     =PARAM_VALUE,
15750
        LVALUE      =PARAM_LVALUE,
15751
        VERSION     =VERSION+1
15752
      WHERE OBJECTID=PARAM_ID
15753
      AND PROPERTY  =PARAM_PROPERTY;
15754
    END IF;
15755
  END;
15756
END DT_SETPROPERTYBYID;
4040 dpurdie 15757
 
3959 dpurdie 15758
/
4040 dpurdie 15759
--------------------------------------------------------
15760
--  DDL for Procedure IGNORE_DEPENDENCY_WARNINGS
15761
--------------------------------------------------------
15762
set define off;
15763
 
5172 dpurdie 15764
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."IGNORE_DEPENDENCY_WARNINGS" ( nRtagId IN IGNORE_WARNINGS.RTAG_ID%TYPE,
3959 dpurdie 15765
                                                         nPvId IN IGNORE_WARNINGS.PV_ID%TYPE,
15766
                                                         sIgnoreIdList IN VARCHAR2,
15767
                                                         bDoPatchIgnore IN BOOLEAN DEFAULT FALSE,
15768
                                                         nUserId IN NUMBER DEFAULT NULL ) IS
15769
/* ---------------------------------------------------------------------------
15770
    Updates the ignore warnings table - this is really two functions in one.
15771
 
15772
    1) One function updates the table based on a list of dependent PV_IDs and a parent PV_ID
15773
       and is called from the RM website's SetIgnoreWarnings() function after a user changes
15774
       the ignore warnings checkboxes and submits the form.
15775
       This can (at time of writing this) only be done within releases that are not build
15776
       daemon enabled. The ignore warnings feature is a feature we would like to see the end
15777
       of in an ideal world.
15778
       The SetIgnoreWarnings() website function now calls Touch_Release so there is no need to
15779
       do so in this stored procedure, thereby making this stored procedure much more precise in
15780
       that it only updates the ignore_warnings table (action log table too although that is just
15781
       a log and doesn't affect any subsequent business rules behaviour) and it cares nothing
15782
       about website presentation layer states, etc.
15783
 
15784
    2) The other function updates the table for out of sync dependencies that have in fact
15785
       been satisfied by patches made to some other product in the release.
15786
       This seems to be a seldom used feature in current projects.
15787
       It is probably the most often taken path through this function given that it occurs when
15788
       this function is called from Rebuild_Environment, and that is called in many circumstances
15789
       from the RM website whenever the seems to be a possibility that the state of a package
15790
       in a release might have changed and therefore affects the state of other packages in
15791
       that same release.
15792
 
15793
    Parameter Usage:
15794
                        when called from    | when called from
15795
                        Rebuild_Environment | SetIgnoreWarnings()
15796
                        stored procedure.   | in the Website
15797
      --------------------------------------+----------------------------
15798
      nRtagId           RTAG_ID             | RTAG_ID
15799
      nPvId             NULL                | PV_ID
15800
      sIgnoreIdList     NULL                | list of dependent PV_ID's
15801
      bDoPatchIgnore    TRUE                | FALSE
15802
      nUserId           NULL                | current user ID
15803
   --------------------------------------------------------------------------- */
15804
 
15805
oIgnoreIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
15806
ReleaseLocation VARCHAR2(4000);
15807
ActionTypeId NUMBER;
15808
 
1373 dpurdie 15809
BEGIN
15810
 
3959 dpurdie 15811
   IF (NOT bDoPatchIgnore) THEN
15812
      /* Manual Ignore Warnings - this execution path is the one taken when called from SetIgnoreWarnings() in the Website
15813
      */
15814
      oIgnoreIdCollector := IN_LIST_NUMBER ( sIgnoreIdList );
1373 dpurdie 15815
 
15816
 
3959 dpurdie 15817
      /* Log Action */
15818
      -- Get Release Location
15819
      SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
15820
        FROM PROJECTS proj,
15821
             RELEASE_TAGS rt
15822
       WHERE rt.PROJ_ID = proj.PROJ_ID
15823
         AND rt.RTAG_ID = nRtagId;
1373 dpurdie 15824
 
3959 dpurdie 15825
      -- Get Action Type Id for IGNORE_ON
15826
      SELECT act.ACTTYPE_ID INTO ActionTypeId
15827
        FROM ACTION_TYPE act
15828
       WHERE act.NAME = 'ignore_on';
15829
 
15830
      -- Get Ignored (Current MINUS Old)
5172 dpurdie 15831
      INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
15832
      SELECT nUserId, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeId
3959 dpurdie 15833
        FROM (
15834
              SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_ID
15835
                FROM PACKAGE_VERSIONS pv
15836
               WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
15837
              MINUS
15838
              SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_ID
15839
                FROM IGNORE_WARNINGS igw
15840
               WHERE igw.RTAG_ID = nRtagId
15841
                 AND igw.PV_ID = nPvId
15842
             ) qry,
15843
             PACKAGE_VERSIONS pv,
15844
             PACKAGES pkg,
15845
             RELEASE_CONTENT rc,
15846
             PACKAGE_VERSIONS rpv
15847
       WHERE pv.PKG_ID = pkg.PKG_ID
15848
         AND rc.RTAG_ID = nRtagId
15849
         AND rc.PV_ID = rpv.PV_ID
15850
         AND rpv.PKG_ID = pv.PKG_ID
15851
         AND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )
15852
         AND qry.DPV_ID = pv.PV_ID;
15853
 
15854
 
15855
      -- Get Action Type Id for IGNORE_OFF
15856
      SELECT act.ACTTYPE_ID INTO ActionTypeId
15857
        FROM ACTION_TYPE act
15858
       WHERE act.NAME = 'ignore_off';
15859
 
15860
      -- Get UnIgnored (Old MINUS Current)
5172 dpurdie 15861
      INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
15862
      SELECT nUserId, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeId
3959 dpurdie 15863
        FROM (
15864
              SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_ID
15865
                FROM IGNORE_WARNINGS igw
15866
               WHERE igw.RTAG_ID = nRtagId
15867
                 AND igw.PV_ID = nPvId
15868
              MINUS
15869
              SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_ID
15870
                FROM PACKAGE_VERSIONS pv
15871
               WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
15872
             ) qry,
15873
             PACKAGE_VERSIONS pv,
15874
             PACKAGES pkg,
15875
             RELEASE_CONTENT rc,
15876
             PACKAGE_VERSIONS rpv
15877
       WHERE pv.PKG_ID = pkg.PKG_ID
15878
         AND rc.RTAG_ID = nRtagId
15879
         AND rc.PV_ID = rpv.PV_ID
15880
         AND rpv.PKG_ID = pv.PKG_ID
15881
         AND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )
15882
         AND qry.DPV_ID = pv.PV_ID;
15883
 
15884
 
15885
      -- Delete Current Ignore Warnings
15886
      DELETE
15887
        FROM IGNORE_WARNINGS igw
15888
       WHERE igw.RTAG_ID = nRtagId
15889
         AND igw.PV_ID = nPvId
15890
         AND igw.IS_PATCH_IGNORE IS NULL;
15891
 
15892
 
15893
      IF (oIgnoreIdCollector.COUNT > 0) THEN
15894
         -- Insert Ignore Warnings
15895
         INSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID )
15896
         SELECT nRtagId,
15897
                nPvId,
15898
                pv.PV_ID AS DPV_ID
15899
           FROM PACKAGE_VERSIONS pv
15900
          WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
15901
      END IF;
15902
 
15903
   ELSE
15904
      /* Patch Ignore Warnings - this execution path is the one taken when called from the Rebuild_Environment stored procedure */
15905
 
15906
      -- Delete Current Patch Ignore Warnings
15907
      DELETE
15908
        FROM IGNORE_WARNINGS igw
15909
       WHERE igw.RTAG_ID = nRtagId
15910
         AND igw.IS_PATCH_IGNORE = 'Y';
15911
 
15912
 
15913
      -- Delete Manual Ignores that need to be Patch Ignores
15914
      DELETE
15915
        FROM IGNORE_WARNINGS igw
15916
       WHERE ( RTAG_ID, PV_ID, DPV_ID ) IN
15917
             (
15918
              SELECT DISTINCT
15919
                     nRtagId,
15920
                     err.PV_ID,
15921
                     err.ERR_DPV AS DPV_ID
15922
               FROM  (
15923
                      /* Full Release Contents used for reference*/
15924
                      SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext
15925
                        FROM release_content rel, package_versions rpv
15926
                       WHERE rel.pv_id = rpv.pv_id
15927
                         AND rtag_id = nRtagId
15928
                     ) frc,
15929
                     (
15930
                      /* DPV_IDs not fount in release*/
15931
                      SELECT dep.pv_id, dep.dpv_id AS err_dpv
15932
                        FROM package_dependencies dep
15933
                       WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
15934
                         AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
15935
                     ) err,
15936
                     (
15937
                      SELECT DISTINCT pp.PV_ID, dep.DPV_ID
15938
                        FROM PACKAGE_PATCHES pp,
15939
                             PACKAGE_DEPENDENCIES dep,
15940
                             RELEASE_CONTENT rc
15941
                       WHERE rc.RTAG_ID = nRtagId
15942
                         AND rc.PV_ID = pp.PV_ID
15943
                         AND dep.PV_ID = pp.PATCH_ID
15944
                     ) pp,
15945
                     package_versions errpkg,
15946
                     package_versions errpv
15947
               WHERE err.err_dpv = errpv.pv_id
15948
                 AND errpv.pkg_id = frc.pkg_id(+)
15949
                 AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
15950
                 AND err.pv_id = errpkg.pv_id
15951
                 AND err.PV_ID = pp.PV_ID
15952
                 AND frc.PV_ID = pp.DPV_ID
15953
             );
15954
 
15955
      /*
15956
      ---------------------------------------------------
15957
      --  Make sure that select statement above and below are same
15958
      ---------------------------------------------------
15959
      */
15960
 
15961
      -- Insert Patch Ignores
15962
      INSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE )
15963
      SELECT DISTINCT
15964
             nRtagId,
15965
             err.PV_ID,
15966
             err.ERR_DPV AS DPV_ID,
15967
             'Y'
15968
        FROM (
15969
              /* Full Release Contents used for reference*/
15970
              SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext
15971
                FROM release_content rel, package_versions rpv
15972
               WHERE rel.pv_id = rpv.pv_id
15973
                 AND rtag_id = nRtagId
15974
             ) frc,
15975
             (
15976
               /* DPV_IDs not fount in release*/
15977
               SELECT dep.pv_id, dep.dpv_id AS err_dpv
15978
                 FROM package_dependencies dep
15979
                WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
15980
                  AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
15981
             ) err,
15982
             (
15983
              SELECT DISTINCT pp.PV_ID, dep.DPV_ID
15984
                FROM PACKAGE_PATCHES pp,
15985
                     PACKAGE_DEPENDENCIES dep,
15986
                     RELEASE_CONTENT rc
15987
               WHERE rc.RTAG_ID = nRtagId
15988
                 AND rc.PV_ID = pp.PV_ID
15989
                 AND dep.PV_ID = pp.PATCH_ID
15990
             ) pp,
15991
             package_versions errpkg,
15992
             package_versions errpv
15993
       WHERE err.err_dpv = errpv.pv_id
15994
         AND errpv.pkg_id = frc.pkg_id(+)
15995
         AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
15996
         AND err.pv_id = errpkg.pv_id
15997
         AND err.PV_ID = pp.PV_ID
15998
         AND frc.PV_ID = pp.DPV_ID;
15999
 
16000
    END IF;
16001
 
16002
END Ignore_Dependency_Warnings;
4040 dpurdie 16003
 
1374 dpurdie 16004
/
4040 dpurdie 16005
--------------------------------------------------------
16006
--  DDL for Procedure INSERT_INTO_PACKAGE_BUILD_INFO
16007
--------------------------------------------------------
16008
set define off;
16009
 
5172 dpurdie 16010
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."INSERT_INTO_PACKAGE_BUILD_INFO" IS
1373 dpurdie 16011
 
16012
/******************************************************************************
3959 dpurdie 16013
   NAME:       INSERT_INTO_PACKAGE_BUILD_INFO
1373 dpurdie 16014
   PURPOSE:    
16015
 
16016
   REVISIONS:
16017
   Ver        Date        Author           Description
16018
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 16019
   1.0        6/12/2006          1. Created this procedure.
1373 dpurdie 16020
 
16021
   NOTES:
16022
 
16023
   Automatically available Auto Replace Keywords:
3959 dpurdie 16024
      Object Name:     INSERT_INTO_PACKAGE_BUILD_INFO
16025
      Sysdate:         6/12/2006
16026
      Date and Time:   6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PM
1373 dpurdie 16027
      Username:         (set in TOAD Options, Procedure Editor)
16028
      Table Name:       (set in the "New PL/SQL Object" dialog)
16029
 
16030
******************************************************************************/
16031
 
16032
	CURSOR curInfo IS
3959 dpurdie 16033
    SELECT PV_ID
16034
	FROM PACKAGE_BUILD_ENV
16035
	WHERE BE_ID IN (11, 12);
1373 dpurdie 16036
    recInfo curInfo%ROWTYPE;
16037
 
16038
 
16039
BEGIN
16040
 
16041
	OPEN curInfo;
16042
    FETCH curInfo INTO recInfo;
16043
 
16044
	WHILE curInfo%FOUND
16045
	LOOP
16046
 
3959 dpurdie 16047
		INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID, BSA_ID )
16048
		VALUES( recInfo.PV_ID, 2, 5);
16049
 
16050
		UPDATE PACKAGE_VERSIONS SET BS_ID = 2 WHERE PV_ID = recInfo.PV_ID;
16051
 
1373 dpurdie 16052
		FETCH curInfo INTO recInfo;
3959 dpurdie 16053
 
1373 dpurdie 16054
	END LOOP;
16055
 
16056
	CLOSE curInfo;
16057
 
16058
 
16059
 
16060
 
3959 dpurdie 16061
END INSERT_INTO_PACKAGE_BUILD_INFO;
4040 dpurdie 16062
 
1374 dpurdie 16063
/
4040 dpurdie 16064
--------------------------------------------------------
16065
--  DDL for Procedure INSERT_MULTIPLE_STICKY_NOTES
16066
--------------------------------------------------------
16067
set define off;
16068
 
5172 dpurdie 16069
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."INSERT_MULTIPLE_STICKY_NOTES" IS
1373 dpurdie 16070
 
3959 dpurdie 16071
/******************************************************************************
16072
   NAME:       INSERT_MULTIPLE_STICKY_NOTES
16073
   PURPOSE:    
1373 dpurdie 16074
 
3959 dpurdie 16075
   REVISIONS:
16076
   Ver        Date        Author           Description
16077
   ---------  ----------  ---------------  ------------------------------------
16078
   1.0        6/12/2006          1. Created this procedure.
1373 dpurdie 16079
 
3959 dpurdie 16080
   NOTES:
1373 dpurdie 16081
 
3959 dpurdie 16082
   Automatically available Auto Replace Keywords:
16083
      Object Name:     INSERT_MULTIPLE_STICKY_NOTES
16084
      Sysdate:         6/12/2006
16085
      Date and Time:   6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PM
16086
      Username:         (set in TOAD Options, Procedure Editor)
16087
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 16088
 
3959 dpurdie 16089
******************************************************************************/
1373 dpurdie 16090
 
3959 dpurdie 16091
	CURSOR curInfo IS
16092
    SELECT PV_ID
16093
	FROM PACKAGE_BUILD_ENV
16094
	WHERE BE_ID IN (11, 12);
16095
    recInfo curInfo%ROWTYPE;
16096
 
16097
 
1373 dpurdie 16098
BEGIN
16099
 
3959 dpurdie 16100
	OPEN curInfo;
16101
    FETCH curInfo INTO recInfo;
16102
 
16103
	WHILE curInfo%FOUND
16104
	LOOP
1373 dpurdie 16105
 
3959 dpurdie 16106
		INSERT INTO NOTE_MANAGER ( NID, LAST_USER, LAST_DATE, DESCRIPTION )
16107
		VALUES( recInfo.PV_ID, 'awehalle', ORA_SYSDATETIME, '' );
16108
 
16109
		FETCH curInfo INTO recInfo;
16110
 
16111
	END LOOP;
1373 dpurdie 16112
 
3959 dpurdie 16113
	CLOSE curInfo;
1373 dpurdie 16114
 
16115
 
16116
 
16117
 
3959 dpurdie 16118
END INSERT_MULTIPLE_STICKY_NOTES;
4040 dpurdie 16119
 
1374 dpurdie 16120
/
4040 dpurdie 16121
--------------------------------------------------------
16122
--  DDL for Procedure LEVEL_N_CONFLICTS
16123
--------------------------------------------------------
16124
set define off;
16125
 
5172 dpurdie 16126
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LEVEL_N_CONFLICTS" (
3959 dpurdie 16127
   nnrtag_id       IN       NUMBER,
16128
   nnsession_num   IN       NUMBER,
16129
   nnrowcnt        OUT      NUMBER,
16130
   nniteration     IN       NUMBER
16131
)
16132
IS
1373 dpurdie 16133
/* ---------------------------------------------------------------------------
3959 dpurdie 16134
    Version: 3.0.1
1373 dpurdie 16135
   --------------------------------------------------------------------------- */
3959 dpurdie 16136
   previteration   NUMBER := nniteration - 1;
1373 dpurdie 16137
BEGIN
5384 dpurdie 16138
  -- Map broken dependency information from a package into a consumer
16139
  -- package. ie: Ripple need-to-build info up the dependency tree.
16140
 
3959 dpurdie 16141
   /* ---------  LEVEL 1 CONFILCTS -----------
16142
   || Following states are used:
16143
   || 0 -> NOT FOUND
16144
   || 1 -> MAJOR
16145
   || 2 -> MINOR MINOR
16146
   */
16147
   INSERT INTO temp_env_states
5384 dpurdie 16148
               SELECT DISTINCT nnsession_num AS session_num, nniteration AS level_num,
16149
                      dpv.pv_id, dpv.pkg_id, dpv.v_ext,
3959 dpurdie 16150
                      DECODE (tes.tes_state, 2, 2, 1) AS MESSAGE
5384 dpurdie 16151
                 FROM TEMP_ENV_DEPS dpv,
3959 dpurdie 16152
                      temp_env_states tes
5384 dpurdie 16153
                WHERE dpv.SESSION_NUM = nnsession_num
16154
                  AND dpv.dpkg_id = tes.pkg_id
16155
                  AND NVL (dpv.dv_ext, '|LINK_A_NULL|') = NVL (tes.v_ext, '|LINK_A_NULL|')
3959 dpurdie 16156
                  AND tes.session_num = nnsession_num
5384 dpurdie 16157
                  AND tes.level_num = previteration;
1373 dpurdie 16158
 
3959 dpurdie 16159
   nnrowcnt := SQL%ROWCOUNT;
16160
END level_n_conflicts;
4040 dpurdie 16161
 
1374 dpurdie 16162
/
4040 dpurdie 16163
--------------------------------------------------------
16164
--  DDL for Procedure LEVEL_ONE_CONFLICTS
16165
--------------------------------------------------------
16166
set define off;
16167
 
5172 dpurdie 16168
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LEVEL_ONE_CONFLICTS" (
1373 dpurdie 16169
   nnrtag_id       IN   NUMBER,
16170
   nnsession_num   IN   NUMBER
16171
)
16172
IS
16173
BEGIN
5384 dpurdie 16174
  --  Prepare the TEMP_ENV_DEPS table
16175
  --  This table maps package-versions to their dependencies and is
16176
  --  used to walk up the dependency tree.
16177
  --  This table consists of PV_ID -> DPV_ID in the release in which we are interested
16178
  --  ie: Those that ARE NOT a part of:
16179
  --    Pegged Package
16180
  --    SDK imported package
16181
  --    Marked with an ignore warnings
16182
  --    Marked as an advisory ripple
16183
  --
16184
  --  This table speeds up the process by a huge (really huge) amount
16185
  --
16186
      INSERT into TEMP_ENV_DEPS
16187
      (
16188
      SELECT DISTINCT nnsession_num AS session_num,
16189
                      pv.pv_id, pv.pkg_id, pv.v_ext,
16190
                      dpv.pv_id as dpv_id, dpv.pkg_id as dpkg_id, dpv.v_ext as dv_ext
16191
 
16192
                 FROM release_content rel,
16193
                      package_dependencies dep,
16194
                      package_versions dpv,
16195
                      package_versions pv
16196
 
16197
                WHERE rel.pv_id = dep.pv_id
16198
                  AND rel.rtag_id = nnrtag_id
16199
                  AND dep.pv_id = pv.pv_id
16200
                  AND dep.dpv_id = dpv.pv_id
16201
                  --AND rel.SDKTAG_ID is null
16202
                  --AND NOT dep.pv_id IN (SELECT pegv.pv_id FROM PEGGED_VERSIONS pegv WHERE pegv.rtag_id = nnrtag_id)
16203
                  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)
16204
                  );
16205
 
1373 dpurdie 16206
   /* ---------  LEVEL 1 CONFILCTS -----------
16207
   || Following states are used:
16208
   || 0 -> NOT FOUND
16209
   || 1 -> MAJOR
16210
   || 2 -> MINOR MINOR
16211
   */
16212
   INSERT INTO temp_env_states
16213
      SELECT DISTINCT nnsession_num AS session_num, 1 AS level_num,
16214
                      err.pv_id, errpkg.pkg_id, errpkg.v_ext,
16215
                      DECODE (frc.v_nmm,
16216
                              NULL, 0,
16217
                              errpv.v_nmm, DECODE (frc.v_mm,
16218
                                                   errpv.v_mm, NULL,
16219
                                                   2
16220
                                                  ),
16221
                              1
16222
                             ) AS MESSAGE
16223
                 FROM (
16224
                       /* Full Release Contents used for reference*/
16225
                        SELECT rel.rtag_id, rpv.pv_id, rpv.pkg_id,
16226
                                NVL (rpv.v_ext, '|LINK_A_NULL|') AS v_ext,
16227
                                rpv.pkg_version, rpv.v_nmm, rpv.v_mm,
5384 dpurdie 16228
                                (SELECT COUNT(*) FROM ADVISORY_RIPPLE avr WHERE avr.rtag_id = rel.rtag_id AND avr.pv_id = rel.pv_id ) AS IsAvr
1373 dpurdie 16229
                          FROM release_content rel,
16230
                                package_versions rpv
16231
                          WHERE rel.pv_id = rpv.pv_id
16232
                             AND rtag_id = nnrtag_id
16233
                      ) frc,
16234
 
16235
                      (
5384 dpurdie 16236
                       /* DPV_IDs not found in release. Excluding:
16237
                              Those from pegged versions
16238
                              Those from packages imported via an SDK
16239
                              */
1373 dpurdie 16240
                       SELECT dep.pv_id, dep.dpv_id AS err_dpv
5384 dpurdie 16241
                         FROM package_dependencies dep
16242
                        WHERE dep.pv_id IN (SELECT pv_id FROM release_content WHERE rtag_id = nnrtag_id AND release_content.SDKTAG_ID is NULL)
1373 dpurdie 16243
                          AND NOT dep.pv_id IN (SELECT pegv.pv_id FROM PEGGED_VERSIONS pegv WHERE pegv.rtag_id = nnrtag_id)
16244
                          AND NOT dep.dpv_id IN (SELECT pv_id FROM release_content WHERE rtag_id = nnrtag_id)
5384 dpurdie 16245
 
1373 dpurdie 16246
                       MINUS
16247
                       /* MINUS Dependencies to be ignored */
16248
                       SELECT igw.pv_id, igw.dpv_id AS err_dpv
5384 dpurdie 16249
                         FROM ignore_warnings igw
16250
                        WHERE igw.rtag_id = nnrtag_id
16251
 
1373 dpurdie 16252
                      ) err,
16253
                      package_versions errpkg,
16254
                      package_versions errpv
16255
                WHERE err.err_dpv = errpv.pv_id
16256
                  AND errpv.pkg_id = frc.pkg_id(+)
16257
                  AND NVL (errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
16258
                  AND err.pv_id = errpkg.pv_id
5384 dpurdie 16259
                  AND NVL(frc.IsAvr,0) = 0;
1373 dpurdie 16260
END level_one_conflicts;
4040 dpurdie 16261
 
1374 dpurdie 16262
/
4040 dpurdie 16263
--------------------------------------------------------
16264
--  DDL for Procedure LOCK_PACKAGE
16265
--------------------------------------------------------
16266
set define off;
16267
 
5172 dpurdie 16268
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
1373 dpurdie 16269
											 nUserId IN NUMBER ) IS
16270
/* ---------------------------------------------------------------------------
16271
    Version: 4.0
16272
   --------------------------------------------------------------------------- */
16273
 
16274
BEGIN
16275
 
16276
    -- Lock Package
16277
    UPDATE PACKAGE_VERSIONS pv SET
16278
    	pv.DLOCKED = 'Y'
16279
    WHERE pv.PV_ID = nPvId;
16280
 
16281
    /* LOG ACTION */
16282
   	Log_Action ( nPvId, 'lock_package', nUserId );
16283
 
16284
END Lock_Package;
4040 dpurdie 16285
 
1374 dpurdie 16286
/
4040 dpurdie 16287
--------------------------------------------------------
16288
--  DDL for Procedure LOG_ACTION
16289
--------------------------------------------------------
16290
set define off;
16291
 
5172 dpurdie 16292
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 16293
										 enumActionTypeName IN ACTION_TYPE.NAME%TYPE,
16294
                                         nUserId IN ACTION_LOG.USER_ID%TYPE,
16295
										 sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL  ) IS
1373 dpurdie 16296
/* ---------------------------------------------------------------------------
16297
    Version: 3.0
16298
   --------------------------------------------------------------------------- */
16299
 
3959 dpurdie 16300
    ActionTypeId NUMBER;
1373 dpurdie 16301
 
16302
BEGIN
16303
 
3959 dpurdie 16304
    -- Get Action Type FK
16305
    SELECT act.ACTTYPE_ID INTO ActionTypeId
16306
      FROM ACTION_TYPE act
16307
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 16308
 
16309
 
5172 dpurdie 16310
    INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
16311
    VALUES ( nUserId, nPvId, sAdditionalComments, ActionTypeId );
1373 dpurdie 16312
 
16313
 
3959 dpurdie 16314
END Log_Action;
4040 dpurdie 16315
 
1374 dpurdie 16316
/
4040 dpurdie 16317
--------------------------------------------------------
16318
--  DDL for Procedure LOG_ACTION_BULK
16319
--------------------------------------------------------
16320
set define off;
16321
 
5172 dpurdie 16322
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION_BULK" ( nPvIdList IN VARCHAR2,
3959 dpurdie 16323
										 	  enumActionTypeName IN ACTION_TYPE.NAME%TYPE,
16324
                                         	  nUserId IN ACTION_LOG.USER_ID%TYPE,
16325
										 	  sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL  ) IS
1373 dpurdie 16326
/* ---------------------------------------------------------------------------
3959 dpurdie 16327
    Version: 3.0
1373 dpurdie 16328
   --------------------------------------------------------------------------- */
16329
 
3959 dpurdie 16330
    ActionTypeId NUMBER;
16331
    oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
1373 dpurdie 16332
 
16333
BEGIN
16334
 
3959 dpurdie 16335
    oPvIdCollector := IN_LIST_NUMBER ( nPvIdList );
1373 dpurdie 16336
 
3959 dpurdie 16337
    -- Get Action Type FK
16338
    SELECT act.ACTTYPE_ID INTO ActionTypeId
16339
      FROM ACTION_TYPE act
16340
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 16341
 
3959 dpurdie 16342
    -- Log Action
5172 dpurdie 16343
    INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
3959 dpurdie 16344
    SELECT nUserId,
5172 dpurdie 16345
    	     pv.PV_ID,
3959 dpurdie 16346
           sAdditionalComments,
16347
           ActionTypeId
16348
      FROM PACKAGE_VERSIONS pv
16349
     WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
1373 dpurdie 16350
 
16351
 
3959 dpurdie 16352
END Log_Action_Bulk;
4040 dpurdie 16353
 
1374 dpurdie 16354
/
4040 dpurdie 16355
--------------------------------------------------------
16356
--  DDL for Procedure LOG_DAEMON_ACTION
16357
--------------------------------------------------------
16358
set define off;
16359
 
5172 dpurdie 16360
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_DAEMON_ACTION" ( nRconId IN NUMBER,
3959 dpurdie 16361
												 enumActionTypeName IN VARCHAR2,
16362
		                                         nUserId IN NUMBER,
16363
												 sAdditionalComments IN VARCHAR2 DEFAULT NULL  ) IS
16364
/* ---------------------------------------------------------------------------
16365
    Version: 3.0
16366
   --------------------------------------------------------------------------- */
1373 dpurdie 16367
 
3959 dpurdie 16368
    ActionTypeId NUMBER;
1373 dpurdie 16369
 
16370
BEGIN
16371
 
3959 dpurdie 16372
    -- Get Action Type FK
16373
    SELECT act.ACTTYPE_ID INTO ActionTypeId
16374
      FROM ACTION_TYPE act
16375
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 16376
 
16377
 
3959 dpurdie 16378
    INSERT INTO DAEMON_ACTION_LOG
16379
    VALUES ( nUserId, ORA_SYSDATETIME, nRconId, sAdditionalComments, ActionTypeId );
1373 dpurdie 16380
 
16381
 
3959 dpurdie 16382
END Log_Daemon_Action;
4040 dpurdie 16383
 
1374 dpurdie 16384
/
4040 dpurdie 16385
--------------------------------------------------------
16386
--  DDL for Procedure LOG_PROJECT_ACTION
16387
--------------------------------------------------------
16388
set define off;
16389
 
5172 dpurdie 16390
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_PROJECT_ACTION" ( nProjId IN NUMBER,
3959 dpurdie 16391
												 enumActionTypeName IN VARCHAR2,
16392
		                                         nUserId IN NUMBER,
16393
												 sAdditionalComments IN VARCHAR2 DEFAULT NULL,
16394
												 nRtagId IN NUMBER  ) IS
1373 dpurdie 16395
/* ---------------------------------------------------------------------------
3959 dpurdie 16396
    Version: 3.0
1373 dpurdie 16397
   --------------------------------------------------------------------------- */
16398
 
3959 dpurdie 16399
    ActionTypeId NUMBER;
1373 dpurdie 16400
 
16401
BEGIN
16402
 
3959 dpurdie 16403
    -- Get Action Type FK
16404
    SELECT act.ACTTYPE_ID INTO ActionTypeId
16405
      FROM ACTION_TYPE act
16406
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 16407
 
16408
 
3959 dpurdie 16409
    INSERT INTO PROJECT_ACTION_LOG ( USER_ID, ACTION_DATETIME, PROJ_ID, DESCRIPTION, ACTTYPE_ID, RTAG_ID)
16410
    VALUES ( nUserId, ORA_SYSDATETIME, nProjId, sAdditionalComments, ActionTypeId, nRtagId);
1373 dpurdie 16411
 
16412
 
3959 dpurdie 16413
END Log_Project_Action;
4040 dpurdie 16414
 
1374 dpurdie 16415
/
4040 dpurdie 16416
--------------------------------------------------------
16417
--  DDL for Procedure NEW_ADDITIONAL_NOTE
16418
--------------------------------------------------------
16419
set define off;
16420
 
5172 dpurdie 16421
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_ADDITIONAL_NOTE" ( pnPv_id IN NUMBER,
3959 dpurdie 16422
                                                  psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,
16423
                                                  psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,
16424
                                                  pnUser_id IN NUMBER,
16425
                                                  outErrCode OUT NUMBER
16426
                                                 ) IS
1373 dpurdie 16427
/* ---------------------------------------------------------------------------
3959 dpurdie 16428
    Version: 3.0.0
1373 dpurdie 16429
   --------------------------------------------------------------------------- */
16430
 
16431
    newID NUMBER;
16432
 
16433
	CURSOR an_duplicate_cur IS
3959 dpurdie 16434
        SELECT note_id
1373 dpurdie 16435
          FROM ADDITIONAL_NOTES
16436
         WHERE pv_id = pnPv_id
16437
           AND note_title = psNote_title;
16438
    an_duplicate_rec an_duplicate_cur%ROWTYPE;
16439
 
16440
BEGIN
16441
	outErrCode := -1;		-- Set default return error code to ERROR state
16442
 
16443
	OPEN an_duplicate_cur;
16444
    FETCH an_duplicate_cur INTO an_duplicate_rec;
16445
 
3959 dpurdie 16446
    IF an_duplicate_cur%NOTFOUND
1373 dpurdie 16447
    THEN
3959 dpurdie 16448
		/* No duplicate titles */
16449
		-- Get new ID --
16450
    	SELECT SEQ_ADDITIONAL_NOTES.NEXTVAL INTO newID FROM DUAL;
16451
 
16452
		--- Add Additional Note ---
16453
	    INSERT INTO ADDITIONAL_NOTES ( note_id, pv_id, note_title, note_body, mod_date, mod_user  )
16454
	    VALUES (  newID, pnPv_id, psNote_title, psNote_body, Ora_Sysdate, pnUser_id );
1373 dpurdie 16455
		outErrCode := 0;		-- Set return to SUCCESS
16456
	END IF;
16457
 
16458
	CLOSE an_duplicate_cur;
3959 dpurdie 16459
END New_Additional_Note;
4040 dpurdie 16460
 
1374 dpurdie 16461
/
4040 dpurdie 16462
--------------------------------------------------------
16463
--  DDL for Procedure NEW_PACKAGE_NAME
16464
--------------------------------------------------------
16465
set define off;
16466
 
5172 dpurdie 16467
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_PACKAGE_NAME" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
3959 dpurdie 16468
                                               retPKG_ID OUT NUMBER ) IS
1373 dpurdie 16469
/* ---------------------------------------------------------------------------
3959 dpurdie 16470
    Version: 3.0.0
1373 dpurdie 16471
   --------------------------------------------------------------------------- */
16472
 
3959 dpurdie 16473
    CURSOR packages_cur IS
16474
        SELECT pkg.pkg_id
16475
          FROM packages pkg
16476
         WHERE pkg.pkg_name = SSpkg_name;
16477
    packages_rec packages_cur%ROWTYPE;
1373 dpurdie 16478
 
16479
 
16480
BEGIN
16481
 
3959 dpurdie 16482
    /* ---------------------------------------------------- */
16483
    /* Find if package name exists                          */
16484
    /* ---------------------------------------------------- */
1373 dpurdie 16485
 
3959 dpurdie 16486
    OPEN packages_cur;
16487
    FETCH packages_cur INTO packages_rec;
1373 dpurdie 16488
 
3959 dpurdie 16489
    IF packages_cur%NOTFOUND
16490
    THEN
16491
        -- Create new pkg_name --
16492
        SELECT SEQ_PKG_ID.nextval INTO retPKG_ID FROM DUAL;
1373 dpurdie 16493
 
3959 dpurdie 16494
        INSERT INTO packages ( pkg_id, pkg_name )
16495
        VALUES ( retPKG_ID, SSpkg_name );
1373 dpurdie 16496
 
3959 dpurdie 16497
    ELSE
16498
        retPKG_ID := packages_rec.pkg_id;
1373 dpurdie 16499
 
3959 dpurdie 16500
    END IF;
1373 dpurdie 16501
 
16502
 
3959 dpurdie 16503
    CLOSE packages_cur;
1373 dpurdie 16504
 
3959 dpurdie 16505
END New_Package_Name;
4040 dpurdie 16506
 
1374 dpurdie 16507
/
4040 dpurdie 16508
--------------------------------------------------------
16509
--  DDL for Procedure NEW_PATCH
16510
--------------------------------------------------------
16511
set define off;
16512
 
5172 dpurdie 16513
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_PATCH" ( SSpatch_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
1373 dpurdie 16514
 	   	  		  					  	NNparent_id IN NUMBER,
16515
                                        sPatchIdList IN VARCHAR2,
16516
										NNuser_id IN NUMBER ) IS
16517
/* ---------------------------------------------------------------------------
16518
    Version: 3.5
16519
   --------------------------------------------------------------------------- */
16520
 
16521
    patchPv_id    NUMBER;
16522
	parPkg_id	  NUMBER;
16523
    LastInstallOrder NUMBER;
16524
    isPatchDlocked PACKAGE_VERSIONS.DLOCKED%TYPE;
16525
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
16526
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
16527
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
16528
	oPatchDepCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
16529
 
16530
	CURSOR parent_cur IS
16531
        SELECT pv.*, pkg.pkg_name
16532
          FROM package_versions pv,
16533
		       packages pkg
16534
         WHERE pv.pv_id = NNparent_id
16535
		   AND pv.pkg_id = pkg.pkg_id;
16536
    parent_rec parent_cur%ROWTYPE;
16537
 
16538
    CURSOR patch_cur IS
16539
        SELECT pv.*, pg.pkg_name
16540
          FROM package_versions pv,
16541
		       packages pg
16542
         WHERE pv.pkg_id = parPkg_id
16543
		   AND pv.pkg_version = SSpatch_version
16544
		   AND pv.pkg_id = pg.pkg_id;
16545
    patch_rec patch_cur%ROWTYPE;
16546
 
16547
	CURSOR releases_cur IS
16548
        SELECT rc.pv_id
16549
		  FROM release_content rc
16550
		 WHERE rc.pv_id = patch_rec.pv_id;
16551
    releases_rec releases_cur%ROWTYPE;
16552
 
16553
 
16554
BEGIN
16555
 
16556
	-- Get Last Install Order
16557
    SELECT Count(*) INTO LastInstallOrder
16558
	  FROM PACKAGE_PATCHES pp
16559
	 WHERE pp.PV_ID = NNparent_id;
16560
 
16561
 
16562
    -- Get parent details
16563
	OPEN parent_cur;
16564
    FETCH parent_cur INTO parent_rec;
16565
	parPkg_id := parent_rec.pkg_id;
16566
 
16567
 
16568
	-- Find if patch exists in database
16569
    OPEN patch_cur;
16570
    FETCH patch_cur INTO patch_rec;
16571
 
16572
 
16573
    -- Parent must be official
16574
    IF parent_rec.dlocked = 'Y' THEN
16575
 
16576
	    IF patch_cur%NOTFOUND
16577
	    THEN
16578
        	isPatchDlocked := 'N';
16579
 
16580
	        -- Create new patch version --
16581
	        SELECT SEQ_PV_ID.nextval INTO patchPv_id FROM DUAL;
16582
 
16583
 
16584
	        Split_version ( SSpatch_version, SSV_MM, SSV_NMM, SSV_EXT );
16585
 
16586
	        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 )
16587
				   VALUES (
16588
						   patchPv_id,
16589
	                       parPkg_id,
16590
	                       SSpatch_version,
16591
	                       isPatchDlocked,
16592
	                       ORA_SYSDATE,
16593
	                       NNuser_id,
16594
	                       ORA_SYSDATETIME,
16595
	                       NNuser_id,
16596
	                       SSV_MM,
16597
	                       SSV_NMM,
16598
	                       SSV_EXT,
16599
	                       parent_rec.src_path,
16600
	                       'This is a patch to ' || parent_rec.pkg_name || ' ' || parent_rec.pkg_version,
16601
	                       NNuser_id,
16602
						   'Y',
16603
                           patchPv_id,
16604
						   parent_rec.bs_id,
16605
						   parent_rec.is_autobuildable,
16606
						   parent_rec.ripple_field
16607
 
16608
						   );
16609
 
16610
			INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )
16611
		    	   ( SELECT NNparent_id AS pv_id,
16612
				            pv.pv_id AS patch_id,
16613
	                        LastInstallOrder + 1 AS INSTALL_ORDER
16614
				       FROM package_versions pv
16615
					  WHERE pv.pv_id = patchPv_id
16616
					    AND pv.is_patch = 'Y' );
16617
 
16618
	        /* LOG ACTION */
16619
            Log_Action ( patchPv_id, 'new_version', NNuser_id,
16620
        			     'Patch version created: '|| SSpatch_version );
16621
 
16622
        	Log_Action ( NNparent_id, 'patch_add', NNuser_id,
16623
        			     'New patch created and attached: '|| SSpatch_version );
16624
 
16625
 
16626
	    ELSE
16627
 
16628
		    patchPv_id := patch_rec.pv_id;
16629
	    	isPatchDlocked := patch_rec.dlocked;
16630
 
16631
			-- Find if pv_id exists in release content (i.e. it cannot be a patch)
16632
		    OPEN releases_cur;
16633
		    FETCH releases_cur INTO releases_rec;
16634
 
16635
			IF releases_cur%NOTFOUND
16636
	   		THEN
16637
				-- This pv_id is trully a patch, hence add Y to column IS_PATCH
16638
				UPDATE package_versions SET
16639
					   is_patch = 'Y'
16640
					   WHERE pv_id = patchPv_id;
16641
 
16642
				INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )
16643
			    	   ( SELECT NNparent_id AS pv_id,
16644
					            pv.pv_id AS patch_id,
16645
	                            LastInstallOrder + 1 AS INSTALL_ORDER
16646
					       FROM package_versions pv
16647
						  WHERE pv.pv_id = patchPv_id
16648
						    AND pv.is_patch = 'Y' );
16649
 
16650
			END IF;
16651
 
16652
			CLOSE releases_cur;
16653
 
16654
            /* LOG ACTION */
16655
        	Log_Action ( NNparent_id, 'patch_add', NNuser_id,
16656
        			     'Patch version was found and attached: '|| SSpatch_version );
16657
 
16658
	    END IF;
16659
 
16660
 
16661
 
16662
 
16663
    END IF;
16664
 
16665
 
16666
 
16667
    /* Create Patch Dependencies */
16668
    oPatchDepCollector := IN_LIST_NUMBER ( sPatchIdList );
16669
 
16670
 
16671
    -- Make sure patch is unofficial before altering its dependencies
16672
    IF (oPatchDepCollector.COUNT > 0) AND (isPatchDlocked = 'N') THEN
16673
    	-- Delete Existing Dependencies
16674
        DELETE
16675
          FROM PACKAGE_DEPENDENCIES dep
16676
         WHERE dep.PV_ID = patchPv_id;
16677
 
16678
 
16679
        -- Insert new dependencies
16680
        INSERT INTO PACKAGE_DEPENDENCIES ( PV_ID, DPV_ID, PKG_ID, DPKG_ID, BUILD_TYPE )
16681
        SELECT patchPv_id AS PV_ID,
16682
        	   pv.PV_ID AS DPV_ID,
16683
               parPkg_id AS PKG_ID,
16684
               pv.PKG_ID AS DPKG_ID,
16685
               'L' AS BUILD_TYPE
16686
          FROM PACKAGE_VERSIONS pv
16687
         WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPatchDepCollector AS RELMGR_NUMBER_TAB_t ) ) );
16688
 
16689
 
16690
    END IF;
16691
 
16692
 
16693
    CLOSE parent_cur;
16694
    CLOSE patch_cur;
16695
END New_Patch;
4040 dpurdie 16696
 
1374 dpurdie 16697
/
4040 dpurdie 16698
--------------------------------------------------------
16699
--  DDL for Procedure NEW_UNIT_TEST
16700
--------------------------------------------------------
16701
set define off;
16702
 
5172 dpurdie 16703
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_UNIT_TEST" ( nPv_id IN NUMBER,
3959 dpurdie 16704
                                            nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,
16705
                                            sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
16706
                                            sNumOfTest IN UNIT_TESTS.NUMOF_TEST%TYPE,
16707
                                            sDpkg_path IN VARCHAR2,
16708
                                            sResults IN VARCHAR2,
16709
                                            sCompletion_date IN VARCHAR2,
16710
                                            nCompleted_by IN NUMBER,
16711
											enumTEST_TYPE_AUTOMATIC IN NUMBER,
16712
											enumTEST_TYPE_NOT_DONE IN NUMBER,
16713
											outFileName OUT VARCHAR2
16714
                                           ) IS
16715
/* ---------------------------------------------------------------------------
16716
    Version: 3.2.0
16717
   --------------------------------------------------------------------------- */
1373 dpurdie 16718
 
3959 dpurdie 16719
   	FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
1373 dpurdie 16720
 
3959 dpurdie 16721
    newID NUMBER;
16722
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
16723
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
1373 dpurdie 16724
 
3959 dpurdie 16725
BEGIN
1373 dpurdie 16726
 
3959 dpurdie 16727
	-- Get new ID --
16728
   	SELECT SEQ_UNIT_TESTS.NEXTVAL INTO newID FROM DUAL;
1373 dpurdie 16729
 
3959 dpurdie 16730
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
16731
       	ResultsURL := sResults;
16732
       ELSE
16733
       	IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
16734
        	outFileName := FILENAME_PREFIX || newID ||'_'|| sResults;
16735
    		ResultsAttachment := sDpkg_path || '/' || outFileName;
16736
           END IF;
16737
       END IF;
1373 dpurdie 16738
 
3959 dpurdie 16739
	-- Remove NOT_DONE entry if exists
16740
	DELETE FROM UNIT_TESTS
16741
	 WHERE pv_id = nPv_id
16742
	   AND test_types_fk = enumTEST_TYPE_NOT_DONE;
1373 dpurdie 16743
 
3959 dpurdie 16744
	--- Add Additional Note ---
16745
    INSERT INTO UNIT_TESTS ( TEST_ID,
16746
								PV_ID,
16747
								TEST_TYPES_FK,
16748
								TEST_SUMMARY,
16749
								COMPLETION_DATE,
16750
								COMPLETED_BY,
16751
								RESULTS_URL,
16752
								RESULTS_ATTACHMENT_NAME,
16753
								NUMOF_TEST )
16754
    VALUES (
16755
       	newID,
16756
           nPv_id,
16757
           nTestTypeId,
16758
           sTest_summary,
16759
           TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
16760
           nCompleted_by,
16761
           ResultsURL,
16762
           ResultsAttachment,
16763
		   sNumOfTest );
1373 dpurdie 16764
 
3959 dpurdie 16765
END New_Unit_Test;
4040 dpurdie 16766
 
1374 dpurdie 16767
/
4040 dpurdie 16768
--------------------------------------------------------
16769
--  DDL for Procedure PAOLO_BUILD_TREE
16770
--------------------------------------------------------
16771
set define off;
16772
 
5172 dpurdie 16773
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."PAOLO_BUILD_TREE" ( nRtag_id IN NUMBER ) IS
1373 dpurdie 16774
 
3959 dpurdie 16775
    sessionNumber NUMBER := 0;
16776
    iteration NUMBER := 1; 
16777
    rowCnt NUMBER := 0;
16778
    maxIterations 	NUMBER := 50;
16779
 
1373 dpurdie 16780
BEGIN
3959 dpurdie 16781
 
16782
 
16783
    INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
16784
    SELECT sessionNumber, iteration, rc.PV_ID
16785
      FROM RELEASE_CONTENT rc
16786
     WHERE rc.RTAG_ID = nRtag_id;
16787
 
16788
    iteration := iteration + 1;
16789
    LOOP
16790
 
16791
        INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
16792
		SELECT sessionNumber,     
16793
               iteration,
16794
               dep.DPV_ID
16795
          FROM TEMP_TREE_BROWSE ttb,
16796
               PACKAGE_DEPENDENCIES dep
16797
         WHERE dep.PV_ID = ttb.PV_ID 
16798
           AND ttb.LEVEL_NUM = iteration - 1 
16799
 
16800
         MINUS  
16801
 
16802
        SELECT sessionNumber, iteration, ttb.PV_ID
16803
          FROM TEMP_TREE_BROWSE ttb;   
16804
 
16805
 
16806
 
16807
 
16808
		rowCnt := SQL%ROWCOUNT;
16809
		IF rowCnt > 0 THEN
16810
           iteration := iteration + 1;
16811
		END IF;
16812
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
16813
    END LOOP; 
16814
 
16815
END PAOLO_Build_Tree;
4040 dpurdie 16816
 
1374 dpurdie 16817
/
4040 dpurdie 16818
--------------------------------------------------------
5384 dpurdie 16819
--  DDL for Procedure REBUILD_DEPRECATE_STATE
16820
--------------------------------------------------------
16821
set define off;
16822
 
16823
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REBUILD_DEPRECATE_STATE" ( nRtagId IN INT ) AS 
16824
BEGIN
16825
 
16826
  --  Clear the 'calculated' values from the Release Conetnts
16827
  --
16828
  UPDATE RELEASE_CONTENT
16829
      SET DEPRECATED_STATE = NULL
16830
  WHERE RTAG_ID =  nRtagId
16831
  AND DEPRECATED_STATE != 6 
16832
  AND DEPRECATED_STATE is NOT NULL;
16833
 
16834
  --
16835
  --  Insert new calculated values into the table
16836
  --  Use of 'AAA' speeds up the CONNECT BY PRIOR query (lots)
16837
  UPDATE RELEASE_CONTENT
16838
      SET DEPRECATED_STATE = 7
16839
  WHERE RTAG_ID =  nRtagId
16840
  AND DEPRECATED_STATE is null
16841
  AND PV_ID in (
16842
        WITH AAA AS
16843
          (SELECT pd.*
16844
          FROM PACKAGE_DEPENDENCIES pd,
16845
            RELEASE_CONTENT RC1
16846
          WHERE rc1.rtag_id = nRtagId
16847
          AND RC1.PV_ID     = pd.PV_ID
16848
          )
16849
      SELECT DISTINCT qry.PV_ID
16850
      FROM
16851
        (SELECT dep.*,
16852
          LEVEL AS LEVEL_NUM
16853
        FROM AAA dep
16854
          START WITH dep.DPV_ID IN ( 
16855
                SELECT rc.pv_id as pv_id
16856
                FROM RELEASE_CONTENT rc
16857
                WHERE rc.rtag_id  = nRtagId
16858
                AND rc.DEPRECATED_STATE = 6 )
16859
          CONNECT BY PRIOR dep.PV_ID = dep.DPV_ID
16860
        ) qry,
16861
        PACKAGES pkg,
16862
        PACKAGE_VERSIONS pv,
16863
        RELEASE_CONTENT rc
16864
      WHERE qry.PV_ID          = pv.PV_ID
16865
      AND pv.PKG_ID            = pkg.PKG_ID
16866
      AND rc.RTAG_ID           = nRtagId
16867
      AND rc.PV_ID             = qry.PV_ID
16868
      );
16869
END REBUILD_DEPRECATE_STATE;
16870
 
16871
/
16872
--------------------------------------------------------
4040 dpurdie 16873
--  DDL for Procedure REBUILD_ENVIRONMENT
16874
--------------------------------------------------------
16875
set define off;
16876
 
5172 dpurdie 16877
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REBUILD_ENVIRONMENT" ( NNrtag_id IN NUMBER ) IS
5384 dpurdie 16878
  --
16879
  --  Recalculate the package_state
16880
  --  Triggered by the Web Interface
16881
  --
1373 dpurdie 16882
    rowCnt NUMBER := 0;
16883
    iteration NUMBER := 2;          -- Iterations counter
5384 dpurdie 16884
    maxIterations NUMBER := 30;     -- Maximum number of iterations allowed.
1373 dpurdie 16885
                                    -- This will prevent infinite loops if cyrcular dependencies are found
16886
    sessionNum NUMBER;
16887
BEGIN
16888
    SELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;
16889
 
16890
 
16891
    -- Redo Patch Ignore warnings
16892
    Ignore_Dependency_Warnings ( NNrtag_id, NULL, NULL, TRUE );
16893
 
5384 dpurdie 16894
    Level_One_Conflicts ( NNrtag_id, sessionNum );
16895
    --commit;
1373 dpurdie 16896
 
16897
    LOOP
16898
        Level_N_Conflicts ( NNrtag_id, sessionNum, rowCnt, iteration );
5384 dpurdie 16899
        --commit;
1373 dpurdie 16900
        iteration := iteration + 1;
16901
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
16902
    END LOOP;
5172 dpurdie 16903
 
1373 dpurdie 16904
    Update_Package_States ( NNrtag_id, sessionNum );
16905
 
5384 dpurdie 16906
    DELETE FROM temp_env_states WHERE session_num = sessionNum;
16907
    DELETE FROM TEMP_ENV_DEPS WHERE session_num = sessionNum;
1373 dpurdie 16908
 
16909
    -- Flag Packages with New Patches Available
16910
    Check_New_Patches ( NNrtag_id );
16911
 
16912
	Clean_Do_Not_Ripple( NNrtag_id );
16913
 
16914
 
16915
	/* Circular Dependency Flag */
16916
    /*
16917
	IF iteration > maxIterations
16918
	THEN
16919
		UPDATE release_tags SET
16920
		   	   circular_dependency = 'Y'
16921
		 WHERE rtag_id = NNrtag_id;
16922
	ELSE
16923
		UPDATE release_tags SET
16924
		   	   circular_dependency = NULL
16925
		 WHERE rtag_id = NNrtag_id;
16926
	END IF;
16927
    */
16928
END Rebuild_Environment;
4040 dpurdie 16929
 
1374 dpurdie 16930
/
4040 dpurdie 16931
--------------------------------------------------------
16932
--  DDL for Procedure REMOVE_COMPONENTS
16933
--------------------------------------------------------
16934
set define off;
16935
 
5172 dpurdie 16936
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_COMPONENTS" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE ) IS
3959 dpurdie 16937
/* ---------------------------------------------------------------------------
16938
    Version: 3.0.0
16939
   --------------------------------------------------------------------------- */
16940
 
16941
 
16942
BEGIN
16943
 
16944
	 --- Delete From RELEASE_COMPONENTS
16945
	 DELETE FROM RELEASE_COMPONENTS
16946
	 WHERE PV_ID = nPvId;
16947
 
16948
END Remove_Components;
4040 dpurdie 16949
 
3959 dpurdie 16950
/
4040 dpurdie 16951
--------------------------------------------------------
16952
--  DDL for Procedure REMOVE_DOCUMENT
16953
--------------------------------------------------------
16954
set define off;
16955
 
5172 dpurdie 16956
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_DOCUMENT" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 16957
											  nDocId IN PACKAGE_DOCUMENTS.DOC_ID%TYPE,
16958
                                              nUserId IN NUMBER ) IS
16959
/* ---------------------------------------------------------------------------
16960
    Version: 3.0
16961
   --------------------------------------------------------------------------- */
16962
 
16963
   DocNumber PACKAGE_DOCUMENTS.DOC_NUM%TYPE;
16964
 
16965
BEGIN
16966
 
16967
	-- Get Doc Num
16968
    SELECT pd.DOC_NUM INTO DocNumber
16969
      FROM PACKAGE_DOCUMENTS pd
16970
     WHERE pd.PV_ID = nPvId
16971
       AND pd.DOC_ID = nDocId;
16972
 
16973
 
16974
	-- Delete Document
16975
    DELETE
16976
      FROM PACKAGE_DOCUMENTS pd
16977
     WHERE pd.PV_ID = nPvId
16978
       AND pd.DOC_ID = nDocId;
16979
 
16980
 
16981
    /* LOG ACTION */
16982
   	Log_Action ( nPvId, 'document_remove', nUserId,
16983
   			     'Document number: '|| DocNumber );
16984
 
16985
 
16986
END Remove_Document;
4040 dpurdie 16987
 
3959 dpurdie 16988
/
4040 dpurdie 16989
--------------------------------------------------------
16990
--  DDL for Procedure REMOVE_PACKAGE_INTEREST
16991
--------------------------------------------------------
16992
set define off;
16993
 
5172 dpurdie 16994
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PACKAGE_INTEREST" (nProjId IN PROJECTS.PROJ_ID%TYPE,
3959 dpurdie 16995
	   	  		  								  	nPkgId IN PACKAGES.PKG_ID%TYPE,
16996
												  	nUserId IN NUMBER
16997
	   	  		  									) IS
16998
 
1373 dpurdie 16999
/******************************************************************************
3959 dpurdie 17000
   NAME:       REMOVE_PACKAGE_INTEREST
17001
   PURPOSE:    To remove interest in a given package per project
1373 dpurdie 17002
 
17003
   REVISIONS:
17004
   Ver        Date        Author           Description
17005
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 17006
   1.0        12/05/2006  Rupesh Solanki      1. Created this procedure.
1373 dpurdie 17007
 
17008
   NOTES:
17009
 
17010
   Automatically available Auto Replace Keywords:
3959 dpurdie 17011
      Object Name:     REMOVE_PACKAGE_INTEREST
17012
      Sysdate:         12/05/2006
17013
      Date and Time:   12/05/2006, 11:28:50 AM, and 12/05/2006 11:28:50 AM
1373 dpurdie 17014
      Username:         (set in TOAD Options, Procedure Editor)
17015
      Table Name:       (set in the "New PL/SQL Object" dialog)
17016
 
17017
******************************************************************************/
17018
BEGIN
17019
 
3959 dpurdie 17020
	 --Delete from PACKAGE_INTEREST
17021
	 DELETE FROM PACKAGE_INTEREST
17022
	 WHERE PROJ_ID = nProjId
17023
	 AND PKG_ID = nPkgId
17024
	 AND USER_ID = nUserId;
17025
 
17026
END REMOVE_PACKAGE_INTEREST;
4040 dpurdie 17027
 
1374 dpurdie 17028
/
4040 dpurdie 17029
--------------------------------------------------------
17030
--  DDL for Procedure REMOVE_PATCH
17031
--------------------------------------------------------
17032
set define off;
17033
 
5172 dpurdie 17034
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PATCH" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
3959 dpurdie 17035
										   nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
17036
                                           nUserId IN NUMBER ) IS
1373 dpurdie 17037
/* ---------------------------------------------------------------------------
3959 dpurdie 17038
    Version: 4.0
1373 dpurdie 17039
   --------------------------------------------------------------------------- */
17040
 
3959 dpurdie 17041
PatchVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
1373 dpurdie 17042
 
3959 dpurdie 17043
CURSOR curPatch IS
17044
	SELECT pp.PV_ID,
17045
		   pp.PATCH_ID,
17046
	       ROWNUM AS NEW_INSTALL_ORDER
17047
	  FROM PACKAGE_PATCHES pp
17048
	 WHERE pp.PV_ID = nPvId
17049
	ORDER BY pp.INSTALL_ORDER;
17050
recPatch curPatch%ROWTYPE;
17051
 
1373 dpurdie 17052
BEGIN
17053
 
3959 dpurdie 17054
	 -- Delete Patch
17055
     DELETE
17056
       FROM PACKAGE_PATCHES pp
17057
      WHERE pp.PV_ID = nPvId
17058
        AND pp.PATCH_ID = nPatchId;
1373 dpurdie 17059
 
17060
 
3959 dpurdie 17061
	-- Redo Install Order
17062
    OPEN curPatch;
17063
	FETCH curPatch INTO recPatch;
17064
 
17065
	WHILE curPatch%FOUND
17066
	LOOP
17067
 
17068
		UPDATE PACKAGE_PATCHES pp SET
17069
			pp.INSTALL_ORDER = recPatch.NEW_INSTALL_ORDER
17070
		WHERE pp.PV_ID = nPvId
17071
		  AND pp.PATCH_ID = recPatch.PATCH_ID;
17072
 
17073
		FETCH curPatch INTO recPatch;
17074
	END LOOP;
17075
 
17076
	CLOSE curPatch;
17077
 
17078
 
17079
 
17080
 
17081
    /* LOG ACTION */
17082
    SELECT pv.PKG_VERSION INTO PatchVersion
1373 dpurdie 17083
      FROM PACKAGE_VERSIONS pv
3959 dpurdie 17084
     WHERE pv.PV_ID = nPatchId;
1373 dpurdie 17085
 
3959 dpurdie 17086
   	Log_Action ( nPvId, 'patch_remove', nUserId,
17087
   			     'Version: '|| PatchVersion );
1373 dpurdie 17088
 
3959 dpurdie 17089
END Remove_Patch;
4040 dpurdie 17090
 
1374 dpurdie 17091
/
4040 dpurdie 17092
--------------------------------------------------------
17093
--  DDL for Procedure REMOVE_PROJECT_VIEW_OWNER
17094
--------------------------------------------------------
17095
set define off;
17096
 
5172 dpurdie 17097
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PROJECT_VIEW_OWNER" (nProjId IN NUMBER,
3959 dpurdie 17098
	   	  		  						 			  nViewId IN NUMBER,
17099
										 			  sUserIdList IN VARCHAR2,
17100
										 			  nUserId IN NUMBER ) IS
1373 dpurdie 17101
 
3959 dpurdie 17102
GroupId NUMBER;													  
17103
 
17104
 
17105
 
1373 dpurdie 17106
/******************************************************************************
3959 dpurdie 17107
   NAME:       UPDATE_VIEW
17108
   PURPOSE:    
1373 dpurdie 17109
 
17110
   REVISIONS:
3959 dpurdie 17111
   Ver        Date        Author           		Description
1373 dpurdie 17112
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 17113
   1.0        10/04/2006     Rupesh Solanki     1. Created this procedure.
1373 dpurdie 17114
 
17115
   NOTES:
17116
 
17117
   Automatically available Auto Replace Keywords:
3959 dpurdie 17118
      Object Name:     UPDATE_VIEW
17119
      Sysdate:         10/04/2006
17120
      Date and Time:   10/04/2006, 1:55:19 PM, and 10/04/2006 1:55:19 PM
1373 dpurdie 17121
      Username:         (set in TOAD Options, Procedure Editor)
17122
      Table Name:       (set in the "New PL/SQL Object" dialog)
17123
 
17124
******************************************************************************/
17125
 
17126
BEGIN
3959 dpurdie 17127
	 SELECT GROUP_EMAIL_ID into GroupId
17128
	 FROM AUTOBUILD_FAILURE
17129
	 WHERE PROJ_ID = nProjId
17130
	 AND VIEW_ID = nViewId;
17131
 
17132
	 DELETE FROM MEMBERS_GROUP
17133
	 WHERE GROUP_EMAIL_ID = GroupId
17134
	 AND USER_ID IN (
17135
	 SELECT * FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual ) 
17136
	 );
17137
 
1373 dpurdie 17138
 
3959 dpurdie 17139
 
17140
END REMOVE_PROJECT_VIEW_OWNER;
4040 dpurdie 17141
 
3959 dpurdie 17142
/
4040 dpurdie 17143
--------------------------------------------------------
17144
--  DDL for Procedure REMOVE_RELEASE_CONTENT
17145
--------------------------------------------------------
17146
set define off;
17147
 
5172 dpurdie 17148
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_RELEASE_CONTENT" ( sPvIdList IN VARCHAR2,
3959 dpurdie 17149
													 sNotPvIdList IN VARCHAR2,
17150
                                                     nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS
17151
/* ---------------------------------------------------------------------------
17152
    Version: 3.0
17153
   --------------------------------------------------------------------------- */
1373 dpurdie 17154
 
3959 dpurdie 17155
oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
17156
oNotPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
1373 dpurdie 17157
 
3959 dpurdie 17158
BEGIN
17159
	oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
17160
    oNotPvIdCollector := IN_LIST_NUMBER ( sNotPvIdList );
17161
 
17162
    -- Delete From Release Content
17163
    DELETE
17164
      FROM RELEASE_CONTENT
17165
	 WHERE rtag_id = nRTagId
17166
	   AND pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
17167
	   AND NOT pv_id IN ( SELECT * FROM TABLE ( CAST ( oNotPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
17168
 
17169
 
17170
 
17171
END Remove_Release_Content;
4040 dpurdie 17172
 
1374 dpurdie 17173
/
4040 dpurdie 17174
--------------------------------------------------------
17175
--  DDL for Procedure REMOVE_RUNTIME
17176
--------------------------------------------------------
17177
set define off;
17178
 
5172 dpurdie 17179
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_RUNTIME" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 17180
											 nRuntimeId IN RUNTIME_DEPENDENCIES.RTD_ID%TYPE,
17181
                                             nUserId IN NUMBER ) IS
17182
/* ---------------------------------------------------------------------------
17183
    Version: 3.0
17184
   --------------------------------------------------------------------------- */
17185
 
17186
   RuntimeDependency VARCHAR2(4000);
17187
 
17188
BEGIN
17189
 
17190
	-- Get Runtime dependency
17191
    SELECT pkg.PKG_NAME ||' '|| pv.PKG_VERSION  INTO RuntimeDependency
17192
	  FROM RUNTIME_DEPENDENCIES rtd,
17193
	  	   PACKAGES pkg,
17194
	       PACKAGE_VERSIONS pv
17195
	 WHERE rtd.PV_ID = nPvId
17196
	   AND pv.PKG_ID = pkg.PKG_ID
17197
	   AND rtd.RTD_ID = pv.PV_ID
17198
	   AND rtd.RTD_ID = nRuntimeId;
17199
 
17200
 
17201
	-- Delete Document
17202
    DELETE
17203
      FROM RUNTIME_DEPENDENCIES rtd
17204
     WHERE rtd.PV_ID = nPvId
17205
       AND rtd.RTD_ID = nRuntimeId;
17206
 
17207
 
17208
    /* LOG ACTION */
17209
   	Log_Action ( nPvId, 'runtime_remove', nUserId,
17210
   			     'Runtime package: '|| RuntimeDependency );
17211
 
17212
 
17213
END Remove_Runtime;
4040 dpurdie 17214
 
3959 dpurdie 17215
/
4040 dpurdie 17216
--------------------------------------------------------
17217
--  DDL for Procedure RENAME_PACKAGE_VERSION
17218
--------------------------------------------------------
17219
set define off;
17220
 
5172 dpurdie 17221
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RENAME_PACKAGE_VERSION" ( NNpv_id IN NUMBER,
4211 dpurdie 17222
                                  SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
17223
                                  cBuildType IN CHAR,
17224
                                  cChangeType IN CHAR,
17225
                                  NNuser_id IN NUMBER,
17226
                                  errMessage OUT VARCHAR2 ) IS
3959 dpurdie 17227
/* ---------------------------------------------------------------------------
17228
    Version: 3.2
17229
   --------------------------------------------------------------------------- */
17230
 
17231
    sPackageVersion VARCHAR2(4000);
4211 dpurdie 17232
    sLabel VARCHAR2(4000) := NULL;
17233
    sChangeType VARCHAR2(100) := NULL;
17234
    uChangeType CHAR := cChangeType;
3959 dpurdie 17235
    OldPkgVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
17236
 
17237
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
17238
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
17239
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
17240
 
17241
    CURSOR package_versions_cur IS
17242
        SELECT pv_id
4211 dpurdie 17243
          FROM package_versions
17244
         WHERE pkg_id IN ( SELECT pkg_id FROM package_versions WHERE pv_id = NNpv_id )
17245
           AND pkg_version = SSpkg_version;
3959 dpurdie 17246
    package_versions_rec package_versions_cur%ROWTYPE;
17247
 
17248
 
17249
BEGIN
17250
 
17251
    /* ---------------------------------------------------- */
17252
    /* Find if package_version exists                       */
17253
    /* ---------------------------------------------------- */
17254
 
4211 dpurdie 17255
    errMessage := NULL;
3959 dpurdie 17256
 
4211 dpurdie 17257
    -- Get previous version
17258
    SELECT pv.PKG_VERSION INTO OldPkgVersion
3959 dpurdie 17259
      FROM PACKAGE_VERSIONS pv
17260
     WHERE pv.PV_ID = NNpv_id;
17261
 
4211 dpurdie 17262
    sPackageVersion := SSpkg_version;
3959 dpurdie 17263
 
4211 dpurdie 17264
    IF OldPkgVersion != sPackageVersion THEN
3959 dpurdie 17265
 
4211 dpurdie 17266
        OPEN package_versions_cur;
17267
        FETCH package_versions_cur INTO package_versions_rec;
3959 dpurdie 17268
 
4211 dpurdie 17269
        IF package_versions_cur%NOTFOUND
17270
        THEN
3959 dpurdie 17271
 
4211 dpurdie 17272
            -- Split current version in parts
17273
            Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
3959 dpurdie 17274
 
17275
 
4211 dpurdie 17276
                -- Automated built config
17277
                IF ( cBuildType = 'M' ) THEN
17278
                    uChangeType := 'F';
17279
                END IF;  
17280
 
17281
                -- Automated version numbering
17282
                -- Make sure that version is still unique
17283
                IF (uChangeType != 'F') THEN
17284
                    sPackageVersion := '('|| NNpv_id ||')'|| SSV_EXT;
17285
                END IF;
3959 dpurdie 17286
 
4211 dpurdie 17287
                -- Packge version not found, hence rename it.
17288
                UPDATE package_versions
17289
                   SET pkg_version = sPackageVersion,
17290
                       v_mm = SSV_MM,
17291
                       v_nmm = SSV_NMM,
17292
                       v_ext = SSV_EXT,
17293
                       modified_stamp = ORA_SYSDATETIME,
17294
                       modifier_id = NNuser_id,
17295
                       build_type = cBuildType,
17296
                       change_type = uChangeType,
17297
                       pkg_label = NULL
17298
                 WHERE pv_id = NNpv_id;
17299
 
17300
                sLabel := GET_AUTOMATED_LABEL( NNpv_id );
17301
                UPDATE PACKAGE_VERSIONS pv SET
17302
                    pv.PKG_LABEL = sLabel
17303
                WHERE pv_id = NNpv_id;
3959 dpurdie 17304
 
17305
 
4211 dpurdie 17306
              /* LOG ACTION */
17307
              IF (cChangeType = 'F') THEN
17308
                  Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| sPackageVersion );
17309
              ELSE 
17310
 
17311
                  IF cChangeType = 'M' THEN
17312
                    sChangeType := 'Major Change';
17313
                  ELSIF cChangeType = 'N' THEN 
17314
                    sChangeType := 'Minor Change';
17315
                  ELSIF cChangeType = 'P' THEN 
17316
                    sChangeType := 'Patch Change';
17317
                  ELSE
17318
                    sChangeType := 'Unknown Change';
17319
                  END IF;
3959 dpurdie 17320
 
4211 dpurdie 17321
                  Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| sPackageVersion || ',' || sChangeType );
17322
              END IF;
3959 dpurdie 17323
 
4211 dpurdie 17324
        ELSE
17325
            -- Package version exists. Cannot proceed.
17326
            errMessage := 'enum_MSG_VERSION_EXISTS';
3959 dpurdie 17327
 
4211 dpurdie 17328
        END IF;
3959 dpurdie 17329
 
4211 dpurdie 17330
        CLOSE package_versions_cur;
3959 dpurdie 17331
 
4211 dpurdie 17332
    END IF;
3959 dpurdie 17333
 
17334
END Rename_Package_Version;
4040 dpurdie 17335
 
3959 dpurdie 17336
/
4040 dpurdie 17337
--------------------------------------------------------
17338
--  DDL for Procedure RESET_IGNORE_WARNINGS
17339
--------------------------------------------------------
17340
set define off;
17341
 
5172 dpurdie 17342
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RESET_IGNORE_WARNINGS" ( sPvIdList IN VARCHAR2,
3959 dpurdie 17343
                                                    nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS
17344
/* ---------------------------------------------------------------------------
17345
    Version: 5.0
17346
   --------------------------------------------------------------------------- */
17347
 
17348
oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
17349
 
17350
BEGIN
17351
	oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
17352
 
17353
    -- Remove Ignore Warnings
17354
     DELETE
17355
       FROM ignore_warnings
17356
	  WHERE (rtag_id, pv_id, dpv_id) IN
17357
	     (
17358
	      SELECT igw.rtag_id, igw.pv_id, igw.dpv_id
17359
	        FROM ignore_warnings igw,
17360
	             package_versions dpv,
17361
	             package_versions pv
17362
	       WHERE igw.dpv_id = dpv.pv_id
17363
	         AND igw.rtag_id = nRTagId
17364
	         AND dpv.pkg_id = pv.pkg_id
17365
	         AND NVL(dpv.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|')
17366
	         AND pv.pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
17367
         );
17368
 
17369
END Reset_Ignore_Warnings;
4040 dpurdie 17370
 
3959 dpurdie 17371
/
4040 dpurdie 17372
--------------------------------------------------------
17373
--  DDL for Procedure RIPPLE_PACKAGE
17374
--------------------------------------------------------
17375
set define off;
17376
 
5172 dpurdie 17377
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RIPPLE_PACKAGE" (
3959 dpurdie 17378
        sPvIdList IN VARCHAR2,
17379
        nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
17380
        nUserId IN NUMBER
17381
    ) IS
17382
/* ---------------------------------------------------------------------------
17383
    Version: 4.1
17384
   --------------------------------------------------------------------------- */
17385
 
17386
BEGIN
17387
 
17388
    IF (sPvIdList IS NULL) THEN
17389
        RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
17390
    END IF;
17391
 
17392
    -- Ripple Package
17393
    DELETE FROM DO_NOT_RIPPLE
17394
    WHERE RTAG_ID = nRtagId
17395
    AND PV_ID IN (
17396
        SELECT *
17397
        FROM THE (
17398
            SELECT CAST( IN_LIST_NUMBER( sPvIdList )
17399
            AS RELMGR_NUMBER_TAB_t )
17400
            FROM DUAL
17401
        )
17402
    );
17403
 
5172 dpurdie 17404
    -- Mark Release Changed for build
17405
    PK_RELEASE.SET_RELEASE_MODIFIED(nRtagId);
17406
 
3959 dpurdie 17407
    /* LOG ACTION */
17408
    Log_Action_Bulk ( sPvIdList, 'ripple_package', nUserId );
17409
 
17410
END Ripple_Package;
4040 dpurdie 17411
 
3959 dpurdie 17412
/
4040 dpurdie 17413
--------------------------------------------------------
17414
--  DDL for Procedure SEED_PACKAGE_NAMES_VERSIONS
17415
--------------------------------------------------------
17416
set define off;
17417
 
5172 dpurdie 17418
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
4585 dpurdie 17419
                                          SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
17420
                                          NNuser_id IN NUMBER,
17421
                                          retPV_ID OUT NUMBER,
17422
                                          nCloneFromPvId IN NUMBER DEFAULT NULL,
17423
                                          nBuildType IN CHAR DEFAULT 'M',
17424
                                          nChangeType IN CHAR DEFAULT 'F') IS
3959 dpurdie 17425
/* ---------------------------------------------------------------------------
5172 dpurdie 17426
    Version: 5.0
3959 dpurdie 17427
   --------------------------------------------------------------------------- */
17428
 
17429
    parPkg_id   NUMBER;
17430
    parPv_id    NUMBER;
17431
    cloneFrom_pv_id NUMBER;
17432
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
17433
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
17434
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
17435
    spackageversion VARCHAR2 (4000);
4211 dpurdie 17436
    slabel VARCHAR2 (4000) := NULL;
3959 dpurdie 17437
 
17438
    CURSOR packages_cur IS
17439
        SELECT pkg_id FROM PACKAGES
17440
        WHERE pkg_name = SSpkg_name;
17441
    packages_rec packages_cur%ROWTYPE;
17442
 
17443
    CURSOR package_versions_cur IS
17444
        SELECT pv_id FROM PACKAGE_VERSIONS
17445
        WHERE pkg_id = parPkg_id
17446
        AND pkg_version = SSpkg_version;
17447
    package_versions_rec package_versions_cur%ROWTYPE;
17448
 
17449
    CURSOR clone_package_versions_cur IS
17450
        SELECT MAX(pv_id) AS pv_id
17451
          FROM PACKAGE_VERSIONS
17452
         WHERE pkg_id = parPkg_id
17453
           AND NVL(v_ext,'LINK_A_NULL') = NVL(SSV_EXT,'LINK_A_NULL');
17454
    clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
17455
 
17456
BEGIN
17457
    /* -------------------------------------------- */
17458
    /* Find if pkg_name exists and seed if required */
17459
    /* -------------------------------------------- */
17460
    OPEN packages_cur;
17461
    FETCH packages_cur INTO packages_rec;
17462
 
17463
    IF packages_cur%NOTFOUND
17464
    THEN
17465
        /* INSERT into packages table */
17466
        SELECT SEQ_PKG_ID.NEXTVAL INTO parPkg_id FROM DUAL;
17467
        INSERT INTO PACKAGES ( pkg_id, pkg_name ) VALUES ( parPkg_id, SSpkg_name );
17468
 
17469
    ELSE
17470
        parPkg_id := packages_rec.pkg_id;
17471
 
17472
    END IF;
17473
 
17474
    CLOSE packages_cur;
17475
 
17476
 
17477
    /* ---------------------------------------------------- */
17478
    /* Find if package_version exists and seed if required  */
17479
    /* ---------------------------------------------------- */
17480
    OPEN package_versions_cur;
17481
    FETCH package_versions_cur INTO package_versions_rec;
17482
 
17483
    IF package_versions_cur%NOTFOUND
17484
    THEN
17485
        SELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;
17486
 
17487
        /* Generate automated version Number */
17488
        Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
17489
        spackageversion := SSpkg_version;
17490
 
4211 dpurdie 17491
        IF ( nChangeType <> 'F' )
3959 dpurdie 17492
        THEN
17493
            spackageversion := '(' || parPv_id || ')' || SSV_EXT;
17494
        END If;
17495
 
17496
        /* LOG ACTION */
17497
        Log_Action ( parPv_id, 'new_version', NNuser_id,
17498
                     'New package version: '|| spackageversion );
17499
 
17500
 
4585 dpurdie 17501
        /*  Determine clone source for new package-version
17502
            Use nCloneFromPvId - iff provided
17503
            Use most recently created pkgName/pkgExtension - if it exists
17504
            Else create a brand new package-version
17505
        */
3959 dpurdie 17506
 
4585 dpurdie 17507
        IF ( NOT nCloneFromPvId IS NULL) THEN
17508
            cloneFrom_pv_id := nCloneFromPvId;
17509
        ELSE
17510
            /* Find similar pkg_name + ext to clone from */
17511
            OPEN clone_package_versions_cur;
17512
            FETCH clone_package_versions_cur INTO clone_package_versions_rec;
17513
            CLOSE clone_package_versions_cur;
3959 dpurdie 17514
 
4585 dpurdie 17515
            IF ( NOT clone_package_versions_rec.pv_id IS NULL) THEN
17516
                cloneFrom_pv_id := clone_package_versions_rec.pv_id;
3959 dpurdie 17517
            ELSE
4585 dpurdie 17518
                cloneFrom_pv_id := NULL;
3959 dpurdie 17519
            END IF;
17520
 
4585 dpurdie 17521
        END IF;
17522
 
17523
        IF NOT cloneFrom_pv_id IS NULL
17524
        THEN
3959 dpurdie 17525
            -- Clone Package Version Details --
17526
            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,
17527
                                           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  )
17528
                SELECT parPv_id         AS pv_id,
17529
                       parPkg_id        AS pkg_id,
17530
                       spackageversion  AS pkg_version,
17531
                       'N'              AS dlocked,
17532
                       Ora_Sysdate      AS created_stamp,
17533
                       NNuser_id        AS creator_id,
17534
                       Ora_Sysdatetime  AS modified_stamp,
17535
                       NNuser_id        AS modifier_id,
17536
                       SSV_MM           AS V_MM,
17537
                       SSV_NMM          AS V_NMM,
17538
                       SSV_EXT          AS V_EXT,
17539
                       pv.src_path,
17540
                       pv.pv_description,
17541
                       pv.PV_OVERVIEW,
17542
                       cloneFrom_pv_id  AS LAST_PV_ID,
17543
                       pv.owner_id,
17544
                       nBuildType       AS BUILD_TYPE,
17545
                       pv.IS_BUILD_ENV_REQUIRED,
17546
                       pv.BS_ID,
17547
                       pv.is_autobuildable,
17548
                       pv.IS_DEPLOYABLE, 
17549
                       pv.ripple_field,
17550
                       nChangeType       AS change_type
17551
                  FROM PACKAGE_VERSIONS pv
17552
                 WHERE pv.pv_id = cloneFrom_pv_id;
17553
 
17554
            Basic_Clone ( cloneFrom_pv_id, parPv_id, NULL, NNuser_id, parPkg_id, 0 );
17555
 
17556
        ELSE
17557
            /* BRAND NEW version + ext */
17558
            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 )
17559
            VALUES (
17560
                    parPv_id,
17561
                    parPkg_id,
17562
                    spackageversion,
17563
                    'N',
17564
                    Ora_Sysdate,
17565
                    NNuser_id,
17566
                    Ora_Sysdatetime,
17567
                    NNuser_id,
17568
                    SSV_MM,
17569
                    SSV_NMM,
17570
                    SSV_EXT,
17571
                    NNuser_id,
17572
                    parPv_id,
17573
                    nBuildType,
17574
                    'b',
17575
                    nChangeType
17576
                   );
17577
        END IF;
17578
 
4211 dpurdie 17579
        /* Insert initial package label */
17580
        slabel := get_automated_label (parPv_id);
17581
        UPDATE package_versions pv
17582
        SET pv.pkg_label = slabel
17583
        WHERE pv.pv_id = parPv_id;
17584
 
3959 dpurdie 17585
        retPV_ID := parPv_id;
17586
 
17587
    ELSE
17588
        retPV_ID := package_versions_rec.pv_id;
17589
 
17590
    END IF;
17591
 
17592
    CLOSE package_versions_cur;
17593
 
17594
END Seed_Package_Names_Versions;
4040 dpurdie 17595
 
3959 dpurdie 17596
/
4040 dpurdie 17597
--------------------------------------------------------
17598
--  DDL for Procedure SET_ADVISORY_RIPPLE
17599
--------------------------------------------------------
17600
set define off;
17601
 
5172 dpurdie 17602
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
1373 dpurdie 17603
	   	  		  							   nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
17604
											 nUserId IN NUMBER ) IS
17605
/* ---------------------------------------------------------------------------
17606
    Version: 4.0
17607
   --------------------------------------------------------------------------- */
17608
 
17609
BEGIN
17610
 
3959 dpurdie 17611
    -- Set Advisory Ripple Package
17612
    INSERT INTO ADVISORY_RIPPLE (RTAG_ID, PV_ID)
17613
	VALUES (nRtagId, nPvId);
1373 dpurdie 17614
 
17615
    /* LOG ACTION */
3959 dpurdie 17616
   	Log_Action ( nPvId, 'set_advisory_ripple', nUserId );
1373 dpurdie 17617
 
17618
	/*Rebuild_Environment(nRtagId);*/
17619
 
3959 dpurdie 17620
END Set_Advisory_Ripple;
4040 dpurdie 17621
 
1374 dpurdie 17622
/
4040 dpurdie 17623
--------------------------------------------------------
17624
--  DDL for Procedure SET_PACKAGE_BUILD_ENV
17625
--------------------------------------------------------
17626
set define off;
17627
 
5172 dpurdie 17628
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,
3959 dpurdie 17629
	   	  		  								  	sBuildEnvIdList IN VARCHAR2 ) IS
1373 dpurdie 17630
/* ---------------------------------------------------------------------------
3959 dpurdie 17631
    Last Modified: Rupesh Solanki
17632
	Version: 3.0.1
1373 dpurdie 17633
   --------------------------------------------------------------------------- */
17634
 
17635
 
17636
BEGIN
17637
 
3959 dpurdie 17638
   -- Delete Current Build Env settings
17639
   DELETE FROM PACKAGE_BUILD_ENV
17640
   WHERE pv_id = nPvId;
17641
 
17642
   -- Delet Current Package Build Info Settings
17643
   DELETE FROM PACKAGE_BUILD_INFO
17644
   WHERE pv_id = nPvId;
1373 dpurdie 17645
 
3959 dpurdie 17646
   -- Reset flag to N
17647
   UPDATE PACKAGE_VERSIONS SET
17648
	   IS_BUILD_ENV_REQUIRED = 'N'
17649
   WHERE PV_ID = nPvId;
1373 dpurdie 17650
 
17651
 
3959 dpurdie 17652
   -- Set new Build Env
17653
   IF NOT sBuildEnvIdList IS NULL THEN
17654
   	  -- Insert into PACKAGE_BUILD_ENV
17655
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
17656
	  SELECT nPvId AS PV_ID,
17657
	  		 be.BE_ID
17658
	    FROM BUILD_ENVIRONMENTS be
17659
	   WHERE be.BE_ID IN (
17660
	   		 		  	   SELECT *
17661
					   	     FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
17662
	   		 		  	 );
17663
 
17664
   	  -- Insert into PACKAGE_BUILD_INFO
17665
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
17666
	  SELECT nPvId AS PV_ID,
17667
	  		 be.BM_ID
17668
	    FROM BUILD_MACHINES be
17669
	   WHERE be.BM_ID IN (
17670
	   		 		  	   SELECT *
17671
					   	     FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
17672
	   		 		  	 );						 
1373 dpurdie 17673
 
3959 dpurdie 17674
	   -- Set flag to Y
17675
	   UPDATE PACKAGE_VERSIONS SET
17676
		   IS_BUILD_ENV_REQUIRED = 'Y'
17677
	   WHERE PV_ID = nPvId;
1373 dpurdie 17678
 
3959 dpurdie 17679
   END IF;
1373 dpurdie 17680
 
17681
 
3959 dpurdie 17682
END Set_Package_Build_Env;
4040 dpurdie 17683
 
1374 dpurdie 17684
/
4040 dpurdie 17685
--------------------------------------------------------
17686
--  DDL for Procedure SET_PACKAGE_BUILD_ENV_TEMP
17687
--------------------------------------------------------
17688
set define off;
17689
 
5172 dpurdie 17690
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV_TEMP" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,
1373 dpurdie 17691
	   	  		  								  	   	 sBuildEnvIdList IN VARCHAR2,
17692
														 nBuildStandard IN PACKAGE_VERSIONS.BS_ID%TYPE 
17693
														 ) IS
17694
/* ---------------------------------------------------------------------------
17695
    Last Modified: Rupesh Solanki
17696
	Version: 3.0.1
17697
   --------------------------------------------------------------------------- */
17698
 
17699
   nBsCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();   
17700
   BsId NUMBER;
17701
   HackBsId NUMBER;
17702
 
17703
 
17704
BEGIN
17705
 
17706
   nBsCollector := IN_LIST_NUMBER ( sBuildEnvIdList );
17707
 
17708
   -- Delete Current Build Env settings
17709
   DELETE FROM PACKAGE_BUILD_ENV
17710
   WHERE pv_id = nPvId;
17711
 
17712
   -- Delet Current Package Build Info Settings
17713
   DELETE FROM PACKAGE_BUILD_INFO
17714
   WHERE pv_id = nPvId;
17715
 
17716
   -- Reset flag to N
17717
   UPDATE PACKAGE_VERSIONS SET
17718
	   IS_BUILD_ENV_REQUIRED = 'N'
17719
   WHERE PV_ID = nPvId;
17720
 
17721
 
17722
   -- Set new Build Env
17723
   IF NOT sBuildEnvIdList IS NULL THEN
17724
	FOR i IN 1..nBsCollector.COUNT
17725
	LOOP   
17726
 
17727
	BsId := nBsCollector(i);
17728
 
17729
	IF nBuildStandard = 2 THEN
17730
	   IF BsId = 1 THEN
17731
	   	  HackBsId := 11;
17732
	   ELSE
17733
	   	  HackBsId := 12;
17734
	   END IF;
17735
 
17736
   	  -- Insert into PACKAGE_BUILD_ENV
17737
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
17738
	  SELECT nPvId AS PV_ID,
17739
	  		 be.BE_ID
17740
	    FROM BUILD_ENVIRONMENTS be
17741
	   WHERE be.BE_ID IN ( HackBsId );
17742
 
17743
   	  -- Insert into PACKAGE_BUILD_INFO
17744
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
17745
	  SELECT nPvId AS PV_ID,
17746
	  		 be.BM_ID
17747
	    FROM BUILD_MACHINES be
17748
	   WHERE be.BM_ID IN ( BsId );						 
17749
 
17750
	   -- Set flag to Y
17751
	   UPDATE PACKAGE_VERSIONS SET
17752
		   IS_BUILD_ENV_REQUIRED = 'Y'
17753
	   WHERE PV_ID = nPvId;	
17754
 
17755
 
17756
	ELSE
17757
 
17758
   	  -- Insert into PACKAGE_BUILD_ENV
17759
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
17760
	  SELECT nPvId AS PV_ID,
17761
	  		 be.BE_ID
17762
	    FROM BUILD_ENVIRONMENTS be
17763
	   WHERE be.BE_ID IN ( BsId );
17764
 
17765
   	  -- Insert into PACKAGE_BUILD_INFO
17766
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
17767
	  SELECT nPvId AS PV_ID,
17768
	  		 be.BM_ID
17769
	    FROM BUILD_MACHINES be
17770
	   WHERE be.BM_ID IN ( BsId );						 
17771
 
17772
	   -- Set flag to Y
17773
	   UPDATE PACKAGE_VERSIONS SET
17774
		   IS_BUILD_ENV_REQUIRED = 'Y'
17775
	   WHERE PV_ID = nPvId;
17776
 
17777
	END IF;  
17778
 
17779
 
17780
	END LOOP;	   
17781
 
17782
   END IF;
17783
 
17784
 
17785
END Set_Package_Build_Env_Temp;
4040 dpurdie 17786
 
1374 dpurdie 17787
/
4040 dpurdie 17788
--------------------------------------------------------
17789
--  DDL for Procedure SET_TO_AUTOBUILDABLE
17790
--------------------------------------------------------
17791
set define off;
17792
 
5172 dpurdie 17793
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_TO_AUTOBUILDABLE" (
3959 dpurdie 17794
   nrtagid     IN   NUMBER,
17795
   spvidlist   IN   VARCHAR2
17796
)
17797
IS
17798
/******************************************************************************
17799
   NAME:       SET_TO_AUTOBUILDABLE
17800
   PURPOSE:
1373 dpurdie 17801
 
3959 dpurdie 17802
   REVISIONS:
17803
   Ver        Date        Author           Description
17804
   ---------  ----------  ---------------  ------------------------------------
17805
   1.0        15/12/2006   Rupesh Solanki       1. Created this procedure.
1373 dpurdie 17806
 
3959 dpurdie 17807
   NOTES:
1373 dpurdie 17808
 
3959 dpurdie 17809
   Automatically available Auto Replace Keywords:
17810
      Object Name:     SET_TO_AUTOBUILDABLE
17811
      Sysdate:         15/12/2006
17812
      Date and Time:   15/12/2006, 11:42:29 AM, and 15/12/2006 11:42:29 AM
17813
      Username:         (set in TOAD Options, Procedure Editor)
17814
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 17815
 
3959 dpurdie 17816
******************************************************************************/
17817
   npvidcollector   relmgr_number_tab_t := relmgr_number_tab_t ();
17818
   PvId NUMBER;
1373 dpurdie 17819
BEGIN
17820
 
3959 dpurdie 17821
   npvidcollector := in_list_number2 (spvidlist);
17822
 
17823
   UPDATE package_versions
17824
      SET is_autobuildable = 'N'
17825
    WHERE pv_id IN (SELECT pv_id
17826
                      FROM release_content
17827
                     WHERE rtag_id = nrtagid);
1373 dpurdie 17828
 
3959 dpurdie 17829
 
17830
 
17831
   	FOR i IN 1..npvidcollector.COUNT
17832
	LOOP
17833
		PvId := npvidcollector(i);
1373 dpurdie 17834
 
3959 dpurdie 17835
		UPDATE package_versions
17836
		set is_autobuildable = 'Y'
17837
		where pv_id = PvId;
1373 dpurdie 17838
 
3959 dpurdie 17839
	END LOOP;
17840
 
17841
 
17842
END set_to_autobuildable;
4040 dpurdie 17843
 
3959 dpurdie 17844
/
4040 dpurdie 17845
--------------------------------------------------------
17846
--  DDL for Procedure SHIFT_INSTALL_ORDER
17847
--------------------------------------------------------
17848
set define off;
17849
 
5172 dpurdie 17850
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SHIFT_INSTALL_ORDER" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
3959 dpurdie 17851
												  nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
17852
                                                  nToInstallOrder IN PACKAGE_PATCHES.INSTALL_ORDER%TYPE ) IS
17853
/* ---------------------------------------------------------------------------
17854
    Version: 3.0
17855
   --------------------------------------------------------------------------- */
1373 dpurdie 17856
 
3959 dpurdie 17857
currInstallOrder NUMBER;
17858
FromInstallOrder NUMBER;
1373 dpurdie 17859
 
3959 dpurdie 17860
BEGIN
1373 dpurdie 17861
 
3959 dpurdie 17862
	 -- Get Current Install Order
17863
     SELECT pp.INSTALL_ORDER INTO currInstallOrder
17864
       FROM PACKAGE_PATCHES pp
17865
      WHERE pp.PV_ID = nPvId
17866
        AND pp.PATCH_ID = nPatchId;
1373 dpurdie 17867
 
17868
 
3959 dpurdie 17869
	 IF currInstallOrder > nToInstallOrder
17870
	 THEN
1373 dpurdie 17871
 
3959 dpurdie 17872
		FromInstallOrder := nToInstallOrder;
1373 dpurdie 17873
 
3959 dpurdie 17874
	    -- Shift others Up
17875
		UPDATE PACKAGE_PATCHES pp SET
17876
			   pp.INSTALL_ORDER = pp.INSTALL_ORDER + 1
17877
		 WHERE pp.PV_ID = nPvId
17878
           AND pp.PATCH_ID != nPatchId
17879
		   AND pp.INSTALL_ORDER BETWEEN  FromInstallOrder  AND  currInstallOrder - 1;
1373 dpurdie 17880
 
17881
 
3959 dpurdie 17882
	 ELSIF currInstallOrder < nToInstallOrder
17883
	 THEN
1373 dpurdie 17884
 
3959 dpurdie 17885
		FromInstallOrder := currInstallOrder + 1;
1373 dpurdie 17886
 
3959 dpurdie 17887
		-- Shift others Down
17888
        UPDATE PACKAGE_PATCHES pp SET
17889
			   pp.INSTALL_ORDER = pp.INSTALL_ORDER - 1
17890
		 WHERE pp.PV_ID = nPvId
17891
           AND pp.PATCH_ID != nPatchId
17892
		   AND pp.INSTALL_ORDER BETWEEN  FromInstallOrder  AND  nToInstallOrder;
1373 dpurdie 17893
 
3959 dpurdie 17894
	 END IF;
1373 dpurdie 17895
 
17896
 
3959 dpurdie 17897
	 -- Move Patch to new install order
17898
     UPDATE PACKAGE_PATCHES pp SET
17899
		    pp.INSTALL_ORDER = nToInstallOrder
17900
	  WHERE pp.PV_ID = nPvId
17901
	    AND pp.PATCH_ID = nPatchId;
1373 dpurdie 17902
 
17903
 
3959 dpurdie 17904
END Shift_Install_Order;
4040 dpurdie 17905
 
1374 dpurdie 17906
/
4040 dpurdie 17907
--------------------------------------------------------
17908
--  DDL for Procedure SPLIT_VERSION
17909
--------------------------------------------------------
17910
set define off;
17911
 
5172 dpurdie 17912
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SPLIT_VERSION" ( SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
3959 dpurdie 17913
                                            SSV_MM OUT PACKAGE_VERSIONS.V_MM%TYPE,
17914
                                            SSV_NMM OUT PACKAGE_VERSIONS.V_NMM%TYPE,
17915
                                            SSV_EXT OUT PACKAGE_VERSIONS.V_EXT%TYPE  ) IS
1373 dpurdie 17916
/* ---------------------------------------------------------------------------
3959 dpurdie 17917
    Version: 3.0.0
1373 dpurdie 17918
   --------------------------------------------------------------------------- */
17919
 
3959 dpurdie 17920
    TYPE VERSION_COMPONENTS_TYPE IS TABLE OF VARCHAR2(50)
17921
        INDEX BY BINARY_INTEGER;
1373 dpurdie 17922
 
3959 dpurdie 17923
    version_components VERSION_COMPONENTS_TYPE;
17924
    lastDot NUMBER := 0;
17925
    currDot NUMBER := 0;
1373 dpurdie 17926
 
17927
BEGIN
3959 dpurdie 17928
    currDot := INSTR ( SSpkg_version, '.', -1 );      -- Find 1st dot from the right
1373 dpurdie 17929
 
3959 dpurdie 17930
    IF ( currDot > 0 )
1373 dpurdie 17931
    THEN
3959 dpurdie 17932
        -- YES dot separator found --
17933
        SSV_EXT := GET_V_EXT( SSpkg_version );
1373 dpurdie 17934
 
3959 dpurdie 17935
        IF NOT SSV_EXT IS NULL
1373 dpurdie 17936
        THEN
3959 dpurdie 17937
            lastDot := currDot;
17938
            currDot := INSTR ( SSpkg_version, '.', -1, 2 );   -- Find 2nd dot from the right
1373 dpurdie 17939
 
3959 dpurdie 17940
            IF ( currDot > 0 )
17941
            THEN
17942
                -- XXXX.M.E
17943
                SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, lastDot - currDot - 1);
17944
                SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot ) || SSV_EXT;
17945
            ELSE
17946
                -- XXXX.E
17947
                SSV_MM := NULL;
17948
                SSV_NMM := SSpkg_version;
17949
            END IF;
1373 dpurdie 17950
 
17951
        ELSE
3959 dpurdie 17952
            -- XXXX.M
17953
            SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, LENGTH(SSpkg_version) - currDot );
17954
            SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot );
1373 dpurdie 17955
 
17956
        END IF;
17957
 
17958
    ELSE
3959 dpurdie 17959
        -- NO dot separator found --
17960
        -- XXXXXX
17961
        SSV_MM  := NULL;
17962
        SSV_NMM := SSpkg_version;
17963
        SSV_EXT := NULL;
1373 dpurdie 17964
 
17965
    END IF;
17966
 
3959 dpurdie 17967
END Split_Version;
4040 dpurdie 17968
 
1374 dpurdie 17969
/
4040 dpurdie 17970
--------------------------------------------------------
17971
--  DDL for Procedure SWITCH_REPRODUCIBLE_PACKAGE
17972
--------------------------------------------------------
17973
set define off;
17974
 
5172 dpurdie 17975
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SWITCH_REPRODUCIBLE_PACKAGE" (nPvId IN NUMBER, nUserId IN NUMBER)IS
3959 dpurdie 17976
Auto CHAR;
17977
/******************************************************************************
17978
   NAME:       SWITCH_REPRODUCIBLE_PACKAGE
17979
   PURPOSE:    
1373 dpurdie 17980
 
3959 dpurdie 17981
   REVISIONS:
17982
   Ver        Date        Author           Description
17983
   ---------  ----------  ---------------  ------------------------------------
17984
   1.0        14/12/2006   Rupesh Solanki       1. Created this procedure.
1373 dpurdie 17985
 
3959 dpurdie 17986
   NOTES:
1373 dpurdie 17987
 
3959 dpurdie 17988
   Automatically available Auto Replace Keywords:
17989
      Object Name:     SWITCH_REPRODUCIBLE_PACKAGE
17990
      Sysdate:         14/12/2006
17991
      Date and Time:   14/12/2006, 11:35:15 AM, and 14/12/2006 11:35:15 AM
17992
      Username:         (set in TOAD Options, Procedure Editor)
17993
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 17994
 
3959 dpurdie 17995
******************************************************************************/
1373 dpurdie 17996
BEGIN
17997
 
3959 dpurdie 17998
	 SELECT IS_AUTOBUILDABLE into Auto
17999
	 FROM PACKAGE_VERSIONS 
18000
	 WHERE PV_ID = nPvId;
1373 dpurdie 18001
 
3959 dpurdie 18002
	 IF Auto = 'N' Then
18003
 
18004
	 	UPDATE PACKAGE_VERSIONS
18005
	 	SET IS_AUTOBUILDABLE = 'Y'
18006
	 	WHERE PV_ID = nPvId;
18007
 
18008
 
18009
	 	/* LOG ACTION */
18010
   		Log_Action ( nPvId, 'reproducible_package', nUserId );	 
18011
 
18012
	 Else
18013
 
18014
		 UPDATE PACKAGE_VERSIONS
18015
		 SET IS_AUTOBUILDABLE = 'N'
18016
		 WHERE PV_ID = nPvId;
18017
 
18018
 
18019
	 	 /* LOG ACTION */
18020
   	 	 Log_Action ( nPvId, 'unreproducible_package', nUserId );	 
18021
 
18022
	 End If;
18023
 
18024
 
1373 dpurdie 18025
 
3959 dpurdie 18026
 
1373 dpurdie 18027
 
18028
 
18029
 
18030
 
3959 dpurdie 18031
END SWITCH_REPRODUCIBLE_PACKAGE;
4040 dpurdie 18032
 
1374 dpurdie 18033
/
4040 dpurdie 18034
--------------------------------------------------------
18035
--  DDL for Procedure SYNC_PROJECTS_NEW_VERSION
18036
--------------------------------------------------------
18037
set define off;
18038
 
5172 dpurdie 18039
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SYNC_PROJECTS_NEW_VERSION" ( nPv_id 				IN NUMBER,
3959 dpurdie 18040
														  sSyncRtagsInList		IN VARCHAR2,
18041
				                                          nUser_id 				IN NUMBER ) IS
1373 dpurdie 18042
/* ---------------------------------------------------------------------------
18043
    Version: 3.0.0
18044
   --------------------------------------------------------------------------- */
18045
 
3959 dpurdie 18046
	CURSOR sync_rtags_cur IS
18047
        SELECT rc.RTAG_ID, rc.BASE_VIEW_ID, pv.pv_id
18048
		  FROM release_content rc,
18049
		  	   package_versions pv,
18050
		       package_versions opv
18051
		 WHERE rc.pv_id = pv.pv_id
18052
		   AND opv.pkg_id = pv.pkg_id
18053
		   AND NVL(opv.v_ext, '|LINK_A_NULL|') = NVL(pv.v_ext, '|LINK_A_NULL|')
18054
		   AND opv.pv_id = nPv_id
18055
		   AND rtag_id IN ( SELECT *
18056
		   	   		   	      FROM THE (
18057
					   	   		   	    SELECT CAST( IN_LIST_NUMBER( sSyncRtagsInList ) AS RELMGR_NUMBER_TAB_t )
18058
					       		   	    FROM dual
18059
									   )
18060
						  );
18061
    sync_rtags_rec sync_rtags_cur%ROWTYPE;
1373 dpurdie 18062
 
18063
BEGIN
18064
 
3959 dpurdie 18065
	OPEN sync_rtags_cur;
18066
	FETCH sync_rtags_cur INTO sync_rtags_rec;
1373 dpurdie 18067
 
3959 dpurdie 18068
	WHILE sync_rtags_cur%FOUND
18069
	LOOP
18070
		DELETE FROM RELEASE_CONTENT
18071
		 WHERE rtag_id = sync_rtags_rec.rtag_id
18072
	       AND pv_id = sync_rtags_rec.pv_id;
1373 dpurdie 18073
 
3959 dpurdie 18074
		INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )
18075
	   		   VALUES ( sync_rtags_rec.rtag_id,
18076
		       		  	nPv_id,
18077
						sync_rtags_rec.BASE_VIEW_ID,
18078
	           			Ora_Sysdate,
18079
	           			nUser_id,
18080
 
18081
	      	   		   );
1373 dpurdie 18082
 
3959 dpurdie 18083
-- 		UPDATE RELEASE_CONTENT
18084
-- 	       SET pv_id = nPv_id,
18085
-- 	           insert_stamp = Ora_Sysdate,
18086
-- 	           insertor_id = nUser_id
18087
-- 	     WHERE rtag_id = sync_rtags_rec.rtag_id
18088
-- 	       AND pv_id = sync_rtags_rec.pv_id;
1373 dpurdie 18089
 
3959 dpurdie 18090
		FETCH sync_rtags_cur INTO sync_rtags_rec;
18091
	END LOOP;
1373 dpurdie 18092
 
3959 dpurdie 18093
	CLOSE sync_rtags_cur;
18094
 
18095
END Sync_Projects_New_Version;
4040 dpurdie 18096
 
1374 dpurdie 18097
/
4040 dpurdie 18098
--------------------------------------------------------
18099
--  DDL for Procedure TEST
18100
--------------------------------------------------------
18101
set define off;
18102
 
5172 dpurdie 18103
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TEST" 
3959 dpurdie 18104
IS
1373 dpurdie 18105
 
3959 dpurdie 18106
proc_id NUMBER;
18107
/******************************************************************************
18108
   NAME:       DELETE_DO_NOT_RIPPLE
18109
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
18110
               IS RELEASED
1373 dpurdie 18111
 
3959 dpurdie 18112
   REVISIONS:
18113
   Ver        Date        Author           Description
18114
   ---------  ----------  ---------------  ------------------------------------
18115
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
1373 dpurdie 18116
 
3959 dpurdie 18117
   NOTES:
18118
 
18119
   Automatically available Auto Replace Keywords:
18120
      Object Name:     DELETE_DO_NOT_RIPPLE
18121
      Sysdate:         21/04/2006
18122
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
18123
      Username:         (set in TOAD Options, Procedure Editor)
18124
      Table Name:       (set in the "New PL/SQL Object" dialog)
18125
 
18126
******************************************************************************/
18127
   CURSOR ripple_cur
18128
   IS
18129
      select distinct pkg_health_tag, cmd_interface, pkg_owner, is_interface from deployment_manager.processes_config;
18130
 
18131
   ripple_rec   ripple_cur%ROWTYPE;
1373 dpurdie 18132
BEGIN
3959 dpurdie 18133
   OPEN ripple_cur;
1373 dpurdie 18134
 
3959 dpurdie 18135
   FETCH ripple_cur
18136
    INTO ripple_rec;
1373 dpurdie 18137
 
3959 dpurdie 18138
   WHILE ripple_cur%FOUND
18139
   LOOP
18140
 
18141
   select deployment_manager.seq_proc_id.nextval into proc_id from dual;
18142
 
18143
insert into processes (PROC_ID, PROC_NAME, RUN_AS, PKG_OWNER, IS_INTERFACE) 
18144
values(proc_id, ripple_rec.pkg_health_tag, ripple_rec.cmd_interface, ripple_rec.pkg_owner, ripple_rec.is_interface);
1373 dpurdie 18145
 
3959 dpurdie 18146
      FETCH ripple_cur
18147
       INTO ripple_rec;
18148
   END LOOP;
18149
END test;
4040 dpurdie 18150
 
1374 dpurdie 18151
/
4040 dpurdie 18152
--------------------------------------------------------
18153
--  DDL for Procedure TEST_MARCO
18154
--------------------------------------------------------
18155
set define off;
18156
 
5172 dpurdie 18157
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TEST_MARCO" IS
1373 dpurdie 18158
/******************************************************************************
3959 dpurdie 18159
   NAME:       TEST_MARCO
1373 dpurdie 18160
   PURPOSE:    
18161
 
18162
   REVISIONS:
18163
   Ver        Date        Author           Description
18164
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 18165
   1.0        2/03/2007          1. Created this procedure.
1373 dpurdie 18166
 
18167
   NOTES:
18168
 
18169
   Automatically available Auto Replace Keywords:
3959 dpurdie 18170
      Object Name:     TEST_MARCO
18171
      Sysdate:         2/03/2007
18172
      Date and Time:   2/03/2007, 3:11:11 PM, and 2/03/2007 3:11:11 PM
1373 dpurdie 18173
      Username:         (set in TOAD Options, Procedure Editor)
18174
      Table Name:       (set in the "New PL/SQL Object" dialog)
18175
 
18176
******************************************************************************/
18177
 
3959 dpurdie 18178
parPv_id    NUMBER;
18179
parPkg_id   NUMBER;
18180
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
18181
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
18182
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
1373 dpurdie 18183
BEGIN
18184
 
3959 dpurdie 18185
SELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;
1373 dpurdie 18186
 
3959 dpurdie 18187
        /* LOG ACTION */
18188
        Log_Action ( parPv_id, 'new_version', 3764,
18189
        			 'New package version: '|| parPv_id || '.' );
18190
 
18191
        Split_Version ( parPv_id || '.', SSV_MM, SSV_NMM, SSV_EXT );
1373 dpurdie 18192
 
3959 dpurdie 18193
     -- Clone Package Version Details --
18194
            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,
18195
                                           src_path, pv_description, PV_OVERVIEW, LAST_PV_ID, owner_id, BUILD_TYPE, IS_BUILD_ENV_REQUIRED, bs_id, is_autobuildable, is_deployable )
18196
                SELECT parPv_id         AS pv_id,
18197
                       pv.pkg_id        AS pkg_id,
18198
                       parPv_id || '.'    AS pkg_version,
18199
                       'N'              AS dlocked,
18200
                       Ora_Sysdate      AS created_stamp,
18201
                       3764        AS creator_id,
18202
                       Ora_Sysdatetime  AS modified_stamp,
18203
                       3764        AS modifier_id,
18204
                       SSV_MM          AS V_MM,
18205
                       SSV_NMM         AS V_NMM,
18206
                       SSV_EXT          AS V_EXT,
18207
                       pv.src_path,
18208
                       pv.pv_description,
18209
                       pv.PV_OVERVIEW,
18210
                       112982 	AS LAST_PV_ID,
18211
                       pv.owner_id,
18212
					   pv.BUILD_TYPE,
18213
					   pv.IS_BUILD_ENV_REQUIRED,
18214
					   pv.bs_id,
18215
					   pv.is_autobuildable,
18216
					   pv.IS_DEPLOYABLE
18217
                  FROM PACKAGE_VERSIONS pv
18218
                 WHERE pv.pv_id = 112982;		
1373 dpurdie 18219
 
3959 dpurdie 18220
Basic_Clone ( 112982, parPv_id, NULL, 3764, 22325, 0 );
1373 dpurdie 18221
 
18222
 
3959 dpurdie 18223
END TEST_MARCO;
4040 dpurdie 18224
 
3959 dpurdie 18225
/
4040 dpurdie 18226
--------------------------------------------------------
18227
--  DDL for Procedure TOUCH_RELEASE
18228
--------------------------------------------------------
18229
set define off;
18230
 
5172 dpurdie 18231
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE" ( nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS
3959 dpurdie 18232
/* ---------------------------------------------------------------------------
18233
    The purpose of this procedure is to flag in the database that the specified
18234
    release has changed to an extent that the procedure Rebuild_Environment
18235
    should be called at the next opportunity in order that the package state
18236
    icons are all re-evaluated.
18237
    The package state icons are controlled using the pkg_state column in the
18238
    release_content table, and Rebuild_Environment updates that column.
18239
    It will be through user action in the website that Rebuild_Environment will
18240
    be called, for example:
18241
      a) when setting/clearing ignore warnings checkboxes
18242
      b) when someone opens a page upon a rtag/pvid and rebuild_en flag is set
18243
      c) when someone opens the build order report form
18244
      d) when someone modifies dependencies of a package
18245
      + other scenarios (?)
18246
   --------------------------------------------------------------------------- */
18247
BEGIN
18248
   -- Touch Release for Rebuild
18249
   UPDATE RELEASE_TAGS rt SET
18250
          rt.REBUILD_ENV = 'Y',
18251
          rt.REBUILD_STAMP = 0
18252
    WHERE rt.RTAG_ID = nRtagId;
1373 dpurdie 18253
 
3959 dpurdie 18254
END Touch_Release;
4040 dpurdie 18255
 
1374 dpurdie 18256
/
4040 dpurdie 18257
--------------------------------------------------------
18258
--  DDL for Procedure TOUCH_RELEASE_BULK
18259
--------------------------------------------------------
18260
set define off;
18261
 
5172 dpurdie 18262
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE_BULK" ( nRtagIdList IN VARCHAR2 ) IS
1373 dpurdie 18263
/* ---------------------------------------------------------------------------
18264
    Version: 3.0
18265
   --------------------------------------------------------------------------- */
18266
 
18267
oRTagIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
18268
 
18269
BEGIN
18270
	 oRTagIdCollector := IN_LIST_NUMBER ( nRtagIdList );
18271
 
18272
	 -- Touch Release for Rebuild
18273
     UPDATE RELEASE_TAGS rt SET
18274
     	rt.REBUILD_ENV = 'Y',
18275
        rt.REBUILD_STAMP = 0
18276
      WHERE rt.RTAG_ID IN ( SELECT * FROM TABLE ( CAST ( oRTagIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
18277
 
18278
 
18279
END Touch_Release_Bulk;
4040 dpurdie 18280
 
1374 dpurdie 18281
/
4040 dpurdie 18282
--------------------------------------------------------
18283
--  DDL for Procedure TO_INSERT_VTREE_ID
18284
--------------------------------------------------------
18285
set define off;
18286
 
5172 dpurdie 18287
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TO_INSERT_VTREE_ID" IS
1373 dpurdie 18288
 
3959 dpurdie 18289
/******************************************************************************
18290
   NAME:       TO_INSERT_VTREE_ID
18291
   PURPOSE:    
1373 dpurdie 18292
 
3959 dpurdie 18293
   REVISIONS:
18294
   Ver        Date        Author           Description
18295
   ---------  ----------  ---------------  ------------------------------------
18296
   1.0        2/02/2007          1. Created this procedure.
1373 dpurdie 18297
 
3959 dpurdie 18298
   NOTES:
1373 dpurdie 18299
 
3959 dpurdie 18300
   Automatically available Auto Replace Keywords:
18301
      Object Name:     TO_INSERT_VTREE_ID
18302
      Sysdate:         2/02/2007
18303
      Date and Time:   2/02/2007, 8:42:56 AM, and 2/02/2007 8:42:56 AM
18304
      Username:         (set in TOAD Options, Procedure Editor)
18305
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 18306
 
3959 dpurdie 18307
******************************************************************************/
18308
VTreeId NUMBER;																			  																	   
1373 dpurdie 18309
 
18310
 
3959 dpurdie 18311
	CURSOR curInfo IS
18312
    SELECT RTAG_ID
18313
	FROM RELEASE_TAGS
18314
	WHERE VTREE_ID IS NULL;
18315
    recInfo curInfo%ROWTYPE;
18316
 
18317
 
1373 dpurdie 18318
BEGIN
18319
 
3959 dpurdie 18320
	OPEN curInfo;
18321
    FETCH curInfo INTO recInfo;
18322
 
18323
	WHILE curInfo%FOUND
18324
	LOOP
18325
		SELECT SEQ_VTREE_ID.nextval INTO VTreeId FROM DUAL;
1373 dpurdie 18326
 
3959 dpurdie 18327
		UPDATE RELEASE_TAGS
18328
		SET VTREE_ID = VTreeId
18329
		WHERE RTAG_ID = recInfo.RTAG_ID;
1373 dpurdie 18330
 
3959 dpurdie 18331
		FETCH curInfo INTO recInfo;
18332
	END LOOP;
1373 dpurdie 18333
 
3959 dpurdie 18334
	CLOSE curInfo;
1373 dpurdie 18335
 
3959 dpurdie 18336
END TO_INSERT_VTREE_ID;
4040 dpurdie 18337
 
1374 dpurdie 18338
/
4040 dpurdie 18339
--------------------------------------------------------
18340
--  DDL for Procedure UNDEPRECATE_PACKAGE
18341
--------------------------------------------------------
18342
set define off;
18343
 
5384 dpurdie 18344
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNDEPRECATE_PACKAGE" (
18345
    nPvId   IN PACKAGE_VERSIONS.PV_ID%TYPE,
18346
    nRtagId IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,
18347
    nPkgId  IN DEPRECATED_PACKAGES.PKG_ID%TYPE,
18348
    nUserId IN NUMBER)
18349
IS
18350
  ext      VARCHAR2(50);
18351
 
1373 dpurdie 18352
BEGIN
5384 dpurdie 18353
  --Extract the package extension
18354
  SELECT V_EXT INTO ext 
18355
  FROM PACKAGE_VERSIONS
18356
  WHERE PV_ID = nPvId;
1373 dpurdie 18357
 
5384 dpurdie 18358
    -- Undeprecate Package
18359
    DELETE
18360
    FROM DEPRECATED_PACKAGES
18361
    WHERE RTAG_ID = nRtagId
18362
    AND PKG_ID    = nPkgId
18363
    AND NVL(V_EXT,'.NULL') = NVL(ext,'.NULL');
18364
 
18365
    -- Update Release Contents entry
18366
    -- Process PackageName.ext for the package. ie: Allow multiple
18367
    -- versions of the package to be in the release.
18368
 
18369
    UPDATE RELEASE_CONTENT
18370
    SET 
18371
      DEPRECATED_STATE = NULL
18372
    WHERE RTAG_ID      = nRtagId
18373
    AND PV_ID IN (
18374
      SELECT PV.PV_ID
18375
      FROM PACKAGE_VERSIONS PV
18376
      WHERE PV.PKG_ID   = nPkgId
18377
      AND NVL(PV.V_EXT, '.NULL') = NVL(ext,'.NULL')
18378
      );
1373 dpurdie 18379
 
5384 dpurdie 18380
  -- Update consumers of the package
18381
  --  Update ALL packages in the Release
1373 dpurdie 18382
 
5384 dpurdie 18383
  REBUILD_DEPRECATE_STATE(nRtagId);      
1373 dpurdie 18384
 
18385
END Undeprecate_Package;
4040 dpurdie 18386
 
1374 dpurdie 18387
/
4040 dpurdie 18388
--------------------------------------------------------
18389
--  DDL for Procedure UNLOCK_PACKAGE
18390
--------------------------------------------------------
18391
set define off;
18392
 
5172 dpurdie 18393
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNLOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 18394
											 nUserId IN NUMBER ) IS
18395
/* ---------------------------------------------------------------------------
18396
    Author: Rupesh Solanki
18397
 
18398
	Version: 4.0
18399
   --------------------------------------------------------------------------- */
18400
   STATE CHAR;
18401
 
18402
BEGIN
18403
 
18404
	SELECT DLOCKED INTO STATE
18405
	FROM PACKAGE_VERSIONS
18406
	WHERE PV_ID = nPvId; 
1373 dpurdie 18407
 
3959 dpurdie 18408
	IF STATE = 'A' THEN --It was made official for autobuilds
18409
		-- Unlock Package
18410
		UPDATE PACKAGE_VERSIONS pv SET
18411
		pv.DLOCKED = 'P'
18412
		WHERE pv.PV_ID = nPvId;	
18413
	ELSE
18414
		-- Unlock Package
18415
		UPDATE PACKAGE_VERSIONS pv SET
18416
		pv.DLOCKED = 'N'
18417
		WHERE pv.PV_ID = nPvId;	
18418
 
18419
	END IF;	   
18420
 
18421
    /* LOG ACTION */
18422
   	Log_Action ( nPvId, 'unlock_package', nUserId );
18423
 
18424
END Unlock_Package;
4040 dpurdie 18425
 
3959 dpurdie 18426
/
4040 dpurdie 18427
--------------------------------------------------------
18428
--  DDL for Procedure UNRIPPLE_PACKAGE
18429
--------------------------------------------------------
18430
set define off;
18431
 
5172 dpurdie 18432
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE" (
3959 dpurdie 18433
        sPvIdList IN VARCHAR2,
18434
        nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
18435
        nUserId IN NUMBER
18436
    ) IS
18437
/* ---------------------------------------------------------------------------
18438
    Version: 4.1
18439
   --------------------------------------------------------------------------- */
18440
 
18441
    oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
18442
 
18443
BEGIN
18444
 
18445
    IF (sPvIdList IS NULL) THEN
18446
        RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
18447
    END IF;
18448
 
18449
    oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
18450
 
18451
    -- UnRipple Package
18452
    INSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID )
18453
    SELECT nRtagId, pv.PV_ID
18454
    FROM PACKAGE_VERSIONS pv
18455
    WHERE pv.PV_ID IN (
18456
        SELECT *
18457
        FROM TABLE (
18458
            CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t )
18459
        )
18460
    );
18461
 
18462
    /* LOG ACTION */
18463
    Log_Action_Bulk ( sPvIdList, 'unripple_package', nUserId );
18464
 
18465
END UnRipple_Package;
4040 dpurdie 18466
 
3959 dpurdie 18467
/
4040 dpurdie 18468
--------------------------------------------------------
18469
--  DDL for Procedure UNRIPPLE_PACKAGE_INDIRECT
18470
--------------------------------------------------------
18471
set define off;
18472
 
5172 dpurdie 18473
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE_INDIRECT" (
3959 dpurdie 18474
        nPvId IN NUMBER,
18475
        nRtagId IN NUMBER,
18476
        nUserId IN NUMBER,
18477
        nrootCausePvId IN NUMBER,
18478
        srootCause IN VARCHAR2,
18479
        srootFile IN VARCHAR2
18480
    ) IS
18481
    ReleaseLocation VARCHAR2(4000);
18482
BEGIN
18483
 
18484
    -- UnRipple Package
18485
    delete from do_not_ripple where rtag_id=nRtagId and pv_id=nPvId;
18486
    INSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID, ROOT_PV_ID, ROOT_CAUSE, ROOT_FILE ) values (nRtagId, nPvId, nrootCausePvId, srootCause, srootFile);
18487
 
18488
    /* LOG ACTION */
18489
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
18490
              FROM PROJECTS proj,
18491
                   RELEASE_TAGS rt
18492
             WHERE rt.RTAG_ID = nRtagId
18493
               AND rt.PROJ_ID = proj.PROJ_ID;
18494
 
18495
    /* LOG ACTION */
18496
    Log_Action ( nPvId, 'unripple_package', nUserId, 'Location: '|| ReleaseLocation );
18497
 
18498
END UnRipple_Package_Indirect;
4040 dpurdie 18499
 
3959 dpurdie 18500
/
4040 dpurdie 18501
--------------------------------------------------------
18502
--  DDL for Procedure UPDATE_ADDITIONAL_NOTE
18503
--------------------------------------------------------
18504
set define off;
18505
 
5172 dpurdie 18506
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_ADDITIONAL_NOTE" ( pnNote_id IN NUMBER,
3959 dpurdie 18507
													 pnPv_id IN NUMBER,
18508
                                                     psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,
18509
                                                     psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,
18510
                                                     pnUser_id IN NUMBER,
18511
                                                     outErrCode OUT NUMBER
18512
                                                    ) IS
18513
/* ---------------------------------------------------------------------------
18514
    Version: 3.0.1
18515
   --------------------------------------------------------------------------- */
18516
 
18517
    newID NUMBER;
18518
 
18519
    /* Disallow duplicate Note Titles */
18520
	CURSOR an_duplicate_cur IS
18521
        SELECT COUNT(*) AS cnt_note
18522
          FROM ADDITIONAL_NOTES
18523
         WHERE pv_id = pnPv_id
18524
           AND note_id != pnNote_id
18525
           AND note_title = psNote_title;
18526
    an_duplicate_rec an_duplicate_cur%ROWTYPE;
18527
 
18528
BEGIN
18529
	outErrCode := -1;		-- Set default return error code to ERROR state
18530
 
18531
	OPEN an_duplicate_cur;
18532
    FETCH an_duplicate_cur INTO an_duplicate_rec;
18533
 
18534
    IF an_duplicate_rec.cnt_note < 1
18535
    THEN
18536
		--- Update Additional Note ---
18537
	    UPDATE ADDITIONAL_NOTES SET
18538
		       note_title = psNote_title,
18539
		       note_body = psNote_body,
18540
		       mod_date = Ora_Sysdate,
18541
		       mod_user = pnUser_id
18542
         WHERE note_id = pnNote_id
18543
           AND pv_id = pnPv_id;
18544
		outErrCode := 0;		-- Set return to SUCCESS
18545
	END IF;
18546
 
18547
	CLOSE an_duplicate_cur;
18548
END Update_Additional_Note;
4040 dpurdie 18549
 
3959 dpurdie 18550
/
4040 dpurdie 18551
--------------------------------------------------------
18552
--  DDL for Procedure UPDATE_DEPRECATION_STATE
18553
--------------------------------------------------------
18554
set define off;
18555
 
5172 dpurdie 18556
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_DEPRECATION_STATE" (nnrtag_id IN NUMBER) AS
3959 dpurdie 18557
 
18558
recno NUMBER;
18559
 
18560
CURSOR deprecate_cur IS
18561
 
18562
SELECT rc.pv_id
18563
FROM release_content rc
18564
WHERE rtag_id = nnrtag_id
18565
 AND deprecated_state IN(7);
18566
 
18567
deprecate_rec deprecate_cur % rowtype;
18568
 
18569
BEGIN
18570
 
18571
  OPEN deprecate_cur;
18572
 
18573
  FETCH deprecate_cur
18574
  INTO deprecate_rec;
18575
 
18576
  WHILE deprecate_cur % FOUND
18577
  LOOP
18578
 
18579
    SELECT COUNT(*)
18580
    INTO recno
18581
    FROM package_dependencies pd,
18582
      release_content rc
18583
    WHERE pd.pv_id = deprecate_rec.pv_id
18584
     AND rc.pv_id = pd.dpv_id
18585
     AND rc.rtag_id = nnrtag_id
18586
     AND rc.deprecated_state IN(6,   7);
18587
 
18588
    IF recno = 0 THEN
18589
 
18590
      UPDATE release_content
18591
      SET pkg_id = NULL, deprecated_state = NULL
18592
      WHERE pv_id = deprecate_rec.pv_id
18593
       AND rtag_id = nnrtag_id;
18594
 
18595
    END IF;
18596
 
18597
    FETCH deprecate_cur
18598
    INTO deprecate_rec;
18599
  END LOOP;
18600
 
18601
END;
4040 dpurdie 18602
 
3959 dpurdie 18603
/
4040 dpurdie 18604
--------------------------------------------------------
18605
--  DDL for Procedure UPDATE_MISC_VIEW
18606
--------------------------------------------------------
18607
set define off;
18608
 
5172 dpurdie 18609
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_MISC_VIEW" IS
1373 dpurdie 18610
/******************************************************************************
3959 dpurdie 18611
   NAME:       UPDATE_MISC_VIEW
18612
   PURPOSE:    
1373 dpurdie 18613
 
18614
   REVISIONS:
18615
   Ver        Date        Author           Description
18616
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 18617
   1.0        16/03/2007          1. Created this procedure.
1373 dpurdie 18618
 
18619
   NOTES:
18620
 
18621
   Automatically available Auto Replace Keywords:
3959 dpurdie 18622
      Object Name:     UPDATE_MISC_VIEW
18623
      Sysdate:         16/03/2007
18624
      Date and Time:   16/03/2007, 8:56:29 AM, and 16/03/2007 8:56:29 AM
1373 dpurdie 18625
      Username:         (set in TOAD Options, Procedure Editor)
18626
      Table Name:       (set in the "New PL/SQL Object" dialog)
18627
 
18628
******************************************************************************/
3959 dpurdie 18629
   CURSOR view_cur /*Create a record set to store the ripple data*/
18630
   IS
18631
   	 SELECT pkg.pkg_id, rc.base_view_id 
18632
	 FROM package_versions pv, packages pkg, release_content rc
18633
	 where rc.rtag_id = 2362
18634
	 and rc.pv_id = pv.pv_id
18635
	 and pv.pkg_id = pkg.pkg_id;
18636
   view_rec   view_cur%ROWTYPE;
18637
 
18638
 
18639
 
1373 dpurdie 18640
BEGIN
3959 dpurdie 18641
   OPEN view_cur;
1373 dpurdie 18642
 
3959 dpurdie 18643
   FETCH view_cur
18644
    INTO view_rec;
1373 dpurdie 18645
 
3959 dpurdie 18646
   WHILE view_cur%FOUND
18647
   LOOP
1373 dpurdie 18648
 
3959 dpurdie 18649
 
18650
	   update release_content
18651
	   set base_view_id = view_rec.base_view_id
18652
	   where rtag_id = 8027
18653
	   and pv_id IN 
18654
	   (
18655
	   	select pv.pv_id from release_content rc, package_versions pv
18656
		where rc.rtag_id = 8027
18657
		and pv.pv_id = rc.pv_id
18658
		and pv.pkg_id = view_rec.pkg_id 
18659
 
18660
	   );
18661
 
18662
 
1373 dpurdie 18663
 
3959 dpurdie 18664
 
18665
 
18666
 
18667
 
18668
 
1373 dpurdie 18669
 
3959 dpurdie 18670
   FETCH view_cur
18671
   		 INTO view_rec;
18672
   END LOOP;	 
1373 dpurdie 18673
 
18674
 
18675
 
18676
 
3959 dpurdie 18677
 
18678
END UPDATE_MISC_VIEW; 
4040 dpurdie 18679
 
1374 dpurdie 18680
/
4040 dpurdie 18681
--------------------------------------------------------
18682
--  DDL for Procedure UPDATE_PACKAGE_DEPENDENCY
18683
--------------------------------------------------------
18684
set define off;
18685
 
5172 dpurdie 18686
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_DEPENDENCY" ( NNpv_id IN NUMBER,
3959 dpurdie 18687
                                                        SSdep_name IN PACKAGES.pkg_name%TYPE,
18688
                                                        SSdep_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
18689
                                                        CCbuild_type IN PACKAGE_DEPENDENCIES.build_type%TYPE,
18690
                                                        NNuser_id IN NUMBER,
18691
                                                        NNdelete_old_dependency IN NUMBER
18692
                                                       ) IS
1373 dpurdie 18693
/* ---------------------------------------------------------------------------
3959 dpurdie 18694
    Version: 3.3
1373 dpurdie 18695
   --------------------------------------------------------------------------- */
18696
 
3959 dpurdie 18697
    retPV_ID NUMBER;
18698
    SSV_EXT PACKAGE_VERSIONS.v_ext%TYPE;
18699
	DepIsPatch	PACKAGE_VERSIONS.is_patch%TYPE;
18700
    PvIsPatch	PACKAGE_VERSIONS.is_patch%TYPE;
18701
    NNpkg_id NUMBER;
18702
    NNdpkg_id NUMBER;
1373 dpurdie 18703
 
18704
BEGIN
3959 dpurdie 18705
    --- Seed database with package_name and version if required ---
18706
    Seed_Package_Names_Versions ( SSdep_name, SSdep_version, NNuser_id, retPV_ID );
1373 dpurdie 18707
 
3959 dpurdie 18708
    -- get v_ext,pkg_id of current dependency
18709
    SELECT v_ext, pkg_id, is_patch INTO SSV_EXT, NNdpkg_id, DepIsPatch
18710
      FROM PACKAGE_VERSIONS
18711
     WHERE pv_id = retPV_ID;
1373 dpurdie 18712
 
3959 dpurdie 18713
    -- get pkg_id of parent package
18714
    SELECT pkg_id, is_patch INTO NNpkg_id, PvIsPatch
18715
      FROM PACKAGE_VERSIONS
18716
     WHERE pv_id = NNpv_id;
1373 dpurdie 18717
 
18718
 
3959 dpurdie 18719
	IF ( (PvIsPatch IS NULL) AND (DepIsPatch IS NULL) ) OR
18720
    	( (PvIsPatch IS NOT NULL) )THEN
1373 dpurdie 18721
 
3959 dpurdie 18722
	    IF NNdelete_old_dependency = 1 THEN
18723
	        /* Used for CUSTOM dependency add/edit */
1373 dpurdie 18724
 
3959 dpurdie 18725
	        --- Remove old dependency ---
18726
            IF (PvIsPatch IS NULL) THEN
18727
            	-- Do it for Packages
18728
		        DELETE FROM PACKAGE_DEPENDENCIES
18729
		         WHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN
18730
		            (
18731
		            SELECT dep.*
18732
		              FROM PACKAGE_DEPENDENCIES dep,
18733
		                   PACKAGE_VERSIONS dpv,
18734
		                   PACKAGE_VERSIONS pv
18735
		             WHERE dep.dpv_id = dpv.pv_id
18736
		               AND dep.pv_id = NNpv_id
18737
		               AND pv.pv_id = retPV_ID
18738
		               AND dpv.pkg_id = pv.pkg_id
18739
		               AND NVL(dpv.v_ext, '|LINK_A_NULL|') = NVL(SSV_EXT, '|LINK_A_NULL|')
18740
		            );
18741
            ELSE
18742
            	-- Do it for Patches
18743
                DELETE FROM PACKAGE_DEPENDENCIES
18744
		         WHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN
18745
		            (
18746
		            SELECT dep.*
18747
		              FROM PACKAGE_DEPENDENCIES dep
18748
		             WHERE dep.dpv_id = retPV_ID
18749
		               AND dep.pv_id = NNpv_id
18750
		            );
18751
			END IF;
1373 dpurdie 18752
 
3959 dpurdie 18753
	    END IF;
1373 dpurdie 18754
 
3959 dpurdie 18755
	    /* NOTE: for JATS, ANTS dependency update, it is expected that all dependencies are removed. */
18756
 
18757
	    --- Add new dependency ---
18758
	    INSERT INTO PACKAGE_DEPENDENCIES ( pv_id, dpv_id, pkg_id, dpkg_id, build_type )
18759
	    VALUES ( NNpv_id, retPV_ID, NNpkg_id, NNdpkg_id, CCbuild_type );
18760
 
18761
	END IF;
18762
 
18763
END Update_Package_Dependency;
4040 dpurdie 18764
 
1374 dpurdie 18765
/
4040 dpurdie 18766
--------------------------------------------------------
18767
--  DDL for Procedure UPDATE_PACKAGE_STATES
18768
--------------------------------------------------------
18769
set define off;
18770
 
5172 dpurdie 18771
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_STATES" ( NNrtag_id IN NUMBER,
3959 dpurdie 18772
                                                    NNsession_num IN NUMBER ) IS
18773
/* =============  STATE RULES =================== */
18774
/*
18775
   MNR   MRR   MN   MR    |   pkg_state
18776
   ------------------------------------
18777
 
18778
 
18779
 
18780
 
18781
   ------------------------------------
18782
 
18783
 
18784
 
18785
 
18786
   ------------------------------------
18787
    1     0     0     0   |      MINOR_READY
18788
    1     0     0     1   |      MAJOR
18789
    1     0     1     0   |      MINOR
18790
    1     0     1     1   |      MAJOR
18791
   ------------------------------------
18792
    1     1     0     0   |      MAJOR_READY
18793
    1     1     0     1   |      MAJOR
18794
    1     1     1     0   |      MAJOR
18795
    1     1     1     1   |      MAJOR
18796
   ------------------------------------
18797
*/
18798
BEGIN
18799
    /*----------------------------------------------
18800
    ||              MINOR READY
18801
    */----------------------------------------------
1373 dpurdie 18802
 
3959 dpurdie 18803
    UPDATE release_content
18804
       SET pkg_state = 4
18805
     WHERE rtag_id = NNrtag_id
18806
       AND pv_id IN
18807
           (
18808
           SELECT DISTINCT pv_id
18809
           FROM temp_env_states
18810
           WHERE session_num = NNsession_num
18811
             AND level_num = 1
18812
             AND tes_state = 2
18813
           );
1373 dpurdie 18814
 
3959 dpurdie 18815
    /*----------------------------------------------
18816
    ||              MAJOR READY
18817
    */----------------------------------------------
18818
    UPDATE release_content
18819
       SET pkg_state = 3
18820
     WHERE rtag_id = NNrtag_id
18821
       AND pv_id IN
18822
           (
18823
           SELECT DISTINCT pv_id
18824
           FROM temp_env_states
18825
           WHERE session_num = NNsession_num
18826
             AND level_num = 1
18827
             AND tes_state IN (0,1)
18828
           );
1373 dpurdie 18829
 
3959 dpurdie 18830
    /*----------------------------------------------
18831
    ||                MINOR
18832
    */----------------------------------------------
18833
    UPDATE release_content
18834
       SET pkg_state = 2
18835
     WHERE rtag_id = NNrtag_id
18836
       AND pv_id IN
18837
           (
18838
           SELECT DISTINCT pv_id
18839
            FROM temp_env_states
18840
            WHERE session_num = NNsession_num
18841
              AND level_num >= 2
18842
              AND tes_state = 2
18843
            MINUS
18844
           SELECT pv_id
18845
             FROM release_content
18846
            WHERE rtag_id = NNrtag_id
18847
              AND pkg_state = 3
18848
           );
1373 dpurdie 18849
 
3959 dpurdie 18850
    /*----------------------------------------------
18851
    ||                MAJOR
18852
    */----------------------------------------------
18853
    UPDATE release_content
18854
       SET pkg_state = 1
18855
     WHERE rtag_id = NNrtag_id
18856
       AND pv_id IN
18857
           (
18858
           SELECT DISTINCT pv_id
18859
           FROM temp_env_states
18860
           WHERE session_num = NNsession_num
18861
             AND level_num >= 2
18862
             AND tes_state IN (0,1)
18863
           /* MAJOR EXCEPTION - When package has Major Ready and Minor */
18864
           UNION
18865
           SELECT DISTINCT tes.pv_id
18866
           FROM temp_env_states tes,
18867
                release_content rc
18868
           WHERE tes.session_num = NNsession_num
18869
             AND tes.level_num >= 2
18870
             AND tes.tes_state = 2
18871
             AND rtag_id = NNrtag_id
18872
             AND rc.pv_id = tes.pv_id
18873
             AND rc.pkg_state = 3
18874
           );
1373 dpurdie 18875
 
3959 dpurdie 18876
    /*----------------------------------------------
18877
    ||                 OK
18878
    */----------------------------------------------
18879
    UPDATE release_content
18880
       SET pkg_state = 0
18881
     WHERE rtag_id = NNrtag_id
18882
       AND pv_id IN
18883
           (
18884
           SELECT rc.pv_id
18885
             FROM release_content rc
18886
            WHERE rc.rtag_id = NNrtag_id
18887
              AND NOT rc.pv_id IN
18888
                    (
18889
                     SELECT DISTINCT pv_id
18890
                     FROM temp_env_states WHERE session_num = NNsession_num
18891
                    )
18892
           );
1373 dpurdie 18893
 
3959 dpurdie 18894
      Update_Deprecation_State (NNrtag_id);
1373 dpurdie 18895
 
3959 dpurdie 18896
    /*----------------------------------------------
18897
    ||              PEGGED VERSIONS DEPENDENT
18898
    */----------------------------------------------
18899
    UPDATE release_content
18900
       SET pkg_state = 10
18901
     WHERE rtag_id = NNrtag_id
18902
       AND pv_id IN
18903
           (
18904
           SELECT DISTINCT pv_id
18905
           FROM pegged_versions pegv
18906
           WHERE pegv.rtag_id = NNrtag_id
18907
           );
1373 dpurdie 18908
 
3959 dpurdie 18909
    /*----------------------------------------------
18910
    ||              ADVISORY RIPPLE
18911
    */----------------------------------------------
18912
    UPDATE release_content
18913
       SET pkg_state = 8
18914
     WHERE rtag_id = NNrtag_id
18915
       AND pv_id IN
18916
           (
18917
           SELECT DISTINCT pv_id
18918
           FROM advisory_ripple ar
18919
           WHERE ar.rtag_id = NNrtag_id
18920
           )
18921
       AND pv_id IN
18922
           (
18923
           SELECT DISTINCT pv_id
18924
           FROM release_content rc
18925
           WHERE rc.rtag_id = NNrtag_id
18926
           );
5172 dpurdie 18927
 
18928
    /*----------------------------------------------
18929
    ||              SDK Imported
18930
    */----------------------------------------------
18931
    UPDATE release_content
18932
       SET pkg_state = 11
18933
     WHERE rtag_id = NNrtag_id
18934
       AND sdktag_id is not null;           
1373 dpurdie 18935
 
3959 dpurdie 18936
END Update_Package_States;
4040 dpurdie 18937
 
3959 dpurdie 18938
/
4040 dpurdie 18939
--------------------------------------------------------
18940
--  DDL for Procedure UPDATE_PROCESSES
18941
--------------------------------------------------------
18942
set define off;
18943
 
5172 dpurdie 18944
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PROCESSES" 
3959 dpurdie 18945
IS
1373 dpurdie 18946
 
3959 dpurdie 18947
proc_id NUMBER;
18948
/******************************************************************************
18949
   NAME:       DELETE_DO_NOT_RIPPLE
18950
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
18951
               IS RELEASED
1373 dpurdie 18952
 
3959 dpurdie 18953
   REVISIONS:
18954
   Ver        Date        Author           Description
18955
   ---------  ----------  ---------------  ------------------------------------
18956
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
1373 dpurdie 18957
 
3959 dpurdie 18958
   NOTES:
1373 dpurdie 18959
 
3959 dpurdie 18960
   Automatically available Auto Replace Keywords:
18961
      Object Name:     DELETE_DO_NOT_RIPPLE
18962
      Sysdate:         21/04/2006
18963
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
18964
      Username:         (set in TOAD Options, Procedure Editor)
18965
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 18966
 
3959 dpurdie 18967
******************************************************************************/
18968
   CURSOR ripple_cur
18969
   IS
18970
      select proc_id,  proc_name, run_as, pkg_owner, is_interface from processes;
1373 dpurdie 18971
 
3959 dpurdie 18972
   ripple_rec   ripple_cur%ROWTYPE;
18973
BEGIN
18974
   OPEN ripple_cur;
18975
 
18976
   FETCH ripple_cur
18977
    INTO ripple_rec;
18978
 
18979
   WHILE ripple_cur%FOUND
18980
   LOOP
18981
 
18982
 
18983
update deployment_manager.processes_config 
18984
set proc_id = ripple_rec.proc_id
18985
where pkg_health_tag = ripple_rec.proc_name
18986
and cmd_interface IS NULL
18987
and pkg_owner IS NULL
18988
and is_interface IS NULL; 
18989
 
18990
 
18991
      FETCH ripple_cur
18992
       INTO ripple_rec;
18993
   END LOOP;
18994
END UPDATE_PROCESSES;
4040 dpurdie 18995
 
1374 dpurdie 18996
/
4040 dpurdie 18997
--------------------------------------------------------
18998
--  DDL for Procedure UPDATE_RUNTIME_DEPENDENCY
18999
--------------------------------------------------------
19000
set define off;
19001
 
5172 dpurdie 19002
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_RUNTIME_DEPENDENCY" ( NNpv_id IN RUNTIME_DEPENDENCIES.pv_id%TYPE,
3959 dpurdie 19003
				   	  		  						    NNrtd_id IN RUNTIME_DEPENDENCIES.rtd_id%TYPE,
19004
				   	  		  						    SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
19005
													    SSrtd_url IN RUNTIME_DEPENDENCIES.rtd_url%TYPE,
19006
													    SSrtd_comments IN RUNTIME_DEPENDENCIES.rtd_comments%TYPE,
19007
													    NNuser_id IN NUMBER ) IS
1373 dpurdie 19008
/* ---------------------------------------------------------------------------
3959 dpurdie 19009
    Version: 3.0.1
1373 dpurdie 19010
   --------------------------------------------------------------------------- */
19011
 
3959 dpurdie 19012
    retRTD_ID	NUMBER;
19013
	CURSOR rtd_cur IS
19014
	    SELECT pv.pkg_version, pkg.pkg_name
19015
		  FROM runtime_dependencies rtd,
19016
		       package_versions pv,
19017
			   packages pkg
19018
		 WHERE rtd.rtd_id = pv.pv_id
19019
		   AND pv.pkg_id = pkg.pkg_id
19020
		   AND rtd.pv_id = NNpv_id
19021
		   AND rtd.rtd_id = NNrtd_id;
19022
	   rtd_rec rtd_cur%ROWTYPE;
1373 dpurdie 19023
 
3959 dpurdie 19024
	CURSOR old_rtd_cur IS
19025
	    SELECT pv.pv_id
19026
		  FROM package_versions pv
19027
		 WHERE pv.pkg_id IN ( SELECT rtdpv.pkg_id
19028
		 	   			 	    FROM package_versions rtdpv
19029
							   WHERE rtdpv.pv_id = NNrtd_id )
19030
		   AND pv.pkg_version = SSrtd_version;
19031
	old_rtd_rec old_rtd_cur%ROWTYPE;
1373 dpurdie 19032
 
3959 dpurdie 19033
 
1373 dpurdie 19034
BEGIN
19035
 
3959 dpurdie 19036
    -- Get current runtime dependency details
19037
	OPEN rtd_cur;
19038
    FETCH rtd_cur INTO rtd_rec;
1373 dpurdie 19039
 
19040
 
19041
 
19042
 
3959 dpurdie 19043
	IF rtd_rec.pkg_version != SSrtd_version THEN
19044
           -- Version has changed, hence create new runtime dependency --
19045
	    /* NOTE: You must create new version as updating just a version will affect
19046
		        all packages using this runtime dependency and user does not expect that.
19047
		        It is safer to create new version */
19048
		OPEN old_rtd_cur;
19049
		FETCH old_rtd_cur INTO old_rtd_rec;
1373 dpurdie 19050
 
19051
 
3959 dpurdie 19052
		IF old_rtd_cur%NOTFOUND
19053
		THEN
19054
			-- Version not found, hence Create New version --
19055
    		Seed_Package_Names_Versions ( rtd_rec.pkg_name, SSrtd_version, NNuser_id, retRTD_ID );
1373 dpurdie 19056
 
3959 dpurdie 19057
			-- Update runtime dependency table --
19058
			UPDATE runtime_dependencies SET
19059
				   rtd_id = retRTD_ID,
19060
				   rtd_url = SSrtd_url,
19061
				   rtd_comments = SSrtd_comments
19062
			 WHERE pv_id = NNpv_id
19063
			   AND rtd_id = NNrtd_id;
1373 dpurdie 19064
 
3959 dpurdie 19065
		ELSE
19066
			-- Update runtime dependency table --
19067
			UPDATE runtime_dependencies SET
19068
				   rtd_id = old_rtd_rec.pv_id,
19069
				   rtd_url = SSrtd_url,
19070
				   rtd_comments = SSrtd_comments
19071
			 WHERE pv_id = NNpv_id
19072
			   AND rtd_id = NNrtd_id;
19073
 
19074
		END IF;
19075
 
19076
 
19077
		CLOSE old_rtd_cur;
19078
 
19079
	ELSE
19080
		--  Version has not changed, hence update everithing except	version --
19081
		UPDATE runtime_dependencies SET
19082
			   rtd_url = SSrtd_url,
19083
			   rtd_comments = SSrtd_comments
19084
		 WHERE pv_id = NNpv_id
19085
		   AND rtd_id = NNrtd_id;
19086
 
19087
 
19088
 
19089
	END IF;
19090
 
19091
 
19092
	CLOSE rtd_cur;
19093
 
19094
END Update_Runtime_Dependency;
4040 dpurdie 19095
 
1374 dpurdie 19096
/
4040 dpurdie 19097
--------------------------------------------------------
19098
--  DDL for Procedure UPDATE_UNIT_TEST
19099
--------------------------------------------------------
19100
set define off;
19101
 
5172 dpurdie 19102
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST" ( nTest_id IN NUMBER,
3959 dpurdie 19103
	   	  		  							   nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,  	
19104
											   nPv_id IN NUMBER,
19105
											   nUserId IN NUMBER,
19106
	                                           sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
19107
											   sNumof_test IN UNIT_TESTS.NUMOF_TEST%TYPE,
19108
	                                           sCompletion_date IN VARCHAR2,
19109
											   sDpkg_path IN VARCHAR2,
19110
											   enumTEST_TYPE_AUTOMATIC IN NUMBER,
19111
											   sResults IN VARCHAR2,
19112
											   outFileName OUT VARCHAR2
19113
                                              ) IS
1373 dpurdie 19114
/* ---------------------------------------------------------------------------
3959 dpurdie 19115
    Version: 3.1.0
1373 dpurdie 19116
   --------------------------------------------------------------------------- */
3959 dpurdie 19117
 
19118
   	FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
1373 dpurdie 19119
 
3959 dpurdie 19120
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
19121
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
1373 dpurdie 19122
 
3959 dpurdie 19123
 
1373 dpurdie 19124
BEGIN
19125
 
3959 dpurdie 19126
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
19127
       	ResultsURL := sResults;
19128
       ELSE
19129
       	IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
19130
        	outFileName := FILENAME_PREFIX || nTest_id ||'_'|| sResults;
19131
    		ResultsAttachment := sDpkg_path || '/' || outFileName;
19132
           END IF;
19133
       END IF;
1373 dpurdie 19134
 
3959 dpurdie 19135
	--- Update Unit Test ---
19136
    UPDATE UNIT_TESTS SET
19137
           TEST_SUMMARY = sTest_summary,
19138
		   NUMOF_TEST = sNumof_test,
19139
           COMPLETION_DATE = TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
19140
		   COMPLETED_BY = nUserId,
19141
		   RESULTS_URL = ResultsURL,
19142
		   RESULTS_ATTACHMENT_NAME = ResultsAttachment
19143
     WHERE TEST_ID = nTest_id
19144
       AND PV_ID = nPv_id;
1373 dpurdie 19145
 
3959 dpurdie 19146
END Update_Unit_Test;
4040 dpurdie 19147
 
3959 dpurdie 19148
/
4040 dpurdie 19149
--------------------------------------------------------
19150
--  DDL for Procedure UPDATE_UNIT_TEST_ACCEPTANCE
19151
--------------------------------------------------------
19152
set define off;
19153
 
5172 dpurdie 19154
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST_ACCEPTANCE" ( pnTest_id IN NUMBER,
3959 dpurdie 19155
														  pnPv_id IN NUMBER,
19156
					                                      sAccepted IN UNIT_TESTS.TEST_ACCEPTED%TYPE,
19157
														  sAcceptanceDate IN VARCHAR2,
19158
														  sAcceptedBy IN NUMBER,
19159
					                                      sReviewComments IN UNIT_TESTS.REVIEW_COMMENTS%TYPE,
19160
														  cUpdateAcceptedStateOnly IN CHAR
19161
					                                     ) IS
19162
/* ---------------------------------------------------------------------------
19163
    Version: 3.0.0
19164
   --------------------------------------------------------------------------- */
1373 dpurdie 19165
 
19166
 
19167
 
3959 dpurdie 19168
BEGIN
19169
	IF cUpdateAcceptedStateOnly = 'Y'
19170
	THEN
19171
		--- Update Accepted State Only ---
19172
		IF ( sAccepted IS NULL )
19173
		THEN
19174
			-- Clear alleptance
19175
			UPDATE UNIT_TESTS SET
19176
		           TEST_ACCEPTED = NULL,
19177
		           ACCEPTANCE_DATE = NULL,
19178
				   ACCEPTED_BY = NULL,
19179
				   REVIEW_COMMENTS = NULL
19180
		     WHERE TEST_ID = pnTest_id
19181
		       AND PV_ID = pnPv_id;
19182
 
19183
	    ELSE
19184
			UPDATE UNIT_TESTS SET
19185
		           TEST_ACCEPTED = sAccepted,
19186
		           ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),
19187
				   ACCEPTED_BY = sAcceptedBy
19188
		     WHERE TEST_ID = pnTest_id
19189
		       AND PV_ID = pnPv_id;
19190
 
19191
		END IF;
19192
 
19193
 
19194
	ELSE
19195
		--- Update Unit Test Acceptance ---
19196
	    UPDATE UNIT_TESTS SET
19197
	           TEST_ACCEPTED = sAccepted,
19198
			   REVIEW_COMMENTS = sReviewComments,
19199
	           ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),
19200
			   ACCEPTED_BY = sAcceptedBy
19201
	     WHERE TEST_ID = pnTest_id
19202
	       AND PV_ID = pnPv_id;
19203
 
19204
	END IF;
19205
 
19206
END Update_Unit_Test_Acceptance;
4040 dpurdie 19207
 
1374 dpurdie 19208
/
4040 dpurdie 19209
--------------------------------------------------------
19210
--  DDL for Synonymn APPLICATIONS
19211
--------------------------------------------------------
19212
 
5172 dpurdie 19213
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."APPLICATIONS" FOR "ACCESS_MANAGER"."APPLICATIONS";
4040 dpurdie 19214
--------------------------------------------------------
19215
--  DDL for Synonymn APPLICATION_PAGES
19216
--------------------------------------------------------
19217
 
5172 dpurdie 19218
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."APPLICATION_PAGES" FOR "ACCESS_MANAGER"."APPLICATION_PAGES";
4040 dpurdie 19219
--------------------------------------------------------
19220
--  DDL for Synonymn CONTROL_OBJECTS
19221
--------------------------------------------------------
19222
 
5172 dpurdie 19223
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."CONTROL_OBJECTS";
4040 dpurdie 19224
--------------------------------------------------------
19225
--  DDL for Synonymn DATA_PERMISSIONS
19226
--------------------------------------------------------
19227
 
5172 dpurdie 19228
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."DATA_PERMISSIONS" FOR "ACCESS_MANAGER"."DATA_PERMISSIONS";
4040 dpurdie 19229
--------------------------------------------------------
19230
--  DDL for Synonymn DATA_TABLES
19231
--------------------------------------------------------
19232
 
5172 dpurdie 19233
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."DATA_TABLES" FOR "ACCESS_MANAGER"."DATA_TABLES";
4040 dpurdie 19234
--------------------------------------------------------
19235
--  DDL for Synonymn PAGE_CONTROL_OBJECTS
19236
--------------------------------------------------------
19237
 
5172 dpurdie 19238
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PAGE_CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."PAGE_CONTROL_OBJECTS";
4040 dpurdie 19239
--------------------------------------------------------
19240
--  DDL for Synonymn PERMISSION_TYPES
19241
--------------------------------------------------------
19242
 
5172 dpurdie 19243
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PERMISSION_TYPES" FOR "ACCESS_MANAGER"."PERMISSION_TYPES";
4040 dpurdie 19244
--------------------------------------------------------
19245
--  DDL for Synonymn PK_AMUTILS
19246
--------------------------------------------------------
19247
 
5172 dpurdie 19248
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PK_AMUTILS" FOR "ACCESS_MANAGER"."PK_AMUTILS";
4040 dpurdie 19249
--------------------------------------------------------
19250
--  DDL for Synonymn PK_SECURITY
19251
--------------------------------------------------------
19252
 
5172 dpurdie 19253
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PK_SECURITY" FOR "ACCESS_MANAGER"."PK_SECURITY";
4040 dpurdie 19254
--------------------------------------------------------
19255
--  DDL for Synonymn ROLES
19256
--------------------------------------------------------
19257
 
5172 dpurdie 19258
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."ROLES" FOR "ACCESS_MANAGER"."ROLES";
4040 dpurdie 19259
--------------------------------------------------------
19260
--  DDL for Synonymn ROLE_PRIVILEGES
19261
--------------------------------------------------------
19262
 
5172 dpurdie 19263
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."ROLE_PRIVILEGES" FOR "ACCESS_MANAGER"."ROLE_PRIVILEGES";
4040 dpurdie 19264
--------------------------------------------------------
19265
--  DDL for Synonymn USERS
19266
--------------------------------------------------------
19267
 
5172 dpurdie 19268
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USERS" FOR "ACCESS_MANAGER"."USERS";
4040 dpurdie 19269
--------------------------------------------------------
19270
--  DDL for Synonymn USER_APPLICATIONS
19271
--------------------------------------------------------
19272
 
5172 dpurdie 19273
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USER_APPLICATIONS" FOR "ACCESS_MANAGER"."USER_APPLICATIONS";
4040 dpurdie 19274
--------------------------------------------------------
19275
--  DDL for Synonymn USER_ROLES
19276
--------------------------------------------------------
19277
 
5172 dpurdie 19278
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USER_ROLES" FOR "ACCESS_MANAGER"."USER_ROLES";