Subversion Repositories DevTools

Rev

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

Rev Author Line No. Line
1374 dpurdie 1
--------------------------------------------------------
5502 dpurdie 2
--  File created - Monday-January-18-2016   
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
 
5502 dpurdie 35
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_ADDITIONAL_NOTES"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 36049 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
 
5502 dpurdie 55
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BUILD_INSTANCE"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 62661 CACHE 20 ORDER  NOCYCLE ;
5172 dpurdie 56
--------------------------------------------------------
4040 dpurdie 57
--  DDL for Sequence SEQ_CR_ID
58
--------------------------------------------------------
59
 
5502 dpurdie 60
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_CR_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 90946 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 61
--------------------------------------------------------
62
--  DDL for Sequence SEQ_DAEMON_INSTRUCTION_ID
63
--------------------------------------------------------
64
 
5502 dpurdie 65
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_DAEMON_INSTRUCTION_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 160868 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
 
5502 dpurdie 85
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PKG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 62767 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
 
5502 dpurdie 95
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PV_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1086305 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 96
--------------------------------------------------------
97
--  DDL for Sequence SEQ_RCON_ID
98
--------------------------------------------------------
99
 
5502 dpurdie 100
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RCON_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 28510 CACHE 20 ORDER  NOCYCLE ;
5172 dpurdie 101
--------------------------------------------------------
102
--  DDL for Sequence SEQ_RELEASE_MOD
103
--------------------------------------------------------
104
 
5502 dpurdie 105
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RELEASE_MOD"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 67296 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 106
--------------------------------------------------------
107
--  DDL for Sequence SEQ_RTAG_ID
108
--------------------------------------------------------
109
 
5502 dpurdie 110
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RTAG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 32925 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 111
--------------------------------------------------------
112
--  DDL for Sequence SEQ_SCHEDULED_ID
113
--------------------------------------------------------
114
 
5502 dpurdie 115
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SCHEDULED_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 27967 CACHE 20 ORDER  NOCYCLE ;
5172 dpurdie 116
--------------------------------------------------------
117
--  DDL for Sequence SEQ_SDKTAG_ID
118
--------------------------------------------------------
119
 
5502 dpurdie 120
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SDKTAG_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 181 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
 
5502 dpurdie 130
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SESSION_NUM"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1052006 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 131
--------------------------------------------------------
132
--  DDL for Sequence SEQ_UNIT_TESTS
133
--------------------------------------------------------
134
 
5502 dpurdie 135
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_UNIT_TESTS"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 359022 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
 
5502 dpurdie 150
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VIEW_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 5721 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 151
--------------------------------------------------------
152
--  DDL for Sequence SEQ_VTREE_ID
153
--------------------------------------------------------
154
 
5502 dpurdie 155
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VTREE_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 29744 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;
5502 dpurdie 5169
 
5170
   /*
5171
    * Carriage-return line-feed character sequence.
5172
    */
5173
   CRLF CONSTANT VARCHAR2(2 CHAR) := unistr('\000D\000A');
1373 dpurdie 5174
 
5175
/*================================================================================================*/
5176
   PROCEDURE new_version (
5177
      nlastpvid                   IN       NUMBER,
5178
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
5179
      cbuildtype                  IN       CHAR,
4211 dpurdie 5180
      cchangetype                 IN       CHAR,
1373 dpurdie 5181
      nsettopvid                  IN       NUMBER DEFAULT NULL,
5182
      nrtagid                     IN       NUMBER,
5183
      nuserid                     IN       NUMBER,
5184
      enumissues_state_imported   IN       NUMBER,
5185
      returnpvid                  OUT      NUMBER
5186
   );
5187
 
5188
   PROCEDURE change_state (
5189
      pvid       IN   NUMBER,
5190
      newstate   IN   package_versions.dlocked%TYPE,
5191
      userid     IN   NUMBER
5192
   );
5193
 
5194
   PROCEDURE new_patch (
5195
      snewpatchversion   IN       package_versions.pkg_version%TYPE,
5196
      nparentpvid        IN       NUMBER,
5197
      spatchidlist       IN       VARCHAR2,
5198
      nuserid            IN       NUMBER,
5199
      returnpatchid      OUT      NUMBER
5200
   );
5201
 
5202
   PROCEDURE obsolete_patch (
5203
      patchid            IN   NUMBER,
5204
      isobsolete         IN   CHAR,
5205
      obsoletecomments   IN   VARCHAR2,
5206
      userid             IN   NUMBER
5207
   );
5208
 
5209
   PROCEDURE obsolete_patches (
5210
      spatchidlist       IN   VARCHAR2,
5211
      isobsolete         IN   CHAR,
5212
      obsoletecomments   IN   VARCHAR2,
5213
      userid             IN   NUMBER
5214
   );
5215
 
5216
   PROCEDURE destroy_package (
5217
      pvid               IN       NUMBER,
5218
      overridewarnings   IN       CHAR DEFAULT 'N',
5219
      problemstring      OUT      VARCHAR2
5220
   );
5221
 
5222
   PROCEDURE add_process (
5223
      nprocid         IN   processes.proc_id%TYPE,
5224
      shealthtag      IN   processes.proc_name%TYPE,
5225
      sprocdesc       IN   processes.proc_description%TYPE,
5226
      scmdinterface   IN   processes.run_as%TYPE,
5227
      spkgowner       IN   processes.pkg_owner%TYPE,
5228
      sisinterface    IN   processes.is_interface%TYPE,
5229
      npvid           IN   package_processes.pv_id%TYPE,
5230
      nuserid         IN   NUMBER
5231
   );
5232
 
5233
   PROCEDURE add_package_process (
5234
      nprocidlist   IN   VARCHAR2,
5235
      npvid         IN   package_processes.pv_id%TYPE,
5236
      nuserid       IN   NUMBER
5237
   );
5238
 
5239
 
5240
 
5241
   PROCEDURE remove_process (
5242
      nprocid   IN   package_processes.proc_id%TYPE,
5243
      npvid     IN   package_processes.pv_id%TYPE,
5244
      nuserid   IN   NUMBER
5245
   );
5246
 
5247
   PROCEDURE move_package (
5248
   	  npvid  			  IN package_versions.pv_id%TYPE,
5249
	  nrtagid 			  IN release_tags.rtag_id%TYPE,
5250
	  nnewrtagid 		  IN release_tags.rtag_id%TYPE,
5251
	  nuserid			  IN NUMBER		 
5252
   ); 
5253
 
3959 dpurdie 5254
   PROCEDURE modify_product_state (
1373 dpurdie 5255
   	  npvid IN package_versions.pv_id%TYPE,
3959 dpurdie 5256
	  nrtagid IN release_tags.rtag_id%TYPE,
1373 dpurdie 5257
	  nstateid IN product_states.state_id%TYPE,
5258
	  nuserid IN NUMBER
5259
   );
3959 dpurdie 5260
 
5261
   PROCEDURE add_code_review_url (
5262
        npvid           IN    NUMBER,
5263
        nprojid         IN    NUMBER,
5264
        surl            IN    VARCHAR2,
5265
        sreason         IN    VARCHAR2,
4553 dpurdie 5266
        ddateofreview   IN    VARCHAR2
3959 dpurdie 5267
   );
5268
 
5269
   PROCEDURE update_code_review_url (
5270
        ncrid           IN    NUMBER,
5271
        nprojid         IN    NUMBER,
5272
        surl            IN    VARCHAR2,
4553 dpurdie 5273
        sreason         IN    VARCHAR2,
5274
        ddateofreview   IN    VARCHAR2
3959 dpurdie 5275
   );
5276
 
5277
   PROCEDURE remove_code_review_url (
5278
        ncrid           IN    NUMBER
5279
   );
1373 dpurdie 5280
/*================================================================================================*/
3959 dpurdie 5281
END pk_package;
4040 dpurdie 5282
 
1374 dpurdie 5283
/
4040 dpurdie 5284
--------------------------------------------------------
5285
--  DDL for Package PK_PLANNED
5286
--------------------------------------------------------
5287
 
5172 dpurdie 5288
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PLANNED" IS
1373 dpurdie 5289
/*
5290
------------------------------
5291
||  Last Modified:  G.Huddy
5292
||  Modified Date:  28/May/2008
5293
||  Spec Version:   1.1
5294
------------------------------
5295
*/
5296
 
5297
	TYPE typeCur IS REF CURSOR;
5298
 
5299
    /*================================================================================================*/
5384 dpurdie 5300
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, OPR IN CHAR DEFAULT 'R'  );
1373 dpurdie 5301
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5302
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5303
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
5304
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
5305
	PROCEDURE MERGE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, mergeOperation IN CHAR);
5306
	/*================================================================================================*/
5307
 
5308
END PK_PLANNED;
4040 dpurdie 5309
 
1374 dpurdie 5310
/
4040 dpurdie 5311
--------------------------------------------------------
5312
--  DDL for Package PK_PROJECT
5313
--------------------------------------------------------
5314
 
5172 dpurdie 5315
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PROJECT" IS
1373 dpurdie 5316
 
3959 dpurdie 5317
    TYPE typecur IS REF CURSOR;
1373 dpurdie 5318
 
3959 dpurdie 5319
    /*------------------------------------------------------------------------*/
5320
    PROCEDURE update_base_url (
5321
        nprojid   IN  projects.proj_id%TYPE,
5322
        sbaseurl  IN  VARCHAR2
5323
    );
5324
    /*------------------------------------------------------------------------*/
5325
    PROCEDURE update_project_config (
5326
    nprojid   IN  projects.proj_id%TYPE,
5327
    sbaseurl  IN  VARCHAR2,
5328
    sjirakey  IN  VARCHAR2
5329
    );
5330
    /*------------------------------------------------------------------------*/
1373 dpurdie 5331
 
3959 dpurdie 5332
    END pk_project;
4040 dpurdie 5333
 
1374 dpurdie 5334
/
4040 dpurdie 5335
--------------------------------------------------------
5336
--  DDL for Package PK_RELEASE
5337
--------------------------------------------------------
5338
 
5172 dpurdie 5339
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_RELEASE" IS
1373 dpurdie 5340
/*
5341
------------------------------
5342
||  Last Modified:  S.Vukovic
5343
||  Modified Date:  12/Sep/2005
5344
||  Body Version:   3.0
5345
------------------------------
5346
*/
5347
 
5348
	TYPE typeCur IS REF CURSOR;
5349
 
5350
    /*================================================================================================*/
5502 dpurdie 5351
	PROCEDURE New_Release ( sReleaseName IN VARCHAR2, sReleaseComments IN VARCHAR2, nProjId IN NUMBER, nSourceRtagId IN NUMBER, sIsBranched IN CHAR, nUserId IN NUMBER,cOfficial IN CHAR DEFAULT 'N' );
5384 dpurdie 5352
	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 5353
	PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER  );
5354
	PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER );
5502 dpurdie 5355
	PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER,nMode IN NUMBER default 0 );
1373 dpurdie 5356
	PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER );
5357
	FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR ) RETURN NUMBER;
5358
	PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER );
5502 dpurdie 5359
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
1373 dpurdie 5360
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5361
	--PROCEDURE ADD_DEPRECATE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, nPkgId IN NUMBER );
5362
	PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5363
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5364
	PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5365
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5366
	PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER );
5367
	PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER );
5368
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
5369
	PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 );
5370
	PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER );
5371
	PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR );
5172 dpurdie 5372
  PROCEDURE SET_RELEASE_MODIFIED (nRtagId IN NUMBER );
5373
  PROCEDURE ADD_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER, nUserId IN NUMBER, bDelete IN  NUMBER, nInsertCount OUT NUMBER, curReturn OUT typeCur );
5374
  PROCEDURE REMOVE_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER );
5375
  FUNCTION CAN_ADD_PKG_TO_RELEASE ( nRtagId IN NUMBER, nPvid in NUMBER ) RETURN NUMBER;
5502 dpurdie 5376
 
1373 dpurdie 5377
	/*================================================================================================*/
5384 dpurdie 5378
 
1373 dpurdie 5379
END PK_RELEASE;
4040 dpurdie 5380
 
1374 dpurdie 5381
/
4040 dpurdie 5382
--------------------------------------------------------
5383
--  DDL for Package PK_RMAPI
5384
--------------------------------------------------------
5385
 
5172 dpurdie 5386
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_RMAPI" 
3959 dpurdie 5387
IS
5388
   TYPE typecur IS REF CURSOR;
1373 dpurdie 5389
 
3959 dpurdie 5390
   FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)
5391
      RETURN typecur;
1373 dpurdie 5392
 
3959 dpurdie 5393
   FUNCTION wip_iteration_package (
5394
      projname        VARCHAR2,
5395
      iterationname   VARCHAR2,
5396
      pkgname         VARCHAR2
5397
   )
5398
      RETURN typecur;
1373 dpurdie 5399
 
3959 dpurdie 5400
   FUNCTION auto_make_vcsrelease (
5401
      rtagid                   IN   NUMBER,
5402
      pkgname                  IN   VARCHAR2,
5403
      vext                     IN   VARCHAR2,
5404
      newpkgversion            IN   VARCHAR2,
5405
      vcstag                   IN   VARCHAR2,
5406
      dependenciesimportlist   IN   VARCHAR2,
5407
      isrippled                IN   NUMBER,
5408
      username                 IN   VARCHAR2
5409
   )
5410
      RETURN NUMBER;
1373 dpurdie 5411
 
5412
 
3959 dpurdie 5413
   PROCEDURE import_dependencies (
5414
      pvid                     IN   NUMBER,
5415
      dependenciesimportlist   IN   VARCHAR2,
5416
      userid                   IN   NUMBER
5417
   );
1373 dpurdie 5418
 
3959 dpurdie 5419
   FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)
5420
      RETURN VARCHAR2;
1373 dpurdie 5421
 
3959 dpurdie 5422
   FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)
5423
      RETURN VARCHAR2;
1373 dpurdie 5424
 
3959 dpurdie 5425
   PROCEDURE update_dash_board (rtagid IN NUMBER);
1373 dpurdie 5426
 
3959 dpurdie 5427
   FUNCTION exclude_from_build (
5428
      pvid          IN   NUMBER,
5429
      spkgversion   IN   VARCHAR2,
5430
      rtagid        IN   NUMBER,
5431
      username      IN   VARCHAR2
5432
   )
5433
      RETURN NUMBER;
1373 dpurdie 5434
 
3959 dpurdie 5435
   FUNCTION exclude_indirect_from_build (
5436
      pvid          IN   NUMBER,
5437
      spkgversion   IN   VARCHAR2,
5438
      rtagid        IN   NUMBER,
5439
      username      IN   VARCHAR2,
5440
      rootpvid      IN   NUMBER,
5441
      rootcause     IN   VARCHAR2,
5442
      rootfile      IN   VARCHAR2
5443
   )
5444
      RETURN NUMBER;
1373 dpurdie 5445
 
3959 dpurdie 5446
   PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2);
1373 dpurdie 5447
 
3959 dpurdie 5448
   FUNCTION insert_package_metrics (
5449
      rtagid IN NUMBER,
5450
      pkgname IN VARCHAR2,
5451
      vext IN VARCHAR2,
5452
      metricstring IN VARCHAR2
5453
   )
5454
      RETURN NUMBER;
1373 dpurdie 5455
 
3959 dpurdie 5456
   PROCEDURE update_release_metrics (rtagid IN NUMBER);
1373 dpurdie 5457
 
3959 dpurdie 5458
   FUNCTION return_vcs_tag(pvid IN NUMBER) RETURN VARCHAR2;
5459
 
5460
   PROCEDURE update_vcs_details(ipv_id IN NUMBER, vcstag IN VARCHAR2, user_id IN NUMBER);
5461
 
5462
   FUNCTION isSVN( pkgid IN NUMBER ) RETURN NUMBER;
5463
 
5464
   FUNCTION isSVNbyName( pkgname IN VARCHAR2 ) RETURN NUMBER;
5465
 
5172 dpurdie 5466
   FUNCTION new_build_instance( rtag_id IN NUMBER, pv_id IN NUMBER, reason IN CHAR ) return NUMBER;
5467
 
5468
   FUNCTION update_build_instance( nbuild_id IN NUMBER, npv_id IN NUMBER default null, nstate IN CHAR default null ) return NUMBER;
5469
 
5470
   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;
5471
 
5472
 
3959 dpurdie 5473
END pk_rmapi;
4040 dpurdie 5474
 
1374 dpurdie 5475
/
4040 dpurdie 5476
--------------------------------------------------------
5477
--  DDL for Package PK_WORK_IN_PROGRESS
5478
--------------------------------------------------------
5479
 
5172 dpurdie 5480
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS
1373 dpurdie 5481
/*
5482
------------------------------
5483
||  Last Modified:  S.Vukovic
3959 dpurdie 5484
||  Modified Date:  2/May/2005
5485
||  Spec Version:   1.0
1373 dpurdie 5486
------------------------------
5487
*/
5488
 
5489
	TYPE typeCur IS REF CURSOR;
5490
 
5491
    /*================================================================================================*/
5492
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5493
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
3959 dpurdie 5494
	PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER );
5495
 
1373 dpurdie 5496
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
3959 dpurdie 5497
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );	
1373 dpurdie 5498
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
5499
	/*================================================================================================*/
3959 dpurdie 5500
 
5501
END PK_WORK_IN_PROGRESS;
4040 dpurdie 5502
 
1374 dpurdie 5503
/
4040 dpurdie 5504
--------------------------------------------------------
5505
--  DDL for Package RM_ISSUES
5506
--------------------------------------------------------
5507
 
5172 dpurdie 5508
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."RM_ISSUES" AS
1373 dpurdie 5509
 
3959 dpurdie 5510
	TYPE T_Cur IS REF CURSOR;
1373 dpurdie 5511
 
3959 dpurdie 5512
	FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;
5513
	FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBER;
5514
	FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;
5515
	FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBER;
1373 dpurdie 5516
 
3959 dpurdie 5517
	PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );
5518
	PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );
5519
	PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 );
1373 dpurdie 5520
 
3959 dpurdie 5521
END Rm_Issues;
4040 dpurdie 5522
 
3959 dpurdie 5523
/
4040 dpurdie 5524
--------------------------------------------------------
5525
--  DDL for Package Body PK_APP_UTILS
5526
--------------------------------------------------------
5527
 
5172 dpurdie 5528
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_APP_UTILS" IS
1373 dpurdie 5529
 
3959 dpurdie 5530
/*
5531
------------------------------
5532
||  Last Modified:  S.Vukovic
5533
||  Modified Date:  26/Apr/2005
5534
||  Body Version:   1.0
5535
------------------------------
5536
*/
1373 dpurdie 5537
 
5538
 
5539
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5540
PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur)   IS
1373 dpurdie 5541
 
5542
 
5543
BEGIN
5544
 
5545
 
3959 dpurdie 5546
	IF (NOT RtagId IS NULL) THEN
5547
		-- Case with RTAG_ID present
5548
		OPEN records FOR
5549
		SELECT rt.PROJ_ID,
5550
			   rt.RTAG_ID AS RTAG_ID
5551
		  FROM RELEASE_TAGS rt
5552
		 WHERE rt.RTAG_ID = TO_NUMBER(RtagId);
1373 dpurdie 5553
 
3959 dpurdie 5554
	ELSIF (NOT ProjId IS NULL) THEN
5555
		-- Case with PROJ_ID present
5556
		OPEN records FOR
5557
		SELECT TO_NUMBER(ProjId) AS PROJ_ID,
5558
			   -1 AS RTAG_ID
5559
		  FROM DUAL;
1373 dpurdie 5560
 
3959 dpurdie 5561
	ELSE
5562
		-- Case with none present
5563
		OPEN records FOR
5564
		SELECT -1 AS PROJ_ID,
5565
			   -1 AS RTAG_ID
5566
		  FROM DUAL;
1373 dpurdie 5567
 
3959 dpurdie 5568
	END IF;
1373 dpurdie 5569
 
5570
 
5571
 
5572
 
3959 dpurdie 5573
   	--RETURN records;
1373 dpurdie 5574
 
5575
END;
5576
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5577
END PK_APP_UTILS;
4040 dpurdie 5578
 
1374 dpurdie 5579
/
4040 dpurdie 5580
--------------------------------------------------------
5581
--  DDL for Package Body PK_ARCHIVE
5582
--------------------------------------------------------
5583
 
5172 dpurdie 5584
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_ARCHIVE" 
1373 dpurdie 5585
IS
3959 dpurdie 5586
/*
5587
------------------------------
5588
||  Author:  Rupesh Solanki
5589
||  Date:    26 October 2006
5590
||  Version:   1.0
5591
------------------------------
5592
*/
5593
/*---------------------------*/
5594
PROCEDURE populate_packages_table IS
1373 dpurdie 5595
 
3959 dpurdie 5596
BEGIN
5597
		  INSERT INTO archive_manager.PACKAGES
5598
		  (
5599
		  select * from packages where pkg_id not in 
5600
		  		  (select pkg_id from archive_manager.packages)
5601
		  );
1373 dpurdie 5602
 
3959 dpurdie 5603
          INSERT INTO archive_manager.PROCESSES
5604
          (
5605
          select * from processes where proc_id not in 
5606
            (select proc_id from archive_manager.processes)
5607
          );
5608
 
1373 dpurdie 5609
 
5610
 
3959 dpurdie 5611
END;
1373 dpurdie 5612
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5613
   PROCEDURE populate_archive_data_table (
5614
      nrtagid   IN   release_tags.rtag_id%TYPE
1373 dpurdie 5615
   )
5616
   IS
3959 dpurdie 5617
/*
5618
Reason: To populate the archive_data table with information regarding the
5619
         number of package versions that exist in other releases.
5620
*/
5621
      numcount      NUMBER;
5622
      numusedby     NUMBER;
5623
      numruntime    NUMBER;
5624
 
5625
      /* Get all the package versions in the release */
5626
      CURSOR archive_cur
5627
      IS
5628
         SELECT pv_id
5629
           FROM release_content
5630
          WHERE rtag_id = nrtagid;
5631
 
5632
      archive_rec   archive_cur%ROWTYPE;
1373 dpurdie 5633
   BEGIN
3959 dpurdie 5634
/*--------------- Business Rules Here -------------------*/
5635
/*-------------------------------------------------------*/
5636
      OPEN archive_cur;
1373 dpurdie 5637
 
3959 dpurdie 5638
      FETCH archive_cur
5639
       INTO archive_rec;
5640
 
5641
      WHILE archive_cur%FOUND
5642
      LOOP
5643
        /* How many packages depend on this package version? */
5644
         SELECT COUNT (*)
5645
           INTO numusedby
5646
           FROM package_dependencies
5647
          WHERE dpv_id = archive_rec.pv_id;
5648
 
5649
        /* How many project releases use this package version?  */
5650
         SELECT COUNT (*)
5651
           INTO numcount
5652
           FROM release_content
5653
          WHERE pv_id = archive_rec.pv_id;
5654
 
5655
        /* How many packages have this package version as runtime
5656
        dependency? */
5657
         SELECT COUNT (*)
5658
           INTO numruntime
5659
           FROM runtime_dependencies
5660
          WHERE rtd_id = archive_rec.pv_id;
5661
 
5662
        /* Insert into the archive_data table if they are not runtime dependant
5663
        and package dependant and they exist in that particular release only*/
5664
         IF numusedby = 0 AND numcount = 1 AND numruntime = 0
1373 dpurdie 5665
         THEN
3959 dpurdie 5666
            INSERT INTO archive_data
5667
                        (rtag_id, pv_id
5668
                        )
5669
                 VALUES (nrtagid, archive_rec.pv_id
5670
                        );
1373 dpurdie 5671
         END IF;
5672
 
3959 dpurdie 5673
         FETCH archive_cur
5674
          INTO archive_rec;
5675
      END LOOP;
1373 dpurdie 5676
   END;
5677
 
5678
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5679
   PROCEDURE migrate_pv_to_archive_schema (
5680
      nrtagid   IN   release_tags.rtag_id%TYPE
1373 dpurdie 5681
   )
5682
   IS
5683
   BEGIN
5684
 
3959 dpurdie 5685
      /* MIGRATION - PACKAGE_VERSIONS */
5686
      INSERT INTO archive_manager.package_versions
5687
         SELECT *
5688
           FROM package_versions
5689
          WHERE pv_id IN (SELECT pv_id
5690
                            FROM archive_data);
1373 dpurdie 5691
 
3959 dpurdie 5692
      /* MIGRATION - PACKAGE_BUILD_ENV */
5693
      INSERT INTO archive_manager.package_build_env
5694
         SELECT *
5695
           FROM package_build_env
5696
          WHERE pv_id IN (SELECT pv_id
5697
                            FROM archive_data);
1373 dpurdie 5698
 
3959 dpurdie 5699
      /* PURGE DATA FROM PACKAGE_BUILD_ENV */
5700
      DELETE FROM package_build_env
5701
            WHERE pv_id IN (SELECT pv_id
5702
                              FROM archive_data);
1373 dpurdie 5703
 
3959 dpurdie 5704
      /* MIGRATION - PACKAGE_BUILD_INFO */
5705
      INSERT INTO archive_manager.package_build_info
5706
         SELECT *
5707
           FROM package_build_info
5708
          WHERE pv_id IN (SELECT pv_id
5709
                            FROM archive_data);
1373 dpurdie 5710
 
3959 dpurdie 5711
      /* PURGE DATA FROM PACKAGE_BUILD_info */
5712
      DELETE FROM package_build_info
5713
            WHERE pv_id IN (SELECT pv_id
5714
                              FROM archive_data);							  
1373 dpurdie 5715
 
3959 dpurdie 5716
      /* MIGRATION - UNIT_TESTS  */
5717
      INSERT INTO archive_manager.unit_tests
5718
         SELECT *
5719
           FROM unit_tests
5720
          WHERE pv_id IN (SELECT pv_id
5721
                            FROM archive_data);
1373 dpurdie 5722
 
3959 dpurdie 5723
      /* PURGE DATA FROM UNIT_TESTS*/
5724
      DELETE FROM unit_tests
5725
            WHERE pv_id IN (SELECT pv_id
5726
                              FROM archive_data);
1373 dpurdie 5727
 
3959 dpurdie 5728
      /* MIGRATION - PACKAGE_PROCESSES */
5729
      INSERT INTO archive_manager.package_processes
5730
         SELECT *
5731
           FROM package_processes
5732
          WHERE pv_id IN (SELECT pv_id
5733
                            FROM archive_data);
1373 dpurdie 5734
 
3959 dpurdie 5735
      /* PURGE DATA FROM PACKAGE_PROCESSES*/
5736
      DELETE FROM package_processes
5737
            WHERE pv_id IN (SELECT pv_id
5738
                              FROM archive_data);
1373 dpurdie 5739
 
3959 dpurdie 5740
      /* MIGRATION - PACKAGE_DEPENDENCIES */
5741
      INSERT INTO archive_manager.package_dependencies
5742
         SELECT *
5743
           FROM package_dependencies
5744
          WHERE pv_id IN (SELECT pv_id
5745
                            FROM archive_data);
2735 dpurdie 5746
 
3959 dpurdie 5747
      /* PURGE DATA FROM PACKAGE_DEPENDENCIES*/
5748
      DELETE FROM package_dependencies
5749
            WHERE pv_id IN (SELECT pv_id
5750
                              FROM archive_data);
1373 dpurdie 5751
 
3959 dpurdie 5752
      /* MIGRATION - CODE_REVIEWS */
5753
      INSERT INTO archive_manager.code_reviews
5754
         SELECT *
5755
           FROM code_reviews
5756
          WHERE pv_id IN (SELECT pv_id
5757
                            FROM archive_data);
1373 dpurdie 5758
 
3959 dpurdie 5759
      /* PURGE DATA FROM CODE_REVIEWS*/
5760
      DELETE FROM code_reviews
5761
            WHERE pv_id IN (SELECT pv_id
5762
                              FROM archive_data);
1373 dpurdie 5763
 
3959 dpurdie 5764
      /* MIGRATION - RUNTIME_DEPENDENCIES*/
5765
      INSERT INTO archive_manager.runtime_dependencies
5766
         SELECT *
5767
           FROM runtime_dependencies
5768
          WHERE pv_id IN (SELECT pv_id
5769
                            FROM archive_data);
1373 dpurdie 5770
 
3959 dpurdie 5771
      /* PURGE DATA FROM RUNTIME_DEPENDENCIES*/
5772
      DELETE FROM runtime_dependencies
5773
            WHERE pv_id IN (SELECT pv_id
5774
                              FROM archive_data);
1373 dpurdie 5775
 
3959 dpurdie 5776
      /* MIGRATION - PACKAGE_DOCUMENTS */
5777
      INSERT INTO archive_manager.package_documents
5778
         SELECT *
5779
           FROM package_documents
5780
          WHERE pv_id IN (SELECT pv_id
5781
                            FROM archive_data);
1373 dpurdie 5782
 
3959 dpurdie 5783
      /* PURGE DATA FROM PACKAGE_DOCUMENTS*/
5784
      DELETE FROM package_documents
5785
            WHERE pv_id IN (SELECT pv_id
5786
                              FROM archive_data);
1373 dpurdie 5787
 
3959 dpurdie 5788
      /* MIGRATION - PACKAGE_PATCHES */
5789
      INSERT INTO archive_manager.package_patches
5790
         SELECT *
5791
           FROM package_patches
5792
          WHERE pv_id IN (SELECT pv_id
5793
                            FROM archive_data);
1373 dpurdie 5794
 
3959 dpurdie 5795
      /* PURGE DATA FROM PACKAGE_PATCHES*/
5796
      DELETE FROM package_patches
5797
            WHERE pv_id IN (SELECT pv_id
5798
                              FROM archive_data);
1373 dpurdie 5799
 
3959 dpurdie 5800
      /* MIGRATION - CQ_ISSUES */
5801
      INSERT INTO archive_manager.cq_issues
5802
         SELECT *
5803
           FROM cq_issues
5804
          WHERE pv_id IN (SELECT pv_id
5805
                            FROM archive_data);
1373 dpurdie 5806
 
3959 dpurdie 5807
      /* PURGE DATA FROM CQ_ISSUES*/
5808
      DELETE FROM cq_issues
5809
            WHERE pv_id IN (SELECT pv_id
5810
                              FROM archive_data);
1373 dpurdie 5811
 
3959 dpurdie 5812
      /* MIGRATION - ADDITIONAL_NOTES */
5813
      INSERT INTO archive_manager.additional_notes
5814
         SELECT *
5815
           FROM additional_notes
5816
          WHERE pv_id IN (SELECT pv_id
5817
                            FROM archive_data);
1373 dpurdie 5818
 
3959 dpurdie 5819
      /* PURGE DATA FROM ADDITIONAL_NOTES*/
5820
      DELETE FROM additional_notes
5821
            WHERE pv_id IN (SELECT pv_id
5822
                              FROM archive_data);
1373 dpurdie 5823
 
3959 dpurdie 5824
      /* MIGRATION - RELEASE_COMPONENTS */
5825
      INSERT INTO archive_manager.release_components
5826
         SELECT *
5827
           FROM release_components
5828
          WHERE pv_id IN (SELECT pv_id
5829
                            FROM archive_data);
1373 dpurdie 5830
 
3959 dpurdie 5831
      /* PURGE DATA FROM RELEASE_COMPONENTS*/
5832
      DELETE FROM release_components
5833
            WHERE pv_id IN (SELECT pv_id
5834
                              FROM archive_data);
1373 dpurdie 5835
 
3959 dpurdie 5836
      /* MIGRATION - IGNORE_WARNINGS */
5837
      INSERT INTO archive_manager.ignore_warnings
5838
         SELECT *
5839
           FROM ignore_warnings
5840
          WHERE pv_id IN (SELECT pv_id
5841
                            FROM archive_data);
1374 dpurdie 5842
 
3959 dpurdie 5843
      /* PURGE DATA FROM IGNORE_WARNINGS*/
5844
      DELETE FROM ignore_warnings
5845
            WHERE pv_id IN (SELECT pv_id
5846
                              FROM archive_data);
1373 dpurdie 5847
 
3959 dpurdie 5848
      /* PURGE DATA FROM WORK_IN_PROGRESS */
5849
      DELETE FROM work_in_progress
5850
            WHERE rtag_id = nrtagid;
1374 dpurdie 5851
 
3959 dpurdie 5852
      /* PURGE DATA FROM PLANNED */
5853
      DELETE FROM planned
5854
            WHERE rtag_id = nrtagid;
1373 dpurdie 5855
 
3959 dpurdie 5856
      /* MIGRATION - JIRA_ISSUES */
5857
      INSERT INTO archive_manager.jira_issues
5858
         SELECT *
5859
           FROM jira_issues
5860
          WHERE pv_id IN (SELECT pv_id
5861
                            FROM archive_data);
1373 dpurdie 5862
 
3959 dpurdie 5863
      /* PURGE DATA FROM JIRA_ISSUES*/
5864
      DELETE FROM jira_issues
5865
            WHERE pv_id IN (SELECT pv_id
5866
                              FROM archive_data);
1373 dpurdie 5867
 
3959 dpurdie 5868
      /* MIGRATION - PRODUCT_COMPONENTS */
5869
      INSERT INTO archive_manager.product_components
5870
         SELECT *
5871
           FROM product_components
5872
          WHERE pv_id IN (SELECT pv_id
5873
                            FROM archive_data);
1373 dpurdie 5874
 
3959 dpurdie 5875
      /* PURGE DATA FROM PRODUCT_COMPONENTS*/
5876
      DELETE FROM product_components
5877
            WHERE pv_id IN (SELECT pv_id
5878
                              FROM archive_data);
1373 dpurdie 5879
 
3959 dpurdie 5880
      /* MIGRATION - ACTION_LOG */
5881
      INSERT INTO archive_manager.action_log
5882
         SELECT *
5883
           FROM action_log
5884
          WHERE pv_id IN (SELECT pv_id
5885
                            FROM archive_data);
1373 dpurdie 5886
 
3959 dpurdie 5887
      /* PURGE DATA FROM ACTION_LOG*/
5888
      DELETE FROM action_log
5889
            WHERE pv_id IN (SELECT pv_id
5890
                              FROM archive_data);
1373 dpurdie 5891
 
5892
 
5893
   END;
5894
 
5895
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5896
   PROCEDURE migrate_rtag_to_archive_schema (
5897
      nrtagid   IN   release_tags.rtag_id%TYPE
1373 dpurdie 5898
   )
5899
   IS
5900
   BEGIN
3959 dpurdie 5901
      /* MIGRATION - DO_NOT_RIPPLE */
5902
      INSERT INTO archive_manager.do_not_ripple
5903
         SELECT *
5904
           FROM do_not_ripple dnp
5905
          WHERE rtag_id = nrtagid;
1373 dpurdie 5906
 
3959 dpurdie 5907
      /* PURGE DATA FROM DO_NOT_RIPPLE */
5908
      DELETE FROM do_not_ripple
5909
            WHERE rtag_id = nrtagid;
5910
 
5911
      /* MIGRATION - ADVISORY_RIPPLES*/
5912
      INSERT INTO archive_manager.advisory_ripples
5913
         SELECT *
5914
           FROM advisory_ripple dnp
5915
          WHERE rtag_id = nrtagid;
1373 dpurdie 5916
 
3959 dpurdie 5917
      /* PURGE DATA FROM ADVISORY_RIPPLES*/
5918
      DELETE FROM advisory_ripple
5919
            WHERE rtag_id = nrtagid;			
1373 dpurdie 5920
 
3959 dpurdie 5921
      /* MIGRATION - RELEASE_CONTENT */
5922
      INSERT INTO archive_manager.release_content
5923
         SELECT *
5924
           FROM release_content
5925
          WHERE rtag_id = nrtagid;
1373 dpurdie 5926
 
3959 dpurdie 5927
      /* PURGE DATA FROM RELEASE_CONTENT*/
5928
      DELETE FROM release_content
5929
            WHERE rtag_id = nrtagid;
1373 dpurdie 5930
 
3959 dpurdie 5931
      /* MIGRATION - NOTIFICATION_HISTORY */
5932
      INSERT INTO archive_manager.notification_history
5933
         SELECT *
5934
           FROM notification_history
5935
          WHERE rtag_id = nrtagid;
1373 dpurdie 5936
 
3959 dpurdie 5937
      /* PURGE DATA FROM NOTIFICATION_HISTORY*/
5938
      DELETE FROM notification_history
5939
            WHERE rtag_id = nrtagid;
1373 dpurdie 5940
 
3959 dpurdie 5941
      /* MIGRATION - BUILD_ORDER   */
5942
      INSERT INTO archive_manager.build_order
5943
         SELECT *
5944
           FROM build_order
5945
          WHERE rtag_id = nrtagid;
1373 dpurdie 5946
 
3959 dpurdie 5947
      /* PURGE DATA FROM BUILD_ORDER*/
5948
      DELETE FROM build_order
5949
            WHERE rtag_id = nrtagid;
1373 dpurdie 5950
 
3959 dpurdie 5951
      /* MIGRATION - PROJECT_ACTION_LOG */
5952
      INSERT INTO archive_manager.project_action_log
5953
         SELECT *
5954
           FROM project_action_log
5955
          WHERE rtag_id = nrtagid;
1373 dpurdie 5956
 
3959 dpurdie 5957
      /* PURGE DATA FROM PROJECT_ACTION_LOG */
5958
      DELETE FROM project_action_log
5959
            WHERE rtag_id = nrtagid;
1373 dpurdie 5960
 
3959 dpurdie 5961
      /* MIGRATION - DEPRECATED_PACKAGES */
5962
      INSERT INTO archive_manager.deprecated_packages
5963
         SELECT *
5964
           FROM deprecated_packages
5965
          WHERE rtag_id = nrtagid;
1373 dpurdie 5966
 
3959 dpurdie 5967
      /* PURGE DATA FROM DEPRECATED_PACKAGES */
5968
      DELETE FROM deprecated_packages
5969
            WHERE rtag_id = nrtagid;
5970
 
5971
      /* MIGRATION - RELEASE_TAGS */
5972
      INSERT INTO archive_manager.release_tags
5973
         SELECT *
1373 dpurdie 5974
           FROM release_tags
3959 dpurdie 5975
          WHERE rtag_id = nrtagid;
5976
 
5977
 
5978
      /* PURGE DATA FROM PACKAGE_VERSIONS*/
5979
      DELETE FROM package_versions
5980
            WHERE pv_id IN (SELECT pv_id
5981
                              FROM archive_data);
5982
 
5983
 
1373 dpurdie 5984
   END;
5985
 
5986
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5987
   PROCEDURE clean_up_archive_data_table (
5988
      nrtagid   IN   release_tags.rtag_id%TYPE
1373 dpurdie 5989
   )
5990
   IS
5991
   BEGIN
3959 dpurdie 5992
      /* Cleaning Up The Archive_Data Table */
5993
      DELETE FROM archive_data
5994
            WHERE rtag_id = nrtagid;
1373 dpurdie 5995
   END;
5996
 
5997
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5998
   PROCEDURE write_action_log (
5999
      nuserid   IN   NUMBER,
6000
      nrtagid   IN   release_tags.rtag_id%TYPE
1373 dpurdie 6001
   )
6002
   IS
6003
   BEGIN
3959 dpurdie 6004
      /* Write Into Archive_Action_Log Table */
6005
      INSERT INTO archive_action_log
6006
                  (user_id, date_time_stamp, rtag_id,
6007
                   description
1373 dpurdie 6008
                  )
3959 dpurdie 6009
           VALUES (nuserid, ora_sysdatetime, nrtagid,
6010
                   'Release has been archived to the ARCHIVE_MANAGER schema'
1373 dpurdie 6011
                  );
6012
   END;
6013
/*-------------------------------------------------------------------------------------------------------*/
5384 dpurdie 6014
END pk_archive;
4040 dpurdie 6015
 
1374 dpurdie 6016
/
4040 dpurdie 6017
--------------------------------------------------------
6018
--  DDL for Package Body PK_BUILDAPI
6019
--------------------------------------------------------
6020
 
5172 dpurdie 6021
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_BUILDAPI" 
1373 dpurdie 6022
IS
6023
   /*-------------------------------------------------------------------------------------------------------*/
6024
   PROCEDURE add_product_component (
6025
      npvid           IN   NUMBER,
6026
      sosname         IN   VARCHAR2,
6027
      sorigfilepath   IN   VARCHAR2,
6028
      sfilename       IN   VARCHAR2,
6029
      sdestfilepath   IN   VARCHAR2,
6030
      nbytesize       IN   NUMBER,
6031
      scrccksum       IN   VARCHAR2
6032
   )
6033
   IS
6034
      nosid   NUMBER;
6035
   BEGIN
6036
      /*--------------- Business Rules Here -------------------*/
6037
      -- OS Name Requirements --
6038
      IF (sosname IS NULL)
6039
      THEN
6040
         raise_application_error (-20000, 'OsName cannot be NULL.');
6041
      END IF;
6042
 
6043
      -- File Requirements --
6044
      IF (NOT sfilename IS NULL)
6045
      THEN
6046
         IF (nbytesize IS NULL)
6047
         THEN
6048
            raise_application_error (-20000, 'Byte Size cannot be NULL.');
6049
         ELSIF (scrccksum IS NULL)
6050
         THEN
6051
            raise_application_error (-20000, 'CRC CKSUM cannot be NULL.');
6052
         END IF;
6053
      END IF;
6054
 
6055
      -- Folder Requirements --
6056
      -- No requirements for now.
6057
 
6058
      /*-------------------------------------------------------*/
6059
 
6060
      -- Get OsId
6061
      nosid := get_osid (sosname);
6062
 
6063
      -- Insert component entry
6064
      INSERT INTO product_components
6065
                  (pv_id, os_id, file_path, file_name, destination_path,
6066
                  byte_size, crc_cksum
6067
                  )
6068
         VALUES (npvid, nosid, sorigfilepath, sfilename, sdestfilepath,
6069
                  nbytesize, scrccksum
6070
                  );
6071
   EXCEPTION
6072
      WHEN DUP_VAL_ON_INDEX
6073
      THEN
6074
         raise_application_error (-20000,
6075
                                 'Cannot have duplicate product components.'
6076
                                 );
6077
   END;
6078
 
6079
/*-------------------------------------------------------------------------------------------------------*/
6080
   PROCEDURE remove_all_product_components (
6081
      npvid     IN   NUMBER,
6082
      sosname   IN   VARCHAR2
6083
   )
6084
   IS
6085
      nosid   NUMBER;
6086
   BEGIN
6087
/*--------------- Business Rules Here -------------------*/
6088
/*-------------------------------------------------------*/
6089
 
6090
      -- Get OsId
6091
      nosid := get_osid (sosname);
6092
 
6093
      -- Delete component entry
6094
      DELETE FROM product_components pc
6095
            WHERE pc.pv_id = npvid AND pc.os_id = nosid;
6096
   END;
6097
 
6098
/*-------------------------------------------------------------------------------------------------------*/
6099
   FUNCTION get_osid (sosname IN VARCHAR2)
6100
      RETURN NUMBER
6101
   IS
6102
      code   NUMBER;
6103
   BEGIN
6104
      -- Get Platform Code --
6105
      SELECT pf.code
6106
      INTO code
6107
      FROM platforms pf
6108
      WHERE UPPER (pf.NAME) = UPPER (sosname);
6109
 
6110
      RETURN code;
6111
   EXCEPTION
6112
      WHEN NO_DATA_FOUND
6113
      THEN
6114
         raise_application_error
6115
            (-20000,
6116
               'Platform '
6117
            || sosname
6118
            || ' is not valid. It needs to be added to PLATFORMS table in Release Manager.'
6119
            );
6120
         RAISE;
6121
   END;
6122
 
6123
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 6124
 PROCEDURE update_build_service_info (
1373 dpurdie 6125
      sdatabaseserver   IN   VARCHAR2,
6126
      sarchiveserver    IN   VARCHAR2,
6127
      smailserver       IN   VARCHAR2,
6128
      smailsender       IN   VARCHAR2,
4211 dpurdie 6129
      faultmlist        IN   VARCHAR2,
1373 dpurdie 6130
      sdiskspace        IN   VARCHAR2,
6131
      ssbommanagement   IN   VARCHAR2
6132
   )
6133
   IS
6134
   BEGIN
6135
      UPDATE build_service_config
6136
         SET config = sdatabaseserver
6137
      WHERE service = 'DATABASE SERVER';
6138
 
6139
      UPDATE build_service_config
6140
         SET config = sarchiveserver
6141
      WHERE service = 'ARCHIVE SERVER';
6142
 
6143
      UPDATE build_service_config
6144
         SET config = smailserver
6145
      WHERE service = 'MAIL SERVER';
6146
 
6147
      UPDATE build_service_config
6148
         SET config = smailsender
6149
      WHERE service = 'BUILD FAILURE MAIL SENDER';
6150
 
6151
      UPDATE build_service_config
4211 dpurdie 6152
         SET config = faultmlist
6153
      WHERE service = 'FAULT EMAIL ADDRESS LIST';
6154
 
6155
      UPDATE build_service_config
1373 dpurdie 6156
         SET config = sdiskspace
6157
      WHERE service = 'DPKG_ARCHIVE DISK SPACE USED';
6158
 
6159
      UPDATE build_service_config
6160
         SET config = ssbommanagement
6161
      WHERE service = 'SBOM MANAGEMENT';
6162
   END;
4308 dpurdie 6163
 
1373 dpurdie 6164
 
6165
 
6166
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 6167
   PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2, sgbeclass IN NUMBER)
1373 dpurdie 6168
   IS
6169
      gbe_id   NUMBER;
6170
   BEGIN
6171
      -- Get GBE_ID
6172
      SELECT seq_gbe_id.NEXTVAL
6173
      INTO gbe_id
6174
      FROM DUAL;
6175
 
6176
      INSERT INTO gbe_machtype
4040 dpurdie 6177
                  (gbe_id, gbe_value, bm_id )
6178
         VALUES (gbe_id, sgbevalue, sgbeclass );
1373 dpurdie 6179
   END;
6180
 
6181
/*-------------------------------------------------------------------------------------------------------*/
6182
   PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER)
6183
   IS
6184
   BEGIN
6185
      DELETE FROM gbe_machtype
6186
            WHERE gbe_id = ngbe_id;
6187
   END;
6188
 
6189
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 6190
   PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2, sgbeclass IN NUMBER)
1373 dpurdie 6191
   IS
6192
   BEGIN
6193
      UPDATE gbe_machtype
4040 dpurdie 6194
         SET gbe_value = sgbevalue,
6195
             bm_id = sgbeclass
1373 dpurdie 6196
      WHERE gbe_id = ngbe_id;
6197
   END;
6198
 
6199
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 6200
PROCEDURE add_buildmachine (sbmvalue IN VARCHAR2)
6201
   IS
6202
      bm_id   NUMBER;
6203
   BEGIN
6204
      -- Get BM_ID
6205
      SELECT seq_bm_id.NEXTVAL
6206
      INTO bm_id
6207
      FROM DUAL;
6208
 
6209
      INSERT INTO build_machines
6210
                  (bm_id, bm_name)
6211
         VALUES (bm_id, sbmvalue );
6212
   END;
6213
 
6214
/*-------------------------------------------------------------------------------------------------------*/
6215
   PROCEDURE remove_buildmachine (nbm_id IN NUMBER)
6216
   IS
6217
   BEGIN
6218
      DELETE FROM build_machines
6219
            WHERE bm_id = nbm_id;
6220
   END;
6221
 
6222
/*-------------------------------------------------------------------------------------------------------*/
6223
   PROCEDURE update_buildmachine (nbm_id IN NUMBER, sbmvalue IN VARCHAR2) 
6224
   IS
6225
   BEGIN
6226
      UPDATE build_machines
6227
         SET bm_name = sbmvalue
6228
         WHERE bm_id = nbm_id;
6229
   END;
6230
 
6231
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 6232
   PROCEDURE delete_daemon (srconidlist IN VARCHAR2)
6233
   IS
6234
   BEGIN
6235
      -- Entries in the daemon_action_log, run_level and abt_action_log tables must be deleted first.
6236
      DELETE FROM daemon_action_log
6237
            WHERE rcon_id IN (
6238
                     SELECT *
6239
                     FROM THE
6240
                              (SELECT CAST
6241
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6242
                                          )
6243
                                 FROM DUAL
6244
                              ));
6245
 
6246
      DELETE FROM run_level
6247
            WHERE rcon_id IN (
6248
                     SELECT *
6249
                     FROM THE
6250
                              (SELECT CAST
6251
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6252
                                          )
6253
                                 FROM DUAL
6254
                              ));
6255
 
6256
      DELETE FROM abt_action_log
6257
            WHERE rcon_id IN (
6258
                     SELECT *
6259
                     FROM THE
6260
                              (SELECT CAST
6261
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6262
                                          )
6263
                                 FROM DUAL
6264
                              ));
6265
 
6266
      -- Once entries in daemon_action_log, run_level and abt_action_log are removed, the daemon is deleted.
6267
      DELETE FROM release_config
6268
            WHERE rcon_id IN (
6269
                     SELECT *
6270
                     FROM THE
6271
                              (SELECT CAST
6272
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6273
                                          )
6274
                                 FROM DUAL
6275
                              ));
6276
   END;
6277
 
6278
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 6279
   PROCEDURE remove_daemon (srconidlist IN VARCHAR2)
1373 dpurdie 6280
   IS
4308 dpurdie 6281
   oRconIdList RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
6282
 
1373 dpurdie 6283
   BEGIN
4308 dpurdie 6284
 
6285
   oRconIdList := IN_LIST_NUMBER ( srconidlist );
6286
 
6287
      -- Break the linkage between the release_config and the build_machine_config
6288
 
6289
      -- Delete the linkage between the two tables.
6290
       UPDATE release_config
6291
         SET daemon_hostname = NULL,
6292
             bmcon_id = NULL 
6293
      WHERE rcon_id IN ( SELECT * FROM TABLE ( CAST ( oRconIdList AS RELMGR_NUMBER_TAB_t ) ) );
1373 dpurdie 6294
   END;
6295
 
6296
/*-------------------------------------------------------------------------------------------------------*/
6297
   PROCEDURE insert_schedule_info (
6298
      dschedulepause     IN   DATE,
6299
      dscheduleresume    IN   DATE,
6300
      crepeat            IN   VARCHAR2,
6301
      cindefinitepause   IN   VARCHAR2
6302
   )
6303
   IS
6304
      nscheduledid   NUMBER;
6305
   BEGIN
6306
      -- Get Next Available Scheduled Id
6307
      SELECT seq_scheduled_id.NEXTVAL
6308
      INTO nscheduledid
6309
      FROM DUAL;
6310
 
6311
      INSERT INTO run_level_schedule
6312
         VALUES (nscheduledid, dschedulepause, dscheduleresume, crepeat,
6313
                  cindefinitepause);
6314
   END;
6315
 
6316
/*-------------------------------------------------------------------------------------------------------*/
6317
   PROCEDURE delete_schedule (nscheduleid IN NUMBER)
6318
   IS
6319
   BEGIN
6320
      DELETE FROM run_level_schedule
6321
            WHERE scheduled_id = nscheduleid;
6322
   END;
6323
 
6324
/*-------------------------------------------------------------------------------------------------------*/
6325
   PROCEDURE set_infinite_pause
6326
   IS
6327
      nscheduledid   NUMBER;
6328
   BEGIN
6329
      -- Get Next Available Scheduled Id
6330
      SELECT seq_scheduled_id.NEXTVAL
6331
      INTO nscheduledid
6332
      FROM DUAL;
6333
 
6334
      INSERT INTO run_level_schedule
5172 dpurdie 6335
         VALUES (nscheduledid, ora_sysdatetime, NULL, NULL, 'P');
1373 dpurdie 6336
   END;
5172 dpurdie 6337
 
6338
/*-------------------------------------------------------------------------------------------------------*/
6339
   PROCEDURE set_finite_pause (duration IN NUMBER)
6340
   IS
6341
      nscheduledid   NUMBER;
6342
      currentDate    DATE := ora_sysdatetime;
6343
   BEGIN
6344
 
6345
      -- Get Next Available Scheduled Id
6346
      SELECT seq_scheduled_id.NEXTVAL
6347
      INTO nscheduledid
6348
      FROM DUAL;
1373 dpurdie 6349
 
5172 dpurdie 6350
      INSERT INTO run_level_schedule
6351
         VALUES (nscheduledid, currentDate, currentDate + duration/(24*60), 0, 'F');
6352
      COMMIT; 
6353
 
6354
      -- Ensure that we have only ONE finite pause by deleting all old ones
6355
      -- Under race conditions the last one wins
6356
      DELETE FROM run_level_schedule 
6357
        WHERE SCHEDULED_ID < nscheduledid
6358
        AND INDEFINITE_PAUSE = 'F';
6359
   END;   
6360
 
1373 dpurdie 6361
/*-------------------------------------------------------------------------------------------------------*/
6362
   PROCEDURE set_resume
6363
   IS
6364
   BEGIN
6365
      DELETE FROM run_level_schedule
5172 dpurdie 6366
            WHERE indefinite_pause in ('F', 'P' );
1373 dpurdie 6367
   END;
6368
 
6369
/*-------------------------------------------------------------------------------------------------------*/
6370
   PROCEDURE delete_out_of_date_schedule
6371
   IS
6372
   BEGIN
6373
      DELETE FROM run_level_schedule
6374
            WHERE scheduled_resume < ora_sysdatetime AND repeat = 0;
6375
   END;
6376
 
6377
/*-------------------------------------------------------------------------------------------------------*/
6378
   PROCEDURE set_daemon_resume (nrconid IN NUMBER)
6379
   IS
6380
   BEGIN
6381
      UPDATE run_level
6382
         SET PAUSE = NULL
6383
      WHERE rcon_id = nrconid;
6384
   END;
6385
 
6386
/*-------------------------------------------------------------------------------------------------------*/
6387
   PROCEDURE set_daemon_pause (nrconid IN NUMBER)
6388
   IS
6389
   BEGIN
6390
      UPDATE run_level
6391
         SET PAUSE = 1
6392
      WHERE rcon_id = nrconid;
6393
   END;
6394
/*-------------------------------------------------------------------------------------------------------*/
6395
   PROCEDURE set_daemon_disable (nrconid NUMBER)
6396
   IS
6397
   BEGIN
6398
      UPDATE run_level
6399
         SET PAUSE = 2
6400
      WHERE rcon_id = nrconid;
6401
   END;
6402
 
6403
/*-------------------------------------------------------------------------------------------------------*/
6404
   PROCEDURE set_daemon_states (nrtagid NUMBER, nstate NUMBER)
6405
   IS
6406
   BEGIN
6407
     UPDATE run_level
6408
     SET pause = nstate
6409
     WHERE rcon_id IN
6410
     (SELECT rc.rcon_id FROM release_config rc WHERE rc.rtag_id = nrtagid);
6411
   END;
6412
 
6413
/*-------------------------------------------------------------------------------------------------------*/
6414
   -- inserts a new daemon instruction
6415
   -- This is for use by the Release Manager Website code.
6416
   --
6417
   PROCEDURE insert_daemon_inst
6418
   ( nOp_code IN NUMBER
6419
   , nRtag_id IN NUMBER
6420
   , nPv_id IN NUMBER
6421
   , nSchedDate IN DATE
6422
   , nRepeatSecs IN NUMBER
6423
   , nAddedDate IN DATE
6424
   , nUser_id IN NUMBER
6425
   ) IS
6426
      nInstId   NUMBER;
6427
   BEGIN
6428
      -- Get Next Available Scheduled Id
6429
      SELECT seq_daemon_instruction_id.NEXTVAL
6430
      INTO nInstId
6431
      FROM DUAL;
6432
 
6433
      INSERT INTO Daemon_Instructions
6434
         VALUES (nInstId, nOp_code, nRtag_id,
6435
                  nPv_id, nSchedDate, nRepeatSecs,
6436
                  nAddedDate, nUser_id, '0');
5172 dpurdie 6437
 
6438
   -- Mark the Release as modified for build purposes      
6439
   PK_RELEASE.SET_RELEASE_MODIFIED(nRtag_id);  
6440
 
1373 dpurdie 6441
   EXCEPTION
6442
      WHEN DUP_VAL_ON_INDEX
6443
      THEN
6444
         raise_application_error (-20000,
6445
                                 'Table already contains a record with the specified OPERATION, RELEASE, and PACKAGE VERSION'
6446
                                 );
6447
      WHEN OTHERS
6448
      THEN
6449
         raise;
5172 dpurdie 6450
 
1373 dpurdie 6451
   END insert_daemon_inst;
6452
 
6453
/*-------------------------------------------------------------------------------------------------------*/
6454
   -- Deletes a daemon instruction matching the specified instruction ID
6455
   --
6456
   PROCEDURE del_daemon_inst
6457
   ( nInstId IN NUMBER
6458
   ) IS
6459
 
6460
   BEGIN
6461
      DELETE FROM Daemon_Instructions
6462
      WHERE DAEMON_INSTRUCTIONS_ID = nInstId;
6463
 
6464
   END del_daemon_inst;
6465
 
6466
/*-------------------------------------------------------------------------------------------------------*/
6467
   -- Deletes a daemon instruction matching the specified op-code, ratag, and pv_id
6468
   --
6469
   PROCEDURE del_daemon_inst_by_rtag_pvid(
6470
      nOp_code IN NUMBER,
6471
      nRtag_id IN NUMBER,
6472
      nPv_id IN NUMBER
6473
   ) IS
6474
   BEGIN
6475
      DELETE FROM Daemon_Instructions
6476
      WHERE OP_CODE = nOp_code
6477
      AND RTAG_ID = nRtag_id
6478
      AND PV_ID   = nPv_id;
6479
 
6480
   END del_daemon_inst_by_rtag_pvid;
6481
 
6482
/*-------------------------------------------------------------------------------------------------------*/
6483
   -- Updates a daemon instruction
6484
   -- This is for use by the Release Manager Website code.
6485
   --
6486
   PROCEDURE update_daemon_inst
6487
   ( nInstId IN NUMBER
6488
   , nOp_code IN NUMBER
6489
   , nRtag_id IN NUMBER
6490
   , nPv_id IN NUMBER
6491
   , nSchedDate IN DATE
6492
   , nRepeatSecs IN NUMBER
6493
   , nAddedDate IN DATE
6494
   , nUser_id IN NUMBER
6495
   ) IS
6496
      CURSOR daemon_inst_cur IS
6497
         SELECT *
6498
         FROM daemon_instructions di
6499
         WHERE di.DAEMON_INSTRUCTIONS_ID = nInstId;
6500
 
6501
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6502
 
6503
      exc_inst_removed EXCEPTION;
6504
   BEGIN
6505
      OPEN daemon_inst_cur;
6506
 
6507
      FETCH daemon_inst_cur
6508
      INTO daemon_inst_rec;
6509
 
6510
      IF daemon_inst_cur%FOUND THEN
6511
 
6512
         UPDATE Daemon_Instructions
6513
         SET op_code = nOp_code,
6514
            rtag_id = nRtag_id,
6515
            pv_id   = nPv_id,
6516
            scheduled_datetime = nSchedDate,
6517
            repeat_secs = nRepeatSecs,
6518
            added_datetime = nAddedDate,
6519
            user_id = nUser_id,
6520
            in_progress = '0'
6521
         WHERE daemon_instructions_id = nInstId;
6522
      ELSE
6523
         raise exc_inst_removed;
6524
      END IF;
6525
 
6526
      CLOSE daemon_inst_cur;
5172 dpurdie 6527
 
6528
      -- Mark the Release as modified for build purposes      
6529
      PK_RELEASE.SET_RELEASE_MODIFIED(nRtag_id);         
6530
 
1373 dpurdie 6531
   EXCEPTION
6532
      WHEN DUP_VAL_ON_INDEX
6533
      THEN
6534
         raise_application_error (-20000,
6535
                                 'Table already contains a record with the specified OPERATION, RELEASE, and PACKAGE VERSION'
6536
                                 );
6537
      WHEN exc_inst_removed
6538
      THEN
6539
         raise_application_error (-20000,
6540
                                 'Record was probably deleted by the Buildtool during your edit-form session. Please create a new Daemon Instruction.'
6541
                                 );
6542
      WHEN OTHERS
6543
      THEN
6544
         raise;
5172 dpurdie 6545
 
1373 dpurdie 6546
   END update_daemon_inst;
6547
 
6548
/*-------------------------------------------------------------------------------------------------------*/
6549
   -- Returns a comma-separated list of operation codes found for a given rtag and pv_id combination
6550
   -- This is for use by the Release Manager Website code.
6551
   --
6552
   FUNCTION daemon_ops_for_rtag_pvid(
6553
      nRtag_id IN NUMBER,
6554
      nPv_id IN NUMBER
6555
   ) RETURN VARCHAR2
6556
   IS
6557
      CURSOR daemon_inst_cur IS
6558
         SELECT di.OP_CODE
6559
         FROM daemon_instructions di
6560
         WHERE di.RTAG_ID = nRtag_id
6561
            AND di.PV_ID = nPv_id;
6562
 
6563
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6564
 
6565
      sRetList VARCHAR2(4000) := '';
6566
 
6567
   BEGIN
6568
      OPEN daemon_inst_cur;
6569
 
6570
      FETCH daemon_inst_cur
6571
      INTO daemon_inst_rec;
6572
 
6573
      WHILE daemon_inst_cur%FOUND
6574
      LOOP
6575
         sRetList := sRetList || daemon_inst_rec.op_code || ',';
6576
 
6577
         FETCH daemon_inst_cur
6578
         INTO daemon_inst_rec;
6579
      END LOOP;
6580
 
6581
      CLOSE daemon_inst_cur;
6582
 
6583
      RETURN sRetList;
6584
   END daemon_ops_for_rtag_pvid;
6585
/*-------------------------------------------------------------------------------------------------------*/
6586
   -- Returns a comma-separated list of operation codes found for a given rtag
6587
   -- This is for use by the Release Manager Website code.
6588
   --
6589
   FUNCTION daemon_ops_for_rtag(
6590
      nRtag_id IN NUMBER
6591
   ) RETURN VARCHAR2
6592
   IS
6593
      CURSOR daemon_inst_cur IS
6594
         SELECT di.OP_CODE
6595
         FROM daemon_instructions di
6596
         WHERE di.RTAG_ID = nRtag_id;
6597
 
6598
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6599
 
6600
      sRetList VARCHAR2(4000) := '';
6601
 
6602
   BEGIN
6603
      OPEN daemon_inst_cur;
6604
 
6605
      FETCH daemon_inst_cur
6606
      INTO daemon_inst_rec;
6607
 
6608
      WHILE daemon_inst_cur%FOUND
6609
      LOOP
6610
         sRetList := sRetList || daemon_inst_rec.op_code || ',';
6611
 
6612
         FETCH daemon_inst_cur
6613
         INTO daemon_inst_rec;
6614
      END LOOP;
6615
 
6616
      CLOSE daemon_inst_cur;
6617
 
6618
      RETURN sRetList;
6619
   END daemon_ops_for_rtag;
6620
/*-------------------------------------------------------------------------------------------------------*/
6621
   -- Gets a record from the daemon instruction table that can be carried out now and returns the fields
6622
   -- in the record a daemon will need
6623
   -- The Buildtool should use this to find a job to do for a particular release. It should then call
6624
   -- mark_daemon_inst_in_progress(inst_id) before carrying out the work, and then call
6625
   -- mark_daemon_inst_completed(inst_id) to signal its completion.
6626
   -- Can be called repeatedly to get a full list of all instructions for a release, by passing back in
6627
   -- the instruction ID obtained from the previous call (the 1st call should use 0)
6628
   -- Can be called repeatedly to get a full list of all instructions of a specific op-code value for a release,
6629
   -- by passing back in an op-code value of 0 or higher (use -1 if no op-code filtering is needed)
6630
   -- Returns 1 if a record was found, else 0.
6631
   --
6632
   FUNCTION get_daemon_inst(
6633
      nRtag_id IN NUMBER,
6634
      nInst_id IN OUT NUMBER,
6635
      nOp_code IN OUT NUMBER,
6636
      nPv_id OUT NUMBER,
6637
      nUser_id OUT NUMBER,
6638
      nInProgress OUT NUMBER
6639
   ) RETURN NUMBER
6640
   IS
6641
      CURSOR daemon_inst_cur IS
6642
         SELECT di.daemon_instructions_id, di.op_code, di.pv_id ,di.user_id, di.in_progress
6643
           FROM daemon_instructions di
6644
          WHERE di.rtag_id = nRtag_id
6645
            AND di.daemon_instructions_id > nInst_id
6646
            AND di.scheduled_datetime <= ora_sysdatetime
6647
            AND ((nOp_code = -1) OR (nOp_code = di.op_code))
6648
            AND rownum <= 1
6649
       ORDER BY di.daemon_instructions_id;
6650
 
6651
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6652
   BEGIN
6653
      OPEN daemon_inst_cur;
6654
 
6655
      FETCH daemon_inst_cur
6656
      INTO daemon_inst_rec;
6657
 
6658
      -- If we found a record, return it.
6659
      IF daemon_inst_cur%FOUND THEN
6660
         nInst_id := daemon_inst_rec.daemon_instructions_id;
6661
         nOp_code := daemon_inst_rec.op_code;
6662
         nPv_id   := daemon_inst_rec.pv_id;
6663
         nUser_id := daemon_inst_rec.user_id;
6664
         IF daemon_inst_rec.in_progress = '1' THEN
6665
            nInProgress := 1;
6666
         ELSE
6667
            nInProgress := 0;
6668
         END IF;
6669
         CLOSE daemon_inst_cur;
6670
         RETURN 1;
6671
      END IF;
6672
 
6673
      CLOSE daemon_inst_cur;
6674
      RETURN 0;
6675
 
6676
   END get_daemon_inst;
6677
/*-------------------------------------------------------------------------------------------------------*/
6678
   -- Marks a daemon instruction as being processed by a daemon
6679
   -- The Buildtool should use this before it embarks on the work the instruction commands
6680
   --
6681
   PROCEDURE mark_daemon_inst_in_progress( nInstId IN NUMBER )
6682
   IS
6683
   BEGIN
6684
      UPDATE Daemon_Instructions
6685
      SET in_progress = '1'
6686
      WHERE daemon_instructions_id = nInstId;
6687
 
6688
   END mark_daemon_inst_in_progress;
6689
 
6690
/*-------------------------------------------------------------------------------------------------------*/
6691
   -- Once the Buildtool has finished carrying out the daemon instruction, it should call this stored
6692
   -- procedure in order to either delete the instruction or update it in the case where it is a repeating
6693
   -- instruction.
6694
   --
6695
   PROCEDURE mark_daemon_inst_completed( nInstId IN NUMBER )
6696
   IS
6697
      repSecs NUMBER;
6698
      schedDate  DATE;
6699
 
6700
      CURSOR daemon_inst_cur IS
6701
         SELECT di.REPEAT_SECS AS repSecs, di.SCHEDULED_DATETIME AS schedDate
6702
         FROM daemon_instructions di
6703
         WHERE di.daemon_instructions_id = nInstId;
6704
 
6705
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6706
   BEGIN
6707
      OPEN daemon_inst_cur;
6708
 
6709
      FETCH daemon_inst_cur
6710
      INTO daemon_inst_rec;
6711
 
6712
      IF daemon_inst_cur%FOUND THEN
6713
 
6714
         -- if instruction repeats daily, add 1 day to the scheduled time and update the record
6715
         IF daemon_inst_rec.repSecs = 86400 THEN
6716
            UPDATE Daemon_Instructions
6717
               SET scheduled_datetime = daemon_inst_rec.schedDate + 1,
6718
                  in_progress = '0'
6719
            WHERE daemon_instructions_id = nInstId;
6720
         ELSE
6721
            -- Delete the daemon instruction, we are done with it
6722
            del_daemon_inst(nInstId);
6723
         END IF;
6724
      END IF;
6725
 
6726
      CLOSE daemon_inst_cur;
6727
 
6728
   EXCEPTION
6729
      WHEN OTHERS
6730
      THEN
6731
         raise;
6732
 
6733
   END mark_daemon_inst_completed;
6734
/*-------------------------------------------------------------------------------------------------------*/
6735
   -- This function deletes any old daemon instruction that appears stranded due to a problem that might
6736
   -- have occured during buildtool operation such as might occur if the buildtool or the machine it was
6737
   -- hosted on came down whilst it was processing a daemon instruction.
6738
   PROCEDURE cleanup_stranded_daemon_insts
6739
   IS
6740
   BEGIN
6741
      -- delete records at least two days old
6742
      DELETE FROM daemon_instructions di
6743
      WHERE  (di.scheduled_datetime + 5) <= ora_sysdatetime;
6744
 
6745
   END cleanup_stranded_daemon_insts;
6746
/*-------------------------------------------------------------------------------------------------------*/
6747
  --This function supersedes function, add_daemon. Done for DEVI-046806
6748
   PROCEDURE add_daemon_config (
6749
      nrtagid           IN   NUMBER,
6750
      nbmcon_id         IN   NUMBER,
6751
      sdaemon_mode      IN   VARCHAR2,
6752
      sgbebuildfilter   IN   VARCHAR2
6753
   )
6754
   IS
6755
      nrecordnumber   NUMBER;
6756
      nrconid         NUMBER;
6757
      sdaemonhostname VARCHAR2(50);
6758
      ngbeid         NUMBER;
6759
   BEGIN
6760
      -- Get RCON_ID
6761
      SELECT seq_rcon_id.NEXTVAL
6762
      INTO nrconid
6763
      FROM DUAL;
6764
 
6765
      SELECT COUNT (*)
6766
      INTO nrecordnumber
6767
      FROM release_config
6768
      WHERE rtag_id = nrtagid;
6769
 
6770
      SELECT machine_hostname,gbe_id INTO sdaemonhostname,ngbeid
6771
      FROM build_machine_config
6772
      WHERE bmcon_id = nbmcon_id;
6773
 
6774
      INSERT INTO release_config
6775
             (rcon_id, rtag_id, daemon_hostname, daemon_mode,
4308 dpurdie 6776
                gbe_id, gbe_buildfilter, bmcon_id)
1373 dpurdie 6777
      VALUES (nrconid, nrtagid, sdaemonhostname, sdaemon_mode,
4308 dpurdie 6778
                ngbeid, sgbebuildfilter, nbmcon_id);
1373 dpurdie 6779
 
6780
      -- A newly configured daemon should initially be paused (DEVI-047277)
6781
      INSERT INTO run_level
6782
                  (rcon_id, pause)
6783
           VALUES (nrconid, 2);
6784
 
6785
   END;
6786
 
6787
/*-------------------------------------------------------------------------------------------------------*/
6788
  --This function supersedes function, update_daemon. Done for DEVI-046806
6789
   PROCEDURE update_daemon_config (
6790
      nrconid           IN   NUMBER,
6791
      nbmcon_id         IN   NUMBER,
6792
      sdaemon_mode      IN   VARCHAR2,
6793
      sgbebuildfilter   IN   VARCHAR2
6794
   )
6795
   IS
6796
      sdaemonhostname VARCHAR2(50);
6797
      ngbeid         NUMBER;
6798
   BEGIN
6799
 
6800
      SELECT machine_hostname,gbe_id INTO sdaemonhostname,ngbeid
6801
      FROM build_machine_config
6802
      WHERE bmcon_id = nbmcon_id;
6803
 
6804
      UPDATE release_config
6805
         SET daemon_hostname = sdaemonhostname,
6806
            gbe_id = ngbeid,
6807
            daemon_mode = sdaemon_mode,
4308 dpurdie 6808
            gbe_buildfilter = sgbebuildfilter,
6809
            bmcon_id = nbmcon_id 
1373 dpurdie 6810
      WHERE rcon_id = nrconid;
6811
   END;
6812
 
6813
 
6814
/*-------------------------------------------------------------------------------------------------------*/
6815
   PROCEDURE add_build_machine (
6816
      sdisplay_name          IN   VARCHAR2,
6817
      smachine_hostname      IN   VARCHAR2,
6818
      ngbeid                 IN   NUMBER,
5172 dpurdie 6819
      sdescription           IN   VARCHAR2,
6820
      sactive                IN   CHAR
1373 dpurdie 6821
   )
6822
   IS
6823
      nrecordnumber   NUMBER;
6824
      nbmcon_id       NUMBER;
6825
   BEGIN
6826
      -- Get BMCON_ID
6827
      SELECT seq_bmcon_id.NEXTVAL INTO nbmcon_id FROM DUAL;
6828
 
5172 dpurdie 6829
      INSERT INTO build_machine_config(bmcon_id, display_name, machine_hostname,gbe_id,description,active)
6830
            VALUES (nbmcon_id,sdisplay_name,smachine_hostname,ngbeid,sdescription, NVL(sactive,'N'));
1373 dpurdie 6831
 
6832
   EXCEPTION
6833
      WHEN DUP_VAL_ON_INDEX
6834
      THEN
6835
         raise_application_error (-20000,
6836
                                 'Cannot have duplicate machines.'
6837
                                 );
6838
 
6839
   END;
6840
 
6841
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 6842
 PROCEDURE duplicate_daemon_config (
6843
      nrtagid           IN   NUMBER,
6844
      nbmcon_id         IN   NUMBER,
6845
      sdaemonhostname   IN   VARCHAR2,
6846
      ngbe_id           IN   NUMBER,
6847
      sdaemon_mode      IN   VARCHAR2,
6848
      sgbebuildfilter   IN   VARCHAR2
6849
   )
6850
   IS
6851
      nrecordnumber   NUMBER;
6852
      nrconid         NUMBER;
6853
    BEGIN
6854
 
6855
      -- Get RCON_ID
6856
      SELECT seq_rcon_id.NEXTVAL
6857
      INTO nrconid
6858
      FROM DUAL;
6859
 
6860
      INSERT INTO release_config
6861
             (rcon_id, rtag_id, daemon_hostname, daemon_mode,
6862
                gbe_id, gbe_buildfilter, bmcon_id)
6863
      VALUES (nrconid, nrtagid, sdaemonhostname, sdaemon_mode,
6864
                ngbe_id, sgbebuildfilter, nbmcon_id);
6865
 
6866
    -- A newly configured daemon should initially be disabled (DEVI-047277)
6867
      INSERT INTO run_level
6868
                  (rcon_id, pause)
6869
           VALUES (nrconid, 2);
6870
 
6871
   END;
6872
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 6873
   PROCEDURE delete_build_machine (sbmcon_id_list IN VARCHAR2)
6874
   IS
6875
   BEGIN
6876
      DELETE FROM build_machine_config
6877
            WHERE bmcon_id IN (
6878
                     SELECT * FROM THE
6879
                              (SELECT CAST
6880
                                          (in_list_number (sbmcon_id_list) AS relmgr_number_tab_t
6881
                                          )
6882
                                 FROM DUAL
6883
                              ));
6884
   END;
6885
 
6886
 
6887
/*-------------------------------------------------------------------------------------------------------*/
6888
   PROCEDURE update_build_machine (
6889
      nbmcon_id              IN   NUMBER,
6890
      sdisplay_name          IN   VARCHAR2,
6891
      smachine_hostname      IN   VARCHAR2,
6892
      ngbeid                 IN   NUMBER,
5172 dpurdie 6893
      sdescription           IN   VARCHAR2,
6894
      sactive                IN   CHAR
1373 dpurdie 6895
   )
6896
   IS
6897
   BEGIN
6898
      UPDATE build_machine_config
6899
         SET display_name = sdisplay_name,
6900
             machine_hostname = smachine_hostname,
6901
             gbe_id = ngbeid,
5172 dpurdie 6902
             description = sdescription,
6903
             active = NVL(sactive, 'N')
1373 dpurdie 6904
      WHERE bmcon_id = nbmcon_id;
6905
   EXCEPTION
6906
      WHEN DUP_VAL_ON_INDEX
6907
      THEN
6908
         raise_application_error (-20000,
6909
                                 'Cannot have duplicate machines.'
6910
                                 );
6911
   END;
4553 dpurdie 6912
 
6913
/*-------------------------------------------------------------------------------------------------------*/
6914
PROCEDURE import_daemons ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER  ) IS
6915
 
6916
   sSourceLocation VARCHAR2(4000);
6917
   sTargetLocation VARCHAR2(4000);
6918
   ProjId NUMBER;
6919
   cReleaseMode CHAR(1);
6920
   RconId NUMBER;
6921
 
6922
   -- this cursor gets the source release daemon configurations, ensuring that the
6923
   -- first record will be the master daemon, and subsequent records will be the slaves.
6924
   CURSOR curSrcReleaseConfigs IS
6925
    SELECT daemon_hostname, gbe_id, gbe_buildfilter, bmcon_id, daemon_mode
6926
     FROM RELEASE_CONFIG rc
6927
    WHERE rc.RTAG_ID = nSourceRtagId
6928
    ORDER BY rc.daemon_mode;
6929
    recSrcReleaseConfigs curSrcReleaseConfigs%ROWTYPE;
6930
 
6931
    -- this cursor looks for target release daemons
6932
   CURSOR curTgtReleaseConfigs IS
6933
    SELECT rcon_id
6934
     FROM RELEASE_CONFIG rc
6935
    WHERE rc.RTAG_ID = nTargetRtagId;
6936
    recTgtReleaseConfigs curTgtReleaseConfigs%ROWTYPE;
6937
 
6938
    -- this cursor looks for target release daemon run level entries
6939
   CURSOR curTgtReleaseConfigRunLevel IS
6940
    SELECT current_run_level
6941
     FROM RUN_LEVEL rl
6942
    WHERE rl.RCON_ID = recTgtReleaseConfigs.rcon_id;
6943
    recTgtReleaseConfigRunLevel curTgtReleaseConfigRunLevel%ROWTYPE;
6944
 
6945
BEGIN
6946
   /*--------------- Business Rules Here -------------------*/
6947
   IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)
6948
   THEN
6949
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );
6950
   END IF;
6951
 
6952
   IF (nSourceRtagId = nTargetRtagId) THEN
6953
      RAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );
6954
   END IF;
6955
 
6956
   -- Check if Target release is in OPEN mode
6957
   SELECT rt.OFFICIAL  INTO  cReleaseMode
6958
     FROM RELEASE_TAGS rt
6959
    WHERE rt.RTAG_ID = nTargetRtagId;
6960
 
6961
   IF (cReleaseMode != 'N') THEN
6962
      RAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the contents.' );
6963
   END IF;
6964
 
6965
   -- check that the target release's daemons are all paused before we allow an import operation
6966
   OPEN curTgtReleaseConfigs;
6967
   FETCH curtgtReleaseConfigs INTO recTgtReleaseConfigs;
6968
 
6969
   WHILE curTgtReleaseConfigs%FOUND
6970
   LOOP
6971
      OPEN curTgtReleaseConfigRunLevel;
6972
      FETCH curTgtReleaseConfigRunLevel INTO recTgtReleaseConfigRunLevel;
6973
      IF curTgtReleaseConfigRunLevel%FOUND THEN
6974
         IF (recTgtReleaseConfigRunLevel.current_run_level IS NULL) OR
6975
            (recTgtReleaseConfigRunLevel.current_run_level <> 2) THEN
6976
            RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
6977
         END IF;
6978
      ELSE
6979
         -- we don't know what the daemon run level is so err on the side of caution
6980
         RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
6981
      END IF;
6982
      CLOSE curTgtReleaseConfigRunLevel;
6983
 
6984
      FETCH curTgtReleaseConfigs INTO recTgtReleaseConfigs;
6985
   END LOOP;
6986
 
6987
   CLOSE curTgtReleaseConfigs;
6988
 
6989
 
6990
   /*-------------------------------------------------------*/
6991
 
6992
   --Import Release Configuration Information
6993
   OPEN curSrcReleaseConfigs;
6994
   FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
6995
 
6996
     WHILE curSrcReleaseConfigs%FOUND
6997
   LOOP
6998
      -- add a daemon to the target release
6999
      PK_BUILDAPI.duplicate_daemon_config( nTargetRtagId, 
7000
                                     recSrcReleaseConfigs.bmcon_id, 
7001
                                     recSrcReleaseConfigs.daemon_hostname, 
7002
                                     recSrcReleaseConfigs.gbe_id, 
7003
                                     recSrcReleaseConfigs.daemon_mode ,
7004
                                     recSrcReleaseConfigs.gbe_buildfilter );
7005
 
7006
      FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
7007
   END LOOP;
7008
 
7009
   CLOSE curSrcReleaseConfigs;
7010
 
7011
 
7012
   /* Log Project Action */
7013
   -- Get Source Location
7014
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sSourceLocation
7015
     FROM RELEASE_TAGS rt,
7016
           PROJECTS pr
7017
    WHERE rt.PROJ_ID = pr.PROJ_ID
7018
      AND rt.RTAG_ID = nSourceRtagId;
7019
 
7020
   -- Get Target Location
7021
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sTargetLocation
7022
     FROM RELEASE_TAGS rt,
7023
           PROJECTS pr
7024
    WHERE rt.PROJ_ID = pr.PROJ_ID
7025
      AND rt.RTAG_ID = nTargetRtagId;
7026
 
7027
   -- Get project id
7028
   SELECT rt.PROJ_ID  INTO  ProjId
7029
     FROM RELEASE_TAGS rt
7030
    WHERE rt.RTAG_ID = nTargetRtagId;
7031
 
7032
   Log_Project_Action ( ProjId, 'import_daemon_configuration', nUserId, 'SOURCE: '|| sSourceLocation ||'   TARGET: '|| sTargetLocation, nTargetRtagId );
7033
END;
7034
 
1373 dpurdie 7035
END pk_buildapi;
4040 dpurdie 7036
 
1374 dpurdie 7037
/
4040 dpurdie 7038
--------------------------------------------------------
7039
--  DDL for Package Body PK_ENVIRONMENT
7040
--------------------------------------------------------
7041
 
5172 dpurdie 7042
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_ENVIRONMENT" 
1373 dpurdie 7043
IS
7044
 
7045
   /*-------------------------------------------------------------------------------------------------------*/
7046
   FUNCTION select_environment_area (cdlock IN package_versions.dlocked%TYPE)
7047
     RETURN NUMBER
7048
   IS
7049
   BEGIN
7050
      /*
7051
     || N - unlocked
7052
     || Y - release and locked
7053
     || P - penging approval
7054
     || A - approved package ready for auto-build
7055
     */
7056
     IF cdlock = 'N' OR cdlock = 'R'
7057
     THEN
7058
       -- WORK IN PROGRESS --
7059
       RETURN 0;
7060
     ELSIF cdlock = 'P' OR cdlock = 'A'
7061
     THEN
7062
       -- PENDING --
7063
       RETURN 1;
7064
     ELSIF cdlock = 'Y'
7065
     THEN
7066
       -- RELEASED --
7067
       RETURN 2;
7068
     ELSE
7069
       -- NOT FOUND --
7070
       raise_application_error
7071
                   (-20000,
7072
                      'Cannot decide where to place package. [cDlock='
7073
                    || cdlock
7074
                    || ']'
7075
                   );
7076
     END IF;
7077
   END;
7078
 
7079
/*-------------------------------------------------------------------------------------------------------*/
7080
   FUNCTION get_package_area (pvid IN NUMBER, rtagid IN NUMBER)
7081
     RETURN NUMBER
7082
   IS
7083
     envtab   NUMBER         := -1;
7084
 
7085
     CURSOR curarea
7086
     IS
7087
       SELECT 2 AS envtab
7088
         FROM release_content rc
7089
        WHERE rc.rtag_id = rtagid AND rc.pv_id = pvid
7090
       UNION
7091
       SELECT 0 AS envtab
7092
         FROM work_in_progress wip
7093
        WHERE wip.rtag_id = rtagid AND wip.pv_id = pvid
7094
       UNION
7095
       SELECT 1 AS envtab
7096
         FROM planned pl
7097
        WHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;
7098
 
7099
     recarea   curarea%ROWTYPE;
7100
   BEGIN
7101
     OPEN curarea;
7102
 
7103
     FETCH curarea
7104
      INTO recarea;
7105
 
7106
     IF curarea%FOUND
7107
     THEN
7108
       envtab := recarea.envtab;
7109
     END IF;
7110
 
7111
     CLOSE curarea;
7112
 
7113
     RETURN envtab;
7114
   END;
7115
 
7116
/*-------------------------------------------------------------------------------------------------------*/
7117
   FUNCTION get_view_location (pvid IN NUMBER, rtagid IN NUMBER)
7118
     RETURN NUMBER
7119
   IS
7120
     ispatch   package_versions.dlocked%TYPE;
7121
     viewid   NUMBER                    := -1;
7122
 
7123
     CURSOR curview
7124
     IS
7125
       SELECT rc.base_view_id AS view_id
7126
         FROM release_content rc
7127
        WHERE rc.rtag_id = rtagid AND rc.pv_id = pvid
7128
       UNION
7129
       SELECT wip.view_id AS view_id
7130
         FROM work_in_progress wip
7131
        WHERE wip.rtag_id = rtagid AND wip.pv_id = pvid
7132
       UNION
7133
       SELECT pl.view_id AS view_id
7134
         FROM planned pl
7135
        WHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;
7136
 
7137
     recview   curview%ROWTYPE;
7138
   BEGIN
7139
     -- Get dlock state
7140
     SELECT pv.is_patch
7141
      INTO ispatch
7142
      FROM package_versions pv
7143
      WHERE pv.pv_id = pvid;
7144
 
7145
     -- Decide which view id should package go under.
7146
     IF (ispatch != 'Y') OR (ispatch IS NULL)
7147
     THEN
7148
       -- Get VIEW ID of Package
7149
       OPEN curview;
7150
 
7151
       FETCH curview
7152
        INTO recview;
7153
 
7154
       IF curview%FOUND
7155
       THEN
7156
         viewid := recview.view_id;
7157
       ELSE
7158
         raise_application_error
7159
            (-20000,
7160
               'Cannot find view_id to proceed. [PvId='
7161
            || pvid
7162
            || ']. The current version may not exist in the release anymore.'
7163
            );
7164
       END IF;
7165
 
7166
       CLOSE curview;
7167
     ELSE
7168
       -- Get VIEW ID of Patch (view id of parent package)
7169
       SELECT rc.base_view_id
7170
         INTO viewid
7171
         FROM release_content rc, package_patches ppv
7172
        WHERE rc.rtag_id = rtagid
7173
         AND rc.pv_id = ppv.pv_id
7174
         AND ppv.patch_id = pvid;
7175
     END IF;
7176
 
7177
     RETURN viewid;
7178
   END;
7179
 
7180
/*-------------------------------------------------------------------------------------------------------*/
5384 dpurdie 7181
--  Add a package to the specified release
7182
--  Default imode: Will determine the tab ( WIP, PENDING, RELEASE ) to add the package
7183
--  Otherwise will Add the package to the PENDING set
7184
--
1373 dpurdie 7185
   PROCEDURE add_package (
7186
     pvid    IN   NUMBER,
5384 dpurdie 7187
     viewid  IN   NUMBER,
7188
     rtagid  IN   NUMBER,
7189
     userid  IN   NUMBER,
7190
     imode   IN   CHAR default NULL
1373 dpurdie 7191
   )
7192
   IS
7193
     dlocked   package_versions.dlocked%TYPE;
7194
     envtab   NUMBER;
5384 dpurdie 7195
     pendOpr CHAR := 'R';
1373 dpurdie 7196
   BEGIN
7197
     IF can_edit_pkg_in_project (pvid, rtagid) = 1
7198
     THEN
5384 dpurdie 7199
       IF iMode IS NULL THEN
7200
         -- Determine the tab to use based on the package lock state
7201
         -- Get dlock state
7202
         SELECT pv.dlocked
7203
           INTO dlocked
7204
           FROM package_versions pv
7205
          WHERE pv.pv_id = pvid;
7206
 
7207
         -- Get which area should go under
7208
         envtab := select_environment_area (dlocked);
7209
       ELSE
7210
        -- Assume that the package is to be added to Pending
7211
        envtab := 1;
7212
        pendOpr := 'A';
7213
       END IF;
1373 dpurdie 7214
       -- Log
5172 dpurdie 7215
       --log_action (pvid, 'action', userid, 'Start of Package Add...');
1373 dpurdie 7216
 
5384 dpurdie 7217
       -- Add Package
1373 dpurdie 7218
       IF envtab = 0
7219
       THEN
7220
         -- WORK IN PROGRESS --
7221
         pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
7222
       ELSIF envtab = 1
7223
       THEN
7224
         -- PENDING --
5384 dpurdie 7225
         pk_planned.add_package (pvid, viewid, rtagid, userid, pendOpr);
1373 dpurdie 7226
       ELSIF envtab = 2
7227
       THEN
7228
         -- RELEASED --
7229
         -- NOTE: this package will be replaced with matching package
7230
         pk_release.add_package (pvid, viewid, rtagid, userid);
7231
         -- Now do post Release Actions
7232
         pk_release.run_post_actions (pvid, rtagid);
7233
       END IF;
7234
 
7235
       -- Log
5172 dpurdie 7236
       --log_action (pvid, 'action', userid, 'End of Package Add...');
1373 dpurdie 7237
     END IF;
7238
   END;
7239
 
7240
/*-------------------------------------------------------------------------------------------------------*/
7241
   PROCEDURE add_package_bulk (
7242
     pvidlist   IN   VARCHAR2,
7243
     viewid    IN   NUMBER,
7244
     rtagid    IN   NUMBER,
5384 dpurdie 7245
     userid    IN   NUMBER,
7246
     imode     IN   CHAR DEFAULT NULL
1373 dpurdie 7247
   )
7248
   IS
5384 dpurdie 7249
     nidcollector relmgr_number_tab_t         := relmgr_number_tab_t();
1373 dpurdie 7250
     dlocked      package_versions.dlocked%TYPE;
7251
     pvid         NUMBER;
7252
     envtab       NUMBER;
7253
   BEGIN
7254
     /*--------------- Business Rules Here -------------------*/
7255
     IF (pvidlist IS NULL)
7256
     THEN
7257
       raise_application_error (-20000,
7258
                          'Please select at least one package.'
7259
                         );
7260
     END IF;
7261
 
7262
/*-------------------------------------------------------*/
7263
     nidcollector := in_list_number (pvidlist);
7264
 
7265
     FOR i IN 1 .. nidcollector.COUNT
7266
     LOOP
7267
       pvid := nidcollector (i);
5384 dpurdie 7268
       add_package (pvid, viewid, rtagid, userid, imode);
1373 dpurdie 7269
     END LOOP;
7270
   END;
7271
 
7272
/*-------------------------------------------------------------------------------------------------------*/
7273
   PROCEDURE replace_package (
7274
     newpvid  IN   NUMBER,
7275
     oldpvid  IN   NUMBER,
7276
     rtagid   IN   NUMBER,
7277
     userid   IN   NUMBER
7278
   )
7279
   IS
7280
     dlocked      package_versions.dlocked%TYPE;
7281
     viewid       NUMBER;
7282
     envtab       NUMBER;
7283
     ROWCOUNT     NUMBER;
7284
     creleasemode CHAR (1);
7285
     npkgid       NUMBER;
7286
   BEGIN
7287
     /*--------------- Business Rules Here -------------------*/
7288
     -- Check if oldPvId exists. It could have been removed
7289
     SELECT COUNT (pv.pv_id)
7290
       INTO ROWCOUNT
7291
       FROM package_versions pv
7292
      WHERE pv.pv_id = oldpvid;
7293
 
7294
/*-------------------------------------------------------*/
7295
 
7296
     /* This procedure is usually used by "History" option in Release Manager */
7297
 
7298
     -- Get dlock state
7299
     SELECT pv.dlocked
7300
       INTO dlocked
7301
       FROM package_versions pv
7302
      WHERE pv.pv_id = newpvid;
7303
 
7304
     -- Get VIEW_ID ---
7305
     IF ROWCOUNT = 1
7306
     THEN
7307
       viewid := get_view_location (oldpvid, rtagid);
7308
     ELSE
7309
       -- Set ViewID to default
7310
       viewid := 7;
7311
     END IF;
7312
 
7313
     -- Get which area should go under
7314
     envtab := select_environment_area (dlocked);
7315
     -- Log
5172 dpurdie 7316
     --log_action (oldpvid, 'action', userid, 'Start of Package Replace...');
1373 dpurdie 7317
 
7318
     -- Replace package
7319
     IF envtab = 0
7320
     THEN
7321
       -- WORK IN PROGRESS --
7322
 
7323
       -- Delete old package
7324
       pk_work_in_progress.remove_package (oldpvid, rtagid, userid);
7325
 
7326
       -- Add new package
7327
       pk_work_in_progress.add_package (newpvid, viewid, rtagid, userid);
7328
     ELSIF envtab = 1
7329
     THEN
7330
       -- PENDING --
7331
 
7332
       -- Delete old package
7333
       pk_planned.remove_package (oldpvid, rtagid, userid);
7334
 
7335
       -- Add new package
7336
       pk_planned.add_package (newpvid, viewid, rtagid, userid);
7337
     ELSIF envtab = 2
7338
     THEN
7339
       -- RELEASED --
5172 dpurdie 7340
 
7341
       -- Replace Package
7342
       pk_release.replace_package(newpvid, oldpvid, rtagid, userid);
7343
 
1373 dpurdie 7344
       -- Now do post Release Actions
7345
       pk_release.run_post_actions (newpvid, rtagid);
7346
     END IF;
7347
 
7348
     -- Log
5172 dpurdie 7349
     --log_action (oldpvid, 'action', userid, 'End of Package Replace...');
1373 dpurdie 7350
   END;
7351
 
7352
/*-------------------------------------------------------------------------------------------------------*/
7353
   FUNCTION remove_package (
7354
     pvid        IN   NUMBER,
7355
     rtagid      IN   NUMBER,
7356
     userid      IN   NUMBER,
7357
     forceremove IN   CHAR
7358
   )
7359
     RETURN NUMBER
7360
   IS
7361
     envtab      NUMBER;
7362
     isused      BOOLEAN;
7363
     recordcount   NUMBER;
7364
   BEGIN
7365
/*--------------- Business Rules Here -------------------*/
7366
/*-------------------------------------------------------*/
7367
 
7368
     -- Find location of package
7369
     envtab := get_package_area (pvid, rtagid);
7370
 
7371
     -- Remove Package
7372
     IF envtab = 0
7373
     THEN
7374
       -- WORK IN PROGRESS --
7375
       -- Delete package
7376
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
7377
 
7378
       RETURN 0;
7379
     ELSIF envtab = 1
7380
     THEN
7381
       -- PENDING --
7382
       -- Delete package
7383
       pk_planned.remove_package (pvid, rtagid, userid);
7384
 
7385
       RETURN 0;
7386
     ELSIF envtab = 2
7387
     THEN
7388
       -- RELEASED --
7389
 
7390
       -- Check if is used by other packages
7391
       isused := TRUE;
7392
 
7393
       IF forceremove = 'N'
7394
       THEN
5172 dpurdie 7395
          select count(dpv.PKG_ID) INTO recordcount from 
7396
          (SELECT  rc.pv_id
7397
          FROM RELEASE_CONTENT rc, PEGGED_VERSIONS peg
7398
            WHERE rc.rtag_id = rtagid
7399
            AND peg.RTAG_ID(+) = rc.RTAG_ID
7400
            AND peg.PV_ID(+) = rc.PV_ID
7401
            AND peg.rtag_id is null
7402
            AND rc.SDKTAG_ID is null
7403
            ) arc,
7404
          PACKAGE_DEPENDENCIES dep,
7405
          PACKAGE_VERSIONS pv,
7406
          PACKAGE_VERSIONS dpv,
7407
          PACKAGE_VERSIONS bpv
7408
          where dep.PV_ID = arc.pv_id
7409
          AND dep.pv_id = pv.pv_id
7410
          AND dep.dpv_id = dpv.PV_ID
7411
          AND dpv.PKG_ID = bpv.PKG_ID
7412
          AND NVL(dpv.V_EXT, '.NULL') = NVL(bpv.V_EXT, '.NULL')
7413
          AND bpv.pv_id = pvid;
1373 dpurdie 7414
 
7415
         IF recordcount > 0
7416
         THEN
7417
            RETURN 1;               -- Return 1 as package being used
7418
         ELSE
7419
            isused := FALSE;
7420
         END IF;
7421
       END IF;
7422
 
7423
       IF forceremove = 'Y' OR NOT isused
7424
       THEN
7425
         -- Delete old package
7426
         pk_release.remove_package (pvid, rtagid, userid);
7427
 
7428
         -- Delete old package's pegging info
7429
         DELETE FROM PEGGED_VERSIONS pegv WHERE pegv.RTAG_ID = rtagid AND pegv.PV_ID = pvid;
7430
 
7431
         -- Delete old package's advisory ripple info
7432
         DELETE FROM ADVISORY_RIPPLE avr WHERE avr.RTAG_ID = rtagid AND avr.PV_ID = pvid;
7433
 
7434
         -- Now do post Release Actions
7435
         pk_release.run_post_actions (pvid, rtagid);
7436
         RETURN 0;
7437
       END IF;
7438
     END IF;
7439
   END;
7440
 
7441
/*-------------------------------------------------------------------------------------------------------*/
7442
   -- DEVI-45275 added the return of the new "operation" column in the recordset.
7443
 
7444
   PROCEDURE get_environment_items (
7445
     viewtype         IN      NUMBER,
7446
     userid           IN      NUMBER,
7447
     rtagid           IN      NUMBER,
7448
     sviewidshowlist  IN      VARCHAR2,
7449
     ntruerecordcount OUT     NUMBER,
7450
     recordset        OUT     typecur
7451
   )
7452
   IS
7453
   BEGIN
7454
     -- Get true record count because views can give false count
7455
     SELECT COUNT (pl.pv_id)
7456
      INTO ntruerecordcount
7457
      FROM environment_view pl
7458
      WHERE pl.rtag_id = rtagid;
7459
 
7460
     IF viewtype = 1
7461
     THEN
7462
       /*--- GUEST VIEW ---*/
7463
       OPEN recordset FOR
7464
         SELECT   *
7465
            FROM (
7466
                 /* Base Views collapsed */
7467
                 SELECT DISTINCT vi.view_id, vi.view_name,
7468
                             TO_NUMBER (NULL) AS pkg_state,
7469
                             TO_NUMBER (NULL) AS deprecated_state,
7470
                             TO_NUMBER (NULL) AS pv_id,
7471
                             NULL AS pkg_name, NULL AS pkg_version,
7472
                             NULL AS dlocked, NULL AS pv_description,
7473
                             rel.operation
7474
                         FROM environment_view rel, views vi
7475
                        WHERE rel.view_id = vi.view_id
7476
                          AND rtag_id = rtagid
7477
                          AND rel.view_id NOT IN (
7478
                               SELECT *
7479
                                 FROM THE
7480
                                       (SELECT CAST
7481
                                               (in_list_number
7482
                                                  (sviewidshowlist
7483
                                                  ) AS relmgr_number_tab_t
7484
                                               )
7485
                                         FROM DUAL
7486
                                       ))
7487
                 UNION
7488
                 /* Base Views expanded */
7489
                 SELECT vi.view_id, vi.view_name,
7490
                      DECODE (rel.pkg_state,
7491
                            NULL, 0,
7492
                            rel.pkg_state
7493
                           ) AS pkg_state,
7494
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7495
                      pv.pkg_version, pv.dlocked, pv.pv_description,
7496
                      rel.operation
7497
                  FROM environment_view rel,
7498
                      PACKAGES pkg,
7499
                      package_versions pv,
7500
                      views vi
7501
                  WHERE pv.pkg_id = pkg.pkg_id
7502
                   AND rel.pv_id = pv.pv_id
7503
                   AND rel.view_id = vi.view_id
7504
                   AND rel.view_id IN (
7505
                        SELECT *
7506
                          FROM THE
7507
                                (SELECT CAST
7508
                                        (in_list_number
7509
                                               (sviewidshowlist) AS relmgr_number_tab_t
7510
                                        )
7511
                                  FROM DUAL
7512
                                ))
7513
                   AND rtag_id = rtagid) ord
7514
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7515
     ELSIF viewtype = 2
7516
     THEN
7517
       /*--- PERSONAL VIEW ---*/
7518
       OPEN recordset FOR
7519
         SELECT   *
7520
            FROM (
7521
                 /* Base Views collapsed */
7522
                 SELECT DISTINCT vi.view_id, vi.view_name,
7523
                             TO_NUMBER (NULL) AS pkg_state,
7524
                             TO_NUMBER (NULL) AS deprecated_state,
7525
                             TO_NUMBER (NULL) AS pv_id,
7526
                             NULL AS pkg_name, NULL AS pkg_version,
7527
                             NULL AS dlocked, NULL AS pv_description,
7528
                             rel.operation
7529
                         FROM environment_view rel,
7530
                             view_settings vs,
7531
                             views vi
7532
                        WHERE rel.view_id = vi.view_id
7533
                          AND vs.view_id = rel.view_id
7534
                          AND vs.user_id = userid
7535
                          AND rtag_id = rtagid
7536
                          AND rel.view_id NOT IN (
7537
                               SELECT *
7538
                                 FROM THE
7539
                                       (SELECT CAST
7540
                                               (in_list_number
7541
                                                  (sviewidshowlist
7542
                                                  ) AS relmgr_number_tab_t
7543
                                               )
7544
                                         FROM DUAL
7545
                                       ))
7546
                 UNION
7547
                 /* Base Views expanded */
7548
                 SELECT vi.view_id, vi.view_name,
7549
                      DECODE (rel.pkg_state,
7550
                            NULL, 0,
7551
                            rel.pkg_state
7552
                           ) AS pkg_state,
7553
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7554
                      pv.pkg_version, pv.dlocked, pv.pv_description,
7555
                      rel.operation
7556
                  FROM environment_view rel,
7557
                      PACKAGES pkg,
7558
                      package_versions pv,
7559
                      views vi,
7560
                      view_settings vs
7561
                  WHERE pv.pkg_id = pkg.pkg_id
7562
                   AND rel.pv_id = pv.pv_id
7563
                   AND rel.view_id = vi.view_id
7564
                   AND vs.view_id = vi.view_id
7565
                   AND vs.user_id = userid
7566
                   AND rel.view_id IN (
7567
                        SELECT *
7568
                          FROM THE
7569
                                (SELECT CAST
7570
                                        (in_list_number
7571
                                               (sviewidshowlist) AS relmgr_number_tab_t
7572
                                        )
7573
                                  FROM DUAL
7574
                                ))
7575
                   AND rtag_id = rtagid
7576
                 UNION
7577
                 /* Private Views collapsed */
7578
                 SELECT vi.view_id, vi.view_name,
7579
                      TO_NUMBER (NULL) AS pkg_state,
7580
                      TO_NUMBER (NULL) AS deprecated_state,
7581
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
7582
                      NULL AS pkg_version, NULL AS dlocked,
7583
                      NULL AS pv_description,
7584
                      rel.operation
7585
                  FROM view_settings vs,
7586
                      view_def vd,
7587
                      views vi,
7588
                      environment_view rel,
7589
                      package_versions pv
7590
                  WHERE vs.view_id = vi.view_id
7591
                   AND rel.pv_id = pv.pv_id
7592
                   AND vd.pkg_id = pv.pkg_id
7593
                   AND vd.view_id = vi.view_id
7594
                   AND vi.base_view = 'N'
7595
                   AND rel.rtag_id = rtagid
7596
                   AND vs.user_id = userid
7597
                   AND vi.view_id NOT IN (
7598
                        SELECT *
7599
                          FROM THE
7600
                                (SELECT CAST
7601
                                        (in_list_number
7602
                                               (sviewidshowlist) AS relmgr_number_tab_t
7603
                                        )
7604
                                  FROM DUAL
7605
                                ))
7606
                 UNION
7607
                 /* Private Views expanded */
7608
                 SELECT vi.view_id, vi.view_name,
7609
                      DECODE (rel.pkg_state,
7610
                            NULL, 0,
7611
                            rel.pkg_state
7612
                           ) AS pkg_state,
7613
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7614
                      pv.pkg_version, pv.dlocked, pv.pv_description,
7615
                      rel.operation
7616
                  FROM users usr,
7617
                      view_settings vs,
7618
                      view_def vd,
7619
                      views vi,
7620
                      environment_view rel,
7621
                      PACKAGES pkg,
7622
                      package_versions pv
7623
                  WHERE vs.user_id = usr.user_id
7624
                   AND vs.view_id = vi.view_id
7625
                   AND vd.view_id = vi.view_id
7626
                   AND pv.pkg_id = pkg.pkg_id
7627
                   AND rel.pv_id = pv.pv_id
7628
                   AND rel.rtag_id = rtagid
7629
                   AND vd.pkg_id = pkg.pkg_id
7630
                   AND vi.base_view = 'N'
7631
                   AND vi.view_id IN (
7632
                        SELECT *
7633
                          FROM THE
7634
                                (SELECT CAST
7635
                                        (in_list_number
7636
                                               (sviewidshowlist) AS relmgr_number_tab_t
7637
                                        )
7638
                                  FROM DUAL
7639
                                ))
7640
                   AND usr.user_id = userid) ord
7641
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7642
     END IF;
7643
   END;
7644
 
7645
/*-------------------------------------------------------------------------------------------------------*/
7646
   PROCEDURE get_released_items (
7647
     viewtype         IN      NUMBER,
7648
     userid           IN      NUMBER,
7649
     rtagid           IN      NUMBER,
7650
     sviewidshowlist  IN      VARCHAR2,
7651
     ntruerecordcount OUT     NUMBER,
7652
     recordset        OUT     typecur
7653
   )
7654
   IS
7655
   BEGIN
7656
     -- Get true record count because views can give false count
7657
     SELECT COUNT (rc.pv_id)
7658
      INTO ntruerecordcount
7659
      FROM release_content rc
7660
      WHERE rc.rtag_id = rtagid;
7661
 
7662
     IF viewtype = 1
7663
     THEN
7664
       /*--- GUEST VIEW ---*/
7665
       OPEN recordset FOR
7666
         SELECT   *
7667
            FROM (
7668
                 /* Base Views collapsed */
7669
                 SELECT DISTINCT vi.view_id, vi.view_name,
7670
                             TO_NUMBER (NULL) AS pkg_state,
7671
                             TO_NUMBER (NULL) AS deprecated_state,
7672
                             TO_NUMBER (NULL) AS pv_id,
7673
                             NULL AS pkg_name, NULL AS pkg_version,
7674
                             NULL AS dlocked, NULL AS pv_description
7675
                         FROM release_content rel, views vi
7676
                        WHERE rel.base_view_id = vi.view_id
7677
                          AND rtag_id = rtagid
7678
                          AND rel.base_view_id NOT IN (
7679
                               SELECT *
7680
                                 FROM THE
7681
                                       (SELECT CAST
7682
                                               (in_list_number
7683
                                                  (sviewidshowlist
7684
                                                  ) AS relmgr_number_tab_t
7685
                                               )
7686
                                         FROM DUAL
7687
                                       ))
7688
                 UNION
7689
                 /* Base Views expanded */
7690
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
7691
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7692
                      pv.pkg_version, pv.dlocked, pv.pv_description
7693
                  FROM release_content rel,
7694
                      PACKAGES pkg,
7695
                      package_versions pv,
7696
                      views vi
7697
                  WHERE pv.pkg_id = pkg.pkg_id
7698
                   AND rel.pv_id = pv.pv_id
7699
                   AND rel.base_view_id = vi.view_id
7700
                   AND rel.base_view_id IN (
7701
                        SELECT *
7702
                          FROM THE
7703
                                (SELECT CAST
7704
                                        (in_list_number
7705
                                               (sviewidshowlist) AS relmgr_number_tab_t
7706
                                        )
7707
                                  FROM DUAL
7708
                                ))
7709
                   AND rtag_id = rtagid) ord
7710
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7711
     ELSIF viewtype = 2
7712
     THEN
7713
       /*--- PERSONAL VIEW ---*/
7714
       OPEN recordset FOR
7715
         SELECT   *
7716
            FROM (
7717
                 /* Base Views collapsed */
7718
                 SELECT DISTINCT vi.view_id, vi.view_name,
7719
                             TO_NUMBER (NULL) AS pkg_state,
7720
                             TO_NUMBER (NULL) AS deprecated_state,
7721
                             TO_NUMBER (NULL) AS pv_id,
7722
                             NULL AS pkg_name, NULL AS pkg_version,
7723
                             NULL AS dlocked, NULL AS pv_description
7724
                         FROM release_content rel,
7725
                             view_settings vs,
7726
                             views vi
7727
                        WHERE rel.base_view_id = vi.view_id
7728
                          AND vs.view_id = rel.base_view_id
7729
                          AND vs.user_id = userid
7730
                          AND rtag_id = rtagid
7731
                          AND rel.base_view_id NOT IN (
7732
                               SELECT *
7733
                                 FROM THE
7734
                                       (SELECT CAST
7735
                                               (in_list_number
7736
                                                  (sviewidshowlist
7737
                                                  ) AS relmgr_number_tab_t
7738
                                               )
7739
                                         FROM DUAL
7740
                                       ))
7741
                 UNION
7742
                 /* Base Views expanded */
7743
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
7744
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7745
                      pv.pkg_version, pv.dlocked, pv.pv_description
7746
                  FROM release_content rel,
7747
                      PACKAGES pkg,
7748
                      package_versions pv,
7749
                      views vi,
7750
                      view_settings vs
7751
                  WHERE pv.pkg_id = pkg.pkg_id
7752
                   AND rel.pv_id = pv.pv_id
7753
                   AND rel.base_view_id = vi.view_id
7754
                   AND vs.view_id = vi.view_id
7755
                   AND vs.user_id = userid
7756
                   AND rel.base_view_id IN (
7757
                        SELECT *
7758
                          FROM THE
7759
                                (SELECT CAST
7760
                                        (in_list_number
7761
                                               (sviewidshowlist) AS relmgr_number_tab_t
7762
                                        )
7763
                                  FROM DUAL
7764
                                ))
7765
                   AND rtag_id = rtagid
7766
                 UNION
7767
                 /* Private Views collapsed */
7768
                 SELECT vi.view_id, vi.view_name,
7769
                      TO_NUMBER (NULL) AS pkg_state,
7770
                      TO_NUMBER (NULL) AS deprecated_state,
7771
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
7772
                      NULL AS pkg_version, NULL AS dlocked,
7773
                      NULL AS pv_description
7774
                  FROM view_settings vs,
7775
                      view_def vd,
7776
                      views vi,
7777
                      release_content rel,
7778
                      package_versions pv
7779
                  WHERE vs.view_id = vi.view_id
7780
                   AND rel.pv_id = pv.pv_id
7781
                   AND vd.pkg_id = pv.pkg_id
7782
                   AND vd.view_id = vi.view_id
7783
                   AND vi.base_view = 'N'
7784
                   AND rel.rtag_id = rtagid
7785
                   AND vs.user_id = userid
7786
                   AND vi.view_id NOT IN (
7787
                        SELECT *
7788
                          FROM THE
7789
                                (SELECT CAST
7790
                                        (in_list_number
7791
                                               (sviewidshowlist) AS relmgr_number_tab_t
7792
                                        )
7793
                                  FROM DUAL
7794
                                ))
7795
                 UNION
7796
                 /* Private Views expanded */
7797
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
7798
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7799
                      pv.pkg_version, pv.dlocked, pv.pv_description
7800
                  FROM users usr,
7801
                      view_settings vs,
7802
                      view_def vd,
7803
                      views vi,
7804
                      release_content rel,
7805
                      PACKAGES pkg,
7806
                      package_versions pv
7807
                  WHERE vs.user_id = usr.user_id
7808
                   AND vs.view_id = vi.view_id
7809
                   AND vd.view_id = vi.view_id
7810
                   AND pv.pkg_id = pkg.pkg_id
7811
                   AND rel.pv_id = pv.pv_id
7812
                   AND rel.rtag_id = rtagid
7813
                   AND vd.pkg_id = pkg.pkg_id
7814
                   AND vi.base_view = 'N'
7815
                   AND vi.view_id IN (
7816
                        SELECT *
7817
                          FROM THE
7818
                                (SELECT CAST
7819
                                        (in_list_number
7820
                                               (sviewidshowlist) AS relmgr_number_tab_t
7821
                                        )
7822
                                  FROM DUAL
7823
                                ))
7824
                   AND usr.user_id = userid) ord
7825
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7826
     END IF;
7827
   END;
7828
 
7829
/*-------------------------------------------------------------------------------------------------------*/
7830
   PROCEDURE get_work_in_progress_items (
7831
     viewtype         IN      NUMBER,
7832
     userid           IN      NUMBER,
7833
     rtagid           IN      NUMBER,
7834
     sviewidshowlist  IN      VARCHAR2,
7835
     ntruerecordcount OUT     NUMBER,
7836
     recordset        OUT     typecur
7837
   )
7838
   IS
7839
   BEGIN
7840
     -- Get true record count because views can give false count
7841
     SELECT COUNT (wip.pv_id)
7842
      INTO ntruerecordcount
7843
      FROM work_in_progress wip
7844
      WHERE wip.rtag_id = rtagid;
7845
 
7846
     IF viewtype = 1
7847
     THEN
7848
       /*--- GUEST VIEW ---*/
7849
       OPEN recordset FOR
7850
         SELECT   *
7851
            FROM (
7852
                 /* Base Views collapsed */
7853
                 SELECT DISTINCT vi.view_id, vi.view_name,
7854
                             TO_NUMBER (NULL) AS pkg_state,
7855
                             TO_NUMBER (NULL) AS deprecated_state,
7856
                             TO_NUMBER (NULL) AS pv_id,
7857
                             NULL AS pkg_name, NULL AS pkg_version,
7858
                             NULL AS dlocked, NULL AS pv_description
7859
                         FROM work_in_progress rel, views vi
7860
                        WHERE rel.view_id = vi.view_id
7861
                          AND rtag_id = rtagid
7862
                          AND rel.view_id NOT IN (
7863
                               SELECT *
7864
                                 FROM THE
7865
                                       (SELECT CAST
7866
                                               (in_list_number
7867
                                                  (sviewidshowlist
7868
                                                  ) AS relmgr_number_tab_t
7869
                                               )
7870
                                         FROM DUAL
7871
                                       ))
7872
                 UNION
7873
                 /* Base Views expanded */
7874
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
7875
 
7876
                      --rel.pkg_state,
7877
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
7878
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
7879
                      pv.pv_description
7880
                  FROM work_in_progress rel,
7881
                      PACKAGES pkg,
7882
                      package_versions pv,
7883
                      views vi
7884
                  WHERE pv.pkg_id = pkg.pkg_id
7885
                   AND rel.pv_id = pv.pv_id
7886
                   AND rel.view_id = vi.view_id
7887
                   AND rel.view_id IN (
7888
                        SELECT *
7889
                          FROM THE
7890
                                (SELECT CAST
7891
                                        (in_list_number
7892
                                               (sviewidshowlist) AS relmgr_number_tab_t
7893
                                        )
7894
                                  FROM DUAL
7895
                                ))
7896
                   AND rtag_id = rtagid) ord
7897
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7898
     ELSIF viewtype = 2
7899
     THEN
7900
       /*--- PERSONAL VIEW ---*/
7901
       OPEN recordset FOR
7902
         SELECT   *
7903
            FROM (
7904
                 /* Base Views collapsed */
7905
                 SELECT DISTINCT vi.view_id, vi.view_name,
7906
                             TO_NUMBER (NULL) AS pkg_state,
7907
                             TO_NUMBER (NULL) AS deprecated_state,
7908
                             TO_NUMBER (NULL) AS pv_id,
7909
                             NULL AS pkg_name, NULL AS pkg_version,
7910
                             NULL AS dlocked, NULL AS pv_description
7911
                         FROM work_in_progress rel,
7912
                             view_settings vs,
7913
                             views vi
7914
                        WHERE rel.view_id = vi.view_id
7915
                          AND vs.view_id = rel.view_id
7916
                          AND vs.user_id = userid
7917
                          AND rtag_id = rtagid
7918
                          AND rel.view_id NOT IN (
7919
                               SELECT *
7920
                                 FROM THE
7921
                                       (SELECT CAST
7922
                                               (in_list_number
7923
                                                  (sviewidshowlist
7924
                                                  ) AS relmgr_number_tab_t
7925
                                               )
7926
                                         FROM DUAL
7927
                                       ))
7928
                 UNION
7929
                 /* Base Views expanded */
7930
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
7931
 
7932
                      --rel.pkg_state,
7933
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
7934
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
7935
                      pv.pv_description
7936
                  FROM work_in_progress rel,
7937
                      PACKAGES pkg,
7938
                      package_versions pv,
7939
                      views vi,
7940
                      view_settings vs
7941
                  WHERE pv.pkg_id = pkg.pkg_id
7942
                   AND rel.pv_id = pv.pv_id
7943
                   AND rel.view_id = vi.view_id
7944
                   AND vs.view_id = vi.view_id
7945
                   AND vs.user_id = userid
7946
                   AND rel.view_id IN (
7947
                        SELECT *
7948
                          FROM THE
7949
                                (SELECT CAST
7950
                                        (in_list_number
7951
                                               (sviewidshowlist) AS relmgr_number_tab_t
7952
                                        )
7953
                                  FROM DUAL
7954
                                ))
7955
                   AND rtag_id = rtagid
7956
                 UNION
7957
                 /* Private Views collapsed */
7958
                 SELECT vi.view_id, vi.view_name,
7959
                      TO_NUMBER (NULL) AS pkg_state,
7960
                      TO_NUMBER (NULL) AS deprecated_state,
7961
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
7962
                      NULL AS pkg_version, NULL AS dlocked,
7963
                      NULL AS pv_description
7964
                  FROM view_settings vs,
7965
                      view_def vd,
7966
                      views vi,
7967
                      work_in_progress rel,
7968
                      package_versions pv
7969
                  WHERE vs.view_id = vi.view_id
7970
                   AND rel.pv_id = pv.pv_id
7971
                   AND vd.pkg_id = pv.pkg_id
7972
                   AND vd.view_id = vi.view_id
7973
                   AND vi.base_view = 'N'
7974
                   AND rel.rtag_id = rtagid
7975
                   AND vs.user_id = userid
7976
                   AND vi.view_id NOT IN (
7977
                        SELECT *
7978
                          FROM THE
7979
                                (SELECT CAST
7980
                                        (in_list_number
7981
                                               (sviewidshowlist) AS relmgr_number_tab_t
7982
                                        )
7983
                                  FROM DUAL
7984
                                ))
7985
                 UNION
7986
                 /* Private Views expanded */
7987
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
7988
 
7989
                      --rel.pkg_state,
7990
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
7991
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
7992
                      pv.pv_description
7993
                  FROM users usr,
7994
                      view_settings vs,
7995
                      view_def vd,
7996
                      views vi,
7997
                      work_in_progress rel,
7998
                      PACKAGES pkg,
7999
                      package_versions pv
8000
                  WHERE vs.user_id = usr.user_id
8001
                   AND vs.view_id = vi.view_id
8002
                   AND vd.view_id = vi.view_id
8003
                   AND pv.pkg_id = pkg.pkg_id
8004
                   AND rel.pv_id = pv.pv_id
8005
                   AND rel.rtag_id = rtagid
8006
                   AND vd.pkg_id = pkg.pkg_id
8007
                   AND vi.base_view = 'N'
8008
                   AND vi.view_id IN (
8009
                        SELECT *
8010
                          FROM THE
8011
                                (SELECT CAST
8012
                                        (in_list_number
8013
                                               (sviewidshowlist) AS relmgr_number_tab_t
8014
                                        )
8015
                                  FROM DUAL
8016
                                ))
8017
                   AND usr.user_id = userid) ord
8018
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8019
     END IF;
8020
   END;
8021
 
8022
/*-------------------------------------------------------------------------------------------------------*/
8023
   -- DEVI-45275 added the return of the new "operation" column in the recordset.
8024
 
8025
   PROCEDURE get_pending_items (
8026
     viewtype         IN      NUMBER,
8027
     userid           IN      NUMBER,
8028
     rtagid           IN      NUMBER,
8029
     sviewidshowlist  IN      VARCHAR2,
8030
     ntruerecordcount OUT     NUMBER,
8031
     recordset        OUT     typecur
8032
   )
8033
   IS
8034
   BEGIN
8035
     -- Get true record count because views can give false count
8036
     SELECT COUNT (pl.pv_id)
8037
      INTO ntruerecordcount
8038
      FROM planned pl
8039
      WHERE pl.rtag_id = rtagid;
8040
 
8041
     IF viewtype = 1
8042
     THEN
8043
       /*--- GUEST VIEW ---*/
8044
       OPEN recordset FOR
8045
         SELECT   *
8046
            FROM (
8047
                 /* Base Views collapsed */
8048
                 SELECT DISTINCT vi.view_id, vi.view_name,
8049
                             TO_NUMBER (NULL) AS pkg_state,
8050
                             TO_NUMBER (NULL) AS deprecated_state,
8051
                             TO_NUMBER (NULL) AS pv_id,
8052
                             NULL AS pkg_name, NULL AS pkg_version,
8053
                             NULL AS dlocked, NULL AS pv_description,
8054
                             rel.operation
8055
                         FROM planned rel, views vi
8056
                        WHERE rel.view_id = vi.view_id
8057
                          AND rtag_id = rtagid
8058
                          AND rel.view_id NOT IN (
8059
                               SELECT *
8060
                                 FROM THE
8061
                                       (SELECT CAST
8062
                                               (in_list_number
8063
                                                  (sviewidshowlist
8064
                                                  ) AS relmgr_number_tab_t
8065
                                               )
8066
                                         FROM DUAL
8067
                                       ))
8068
                 UNION
8069
                 /* Base Views expanded */
8070
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8071
 
8072
                      --rel.pkg_state,
8073
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8074
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8075
                      pv.pv_description,
8076
                      rel.operation
8077
                  FROM planned rel,
8078
                      PACKAGES pkg,
8079
                      package_versions pv,
8080
                      views vi
8081
                  WHERE pv.pkg_id = pkg.pkg_id
8082
                   AND rel.pv_id = pv.pv_id
8083
                   AND rel.view_id = vi.view_id
8084
                   AND rel.view_id IN (
8085
                        SELECT *
8086
                          FROM THE
8087
                                (SELECT CAST
8088
                                        (in_list_number
8089
                                               (sviewidshowlist) AS relmgr_number_tab_t
8090
                                        )
8091
                                  FROM DUAL
8092
                                ))
8093
                   AND rtag_id = rtagid) ord
8094
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8095
     ELSIF viewtype = 2
8096
     THEN
8097
       /*--- PERSONAL VIEW ---*/
8098
       OPEN recordset FOR
8099
         SELECT   *
8100
            FROM (
8101
                 /* Base Views collapsed */
8102
                 SELECT DISTINCT vi.view_id, vi.view_name,
8103
                             TO_NUMBER (NULL) AS pkg_state,
8104
                             TO_NUMBER (NULL) AS deprecated_state,
8105
                             TO_NUMBER (NULL) AS pv_id,
8106
                             NULL AS pkg_name, NULL AS pkg_version,
8107
                             NULL AS dlocked, NULL AS pv_description,
8108
                             rel.operation
8109
                         FROM planned rel, view_settings vs, views vi
8110
                        WHERE rel.view_id = vi.view_id
8111
                          AND vs.view_id = rel.view_id
8112
                          AND vs.user_id = userid
8113
                          AND rtag_id = rtagid
8114
                          AND rel.view_id NOT IN (
8115
                               SELECT *
8116
                                 FROM THE
8117
                                       (SELECT CAST
8118
                                               (in_list_number
8119
                                                  (sviewidshowlist
8120
                                                  ) AS relmgr_number_tab_t
8121
                                               )
8122
                                         FROM DUAL
8123
                                       ))
8124
                 UNION
8125
                 /* Base Views expanded */
8126
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8127
 
8128
                      --rel.pkg_state,
8129
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8130
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8131
                      pv.pv_description,
8132
                      rel.operation
8133
                  FROM planned rel,
8134
                      PACKAGES pkg,
8135
                      package_versions pv,
8136
                      views vi,
8137
                      view_settings vs
8138
                  WHERE pv.pkg_id = pkg.pkg_id
8139
                   AND rel.pv_id = pv.pv_id
8140
                   AND rel.view_id = vi.view_id
8141
                   AND vs.view_id = vi.view_id
8142
                   AND vs.user_id = userid
8143
                   AND rel.view_id IN (
8144
                        SELECT *
8145
                          FROM THE
8146
                                (SELECT CAST
8147
                                        (in_list_number
8148
                                               (sviewidshowlist) AS relmgr_number_tab_t
8149
                                        )
8150
                                  FROM DUAL
8151
                                ))
8152
                   AND rtag_id = rtagid
8153
                 UNION
8154
                 /* Private Views collapsed */
8155
                 SELECT vi.view_id, vi.view_name,
8156
                      TO_NUMBER (NULL) AS pkg_state,
8157
                      TO_NUMBER (NULL) AS deprecated_state,
8158
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
8159
                      NULL AS pkg_version, NULL AS dlocked,
8160
                      NULL AS pv_description,
8161
                      rel.operation
8162
                  FROM view_settings vs,
8163
                      view_def vd,
8164
                      views vi,
8165
                      planned rel,
8166
                      package_versions pv
8167
                  WHERE vs.view_id = vi.view_id
8168
                   AND rel.pv_id = pv.pv_id
8169
                   AND vd.pkg_id = pv.pkg_id
8170
                   AND vd.view_id = vi.view_id
8171
                   AND vi.base_view = 'N'
8172
                   AND rel.rtag_id = rtagid
8173
                   AND vs.user_id = userid
8174
                   AND vi.view_id NOT IN (
8175
                        SELECT *
8176
                          FROM THE
8177
                                (SELECT CAST
8178
                                        (in_list_number
8179
                                               (sviewidshowlist) AS relmgr_number_tab_t
8180
                                        )
8181
                                  FROM DUAL
8182
                                ))
8183
                 UNION
8184
                 /* Private Views expanded */
8185
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8186
 
8187
                      --rel.pkg_state,
8188
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8189
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8190
                      pv.pv_description,
8191
                      rel.operation
8192
                  FROM users usr,
8193
                      view_settings vs,
8194
                      view_def vd,
8195
                      views vi,
8196
                      planned rel,
8197
                      PACKAGES pkg,
8198
                      package_versions pv
8199
                  WHERE vs.user_id = usr.user_id
8200
                   AND vs.view_id = vi.view_id
8201
                   AND vd.view_id = vi.view_id
8202
                   AND pv.pkg_id = pkg.pkg_id
8203
                   AND rel.pv_id = pv.pv_id
8204
                   AND rel.rtag_id = rtagid
8205
                   AND vd.pkg_id = pkg.pkg_id
8206
                   AND vi.base_view = 'N'
8207
                   AND vi.view_id IN (
8208
                        SELECT *
8209
                          FROM THE
8210
                                (SELECT CAST
8211
                                        (in_list_number
8212
                                               (sviewidshowlist) AS relmgr_number_tab_t
8213
                                        )
8214
                                  FROM DUAL
8215
                                ))
8216
                   AND usr.user_id = userid) ord
8217
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8218
     END IF;
8219
   END;
8220
 
8221
/*-------------------------------------------------------------------------------------------------------*/
8222
   PROCEDURE get_view_content (
8223
     rtagid     IN      NUMBER,
8224
     viewid     IN      NUMBER,
8225
     recordset OUT     typecur
8226
   )
8227
   IS
8228
     isbaseview   CHAR (1);
8229
   BEGIN
8230
     -- Check if the view is BASE VIEW
8231
     SELECT vi.base_view
8232
      INTO isbaseview
8233
      FROM views vi
8234
      WHERE vi.view_id = viewid;
8235
 
5172 dpurdie 8236
     IF (IsBaseView IN ('Y', 'S'))
1373 dpurdie 8237
     THEN
8238
       -- Get Base view content
8239
       OPEN recordset FOR
8240
         SELECT   DECODE (rel.pkg_state,
8241
                      NULL, 0,
8242
                      rel.pkg_state
8243
                     ) AS pkg_state,
8244
                rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8245
                pv.pkg_version, pv.dlocked, pv.pv_description,
8246
                pv.build_type,
8247
                rel.operation
8248
            FROM environment_view rel, PACKAGES pkg, package_versions pv
8249
            WHERE pv.pkg_id = pkg.pkg_id
8250
             AND rel.pv_id = pv.pv_id
8251
             AND rel.view_id = viewid
8252
             AND rel.rtag_id = rtagid
8253
         ORDER BY UPPER (pkg.pkg_name);
8254
     ELSE
8255
       -- Get non base view content
8256
       OPEN recordset FOR
8257
         SELECT   DECODE (rel.pkg_state,
8258
                      NULL, 0,
8259
                      rel.pkg_state
8260
                     ) AS pkg_state,
8261
                rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8262
                pv.pkg_version, pv.dlocked, pv.pv_description,
8263
                pv.build_type,
8264
                rel.operation
8265
            FROM environment_view rel,
8266
                PACKAGES pkg,
8267
                package_versions pv,
8268
                view_def vd
8269
            WHERE pv.pkg_id = pkg.pkg_id
8270
             AND rel.pv_id = pv.pv_id
8271
             AND rel.rtag_id = rtagid
8272
             AND vd.view_id = viewid
8273
             AND vd.pkg_id = pv.pkg_id
8274
         ORDER BY UPPER (pkg.pkg_name);
8275
     END IF;
8276
   END;
8277
 
8278
/*-------------------------------------------------------------------------------------------------------*/
8279
   FUNCTION get_package_view (pvid IN NUMBER, rtagid IN NUMBER)
8280
     RETURN NUMBER
8281
   IS
8282
     envtab           NUMBER;
8283
     returnvalue      NUMBER;
8284
     return_not_found NUMBER := -1;
8285
   BEGIN
8286
     envtab := get_package_area (pvid, rtagid);
8287
 
8288
     IF envtab = 0
8289
     THEN
8290
       -- WORK IN PROGRESS --
8291
       returnvalue := pk_work_in_progress.get_package_view (pvid, rtagid);
8292
     ELSIF envtab = 1
8293
     THEN
8294
       -- PENDING --
8295
       returnvalue := pk_planned.get_package_view (pvid, rtagid);
8296
     ELSIF envtab = 2
8297
     THEN
8298
       -- RELEASED --
8299
       returnvalue := pk_release.get_package_view (pvid, rtagid);
8300
     ELSE
8301
       -- This may be a Patch not located anywhere but unlocked
8302
       returnvalue := return_not_found;
8303
     END IF;
8304
 
8305
     RETURN returnvalue;
8306
   END;
8307
 
8308
/*-------------------------------------------------------------------------------------------------------*/
5172 dpurdie 8309
  PROCEDURE make_release (
4585 dpurdie 8310
     pvid          IN   NUMBER,                         -- NEW  PKG pvid
8311
     rtagid        IN   NUMBER,                         -- Release Id
8312
     userid        IN   NUMBER                          -- User performing Release
8313
   )
1373 dpurdie 8314
   IS
8315
     viewid        NUMBER;
8316
     envtab        NUMBER;
8317
     ispatch       CHAR (1) := NULL;
8318
     buildtype     CHAR (1) := NULL;
8319
   BEGIN
8320
     -- Check if package is patch
8321
     SELECT pv.is_patch, pv.build_type
8322
      INTO ispatch, buildtype
8323
      FROM package_versions pv
8324
      WHERE pv.pv_id = pvid;
8325
 
8326
     -- Get ViewId
8327
     viewid := get_package_view (pvid, rtagid);
8328
     -- Remove from current area
8329
     envtab := pk_environment.get_package_area (pvid, rtagid);
8330
 
8331
     -- Make sure that package was in work-in-progress or pending before makeing it release
8332
     -- Exclude patches, ripple builds
8333
     IF (envtab < 0)
8334
     THEN
8335
       -- Not found in work-in-progress or pending
8336
       IF (ispatch IS NULL) AND (buildtype = 'M')
8337
       THEN
8338
         raise_application_error (-20000,
8339
                            'This package cannot be released here.'
8340
                           );
8341
       END IF;
8342
     END IF;
8343
 
8344
     -- Log
5172 dpurdie 8345
     --log_action (pvid, 'action', userid, 'Start of Make Package Release...');
1373 dpurdie 8346
 
8347
     IF envtab = 0
8348
     THEN
8349
       -- WORK IN PROGRESS --
8350
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
8351
     ELSIF envtab = 1
8352
     THEN
8353
       -- PENDING --
8354
       pk_planned.remove_package (pvid, rtagid, userid);
8355
     END IF;
8356
 
8357
     -- Change package state
4585 dpurdie 8358
     -- Set dlocked state to mark the package a 'Released and Locked'
1373 dpurdie 8359
     pk_package.change_state (pvid, 'Y', userid);
8360
 
8361
     -- Make sure it is valid BASE VIEW
8362
     IF viewid < 1
8363
     THEN
8364
       viewid := 7;                     -- This is default base view
8365
     END IF;
8366
 
8367
     IF (ispatch IS NULL)
8368
     THEN
4585 dpurdie 8369
       -- Add (Replace) package to new area
1373 dpurdie 8370
       pk_release.add_package (pvid, viewid, rtagid, userid);
8371
     END IF;
8372
 
8373
     -- Now do post Release Actions
8374
     pk_release.run_post_actions (pvid, rtagid);
8375
 
8376
     -- The release has changed and there may now be invalid rtag_id/pv_id combinations in
8377
     -- the DO_NOT_RIPPLE and ADVISORY_RIPPLE Tables so perform a clean-up operation upon them.
8378
     clean_do_not_ripple(rtagid);
8379
     clean_advisory_ripple(rtagid);
8380
 
8381
     -- Log
5172 dpurdie 8382
     --log_action (pvid, 'action', userid, 'End of Make Package Release...');
1373 dpurdie 8383
   END;
8384
 
8385
/*-------------------------------------------------------------------------------------------------------*/
4585 dpurdie 8386
  --  Release a specified package into a specified release
8387
  --
8388
  --  Similar to 'make_release', but it attempts to handle the case where a package-version
8389
  --  is being replaced with one with a different package-suffix, but it doesn't
8390
  --  handle all the cases well. 
8391
  --
8392
  --  The current build system cannot do this automatically - yet
8393
  --
8394
  --
1373 dpurdie 8395
   PROCEDURE auto_make_release (
4585 dpurdie 8396
     pvid          IN   NUMBER,                         -- NEW  PKG pvid
8397
     rtagid        IN   NUMBER,                         -- Release Id
8398
     userid        IN   NUMBER,                         -- User performing Release
8399
     vext          IN   package_versions.v_ext%TYPE,    -- Package Extension for original pkg
8400
     ssv_ext       IN   package_versions.v_ext%TYPE,    -- Package Extension for new package
8401
     clonefrompvid IN   NUMBER                          -- PVID of Original
1373 dpurdie 8402
   )
8403
   IS
8404
     viewid        NUMBER;
8405
     envtab        NUMBER;
4585 dpurdie 8406
 
8407
     clone_removal NUMBER := 0;
8408
     clone_viewid  NUMBER := -1;
8409
     clone_envtab  NUMBER := -1;
8410
 
1373 dpurdie 8411
     ispatch       CHAR (1) := NULL;
4585 dpurdie 8412
     buildtype     CHAR (1) := NULL;
8413
 
1373 dpurdie 8414
   BEGIN
8415
     -- Check if package is patch
8416
     SELECT pv.is_patch, pv.build_type
8417
      INTO ispatch, buildtype
8418
      FROM package_versions pv
8419
      WHERE pv.pv_id = pvid;
8420
 
4585 dpurdie 8421
     --
8422
     -- Determine the viewid and environment for the new package
8423
     --
8424
     viewid := get_package_view (pvid, rtagid);
8425
     envtab := pk_environment.get_package_area (pvid, rtagid);
8426
 
8427
     --
8428
     -- If changing pkgExt, then we need to delete the orig package, not just replace it
8429
     --
8430
     IF (clonefrompvid is NOT NULL) AND (vext <> ssv_ext)
1373 dpurdie 8431
     THEN
4585 dpurdie 8432
        clone_removal := 1;
8433
        clone_viewid := get_package_view (clonefrompvid, rtagid);
8434
        clone_envtab := pk_environment.get_package_area (clonefrompvid, rtagid);
1373 dpurdie 8435
     END IF;
8436
 
4585 dpurdie 8437
     --
1373 dpurdie 8438
     -- Make sure that package was in work-in-progress or pending before makeing it release
8439
     -- Exclude patches, ripple builds
4585 dpurdie 8440
     --
1373 dpurdie 8441
     IF (envtab < 0)
8442
     THEN
8443
       -- Not found in work-in-progress or pending
8444
       IF (ispatch IS NULL) AND (buildtype = 'M')
8445
       THEN
8446
         raise_application_error (-20000,
8447
                            'This package cannot be released here.'
8448
                           );
8449
       END IF;
8450
     END IF;
8451
 
8452
     -- Log
5172 dpurdie 8453
     --log_action (pvid, 'action', userid, 'Start of Make Package Release...');
1373 dpurdie 8454
 
4585 dpurdie 8455
     --
8456
     -- Remove the package from the WIP or PENDING tab
8457
     -- Do NOT remove from the release area. 
8458
     --     This will be handled later with a process that
8459
     --     will do a 'replace' so that meta data is not lost
8460
     --
8461
    IF envtab = 0
8462
    THEN
8463
        -- WORK IN PROGRESS --
8464
        pk_work_in_progress.remove_package (pvid, rtagid, userid);
8465
    ELSIF envtab = 1
8466
    THEN
8467
        -- PENDING --
8468
        pk_planned.remove_package (pvid, rtagid, userid);
8469
    END IF;
8470
 
8471
    --
8472
    --  If we are changing the pkgExt, then fully remove the base package
8473
    --  This includes removing it from the 'release' area.
8474
    --
8475
    IF clone_removal = 1
8476
    THEN
8477
        IF clone_envtab = 0
8478
        THEN
8479
            -- WORK IN PROGRESS --
8480
            pk_work_in_progress.remove_package (clonefrompvid, rtagid, userid);
8481
        ELSIF clone_envtab = 1
8482
        THEN
8483
            -- PENDING --
8484
            pk_planned.remove_package (clonefrompvid, rtagid, userid);
8485
        ELSIF clone_envtab = 2
8486
        THEN
8487
            -- RELEASED --
8488
            pk_release.remove_package (clonefrompvid, rtagid, userid);
1373 dpurdie 8489
       END IF;
4585 dpurdie 8490
    END IF;
1373 dpurdie 8491
 
8492
     -- Change package state
4585 dpurdie 8493
     -- Set dlocked state to mark the package a 'Released and Locked'
1373 dpurdie 8494
     pk_package.change_state (pvid, 'Y', userid);
8495
 
8496
     -- Make sure it is valid BASE VIEW
4585 dpurdie 8497
     -- If its not specified, give it a default (7) view
1373 dpurdie 8498
     IF viewid < 1
8499
     THEN
4585 dpurdie 8500
        IF clone_viewid >= 0
8501
        THEN
8502
            viewid := clone_viewid; 
8503
        ELSE
8504
            viewid := 7;
8505
        END IF;
1373 dpurdie 8506
     END IF;
8507
 
8508
     IF (ispatch IS NULL)
8509
     THEN
4585 dpurdie 8510
       -- Add (Replace) package to new area
1373 dpurdie 8511
       pk_release.add_package (pvid, viewid, rtagid, userid);
8512
     END IF;
8513
 
8514
     -- Now do post Release Actions
8515
     pk_release.run_post_actions (pvid, rtagid);
8516
     -- Now update the Dash_Board Table (DEPRECATED)
8517
     pk_rmapi.update_dash_board (rtagid);
8518
 
8519
     -- The release has changed and there may now be invalid rtag_id/pv_id combinations in
8520
     -- the DO_NOT_RIPPLE and ADVISORY_RIPPLE Tables so perform a clean-up operation upon them.
8521
     clean_do_not_ripple(rtagid);
8522
     clean_advisory_ripple(rtagid);
8523
 
8524
     -- Log
5172 dpurdie 8525
     --log_action (pvid, 'action', userid, 'End of Make Package Release...');
1373 dpurdie 8526
   END;
8527
 
5172 dpurdie 8528
 
1373 dpurdie 8529
/*-------------------------------------------------------------------------------------------------------*/
8530
   PROCEDURE make_unrelease (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
8531
   IS
8532
     viewid   NUMBER;
8533
     envtab   NUMBER;
8534
   BEGIN
8535
     -- Get ViewId
8536
     --ViewId := PK_RELEASE.GET_PACKAGE_VIEW ( PvId, RtagId );
8537
     viewid := get_package_view (pvid, rtagid);
8538
     -- Remove from current area
8539
     envtab := pk_environment.get_package_area (pvid, rtagid);
8540
     -- Log
5172 dpurdie 8541
     -- log_action (pvid, 'action', userid, 'Start of Make Package UnRelease...' );
1373 dpurdie 8542
 
8543
     IF envtab = 2
8544
     THEN
8545
       -- RELEASE AREA --
8546
       pk_release.remove_package (pvid, rtagid, userid);
8547
     ELSIF envtab = 1
8548
     THEN
8549
       -- PENDING --
8550
       pk_planned.remove_package (pvid, rtagid, userid);
8551
     END IF;
8552
 
8553
     -- Change package state
8554
     pk_package.change_state (pvid, 'N', userid);
8555
 
8556
     -- Make sure it is valid BASE VIEW
8557
     IF viewid < 1
8558
     THEN
8559
       viewid := 7;                     -- This is default base view
8560
     END IF;
8561
 
8562
     -- Add package to new area
8563
     pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
8564
     -- Now do post Release Actions
8565
     pk_release.run_post_actions (pvid, rtagid);
5172 dpurdie 8566
 
1373 dpurdie 8567
     -- Log
5172 dpurdie 8568
     -- log_action (pvid, 'action', userid, 'End of Make Package UnRelease...');
1373 dpurdie 8569
   END;
8570
 
8571
/*-------------------------------------------------------------------------------------------------------*/
8572
   PROCEDURE make_pending (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
8573
   IS
8574
     viewid     NUMBER;
8575
     ispatch    CHAR (1) := NULL;
8576
     buildtype  CHAR (1) := NULL;
8577
   BEGIN
8578
     -- Check if package is patch
8579
     SELECT pv.is_patch, pv.build_type
8580
      INTO ispatch, buildtype
8581
      FROM package_versions pv
8582
      WHERE pv.pv_id = pvid;
8583
 
8584
     -- Get ViewId
8585
     viewid := get_package_view (pvid, rtagid);
8586
     --ViewId := PK_WORK_IN_PROGRESS.GET_PACKAGE_VIEW ( PvId, RtagId );
8587
 
8588
     -- Log
5172 dpurdie 8589
     --log_action (pvid, 'action', userid, 'Start of Make Package Pending...');
1373 dpurdie 8590
 
8591
     IF (ispatch IS NULL)
8592
     THEN
8593
       -- Remove from current area
8594
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
8595
       -- Change package state
8596
       pk_package.change_state (pvid, 'P', userid);
8597
       -- Add package to new area
8598
       pk_planned.add_package (pvid, viewid, rtagid, userid);
8599
     END IF;
8600
 
8601
     -- Log
5172 dpurdie 8602
     --log_action (pvid, 'action', userid, 'End of Make Package Pending...');
1373 dpurdie 8603
   END;
8604
 
8605
/*-------------------------------------------------------------------------------------------------------*/
8606
   PROCEDURE make_approved (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
8607
   IS
8608
   BEGIN
8609
     -- Log
5172 dpurdie 8610
     -- log_action (pvid, 'action', userid, 'Start of Package Pending Approval...' );
1373 dpurdie 8611
     -- Change package state
8612
     pk_package.change_state (pvid, 'A', userid);
5172 dpurdie 8613
 
8614
     -- Flag Release has changed for the purposes of building
8615
     PK_RELEASE.SET_RELEASE_MODIFIED(rtagid);
8616
 
1373 dpurdie 8617
     -- Log
5172 dpurdie 8618
     -- log_action (pvid, 'action', userid, 'End of Package Pending Approval...');
1373 dpurdie 8619
   END;
8620
 
8621
/*-------------------------------------------------------------------------------------------------------*/
8622
   PROCEDURE make_reject (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
8623
   IS
8624
     viewid   NUMBER;
8625
     operation CHAR;
8626
   BEGIN
8627
     -- Get ViewId
8628
     viewid := get_package_view (pvid, rtagid);
8629
     -- ViewId := PK_PLANNED.GET_PACKAGE_VIEW ( PvId, RtagId );
8630
 
8631
     -- DEVI-45275
8632
     -- If the package version is an official version that is to be rejected from a merge operation
8633
     -- then find out in order to prevent it being added back to work-in-progress table . This will
8634
     -- be denoted by the operation field in the planned table being A or S
8635
     operation := ' ';
8636
     SELECT
8637
     (CASE WHEN pl.operation IS NOT NULL THEN pl.operation ELSE ' ' END) INTO operation
8638
     FROM planned pl
8639
     WHERE pl.PV_ID = pvid
8640
     AND pl.RTAG_ID = rtagid;
8641
 
8642
     -- Log
5172 dpurdie 8643
     -- log_action (pvid, 'action', userid, 'Start of Reject Package...');
8644
 
1373 dpurdie 8645
     -- Remove from current area
8646
     pk_planned.remove_package (pvid, rtagid, userid);
8647
 
8648
     -- DEVI-45275 - Prevent merge candidate from being added back to work-in-progress table .
8649
     IF operation <> 'A' AND operation <> 'S'
8650
     THEN
8651
     -- Change package state
8652
     pk_package.change_state (pvid, 'R', userid);
8653
     -- Add package to new area
8654
     pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
8655
     ELSE
8656
      log_action (pvid, 'action', userid, 'Rejected Package Merge');
8657
     END IF;
5172 dpurdie 8658
 
1373 dpurdie 8659
     -- Log
5172 dpurdie 8660
     -- log_action (pvid, 'action', userid, 'End of Reject Package...');
1373 dpurdie 8661
   END;
8662
 
8663
/*-------------------------------------------------------------------------------------------------------*/
8664
   PROCEDURE change_package_view (
8665
     pvid       IN   NUMBER,
8666
     rtagid     IN   NUMBER,
8667
     newviewid  IN   NUMBER
8668
   )
8669
   IS
8670
     envtab   NUMBER;
8671
   BEGIN
8672
     envtab := pk_environment.get_package_area (pvid, rtagid);
8673
 
8674
     IF envtab = 0
8675
     THEN
8676
       -- WORK IN PROGRESS --
8677
       pk_work_in_progress.change_package_view (pvid, rtagid, newviewid);
8678
     ELSIF envtab = 1
8679
     THEN
8680
       -- PENDING --
8681
       pk_planned.change_package_view (pvid, rtagid, newviewid);
8682
     ELSIF envtab = 2
8683
     THEN
8684
       -- RELEASED --
8685
       pk_release.change_package_view (pvid, rtagid, newviewid);
8686
     END IF;
8687
   END;
8688
 
8689
/*-------------------------------------------------------------------------------------------------------*/
8690
   PROCEDURE find_package (
8691
     skeyword     IN      VARCHAR2,
8692
     nrtagid      IN      NUMBER,
8693
     nsearcharea  IN      NUMBER,
8694
     recordset    OUT     typecur
8695
   )
8696
   IS
8697
   BEGIN
8698
     IF nsearcharea = 0
8699
     THEN
8700
       /* Search Work In Progress */
8701
       OPEN recordset FOR
8702
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
8703
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
8704
                pv.modified_stamp, usr.full_name, usr.user_email
8705
           FROM views vi,
8706
                work_in_progress rc,
8707
                PACKAGES pkg,
8708
                package_versions pv,
8709
                users usr
8710
          WHERE rc.view_id = vi.view_id
8711
            AND rc.pv_id = pv.pv_id
8712
            AND pkg.pkg_id = pv.pkg_id
8713
            AND pv.modifier_id = usr.user_id
8714
            AND rc.rtag_id = nrtagid
8715
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
8716
       ORDER BY UPPER (pkg.pkg_name);
8717
     ELSIF nsearcharea = 1
8718
     THEN
8719
       /* Search Pending */
8720
       OPEN recordset FOR
8721
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
8722
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
8723
                pv.modified_stamp, usr.full_name, usr.user_email
8724
           FROM views vi,
8725
                planned rc,
8726
                PACKAGES pkg,
8727
                package_versions pv,
8728
                users usr
8729
          WHERE rc.view_id = vi.view_id
8730
            AND rc.pv_id = pv.pv_id
8731
            AND pkg.pkg_id = pv.pkg_id
8732
            AND pv.modifier_id = usr.user_id
8733
            AND rc.rtag_id = nrtagid
8734
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
8735
       ORDER BY UPPER (pkg.pkg_name);
8736
     ELSIF nsearcharea = 2
8737
     THEN
8738
       /* Search Released */
8739
       OPEN recordset FOR
8740
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
8741
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
8742
                pv.modified_stamp, usr.full_name, usr.user_email
8743
           FROM views vi,
8744
                release_content rc,
8745
                PACKAGES pkg,
8746
                package_versions pv,
8747
                users usr
8748
          WHERE rc.base_view_id = vi.view_id
8749
            AND rc.pv_id = pv.pv_id
8750
            AND pkg.pkg_id = pv.pkg_id
8751
            AND pv.modifier_id = usr.user_id
8752
            AND rc.rtag_id = nrtagid
8753
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
8754
         ORDER BY UPPER (pkg.pkg_name);
8755
     ELSIF nsearcharea = 3
8756
     THEN
8757
       /* Search ALL */
8758
       OPEN recordset FOR
8759
         SELECT rc.env_area, vi.view_name, pv.dlocked, pkg.pkg_name,
8760
                pv.pv_id, pv.pkg_version, pv.comments,
8761
                pv.modified_stamp, usr.full_name, usr.user_email
8762
           FROM views vi,
8763
                environment_view rc,
8764
                PACKAGES pkg,
8765
                package_versions pv,
8766
                users usr
8767
          WHERE rc.view_id = vi.view_id
8768
            AND rc.pv_id = pv.pv_id
8769
            AND pkg.pkg_id = pv.pkg_id
8770
            AND pv.modifier_id = usr.user_id
8771
            AND rc.rtag_id = nrtagid
8772
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
8773
         ORDER BY UPPER (pkg.pkg_name);
8774
     END IF;
8775
   END;
8776
 
8777
/*-------------------------------------------------------------------------------------------------------*/
8778
   PROCEDURE find_file (
8779
     skeyword     IN      VARCHAR2,
8780
     nrtagid      IN      NUMBER,
8781
     nsearcharea  IN      NUMBER,
8782
     npagesize    IN      NUMBER,
8783
     recordset    OUT     typecur
8784
   )
8785
   IS
8786
   BEGIN
8787
     IF nsearcharea = 0
8788
     THEN
8789
       /* Search Work In Progress */
8790
       OPEN recordset FOR
8791
         SELECT   qry.*
8792
            FROM (
8793
                 /* File search on Packages */
8794
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8795
                        pv.pv_id, pv.pkg_version, art.crc_cksum
8796
                   FROM work_in_progress rc,
8797
                        PACKAGES pkg,
8798
                        package_versions pv,
8799
                        release_components art
8800
                  WHERE rc.pv_id = art.pv_id
8801
                    AND pv.pkg_id = pkg.pkg_id
8802
                    AND rc.pv_id = pv.pv_id
8803
                    AND rc.rtag_id = nrtagid
8804
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
8805
                 UNION ALL
8806
                 /* File search on Products */
8807
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8808
                        pv.pv_id, pv.pkg_version, art.crc_cksum
8809
                   FROM work_in_progress rc,
8810
                        PACKAGES pkg,
8811
                        package_versions pv,
8812
                        product_components art
8813
                  WHERE rc.pv_id = art.pv_id
8814
                    AND pv.pkg_id = pkg.pkg_id
8815
                    AND rc.pv_id = pv.pv_id
8816
                    AND rc.rtag_id = nrtagid
8817
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
8818
            WHERE ROWNUM <= npagesize
8819
         ORDER BY UPPER (qry.pkg_name);
8820
     ELSIF nsearcharea = 1
8821
     THEN
8822
       /* Search Pending */
8823
       OPEN recordset FOR
8824
         SELECT   qry.*
8825
            FROM (
8826
                 /* File search on Packages */
8827
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8828
                        pv.pv_id, pv.pkg_version, art.crc_cksum
8829
                   FROM planned rc,
8830
                        PACKAGES pkg,
8831
                        package_versions pv,
8832
                        release_components art
8833
                  WHERE rc.pv_id = art.pv_id
8834
                    AND pv.pkg_id = pkg.pkg_id
8835
                    AND rc.pv_id = pv.pv_id
8836
                    AND rc.rtag_id = nrtagid
8837
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
8838
                 UNION ALL
8839
                 /* File search on Products */
8840
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8841
                        pv.pv_id, pv.pkg_version, art.crc_cksum
8842
                   FROM planned rc,
8843
                        PACKAGES pkg,
8844
                        package_versions pv,
8845
                        product_components art
8846
                  WHERE rc.pv_id = art.pv_id
8847
                    AND pv.pkg_id = pkg.pkg_id
8848
                    AND rc.pv_id = pv.pv_id
8849
                    AND rc.rtag_id = nrtagid
8850
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
8851
            WHERE ROWNUM <= npagesize
8852
         ORDER BY UPPER (qry.pkg_name);
8853
     ELSIF nsearcharea = 2
8854
     THEN
8855
       /* Search Released */
8856
       OPEN recordset FOR
8857
         SELECT   qry.*
8858
            FROM (
8859
                 /* File search on Packages */
8860
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8861
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
8862
                        NULL AS patch_id
8863
                   FROM release_content rc,
8864
                        PACKAGES pkg,
8865
                        package_versions pv,
8866
                        release_components art
8867
                  WHERE rc.pv_id = art.pv_id
8868
                    AND pv.pkg_id = pkg.pkg_id
8869
                    AND rc.pv_id = pv.pv_id
8870
                    AND rc.rtag_id = nrtagid
8871
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
8872
                 UNION ALL
8873
                 /* File search on Products */
8874
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8875
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
8876
                        NULL AS patch_id
8877
                   FROM release_content rc,
8878
                        PACKAGES pkg,
8879
                        package_versions pv,
8880
                        product_components art
8881
                  WHERE rc.pv_id = art.pv_id
8882
                    AND pv.pkg_id = pkg.pkg_id
8883
                    AND rc.pv_id = pv.pv_id
8884
                    AND rc.rtag_id = nrtagid
8885
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
8886
                 UNION ALL
8887
                 /* File search on Patches */
8888
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8889
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
8890
                        DECODE (art.file_path,
8891
                                NULL, pp.patch_id,
8892
                                NULL
8893
                                ) AS patch_id
8894
                   FROM release_content rc,
8895
                        PACKAGES pkg,
8896
                        package_versions pv,
8897
                        release_components art,
8898
                        package_patches pp
8899
                  WHERE pv.pv_id = pp.pv_id
8900
                    AND pv.pkg_id = pkg.pkg_id
8901
                    AND rc.rtag_id = nrtagid
8902
                    AND art.pv_id = pp.patch_id
8903
                    AND rc.pv_id = pp.pv_id
8904
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
8905
            WHERE ROWNUM <= npagesize
8906
         ORDER BY UPPER (qry.pkg_name);
8907
     ELSIF nsearcharea = 3
8908
     THEN
8909
       /* Search ALL */
8910
       OPEN recordset FOR
8911
         SELECT   qry.*
8912
            FROM (
8913
                 /* File search on Packages */
8914
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8915
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
8916
                        NULL AS patch_id
8917
                   FROM environment_view rc,
8918
                        PACKAGES pkg,
8919
                        package_versions pv,
8920
                        release_components art
8921
                  WHERE rc.pv_id = art.pv_id
8922
                    AND pv.pkg_id = pkg.pkg_id
8923
                    AND rc.pv_id = pv.pv_id
8924
                    AND rc.rtag_id = nrtagid
8925
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
8926
                 UNION ALL
8927
                 /* File search on Products */
8928
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8929
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
8930
                        NULL AS patch_id
8931
                   FROM environment_view rc,
8932
                        PACKAGES pkg,
8933
                        package_versions pv,
8934
                        product_components art
8935
                  WHERE rc.pv_id = art.pv_id
8936
                    AND pv.pkg_id = pkg.pkg_id
8937
                    AND rc.pv_id = pv.pv_id
8938
                    AND rc.rtag_id = nrtagid
8939
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
8940
                 UNION ALL
8941
                 /* File search on Patches */
8942
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8943
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
8944
                        DECODE (art.file_path,
8945
                                NULL, pp.patch_id,
8946
                                NULL
8947
                               ) AS patch_id
8948
                   FROM release_content rc,
8949
                        PACKAGES pkg,
8950
                        package_versions pv,
8951
                        release_components art,
8952
                        package_patches pp
8953
                  WHERE pv.pv_id = pp.pv_id
8954
                    AND pv.pkg_id = pkg.pkg_id
8955
                    AND rc.rtag_id = nrtagid
8956
                    AND art.pv_id = pp.patch_id
8957
                    AND rc.pv_id = pp.pv_id
8958
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
8959
            WHERE ROWNUM <= npagesize
8960
         ORDER BY UPPER (qry.pkg_name);
8961
     END IF;
8962
   END;
8963
 
8964
/*-------------------------------------------------------------------------------------------------------*/
8965
   PROCEDURE get_prodrelease_items (
8966
     rtagid           IN      NUMBER,
8967
     ntruerecordcount OUT     NUMBER,
8968
     recordset        OUT     typecur
8969
   )
8970
   IS
8971
   BEGIN
8972
     -- Get true record count n the number of integration products
8973
     SELECT COUNT (rc.pv_id)
8974
      INTO ntruerecordcount
8975
      FROM release_content rc
8976
      WHERE rc.rtag_id = rtagid;
8977
 
8978
     OPEN recordset FOR
8979
       SELECT vi.view_id, vi.view_name, rel.pkg_state,   --rel.pkg_state,
8980
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8981
              pv.pkg_version, pv.dlocked, pv.pv_description
8982
         FROM release_content rel,
8983
              PACKAGES pkg,
8984
              package_versions pv,
8985
              views vi
8986
        WHERE pv.pkg_id = pkg.pkg_id
8987
          AND rel.pv_id = pv.pv_id
8988
          AND rel.base_view_id = vi.view_id
8989
          AND pv.is_deployable = 'Y'
8990
          AND rtag_id = rtagid
8991
          AND pv.pv_id NOT IN (SELECT DISTINCT prod_id
8992
                                 FROM deployment_manager.os_contents)
8993
          AND rel.product_state IS NULL
8994
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
8995
   END;
8996
 
8997
/*-------------------------------------------------------------------------------------------------------*/
8998
   PROCEDURE get_integration_items (
8999
     rtagid           IN      NUMBER,
9000
     ntruerecordcount OUT     NUMBER,
9001
     recordset        OUT     typecur
9002
   )
9003
   IS
9004
   BEGIN
9005
     -- Get true record count n the number of integration products
9006
     SELECT COUNT (rc.pv_id)
9007
      INTO ntruerecordcount
9008
      FROM release_content rc
9009
      WHERE rc.rtag_id = rtagid AND rc.product_state = 1;
9010
 
9011
     OPEN recordset FOR
9012
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9013
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9014
              pv.pkg_version, pv.dlocked, pv.pv_description
9015
         FROM release_content rel,
9016
              PACKAGES pkg,
9017
              package_versions pv,
9018
              views vi
9019
        WHERE pv.pkg_id = pkg.pkg_id
9020
          AND rel.pv_id = pv.pv_id
9021
          AND rel.base_view_id = vi.view_id
9022
          AND pv.is_deployable = 'Y'
9023
          AND rtag_id = rtagid
9024
          AND rel.product_state IN (1, 5)
9025
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9026
   END;
9027
 
9028
/*-------------------------------------------------------------------------------------------------------*/
9029
   PROCEDURE get_test_items (
9030
     rtagid           IN      NUMBER,
9031
     ntruerecordcount OUT     NUMBER,
9032
     recordset        OUT     typecur
9033
   )
9034
   IS
9035
   BEGIN
9036
     -- Get true record count n the number of test products
9037
     SELECT COUNT (rc.pv_id)
9038
      INTO ntruerecordcount
9039
      FROM release_content rc
9040
      WHERE rc.rtag_id = rtagid AND rc.product_state = 2;
9041
 
9042
     OPEN recordset FOR
9043
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9044
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9045
              pv.pkg_version, pv.dlocked, pv.pv_description
9046
         FROM release_content rel,
9047
              PACKAGES pkg,
9048
              package_versions pv,
9049
              views vi
9050
        WHERE pv.pkg_id = pkg.pkg_id
9051
          AND rel.pv_id = pv.pv_id
9052
          AND rel.base_view_id = vi.view_id
9053
          AND pv.is_deployable = 'Y'
9054
          AND rtag_id = rtagid
9055
          AND rel.product_state = 2
9056
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9057
   END;
9058
 
9059
/*-------------------------------------------------------------------------------------------------------*/
9060
   PROCEDURE get_deploy_items (
9061
     rtagid           IN      NUMBER,
9062
     ntruerecordcount OUT     NUMBER,
9063
     recordset        OUT     typecur
9064
   )
9065
   IS
9066
   BEGIN
9067
     -- Get true record count n the number of deploy products
9068
     SELECT COUNT (rc.pv_id)
9069
      INTO ntruerecordcount
9070
      FROM release_content rc
9071
      WHERE rc.rtag_id = rtagid AND rc.product_state = 3;
9072
 
9073
     OPEN recordset FOR
9074
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9075
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9076
              pv.pkg_version, pv.dlocked, pv.pv_description
9077
         FROM release_content rel,
9078
              PACKAGES pkg,
9079
              package_versions pv,
9080
              views vi
9081
        WHERE pv.pkg_id = pkg.pkg_id
9082
          AND rel.pv_id = pv.pv_id
9083
          AND rel.base_view_id = vi.view_id
9084
          AND pv.is_deployable = 'Y'
9085
          AND rtag_id = rtagid
9086
          AND rel.product_state IN (3, 5)
9087
          AND pv.pv_id NOT IN (SELECT DISTINCT prod_id
9088
                                 FROM deployment_manager.os_contents)
9089
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9090
   END;
9091
 
9092
/*-------------------------------------------------------------------------------------------------------*/
9093
   PROCEDURE get_reject_items (
9094
     rtagid           IN      NUMBER,
9095
     ntruerecordcount OUT     NUMBER,
9096
     recordset        OUT     typecur
9097
   )
9098
   IS
9099
   BEGIN
9100
     -- Get true record count n the number of reject products
9101
     SELECT COUNT (rc.pv_id)
9102
       INTO ntruerecordcount
9103
       FROM release_content rc
9104
      WHERE rc.rtag_id = rtagid AND rc.product_state = 4;
9105
 
9106
     OPEN recordset FOR
9107
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9108
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9109
              pv.pkg_version, pv.dlocked, pv.pv_description
9110
         FROM release_content rel,
9111
              PACKAGES pkg,
9112
              package_versions pv,
9113
              views vi
9114
        WHERE pv.pkg_id = pkg.pkg_id
9115
          AND rel.pv_id = pv.pv_id
9116
          AND rel.base_view_id = vi.view_id
9117
          AND pv.is_deployable = 'Y'
9118
          AND rtag_id = rtagid
9119
          AND rel.product_state = 4
9120
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9121
   END;
9122
/*-------------------------------------------------------------------------------------------------------*/
9123
   -- DEVI-45275 - this procedure performs the merge of an existing package version in the planned table
9124
   -- to the release_content table.
9125
 
9126
  PROCEDURE approve_merge (
9127
   PvId    IN NUMBER,
9128
   RtagId  IN NUMBER,
9129
   UserId  IN NUMBER
9130
  )
9131
  IS
9132
   viewid        NUMBER;
9133
   envtab        NUMBER;
9134
   oper         CHAR;
9135
  BEGIN
9136
      -- Get ViewId
9137
     viewid := get_package_view (pvid, rtagid);
9138
 
9139
     -- Get the view tab
9140
     envtab := pk_environment.get_package_area (pvid, rtagid);
9141
 
9142
     -- Make sure that package was in pending before merging it to released
9143
     IF (envtab <> 1)
9144
     THEN
9145
       -- Not found in pending
9146
       raise_application_error (-20000,
9147
                          'This package cannot be released here.'
9148
                         );
9149
     END IF;
9150
 
9151
     -- Log
5172 dpurdie 9152
     --log_action (pvid, 'action', userid, 'Start of Package Merge...');
1373 dpurdie 9153
 
9154
     -- Get the planned operation type A=Add, S=Subtract
9155
     SELECT ev.operation INTO oper
9156
       FROM environment_view ev
9157
      WHERE ev.rtag_id = RtagId
9158
        AND ev.pv_id = PvId
9159
        AND (ev.operation = 'A' OR ev.operation = 'S');
9160
 
9161
     -- Remove from Pending
9162
     pk_planned.remove_package (PvId, RtagId, UserId);
9163
 
9164
     -- Either add to the release, or remove from the release as the operation commands
9165
     IF oper = 'A'
9166
     THEN
9167
       pk_release.add_package(PvId, viewId, RtagId, UserId);
9168
 
9169
     ELSIF oper = 'S'
9170
     THEN
9171
       pk_release.remove_package(PvId, RtagId, UserId);
9172
 
9173
       -- Delete old package's pegging info
9174
       DELETE FROM PEGGED_VERSIONS pegv WHERE pegv.RTAG_ID = RtagId AND pegv.PV_ID = PvId;
9175
 
9176
       -- Delete old package's advisory ripple info
9177
       DELETE FROM ADVISORY_RIPPLE avr WHERE avr.RTAG_ID = RtagId AND avr.PV_ID = PvId;
9178
     END IF;
9179
 
9180
     touch_release(RtagId);
9181
 
9182
     -- Log
5172 dpurdie 9183
     --log_action (pvid, 'action', userid, 'End of Package Merge...');
1373 dpurdie 9184
  END;
9185
/*-------------------------------------------------------------------------------------------------------*/
9186
END pk_environment;
4040 dpurdie 9187
 
1374 dpurdie 9188
/
4040 dpurdie 9189
--------------------------------------------------------
9190
--  DDL for Package Body PK_LICENCING
9191
--------------------------------------------------------
9192
 
5172 dpurdie 9193
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_LICENCING" IS
1373 dpurdie 9194
 
9195
/*
9196
------------------------------
3959 dpurdie 9197
||  Last Modified:  G.Huddy
9198
||  Modified Date:  19/Aug/2008
1373 dpurdie 9199
||  Body Version:   1.0
9200
------------------------------
9201
*/
9202
 
3959 dpurdie 9203
   PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) IS
9204
   BEGIN
9205
      IF IS_LICENCED(PvId, licenceId) = 0 THEN
9206
         -- Add entry to licencing table
9207
         INSERT INTO licencing (pv_id, licence)
9208
         VALUES (PvId, licenceId);
1373 dpurdie 9209
 
3959 dpurdie 9210
         -- log action
9211
         -- TODO
9212
      END IF;
1373 dpurdie 9213
 
3959 dpurdie 9214
   END;
1373 dpurdie 9215
 
9216
/*-------------------------------------------------------------------------------------------------------*/
9217
 
3959 dpurdie 9218
   PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) IS
9219
   BEGIN
9220
      IF NOT IS_LICENCED(PvId, licenceId) = 0 THEN
9221
         -- Delete entry from licencing table
9222
         DELETE FROM licencing
9223
         WHERE pv_id = PvId
9224
         AND licence = licenceId;
1373 dpurdie 9225
 
3959 dpurdie 9226
         -- log action
9227
         -- TODO
9228
      END IF;
9229
   END;
1373 dpurdie 9230
 
9231
/*-------------------------------------------------------------------------------------------------------*/
9232
 
3959 dpurdie 9233
   PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 9234
 
3959 dpurdie 9235
      CURSOR licencing_cur
9236
      IS
9237
         SELECT *
9238
         FROM licencing
9239
         WHERE pv_id = fromPvId;
1373 dpurdie 9240
 
3959 dpurdie 9241
      licencing_rec licencing_cur%ROWTYPE;
1373 dpurdie 9242
 
9243
   BEGIN
3959 dpurdie 9244
      -- For each licence association that the Last PV_ID had, create a similar
9245
      -- arrangement for the new PV_ID
9246
      -- NOTE that any additional licencing associations the new PV_ID has that the old one
9247
      -- does not have, are retained. The assumption is that the user has made those and so we do not
9248
      -- have any right to destroy them without asking them.
9249
      OPEN licencing_cur;
1373 dpurdie 9250
 
3959 dpurdie 9251
      FETCH licencing_cur
9252
      INTO licencing_rec;
1373 dpurdie 9253
 
3959 dpurdie 9254
      WHILE licencing_cur%FOUND
1373 dpurdie 9255
      LOOP
3959 dpurdie 9256
         ADD_LICENCE ( toPvId, licencing_rec.licence, UserId );
1373 dpurdie 9257
 
3959 dpurdie 9258
         FETCH licencing_cur
9259
         INTO licencing_rec;
1373 dpurdie 9260
      END LOOP;
9261
   END;
9262
 
9263
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 9264
 
9265
   FUNCTION IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER IS
9266
      found NUMBER;
1373 dpurdie 9267
   BEGIN
9268
 
3959 dpurdie 9269
      SELECT COUNT(*) INTO found
9270
      FROM licencing
9271
      WHERE pv_id = PvId
9272
      AND licence = LicenceId;
1373 dpurdie 9273
 
3959 dpurdie 9274
      RETURN found;
1373 dpurdie 9275
   END;
9276
 
9277
/*-------------------------------------------------------------------------------------------------------*/
9278
 
3959 dpurdie 9279
   PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 9280
 
3959 dpurdie 9281
      CURSOR licencing_cur
9282
      IS
1373 dpurdie 9283
         SELECT *
3959 dpurdie 9284
         FROM licencing
9285
         WHERE pv_id = PvId;
1373 dpurdie 9286
 
3959 dpurdie 9287
      licencing_rec licencing_cur%ROWTYPE;
9288
   BEGIN
9289
      -- For each licence association that the PV_ID had, remove it
9290
      OPEN licencing_cur;
1373 dpurdie 9291
 
3959 dpurdie 9292
      FETCH licencing_cur
9293
      INTO licencing_rec;
1373 dpurdie 9294
 
3959 dpurdie 9295
      WHILE licencing_cur%FOUND
9296
      LOOP
9297
         REMOVE_LICENCE ( PvId, licencing_rec.licence, UserId );
1373 dpurdie 9298
 
3959 dpurdie 9299
         FETCH licencing_cur
9300
         INTO licencing_rec;
9301
      END LOOP;
1373 dpurdie 9302
   END;
9303
 
9304
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 9305
END PK_LICENCING;
4040 dpurdie 9306
 
1374 dpurdie 9307
/
4040 dpurdie 9308
--------------------------------------------------------
9309
--  DDL for Package Body PK_PACKAGE
9310
--------------------------------------------------------
9311
 
5172 dpurdie 9312
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PACKAGE" 
1373 dpurdie 9313
IS
9314
   /*-------------------------------------------------------------------------------------------------------*/
9315
   PROCEDURE new_version (
9316
      nlastpvid                   IN       NUMBER,
9317
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
9318
      cbuildtype                  IN       CHAR,
4211 dpurdie 9319
      cchangetype                 IN       CHAR,
1373 dpurdie 9320
      nsettopvid                  IN       NUMBER DEFAULT NULL,
9321
      nrtagid                     IN       NUMBER,
9322
      nuserid                     IN       NUMBER,
9323
      enumissues_state_imported   IN       NUMBER,
9324
      returnpvid                  OUT      NUMBER
9325
   )
9326
   IS
3959 dpurdie 9327
      origpkg_id                  package_versions.pkg_id%TYPE;
9328
      origdlocked                 package_versions.dlocked%TYPE;
9329
      ssv_mm                      package_versions.v_mm%TYPE;
9330
      ssv_nmm                     package_versions.v_nmm%TYPE;
9331
      ssv_ext                     package_versions.v_ext%TYPE;
9332
      spackageversion             VARCHAR2 (4000);
9333
      nissuestypes                NUMBER;
9334
      nviewid                     NUMBER;
9335
      reccount                    NUMBER;
9336
      isreleased                  package_versions.dlocked%TYPE := 'N';
9337
      slabel                      VARCHAR2 (4000)               := NULL;
4211 dpurdie 9338
      uchangetype                 CHAR := cchangetype;
1373 dpurdie 9339
 
9340
      CURSOR package_versions_cur
9341
      IS
9342
         SELECT pv.pv_id, pv.is_patch, pv.dlocked
9343
           FROM package_versions pv
9344
          WHERE pv.pkg_version = snewpkgversion
9345
            AND pv.pkg_id IN (SELECT DISTINCT origpv.pkg_id
9346
                                         FROM package_versions origpv
9347
                                        WHERE origpv.pv_id = nlastpvid);
9348
 
3959 dpurdie 9349
      package_versions_rec package_versions_cur%ROWTYPE;
1373 dpurdie 9350
 
9351
      CURSOR clone_package_versions_cur
9352
      IS
9353
         SELECT DISTINCT pkg_id, dlocked
9354
                    FROM package_versions
9355
                   WHERE pv_id = nlastpvid;
9356
 
3959 dpurdie 9357
      clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
1373 dpurdie 9358
   BEGIN
9359
      spackageversion := snewpkgversion;
9360
 
9361
      IF nsettopvid IS NULL
9362
      THEN
9363
         -- SetToPv_id is not supplied, hence proceed.
9364
 
9365
         /* ---------------------------------------------------- */
3959 dpurdie 9366
         /* Find id package_version exists                       */
9367
         /* ---------------------------------------------------- */
1373 dpurdie 9368
         OPEN package_versions_cur;
9369
 
9370
         FETCH package_versions_cur
9371
          INTO package_versions_rec;
9372
 
9373
         IF package_versions_cur%NOTFOUND
9374
         THEN
9375
            ---  Create brand new package ---
9376
            SELECT seq_pv_id.NEXTVAL
9377
              INTO returnpvid
9378
              FROM DUAL;
9379
 
9380
            -- Split Version to get extention + other
9381
            split_version (spackageversion, ssv_mm, ssv_nmm, ssv_ext);
9382
 
9383
            -- Get previous package to clone from
9384
            OPEN clone_package_versions_cur;
9385
 
9386
            FETCH clone_package_versions_cur
9387
             INTO clone_package_versions_rec;
9388
 
9389
            origpkg_id := clone_package_versions_rec.pkg_id;
9390
            origdlocked := clone_package_versions_rec.dlocked;
9391
 
9392
            CLOSE clone_package_versions_cur;
9393
 
9394
            -- Automated built config
4211 dpurdie 9395
            IF ( cbuildtype = 'M' ) THEN
9396
              uchangetype := 'F';
9397
            END IF;  
9398
 
9399
            -- Automated version numbering
9400
            -- Make sure that version is still unique
9401
            IF (uchangetype != 'F') THEN
9402
              spackageversion := '(' || returnpvid || ')' || ssv_ext;
1373 dpurdie 9403
            END IF;
4211 dpurdie 9404
 
1373 dpurdie 9405
 
9406
            -- Clone Package Version Details --
3959 dpurdie 9407
            INSERT INTO package_versions(pv_id, pkg_id, pkg_version, dlocked, created_stamp,
9408
                                         creator_id, modified_stamp, modifier_id, v_mm, v_nmm,
9409
                                         v_ext, src_path, pv_description, pv_overview,
9410
                                         last_pv_id, owner_id, is_deployable,
4211 dpurdie 9411
                                         is_build_env_required, build_type, change_type, 
9412
                                         bs_id, is_autobuildable, ripple_field)
3959 dpurdie 9413
                 SELECT returnpvid AS pv_id, origpkg_id AS pkg_id,
9414
                        spackageversion AS pkg_version, 'N' AS dlocked,
9415
                        ora_sysdate AS created_stamp, nuserid AS creator_id,
9416
                        ora_sysdatetime AS modified_stamp,
9417
                        nuserid AS modifier_id, ssv_mm AS v_mm,
9418
                        ssv_nmm AS v_nmm, ssv_ext AS v_ext, pv.src_path,
9419
                        pv.pv_description, pv.pv_overview,
9420
                        nlastpvid AS last_pv_id, pv.owner_id, pv.is_deployable,
4211 dpurdie 9421
                        pv.is_build_env_required, cbuildtype, uchangetype, 
9422
                        pv.bs_id, pv.is_autobuildable, pv.ripple_field
3959 dpurdie 9423
                   FROM package_versions pv
9424
                  WHERE pv.pv_id = nlastpvid;
1373 dpurdie 9425
 
9426
            -- Set Issues Type for cloning ---
9427
            IF origdlocked = 'Y'
9428
            THEN
9429
               nissuestypes := enumissues_state_imported;
9430
            ELSE
9431
               nissuestypes := NULL;
9432
            END IF;
9433
 
9434
            basic_clone (nlastpvid,
9435
                         returnpvid,
9436
                         nrtagid,
9437
                         nuserid,
9438
                         origpkg_id,
9439
                         nissuestypes
9440
                        );
4211 dpurdie 9441
 
9442
            -- Update Label for versioning purposes
9443
            slabel := get_automated_label (returnpvid);
9444
            UPDATE package_versions pv
9445
            SET pv.pkg_label = slabel
9446
            WHERE pv.pv_id = returnpvid;
9447
 
1373 dpurdie 9448
         ELSE
9449
            --- Package already exists, hence reuse ---
9450
            returnpvid := package_versions_rec.pv_id;
9451
            isreleased := package_versions_rec.dlocked;
9452
         END IF;
9453
 
9454
         CLOSE package_versions_cur;
9455
      ELSE
9456
         returnpvid := nsettopvid;
9457
      END IF;
9458
   END new_version;
9459
 
9460
/*-------------------------------------------------------------------------------------------------------*/
9461
   PROCEDURE change_state (
9462
      pvid       IN   NUMBER,
9463
      newstate   IN   package_versions.dlocked%TYPE,
9464
      userid     IN   NUMBER
9465
   )
9466
   IS
9467
   BEGIN
9468
      -- Set package in Released mode
9469
      UPDATE package_versions pv
9470
         SET pv.dlocked = newstate,
9471
             pv.modified_stamp = ora_sysdatetime,
9472
             pv.modifier_id = userid
9473
       WHERE pv.pv_id = pvid;
9474
 
9475
      -- Log action --
9476
      IF newstate = 'Y'
9477
      THEN
9478
         -- RELEASED --
9479
         log_action (pvid,
9480
                     'makeofficial',
9481
                     userid,
9482
                     'Package state change to: Released'
9483
                    );
9484
      ELSIF newstate = 'N'
9485
      THEN
9486
         -- UNLOCKED --
9487
         log_action (pvid,
9488
                     'makeunofficial',
9489
                     userid,
9490
                     'Package state change to: Ulocked'
9491
                    );
9492
      ELSIF newstate = 'P'
9493
      THEN
9494
         -- PENDING APPROVAL --
9495
         log_action (pvid,
9496
                     'add_to_planned',
9497
                     userid,
9498
                     'Package state change to: Pending Approval'
9499
                    );
9500
      ELSIF newstate = 'R'
9501
      THEN
9502
         -- REJECTED --
9503
         log_action (pvid,
9504
                     'reject_package',
9505
                     userid,
9506
                     'Package state change to: Rejected'
9507
                    );
9508
      ELSIF newstate = 'A'
9509
      THEN
9510
         -- APPROVED --
9511
         log_action (pvid,
9512
                     'approve_package',
9513
                     userid,
9514
                     'Package state change to: Approved'
9515
                    );
9516
      END IF;
9517
   END;
9518
 
9519
/*-------------------------------------------------------------------------------------------------------*/
9520
   PROCEDURE destroy_package (
9521
      pvid               IN       NUMBER,
9522
      overridewarnings   IN       CHAR DEFAULT 'N',
9523
      problemstring      OUT      VARCHAR2
9524
   )
9525
   IS
9526
      LOCKED     CHAR;
9527
      pkgid      NUMBER;
9528
      ROWCOUNT   NUMBER;
9529
   BEGIN
9530
      /*
9531
      || This will destroy all package details from database.
9532
      || It will only be used to remove unwanted work in progress packages,
9533
      || or mestaken versions
9534
      */
9535
 
9536
      /*--------------- Business Rules Here -------------------*/
9537
      problemstring := NULL;
9538
 
9539
      IF overridewarnings = 'N'
9540
      THEN
9541
         -- Package must not be official
9542
         SELECT pv.dlocked
9543
           INTO LOCKED
9544
           FROM package_versions pv
9545
          WHERE pv.pv_id = pvid;
9546
 
9547
         IF LOCKED = 'Y'
9548
         THEN
9549
            problemstring :=
9550
                  problemstring
9551
               || '- Package is locked and released.'
9552
               || UTL_TCP.crlf;
9553
         END IF;
9554
 
9555
         -- Cannot remove if used in BOMs
9556
         SELECT COUNT (osc.prod_id)
9557
           INTO ROWCOUNT
9558
           FROM deployment_manager.os_contents osc
9559
          WHERE osc.prod_id = pvid;
9560
 
9561
         IF ROWCOUNT > 0
9562
         THEN
9563
            problemstring :=
9564
                  problemstring
9565
               || '- Package is part of Bill-Of-Material (BOM) in Deployment Manager.'
9566
               || UTL_TCP.crlf;
9567
         END IF;
9568
 
9569
         -- Cannot remove if Referenced as build dependency
9570
         SELECT COUNT (dep.pv_id)
9571
           INTO ROWCOUNT
9572
           FROM package_dependencies dep
9573
          WHERE dep.dpv_id = pvid;
9574
 
9575
         IF ROWCOUNT > 0
9576
         THEN
9577
            problemstring :=
9578
                  problemstring
9579
               || '- Package is referenced by other package as build dependency.'
9580
               || UTL_TCP.crlf;
9581
         END IF;
9582
 
9583
         -- Cannot remove if Referenced as runtime dependency
9584
         SELECT COUNT (rd.pv_id)
9585
           INTO ROWCOUNT
9586
           FROM runtime_dependencies rd
9587
          WHERE rd.rtd_id = pvid;
9588
 
9589
         IF ROWCOUNT > 0
9590
         THEN
9591
            problemstring :=
9592
                  problemstring
9593
               || '- Package is referenced by other package as runtime dependency.'
9594
               || UTL_TCP.crlf;
9595
         END IF;
9596
 
9597
         -- Cannot remove if Referenced as patch
9598
         SELECT COUNT (pp.pv_id)
9599
           INTO ROWCOUNT
9600
           FROM package_patches pp
9601
          WHERE pp.patch_id = pvid;
9602
 
9603
         IF ROWCOUNT > 0
9604
         THEN
9605
            problemstring :=
9606
                  problemstring
9607
               || '- Package is used as patch by other package.'
9608
               || UTL_TCP.crlf;
9609
         END IF;
9610
      END IF;
9611
 
9612
/*-------------------------------------------------------*/
9613
      IF (problemstring IS NULL)
9614
      THEN
9615
         --- Remove From Work in Progress
9616
         DELETE FROM work_in_progress wip
9617
               WHERE wip.pv_id = pvid;
9618
 
9619
         --- Remove From Pending
9620
         DELETE FROM planned pl
9621
               WHERE pl.pv_id = pvid;
9622
 
9623
         --- Remove From Released area
9624
         DELETE FROM release_content rc
9625
               WHERE rc.pv_id = pvid;
9626
 
9627
         ---Remove From Package Processes
9628
         DELETE FROM package_processes pp
9629
               WHERE pp.pv_id = pvid;
9630
 
9631
         --- Remove Dependencies
9632
         DELETE FROM package_dependencies dep
9633
               WHERE dep.pv_id = pvid;
9634
 
9635
         DELETE FROM package_dependencies dep
9636
               WHERE dep.dpv_id = pvid;
9637
 
9638
         --- Remove Runtime dependencies
9639
         DELETE FROM runtime_dependencies rtd
9640
               WHERE rtd.pv_id = pvid;
9641
 
9642
         DELETE FROM runtime_dependencies rtd
9643
               WHERE rtd.rtd_id = pvid;
9644
 
9645
         --- Remove components
9646
         DELETE FROM product_components pc
9647
               WHERE pc.pv_id = pvid;
9648
 
9649
         DELETE FROM release_components rc
9650
               WHERE rc.pv_id = pvid;
9651
 
9652
         --- Remove From Notification History
9653
         DELETE FROM notification_history nh
9654
               WHERE nh.pv_id = pvid;
9655
 
9656
         --- Remove From Ignore Warnings
9657
         DELETE FROM ignore_warnings iw
9658
               WHERE iw.pv_id = pvid;
9659
 
9660
         --- Remove From Additional Notes
9661
         DELETE FROM additional_notes an
9662
               WHERE an.pv_id = pvid;
9663
 
9664
         --- Remove From CQ Issues
9665
         DELETE FROM cq_issues cq
9666
               WHERE cq.pv_id = pvid;
9667
 
9668
         --- Remove from Package Patches
9669
         DELETE FROM package_patches pp
9670
               WHERE pp.pv_id = pvid;
9671
 
9672
         DELETE FROM package_patches pp
9673
               WHERE pp.patch_id = pvid;
9674
 
9675
         --- Remove From Package Documents
9676
         DELETE FROM package_documents pd
9677
               WHERE pd.pv_id = pvid;
9678
 
9679
         --- Remove from Code Review
9680
         DELETE FROM code_reviews cr
9681
               WHERE cr.pv_id = pvid;
9682
 
3959 dpurdie 9683
         --- Remove from Code Review URL
9684
         DELETE FROM code_review_url cru
9685
               WHERE cru.pv_id = pvid;
9686
 
1373 dpurdie 9687
         --- Remove from Unit Tests
9688
         DELETE FROM unit_tests ut
9689
               WHERE ut.pv_id = pvid;
9690
 
9691
         --- Remove from Package BuildEnv
9692
         DELETE FROM package_build_env pbe
9693
               WHERE pbe.pv_id = pvid;
9694
 
3959 dpurdie 9695
         --- Remove from Package Build Info
9696
         DELETE FROM package_build_info pbi
9697
               WHERE pbi.pv_id = pvid;
9698
 
1373 dpurdie 9699
         --- Remove from Build Order
9700
         DELETE FROM build_order bo
9701
               WHERE bo.pv_id = pvid;
9702
 
3959 dpurdie 9703
         --- Remove from Licencing
9704
         PK_LICENCING.REMOVE_ALL_LICENCING( pvid, 0 );
9705
 
1373 dpurdie 9706
         --- Remove from Note Manager
9707
         DELETE FROM note_manager nm
9708
               WHERE nm.nid = pvid;
9709
 
9710
         --- Remove from Action log
9711
         DELETE FROM action_log al
9712
               WHERE al.pv_id = pvid;
3959 dpurdie 9713
 
9714
         --- Remove from Do Not Ripple
9715
         DELETE FROM DO_NOT_RIPPLE dnr
9716
               WHERE dnr.PV_ID = pvid;
9717
 
9718
         --- Remove from Advisory Ripple
9719
         DELETE FROM ADVISORY_RIPPLE ar
9720
               WHERE ar.PV_ID = pvid;
9721
 
9722
         --- Remove from Jira Issues
9723
         DELETE FROM JIRA_ISSUES jira
9724
               WHERE jira.PV_ID = pvid;
9725
 
9726
         --- Remove from Package Metrics
9727
         DELETE FROM package_metrics pm
9728
              WHERE pm.pv_id = pvid;
9729
 
9730
         -- Delete from Pegged Versions
9731
         DELETE FROM pegged_versions pegv
9732
              WHERE pegv.pv_id = pvid;
9733
 
1373 dpurdie 9734
         --- Finally Remove From Package Versions
9735
         --- Get Package name
9736
         SELECT pv.pkg_id
9737
           INTO pkgid
9738
           FROM package_versions pv
9739
          WHERE pv.pv_id = pvid;
9740
 
9741
         DELETE FROM package_versions pv
9742
               WHERE pv.pv_id = pvid;
9743
 
9744
         --- Remove package name if not used any more
9745
         SELECT COUNT (pv.pv_id)
9746
           INTO ROWCOUNT
9747
           FROM package_versions pv
9748
          WHERE pv.pkg_id = pkgid;
9749
 
9750
         IF ROWCOUNT < 1
9751
         THEN
9752
            DELETE FROM PACKAGES pkg
9753
                  WHERE pkg.pkg_id = pkgid;
9754
         END IF;
9755
      END IF;
9756
   END;
9757
 
9758
/*-------------------------------------------------------------------------------------------------------*/
9759
   PROCEDURE new_patch (
9760
      snewpatchversion   IN       package_versions.pkg_version%TYPE,
9761
      nparentpvid        IN       NUMBER,
9762
      spatchidlist       IN       VARCHAR2,
9763
      nuserid            IN       NUMBER,
9764
      returnpatchid      OUT      NUMBER
9765
   )
9766
   IS
9767
      patchpv_id           NUMBER;
9768
      parpkg_id            NUMBER;
9769
      lastinstallorder     NUMBER;
9770
      ispatchdlocked       package_versions.dlocked%TYPE;
9771
      ssv_mm               package_versions.v_mm%TYPE;
9772
      ssv_nmm              package_versions.v_nmm%TYPE;
9773
      ssv_ext              package_versions.v_ext%TYPE;
3959 dpurdie 9774
      opatchdepcollector   relmgr_number_tab_t  := relmgr_number_tab_t ();
1373 dpurdie 9775
 
9776
      CURSOR parent_cur
9777
      IS
9778
         SELECT pv.*, pkg.pkg_name
9779
           FROM package_versions pv, PACKAGES pkg
9780
          WHERE pv.pv_id = nparentpvid AND pv.pkg_id = pkg.pkg_id;
9781
 
3959 dpurdie 9782
      parent_rec parent_cur%ROWTYPE;
1373 dpurdie 9783
 
9784
      CURSOR patch_cur
9785
      IS
9786
         SELECT pv.*, pg.pkg_name
9787
           FROM package_versions pv, PACKAGES pg
9788
          WHERE pv.pkg_id = parpkg_id
9789
            AND pv.pkg_version = snewpatchversion
9790
            AND pv.pkg_id = pg.pkg_id;
9791
 
3959 dpurdie 9792
      patch_rec  patch_cur%ROWTYPE;
1373 dpurdie 9793
 
9794
      CURSOR releases_cur
9795
      IS
9796
         SELECT rc.pv_id
9797
           FROM release_content rc
9798
          WHERE rc.pv_id = patch_rec.pv_id;
9799
 
3959 dpurdie 9800
      releases_rec releases_cur%ROWTYPE;
1373 dpurdie 9801
   BEGIN
9802
      -- Get Last Install Order
9803
      SELECT COUNT (*)
9804
        INTO lastinstallorder
9805
        FROM package_patches pp
9806
       WHERE pp.pv_id = nparentpvid;
9807
 
9808
      -- Get parent details
9809
      OPEN parent_cur;
9810
 
9811
      FETCH parent_cur
9812
       INTO parent_rec;
9813
 
9814
      parpkg_id := parent_rec.pkg_id;
9815
 
9816
      -- Find if patch exists in database
9817
      OPEN patch_cur;
9818
 
9819
      FETCH patch_cur
9820
       INTO patch_rec;
9821
 
9822
      -- Parent must be official
9823
      IF parent_rec.dlocked = 'Y'
9824
      THEN
9825
         IF patch_cur%NOTFOUND
9826
         THEN
9827
            ispatchdlocked := 'N';
9828
 
9829
            -- Create new patch version --
9830
            SELECT seq_pv_id.NEXTVAL
9831
              INTO patchpv_id
9832
              FROM DUAL;
9833
 
9834
            split_version (snewpatchversion, ssv_mm, ssv_nmm, ssv_ext);
9835
 
9836
            INSERT INTO package_versions
9837
                        (pv_id, pkg_id, pkg_version,
9838
                         dlocked, created_stamp, creator_id,
9839
                         modified_stamp, modifier_id, v_mm, v_nmm, v_ext,
9840
                         src_path,
9841
                         pv_description,
9842
                         owner_id, is_patch, last_pv_id, build_type, is_build_env_required, bs_id,
3959 dpurdie 9843
                         is_autobuildable, ripple_field
1373 dpurdie 9844
                        )
9845
                 VALUES (patchpv_id, parpkg_id, snewpatchversion,
9846
                         ispatchdlocked, ora_sysdate, nuserid,
9847
                         ora_sysdatetime, nuserid, ssv_mm, ssv_nmm, ssv_ext,
9848
                         parent_rec.src_path,
9849
                            'This is a patch to '
9850
                         || parent_rec.pkg_name
9851
                         || ' '
9852
                         || parent_rec.pkg_version,
3959 dpurdie 9853
                         nuserid, 'Y', patchpv_id, 'M', 'N', 3, 'N', parent_rec.ripple_field
1373 dpurdie 9854
                        );
9855
 
9856
            INSERT INTO package_patches
9857
                        (pv_id, patch_id, install_order)
3959 dpurdie 9858
                (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
9859
                        lastinstallorder + 1 AS install_order
9860
                   FROM package_versions pv
9861
                  WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
1373 dpurdie 9862
 
9863
            /* LOG ACTION */
9864
            log_action (patchpv_id,
9865
                        'new_version',
9866
                        nuserid,
9867
                        'Patch version created: ' || snewpatchversion
9868
                       );
9869
            log_action (nparentpvid,
9870
                        'patch_add',
9871
                        nuserid,
9872
                        'New patch created and attached: ' || snewpatchversion
9873
                       );
9874
         ELSE
9875
            patchpv_id := patch_rec.pv_id;
9876
            ispatchdlocked := patch_rec.dlocked;
9877
 
9878
            -- Find if pv_id exists in release content (i.e. it cannot be a patch)
9879
            OPEN releases_cur;
9880
 
9881
            FETCH releases_cur
9882
             INTO releases_rec;
9883
 
9884
            IF releases_cur%NOTFOUND
9885
            THEN
9886
               -- This pv_id is trully a patch, hence add Y to column IS_PATCH
9887
               UPDATE package_versions
9888
                  SET is_patch = 'Y'
9889
                WHERE pv_id = patchpv_id;
9890
 
9891
               INSERT INTO package_patches
9892
                           (pv_id, patch_id, install_order)
3959 dpurdie 9893
                   (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
9894
                           lastinstallorder + 1 AS install_order
9895
                      FROM package_versions pv
9896
                     WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
1373 dpurdie 9897
            END IF;
9898
 
9899
            CLOSE releases_cur;
9900
 
9901
            /* LOG ACTION */
9902
            log_action (nparentpvid,
9903
                        'patch_add',
9904
                        nuserid,
9905
                           'Patch version was found and attached: '
9906
                        || snewpatchversion
9907
                       );
9908
         END IF;
9909
      END IF;
9910
 
9911
      /* Create Patch Dependencies */
9912
      opatchdepcollector := in_list_number (spatchidlist);
9913
 
9914
      -- Make sure patch is unofficial before altering its dependencies
9915
      IF (opatchdepcollector.COUNT > 0) AND (ispatchdlocked = 'N')
9916
      THEN
9917
         -- Delete Existing Dependencies
9918
         DELETE FROM package_dependencies dep
9919
               WHERE dep.pv_id = patchpv_id;
9920
 
9921
         -- Insert new dependencies
9922
         INSERT INTO package_dependencies
9923
                     (pv_id, dpv_id, pkg_id, dpkg_id, build_type)
3959 dpurdie 9924
              SELECT patchpv_id AS pv_id, pv.pv_id AS dpv_id,
9925
                     parpkg_id AS pkg_id, pv.pkg_id AS dpkg_id,
9926
                     'L' AS build_type
9927
                FROM package_versions pv
9928
               WHERE pv.pv_id IN (
1373 dpurdie 9929
                      SELECT *
9930
                        FROM TABLE
9931
                                (CAST
9932
                                    (opatchdepcollector AS relmgr_number_tab_t)
9933
                                ));
9934
      END IF;
9935
 
9936
      -- Return patch_id
9937
      returnpatchid := patchpv_id;
9938
 
9939
      CLOSE parent_cur;
9940
 
9941
      CLOSE patch_cur;
9942
   EXCEPTION
9943
      WHEN DUP_VAL_ON_INDEX
9944
      THEN
9945
         raise_application_error (-20000,
9946
                                     'Patch version '
9947
                                  || snewpatchversion
9948
                                  || ' already exist.'
9949
                                 );
9950
   END;
9951
 
9952
/*-------------------------------------------------------------------------------------------------------*/
9953
   PROCEDURE obsolete_patch (
9954
      patchid            IN   NUMBER,
9955
      isobsolete         IN   CHAR,
9956
      obsoletecomments   IN   VARCHAR2,
9957
      userid             IN   NUMBER
9958
   )
9959
   IS
9960
   BEGIN
9961
      -- Update patch
9962
      UPDATE package_versions pv
9963
         SET pv.is_obsolete = isobsolete,
9964
             pv.obsolete_comments = obsoletecomments
9965
       WHERE pv.pv_id = patchid;
9966
 
9967
      /*
9968
      -- Update patch children
9969
      UPDATE PACKAGE_VERSIONS pv SET
9970
      pv.IS_OBSOLETE = IsObsolete,
9971
      pv.OBSOLETE_COMMENTS = ObsoleteComments
9972
      WHERE pv.PV_ID IN (
9973
                     SELECT DISTINCT dep.DPV_ID
9974
                       FROM PACKAGE_DEPENDENCIES dep
9975
                      WHERE dep.PV_ID = PatchId
9976
                     );
9977
 
9978
 
9979
      -- Update patch parent
9980
      UPDATE PACKAGE_VERSIONS pv SET
9981
      pv.IS_OBSOLETE = IsObsolete,
9982
      pv.OBSOLETE_COMMENTS = ObsoleteComments
9983
      WHERE pv.PV_ID IN (
9984
                     SELECT DISTINCT dep.PV_ID
9985
                       FROM PACKAGE_DEPENDENCIES dep
9986
                      WHERE dep.DPV_ID = PatchId
9987
                     );
9988
 
3959 dpurdie 9989
      */
1373 dpurdie 9990
 
9991
      /* LOG ACTION */
9992
      IF isobsolete IS NOT NULL
9993
      THEN
9994
         log_action (patchid,
9995
                     'patch_obsolete',
9996
                     userid,
9997
                     'Obsolete patch. ' || obsoletecomments
9998
                    );
9999
      ELSE
10000
         log_action (patchid,
10001
                     'patch_obsolete',
10002
                     userid,
10003
                     'Undo patch obsolete.'
10004
                    );
10005
      END IF;
10006
   END;
10007
 
10008
/*-------------------------------------------------------------------------------------------------------*/
10009
   PROCEDURE obsolete_patches (
10010
      spatchidlist       IN   VARCHAR2,
10011
      isobsolete         IN   CHAR,
10012
      obsoletecomments   IN   VARCHAR2,
10013
      userid             IN   NUMBER
10014
   )
10015
   IS
10016
   BEGIN
10017
      /*--------------- Business Rules Here -------------------*/
10018
      IF spatchidlist IS NULL
10019
      THEN
10020
         raise_application_error (-20000,
10021
                                  'Please select one or more Patches.'
10022
                                 );
10023
      END IF;
10024
 
10025
/*-------------------------------------------------------*/
10026
 
10027
      -- Update patch
10028
      UPDATE package_versions pv
10029
         SET pv.is_obsolete = isobsolete,
10030
             pv.obsolete_comments = obsoletecomments
10031
       WHERE pv.pv_id IN (
10032
                SELECT *
10033
                  FROM THE
10034
                          (SELECT CAST
10035
                                     (in_list_number (spatchidlist) AS relmgr_number_tab_t
10036
                                     )
10037
                             FROM DUAL
10038
                          ));
3959 dpurdie 10039
      /*
10040
      -- Update patch children
10041
      UPDATE PACKAGE_VERSIONS pv SET
10042
      pv.IS_OBSOLETE = IsObsolete,
10043
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10044
      WHERE pv.PV_ID IN (
10045
                     SELECT DISTINCT dep.DPV_ID
10046
                       FROM PACKAGE_DEPENDENCIES dep
10047
                      WHERE dep.PV_ID = PatchId
10048
                     );
1373 dpurdie 10049
 
10050
 
3959 dpurdie 10051
      -- Update patch parent
10052
      UPDATE PACKAGE_VERSIONS pv SET
10053
      pv.IS_OBSOLETE = IsObsolete,
10054
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10055
      WHERE pv.PV_ID IN (
10056
                     SELECT DISTINCT dep.PV_ID
10057
                       FROM PACKAGE_DEPENDENCIES dep
10058
                      WHERE dep.DPV_ID = PatchId
10059
                     );
1373 dpurdie 10060
 
10061
      */
10062
 
3959 dpurdie 10063
      /* LOG ACTION
10064
      IF IsObsolete IS NOT NULL THEN
1373 dpurdie 10065
         Log_Action ( PatchId, 'patch_obsolete', UserId,
3959 dpurdie 10066
                     'Obsolete patch. '|| ObsoleteComments );
10067
      ELSE
10068
         Log_Action ( PatchId, 'patch_obsolete', UserId,
10069
                     'Undo patch obsolete.' );
10070
      END IF;  */
1373 dpurdie 10071
   END;
10072
 
10073
/*-------------------------------------------------------------------------------------------------------*/
10074
   PROCEDURE add_process (
10075
      nprocid         IN   processes.proc_id%TYPE,
10076
      shealthtag      IN   processes.proc_name%TYPE,
10077
      sprocdesc       IN   processes.proc_description%TYPE,
10078
      scmdinterface   IN   processes.run_as%TYPE,
10079
      spkgowner       IN   processes.pkg_owner%TYPE,
10080
      sisinterface    IN   processes.is_interface%TYPE,
10081
      npvid           IN   package_processes.pv_id%TYPE,
10082
      nuserid         IN   NUMBER
10083
   )
10084
   IS
10085
      pkgname   VARCHAR2 (100);
3959 dpurdie 10086
 
1373 dpurdie 10087
   BEGIN
10088
      INSERT INTO processes
10089
                  (proc_id, proc_name, proc_description, run_as, pkg_owner,
10090
                   is_interface
10091
                  )
10092
           VALUES (nprocid, shealthtag, sprocdesc, scmdinterface, spkgowner,
10093
                   sisinterface
10094
                  );
10095
 
10096
      pk_package.add_package_process (nprocid, npvid, nuserid);
10097
   END;
10098
 
10099
/*-------------------------------------------------------------------------------------------------------*/
10100
   PROCEDURE add_package_process (
10101
      nprocidlist   IN   VARCHAR2,
10102
      npvid         IN   package_processes.pv_id%TYPE,
10103
      nuserid       IN   NUMBER
10104
   )
10105
   IS
10106
      processname   VARCHAR2 (4000);
10107
 
10108
      CURSOR proc_cur
10109
      IS
10110
         SELECT prc.proc_id
10111
           FROM processes prc
10112
          WHERE prc.proc_id IN (
10113
                   SELECT *
10114
                     FROM THE
10115
                             (SELECT CAST
10116
                                        (in_list_number (nprocidlist) AS relmgr_number_tab_t
10117
                                        )
10118
                                FROM DUAL
10119
                             ));
10120
 
3959 dpurdie 10121
      proc_rec  proc_cur%ROWTYPE;
1373 dpurdie 10122
   BEGIN
10123
      OPEN proc_cur;
10124
 
10125
      FETCH proc_cur
10126
       INTO proc_rec;
10127
 
10128
      WHILE proc_cur%FOUND
10129
      LOOP
3959 dpurdie 10130
         INSERT INTO package_processes (proc_id, pv_id)
10131
              VALUES (proc_rec.proc_id, npvid);
1373 dpurdie 10132
 
10133
         SELECT prc.proc_name
10134
           INTO processname
10135
           FROM processes prc
10136
          WHERE prc.proc_id = proc_rec.proc_id;
10137
 
10138
         -- Log Action --
10139
         log_action (npvid,
10140
                     'process_add',
10141
                     nuserid,
10142
                     'Added process with health tag ' || processname
10143
                    );
10144
 
10145
         FETCH proc_cur
10146
          INTO proc_rec;
10147
      END LOOP;
3959 dpurdie 10148
 
10149
      CLOSE proc_cur;
1373 dpurdie 10150
   END;
10151
 
10152
/*-------------------------------------------------------------------------------------------------------*/
10153
   PROCEDURE remove_process (
10154
      nprocid   IN   package_processes.proc_id%TYPE,
10155
      npvid     IN   package_processes.pv_id%TYPE,
10156
      nuserid   IN   NUMBER
10157
   )
10158
   IS
10159
      processname   VARCHAR2 (4000);
10160
   BEGIN
10161
      SELECT prc.proc_name
10162
        INTO processname
10163
        FROM processes prc
10164
       WHERE prc.proc_id = nprocid;
10165
 
10166
      DELETE FROM package_processes
10167
            WHERE proc_id = nprocid AND pv_id = npvid;
10168
 
10169
      -- Log Action --
10170
      log_action (npvid,
10171
                  'process_remove',
10172
                  nuserid,
10173
                  'Removed process with health tag ' || processname
10174
                 );
10175
   END;
10176
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10177
   /*
10178
   ** Author: Rupesh Solanki
10179
   ** Purpose: To move package versions from one release to another
10180
   ** Release: 4th September 2006
10181
   */
10182
   PROCEDURE move_package (
10183
      npvid        IN package_versions.pv_id%TYPE,
10184
      nrtagid      IN release_tags.rtag_id%TYPE,
10185
      nnewrtagid   IN release_tags.rtag_id%TYPE,
10186
      nuserid      IN NUMBER
10187
   )
10188
   IS
1373 dpurdie 10189
 
3959 dpurdie 10190
      oldrtag_name VARCHAR2(4000);newrtag_name VARCHAR2(4000);
10191
 
10192
   BEGIN
10193
      SELECT rtag_name into oldrtag_name
10194
      FROM RELEASE_TAGS
10195
      WHERE rtag_id = nrtagid;
10196
 
10197
      SELECT rtag_name into newrtag_name
10198
      FROM RELEASE_TAGS
10199
      WHERE rtag_id = nnewrtagid;
10200
 
10201
      /* Table Work In Progress*/
10202
      UPDATE WORK_IN_PROGRESS
10203
      SET RTAG_ID = nnewrtagid
10204
      WHERE RTAG_ID = nrtagid
10205
      AND PV_ID = npvid;
10206
 
10207
      /* Table PLANNED*/
10208
      UPDATE PLANNED
10209
      SET RTAG_ID = nnewrtagid
10210
      WHERE RTAG_ID = nrtagid
10211
      AND PV_ID = npvid;
10212
 
10213
      /* Table PEGGED_VERSIONS */
10214
      DELETE FROM PEGGED_VERSIONS pegv
10215
      WHERE pegv.RTAG_ID = nrtagid
10216
      AND pegv.PV_ID = npvid;
10217
 
10218
      /* Table ADVISORY_RIPPLE*/
10219
      DELETE FROM ADVISORY_RIPPLE
10220
      WHERE RTAG_ID = nrtagid
10221
      AND PV_ID = npvid;
10222
 
10223
 
1373 dpurdie 10224
      -- Log Action --
10225
      log_action (npvid,
10226
                  'move_package_version',
10227
                  nuserid,
10228
                  'Moved package version from ' || oldrtag_name || ' to ' || newrtag_name
3959 dpurdie 10229
                 );
10230
   END;
10231
 
1373 dpurdie 10232
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10233
   /*
10234
   ** Author: Rupesh Solanki
10235
   ** Purpose: To modify the product state from integration to test to deployment
10236
   ** Release: 25th January 2006
10237
   */
10238
   PROCEDURE modify_product_state (
10239
      npvid    IN package_versions.pv_id%TYPE,
10240
      nrtagid  IN release_tags.rtag_id%TYPE,
10241
      nstateid IN product_states.state_id%TYPE,
10242
      nuserid  IN NUMBER
1373 dpurdie 10243
   ) IS
3959 dpurdie 10244
 
10245
      sStateName VARCHAR2(4000);
10246
      sRtagName VARCHAR2(4000);
10247
 
10248
   BEGIN
10249
 
10250
      UPDATE RELEASE_CONTENT
10251
      SET PRODUCT_STATE = nstateid
10252
      WHERE PV_ID = npvid
10253
      AND RTAG_ID = nrtagid;
10254
 
10255
 
10256
      SELECT STATE INTO sStateName
10257
      FROM PRODUCT_STATES
10258
      WHERE STATE_ID = nstateid;
10259
 
10260
      SELECT RTAG_NAME into sRtagName
10261
      FROM RELEASE_TAGS
10262
      WHERE RTAG_ID = nrtagid;
10263
 
10264
 
10265
      -- Log Action --
10266
      log_action (npvid,
10267
                  'modify_product_state',
10268
                     nuserid,
10269
                     sStateName || ' in '|| sRtagName
10270
                  );
10271
   END;
10272
/*-------------------------------------------------------------------------------------------------------*/
10273
   /*
10274
   ** Author: Jeremy Tweddle
10275
   ** Date: 24/Aug/2007
10276
   */
10277
   PROCEDURE add_code_review_url (
10278
      npvid           IN    NUMBER,
10279
      nprojid         IN    NUMBER,
10280
      surl            IN    VARCHAR2,
10281
      sreason         IN    VARCHAR2,
4553 dpurdie 10282
      ddateofreview   IN    VARCHAR2
3959 dpurdie 10283
   ) IS
10284
 
10285
      ncrid NUMBER;
10286
 
10287
   BEGIN
10288
 
10289
      SELECT seq_cr_id.NEXTVAL INTO ncrid FROM DUAL;
10290
 
4553 dpurdie 10291
      INSERT INTO code_review_url ( cr_id, pv_id, proj_id, url, reason, date_of_review, last_modified )
10292
      VALUES ( ncrid, npvid, nprojid, surl, sreason, TO_DATE( ddateofreview,'DD/MM/YYYY' ), ora_sysdate );
3959 dpurdie 10293
 
10294
   END;
10295
/*-------------------------------------------------------------------------------------------------------*/
10296
   /*
10297
   ** Author: Jeremy Tweddle
10298
   ** Date: 22/Aug/2007
10299
   */
10300
   PROCEDURE update_code_review_url (
10301
      ncrid           IN    NUMBER,
10302
      nprojid         IN    NUMBER,
10303
      surl            IN    VARCHAR2,
4553 dpurdie 10304
      sreason         IN    VARCHAR2,
10305
      ddateofreview   IN    VARCHAR2
3959 dpurdie 10306
   ) IS
10307
 
10308
   BEGIN
10309
 
10310
      UPDATE code_review_url
10311
      SET url = surl,
10312
          proj_id = nprojid,
10313
          reason = sreason,
4553 dpurdie 10314
          date_of_review = TO_DATE( ddateofreview,'DD/MM/YYYY' ), 
3959 dpurdie 10315
          last_modified = ora_sysdate
10316
      WHERE cr_id = ncrid;
10317
 
10318
   END;
4553 dpurdie 10319
 
3959 dpurdie 10320
/*-------------------------------------------------------------------------------------------------------*/
10321
   /*
10322
   ** Author: Jeremy Tweddle
10323
   ** Date: 22/Aug/2007
10324
   */
10325
   PROCEDURE remove_code_review_url (
10326
      ncrid  IN    NUMBER
10327
   ) IS
10328
 
10329
   BEGIN
10330
      DELETE FROM code_review_url
10331
      WHERE cr_id = ncrid;
10332
   END;
10333
/*-------------------------------------------------------------------------------------------------------*/
10334
END pk_package;
4040 dpurdie 10335
 
1374 dpurdie 10336
/
4040 dpurdie 10337
--------------------------------------------------------
10338
--  DDL for Package Body PK_PLANNED
10339
--------------------------------------------------------
10340
 
5172 dpurdie 10341
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PLANNED" IS
3959 dpurdie 10342
 
1373 dpurdie 10343
/*
10344
------------------------------
3959 dpurdie 10345
||  Last Modified:  G.Huddy
10346
||  Modified Date:  05/Aug/2008
10347
||  Body Version:   1.2
1373 dpurdie 10348
------------------------------
10349
*/
10350
 
10351
 
10352
/*-------------------------------------------------------------------------------------------------------*/
5384 dpurdie 10353
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, OPR IN CHAR DEFAULT 'R' ) IS
1373 dpurdie 10354
 
3959 dpurdie 10355
    oldPvId NUMBER;
10356
    ReleaseLocation VARCHAR2(4000);
10357
    IsPatch CHAR(1) := NULL;
10358
    sLocation VARCHAR2(4000) := NULL;
10359
    nRtagIdLocation NUMBER;
1373 dpurdie 10360
 
10361
 
10362
 
3959 dpurdie 10363
BEGIN
10364
    /*--------------- Business Rules Here -------------------*/
10365
    /*-------------------------------------------------------*/
5384 dpurdie 10366
 
10367
    IF OPR = 'R' THEN
10368
      BEGIN
10369
          -- Check if Exists in "Work in progress" anywhere in the world, except "Closed mode" releases
10370
          SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME, rt.RTAG_ID  INTO sLocation, nRtagIdLocation
10371
            FROM PLANNED pl,
10372
                 RELEASE_TAGS rt,
10373
                 PROJECTS proj
10374
           WHERE pl.PV_ID = newPvId
10375
             AND pl.RTAG_ID = rt.RTAG_ID
10376
             AND rt.OFFICIAL != 'Y'
10377
             AND rt.PROJ_ID = proj.PROJ_ID;
10378
 
10379
          EXCEPTION
10380
              WHEN NO_DATA_FOUND THEN
10381
                  sLocation := NULL;
10382
      END;
10383
 
10384
      IF (sLocation IS NULL) OR (nRtagIdLocation = RtagId) THEN
10385
 
10386
          -- Add to "Pending" area
10387
          INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )
10388
          VALUES( RtagId, newPvId, ViewId, OPR );
10389
 
10390
          /* LOG ACTION */
10391
          SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
10392
            FROM PROJECTS proj,
10393
                 RELEASE_TAGS rt
10394
           WHERE rt.PROJ_ID = proj.PROJ_ID
10395
             AND rt.RTAG_ID = RtagId;
10396
 
10397
          Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
10398
 
10399
      ELSE
10400
            RAISE_APPLICATION_ERROR (-20000, 'This version is already in Pending Area at '|| sLocation ||'.' );
10401
        END IF;
10402
 
3959 dpurdie 10403
    ELSE
5384 dpurdie 10404
      -- Not adding a WIP. Merging a package version 
10405
      MERGE_PACKAGE ( newPvId, ViewId, RtagId, UserId, OPR );
3959 dpurdie 10406
    END IF;
10407
 
10408
END;
1373 dpurdie 10409
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10410
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 10411
 
3959 dpurdie 10412
    ReleaseLocation VARCHAR2(4000);
1373 dpurdie 10413
 
3959 dpurdie 10414
BEGIN
1373 dpurdie 10415
 
3959 dpurdie 10416
    /*--------------- Business Rules Here -------------------*/
10417
    /*-------------------------------------------------------*/
1373 dpurdie 10418
 
10419
 
3959 dpurdie 10420
    -- Get release location for logging pusposes
10421
    SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
10422
      FROM PROJECTS proj,
10423
           RELEASE_TAGS rt
10424
     WHERE rt.PROJ_ID = proj.PROJ_ID
10425
       AND rt.RTAG_ID = RtagId;
1373 dpurdie 10426
 
10427
 
3959 dpurdie 10428
    -- Delete from Work In Progress
10429
    DELETE
10430
      FROM PLANNED pl
10431
     WHERE pl.RTAG_ID = RtagId
10432
       AND pl.PV_ID = PvId;
1373 dpurdie 10433
 
3959 dpurdie 10434
    Log_Action ( PvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
10435
 
10436
 
10437
 
10438
 
10439
END;
1373 dpurdie 10440
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10441
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
1373 dpurdie 10442
 
3959 dpurdie 10443
    ReturnValue NUMBER;
1373 dpurdie 10444
 
3959 dpurdie 10445
BEGIN
10446
    SELECT pl.VIEW_ID INTO ReturnValue
10447
      FROM PLANNED pl
10448
     WHERE pl.RTAG_ID = RtagId
10449
       AND pl.PV_ID = PvId;
10450
 
10451
    RETURN ReturnValue;
10452
END;
10453
/*-------------------------------------------------------------------------------------------------------*/
10454
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
10455
 
10456
    IsBaseView CHAR(1);
10457
 
10458
BEGIN
10459
 
10460
    -- Check if the view is BASE VIEW
10461
    SELECT vi.BASE_VIEW INTO IsBaseView
10462
      FROM VIEWS vi
10463
     WHERE vi.VIEW_ID = ViewId;
10464
 
10465
 
5172 dpurdie 10466
    IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 10467
        -- Get Base view content
10468
        OPEN RecordSet FOR
10469
        SELECT 0 AS PKG_STATE,
10470
               NULL AS DEPRECATED_STATE,
10471
               pv.pv_id,
10472
               pkg.pkg_name,
10473
               pv.pkg_version,
10474
               pv.dlocked,
10475
               pv.pv_description,
10476
               pv.BUILD_TYPE,
10477
               rel.operation
10478
          FROM PLANNED rel,
10479
               packages pkg,
10480
               package_versions pv
10481
         WHERE pv.pkg_id = pkg.pkg_id
10482
           AND rel.pv_id = pv.pv_id
10483
           AND rel.VIEW_ID = ViewId
10484
           AND rel.RTAG_ID = RtagId
10485
         ORDER BY UPPER(pkg.PKG_NAME);
10486
 
10487
    ELSE
10488
 
10489
        -- Get non base view content
10490
        OPEN RecordSet FOR
10491
        SELECT 0 AS PKG_STATE,
10492
               NULL AS DEPRECATED_STATE,
10493
               pv.pv_id,
10494
               pkg.pkg_name,
10495
               pv.pkg_version,
10496
               pv.dlocked,
10497
               pv.pv_description,
10498
               pv.BUILD_TYPE,
10499
               rel.operation
10500
          FROM PLANNED rel,
10501
               packages pkg,
10502
               package_versions pv,
10503
               VIEW_DEF vd
10504
         WHERE pv.pkg_id = pkg.pkg_id
10505
           AND rel.pv_id = pv.pv_id
10506
           AND rel.RTAG_ID = RtagId
10507
           AND vd.VIEW_ID = ViewId
10508
           AND vd.PKG_ID = pv.PKG_ID
10509
         ORDER BY UPPER(pkg.PKG_NAME);
10510
 
10511
    END IF;
10512
 
10513
 
10514
END;
10515
/*-------------------------------------------------------------------------------------------------------*/
10516
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
10517
 
10518
BEGIN
10519
 
10520
    UPDATE PLANNED pl SET
10521
    pl.VIEW_ID = NewViewId
10522
    WHERE pl.PV_ID = PvId
10523
      AND pl.RTAG_ID = RtagId;
10524
 
10525
END;
10526
/*-------------------------------------------------------------------------------------------------------*/
10527
-- DEVI-45275 This new function supports the ability to insert into the planned table, and existing
10528
-- version of a package as part of a release-to-release merge operation carried out within release manager.
10529
-- DEVI-49594 This function has subsequently been changed to allow a merge operation to cancel its
10530
-- opposite operation, if the opposite already exists in the planned table. This supports user activity
10531
-- via the Release Manager merge manager display
10532
 
10533
PROCEDURE MERGE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, mergeOperation IN CHAR ) IS
10534
 
10535
    ReleaseLocation VARCHAR2(4000);
10536
 
10537
        entryExists NUMBER;
10538
        existingOperation CHAR;
10539
BEGIN
10540
    /*--------------- Business Rules Here -------------------*/
10541
    /*-------------------------------------------------------*/
10542
 
10543
      -- Determine if the specified PV_ID already exists in the planned table....
10544
      SELECT COUNT (pl.pv_id) INTO entryExists
10545
      FROM PLANNED pl
10546
      WHERE pl.pv_id = newPvId
10547
      AND pl.rtag_id = RtagId
10548
      AND pl.view_id = ViewId;
10549
 
10550
      -- If the specified PV_ID already exists in the planned table....
10551
      IF entryExists = 1 THEN
10552
 
10553
         -- Get the operation for the existing entry
10554
         SELECT pl.operation INTO existingOperation
10555
         FROM PLANNED pl
10556
         WHERE pl.pv_id = newPvId
10557
         AND pl.rtag_id = RtagId
10558
         AND pl.view_id = ViewId;
10559
 
10560
         -- Is the specified merge operation the opposite of the existing entry?
10561
         -- If it is not, then there is nothing to do, otherwise...
10562
         -- NOTE: A = Add, S = Subtract
10563
         IF (mergeOperation = 'S' AND existingOperation = 'A')
10564
            OR (mergeOperation = 'A' AND existingOperation = 'S') THEN
10565
 
10566
           -- It is the opposite, so effectively it cancels the existing entry
10567
           -- Remove the entry from the planned table
10568
           DELETE
10569
            FROM PLANNED pl
10570
           WHERE pl.pv_id = newPvId
10571
             AND pl.rtag_id = RtagId
10572
             AND pl.view_id = ViewId;
10573
 
10574
           -- Log action
10575
           SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
10576
             FROM PROJECTS proj,
10577
                  RELEASE_TAGS rt
10578
            WHERE rt.PROJ_ID = proj.PROJ_ID
10579
              AND rt.RTAG_ID = RtagId;
10580
 
10581
           Log_Action ( newPvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 10582
         END IF;
3959 dpurdie 10583
      ELSE
10584
         -- Add to Planned tabled
10585
         INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )
10586
         VALUES( RtagId, newPvId, ViewId, mergeOperation );
1373 dpurdie 10587
 
3959 dpurdie 10588
         -- Log Action
10589
         SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
10590
          FROM PROJECTS proj,
10591
               RELEASE_TAGS rt
10592
         WHERE rt.PROJ_ID = proj.PROJ_ID
10593
         AND   rt.RTAG_ID = RtagId;
10594
 
10595
         Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 10596
      END IF;
10597
 
3959 dpurdie 10598
END;
1373 dpurdie 10599
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10600
END PK_PLANNED;
4040 dpurdie 10601
 
3959 dpurdie 10602
/
4040 dpurdie 10603
--------------------------------------------------------
10604
--  DDL for Package Body PK_PROJECT
10605
--------------------------------------------------------
10606
 
5172 dpurdie 10607
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PROJECT" IS
1373 dpurdie 10608
 
3959 dpurdie 10609
    /*------------------------------------------------------------------------*/
10610
    PROCEDURE update_base_url (
10611
    nprojid   IN  projects.proj_id%TYPE,
10612
    sbaseurl  IN  VARCHAR2
10613
    ) IS
10614
    BEGIN
1373 dpurdie 10615
 
3959 dpurdie 10616
    UPDATE projects
10617
    SET base_url = sbaseurl
10618
    WHERE proj_id = nprojid;
10619
 
10620
    END update_base_url;
10621
 
10622
/*------------------------------------------------------------------------*/
10623
    PROCEDURE update_project_config (
10624
    nprojid   IN  projects.proj_id%TYPE,
10625
    sbaseurl  IN  VARCHAR2,
10626
    sjirakey  IN  VARCHAR2
10627
    ) IS
10628
    BEGIN
10629
 
10630
    UPDATE projects
10631
    SET base_url = sbaseurl,
10632
        jira_key = sjirakey
10633
    WHERE proj_id = nprojid;
10634
 
10635
    END update_project_config;
10636
    /*------------------------------------------------------------------------*/
10637
 
10638
    END pk_project;
4040 dpurdie 10639
 
3959 dpurdie 10640
/
4040 dpurdie 10641
--------------------------------------------------------
10642
--  DDL for Package Body PK_RELEASE
10643
--------------------------------------------------------
10644
 
5172 dpurdie 10645
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_RELEASE" IS
3959 dpurdie 10646
 
1373 dpurdie 10647
/*-------------------------------------------------------------------------------------------------------*/
5502 dpurdie 10648
PROCEDURE New_Release ( sReleaseName IN VARCHAR2, 
10649
                        sReleaseComments IN VARCHAR2, 
10650
                        nProjId IN NUMBER, 
10651
                        nSourceRtagId IN NUMBER, 
10652
                        sIsBranched IN CHAR, 
10653
                        nUserId IN NUMBER,
10654
                        cOfficial IN CHAR DEFAULT 'N'
10655
                        ) IS
1373 dpurdie 10656
 
3959 dpurdie 10657
RtagId NUMBER;
10658
ParentRtagId NUMBER;
10659
RecCount NUMBER := 0;
10660
VtreeId NUMBER;
1373 dpurdie 10661
 
3959 dpurdie 10662
BEGIN
10663
   /*--------------- Business Rules Here -------------------*/
10664
   -- Check for missing parameters
10665
   IF (sReleaseName IS NULL) OR (nUserId IS NULL)
10666
   THEN
10667
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId );
1373 dpurdie 10668
 
3959 dpurdie 10669
   END IF;
1373 dpurdie 10670
 
3959 dpurdie 10671
 
10672
   -- Check for duplicate Release Names
10673
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
10674
     FROM RELEASE_TAGS rt
10675
    WHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )
10676
      AND rt.PROJ_ID = nProjId;
10677
 
10678
   IF (RecCount > 0) THEN
10679
      RAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');
10680
   END IF;
10681
   /*-------------------------------------------------------*/
10682
 
10683
 
10684
   -- Get rtag_id
10685
   SELECT SEQ_RTAG_ID.NEXTVAL INTO RtagId FROM DUAL;
10686
 
10687
   SELECT SEQ_VTREE_ID.NEXTVAL INTO VtreeId FROM DUAL;
10688
 
10689
 
10690
 
10691
   -- Get Parent RtagId
10692
   ParentRtagId := GET_PARENT_RTAG ( RtagId, nSourceRtagId, sIsBranched );
10693
 
10694
   -- If the parent RTAG is NOT in this project then we cannot use it.
10695
   -- We must re-assign the parent to be the new release's RTAG_ID instead
10696
   -- else it will not show up in the projects release tree (DEVI-55480)
10697
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
10698
     FROM RELEASE_TAGS rt
10699
    WHERE rt.RTAG_ID = ParentRtagId
10700
      AND rt.PROJ_ID = nProjId;
10701
 
10702
   IF (RecCount = 0) THEN
10703
     ParentRtagId := RtagId;
10704
   END IF;
10705
 
10706
   -- Create new release
10707
   INSERT INTO RELEASE_TAGS ( RTAG_ID, RTAG_NAME, DESCRIPTION, CREATED_STAMP, CREATOR_ID,
10708
                        OFFICIAL, REBUILD_ENV, REBUILD_STAMP,
10709
                        PARENT_RTAG_ID, PROJ_ID, VTREE_ID )
10710
   VALUES ( RtagId,
10711
          sReleaseName,
10712
          sReleaseComments,
10713
          ORA_SYSDATE,
10714
          nUserId,
5502 dpurdie 10715
          cOfficial,
3959 dpurdie 10716
          'N',
10717
          0,
10718
          ParentRtagId,
10719
          nProjId,
10720
          VtreeId );
10721
 
10722
   -- If a source release is provided, clone its config spec branch information into the new release (DEVI-56650)
10723
   IF (NOT nSourceRtagId IS NULL)
10724
   THEN
10725
      UPDATE RELEASE_TAGS rtd
10726
      SET rtd.config_spec_branch = (SELECT rts.CONFIG_SPEC_BRANCH FROM RELEASE_TAGS rts WHERE rts.RTAG_ID = nSourceRtagId)
10727
      WHERE rtd.RTAG_ID = RtagId;
10728
   END IF;
10729
 
10730
   -- Update display Order
10731
   UPDATE_DISPLAY_ORDER ( nProjId );
10732
 
10733
   /* Log Project Action */
10734
   Log_Project_Action ( nProjId, 'new_release', nUserId, sReleaseName, RtagId );
10735
 
10736
 
10737
   -- Import Release Contents
10738
   IF (NOT nSourceRtagId IS NULL) THEN
5502 dpurdie 10739
      Import_Release_Contents ( nSourceRtagId, RtagId, nUserId, 1 );
3959 dpurdie 10740
   END IF;
10741
 
10742
END;
10743
/*-------------------------------------------------------------------------------------------------------*/
10744
PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER ) IS
10745
 
10746
 
10747
BEGIN
10748
 
10749
 
10750
   /*--------------- Business Rules Here -------------------*/
10751
   /*-------------------------------------------------------*/
10752
 
10753
   UPDATE RELEASE_TAGS urt SET
10754
   urt.DISPLAY_ORDER = (
10755
                  SELECT qry.REC_NUM
10756
                    FROM (
10757
                        SELECT rel.*, ROWNUM AS REC_NUM
10758
                          FROM (
10759
 
10760
                                SELECT rt.RTAG_ID,
10761
                                    rt.DISPLAY_ORDER,
10762
                                     DECODE( rt.PARENT_RTAG_ID,
10763
                                             rt.RTAG_ID, 0, rt.PARENT_RTAG_ID ) AS PARENT_RTAG_ID
10764
                                FROM RELEASE_TAGS rt
10765
                               WHERE rt.PROJ_ID = nProjId
10766
 
10767
                                ) rel
10768
                        START WITH rel.PARENT_RTAG_ID = 0
10769
                        CONNECT BY PRIOR rel.RTAG_ID = rel.PARENT_RTAG_ID
10770
                        ORDER SIBLINGS BY rel.DISPLAY_ORDER
10771
                        ) qry
10772
                     WHERE qry.RTAG_ID = urt.RTAG_ID
10773
                  )
10774
   WHERE urt.PROJ_ID = nProjId;
10775
 
10776
END;
10777
/*-------------------------------------------------------------------------------------------------------*/
10778
PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER  ) IS
10779
 
10780
   nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
10781
   SeqNum NUMBER;
10782
 
10783
BEGIN
10784
 
10785
 
10786
   /*--------------- Business Rules Here -------------------*/
10787
   /*-------------------------------------------------------*/
10788
 
10789
   nIdCollector := IN_LIST_NUMBER ( sRtagIdList );
10790
 
10791
   -- Set start sequence number
10792
   SeqNum := 1;
10793
 
10794
   FOR i IN 1..nIdCollector.COUNT
10795
   LOOP
10796
 
10797
      -- Update new display order
10798
      UPDATE RELEASE_TAGS rt SET
10799
         rt.DISPLAY_ORDER = SeqNum
10800
       WHERE rt.PROJ_ID = nProjId
10801
         AND rt.RTAG_ID = nIdCollector(i);
10802
 
10803
      SeqNum := SeqNum + 1;
10804
 
10805
   END LOOP;
10806
 
10807
END;
10808
/*-------------------------------------------------------------------------------------------------------*/
5502 dpurdie 10809
PROCEDURE Update_Release ( nRtagId IN NUMBER,
10810
                           sReleaseName IN VARCHAR2,
10811
                           sReleaseComments IN VARCHAR2,
10812
                           nParentRtagId IN NUMBER,
10813
                           nMASSRtagId IN NUMBER,
10814
                           nConfigSpecBranch IN VARCHAR2,
10815
                           sOwnerEmail IN VARCHAR2,
10816
                           nUserId IN NUMBER,
10817
                           cState IN VARCHAR,
5384 dpurdie 10818
                           nBuildAge in NUMBER,
10819
                           cLxr in CHAR) IS
3959 dpurdie 10820
 
10821
RecCount NUMBER := 0;
10822
ProjId NUMBER;
10823
 
10824
BEGIN
10825
 
10826
 
10827
   /*--------------- Business Rules Here -------------------*/
10828
   -- Check for missing parameters
10829
   IF (sReleaseName IS NULL) OR (nUserId IS NULL) OR (nRtagId IS NULL)
10830
   THEN
10831
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId ||', nRtagId='|| nRtagId);
10832
 
10833
   END IF;
10834
 
10835
 
10836
   -- Check for duplicate Release Names
10837
   SELECT rt.PROJ_ID INTO ProjId
10838
     FROM RELEASE_TAGS rt
10839
    WHERE rt.RTAG_ID = nRtagId;
10840
 
10841
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
10842
     FROM RELEASE_TAGS rt
10843
    WHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )
10844
      AND rt.RTAG_ID != nRtagId
10845
      AND rt.PROJ_ID = ProjId;
10846
 
10847
 
10848
   IF (RecCount > 0) THEN
10849
      RAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');
10850
   END IF;
10851
   /*-------------------------------------------------------*/
10852
 
10853
 
10854
 
10855
   -- Update release details
10856
   UPDATE RELEASE_TAGS rt SET
10857
   rt.RTAG_NAME = sReleaseName,
10858
   rt.DESCRIPTION = sReleaseComments,
10859
   rt.PARENT_RTAG_ID = nParentRtagId,
10860
   rt.ASSOC_MASS_REF = nMASSRtagId,
10861
   rt.CONFIG_SPEC_BRANCH = nConfigSpecBranch,
10862
   rt.OWNER_EMAIL = sOwnerEmail,
5172 dpurdie 10863
   rt.PRODUCT_STATE_USED = cState,
5384 dpurdie 10864
   rt.BUILD_AGE = nBuildAge,
10865
   rt.LXR = cLxr
3959 dpurdie 10866
   WHERE rt.RTAG_ID = nRtagId;
10867
 
10868
   -- Update display Order
10869
   UPDATE_DISPLAY_ORDER ( ProjId );
10870
 
10871
   /* Log Project Action */
10872
   Log_Project_Action ( ProjId, 'update_release', nUserId, 'Release Name: <br>Release Comments:', nRtagId );
10873
 
10874
 
10875
 
10876
 
10877
END;
10878
/*-------------------------------------------------------------------------------------------------------*/
10879
PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER ) IS
10880
 
10881
   RecCount NUMBER := 0;
10882
   sReleaseId VARCHAR2(4000);
10883
   ProjId NUMBER;
10884
 
10885
BEGIN
10886
   /*--------------- Business Rules Here -------------------*/
10887
   IF (nRtagId IS NULL)
10888
   THEN
10889
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId  );
10890
   END IF;
10891
 
10892
 
10893
 
10894
   -- Check for any kids
10895
   SELECT COUNT( rt.RTAG_ID ) INTO RecCount
10896
     FROM RELEASE_TAGS rt
10897
    WHERE rt.PARENT_RTAG_ID = nRtagId
10898
      AND rt.RTAG_ID != rt.PARENT_RTAG_ID;
10899
 
10900
   IF (RecCount > 0) THEN
10901
      RAISE_APPLICATION_ERROR (-20000, 'Cannot destroy this release. You need to destroy its children releases first.'  );
10902
   END IF;
10903
   /*-------------------------------------------------------*/
10904
 
10905
   -- Clear the release contents
10906
   Clean_Release_Contents ( nRtagId, nUserId );
10907
 
10908
   /* Log Project Action */
10909
   SELECT rt.PROJ_ID, rt.RTAG_NAME ||'['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']' INTO ProjId, sReleaseId
10910
     FROM RELEASE_TAGS rt
10911
    WHERE rt.RTAG_ID = nRtagId;
10912
 
10913
   Log_Project_Action ( ProjId, 'destroy_release', nUserId, sReleaseId, nRtagId );
10914
 
10915
 
10916
   -- Remove Release
10917
   DELETE
10918
     FROM RELEASE_TAGS rt
10919
    WHERE rt.RTAG_ID = nRtagId;
10920
 
10921
 
10922
 
10923
END;
10924
/*-------------------------------------------------------------------------------------------------------*/
5502 dpurdie 10925
PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER, nMode IN NUMBER default 0 ) IS
3959 dpurdie 10926
 
10927
   sSourceLocation VARCHAR2(4000);
10928
   sTargetLocation VARCHAR2(4000);
10929
   ProjId NUMBER;
10930
   cReleaseMode CHAR(1);
10931
   RconId NUMBER;
10932
 
10933
   -- this cursor gets the source release daemon configurations, ensuring that the
10934
   -- first record will be the master daemon, and subsequent records will be the slaves.
10935
   CURSOR curSrcReleaseConfigs IS
4308 dpurdie 10936
    SELECT daemon_hostname, gbe_id, gbe_buildfilter, bmcon_id, daemon_mode
3959 dpurdie 10937
     FROM RELEASE_CONFIG rc
10938
    WHERE rc.RTAG_ID = nSourceRtagId
10939
    ORDER BY rc.daemon_mode;
10940
    recSrcReleaseConfigs curSrcReleaseConfigs%ROWTYPE;
10941
 
10942
    -- this cursor looks for target release daemons
10943
   CURSOR curTgtReleaseConfigs IS
10944
    SELECT rcon_id
10945
     FROM RELEASE_CONFIG rc
10946
    WHERE rc.RTAG_ID = nTargetRtagId;
10947
    recTgtReleaseConfigs curTgtReleaseConfigs%ROWTYPE;
10948
 
10949
    -- this cursor looks for target release daemon run level entries
10950
   CURSOR curTgtReleaseConfigRunLevel IS
10951
    SELECT current_run_level
10952
     FROM RUN_LEVEL rl
10953
    WHERE rl.RCON_ID = recTgtReleaseConfigs.rcon_id;
10954
    recTgtReleaseConfigRunLevel curTgtReleaseConfigRunLevel%ROWTYPE;
10955
 
10956
BEGIN
10957
   /*--------------- Business Rules Here -------------------*/
10958
   IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)
10959
   THEN
10960
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );
10961
   END IF;
10962
 
10963
   IF (nSourceRtagId = nTargetRtagId) THEN
10964
      RAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );
10965
   END IF;
10966
 
10967
 
10968
   -- Check if Target release is in OPEN mode
5502 dpurdie 10969
   IF nMode = 0 THEN
10970
     SELECT rt.OFFICIAL  INTO  cReleaseMode
10971
       FROM RELEASE_TAGS rt
10972
      WHERE rt.RTAG_ID = nTargetRtagId;
10973
 
10974
     IF (cReleaseMode != 'N') THEN
10975
        RAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the contents.' );
10976
     END IF;
10977
  END IF;
3959 dpurdie 10978
 
10979
   -- check that the target release's daemons are all paused before we allow an import operation
10980
   OPEN curTgtReleaseConfigs;
10981
   FETCH curtgtReleaseConfigs INTO recTgtReleaseConfigs;
10982
 
10983
   WHILE curTgtReleaseConfigs%FOUND
10984
   LOOP
10985
      OPEN curTgtReleaseConfigRunLevel;
10986
      FETCH curTgtReleaseConfigRunLevel INTO recTgtReleaseConfigRunLevel;
10987
      IF curTgtReleaseConfigRunLevel%FOUND THEN
10988
         IF (recTgtReleaseConfigRunLevel.current_run_level IS NULL) OR
10989
            (recTgtReleaseConfigRunLevel.current_run_level <> 2) THEN
10990
            RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
10991
         END IF;
1373 dpurdie 10992
      ELSE
3959 dpurdie 10993
         -- we don't know what the daemon run level is so err on the side of caution
10994
         RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
1373 dpurdie 10995
      END IF;
3959 dpurdie 10996
      CLOSE curTgtReleaseConfigRunLevel;
1373 dpurdie 10997
 
3959 dpurdie 10998
      FETCH curTgtReleaseConfigs INTO recTgtReleaseConfigs;
10999
   END LOOP;
1373 dpurdie 11000
 
3959 dpurdie 11001
   CLOSE curTgtReleaseConfigs;
1373 dpurdie 11002
 
11003
 
3959 dpurdie 11004
   /*-------------------------------------------------------*/
1373 dpurdie 11005
 
3959 dpurdie 11006
   -- Clean target contents
11007
   Clean_Release_Contents ( nTargetRtagId, nUserId );
1373 dpurdie 11008
 
11009
 
3959 dpurdie 11010
   -- Import Released Area Contents
5502 dpurdie 11011
   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 11012
   SELECT nTargetRtagId AS RTAG_ID,
11013
         rc.PV_ID,
11014
         rc.BASE_VIEW_ID,
11015
         rc.INSERT_STAMP,
11016
         rc.INSERTOR_ID,
11017
         rc.PKG_STATE,
11018
         rc.PKG_ID,
5384 dpurdie 11019
         rc.DEPRECATED_STATE,
11020
         rc.PRODUCT_STATE,
11021
         rc.SDKTAG_ID
3959 dpurdie 11022
     FROM RELEASE_CONTENT rc
11023
    WHERE rc.RTAG_ID = nSourceRtagId;
11024
 
11025
 
11026
   -- Import any Pegged Version settings from the source release
11027
   INSERT INTO PEGGED_VERSIONS ( RTAG_ID, PV_ID )
11028
   SELECT nTargetRtagId AS RTAG_ID,
11029
          pegv.PV_ID
11030
     FROM PEGGED_VERSIONS pegv
11031
    WHERE pegv.RTAG_ID = nSourceRtagId;
11032
 
11033
   -- Import any Advisory Ripple settings from the source release
11034
   INSERT INTO ADVISORY_RIPPLE ( RTAG_ID, PV_ID )
11035
   SELECT nTargetRtagId AS RTAG_ID,
11036
          avr.PV_ID
11037
     FROM ADVISORY_RIPPLE avr
11038
    WHERE avr.RTAG_ID = nSourceRtagId;
11039
 
11040
 
11041
   --Import Release Configuration Information
11042
   OPEN curSrcReleaseConfigs;
11043
   FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
11044
 
4308 dpurdie 11045
     WHILE curSrcReleaseConfigs%FOUND
3959 dpurdie 11046
   LOOP
11047
      -- add a daemon to the target release
5502 dpurdie 11048
      PK_BUILDAPI.duplicate_daemon_config( nTargetRtagId,
11049
                                     recSrcReleaseConfigs.bmcon_id,
11050
                                     recSrcReleaseConfigs.daemon_hostname,
11051
                                     recSrcReleaseConfigs.gbe_id,
4308 dpurdie 11052
                                     recSrcReleaseConfigs.daemon_mode ,
11053
                                     recSrcReleaseConfigs.gbe_buildfilter );
3959 dpurdie 11054
 
11055
      FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
11056
   END LOOP;
11057
 
11058
   CLOSE curSrcReleaseConfigs;
11059
 
11060
 
11061
 
11062
   -- Import Ignore Warning states
11063
   INSERT INTO IGNORE_WARNINGS ( RTAG_ID, PV_ID, DPV_ID )
11064
   SELECT nTargetRtagId AS RTAG_ID,
11065
          igw.PV_ID,
11066
          igw.DPV_ID
11067
     FROM IGNORE_WARNINGS igw
11068
    WHERE igw.rtag_id = nSourceRtagId;
11069
 
11070
 
11071
   /* Log Project Action */
11072
   -- Get Source Location
11073
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sSourceLocation
11074
     FROM RELEASE_TAGS rt,
11075
           PROJECTS pr
11076
    WHERE rt.PROJ_ID = pr.PROJ_ID
11077
      AND rt.RTAG_ID = nSourceRtagId;
11078
 
11079
   -- Get Target Location
11080
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sTargetLocation
11081
     FROM RELEASE_TAGS rt,
11082
           PROJECTS pr
11083
    WHERE rt.PROJ_ID = pr.PROJ_ID
11084
      AND rt.RTAG_ID = nTargetRtagId;
11085
 
11086
   -- Get project id
11087
   SELECT rt.PROJ_ID  INTO  ProjId
11088
     FROM RELEASE_TAGS rt
11089
    WHERE rt.RTAG_ID = nTargetRtagId;
11090
 
11091
   Log_Project_Action ( ProjId, 'import_release_contents', nUserId, 'SOURCE: '|| sSourceLocation ||'   TARGET: '|| sTargetLocation, nTargetRtagId );
11092
END;
11093
 
11094
 
11095
 
1373 dpurdie 11096
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11097
PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER ) IS
1373 dpurdie 11098
 
3959 dpurdie 11099
   RecCount NUMBER;
11100
        rconIdList VARCHAR2(4000);
1373 dpurdie 11101
 
3959 dpurdie 11102
BEGIN
11103
   /*--------------- Business Rules Here -------------------*/
11104
   IF (nRtagId IS NULL)
11105
   THEN
11106
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId  );
11107
   END IF;
1373 dpurdie 11108
 
11109
 
3959 dpurdie 11110
   -- Check if other release references this release
11111
   SELECT COUNT( rl.RTAG_ID ) INTO RecCount
11112
     FROM RELEASE_LINKS rl
11113
    WHERE rl.REF_RTAG_ID = nRtagId;
1373 dpurdie 11114
 
3959 dpurdie 11115
   IF (RecCount > 0) THEN
11116
      RAISE_APPLICATION_ERROR (-20000, 'This release is referenced by other release and cannot be destroyed.'  );
11117
   END IF;
11118
   /*-------------------------------------------------------*/
1373 dpurdie 11119
 
3959 dpurdie 11120
   -- Delete Release links
11121
   DELETE
11122
     FROM RELEASE_LINKS rl
11123
    WHERE rl.RTAG_ID = nRtagId;
11124
 
11125
   -- Delete ignore warning
11126
   DELETE
11127
     FROM IGNORE_WARNINGS iw
11128
    WHERE iw.RTAG_ID = nRtagId;
11129
 
11130
 
11131
   -- Delete Build Order cached calculations
11132
   DELETE
11133
     FROM BUILD_ORDER bo
11134
    WHERE bo.RTAG_ID = nRtagId;
11135
 
11136
 
11137
   -- Delete Notification History
11138
   DELETE
11139
     FROM NOTIFICATION_HISTORY nh
11140
    WHERE nh.RTAG_ID = nRtagId;
11141
 
11142
 
11143
   -- Delete Released Area Contents
11144
   DELETE
11145
     FROM RELEASE_CONTENT rc
11146
    WHERE rc.RTAG_ID = nRtagId;
11147
 
11148
 
11149
   -- Delete Work In Progress Area Contents
11150
   DELETE
11151
     FROM WORK_IN_PROGRESS wip
11152
    WHERE wip.RTAG_ID = nRtagId;
11153
 
11154
 
11155
   -- Delete Pending Area Contents
11156
   DELETE
11157
     FROM PLANNED pl
11158
    WHERE pl.RTAG_ID = nRtagId;
11159
 
11160
   -- Delete Deprecated Packages
11161
   DELETE
11162
     FROM DEPRECATED_PACKAGES dp
11163
    WHERE dp.RTAG_ID = nRtagId;
11164
 
11165
   -- Delete Project Action Log
11166
   DELETE
11167
     FROM PROJECT_ACTION_LOG pal
11168
    WHERE pal.RTAG_ID = nRtagId;
11169
 
11170
   -- Delete Do Not Ripple Contents
11171
   DELETE
11172
     FROM DO_NOT_RIPPLE dnr
11173
    WHERE dnr.RTAG_ID = nRtagId;
11174
 
11175
   -- Delete Dash Board Contents
11176
   DELETE
11177
     FROM DASH_BOARD db
11178
    WHERE db.RTAG_ID = nRtagId;
11179
 
11180
   -- Delete Advisory Ripple Contents
11181
   DELETE
11182
     FROM ADVISORY_RIPPLE adr
11183
    WHERE adr.RTAG_ID = nRtagId;
11184
 
11185
   -- Delete Archive Action Log
11186
   DELETE
11187
     FROM ARCHIVE_ACTION_LOG aal
11188
    WHERE aal.RTAG_ID = nRtagId;
11189
 
11190
   -- Delete Daemons For This Release
11191
   FOR rcon IN (SELECT rc.RCON_ID FROM RELEASE_CONFIG rc WHERE rc.RTAG_ID = nRtagId )
11192
   LOOP
11193
      rconIdList := rconIdList || rcon.RCON_ID || ',';
11194
   END LOOP;
11195
 
11196
   pk_buildapi.DELETE_DAEMON(rconIdList);
11197
 
11198
   -- Delete Release Metrics Contents
11199
   DELETE
11200
     FROM RELEASE_METRICS rm
11201
    WHERE rm.RTAG_ID = nRtagId;
11202
 
11203
   -- Delete Release Configuration Contents
11204
   DELETE
11205
     FROM RELEASE_CONFIG rc
11206
    WHERE rc.RTAG_ID = nRtagId;
11207
 
11208
   -- Delete Pegged Version Contents
11209
   DELETE
11210
     FROM PEGGED_VERSIONS pegv
11211
    WHERE pegv.RTAG_ID = nRtagId;
11212
 
11213
END;
11214
/*-------------------------------------------------------------------------------------------------------*/
11215
FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR )  RETURN NUMBER IS
11216
 
11217
   nSourceParentRtagId NUMBER;
11218
 
11219
BEGIN
11220
   /*--------------- Business Rules Here -------------------*/
11221
   IF (nRtagId IS NULL) OR (cIsBranch IS NULL)
11222
   THEN
11223
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId ||', cIsBranch= '|| cIsBranch );
11224
   END IF;
11225
   /*-------------------------------------------------------*/
11226
 
11227
 
11228
   IF ( nSourceRtagId IS NULL ) THEN
11229
      -- Create new on main branch
11230
      RETURN nRtagId;
11231
 
11232
   ELSE
11233
      -- Create from source rtag_id
11234
 
11235
      -- Find parent of Source RtagId
11236
      SELECT rt.PARENT_RTAG_ID INTO nSourceParentRtagId
11237
        FROM RELEASE_TAGS rt
11238
       WHERE rt.RTAG_ID = nSourceRtagId;
11239
 
11240
      IF (UPPER(cIsBranch) = 'Y') THEN
11241
         RETURN nSourceRtagId;
11242
      ELSE
11243
         IF (nSourceRtagId = nSourceParentRtagId) THEN
11244
            RETURN nRtagId;
11245
         ELSE
11246
            RETURN nSourceParentRtagId;
1373 dpurdie 11247
         END IF;
11248
      END IF;
11249
 
3959 dpurdie 11250
 
11251
   END IF;
11252
 
11253
 
11254
END;
1373 dpurdie 11255
/*-------------------------------------------------------------------------------------------------------*/
11256
 
3959 dpurdie 11257
-- PROCEDURE Get_Next_Version ( nSourceRtagId IN NUMBER,
11258
--                       sNextVersion OUT VARCHAR2,
11259
--                       nNextLifeCycle OUT NUMBER,
11260
--                       nParentRtagId OUT NUMBER,
11261
--                       nProjId IN NUMBER ) IS
11262
--
11263
-- SourceBranchCount NUMBER;
11264
-- ProjRootVersion VARCHAR2(4000);
11265
-- LastLifeCycle NUMBER;
11266
-- ROOT_VERSION_NOT_FOUND NUMBER := -1;
11267
-- SET_PARENT_AS_YOURSELF NUMBER := -1;
11268
--
11269
-- SourceProjId NUMBER;
11270
-- SourceVersion RELEASE_TAGS.RTAG_VERSION%TYPE;
11271
-- SourceLifeCycle RELEASE_TAGS.RTAG_LIFE_CYCLE%TYPE;
11272
--
11273
-- BEGIN
11274
--    /*--------------- Business Rules Here -------------------*/
11275
--    /*-------------------------------------------------------*/
11276
--
11277
--
11278
--    BEGIN
11279
--       -- Get Project root version
11280
--       SELECT rt.RTAG_VERSION INTO ProjRootVersion
11281
--         FROM RELEASE_TAGS rt
11282
--        WHERE rt.PROJ_ID = nProjId
11283
--          AND rt.RTAG_ID = rt.PARENT_RTAG_ID;
11284
--
11285
--       EXCEPTION
11286
--       WHEN NO_DATA_FOUND THEN
11287
--       ProjRootVersion := ROOT_VERSION_NOT_FOUND;
11288
--    END;
11289
--
11290
--
11291
--
11292
--
11293
--    BEGIN
11294
--       -- Get info for source rtagid
11295
--       SELECT rt.PROJ_ID, rt.RTAG_VERSION, rt.RTAG_LIFE_CYCLE  INTO  SourceProjId, SourceVersion, SourceLifeCycle
11296
--         FROM RELEASE_TAGS rt
11297
--        WHERE rt.RTAG_ID = nSourceRtagId;
11298
--
11299
--       EXCEPTION
11300
--       WHEN NO_DATA_FOUND THEN
11301
--       SourceProjId := NULL;
11302
--       SourceVersion := NULL;
11303
--       SourceLifeCycle := NULL;
11304
--    END;
11305
--
11306
--
11307
--    IF (nSourceRtagId IS NULL)  OR  ( SourceProjId != nProjId ) THEN
11308
--
11309
--       /* Blank Release Required  OR  Release imported from other project */
11310
--
11311
--       IF (ProjRootVersion = ROOT_VERSION_NOT_FOUND) THEN
11312
--          /* No Releases found in the project, hence calculate next version available.  */
11313
--
11314
--          -- Set parent rtag
11315
--          nParentRtagId := SET_PARENT_AS_YOURSELF;
11316
--
11317
--
11318
--          BEGIN
11319
--             -- Get Next Available Global Root Version
11320
--             SELECT MAX( TO_NUMBER( rt.RTAG_VERSION ) )  INTO  ProjRootVersion
11321
--               FROM RELEASE_TAGS rt
11322
--              WHERE rt.RTAG_ID = rt.PARENT_RTAG_ID;
11323
--
11324
--             -- Set Next Rtag Version
11325
--             sNextVersion := CAST( ProjRootVersion + 1 AS VARCHAR2 );
11326
--
11327
--             -- Restart Lifecycle
11328
--             nNextLifeCycle := 0;
11329
--
11330
--
11331
--             EXCEPTION
11332
--             WHEN NO_DATA_FOUND THEN
11333
--             -- Release Manager has no releases, hence start from 1
11334
--             sNextVersion := '1';
11335
--             nNextLifeCycle := 0;
11336
--
11337
--          END;
11338
--
11339
--
11340
--
11341
--       ELSE
11342
--          /* Releases found in this project. */
11343
--
11344
--          SELECT qry.RTAG_ID, qry.RTAG_LIFE_CYCLE  INTO nParentRtagId, LastLifeCycle
11345
--            FROM (
11346
--                SELECT rt.RTAG_ID, rt.RTAG_LIFE_CYCLE
11347
--                  FROM RELEASE_TAGS rt
11348
--                 WHERE rt.PROJ_ID = nProjId
11349
--                   AND rt.RTAG_VERSION = ProjRootVersion
11350
--                 ORDER BY rt.RTAG_LIFE_CYCLE DESC
11351
--                  ) qry
11352
--           WHERE ROWNUM = 1;
11353
--
11354
--
11355
--          -- Set same Rtag Version
11356
--          sNextVersion := ProjRootVersion;
11357
--
11358
--          -- Increase Lifecycle
11359
--          nNextLifeCycle := LastLifeCycle + 1;
11360
--
11361
--       END IF;
11362
--
11363
--
11364
--
11365
--    ELSE
11366
--       /* Create Release From other release within this project */
11367
--
11368
--       -- Set parent id
11369
--       nParentRtagId := nSourceRtagId;
11370
--
11371
--
11372
--       -- Get number of source branches
11373
--       SELECT COUNT(rt.RTAG_ID) INTO SourceBranchCount
11374
--         FROM RELEASE_TAGS rt
11375
--        WHERE rt.PROJ_ID = nProjId
11376
--          AND rt.PARENT_RTAG_ID = nSourceRtagId;
11377
--
11378
--
11379
--       IF SourceBranchCount = 0 THEN
11380
--          /* Release is Head (i.e. Tip on its branch ) */
11381
--
11382
--          -- Set Next Rtag Version
11383
--          sNextVersion := SourceVersion;
11384
--
11385
--          -- Increase Lifecycle
11386
--          nNextLifeCycle := SourceLifeCycle + 1;
11387
--
11388
--
11389
--       ELSIF SourceBranchCount = 1 THEN
11390
--          /* Release IS NOT Head, but can be branched */
11391
--
11392
--          -- Set Next Rtag Version
11393
--          sNextVersion := SourceVersion ||'.'|| SourceLifeCycle;
11394
--
11395
--          -- Reset Lifecycle to 1
11396
--          nNextLifeCycle := 1;
11397
--
11398
--
11399
--       ELSE
11400
--          -- Limit of two branches is reached
11401
--          RAISE_APPLICATION_ERROR (-20000, 'This release is already branched and cannot be branched again. ');
11402
--
11403
--       END IF;
11404
--
11405
--
11406
--
11407
--
11408
--
11409
--
11410
--    END IF;
11411
--
11412
--
11413
-- END;
11414
 
11415
/*-------------------------------------------------------------------------------------------------------*/
11416
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
11417
 
11418
   IsBaseView CHAR(1);
11419
 
11420
BEGIN
11421
 
11422
   -- Check if the view is BASE VIEW
11423
   SELECT vi.BASE_VIEW INTO IsBaseView
11424
     FROM VIEWS vi
11425
    WHERE vi.VIEW_ID = ViewId;
11426
 
5172 dpurdie 11427
   IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 11428
      -- Get Base view content
11429
      OPEN RecordSet FOR
11430
      SELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,
11431
            rel.deprecated_state,
11432
            pv.pv_id,
11433
            pkg.pkg_name,
11434
            pv.pkg_version,
11435
            pv.dlocked,
11436
            pv.pv_description,
11437
            pv.BUILD_TYPE
11438
        FROM release_content rel,
11439
             packages pkg,
11440
             package_versions pv
11441
       WHERE pv.pkg_id = pkg.pkg_id
11442
         AND rel.pv_id = pv.pv_id
11443
         AND rel.BASE_VIEW_ID = ViewId
11444
         AND rel.RTAG_ID = RtagId
11445
       ORDER BY UPPER(pkg.PKG_NAME);
11446
 
11447
   ELSE
11448
 
11449
       -- Get non base view content
11450
      OPEN RecordSet FOR
11451
      SELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,
11452
            rel.deprecated_state,
11453
            pv.pv_id,
11454
            pkg.pkg_name,
11455
            pv.pkg_version,
11456
            pv.dlocked,
11457
            pv.pv_description,
11458
            pv.BUILD_TYPE
11459
        FROM release_content rel,
11460
             packages pkg,
11461
             package_versions pv,
11462
            VIEW_DEF vd
11463
       WHERE pv.pkg_id = pkg.pkg_id
11464
         AND rel.pv_id = pv.pv_id
11465
         AND vd.VIEW_ID = ViewId
11466
         AND vd.PKG_ID = pv.PKG_ID
11467
         AND rel.RTAG_ID = RtagId
11468
       ORDER BY UPPER(pkg.PKG_NAME);
11469
 
11470
   END IF;
11471
 
11472
 
11473
 
11474
 
11475
END;
11476
/*-------------------------------------------------------------------------------------------------------*/
4585 dpurdie 11477
  -- Add or Replace a package to the specified release
3959 dpurdie 11478
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
11479
   ReleaseLocation VARCHAR2(4000);
11480
   nPkgId NUMBER;
11481
   sVExt VARCHAR2(4000);
11482
   IsPatch PACKAGE_VERSIONS.IS_PATCH%TYPE := 'N';
5172 dpurdie 11483
   default_pegged CHAR := 'N';
11484
   default_advisory_ripple CHAR := 'N';
3959 dpurdie 11485
 
11486
   -- Find package for replacement
11487
   CURSOR curReplacePkg IS
11488
    SELECT pv.PV_ID
11489
     FROM RELEASE_CONTENT rc,
11490
           PACKAGE_VERSIONS pv
11491
    WHERE rc.PV_ID = pv.PV_ID
11492
      AND rc.RTAG_ID = RtagId
11493
      AND pv.PKG_ID = nPkgId
11494
      AND NVL( pv.V_EXT, 'LINK_A_NULL' ) = NVL( sVExt, 'LINK_A_NULL' );
11495
    recReplacePkg curReplacePkg%ROWTYPE;
11496
 
11497
BEGIN
11498
   -- Get is_patch, pkg_id and v_ext
5502 dpurdie 11499
   SELECT pv.IS_PATCH, pv.PKG_ID, pv.V_EXT
5172 dpurdie 11500
     INTO IsPatch, nPkgId, sVExt
3959 dpurdie 11501
     FROM PACKAGE_VERSIONS pv
11502
    WHERE pv.PV_ID = newPvId;
11503
 
11504
   -- Never put patch in relesed area
11505
   IF (IsPatch != 'Y') OR (IsPatch IS NULL) THEN
11506
 
11507
      -- Try to get a package to be replaced with this new one.
11508
      -- Use unique constraint of PKG_ID and V_EXT
11509
      OPEN curReplacePkg;
11510
       FETCH curReplacePkg INTO recReplacePkg;
11511
 
11512
       IF curReplacePkg%FOUND THEN
11513
         -- Replace package
11514
         REPLACE_PACKAGE ( newPvId, recReplacePkg.PV_ID, RtagId, UserId );
11515
 
11516
      ELSE
11517
         -- Add new package
11518
         INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )
11519
         VALUES( RtagId, newPvId, ViewId, Ora_Sysdate, UserId, 0);
5502 dpurdie 11520
 
5172 dpurdie 11521
        -- Insert default package flags
11522
        -- Get Package Level defaults
5502 dpurdie 11523
 
11524
        SELECT pkg.default_pegged, pkg.DEFAULT_ADVISORY_RIPPLE
5172 dpurdie 11525
         INTO  default_pegged, default_advisory_ripple
11526
         FROM  PACKAGES pkg
5502 dpurdie 11527
        WHERE  pkg.PKG_ID = nPkgId;
3959 dpurdie 11528
 
5172 dpurdie 11529
        -- Apply to the newly inserted package
11530
        IF default_pegged = 'Y' THEN
11531
          INSERT INTO PEGGED_VERSIONS ( RTAG_ID, PV_ID ) VALUES (RtagId, newPvId);
11532
          -- Log_Action ( newPvId, 'action', UserId, 'Set default package peg' );
11533
        END IF;
5502 dpurdie 11534
 
5172 dpurdie 11535
        IF default_advisory_ripple = 'Y' THEN
11536
          INSERT INTO ADVISORY_RIPPLE ( RTAG_ID, PV_ID ) VALUES (RtagId, newPvId);
11537
          -- Log_Action ( newPvId, 'action', UserId, 'Set default advisory ripple' );
11538
        END IF;
3959 dpurdie 11539
 
5172 dpurdie 11540
        -- Mark Release as chnaged
11541
        SET_RELEASE_MODIFIED(RtagId);
11542
        RUN_POST_ACTIONS(newPvId, RtagId);
5502 dpurdie 11543
 
3959 dpurdie 11544
          /* LOG ACTION */
11545
         SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11546
           FROM PROJECTS proj,
11547
                 RELEASE_TAGS rt
11548
          WHERE rt.PROJ_ID = proj.PROJ_ID
11549
            AND rt.RTAG_ID = RtagId;
11550
 
11551
         Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );
11552
 
1373 dpurdie 11553
      END IF;
3959 dpurdie 11554
      CLOSE curReplacePkg;
11555
   END IF;
5172 dpurdie 11556
END;
3959 dpurdie 11557
 
1373 dpurdie 11558
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11559
PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 11560
 
3959 dpurdie 11561
   ReleaseLocation VARCHAR2(4000);
11562
   sPkgVersion VARCHAR2(4000);
5172 dpurdie 11563
   nSdkTag NUMBER;
3959 dpurdie 11564
BEGIN
5172 dpurdie 11565
   -- Trap SDK Replacement
11566
   -- This is a last ditch check. The application should not allow this condition to happen
11567
      SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
11568
      WHERE rtag_id = RtagId
11569
       AND pv_id = oldPvId;
5502 dpurdie 11570
 
5172 dpurdie 11571
     If nSdkTag IS NOT NULL  THEN
11572
       raise_application_error (-20000, 'Attempt to replace a package provided by an SDK.');
11573
     END IF;
3959 dpurdie 11574
 
11575
   -- Replace Package
11576
    UPDATE RELEASE_CONTENT
11577
       SET pv_id = newPvId,
11578
           insert_stamp = Ora_Sysdate,
11579
           insertor_id = UserId,
11580
         product_state = NULL
11581
     WHERE rtag_id = RtagId
11582
       AND pv_id = oldPvId;
11583
 
11584
   -- update the pegging table
11585
   UPDATE PEGGED_VERSIONS
11586
      SET pv_id = newPvId
11587
     WHERE rtag_id = RtagId
11588
       AND pv_id = oldPvId;
11589
 
11590
   -- update the advisory_ripple table
11591
   UPDATE ADVISORY_RIPPLE
11592
      SET pv_id = newPvId
11593
     WHERE rtag_id = RtagId
11594
       AND pv_id = oldPvId;
11595
 
11596
    /* LOG ACTION */
11597
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11598
     FROM PROJECTS proj,
11599
           RELEASE_TAGS rt
11600
    WHERE rt.PROJ_ID = proj.PROJ_ID
11601
      AND rt.RTAG_ID = RtagId;
11602
 
11603
   SELECT pv.PKG_VERSION INTO sPkgVersion
11604
     FROM PACKAGE_VERSIONS pv
11605
    WHERE pv.PV_ID = newPvId;
11606
 
5172 dpurdie 11607
   SET_RELEASE_MODIFIED(RtagId);
3959 dpurdie 11608
   Log_Action ( oldPvId, 'replaced_with', UserId, 'Replacing with: '|| sPkgVersion ||' at '|| ReleaseLocation );
11609
   Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );
11610
 
11611
END;
11612
/*-------------------------------------------------------------------------------------------------------*/
11613
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
11614
   ReleaseLocation VARCHAR2(4000);
5172 dpurdie 11615
   nSdkTag NUMBER;
3959 dpurdie 11616
BEGIN
5172 dpurdie 11617
   -- Trap SDK Package Deletion
11618
   -- This is a last ditch check. The application should not allow this condition to happen
11619
      SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
11620
      WHERE rtag_id = RtagId
11621
       AND pv_id = PvId;
5502 dpurdie 11622
 
5172 dpurdie 11623
     If nSdkTag IS NOT NULL  THEN
11624
       raise_application_error (-20000, 'Attempt to delete a package provided by an SDK.');
11625
     END IF;
3959 dpurdie 11626
 
11627
   -- Delete old package
11628
   DELETE
11629
     FROM RELEASE_CONTENT rc
11630
    WHERE rc.PV_ID = PvId
11631
      AND rc.RTAG_ID = RtagId;
11632
 
11633
 
11634
   /* LOG ACTION */
11635
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11636
     FROM PROJECTS proj,
11637
          RELEASE_TAGS rt
11638
    WHERE rt.PROJ_ID = proj.PROJ_ID
11639
      AND rt.RTAG_ID = RtagId;
11640
 
11641
   Log_Action ( PvId, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );
11642
 
11643
 
11644
END;
11645
/*-------------------------------------------------------------------------------------------------------*/
11646
PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
11647
   ReleaseLocation VARCHAR2(4000);
11648
 
11649
   CURSOR curMatchingPackage IS
11650
    SELECT mpv.PV_ID
11651
     FROM RELEASE_CONTENT rc,
11652
           PACKAGE_VERSIONS mpv,
11653
         PACKAGE_VERSIONS pv
11654
    WHERE rc.PV_ID = mpv.PV_ID
11655
      AND rc.RTAG_ID = RtagId
11656
      AND pv.PV_ID = PvId
11657
      AND pv.PKG_ID = mpv.PKG_ID
11658
      AND NVL( pv.V_EXT, '|LINK_A_NULL|' ) = NVL( mpv.V_EXT, '|LINK_A_NULL|' );
11659
    recMatchingPackage curMatchingPackage%ROWTYPE;
11660
 
11661
BEGIN
11662
 
11663
   OPEN curMatchingPackage;
11664
    FETCH curMatchingPackage INTO recMatchingPackage;
11665
 
11666
    IF curMatchingPackage%FOUND THEN
11667
      -- Delete old package
11668
      DELETE
11669
        FROM RELEASE_CONTENT rc
11670
       WHERE rc.PV_ID = recMatchingPackage.PV_ID
11671
         AND rc.RTAG_ID = RtagId;
11672
 
11673
 
11674
      /* LOG ACTION */
11675
      SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11676
        FROM PROJECTS proj,
11677
              RELEASE_TAGS rt
11678
       WHERE rt.PROJ_ID = proj.PROJ_ID
11679
         AND rt.RTAG_ID = RtagId;
11680
 
11681
      Log_Action ( recMatchingPackage.PV_ID, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );
11682
 
11683
   END IF;
11684
 
11685
 
11686
   CLOSE curMatchingPackage;
11687
 
11688
 
11689
 
11690
 
11691
END;
11692
/*-------------------------------------------------------------------------------------------------------*/
11693
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
11694
 
11695
   ReturnValue NUMBER;
11696
 
11697
BEGIN
11698
   SELECT rc.BASE_VIEW_ID INTO ReturnValue
11699
     FROM RELEASE_CONTENT rc
11700
    WHERE rc.RTAG_ID = RtagId
11701
      AND rc.PV_ID = PvId;
11702
 
11703
   RETURN ReturnValue;
11704
END;
11705
/*-------------------------------------------------------------------------------------------------------*/
11706
PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER ) IS
11707
 
11708
BEGIN
11709
   -- Reset Ignore warnings up-the-tree
11710
   RESET_IGNORE_WARNINGS ( TO_CHAR(PvId), RtagId );
11711
 
11712
   -- Refresh Package states
11713
   TOUCH_RELEASE ( RtagId );
11714
 
11715
END;
11716
/*-------------------------------------------------------------------------------------------------------*/
11717
PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER ) IS
11718
   CURSOR curReleases IS
11719
    SELECT rc.RTAG_ID
11720
     FROM RELEASE_CONTENT rc
11721
    WHERE rc.PV_ID = PvId;
11722
    recReleases curReleases%ROWTYPE;
11723
 
11724
BEGIN
11725
 
11726
   OPEN curReleases;
11727
    FETCH curReleases INTO recReleases;
11728
 
11729
   WHILE curReleases%FOUND
11730
   LOOP
11731
 
11732
      RUN_POST_ACTIONS ( PvId, recReleases.RTAG_ID );
11733
 
11734
      FETCH curReleases INTO recReleases;
11735
   END LOOP;
11736
 
11737
   CLOSE curReleases;
11738
 
11739
END;
11740
/*-------------------------------------------------------------------------------------------------------*/
11741
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
11742
 
11743
BEGIN
11744
 
11745
   UPDATE RELEASE_CONTENT rc SET
11746
   rc.BASE_VIEW_ID = NewViewId
11747
   WHERE rc.PV_ID = PvId
11748
     AND rc.RTAG_ID = RtagId;
11749
 
11750
END;
11751
/*-------------------------------------------------------------------------------------------------------*/
11752
PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 ) IS
11753
 
11754
   RowCount NUMBER;
11755
 
11756
 
11757
   CURSOR curPackageClash IS
11758
   SELECT pkg.PKG_NAME,
11759
         er.*
11760
     FROM (
11761
 
11762
           /* Get existing referenced packages */
11763
         SELECT pv.PKG_ID,
11764
                pv.V_EXT
11765
           FROM RELEASE_LINKS rl,
11766
                 RELEASE_CONTENT rc,
11767
                 PACKAGE_VERSIONS pv
11768
          WHERE rl.RTAG_ID = nRtagId
11769
            AND rl.REF_RTAG_ID = rc.RTAG_ID
11770
            AND rc.PV_ID = pv.PV_ID
11771
 
11772
            ) er,
11773
         (
11774
 
11775
         /* Get current reference packages */
11776
         SELECT pv.PKG_ID,
11777
                pv.V_EXT
11778
           FROM RELEASE_CONTENT rc,
11779
                 PACKAGE_VERSIONS pv
11780
          WHERE rc.RTAG_ID = nRefRtagId
11781
            AND rc.PV_ID = pv.PV_ID
11782
 
11783
         ) cr,
11784
         PACKAGES PKG
11785
    WHERE er.PKG_ID = cr.PKG_ID
11786
      AND NVL(er.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
11787
      AND er.PKG_ID = pkg.PKG_ID;
11788
 
11789
   recPackageClash curPackageClash%ROWTYPE;
11790
 
11791
BEGIN
11792
   /*--------------- Business Rules Here -------------------*/
11793
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
11794
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
11795
   END IF;
11796
 
11797
   IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THEN
11798
      RAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );
11799
   END IF;
11800
   /*-------------------------------------------------------*/
11801
   ProblemString := NULL;
11802
 
11803
 
11804
   -- Check if release already has references
11805
   SELECT COUNT(rl.RTAG_ID)  INTO  RowCount
11806
     FROM RELEASE_LINKS rl
11807
    WHERE rl.RTAG_ID = nRtagId;
11808
 
11809
 
11810
   IF RowCount > 0 THEN
11811
      -- Found existing references
11812
 
11813
      -- Make sure there is no package clashes
11814
      OPEN curPackageClash;
11815
       FETCH curPackageClash INTO recPackageClash;
11816
 
11817
      IF curPackageClash%FOUND THEN
11818
 
5502 dpurdie 11819
         ProblemString := ProblemString ||'Following is partial list of package already referenced from other release:'|| PK_PACKAGE.CRLF;
3959 dpurdie 11820
 
11821
         WHILE curPackageClash%FOUND
11822
         LOOP
5502 dpurdie 11823
            EXIT WHEN LENGTH( ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT  || PK_PACKAGE.CRLF ) > 200;   -- Do not allow variable overflow
3959 dpurdie 11824
 
5502 dpurdie 11825
            ProblemString := ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT  || PK_PACKAGE.CRLF;
3959 dpurdie 11826
 
11827
            FETCH curPackageClash INTO recPackageClash;
11828
         END LOOP;
11829
 
1373 dpurdie 11830
      END IF;
11831
 
3959 dpurdie 11832
      CLOSE curPackageClash;
11833
 
11834
 
11835
   ELSE
11836
      -- No references found, hence reference a release
11837
 
11838
 
11839
      -- Remove exising package from this release to be referenced
11840
      REMOVE_RELEASE_REFERENCE ( nRtagId, nRefRtagId);
11841
 
11842
 
11843
      -- Add new linked packages to release
11844
      INSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE)
11845
      SELECT nRtagId,
11846
            rc.PV_ID,
11847
            rc.BASE_VIEW_ID,
11848
            rc.INSERT_STAMP,
11849
            rc.INSERTOR_ID,
11850
            rc.PKG_STATE
11851
        FROM RELEASE_CONTENT rc
11852
       WHERE rc.RTAG_ID = nRefRtagId;
11853
 
11854
 
11855
 
11856
      -- Copy ignore warnings for referenced packages
11857
      INSERT INTO IGNORE_WARNINGS iw (RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE)
11858
      SELECT nRtagId,
11859
            iw.PV_ID,
11860
            iw.DPV_ID,
11861
            iw.IS_PATCH_IGNORE
11862
        FROM IGNORE_WARNINGS iw,
11863
              RELEASE_CONTENT rc
11864
       WHERE iw.RTAG_ID = rc.RTAG_ID
11865
         AND iw.PV_ID = rc.PV_ID
11866
         AND rc.RTAG_ID = nRefRtagId;
11867
 
11868
 
11869
 
11870
      -- Reference release
11871
      INSERT INTO RELEASE_LINKS (RTAG_ID, REF_RTAG_ID)
11872
      VALUES ( nRtagId, nRefRtagId );
11873
 
11874
 
11875
      -- Refresh Package states
11876
      TOUCH_RELEASE ( nRtagId );
11877
 
11878
   END IF;
11879
 
11880
 
11881
END;
1373 dpurdie 11882
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11883
PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER ) IS
1373 dpurdie 11884
 
3959 dpurdie 11885
 
11886
BEGIN
11887
   /*--------------- Business Rules Here -------------------*/
11888
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
11889
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
11890
   END IF;
11891
 
11892
   IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THEN
11893
      RAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );
11894
   END IF;
11895
 
11896
   /*-------------------------------------------------------*/
11897
 
11898
 
11899
   -- Remove ignore warnings for those packages who use referenced packages
11900
   DELETE FROM IGNORE_WARNINGS iw
11901
    WHERE iw.RTAG_ID = nRtagId
11902
      AND iw.DPV_ID IN (
11903
                        SELECT dep.DPV_ID
11904
                       FROM (
11905
 
11906
                           /* Get referenced packages */
11907
                           SELECT pv.PKG_ID,
11908
                                  pv.V_EXT
11909
                             FROM RELEASE_CONTENT rc,
11910
                                   PACKAGE_VERSIONS pv
11911
                            WHERE rc.RTAG_ID = nRefRtagId
11912
                              AND rc.PV_ID = pv.PV_ID
11913
 
11914
                           ) cr,
11915
                           (
11916
 
11917
                           /* Get all dependencies for current release */
11918
                           SELECT DISTINCT
11919
                                 pv.PKG_ID,
11920
                                 pv.V_EXT,
11921
                                 dep.DPV_ID
11922
                             FROM RELEASE_CONTENT rc,
11923
                                 PACKAGE_DEPENDENCIES dep,
11924
                                 PACKAGE_VERSIONS pv
11925
                            WHERE rc.RTAG_ID = nRtagId
11926
                              AND rc.PV_ID = dep.PV_ID
11927
                              AND dep.PV_ID = pv.PV_ID
11928
 
11929
                           ) dep
11930
                      WHERE dep.PKG_ID = cr.PKG_ID
11931
                        AND NVL(dep.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
11932
                     );
11933
 
11934
 
11935
 
11936
 
11937
   -- Remove ignore warnings for those package which are going to be replaced with the reference
11938
   DELETE FROM IGNORE_WARNINGS iw
11939
    WHERE iw.RTAG_ID = nRtagId
11940
      AND iw.PV_ID IN (
11941
                  SELECT pv.PV_ID
11942
                    FROM (
11943
 
11944
                        /* Get referenced packages */
11945
                        SELECT pv.PKG_ID,
11946
                               pv.V_EXT
11947
                          FROM RELEASE_CONTENT rc,
11948
                                PACKAGE_VERSIONS pv
11949
                         WHERE rc.RTAG_ID = nRefRtagId
11950
                           AND rc.PV_ID = pv.PV_ID
11951
 
11952
                        ) cr,
11953
                        RELEASE_CONTENT rc,
11954
                        PACKAGE_VERSIONS pv
11955
                   WHERE pv.PKG_ID = cr.PKG_ID
11956
                     AND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
11957
                     AND rc.RTAG_ID = nRtagId
11958
                     AND rc.PV_ID = pv.PV_ID
11959
                  );
11960
 
11961
 
11962
 
11963
 
11964
 
11965
   -- Remove matching packages from release
11966
   DELETE FROM RELEASE_CONTENT rc
11967
    WHERE rc.RTAG_ID = nRtagId
11968
      AND rc.PV_ID IN (
11969
                  SELECT pv.PV_ID
11970
                    FROM (
11971
 
11972
                        /* Get referenced packages */
11973
                        SELECT pv.PKG_ID,
11974
                               pv.V_EXT
11975
                          FROM RELEASE_CONTENT rc,
11976
                                PACKAGE_VERSIONS pv
11977
                         WHERE rc.RTAG_ID = nRefRtagId
11978
                           AND rc.PV_ID = pv.PV_ID
11979
 
11980
                        ) cr,
11981
                        RELEASE_CONTENT rc,
11982
                        PACKAGE_VERSIONS pv
11983
                   WHERE pv.PKG_ID = cr.PKG_ID
11984
                     AND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
11985
                     AND rc.RTAG_ID = nRtagId
11986
                     AND rc.PV_ID = pv.PV_ID
11987
                  );
11988
 
11989
 
11990
 
11991
 
11992
 
11993
   -- Remove Reference release
11994
   DELETE
11995
     FROM RELEASE_LINKS rl
11996
    WHERE rl.RTAG_ID = nRtagId
11997
      AND rl.REF_RTAG_ID = nRefRtagId;
11998
 
11999
 
12000
   -- Refresh Package states
12001
   TOUCH_RELEASE ( nRtagId );
12002
 
12003
 
12004
END;
12005
/*-------------------------------------------------------------------------------------------------------*/
12006
PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR ) IS
12007
 
12008
   cReleaseMode CHAR(1);
12009
   cPvMode CHAR(1);
12010
 
12011
BEGIN
12012
 
12013
   -- Get Release Mode
12014
   SELECT rt.OFFICIAL INTO cReleaseMode
12015
     FROM RELEASE_TAGS rt
12016
    WHERE rt.RTAG_ID = RtagId;
12017
 
12018
 
12019
   -- Get Package Mode
12020
   SELECT pv.DLOCKED INTO cPvMode
12021
     FROM PACKAGE_VERSIONS pv
12022
    WHERE pv.PV_ID = PvId;
12023
 
12024
   -- Only check if package is locked
12025
   IF (cPvMode = 'Y') THEN
12026
 
12027
      IF (cReleaseMode != 'N') AND (Permission != 'Y')
1373 dpurdie 12028
      THEN
3959 dpurdie 12029
         RAISE_APPLICATION_ERROR (-20000, 'Cannot add package to this release. Release needs to be in Open Mode.' );
12030
 
1373 dpurdie 12031
      END IF;
12032
 
3959 dpurdie 12033
   END IF;
5172 dpurdie 12034
END;
3959 dpurdie 12035
 
5172 dpurdie 12036
/*-----------------------------------------------------------------------------*/
12037
PROCEDURE SET_RELEASE_MODIFIED (nRtagId IN NUMBER ) IS
12038
--
12039
--  Set flags to indicate that the specified release has changed for the
12040
--  purposes of building. (Not every single change)
12041
--
12042
--  Used by Build System to streamline build decisions
12043
--    Bump a sequence number
12044
--    Set a TimeStamp
12045
--
12046
--  Care must be taken to avoid concuency issues
12047
--  Must Insert or Update in a safe manner
12048
--
12049
--  This should be called whenever the package_versions in the release have changed in such
12050
--  a manner that the build daemons should examine the release. This includes:
12051
--   - Packages added, removed and version updated
12052
--   - Packages build status changed (re-included in the release)
12053
--   - Packages made Pending Build
12054
--   - Daemon instruction add/updated (Test Build)
12055
--
12056
--  Note: Not yet used (10-Oct-2014)
12057
--        Uses SEQ_RELEASE_MOD and Table: RELEASE_MODIFIED
12058
BEGIN
12059
 LOOP
12060
  BEGIN
12061
    MERGE INTO RELEASE_MODIFIED USING dual ON ( RTAG_ID=nRtagId )
5502 dpurdie 12062
      WHEN MATCHED THEN UPDATE SET SEQNUM=SEQ_RELEASE_MOD.NEXTVAL,TIMESTAMP=CURRENT_TIMESTAMP
12063
      WHEN NOT MATCHED THEN INSERT (RTAG_ID,TIMESTAMP,SEQNUM)
5172 dpurdie 12064
        VALUES (nRtagId, CURRENT_TIMESTAMP,SEQ_RELEASE_MOD.NEXTVAL );
12065
    EXIT; -- success? -> exit loop
12066
  EXCEPTION
12067
    WHEN NO_DATA_FOUND THEN -- the entry was concurrently deleted
12068
      NULL; -- exception? -> no op, i.e. continue looping
12069
    WHEN DUP_VAL_ON_INDEX THEN -- an entry was concurrently inserted
12070
      NULL; -- exception? -> no op, i.e. continue looping
12071
  END;
12072
 END LOOP;
12073
END;
3959 dpurdie 12074
 
5172 dpurdie 12075
/*-------------------------------------------------------------------------------------------------------*/
12076
--  ADD_RELEASE_SDK
12077
--  ADD an SDK Reference to a Release
12078
--  Args: nRtagId           - RTAG_ID of Release to Process
12079
--        nSdktagId         - SDKTAG_ID of SDK to add to Release
12080
--        nUserId           - User IF of user performing the action
12081
--        bDelete           - Delete conflicting (non sdk) packages from the release 0:False
12082
--        nInsertCount      - Returns: Number of Packages inserted: -1 is an error
12083
--        curReturn         - Returns: On error a table of PV_IDs of packages causing the conflict
12084
--
12085
PROCEDURE ADD_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER, nUserId IN NUMBER, bDelete IN NUMBER, nInsertCount OUT NUMBER, curReturn OUT typeCur )IS
12086
 
12087
  vartbl RELMGR_NUMBER_TAB_T := RELMGR_NUMBER_TAB_T();
12088
  ii NUMBER;
12089
  view_id NUMBER;
12090
 
12091
    -- Detect clashing packages
12092
    -- Packages provided by the SDK that are present in the Release
12093
    CURSOR curPackageClash
12094
    IS
12095
      SELECT release.pvid
12096
      FROM
12097
        -- Alias and pvid from SDK
12098
        (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
12099
          pv.PV_ID                  AS pvid
12100
        FROM SDK_CONTENT sc, PACKAGE_VERSIONS pv
12101
        WHERE sc.SDKTAG_ID  = nSdktagId
12102
        AND sc.SDKPKG_STATE = 'E'
12103
        AND pv.PV_ID        = sc.PV_ID
12104
        ) sdk,
12105
      -- Alias and pvid from Release
12106
      (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
12107
        pv.PV_ID                  AS pvid
12108
      FROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pv
12109
      WHERE rc.rtag_id = nRtagId
12110
      AND rc.PV_ID    = pv.PV_ID
12111
      ) RELEASE
12112
    WHERE sdk.pkgAlias = release.pkgAlias;
5502 dpurdie 12113
 
5172 dpurdie 12114
   -- Detect packages in the release that are provided by the SDK
12115
   -- Do not include packages provided by an SDK - these cannot be replaced
12116
       CURSOR curPackageReplacable
12117
    IS
12118
      SELECT release.pvid
12119
      FROM
12120
        -- Alias and pvid from SDK
12121
        (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
12122
                pv.PV_ID                            AS pvid
12123
        FROM SDK_CONTENT sc, PACKAGE_VERSIONS pv
12124
        WHERE sc.SDKTAG_ID    = nSdktagId
12125
          AND sc.SDKPKG_STATE = 'E'
12126
          AND pv.PV_ID        = sc.PV_ID
12127
        ) sdk,
12128
      -- Alias and pvid from Release
12129
      --  Excluding those import by any SDK
12130
      (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
12131
              pv.PV_ID                            AS pvid
12132
       FROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pv
12133
       WHERE rc.rtag_id = nRtagId
12134
         AND rc.PV_ID   = pv.PV_ID
12135
         AND rc.SDKTAG_ID is NULL
12136
      ) RELEASE
12137
    WHERE sdk.pkgAlias = release.pkgAlias;
12138
 
12139
BEGIN
12140
   /*--------------- Business Rules Here -------------------*/
12141
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
12142
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
12143
   END IF;
12144
 
12145
   IF (nSdktagId = 0) OR ( nSdktagId IS NULL ) THEN
12146
      RAISE_APPLICATION_ERROR (-20000, 'nSdktagId is not supplied. [nSdktagId='|| nSdktagId ||']' );
12147
   END IF;
12148
   /*-------------------------------------------------------*/
5502 dpurdie 12149
 
5172 dpurdie 12150
   -- Delete packages from the release if they are provided by the SDK
5502 dpurdie 12151
   -- provided they are not provided by another SDK
5172 dpurdie 12152
    IF bDelete != 0 THEN
12153
      FOR rdata IN curPackageClash LOOP
12154
        DELETE FROM RELEASE_CONTENT rc
12155
          WHERE rc.RTAG_ID = nRtagId
12156
          AND rc.PV_ID = rdata.pvid;
12157
      END LOOP;
12158
 
12159
      -- Remove exising package from this release to be referenced
12160
      REMOVE_RELEASE_SDK ( nRtagId, nSdktagId);
12161
    END IF;
12162
 
12163
    -- Detect and report package clashes
12164
    -- Packages provided by the SDK that are (still) in the release
12165
    ii := 1;
12166
    FOR rdata IN curPackageClash LOOP
12167
      vartbl.extend;
12168
      --vartbl(ii) := TABLE_PVID(rdata.pvid);
12169
      vartbl(ii) := rdata.pvid;
12170
      ii := ii + 1;
12171
    END LOOP;
12172
    -- Make sure there is no package clashes
5502 dpurdie 12173
 
5172 dpurdie 12174
    IF ii != 1 THEN
12175
      nInsertCount := -1;
12176
      open curReturn for select * from table(vartbl);
12177
      --curReturn := vartbl;
12178
      RETURN;
12179
    END IF;
12180
 
12181
    -- Determine the target view_id
12182
    SELECT sn.VIEW_ID into view_id FROM SDK_TAGS st,  SDK_NAMES sn WHERE sn.SDK_ID = st.SDK_ID AND st.SDKTAG_ID = nSdktagId;
5502 dpurdie 12183
 
5172 dpurdie 12184
    -- Add SDK exported packages to release
12185
    INSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE, SDKTAG_ID)
5502 dpurdie 12186
    SELECT nRtagId, sc.PV_ID, view_id, sysdate, nUserId, 11, nSdktagId
5172 dpurdie 12187
        FROM SDK_CONTENT sc
12188
        WHERE sc.SDKTAG_ID = nSdktagId
12189
        AND sc.SDKPKG_STATE = 'E';
12190
    nInsertCount := sql%ROWCOUNT;
12191
 
12192
    -- Refresh Package states
12193
    TOUCH_RELEASE ( nRtagId );
12194
    SET_RELEASE_MODIFIED(nRtagId);
12195
 
3959 dpurdie 12196
END;
12197
 
1373 dpurdie 12198
/*-------------------------------------------------------------------------------------------------------*/
5172 dpurdie 12199
--  Name:   REMOVE_RELEASE_SDK
12200
--  Desc:   Remove an SDK from the specified Release
12201
--          It is not an error to remove an SDK that is not attached to the release
12202
--  Args:   nRtagId         - RTAG_ID of the Release to Process
12203
--          nSdktagId       - SDKTAG_ID to remove
12204
--
12205
PROCEDURE REMOVE_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER ) IS
12206
 
12207
BEGIN
12208
   /*--------------- Business Rules Here -------------------*/
12209
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
12210
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
12211
   END IF;
12212
 
12213
   IF (nSdktagId = 0) OR ( nSdktagId IS NULL ) THEN
12214
      RAISE_APPLICATION_ERROR (-20000, 'nSdktagId is not supplied. [nSdktagId='|| nSdktagId ||']' );
12215
   END IF;
12216
 
12217
   /*-------------------------------------------------------*/
12218
 
12219
   -- Remove matching packages from release
12220
   DELETE FROM RELEASE_CONTENT rc
12221
    WHERE rc.RTAG_ID = nRtagId
12222
      AND rc.SDKTAG_ID = nSdktagId;
12223
 
12224
   -- Refresh Package states
12225
   TOUCH_RELEASE ( nRtagId );
12226
   SET_RELEASE_MODIFIED(nRtagId);
12227
END;
12228
 
12229
--------------------------------------------------------------------------------
12230
--  CAN_ADD_PKG_TO_RELEASE
12231
--  Test if a Package (pvid) can be added to a given release
12232
--  The test will not allwo an exiting package to be replaced IF it is imported via an
12233
--  SDK
12234
--
12235
--  Returns:  0 - Package cannot be replaced
12236
--            1 - Package can be replaced
12237
--            2 - Package will be added
5502 dpurdie 12238
--
5172 dpurdie 12239
FUNCTION CAN_ADD_PKG_TO_RELEASE ( nRtagId IN NUMBER, nPvid in NUMBER ) RETURN NUMBER IS
12240
 
12241
   sAlias VARCHAR2(4000);
5502 dpurdie 12242
 
5172 dpurdie 12243
    -- Find package for proccessing
12244
    -- Use unique constraint of PKG_ID and V_EXT
12245
   CURSOR curReplacePkg IS
12246
    SELECT pv.PV_ID
12247
     FROM RELEASE_CONTENT rc,
12248
           PACKAGE_VERSIONS pv
12249
    WHERE rc.PV_ID = pv.PV_ID
12250
      AND rc.RTAG_ID = nRtagId
12251
      AND pv.PKG_ID || NVL( pv.V_EXT, 'LINK_A_NULL' ) = sAlias;
5502 dpurdie 12252
 
5172 dpurdie 12253
    recReplacePkg curReplacePkg%ROWTYPE;
12254
    nSdkTag NUMBER;
5502 dpurdie 12255
 
5172 dpurdie 12256
BEGIN
12257
   /*--------------- Business Rules Here -------------------*/
12258
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
12259
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
12260
   END IF;
12261
 
12262
   IF (nPvid = 0) OR ( nPvid IS NULL ) THEN
12263
      RAISE_APPLICATION_ERROR (-20000, 'nPvid is not supplied. [nPvid='|| nPvid ||']' );
12264
   END IF;
12265
 
12266
    -- Find pkg Alias for provided package
5502 dpurdie 12267
   SELECT pv.PKG_ID || NVL( pv.V_EXT, 'LINK_A_NULL' )
5172 dpurdie 12268
     INTO sAlias
12269
     FROM PACKAGE_VERSIONS pv
12270
    WHERE pv.PV_ID = nPvid;
12271
 
12272
      -- Find Package that may be replaced
12273
      OPEN curReplacePkg;
12274
       FETCH curReplacePkg INTO recReplacePkg;
12275
 
12276
       IF curReplacePkg%FOUND THEN
12277
        SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
12278
         WHERE rtag_id = nRtagId
12279
         AND pv_id = recReplacePkg.PV_ID;
5502 dpurdie 12280
 
5172 dpurdie 12281
        If nSdkTag IS NOT NULL  THEN
12282
          RETURN 0;
12283
        ELSE
12284
          RETURN 1;
12285
        END IF;
12286
      END IF;
12287
 
12288
  -- No package found, so it can be added
12289
  RETURN 2;
5502 dpurdie 12290
 
5172 dpurdie 12291
  EXCEPTION
12292
  WHEN NO_DATA_FOUND THEN
12293
    RAISE_APPLICATION_ERROR (-20000, 'nPvid is not valid. [nPvid='|| nPvid ||']' );
12294
END;
12295
 
12296
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12297
END PK_RELEASE;
4040 dpurdie 12298
 
3959 dpurdie 12299
/
4040 dpurdie 12300
--------------------------------------------------------
12301
--  DDL for Package Body PK_RMAPI
12302
--------------------------------------------------------
12303
 
5172 dpurdie 12304
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_RMAPI" 
3959 dpurdie 12305
IS
12306
 
12307
   /*-------------------------------------------------------------------------------------------------------*/
12308
   FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)
12309
      RETURN typecur
1373 dpurdie 12310
   IS
3959 dpurdie 12311
      npvid     NUMBER  := 0;
12312
      RECORDS   typecur;
1373 dpurdie 12313
   BEGIN
3959 dpurdie 12314
      BEGIN
12315
         -- Get PV_ID --
12316
         SELECT pv.pv_id
12317
           INTO npvid
12318
           FROM PACKAGES pkg, package_versions pv
12319
          WHERE pv.pkg_id = pkg.pkg_id
12320
            AND pkg.pkg_name = pkgname
12321
            AND pv.pkg_version = pkgversion;
12322
      EXCEPTION
12323
         WHEN NO_DATA_FOUND
12324
         THEN
12325
            raise_application_error (-20000, 'Package Not Found!');
12326
            --WHEN OTHERS THEN
12327
                  -- Consider logging the error and then re-raise
12328
            RAISE;
12329
      END;
1373 dpurdie 12330
 
3959 dpurdie 12331
      -- Finally get package dependencies --
12332
      OPEN RECORDS FOR
12333
         SELECT dpv.pv_id, dpkg.pkg_name, dpv.pkg_version
12334
           FROM package_dependencies dep, PACKAGES dpkg, package_versions dpv
12335
          WHERE dep.pv_id = npvid
12336
            AND dpv.pkg_id = dpkg.pkg_id
12337
            AND dpv.pv_id = dep.dpv_id;
12338
 
12339
      RETURN RECORDS;
1373 dpurdie 12340
   END;
12341
 
12342
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12343
   FUNCTION wip_iteration_package (
12344
      projname        VARCHAR2,
12345
      iterationname   VARCHAR2,
12346
      pkgname         VARCHAR2
1373 dpurdie 12347
   )
3959 dpurdie 12348
      RETURN typecur
1373 dpurdie 12349
   IS
3959 dpurdie 12350
      nrtagid   NUMBER  := 0;
12351
      RECORDS   typecur;
1373 dpurdie 12352
   BEGIN
3959 dpurdie 12353
      BEGIN
12354
         -- Get latest rtag_id --
12355
         SELECT rt.rtag_id
12356
           INTO nrtagid
12357
           FROM projects proj, release_tags rt
12358
          WHERE rt.proj_id = proj.proj_id
12359
            AND UPPER (proj.proj_name) = UPPER (projname)
12360
            AND UPPER (rt.rtag_name) = UPPER (iterationname);
1373 dpurdie 12361
 
3959 dpurdie 12362
         IF (nrtagid IS NULL)
12363
         THEN
12364
            raise_application_error (-20000,
12365
                                     'Work In Progress is Not Found!');
12366
         END IF;
12367
      EXCEPTION
12368
         WHEN NO_DATA_FOUND
12369
         THEN
12370
            raise_application_error (-20000,
12371
                                     'Work In Progress is Not Found!');
12372
            RAISE;
12373
      END;
12374
 
12375
      -- Finally get package dependencies --
12376
      OPEN RECORDS FOR
12377
         SELECT pv.pkg_version, pv.dlocked AS is_official, pv.pkg_label,
12378
                pv.src_path
12379
           FROM PACKAGES pkg, package_versions pv, work_in_progress wip
12380
          WHERE pv.pkg_id = pkg.pkg_id
12381
            AND wip.pv_id = pv.pv_id
12382
            AND wip.rtag_id = nrtagid
12383
            AND pkg.pkg_name = pkgname;
12384
 
12385
      RETURN RECORDS;
1373 dpurdie 12386
   END;
12387
 
12388
/*-------------------------------------------------------------------------------------------------------*/
4553 dpurdie 12389
-- Use:
12390
--   Used by the Automated Build System to release a new package
12391
-- Returns:
12392
--    Use application errors to indicate programming errors
12393
--    Use negative return codes to indicate correctable user problems
12394
--    Positive return code is the new PVID of the package
12395
  FUNCTION auto_make_vcsrelease (
3959 dpurdie 12396
      rtagid                   IN   NUMBER,
12397
      pkgname                  IN   VARCHAR2,
12398
      vext                     IN   VARCHAR2,
12399
      newpkgversion            IN   VARCHAR2,
12400
      vcstag                   IN   VARCHAR2,
12401
      dependenciesimportlist   IN   VARCHAR2,
12402
      isrippled                IN   NUMBER,
12403
      username                 IN   VARCHAR2
12404
   )
1373 dpurdie 12405
      RETURN NUMBER
12406
   IS
3959 dpurdie 12407
      pkgid                           NUMBER;
12408
      pvid                            NUMBER                        := 0;
12409
      userid                          NUMBER;
12410
      dlocked                         VARCHAR2 (20)                 := NULL;
12411
      clonefrompvid                   NUMBER;
12412
      ssv_mm                          package_versions.v_mm%TYPE;
12413
      ssv_nmm                         package_versions.v_nmm%TYPE;
12414
      ssv_ext                         package_versions.v_ext%TYPE;
12415
      return_package_not_found        NUMBER                        := -1;
12416
      return_package_already_exists   NUMBER                        := -2;
12417
      return_not_approved             NUMBER                        := -3;
12418
      return_migrated_pkg             NUMBER                        := -4;
4553 dpurdie 12419
      return_svn_path_changed         NUMBER                        := -5;
1373 dpurdie 12420
 
12421
 
3959 dpurdie 12422
      x_vcstypeid                     NUMBER;
12423
      x_tag                           VARCHAR2(32);
12424
      x_label                         VARCHAR2(60);
12425
      x_srcpath                       VARCHAR2(2000);
12426
      p_srcpath                       VARCHAR2(2000);
1373 dpurdie 12427
 
3959 dpurdie 12428
      -- Regular expression constituents
12429
      Token         VARCHAR2(16) := '([^:]+)';  -- a token is anything except a ':' character
12430
      Seperator     VARCHAR2(4)  := '::';       -- tokens will be seperated by '::'
12431
      BOL           VARCHAR2(4)  := '^';
12432
      Anything      VARCHAR2(4)  := '.*';
12433
      ReplaceToken1 VARCHAR2(4)  := '\1';
12434
      ReplaceToken2 VARCHAR2(4)  := '\2';
12435
      ReplaceToken3 VARCHAR2(4)  := '\3';
12436
      iprev_modifier_id               NUMBER;
12437
 
1373 dpurdie 12438
   BEGIN
3959 dpurdie 12439
      /*--------------- Business Rules Here -------------------*/
12440
      IF (rtagid IS NULL)
12441
      THEN
12442
         raise_application_error (-20000, 'RtagId must be supplied.');
12443
      END IF;
1373 dpurdie 12444
 
3959 dpurdie 12445
      IF (pkgname IS NULL)
12446
      THEN
12447
         raise_application_error (-20000, 'PkgName must be supplied.');
12448
      END IF;
1373 dpurdie 12449
 
3959 dpurdie 12450
      IF (newpkgversion IS NULL)
1373 dpurdie 12451
      THEN
3959 dpurdie 12452
         raise_application_error (-20000, 'PkgVersion must be supplied.');
1373 dpurdie 12453
      END IF;
12454
 
3959 dpurdie 12455
      IF (vcstag IS NULL)
1373 dpurdie 12456
      THEN
3959 dpurdie 12457
         raise_application_error (-20000, 'PkgVcsTag must be supplied.');
1373 dpurdie 12458
      END IF;
12459
 
3959 dpurdie 12460
      IF (isrippled IS NULL) OR (isrippled < 0) OR (isrippled > 1)
1373 dpurdie 12461
      THEN
4553 dpurdie 12462
         raise_application_error (-20000, 'IsRippled must be set to 1 (Is rippled build) or 0 (Is planned build).');
1373 dpurdie 12463
      END IF;
12464
 
3959 dpurdie 12465
      IF (username IS NULL)
1373 dpurdie 12466
      THEN
3959 dpurdie 12467
         raise_application_error (-20000, 'UserName must be supplied.');
1373 dpurdie 12468
      END IF;
12469
 
3959 dpurdie 12470
      -- Parse the PkgVcsTag
12471
      -- Sets up
12472
      --   x_tag, x_label, x_srcpath
1373 dpurdie 12473
 
3959 dpurdie 12474
       BEGIN
12475
          -- Extract the first token - this will be the short tag name for the VCS (eg. 'CC', 'SVN', etc)
12476
          x_tag := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Anything, ReplaceToken1);
1373 dpurdie 12477
 
3959 dpurdie 12478
          -- Decode the short tag
12479
          CASE x_tag
12480
             WHEN 'CC' THEN
12481
                -- extract the 2nd and 3rd tokens, those being the source path and label respectively
12482
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
12483
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
1373 dpurdie 12484
 
3959 dpurdie 12485
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
12486
                -- check for that error as well as the obvious zero-length string conditions.
12487
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
12488
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
12489
                END IF;
12490
 
12491
                IF isSVNbyName(pkgname) > 0 THEN
12492
                    -- Don't allow migrated packages to be released from a CC label
12493
                    return return_migrated_pkg;
12494
                END IF;
1373 dpurdie 12495
 
12496
 
3959 dpurdie 12497
             WHEN 'SVN' THEN
12498
                -- extract the 2nd token, that being the subversion tag
12499
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
12500
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
1373 dpurdie 12501
 
3959 dpurdie 12502
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
12503
                -- check for that error as well as the obvious zero-length string conditions.
12504
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
12505
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
12506
                END IF;
12507
 
12508
             WHEN 'UC' THEN
12509
                -- nothing to extract, just assign defaults
12510
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
12511
                x_label   := 'N/A';
12512
             ELSE
12513
                raise_application_error (-20000, 'Unrecognised VCS Tag!');
12514
          END CASE;
12515
       END;
12516
 
12517
      -- Get the VCS_TYPE_ID for the version control system.
12518
      BEGIN
12519
         SELECT vt.vcs_type_id
12520
         INTO x_vcstypeid
12521
         FROM VCS_TYPE vt
12522
         WHERE vt.tag = x_tag;
12523
         EXCEPTION
12524
            WHEN NO_DATA_FOUND THEN
12525
               raise_application_error (-20000, 'Database is missing a version control system tag (' || x_tag || ')!' );
12526
      END;
12527
 
12528
 
12529
      -- Get user_id
12530
      BEGIN
12531
         SELECT usr.user_id
12532
           INTO userid
12533
           FROM users usr
12534
          WHERE UPPER (usr.user_name) = UPPER (username)
12535
            AND usr.is_disabled IS NULL;
12536
      EXCEPTION
12537
         WHEN NO_DATA_FOUND
1373 dpurdie 12538
         THEN
4585 dpurdie 12539
            raise_application_error (-20000, 'UserName: ' || username || ' is not valid or disabled.' );
3959 dpurdie 12540
      END;
1373 dpurdie 12541
 
3959 dpurdie 12542
/*-------------------------------------------------------*/
1373 dpurdie 12543
 
3959 dpurdie 12544
      -- Create package if necessary
12545
      IF isrippled = 1
1373 dpurdie 12546
      THEN
3959 dpurdie 12547
         /* Ripple Build */
12548
         BEGIN
12549
            -- Make sure that package does not exist
12550
            SELECT pv.pv_id
12551
              INTO pvid
12552
              FROM package_versions pv, PACKAGES pkg
12553
             WHERE pv.pkg_id = pkg.pkg_id
12554
               AND pkg.pkg_name = pkgname
12555
               AND pv.pkg_version = newpkgversion;
12556
         EXCEPTION
12557
            WHEN NO_DATA_FOUND
12558
            THEN
12559
               pvid := 0;
12560
         END;
12561
 
12562
         IF (pvid = 0)
1373 dpurdie 12563
         THEN
3959 dpurdie 12564
            -- Split current version in parts
12565
            split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
12566
 
12567
            BEGIN
12568
               -- Find package to be replaced with the ripple package
12569
               IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
12570
               THEN
12571
                  SELECT pv.pv_id, pv.src_path
12572
                    INTO clonefrompvid, p_srcpath
12573
                    FROM PACKAGES pkg, package_versions pv,
12574
                         release_content rc
12575
                   WHERE rc.pv_id = pv.pv_id
12576
                     AND pv.pkg_id = pkg.pkg_id
12577
                     AND rc.rtag_id = rtagid
12578
                     AND pkg.pkg_name = pkgname
12579
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|');
12580
               ELSE
12581
                  SELECT pv.pv_id, pv.src_path
12582
                    INTO clonefrompvid, p_srcpath
12583
                    FROM PACKAGES pkg, package_versions pv,
12584
                         release_content rc
12585
                   WHERE rc.pv_id = pv.pv_id
12586
                     AND pv.pkg_id = pkg.pkg_id
12587
                     AND rc.rtag_id = rtagid
12588
                     AND pkg.pkg_name = pkgname
12589
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
12590
               END IF;
12591
            EXCEPTION
12592
               WHEN NO_DATA_FOUND
12593
               THEN
12594
                  raise_application_error
12595
                                        (-20000,
12596
                                            'Cannot get CloneFromPvId. VExt='
12597
                                         || vext
12598
                                         || ', RtagId='
12599
                                         || rtagid
12600
                                         || ', PkgName='
12601
                                         || pkgname
12602
                                         || ', SSV_EXT='
12603
                                         || ssv_ext
12604
                                        );
12605
            END;
12606
 
12607
            IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
12608
            THEN
12609
               -- Create package
12610
               seed_package_names_versions (pkgname,
12611
                                            newpkgversion,
12612
                                            userid,
12613
                                            pvid,
12614
                                            clonefrompvid
12615
                                           );
12616
            ELSE
4585 dpurdie 12617
               -- Create package (now both the same)
12618
               seed_package_names_versions (pkgname,
3959 dpurdie 12619
                                             newpkgversion,
12620
                                             userid,
12621
                                             pvid,
12622
                                             clonefrompvid
12623
                                            );
12624
            END IF;
12625
 
12626
            -- Update Package reason for release
12627
            UPDATE package_versions pv
12628
               SET pv.comments = 'Rippled Build.',
12629
                   pv.build_type = 'Y'
12630
             WHERE pv.pv_id = pvid;
12631
         ELSE
12632
            -- Package already exists, it was built previously, and has just been re-built again probably due to the
12633
            -- fact that the archive was cleaned of the original build artifacts at some point, and those artifacts
12634
            -- are now needed once more. As such, we need to ensure that a new release note generation occurs so
12635
            -- reset the package_versions[pvid].release_notes_info field to enable that to happen.
12636
            UPDATE package_versions pv
12637
               SET pv.release_notes_info = null,
12638
                   pv.modified_stamp = ora_sysdatetime
12639
             WHERE pv.pv_id = pvid;
12640
 
12641
            --DEVI-066151
12642
            log_action (pvid, 'package_rebuilt', userid, 'Package Re-built...');
12643
 
12644
            RETURN return_package_already_exists;
1373 dpurdie 12645
         END IF;
12646
      ELSE
3959 dpurdie 12647
         /* Auto build from Pending area */
12648
 
12649
         -- Find package in pending area
12650
         BEGIN
12651
            SELECT pv.pv_id, pv.dlocked, pv.src_path
12652
              INTO pvid, dlocked, p_srcpath
12653
              FROM planned pl, package_versions pv, PACKAGES pkg
12654
             WHERE pl.pv_id = pv.pv_id
12655
               AND pv.pkg_id = pkg.pkg_id
12656
               AND pl.rtag_id = rtagid
12657
               AND pkg.pkg_name = pkgname
12658
               AND pv.dlocked = 'A'
12659
               AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|')
12660
               AND rownum = 1
12661
             ORDER BY pv.modified_stamp;
12662
         EXCEPTION
12663
            WHEN NO_DATA_FOUND
12664
            THEN
12665
               pvid := 0;
12666
         END;
12667
 
12668
         IF (pvid = 0)
1373 dpurdie 12669
         THEN
3959 dpurdie 12670
            -- Package does not exist in pending area, hence report it
12671
            RETURN return_package_not_found;
12672
         ELSIF (dlocked != 'A')
1373 dpurdie 12673
         THEN
3959 dpurdie 12674
            -- Package is not approved for autobuild
12675
            RETURN return_not_approved;
1373 dpurdie 12676
         END IF;
12677
 
12678
      END IF;
12679
 
3959 dpurdie 12680
      -- Ensure Source Path does not change
12681
      -- Do not expect the SVN development branch to change
12682
      -- From the previous package
12683
      IF ( x_tag = 'SVN' AND p_srcpath != x_srcpath )
1373 dpurdie 12684
      THEN
4553 dpurdie 12685
        return return_svn_path_changed;
1373 dpurdie 12686
      END IF;
12687
 
3959 dpurdie 12688
      BEGIN
12689
         -- Import Dependencies
12690
         import_dependencies (pvid, dependenciesimportlist, userid);
12691
      END;
1373 dpurdie 12692
 
12693
 
3959 dpurdie 12694
      BEGIN
12695
         -- Split current version in parts
12696
         split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
1373 dpurdie 12697
 
3959 dpurdie 12698
         -- Update Package Details
12699
         UPDATE package_versions pv
12700
            SET pv.pkg_version = newpkgversion,
12701
                pv.v_ext = ssv_ext,
12702
                pv.v_mm = ssv_mm,
12703
                pv.v_nmm = ssv_nmm,
12704
                pv.src_path = x_srcpath,
12705
                pv.pkg_label = x_label,
12706
                pv.vcs_type_id = x_vcstypeid
12707
          WHERE pv.pv_id = pvid;
12708
      EXCEPTION
12709
         WHEN DUP_VAL_ON_INDEX
12710
         THEN
12711
            -- Package already exists, hence cannot be used for ripple build
12712
            RETURN return_package_already_exists;
12713
      END;
12714
 
12715
      -- Update the is_autobuildable
12716
      UPDATE package_versions
12717
         SET is_autobuildable = 'Y'
12718
       WHERE pv_id = pvid;
12719
 
12720
      -- DEVI-063601
12721
      -- For planned builds the modifier_id shouldn't be set to buildadm.
12722
      -- To ensure this the modifier_id is obtained so it can be restored after
12723
      -- the function pk_environment.auto_make_release is called.
12724
      -- This function calls, change_state, which sets the modifier_id to the
12725
      -- specified userid, which for auto builds is buildadm.
12726
      SELECT pv.modifier_id INTO iprev_modifier_id
12727
      FROM package_versions pv WHERE pv.pv_id = pvid;
12728
 
12729
      -- Now release package
12730
      pk_environment.auto_make_release (pvid,
12731
                                        rtagid,
12732
                                        userid,
12733
                                        vext,
12734
                                        ssv_ext,
12735
                                        clonefrompvid
12736
                                       );
12737
 
12738
      -- DEVI-063601
12739
      -- if it is a planned build then restore the modifier_id to the previous modifier
12740
      UPDATE package_versions pv SET pv.modifier_id = iprev_modifier_id
12741
      WHERE pv.pv_id = pvid;
12742
 
12743
      --Now clean the PLANNED_VERSIONS table
12744
      SELECT pkg_id
12745
        INTO pkgid
12746
        FROM PACKAGES
12747
       WHERE pkg_name = pkgname;
12748
 
12749
      DELETE FROM planned_versions
12750
            WHERE pkg_id = pkgid AND pkg_version = newpkgversion;
12751
 
12752
      RETURN pvid;
1373 dpurdie 12753
   END;
12754
 
12755
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12756
   PROCEDURE import_dependencies (
12757
      pvid                     IN   NUMBER,
12758
      dependenciesimportlist   IN   VARCHAR2,
12759
      userid                   IN   NUMBER
12760
   )
1373 dpurdie 12761
   IS
3959 dpurdie 12762
/*
12763
|| DependenciesImportList Format:
12764
|| "pkgA","1.0.0";"pkgB","2.0.0";
12765
||  OR 'pkgA','1.0.0';'pkgB','2.0.0';
12766
*/
12767
      TYPE tdictionary IS TABLE OF VARCHAR2 (4000)
12768
         INDEX BY VARCHAR2 (4000);
12769
 
12770
      seperator         VARCHAR2 (2)           := '||';
12771
      pkgname           VARCHAR2 (4000);
12772
      pkgversion        VARCHAR2 (4000);
12773
      buildtype         VARCHAR2 (50);
12774
      pkgid             NUMBER;
12775
      vext              VARCHAR2 (4000);
12776
      dpvid             NUMBER;
12777
      slist             VARCHAR2 (4000);
12778
      cbuildtypes       tdictionary;
12779
      dependencyrow     NUMBER;
12780
      sdependency       VARCHAR2 (4000);
12781
      first_pos         VARCHAR2 (4000);
12782
      second_pos        VARCHAR2 (4000);
12783
      third_pos         VARCHAR2 (4000);
12784
      forth_pos         VARCHAR2 (4000);
12785
      citemcollection   relmgr_varchar2_tab_t  := relmgr_varchar2_tab_t ();
12786
 
12787
      CURSOR curbuildtype
12788
      IS
12789
         SELECT dpv.pkg_id || seperator || dpv.v_ext AS pkgid_ext,
12790
                dep.build_type
12791
           FROM package_dependencies dep, package_versions dpv
12792
          WHERE dep.pv_id = pvid AND dep.dpv_id = dpv.pv_id;
12793
 
12794
      recbuildtype      curbuildtype%ROWTYPE;
1373 dpurdie 12795
   BEGIN
3959 dpurdie 12796
      slist := dependenciesimportlist;
1373 dpurdie 12797
 
3959 dpurdie 12798
      -- Preformat String
12799
      IF NOT slist IS NULL
1373 dpurdie 12800
      THEN
3959 dpurdie 12801
         slist := REPLACE (slist, ' ');                      -- Remove spaces
12802
         slist := REPLACE (slist, UTL_TCP.crlf);
12803
         -- Remove new line and carriage-return characters
12804
         slist := REPLACE (slist, '''', '"');             -- Replace ' with "
1373 dpurdie 12805
      END IF;
12806
 
3959 dpurdie 12807
      -- Get Current Dependencies
12808
      OPEN curbuildtype;
1373 dpurdie 12809
 
3959 dpurdie 12810
      FETCH curbuildtype
12811
       INTO recbuildtype;
1373 dpurdie 12812
 
3959 dpurdie 12813
      WHILE curbuildtype%FOUND
12814
      LOOP
12815
         cbuildtypes (recbuildtype.pkgid_ext) := recbuildtype.build_type;
1373 dpurdie 12816
 
3959 dpurdie 12817
         FETCH curbuildtype
12818
          INTO recbuildtype;
12819
      END LOOP;
1373 dpurdie 12820
 
3959 dpurdie 12821
      CLOSE curbuildtype;
1373 dpurdie 12822
 
3959 dpurdie 12823
      -- Separate dependencies with ; separator
12824
      citemcollection := in_list_varchar2 (slist, ';');
1373 dpurdie 12825
 
3959 dpurdie 12826
      BEGIN
12827
         -- Remove old dependencies
12828
         DELETE FROM package_dependencies dep
12829
               WHERE dep.pv_id = pvid;
1373 dpurdie 12830
 
3959 dpurdie 12831
         -- Loop through dependencies
12832
         FOR dependencyrow IN 1 .. citemcollection.COUNT
12833
         LOOP
12834
            -- Extract pkg_name and pkg_version
12835
            sdependency := citemcollection (dependencyrow);
12836
            first_pos := INSTR (sdependency, '"', 1, 1);
12837
            second_pos := INSTR (sdependency, '"', 1, 2);
12838
            third_pos := INSTR (sdependency, '"', 1, 3);
12839
            forth_pos := INSTR (sdependency, '"', 1, 4);
12840
            pkgname :=
12841
               SUBSTR (sdependency,
12842
                       (first_pos + 1),
12843
                       (second_pos - first_pos - 1)
12844
                      );
12845
            pkgversion :=
12846
               SUBSTR (sdependency,
12847
                       (third_pos + 1),
12848
                       (forth_pos - third_pos - 1)
12849
                      );
12850
 
12851
            -- Dependency must exits to be linked against
12852
            BEGIN
12853
               SELECT pv.pv_id, pv.pkg_id, pv.v_ext
12854
                 INTO dpvid, pkgid, vext
12855
                 FROM package_versions pv, PACKAGES pkg
12856
                WHERE pv.pkg_id = pkg.pkg_id
12857
                  AND pkg.pkg_name = pkgname
12858
                  AND pv.pkg_version = pkgversion;
12859
            EXCEPTION
12860
               WHEN NO_DATA_FOUND
12861
               THEN
12862
                  raise_application_error
12863
                                  (-20000,
12864
                                      'Dependency ['
12865
                                   || pkgname
12866
                                   || ' '
12867
                                   || pkgversion
12868
                                   || '] does not exist yet and cannot be used!'
12869
                                  );
12870
            END;
12871
 
12872
            -- Get Build Type (i.e. BuildPackageArchive or LinkPackageArchive)
12873
            BEGIN
12874
               buildtype := cbuildtypes (pkgid || seperator || vext);
12875
 
12876
               IF buildtype IS NULL
12877
               THEN
12878
                  -- Set build type to LinkPackageArchive by default
12879
                  buildtype := 'L';
12880
               END IF;
12881
            EXCEPTION
12882
               WHEN NO_DATA_FOUND
12883
               THEN
12884
                  buildtype := 'L';
12885
            END;
12886
 
12887
            -- Insert Dependencies
12888
            update_package_dependency (pvid,
12889
                                       pkgname,
12890
                                       pkgversion,
12891
                                       buildtype,
12892
                                       userid,
12893
 
12894
                                      );
12895
         END LOOP;
12896
      END;
1373 dpurdie 12897
   END;
12898
 
12899
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12900
   FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)
12901
      RETURN VARCHAR2
1373 dpurdie 12902
   IS
3959 dpurdie 12903
      pkgversion   VARCHAR2 (4000);
1373 dpurdie 12904
   BEGIN
3959 dpurdie 12905
      BEGIN
12906
         SELECT pv.pkg_version
12907
           INTO pkgversion
12908
           FROM PACKAGES pkg, release_content rc, package_versions pv
12909
          WHERE pv.pv_id = rc.pv_id
12910
            AND pkg.pkg_id = pv.pkg_id
12911
            AND pkg.pkg_name = pkgname
12912
            AND rc.rtag_id = rtagid;
12913
 
12914
         RETURN pkgversion;
12915
      END;
1373 dpurdie 12916
   END;
12917
 
12918
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12919
   FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)
12920
      RETURN VARCHAR2
1373 dpurdie 12921
   IS
3959 dpurdie 12922
      pkgversion   VARCHAR2 (4000);
1373 dpurdie 12923
   BEGIN
3959 dpurdie 12924
      BEGIN
12925
         SELECT pv.pkg_version
12926
           INTO pkgversion
12927
           FROM PACKAGES pkg, work_in_progress wip, package_versions pv
12928
          WHERE pv.pv_id = wip.pv_id
12929
            AND pkg.pkg_id = pv.pkg_id
12930
            AND pkg.pkg_name = pkgname
12931
            AND wip.rtag_id = rtagid;
1373 dpurdie 12932
 
3959 dpurdie 12933
         IF pkgversion IS NULL
12934
         THEN
12935
            SELECT pv.pkg_version
12936
              INTO pkgversion
12937
              FROM PACKAGES pkg, planned pl, package_versions pv
12938
             WHERE pv.pv_id = pl.pv_id
12939
               AND pkg.pkg_id = pv.pkg_id
12940
               AND pkg.pkg_name = pkgname
12941
               AND pl.rtag_id = rtagid;
12942
         END IF;
12943
 
12944
         RETURN pkgversion;
12945
      END;
1373 dpurdie 12946
   END;
12947
 
12948
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12949
   PROCEDURE update_dash_board (rtagid IN NUMBER)
1373 dpurdie 12950
   IS
3959 dpurdie 12951
      projid       NUMBER;
12952
      projiddb     NUMBER;
12953
      total        NUMBER;
12954
      auto_total   NUMBER;
12955
      rtagiddb     NUMBER;
1373 dpurdie 12956
   BEGIN
3959 dpurdie 12957
      SELECT COUNT (*)
12958
        INTO total
12959
        FROM release_content rc, package_versions pv
12960
       WHERE pv.pv_id = rc.pv_id AND rc.rtag_id = rtagid;
1373 dpurdie 12961
 
3959 dpurdie 12962
      SELECT COUNT (*)
12963
        INTO auto_total
12964
        FROM release_content rc, package_versions pv
12965
       WHERE pv.pv_id = rc.pv_id
12966
         AND pv.is_autobuildable = 'Y'
12967
         AND rc.rtag_id = rtagid;
12968
 
12969
      BEGIN
12970
         SELECT rtag_id
12971
           INTO rtagiddb
12972
           FROM dash_board
12973
          WHERE rtag_id = rtagid;
12974
 
12975
         SELECT proj_id
12976
           INTO projiddb
12977
           FROM dash_board
12978
          WHERE rtag_id = rtagid;
12979
      EXCEPTION
12980
         WHEN NO_DATA_FOUND
12981
         THEN
12982
            rtagiddb := '';
12983
      END;
12984
 
12985
      IF rtagiddb IS NULL
1373 dpurdie 12986
      THEN
3959 dpurdie 12987
         SELECT proj_id
12988
           INTO projid
12989
           FROM release_tags
12990
          WHERE rtag_id = rtagid;
12991
 
12992
         INSERT INTO dash_board
12993
                     (proj_id, rtag_id, last_build_time, automated_packages,
12994
                      total_packages
12995
                     )
12996
              VALUES (projid, rtagid, ora_sysdatetime, auto_total,
12997
                      total
12998
                     );
12999
      ELSE
13000
         UPDATE dash_board
13001
            SET last_build_time = ora_sysdatetime,
13002
                automated_packages = auto_total,
13003
                total_packages = total
13004
          WHERE proj_id = projiddb AND rtag_id = rtagiddb;
1373 dpurdie 13005
      END IF;
13006
   END;
13007
 
13008
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13009
   FUNCTION exclude_from_build (
13010
      pvid          IN   NUMBER,
13011
      spkgversion   IN   VARCHAR2,
13012
      rtagid        IN   NUMBER,
13013
      username      IN   VARCHAR2
1373 dpurdie 13014
   )
3959 dpurdie 13015
      RETURN NUMBER
1373 dpurdie 13016
   IS
3959 dpurdie 13017
      userid              NUMBER;
13018
      outerrcode          NUMBER;
13019
      pkgid               NUMBER;
13020
 
13021
      CURSOR dnr_duplicate_cur
13022
      IS
13023
         SELECT *
13024
           FROM do_not_ripple
13025
          WHERE pv_id = pvid AND rtag_id = rtagid;
13026
 
13027
      dnr_duplicate_rec   dnr_duplicate_cur%ROWTYPE;
1373 dpurdie 13028
   BEGIN
3959 dpurdie 13029
      outerrcode := -1;       -- Set default return error code to ERROR state
13030
 
13031
      /*--------------- Business Rules Here -------------------*/
13032
      IF (rtagid IS NULL)
1373 dpurdie 13033
      THEN
3959 dpurdie 13034
         RETURN outerrcode;
13035
--         raise_application_error (-20000, 'RtagId must be supplied.');
13036
      END IF;
13037
 
13038
      IF (pvid IS NULL)
1373 dpurdie 13039
      THEN
3959 dpurdie 13040
         RETURN outerrcode;
13041
--         raise_application_error (-20000, 'PvId must be supplied.');
13042
      END IF;
13043
 
13044
      IF (username IS NULL)
1373 dpurdie 13045
      THEN
3959 dpurdie 13046
         RETURN outerrcode;
13047
--         raise_application_error (-20000, 'UserName must be supplied.');
13048
      END IF;
13049
 
13050
      -- Get user_id
13051
      BEGIN
13052
         SELECT usr.user_id
13053
           INTO userid
13054
           FROM users usr
13055
          WHERE UPPER (usr.user_name) = UPPER (username)
13056
            AND usr.is_disabled IS NULL;
13057
      EXCEPTION
13058
         WHEN NO_DATA_FOUND
13059
         THEN
13060
            RETURN outerrcode;
13061
--            raise_application_error (-20000,
13062
--                                        'UserName '
13063
--                                     || username
13064
--                                     || ' is not valid or disabled.'
13065
--                                    );
13066
      END;
13067
 
13068
      OPEN dnr_duplicate_cur;
13069
 
13070
      FETCH dnr_duplicate_cur
13071
       INTO dnr_duplicate_rec;
13072
 
13073
      IF dnr_duplicate_cur%FOUND
1373 dpurdie 13074
      THEN
3959 dpurdie 13075
         outerrcode := 0;
1373 dpurdie 13076
      END IF;
3959 dpurdie 13077
 
13078
      IF dnr_duplicate_cur%NOTFOUND
13079
      THEN
13080
         /* No duplicate recordset */
13081
         unripple_package (pvid, rtagid, userid);
13082
         outerrcode := 0;                            -- Set return to SUCCESS
13083
      END IF;
13084
 
13085
      CLOSE dnr_duplicate_cur;
13086
 
13087
      SELECT pkg_id
13088
        INTO pkgid
13089
        FROM package_versions
13090
       WHERE pv_id = pvid;
13091
 
13092
      DELETE FROM planned_versions
13093
            WHERE pkg_id = pkgid AND pkg_version = spkgversion;
13094
 
13095
      RETURN outerrcode;
1373 dpurdie 13096
   END;
13097
 
13098
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13099
   FUNCTION exclude_indirect_from_build (
13100
      pvid          IN   NUMBER,
13101
      spkgversion   IN   VARCHAR2,
13102
      rtagid        IN   NUMBER,
13103
      username      IN   VARCHAR2,
13104
      rootpvid      IN   NUMBER,
13105
      rootcause     IN   VARCHAR2,
13106
      rootfile      IN   VARCHAR2
1373 dpurdie 13107
   )
3959 dpurdie 13108
      RETURN NUMBER
1373 dpurdie 13109
   IS
3959 dpurdie 13110
      userid              NUMBER;
13111
      outerrcode          NUMBER;
13112
      pkgid               NUMBER;
13113
 
13114
      CURSOR dnr_duplicate_cur
13115
      IS
13116
         SELECT *
13117
           FROM do_not_ripple
13118
          WHERE pv_id = pvid AND rtag_id = rtagid;
13119
 
13120
      dnr_duplicate_rec   dnr_duplicate_cur%ROWTYPE;
1373 dpurdie 13121
   BEGIN
3959 dpurdie 13122
      outerrcode := -1;       -- Set default return error code to ERROR state
13123
 
13124
      /*--------------- Business Rules Here -------------------*/
13125
      IF (rtagid IS NULL)
1373 dpurdie 13126
      THEN
3959 dpurdie 13127
         RETURN outerrcode;
13128
--         raise_application_error (-20000, 'RtagId must be supplied.');
13129
      END IF;
13130
 
13131
      IF (pvid IS NULL)
1373 dpurdie 13132
      THEN
3959 dpurdie 13133
         RETURN outerrcode;
13134
--         raise_application_error (-20000, 'PvId must be supplied.');
13135
      END IF;
13136
 
13137
      IF (username IS NULL)
1373 dpurdie 13138
      THEN
3959 dpurdie 13139
         RETURN outerrcode;
13140
--         raise_application_error (-20000, 'UserName must be supplied.');
1373 dpurdie 13141
      END IF;
3959 dpurdie 13142
 
13143
      -- Get user_id
13144
      BEGIN
13145
         SELECT usr.user_id
13146
           INTO userid
13147
           FROM users usr
13148
          WHERE UPPER (usr.user_name) = UPPER (username)
13149
            AND usr.is_disabled IS NULL;
13150
      EXCEPTION
13151
         WHEN NO_DATA_FOUND
13152
         THEN
13153
            RETURN outerrcode;
13154
--            raise_application_error (-20000,
13155
--                                        'UserName '
13156
--                                     || username
13157
--                                     || ' is not valid or disabled.'
13158
--                                    );
13159
      END;
13160
 
13161
     /* No duplicate recordset */
13162
     unripple_package_indirect (pvid, rtagid, userid, rootpvid, rootcause, rootfile);
13163
     outerrcode := 0;                            -- Set return to SUCCESS
13164
 
13165
      SELECT pkg_id
13166
        INTO pkgid
13167
        FROM package_versions
13168
       WHERE pv_id = pvid;
13169
 
13170
      DELETE FROM planned_versions
13171
            WHERE pkg_id = pkgid AND pkg_version = spkgversion;
13172
 
13173
      RETURN outerrcode;
1373 dpurdie 13174
   END;
13175
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13176
   PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2)
1373 dpurdie 13177
   IS
13178
   BEGIN
3959 dpurdie 13179
      INSERT INTO abt_action_log
13180
                  (rcon_id, action_datetime, action
13181
                  )
13182
           VALUES (rconid, ora_sysdatetime, action
13183
                  );
1373 dpurdie 13184
   END;
13185
 
13186
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13187
   FUNCTION insert_package_metrics (
13188
      rtagid                   IN   NUMBER,
13189
      pkgname                  IN   VARCHAR2,
13190
      vext                     IN   VARCHAR2,
13191
      metricstring             IN   VARCHAR2
1373 dpurdie 13192
   )
3959 dpurdie 13193
      RETURN NUMBER
1373 dpurdie 13194
   IS
3959 dpurdie 13195
      citemcollection          relmgr_varchar2_tab_t  := relmgr_varchar2_tab_t ();
13196
      lv_pvid                  NUMBER                 := 0;
13197
      rownumber                NUMBER;
13198
      rowcontent               VARCHAR2(4000);
13199
      metricname               VARCHAR2(1000);
13200
      metricvalue              VARCHAR2(4000);
13201
      return_insert_error      NUMBER                 := -1;
13202
      return_insert_success    NUMBER                 := 0;
13203
 
13204
      /* Metrics */
13205
      lv_branches                 NUMBER;
13206
      lv_branchlist               VARCHAR2(4000);
13207
      lv_codefiles                NUMBER;
13208
      lv_ignoredfiles             NUMBER;
13209
      lv_directories              NUMBER;
13210
      lv_directorydepth           NUMBER;
13211
      lv_totalfiles               NUMBER;
13212
      lv_makefiles                NUMBER;
13213
      lv_blanklines               NUMBER;
13214
      lv_codelines                NUMBER;
13215
      lv_commentlines             NUMBER;
13216
 
1373 dpurdie 13217
   BEGIN
3959 dpurdie 13218
      /*--------------- Business Rules Here -------------------*/
13219
      IF (rtagid IS NULL)
13220
      THEN
13221
         RETURN return_insert_error;
13222
      END IF;
1373 dpurdie 13223
 
3959 dpurdie 13224
      IF (pkgname IS NULL)
13225
      THEN
13226
         RETURN return_insert_error;
13227
      END IF;
13228
 
13229
      IF (metricstring IS NULL)
13230
      THEN
13231
         RETURN return_insert_error;
13232
      END IF;
13233
 
13234
      BEGIN
13235
         SELECT pv.pv_id
13236
           INTO lv_pvid
13237
           FROM package_versions pv, packages pkg, release_content rc
13238
          WHERE pv.pkg_id = pkg.pkg_id
13239
            AND rc.rtag_id = rtagid
13240
            AND pv.pv_id = rc.pv_id
13241
            AND pkg.pkg_name = pkgname
13242
            AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
13243
      EXCEPTION
13244
           WHEN NO_DATA_FOUND
13245
           THEN
13246
                lv_pvid := 0;
13247
      END;
13248
 
13249
      citemcollection := in_list_varchar2 (metricstring, ';');
13250
 
13251
      FOR rownumber IN 1 .. citemcollection.COUNT
13252
      LOOP
13253
         rowcontent := citemcollection(rownumber);
13254
         metricvalue := SUBSTR(rowcontent, (INSTR(rowcontent, '=') + 1));
13255
         metricname := REGEXP_REPLACE(rowcontent, '=.*$', '');
13256
 
13257
         IF    metricname = 'ccbranch.count' THEN lv_branches := metricvalue;
13258
         ELSIF metricname = 'ccbranch.list' THEN lv_branchlist := metricvalue;
13259
         ELSIF metricname = 'code.files' THEN lv_codefiles := metricvalue;
13260
         ELSIF metricname = 'code.ignored' THEN lv_ignoredfiles := metricvalue;
13261
         ELSIF metricname = 'count.dir' THEN lv_directories := metricvalue;
13262
         ELSIF metricname = 'count.dirdepth' THEN lv_directorydepth := metricvalue;
13263
         ELSIF metricname = 'count.file' THEN lv_totalfiles := metricvalue;
13264
         ELSIF metricname = 'count.makefile' THEN lv_makefiles := metricvalue;
13265
         ELSIF metricname = 'lines.blank' THEN lv_blanklines := metricvalue;
13266
         ELSIF metricname = 'lines.code' THEN lv_codelines := metricvalue;
13267
         ELSIF metricname = 'lines.comment' THEN lv_commentlines := metricvalue;
13268
         END IF;
13269
      END LOOP;
13270
 
13271
      IF (lv_pvid > 0)
13272
      THEN
13273
         -- Delete any existing entries for this package version to makes sure our data is untainted
13274
         DELETE FROM package_metrics pm
13275
         WHERE pm.pv_id = lv_pvid;
13276
 
13277
         -- Insert the new data into the metrics table
13278
         INSERT INTO package_metrics
13279
                     (pv_id, branches, branch_list, code_files, ignored_files, directories, directory_depth,
13280
                      total_files, makefiles, blank_lines, code_lines, comment_lines, created_stamp
13281
                     )
13282
              VALUES (lv_pvid, lv_branches, lv_branchlist, lv_codefiles, lv_ignoredfiles, lv_directories, lv_directorydepth,
13283
                      lv_totalfiles, lv_makefiles, lv_blanklines, lv_codelines, lv_commentlines, ora_sysdatetime
13284
                     );
13285
 
13286
         -- Now update the Release_Metrics Table
13287
         update_release_metrics(rtagid);
13288
 
13289
         RETURN return_insert_success;
13290
      ELSE
13291
         RETURN return_insert_error;
13292
      END IF;
1373 dpurdie 13293
   END;
13294
 
13295
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13296
   PROCEDURE update_release_metrics (rtagid IN NUMBER)
1373 dpurdie 13297
   IS
3959 dpurdie 13298
      lv_totalpackages       NUMBER;
13299
      lv_autobuilt           NUMBER;
13300
      lv_linesofcode         NUMBER;
13301
      lv_unittested          NUMBER;
13302
      lv_autotested          NUMBER;
13303
      lv_numOfbranches       NUMBER;
13304
      lv_lastbuildtime       DATE;
1373 dpurdie 13305
   BEGIN
3959 dpurdie 13306
      IF (rtagid > 0)
13307
      THEN
13308
         -- Get the total number of packages in this release and the number of
13309
         -- those that are autobuilt
13310
         SELECT COUNT (DISTINCT rc.pv_id),
13311
                COUNT (DISTINCT autobuilt_qry.pv_id)
13312
           INTO lv_totalpackages, lv_autobuilt
13313
           FROM release_content rc,
13314
                package_versions pv,
13315
                (
13316
                 SELECT rc.pv_id
13317
                   FROM release_content rc,
13318
                        package_versions pv
13319
                  WHERE pv.is_autobuildable = 'Y'
13320
                    AND pv.pv_id = rc.pv_id
13321
                    AND rc.rtag_id = rtagid
13322
                ) autobuilt_qry
13323
          WHERE pv.pv_id = rc.pv_id
13324
            AND rc.rtag_id = rtagid
13325
            AND autobuilt_qry.pv_id (+) = rc.pv_id;
1373 dpurdie 13326
 
3959 dpurdie 13327
         -- Get the build time of the last package built in this release and the
13328
         -- total number of lines of code
13329
         SELECT MAX(pm.created_stamp),
13330
                SUM(pm.code_lines)
13331
           INTO lv_lastbuildtime, lv_linesofcode
13332
           FROM package_metrics pm, release_content rc
13333
          WHERE pm.pv_id = rc.pv_id
13334
            AND rc.rtag_id = rtagid;
13335
 
13336
         -- Get the number of packages with unit tests in this release and the
13337
         -- number of those that are autotested
13338
         SELECT COUNT(DISTINCT ut.pv_id) INTO lv_unittested
13339
           FROM unit_tests ut,
13340
                release_content rc
13341
          WHERE ut.pv_id = rc.pv_id
13342
            AND rc.rtag_id = rtagid
13343
        AND ut.test_types_fk != 1;
13344
 
13345
        SELECT COUNT(DISTINCT ut.pv_id) INTO lv_autotested
13346
          FROM unit_tests ut,
13347
               release_content rc
13348
         WHERE ut.pv_id = rc.pv_id
13349
           AND rc.rtag_id = rtagid
13350
           AND ut.test_types_fk = 7;
13351
 
13352
 
13353
         -- Count the number of unique branches in the packages in this release.
13354
--         SELECT COUNT(DISTINCT branch) INTO lv_numOfbranches
13355
--           FROM (
13356
--                SELECT pv_id,
13357
--                       regexp_substr(str, '[^,]+', 1, level) branch,
13358
--                       level lv,
13359
--                       lag(level, 1, 0) over (partition by pv_id order by level) lg
13360
--                  FROM (
13361
--                       SELECT pm.pv_id,
13362
--                              ','||pm.branch_list str
13363
--                         FROM package_metrics pm,
13364
--                              release_content rc
13365
--                        WHERE pm.pv_id = rc.pv_id
13366
--                          AND rc.rtag_id = rtagid
13367
--                       )
13368
--                CONNECT BY regexp_substr(str, '[^,]+', 1, LEVEL) IS NOT NULL
13369
--                )
13370
--          WHERE lv != lg;
13371
 
13372
         UPDATE release_metrics rm
13373
            SET rm.total_packages = lv_totalpackages,
13374
                rm.autobuilt = lv_autobuilt,
13375
                rm.lines_of_code = lv_linesofcode,
13376
                rm.unit_tested = lv_unittested,
13377
                rm.autotested = lv_autotested,
13378
--                rm.branches = lv_numOfbranches,
13379
                rm.last_build_time = lv_lastbuildtime
13380
          WHERE rtag_id = rtagid;
13381
 
13382
         IF (SQL%ROWCOUNT = 0)
13383
         THEN
13384
            INSERT INTO release_metrics
13385
                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
13386
                         autotested, last_build_time
13387
                        )
13388
                 VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,
13389
                         lv_autotested, lv_lastbuildtime
13390
                        );
13391
         END IF;
13392
--         IF (SQL%ROWCOUNT = 0)
13393
--         THEN
13394
--            INSERT INTO release_metrics
13395
--                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
13396
--                         autotested, branches, last_build_time
13397
--                        )
13398
--                 VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,
13399
--                         lv_autotested, lv_numOfbranches, lv_lastbuildtime
13400
--                        );
13401
--         END IF;
13402
--      ELSE
13403
--         raise_application_error (-20000, 'RtagId must be supplied.');
13404
      END IF;
1373 dpurdie 13405
   END;
13406
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13407
   FUNCTION return_vcs_tag(pvid IN NUMBER) RETURN VARCHAR2
1373 dpurdie 13408
   IS
3959 dpurdie 13409
      vcstypeid    NUMBER;
13410
      vcstag       VARCHAR2(32);
13411
      label        VARCHAR2(60);
13412
      srcpath      VARCHAR2(2000);
13413
      vcstypeid_cc NUMBER;
13414
      vcstypeid_uc NUMBER;
1373 dpurdie 13415
   BEGIN
3959 dpurdie 13416
      -- Get the VCS_TYPE_ID for the ClearCase version control system. We do this so that we make no assumptions about
13417
      -- what the primary key value is for the ClearCase VCS entry.
13418
      BEGIN
13419
         SELECT vt.vcs_type_id
13420
         INTO vcstypeid_cc
13421
         FROM VCS_TYPE vt
13422
         WHERE vt.tag = 'CC';
13423
         EXCEPTION
13424
            WHEN NO_DATA_FOUND THEN
13425
               raise_application_error (-20000, 'Database is missing compulsory CC version control system tag!');
13426
      END;
1373 dpurdie 13427
 
3959 dpurdie 13428
      -- Get the VCS_TYPE_ID for the Uncontrolled version control system. We do this so that we make no assumptions about
13429
      -- what the primary key value is for the Uncontrolled VCS entry.
13430
      BEGIN
13431
         SELECT vt.vcs_type_id
13432
         INTO vcstypeid_uc
13433
         FROM VCS_TYPE vt
13434
         WHERE vt.tag = 'UC';
13435
         EXCEPTION
13436
            WHEN NO_DATA_FOUND THEN
13437
               raise_application_error (-20000, 'Database is missing compulsory UC version control system tag!');
13438
      END;
13439
 
13440
      -- Get the PKG_LABEL, SRC_PATH, VCS_TYPE_ID for the package version
13441
      -- As additional VCS types are introduced, we may have to extend what this SELECT statement returns
13442
      BEGIN
13443
         SELECT pv.pkg_label, pv.src_path,
13444
           (CASE WHEN pv.pkg_label = 'N/A' AND pv.vcs_type_id IS NULL THEN vcstypeid_uc
13445
                 WHEN pv.vcs_type_id IS NULL THEN vcstypeid_cc
13446
                 ELSE pv.vcs_type_id END) AS vcs_type_id
13447
         INTO label, srcpath, vcstypeid
13448
         FROM PACKAGE_VERSIONS pv
13449
         WHERE pv.pv_id = pvid;
13450
         EXCEPTION
13451
            WHEN NO_DATA_FOUND THEN
13452
               raise_application_error (-20000, 'Package Version Not Found!');
13453
      END;
13454
 
13455
      -- Get the VCS TAG for the VCS_TYPE_ID.
13456
      BEGIN
13457
         SELECT vt.tag
13458
         INTO vcstag
13459
         FROM VCS_TYPE vt
13460
         WHERE vt.vcs_type_id = vcstypeid;
13461
         EXCEPTION
13462
            WHEN NO_DATA_FOUND THEN
13463
               raise_application_error (-20000, 'Could not get VCS Tag for the package version!');
13464
      END;
13465
 
13466
      -- Return value depending upon which VCS Tag is being used.
13467
      -- As additional VCS types are introduced, we have to add additional WHEN clauses
13468
      CASE vcstag
13469
         WHEN 'CC' THEN
13470
            RETURN vcstag || '::' || srcpath || '::' || label;
13471
         WHEN 'SVN' THEN
13472
            RETURN vcstag || '::' || srcpath || '::' || label;
13473
         ELSE
13474
            RETURN vcstag || '::';
13475
      END CASE;
13476
 
1373 dpurdie 13477
   END;
3959 dpurdie 13478
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 13479
 
3959 dpurdie 13480
/*-------------------------------------------------------------------------------------------------------
13481
Name:        update_vcs_details
13482
Description: Updates the Version Control System (vcs) details specified in the vcstag
13483
             parameter for the specified package version.
13484
             The specified package vcstag is parsed and split into 3 fields:
13485
                vcs type, src path, label
13486
             These fields are then stored for the specified pv_id in the package_versions, table.
13487
             An action is recorded in the action log and provides information for tracking and
13488
             for restoring the previous vcs settings if a recovery is required.
13489
Paramters:
13490
             ipv_id:     Package version identifier
13491
             vcstag:     Full version control tag.
13492
                         Examples:
13493
                             "SVN::AUPERASVN01/DPG_SWBase/tools/trunk::daf_tools_25.1.7027.cr@1234"
13494
                            "CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr"
13495
             user_id:    Identifier of the user that is performing this function.
13496
*/
13497
PROCEDURE update_vcs_details(ipv_id IN NUMBER, vcstag IN VARCHAR2, user_id IN NUMBER)
1373 dpurdie 13498
   IS
3959 dpurdie 13499
      ivcs_type_id   NUMBER;
13500
      svcs_type      VARCHAR2(128);
13501
      ssrc_path      VARCHAR2(512);
13502
      spkg_label     VARCHAR2(512);
13503
      spattern       VARCHAR2(64);
13504
      saction_desc   VARCHAR2(2048);
13505
      old_vcs_type   VARCHAR2(128);
13506
      old_src_path   VARCHAR2(512);
13507
      old_pkg_label  VARCHAR2(512);
13508
      old_pkg_vcstag VARCHAR2(1024);
13509
      i              NUMBER;
13510
      vcount         NUMBER;
1373 dpurdie 13511
   BEGIN
3959 dpurdie 13512
     -- Split vcs tag into fields: vcs type, src path, label
13513
     -- Fields are separated by '::'
13514
     -- e.g "CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr"
13515
     -- The below regular expression pattern has groups to achieve this.
1373 dpurdie 13516
 
3959 dpurdie 13517
     spattern:= '^([^:]*)::([^:]*)(::(.*))?$';
13518
 
13519
     --As Oracle 10g does not allow REGEXP_SUBSTR to return a group,
13520
     --REGEXP_REPLACE is used instead (Note: Oracle 11g has this enhancement).
13521
     SELECT REGEXP_REPLACE(vcstag,spattern, '\1') INTO svcs_type  FROM DUAL;
13522
     SELECT REGEXP_REPLACE(vcstag,spattern, '\2') INTO ssrc_path  FROM DUAL;
13523
     SELECT REGEXP_REPLACE(vcstag,spattern, '\4') INTO spkg_label FROM DUAL;
13524
 
13525
     -- Validate vcs type
13526
     BEGIN
13527
       SELECT vc.vcs_type_id INTO ivcs_type_id FROM vcs_type vc WHERE UPPER(svcs_type) = UPPER(vc.tag);
13528
     EXCEPTION
13529
       WHEN NO_DATA_FOUND THEN
13530
         raise_application_error (-20000, 'Invalid vcs type: ' || '"' || svcs_type || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
13531
       --RAISE;
13532
     END;
13533
 
13534
     -- If Clearcase
13535
     IF (ivcs_type_id = 2) THEN
13536
       -- Validate source path
13537
       IF NOT REGEXP_LIKE(ssrc_path,'^(\\|\/)[a-z]+[0-9a-z_\.\-\\\/ -]*$','i') THEN
13538
         raise_application_error (-20000, 'Invalid CC src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
13539
       END IF;
13540
 
13541
       -- Validate label
13542
       -- For clearcase the label must be specified. For subversion it is not required.
13543
       IF NOT REGEXP_LIKE(spkg_label,'^[0-9a-z_\.\-]+$','i') THEN
13544
         raise_application_error (-20000, 'Invalid CC label:' || '"' || spkg_label || '"' || ' for package version:' || ipv_id || ', vcstag:' || '"' || vcstag || '"');
13545
       END IF;
13546
 
13547
     -- if Subversion
13548
     ELSIF (ivcs_type_id = 23) THEN
13549
       -- general validity
13550
       -- Not as picky as the RM Data entry
13551
       IF NOT REGEXP_LIKE(ssrc_path,'^([0-9a-z_\.\-]+)(\/([0-9a-z_\.\-]+))+$','i') THEN
13552
         raise_application_error (-20000, 'Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
13553
       END IF;
13554
 
13555
       -- Validate Tag
13556
       -- May be a Peg or a Label
13557
       IF NOT REGEXP_LIKE(spkg_label,'^@?[0-9]+$','i') THEN
13558
           IF NOT REGEXP_LIKE(spkg_label,'^[0-9a-z_\.\-]+($|@[0-9]+)','i') THEN
13559
             raise_application_error (-20000, 'Invalid SVN tag:' || '"' || spkg_label || '"' || ' for package version:' || ipv_id || ', vcstag:' || '"' || vcstag || '"');
13560
           END IF;
13561
       END IF;
13562
 
13563
        -- Check for suitable ending
13564
        IF NOT REGEXP_LIKE(ssrc_path,'(\/tags$)|(\/branches\/)|(\/trunk$)','i') THEN
13565
            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 || '"');
13566
        END IF;
13567
 
13568
       -- Check for combined use of tags, branches, trunk or repeats of each
13569
       -- Count occurrences of /tags or /branches/ or /trunk
13570
       vcount:=0;
13571
       i:=1;
13572
       WHILE i > 0 LOOP
13573
         i:=REGEXP_INSTR(ssrc_path,'(\/tags(\/|$))|(\/branches(\/|$))|(\/trunk(\/|$))',i,1,1,'i');
13574
         IF i > 0 THEN
13575
           -- if found then increment count
13576
           vcount:=vcount+1;
13577
           i:=i-1;  -- move index back to "/"
13578
         END IF;
13579
       END LOOP;
13580
 
13581
       IF vcount = 0  THEN
13582
         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 || '"');
13583
       END IF;
13584
 
13585
       IF vcount > 1  THEN
13586
         raise_application_error (-20000, 'Combined use of /trunk, /tags, or /branches/. Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
13587
       END IF;
13588
 
13589
 
13590
     END IF;
13591
 
13592
     BEGIN
13593
       -- Get current vcs tag for specified package version
13594
       SELECT pv.src_path, pv.pkg_label, vc.tag as vcs_type
13595
       INTO old_src_path, old_pkg_label, old_vcs_type
13596
       FROM package_versions pv, vcs_type vc
13597
       WHERE pv.pv_id = ipv_id
13598
       AND pv.vcs_type_id = vc.vcs_type_id (+);
13599
 
13600
     EXCEPTION
13601
       WHEN NO_DATA_FOUND THEN
13602
         raise_application_error (-20000, 'Package version not found: ' || ipv_id);
13603
     END;
13604
 
13605
     old_pkg_vcstag:= old_vcs_type || '::' || old_src_path;
13606
     IF (old_pkg_label IS NOT NULL) THEN
13607
       old_pkg_vcstag:=old_pkg_vcstag || '::' || old_pkg_label;
13608
     END IF;
13609
 
13610
     -- Create action description
13611
     -- This description will contain the old and new tags.
13612
     -- Its purpose is to provide information for tracking and for restoring previous vcs settings if a recovery is required.
13613
     -- An example of the action description is below:
13614
     --   OldTag:CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr NewTag:SVN::DPG_SWBase/tools/tags/daf_tools_25.1.7027.cr
13615
     saction_desc:='OldTag:' || old_pkg_vcstag || ' ' || 'NewTag:' || vcstag;
13616
 
13617
     -- Store new vcs details
13618
     UPDATE package_versions SET
13619
       src_path = ssrc_path,
13620
       pkg_label = spkg_label,
13621
       vcs_type_id = ivcs_type_id
13622
     WHERE
13623
       pv_id = ipv_id;
13624
 
13625
     -- Store action in action log so that we can back track and also restore vcs settings if required.
13626
     log_action (ipv_id,'VcsConversion',user_id,saction_desc);
13627
 
13628
   END update_vcs_details;
13629
 
13630
/*-------------------------------------------------------------------------------------------------------
13631
Name:        isSVN
13632
Description: Determine if any of the packages versions are controlled under SVN
13633
			 Intended to be used to prevent users from releasing a package
13634
			 that has been migrated to SVN
13635
 
13636
Paramters:	pkgid:     Package ID
13637
 
13638
Returns:	Number of versions under SVN version control
13639
*/
13640
 
13641
FUNCTION isSVN( pkgid IN NUMBER )
13642
    RETURN NUMBER
13643
    IS
13644
    svncount   NUMBER  := 0;
13645
   BEGIN
13646
        SELECT COUNT(*) INTO svncount FROM PACKAGE_VERSIONS pv WHERE pv.PKG_ID = pkgid AND pv.VCS_TYPE_ID = 23;
13647
        RETURN (svncount);
1373 dpurdie 13648
   END;
3959 dpurdie 13649
 
13650
/*-------------------------------------------------------------------------------------------------------
13651
Name:        isSVNbyName
13652
Description: Determine if any of the packages versions are controlled under SVN
13653
			 Intended to be used to prevent users from releasing a package
13654
			 that has been migrated to SVN
13655
 
13656
Paramters:	pkgname:	Package Name
13657
 
13658
Returns:	Number of versions under SVN version control
13659
*/
13660
 
13661
FUNCTION isSVNbyName( pkgname IN VARCHAR2 ) 
13662
    RETURN NUMBER
13663
IS
13664
   svncount   NUMBER  := 0;
13665
   BEGIN
13666
        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;
13667
        RETURN (svncount);
13668
   END;
5172 dpurdie 13669
/*-------------------------------------------------------------------------------------------------------
13670
Name:        new_build_instance
13671
Description: Create a new entry in the BUILD_INSTANCE table
13672
             The BUILD_ID will be allocated.
13673
             The timestamp will be created
13674
 
13675
Paramters:	rtag_id:	Release ID - must exist
13676
            pv_id:    Package ID - must exist
13677
            reason:   Reason code for the build
13678
 
13679
Returns:	BUILD_ID for the new entry
13680
          Returns -1 on error, PV_ID or RTAG_ID do not exist
13681
*/ 
13682
FUNCTION new_build_instance( rtag_id IN NUMBER, pv_id IN NUMBER , reason IN CHAR) 
13683
  RETURN NUMBER   
13684
  IS
13685
    build_id NUMBER := 0;
13686
  BEGIN
13687
    INSERT into BUILD_INSTANCES (RTAG_ID, PV_ID, REASON)
13688
    values( rtag_id, pv_id, reason)
13689
    returning BUILD_ID into build_id;
13690
    return build_id;
13691
  EXCEPTION
13692
    WHEN OTHERS THEN
13693
      return -1;
13694
  END;
13695
 
13696
/*-------------------------------------------------------------------------------------------------------
13697
Name: update_build_instance
13698
Description: Update fields in an existing build instance
13699
Returns: -1 on error
13700
*/
13701
FUNCTION update_build_instance(
13702
    nbuild_id IN NUMBER,
13703
    npv_id    IN NUMBER DEFAULT NULL,
13704
    nstate    IN CHAR DEFAULT NULL )
13705
  RETURN NUMBER
13706
IS
13707
BEGIN
13708
  IF ( npv_id IS NOT NULL AND npv_id > 0 ) THEN
13709
    UPDATE BUILD_INSTANCES SET PV_ID = npv_id WHERE BUILD_ID = nbuild_id;
13710
    IF SQL%NOTFOUND THEN
13711
      RETURN -2;
13712
    END IF;
13713
  END IF;
13714
 
13715
  IF ( nstate        IS NOT NULL ) THEN
13716
    IF (LENGTH(nstate) = 1 ) THEN
13717
      UPDATE BUILD_INSTANCES SET STATE = nstate WHERE BUILD_ID = nbuild_id;
13718
        IF SQL%NOTFOUND THEN
13719
          RETURN -3;
13720
        END IF;
13721
    ELSE
13722
      RETURN -4;
13723
    END IF;
13724
  END IF;
13725
 
13726
  RETURN 1;
13727
  EXCEPTION
13728
    WHEN OTHERS THEN
13729
      RETURN -1;
13730
  END;
13731
 
13732
/*-------------------------------------------------------------------------------------------------------
13733
Name:        insert_test_run
13734
Description: Insert data into the test_run table
13735
 
13736
 
13737
Paramters:	See below
13738
 
13739
Returns:	1 on success
13740
          Returns -1 on error
13741
*/  
13742
  FUNCTION insert_test_run( 
13743
      build_id  IN NUMBER, 
13744
      name      IN VARCHAR2, 
13745
      outcome   IN VARCHAR2, 
13746
      platform  IN VARCHAR2, 
13747
      stype     IN VARCHAR2, 
13748
      duration  IN NUMBER default null, 
13749
      message   IN CLOB default null
13750
      ) return NUMBER
13751
IS
13752
  sName VARCHAR2(1000) := name;
13753
  sNameLen NUMBER;
13754
 
13755
BEGIN
13756
  sNameLen := LENGTH(sName);
5384 dpurdie 13757
  IF sNameLen >= 199 Then
13758
    sName := '...' || SUBSTR(sName, sNameLen - 196); 
5172 dpurdie 13759
  END IF;
13760
 
13761
  INSERT into TEST_RUN
13762
    (BUILD_ID, TEST_NAME, TEST_OUTCOME, TIME_TAKEN,FAIL_MESSAGE,PLATFORM, TYPE)
13763
    VALUES(build_id,sName,outcome, duration, message, platform, stype);
13764
    return 1;
13765
  EXCEPTION
13766
    WHEN OTHERS THEN
13767
      return -1;
13768
 
13769
END;
3959 dpurdie 13770
 
13771
   END;
4040 dpurdie 13772
 
1374 dpurdie 13773
/
4040 dpurdie 13774
--------------------------------------------------------
13775
--  DDL for Package Body PK_WORK_IN_PROGRESS
13776
--------------------------------------------------------
13777
 
5172 dpurdie 13778
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS
1373 dpurdie 13779
 
13780
/*
13781
------------------------------
13782
||  Last Modified:  S.Vukovic
3959 dpurdie 13783
||  Modified Date:  2/May/2005
1373 dpurdie 13784
||  Body Version:   1.0
13785
------------------------------
13786
*/
13787
 
13788
 
13789
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13790
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 13791
 
3959 dpurdie 13792
	oldPvId NUMBER;
13793
	ReleaseLocation VARCHAR2(4000);
13794
	sLocation VARCHAR2(4000) := NULL;
1373 dpurdie 13795
 
3959 dpurdie 13796
 
1373 dpurdie 13797
BEGIN
13798
	/*--------------- Business Rules Here -------------------*/
3959 dpurdie 13799
	/*-------------------------------------------------------*/
1373 dpurdie 13800
 
3959 dpurdie 13801
	BEGIN
5384 dpurdie 13802
		-- Check if Exists in "Work in progress" anywhere in the world in a non-closed Release
3959 dpurdie 13803
		SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME  INTO sLocation
13804
		  FROM WORK_IN_PROGRESS wip,
13805
		  	   RELEASE_TAGS rt,
13806
			   PROJECTS proj
13807
		 WHERE wip.PV_ID = newPvId
13808
		   AND wip.RTAG_ID = rt.RTAG_ID
5384 dpurdie 13809
		   AND rt.OFFICIAL in ('N','R','C')
3959 dpurdie 13810
		   AND rt.PROJ_ID = proj.PROJ_ID;
1373 dpurdie 13811
 
3959 dpurdie 13812
		EXCEPTION
13813
	    	WHEN NO_DATA_FOUND THEN
13814
	       		sLocation := NULL;
13815
 
13816
	END;	   	   
1373 dpurdie 13817
 
13818
 
13819
 
3959 dpurdie 13820
	IF (sLocation IS NULL)  THEN
1373 dpurdie 13821
 
3959 dpurdie 13822
		-- Add to "Work in progress"
13823
		INSERT INTO WORK_IN_PROGRESS ( RTAG_ID, PV_ID, VIEW_ID )
13824
		VALUES( RtagId, newPvId, ViewId );
13825
 
13826
 
13827
	    /* LOG ACTION */
13828
		SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
13829
		  FROM PROJECTS proj,
13830
		  	   RELEASE_TAGS rt
13831
		 WHERE rt.PROJ_ID = proj.PROJ_ID
13832
		   AND rt.RTAG_ID = RtagId;
13833
 
13834
		Log_Action ( newPvId, 'work_in_progress', UserId, 'Location: '|| ReleaseLocation );
13835
 
13836
	ELSE
13837
 
13838
		RAISE_APPLICATION_ERROR (-20000, 'This version is already in Work-In-Progress Area at '|| sLocation ||'.' );
13839
 
1373 dpurdie 13840
	END IF;
13841
 
3959 dpurdie 13842
END;
13843
/*-------------------------------------------------------------------------------------------------------*/
13844
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 13845
 
3959 dpurdie 13846
	ReleaseLocation VARCHAR2(4000);
1373 dpurdie 13847
 
3959 dpurdie 13848
BEGIN
13849
 
13850
	/*--------------- Business Rules Here -------------------*/
1373 dpurdie 13851
	/*-------------------------------------------------------*/
13852
 
13853
 
3959 dpurdie 13854
	-- Get release location for logging pusposes
13855
	SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
13856
	  FROM PROJECTS proj,
13857
	  	   RELEASE_TAGS rt
13858
	 WHERE rt.PROJ_ID = proj.PROJ_ID
13859
	   AND rt.RTAG_ID = RtagId;
1373 dpurdie 13860
 
13861
 
3959 dpurdie 13862
	-- Delete from Work In Progress
13863
	DELETE
13864
	  FROM WORK_IN_PROGRESS wip
13865
	 WHERE wip.RTAG_ID = RtagId
13866
	   AND wip.PV_ID = PvId;
1373 dpurdie 13867
 
3959 dpurdie 13868
	Log_Action ( PvId, 'delete_from_wip', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 13869
 
3959 dpurdie 13870
 
13871
 
13872
 
1373 dpurdie 13873
END;
13874
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13875
PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 13876
 
3959 dpurdie 13877
	nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
13878
	ReleaseLocation VARCHAR2(4000);
13879
	PvId NUMBER;
1373 dpurdie 13880
 
13881
BEGIN
3959 dpurdie 13882
 
1373 dpurdie 13883
	/*--------------- Business Rules Here -------------------*/
3959 dpurdie 13884
	IF (PvIdList IS NULL)
13885
	THEN
13886
		RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
13887
	END IF;
1373 dpurdie 13888
	/*-------------------------------------------------------*/
13889
 
13890
 
3959 dpurdie 13891
	nIdCollector := IN_LIST_NUMBER ( PvIdList );
1373 dpurdie 13892
 
13893
 
3959 dpurdie 13894
	-- Get release location for logging pusposes
13895
	SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
13896
	  FROM PROJECTS proj,
13897
	  	   RELEASE_TAGS rt
13898
	 WHERE rt.PROJ_ID = proj.PROJ_ID
13899
	   AND rt.RTAG_ID = RtagId;
1373 dpurdie 13900
 
3959 dpurdie 13901
 
13902
	FOR i IN 1..nIdCollector.COUNT
13903
	LOOP
13904
		PvId := nIdCollector(i);
13905
 
13906
		-- Delete from Work In Progress
13907
		DELETE
13908
		  FROM WORK_IN_PROGRESS wip
13909
		 WHERE wip.RTAG_ID = RtagId
13910
		   AND wip.PV_ID = PvId;
13911
 
13912
		Log_Action ( PvId, 'remove_from_work_in_progress', UserId, 'Location: '|| ReleaseLocation );
13913
 
13914
	END LOOP;
13915
 
13916
 
1373 dpurdie 13917
END;
13918
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13919
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
13920
 
13921
	ReturnValue NUMBER;
13922
 
1373 dpurdie 13923
BEGIN
3959 dpurdie 13924
	SELECT wip.VIEW_ID INTO ReturnValue
13925
	  FROM WORK_IN_PROGRESS wip
13926
	 WHERE wip.RTAG_ID = RtagId
13927
	   AND wip.PV_ID = PvId;
1373 dpurdie 13928
 
3959 dpurdie 13929
	RETURN ReturnValue;
1373 dpurdie 13930
END;
13931
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13932
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
13933
 
13934
	IsBaseView CHAR(1);
13935
 
1373 dpurdie 13936
BEGIN
13937
 
3959 dpurdie 13938
	-- Check if the view is BASE VIEW
13939
	SELECT vi.BASE_VIEW INTO IsBaseView
13940
	  FROM VIEWS vi
13941
	 WHERE vi.VIEW_ID = ViewId;
13942
 
5172 dpurdie 13943
	IF (IsBaseView IN ('Y', 'S')) THEN 
3959 dpurdie 13944
		-- Get Base view content
13945
		OPEN RecordSet FOR
13946
		SELECT 0 AS PKG_STATE,
13947
			   NULL AS DEPRECATED_STATE,
13948
			   pv.pv_id, 
13949
			   pkg.pkg_name, 
13950
			   pv.pkg_version, 
13951
			   pv.dlocked, 
13952
			   pv.pv_description,
13953
			   pv.BUILD_TYPE
13954
		  FROM WORK_IN_PROGRESS rel,
13955
		       packages pkg,
13956
		       package_versions pv
13957
		 WHERE pv.pkg_id = pkg.pkg_id
13958
		   AND rel.pv_id = pv.pv_id
13959
		   AND rel.VIEW_ID = ViewId
13960
		   AND rel.RTAG_ID = RtagId
13961
		 ORDER BY UPPER(pkg.PKG_NAME);
13962
 
1373 dpurdie 13963
 
3959 dpurdie 13964
	ELSE	 
1373 dpurdie 13965
 
3959 dpurdie 13966
	 	-- Get non base view content
13967
		OPEN RecordSet FOR
13968
		SELECT 0 AS PKG_STATE,
13969
			   NULL AS DEPRECATED_STATE,
13970
			   pv.pv_id, 
13971
			   pkg.pkg_name, 
13972
			   pv.pkg_version, 
13973
			   pv.dlocked, 
13974
			   pv.pv_description,
13975
			   pv.BUILD_TYPE
13976
		  FROM WORK_IN_PROGRESS rel,
13977
		       packages pkg,
13978
		       package_versions pv,
13979
			   VIEW_DEF vd
13980
		 WHERE pv.pkg_id = pkg.pkg_id
13981
		   AND rel.pv_id = pv.pv_id
13982
		   AND vd.VIEW_ID = ViewId
13983
		   AND vd.PKG_ID = pv.PKG_ID
13984
		   AND rel.RTAG_ID = RtagId
13985
		 ORDER BY UPPER(pkg.PKG_NAME);
1373 dpurdie 13986
 
3959 dpurdie 13987
 
13988
	END IF;	 	
13989
 
13990
 
1373 dpurdie 13991
END;
13992
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13993
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
13994
 
1373 dpurdie 13995
BEGIN
13996
 
3959 dpurdie 13997
	UPDATE WORK_IN_PROGRESS wip SET
13998
	wip.VIEW_ID = NewViewId
13999
	WHERE wip.PV_ID = PvId
14000
	  AND wip.RTAG_ID = RtagId;
14001
 
1373 dpurdie 14002
END;
14003
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14004
END PK_WORK_IN_PROGRESS;
4040 dpurdie 14005
 
3959 dpurdie 14006
/
4040 dpurdie 14007
--------------------------------------------------------
14008
--  DDL for Package Body RM_ISSUES
14009
--------------------------------------------------------
14010
 
5172 dpurdie 14011
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."RM_ISSUES" AS
1373 dpurdie 14012
 
3959 dpurdie 14013
-- Private Implementation -----------------------------------------------------
1373 dpurdie 14014
 
14015
 
3959 dpurdie 14016
	FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER
14017
	AS
1373 dpurdie 14018
 
3959 dpurdie 14019
	BEGIN
14020
		-- start boundary case
14021
		IF ( XXstart < XX ) THEN
14022
			RETURN 1;
1373 dpurdie 14023
 
3959 dpurdie 14024
		ELSIF ( XXstart = XX ) THEN
1373 dpurdie 14025
 
3959 dpurdie 14026
			-- need to consider YY
14027
			IF ( YYstart < YY ) THEN
14028
				RETURN 1;
1373 dpurdie 14029
 
3959 dpurdie 14030
			ELSIF ( YYstart = YY ) THEN
1373 dpurdie 14031
 
3959 dpurdie 14032
					-- need to consider ZZ
14033
					IF ( ZZstart <= ZZ ) THEN
14034
						RETURN 1;
14035
 
14036
					ELSE
14037
						RETURN 0;
14038
					END IF;
14039
 
14040
			ELSE
14041
				RETURN 0;
14042
			END IF;
14043
		ELSE
14044
			RETURN 0;
14045
		END IF;
14046
	EXCEPTION
14047
		WHEN OTHERS THEN
14048
			RETURN -1;
14049
	END;
14050
 
14051
 
14052
	FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER
14053
	AS
14054
 
14055
	BEGIN
14056
		-- end boundary case
14057
		IF ( XX < XXend ) THEN
14058
			RETURN 1;
14059
 
14060
		ELSIF ( XX = XXend ) THEN
14061
 
14062
			-- need to consider YY
14063
			IF ( YY < YYend ) THEN
14064
				RETURN 1;
14065
 
14066
			ELSIF ( YY = YYend ) THEN
14067
 
14068
					-- need to consider ZZ
14069
					IF ( ZZ <= ZZend ) THEN
14070
						RETURN 1;
14071
 
14072
					ELSE
14073
						RETURN 0;
14074
					END IF;
14075
			ELSE
14076
 
14077
				RETURN 0;
14078
			END IF;
14079
		ELSE
14080
			RETURN 0;
14081
		END IF;
14082
	EXCEPTION
14083
		WHEN OTHERS THEN
14084
			RETURN -1;
14085
	END;
14086
 
14087
	/*
14088
	-	version format:		XX.YY.ZZ.abc
14089
	*/
14090
	FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBER
14091
	AS
14092
		XXstart		NUMBER	:=	0;
14093
		XXend		NUMBER	:=	0;
14094
		XX			NUMBER	:=	0;
14095
		YYstart		NUMBER	:=	0;
14096
		YYend		NUMBER	:=	0;
14097
		YY			NUMBER	:=	0;
14098
		ZZstart		NUMBER	:=	0;
14099
		ZZend		NUMBER	:=	0;
14100
		ZZ			NUMBER	:=	0;
14101
		first_dot	NUMBER	:=	0;
14102
		second_dot	NUMBER	:=	0;
14103
		third_dot	NUMBER	:=	0;
14104
 
14105
		ProjExtstart	VARCHAR2(10);
14106
		ProjExtend		VARCHAR2(10);
14107
		ProjExt			VARCHAR2(10);
14108
 
14109
	BEGIN
14110
		-- strip the version number
14111
		first_dot :=  INSTR(version_start, '.', 1, 1);
14112
		second_dot :=  INSTR(version_start, '.', 1, 2);
14113
		third_dot :=  INSTR(version_start, '.', 1, 3);
14114
 
14115
		XXstart := TO_NUMBER( SUBSTR( version_start, 1, first_dot - 1 ) );
14116
		YYstart := TO_NUMBER( SUBSTR( version_start, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
14117
		ZZstart := TO_NUMBER( SUBSTR( version_start, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
14118
		ProjExtstart := SUBSTR( version_start, third_dot + 1, LENGTH(version_start) - third_dot );
14119
 
14120
		first_dot :=  INSTR(version_end, '.', 1, 1);
14121
		second_dot :=  INSTR(version_end, '.', 1, 2);
14122
		third_dot :=  INSTR(version_end, '.', 1, 3);
14123
 
14124
		XXend := TO_NUMBER( SUBSTR( version_end, 1, first_dot - 1 ) );
14125
		YYend := TO_NUMBER( SUBSTR( version_end, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
14126
		ZZend := TO_NUMBER( SUBSTR( version_end, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
14127
		ProjExtend := SUBSTR( version_end, third_dot + 1, LENGTH(version_end) - third_dot );
14128
 
14129
		first_dot :=  INSTR(version, '.', 1, 1);
14130
		second_dot :=  INSTR(version, '.', 1, 2);
14131
		third_dot :=  INSTR(version, '.', 1, 3);
14132
 
14133
		XX := TO_NUMBER( SUBSTR( version, 1, first_dot - 1 ) );
14134
		YY := TO_NUMBER( SUBSTR( version, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
14135
		ZZ := TO_NUMBER( SUBSTR( version, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
14136
		ProjExt := SUBSTR( version, third_dot + 1, LENGTH(version) - third_dot );
14137
 
14138
		-- only include versions if all project extensions are the same
14139
		IF ( ProjExtstart = ProjExt AND ProjExt = ProjExtend ) THEN
14140
 
14141
			IF ( VerIsGrtrThanOrEqlToStart( XXstart, XX, YYstart, YY, ZZstart, ZZ ) = 1 AND VerIsLessThanOrEqlToEnd( XXend, XX, YYend, YY, ZZend, ZZ ) = 1 ) THEN
14142
				RETURN 1;
14143
			ELSE
14144
				RETURN 0;
14145
			END IF;
14146
		ELSE
14147
			RETURN 0;
14148
		END IF;
14149
 
14150
	EXCEPTION
14151
		WHEN OTHERS THEN
14152
			RETURN -1;
14153
	END;
14154
 
14155
	FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBER
14156
	AS
14157
	    pkg_id NUMBER;
14158
	BEGIN
14159
		SELECT
14160
			p.PKG_ID
14161
		INTO
14162
			pkg_id
14163
		FROM
14164
			PACKAGES p
14165
		WHERE
14166
			p.PKG_NAME = pkgName;
14167
 
14168
		RETURN pkg_id;
14169
	EXCEPTION
14170
	    WHEN OTHERS THEN
14171
			dbms_output.put_line('GetPkgId exception: ' || SQLERRM );
14172
			RETURN -1;
14173
	END;
14174
 
14175
 
14176
-- Public Implementation ------------------------------------------------------
14177
 
14178
	/*
14179
	-- Proc: AllIssues - Gets all issues for a package from dependent packages one level deep
14180
	--
14181
	-- INPUT PARAMETERS:
14182
	--
14183
	--		pkg_name  	-  	The name of the top level package to get issues for
14184
	--		version_start	-	The start version for the comparison
14185
	--		version_end	-	The end version for the comparison
14186
	*/
14187
	PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )
14188
	AS
14189
		pkgId	NUMBER;
14190
	BEGIN
14191
		-- get pkg_id of the input package:
14192
		pkgId := GetPkgId( pkg_name );
14193
 
14194
		OPEN vCursor FOR
14195
		SELECT
14196
			  pv.PKG_ID,
14197
			  pv.PKG_VERSION,
14198
			  pv.PV_ID,
14199
			  i_pkg.ISS_ID,
14200
			  ( SELECT pkg_name FROM PACKAGES WHERE pkg_id = pd.DPKG_ID ) AS DPV_NAME,
14201
			  pd.DPKG_ID,
14202
			  ( SELECT pkg_version FROM PACKAGE_VERSIONS WHERE pv_id = pd.DPV_ID ) AS DPV_VER,
14203
			  pd.DPV_ID,
14204
			  i_dpkg.ISS_ID AS ISSUE_ID
14205
		FROM
14206
			 PACKAGE_VERSIONS pv
14207
							  LEFT OUTER JOIN CQ_ISSUES i_pkg ON pv.PV_ID = i_pkg.PV_ID
14208
							  LEFT OUTER JOIN PACKAGE_DEPENDENCIES pd ON pv.PV_ID = pd.PV_ID
14209
							  LEFT OUTER JOIN CQ_ISSUES i_dpkg ON pd.DPV_ID = i_dpkg.PV_ID
14210
		WHERE
14211
   			 pv.PKG_ID = pkgId
14212
		AND
14213
			VersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1
14214
		AND
14215
			 ( i_dpkg.ISS_ID IS NOT NULL OR i_pkg.ISS_ID IS NOT NULL )
14216
		ORDER BY
14217
			 pv.PKG_ID,
14218
			 pv.PV_ID,
14219
			 pd.DPKG_ID,
14220
			 pd.DPV_ID;
14221
	EXCEPTION
14222
		WHEN OTHERS THEN
14223
			dbms_output.put_line('AllIssues exception: ' || SQLERRM );
14224
	END;
14225
 
14226
 
14227
	-- NOTE: make RM_PACKAGE_ISSUES a temporary table when tested ok
14228
 
14229
	/*
14230
	-- Proc: LoadIssuesTable
14231
	--
14232
	-- Populates Package_Issues table with details of issues from all dependent packages.
14233
	-- This will be for all package versions of the input pkg_name between the
14234
	-- version_start and version_end.
14235
	--
14236
	-- INPUT PARAMETERS:
14237
	--
14238
	--		pkg_name  	-  	The name of the top level package to get issues for
14239
	--		version_start	-	The start version for the comparison
14240
	--		version_end	-	The end version for the comparison
14241
	*/
14242
	PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )
14243
	AS
14244
		pkgId	NUMBER;
14245
 
14246
		CURSOR pack_vers_cur IS
14247
			SELECT
14248
				pv.PV_ID,
14249
				pv.PKG_VERSION,
14250
				pv.PKG_ID,
14251
				p.PKG_NAME
14252
			FROM
14253
				PACKAGE_VERSIONS pv
14254
					JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
14255
			WHERE
14256
   				 pv.PKG_ID = pkgId
14257
			AND
14258
				VersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1;
14259
 
14260
	BEGIN
14261
		DELETE FROM RELEASE_MANAGER.RM_PKG_ISSUES; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
14262
 
14263
		-- get the pkg_id we are finding issues for
14264
		pkgId := GetPkgId( pkg_name );
14265
 
14266
		-- find all the top level packages we are dealing with and recursively process their issues and their dependent package issues.
14267
		FOR pack_ver_rec IN  pack_vers_cur
14268
		LOOP
14269
			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 );
14270
			COMMIT;
14271
		END LOOP;
14272
 
14273
		-- The output cursor - shows the individual versions of the top level package then were reported on
14274
		OPEN vCursor FOR
14275
		SELECT DISTINCT ISS_ID, PKG_VERSION FROM RM_PKG_ISSUES WHERE ISS_ID IS NOT NULL; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
14276
/*removed
14277
		SELECT
14278
			PKG_VERSION
14279
		FROM
14280
			RELEASE_MANAGER.RM_PACKAGE_ISSUES;
14281
*/
14282
 
14283
 
14284
	EXCEPTION
14285
		WHEN OTHERS THEN
14286
			dbms_output.put_line('LoadIssuesTable exception: ' || SQLERRM );
14287
	END;
14288
 
14289
 
14290
	/*
14291
	-- Proc: InsertIssuesForDepends
14292
	--
14293
	-- Used by LoadIssuesTable to recursively find issues for all dependent packages
14294
	--
14295
	-- INPUT PARAMETERS:
14296
	--
14297
	--		pvID  		-  	The package version id of the package to get issues for
14298
	--		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)
14299
	--		top_pkgName -  	The package name of the top level package
14300
	--		top_pvID  	-  	The package version id of the top level package
14301
	--		top_pkgVer  -  	The package version description of the top level package
14302
	*/
14303
	PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 )
14304
	AS
14305
		pkgId		NUMBER;
14306
		issCnt		NUMBER := 0;
14307
		pkgCheck	NUMBER := 0;
14308
		depCheck	NUMBER := 0;
14309
 
14310
		dpkgName	VARCHAR(50);
14311
		dpkgVersion	VARCHAR(50);
14312
 
14313
		CURSOR dep_packs_cur IS
14314
			SELECT
14315
				DPV_ID
14316
			FROM
14317
				PACKAGE_DEPENDENCIES
14318
			WHERE
14319
				PV_ID = pvID;
14320
 
14321
	BEGIN
14322
 
14323
		-- check to see if the package has been processed previously
14324
		SELECT
14325
			COUNT(*)
14326
		INTO
14327
			pkgCheck
14328
		FROM
14329
			RM_PKG_ISSUES /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
14330
		WHERE
14331
			DPV_ID = pvID;
14332
 
14333
		dbms_output.put_line('pkgCheck: ' || pkgCheck );
14334
 
14335
		-- Package not already processed (no cyclic dependency) - process it
14336
		IF ( pkgCheck = 0 ) THEN
14337
 
14338
			-- check to see if this package version has any issues assigned to it
14339
			SELECT
14340
				COUNT(*)
14341
			INTO
14342
				issCnt
14343
			FROM
14344
				CQ_ISSUES i
14345
			WHERE
14346
				i.PV_ID = pvID;
14347
 
14348
			dbms_output.put_line('issCnt: ' || issCnt );
14349
 
14350
			-- Always enter a marker row into the table even if there are no issues for the package.
14351
			-- This allows us to pick up any cyclic dependencies.
14352
			IF ( issCnt > 0 ) THEN
14353
				-- get issues and insert into RM_PACKAGE_ISSUES
14354
				/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
14355
 
14356
				INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )
14357
					SELECT DISTINCT
14358
						top_pkgID		AS PKG_ID,
14359
						top_pkgName		AS PKG_NAME,
14360
						top_pvID		AS PV_ID,
14361
						top_pkgVer		AS PKG_VERSION,
14362
						pv.PV_ID		AS DPV_ID,
14363
						p.PKG_NAME		AS DPKG_NAME,
14364
						pv.PKG_VERSION	AS DPKG_VERSION,
14365
						ci.ISS_DB,
14366
						ci.ISS_ID
14367
					FROM
14368
						PACKAGE_VERSIONS pv
14369
							JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
14370
							JOIN CQ_ISSUES ci ON pv.PV_ID = ci.PV_ID
14371
					WHERE
14372
						pv.PV_ID = pvID;
14373
 
14374
			ELSE
14375
				-- get the dpkg details - there will always be a row returned here
14376
				SELECT
14377
					p.PKG_NAME
14378
				INTO
14379
					dpkgName
14380
				FROM
14381
					PACKAGE_VERSIONS pv
14382
						JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
14383
				WHERE
14384
	   				 pv.PV_ID = pvID;
14385
 
14386
				SELECT
14387
					pv.PKG_VERSION
14388
				INTO
14389
					dpkgVersion
14390
				FROM
14391
					PACKAGE_VERSIONS pv
14392
				WHERE
14393
	   				 pv.PV_ID = pvID;
14394
 
14395
				-- enter a marker row
14396
				/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
14397
				INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )
14398
				VALUES (
14399
					top_pkgID,
14400
					top_pkgName,
14401
					top_pvID,
14402
					top_pkgVer,
14403
					pvID,
14404
					dpkgName,
14405
					dpkgVersion,
14406
					NULL,
14407
					NULL );
14408
 
14409
			END IF;
14410
 
14411
			-- If this package version has dependencies then recurse
14412
			SELECT
14413
				COUNT(*)
14414
			INTO
14415
				depCheck
14416
			FROM
14417
				PACKAGE_DEPENDENCIES
14418
			WHERE
14419
				PV_ID = pvID;
14420
 
14421
			IF ( depCheck > 0 ) THEN
14422
				-- get dependencies and call this function recursively for each one
14423
				FOR dep_rec IN  dep_packs_cur
14424
				LOOP
14425
					InsertIssuesForDepends( dep_rec.DPV_ID, top_pkgID, top_pkgName, top_pvID, top_pkgVer );
14426
				END LOOP;
14427
 
14428
			END IF;
14429
 
14430
		END IF;
14431
 
14432
	/*EXCEPTION
14433
		WHEN OTHERS THEN
14434
			no exception handling required
14435
	*/
14436
	END;
14437
 
14438
END Rm_Issues;
4040 dpurdie 14439
 
1374 dpurdie 14440
/
4040 dpurdie 14441
--------------------------------------------------------
14442
--  DDL for Procedure ADD_AUTOBUILD_FAILURE_INFO
14443
--------------------------------------------------------
14444
set define off;
14445
 
5172 dpurdie 14446
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_AUTOBUILD_FAILURE_INFO" (
1373 dpurdie 14447
   nprojid     IN   NUMBER,
14448
   nviewid     IN   NUMBER,
14449
   suserlist   IN   VARCHAR2
14450
)
14451
IS
14452
   groupid   NUMBER;
14453
/******************************************************************************
14454
   NAME:       ADD_AUTOBUILD_FAILURE
14455
   PURPOSE:
14456
 
14457
   REVISIONS:
14458
   Ver        Date        Author           Description
14459
   ---------  ----------  ---------------  ------------------------------------
14460
   1.0        11/04/2006   Rupesh Solanki Created this procedure.
14461
 
14462
   NOTES:
14463
 
14464
   Automatically available Auto Replace Keywords:
14465
      Object Name:     ADD_AUTOBUILD_FAILURE
14466
      Sysdate:         11/04/2006
14467
      Date and Time:   11/04/2006, 9:28:28 AM, and 11/04/2006 9:28:28 AM
14468
      Username:         (set in TOAD Options, Procedure Editor)
14469
      Table Name:       (set in the "New PL/SQL Object" dialog)
14470
 
14471
******************************************************************************/
14472
BEGIN
14473
   BEGIN
14474
      SELECT group_email_id
14475
        INTO groupid
14476
        FROM autobuild_failure
14477
       WHERE proj_id = nprojid AND view_id = nviewid;
14478
   EXCEPTION
14479
      WHEN NO_DATA_FOUND
14480
      THEN
14481
         --  Create Next Sequence Id ---
14482
         SELECT seq_group_email_id.NEXTVAL
14483
           INTO groupid
14484
           FROM DUAL;
14485
 
14486
         INSERT INTO autobuild_failure
14487
                     (group_email_id, proj_id, view_id
14488
                     )
14489
              VALUES (groupid, nprojid, nviewid
14490
                     );
14491
   END;
14492
 
14493
   add_view_members (groupid, suserlist);
14494
END add_autobuild_failure_info;
4040 dpurdie 14495
 
1374 dpurdie 14496
/
4040 dpurdie 14497
--------------------------------------------------------
14498
--  DDL for Procedure ADD_COMPONENT
14499
--------------------------------------------------------
14500
set define off;
14501
 
5172 dpurdie 14502
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_COMPONENT" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE,
3959 dpurdie 14503
	   	  		  						  	sFileName IN RELEASE_COMPONENTS.FILE_NAME%TYPE,
14504
											sFilePath IN RELEASE_COMPONENTS.FILE_PATH%TYPE DEFAULT NULL,
14505
											nByteSize IN RELEASE_COMPONENTS.BYTE_SIZE%TYPE,
14506
											sCRCcksum IN RELEASE_COMPONENTS.CRC_CKSUM%TYPE DEFAULT NULL,
14507
											sCRCmodcrc IN RELEASE_COMPONENTS.CRC_MODCRC%TYPE DEFAULT NULL
14508
                                           ) IS
14509
/* ---------------------------------------------------------------------------
14510
    Version: 3.0.0
14511
   --------------------------------------------------------------------------- */
1373 dpurdie 14512
 
14513
 
14514
BEGIN
14515
 
3959 dpurdie 14516
	 --- Insert into RELEASE_COMPONENTS
14517
	 INSERT INTO RELEASE_COMPONENTS ( PV_ID, FILE_NAME, FILE_PATH, BYTE_SIZE, CRC_CKSUM, CRC_MODCRC )
14518
	 VALUES ( nPvId, sFileName, sFilePath, nByteSize, sCRCcksum, sCRCmodcrc  );
1373 dpurdie 14519
 
14520
 
3959 dpurdie 14521
 
14522
 
14523
END Add_Component;
4040 dpurdie 14524
 
1374 dpurdie 14525
/
4040 dpurdie 14526
--------------------------------------------------------
14527
--  DDL for Procedure ADD_PACKAGE_INTEREST
14528
--------------------------------------------------------
14529
set define off;
14530
 
5384 dpurdie 14531
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_PACKAGE_INTEREST" (
14532
    nProjId    IN PROJECTS.PROJ_ID%TYPE,
14533
    nPkgIdList IN VARCHAR2,
14534
    nUserId    IN NUMBER )
14535
IS
14536
  npkgidcollector relmgr_number_tab_t := relmgr_number_tab_t ();
14537
  nPkgId        NUMBER;
14538
  alreadyExists NUMBER;
1373 dpurdie 14539
BEGIN
5384 dpurdie 14540
  npkgidcollector := in_list_number2 (nPkgIdList);
14541
  FOR i IN 1..npkgidcollector.COUNT
14542
  LOOP
14543
    nPkgId := npkgidcollector(i);
14544
    --- Ensure it doesn't already exist
14545
    SELECT COUNT(*)
14546
    INTO alreadyExists
14547
    FROM PACKAGE_INTEREST
14548
    WHERE USER_ID      = nUserId
14549
    AND PKG_ID         = nPkgId
14550
    AND PROJ_ID        = nProjId;
14551
 
14552
    IF ( alreadyExists = 0 ) THEN
14553
      --- Insert into PACKAGE_INTEREST TABLE
14554
      INSERT
14555
        INTO PACKAGE_INTEREST (PROJ_ID, PKG_ID, USER_ID )
14556
        VALUES (nProjId, nPkgId, nUserId );
14557
    END IF;
14558
  END LOOP;
3959 dpurdie 14559
END ADD_PACKAGE_INTEREST;
4040 dpurdie 14560
 
3959 dpurdie 14561
/
4040 dpurdie 14562
--------------------------------------------------------
14563
--  DDL for Procedure ADD_RUNTIME_DEPENDENCY
14564
--------------------------------------------------------
14565
set define off;
14566
 
5172 dpurdie 14567
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_RUNTIME_DEPENDENCY" ( NNpv_id IN NUMBER,
3959 dpurdie 14568
                                                     SSrtd_name IN PACKAGES.pkg_name%TYPE,
14569
                                                     SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
14570
                                                     NNuser_id IN NUMBER
14571
                                                    ) IS
1373 dpurdie 14572
/* ---------------------------------------------------------------------------
3959 dpurdie 14573
    Version: 3.1
1373 dpurdie 14574
   --------------------------------------------------------------------------- */
14575
 
3959 dpurdie 14576
    retRTD_ID NUMBER;
14577
 
14578
	CURSOR rtd_cur IS
14579
        SELECT rtd_id FROM runtime_dependencies WHERE pv_id = NNpv_id AND rtd_id = retRTD_ID;
14580
    rtd_rec rtd_cur%ROWTYPE;
14581
 
1373 dpurdie 14582
BEGIN
3959 dpurdie 14583
    --- Seed database with package_name and version if required ---
14584
    Seed_Package_Names_Versions ( SSrtd_name, SSrtd_version, NNuser_id, retRTD_ID );
1373 dpurdie 14585
 
3959 dpurdie 14586
	OPEN rtd_cur;
14587
    FETCH rtd_cur INTO rtd_rec;
1373 dpurdie 14588
 
3959 dpurdie 14589
    IF rtd_cur%NOTFOUND
14590
    THEN
14591
		/* Make sure it does not exists already as runtime dependency */
1373 dpurdie 14592
 
3959 dpurdie 14593
		--- Add new Runtime Dependency ---
14594
	    INSERT INTO runtime_dependencies ( pv_id, rtd_id, mod_date, mod_user )
14595
	    VALUES (  NNpv_id, retRTD_ID, ORA_SYSDATE , NNuser_id );
1373 dpurdie 14596
 
3959 dpurdie 14597
    	/* LOG ACTION */
14598
        Log_Action ( NNpv_id, 'runtime_add', NNuser_id,
14599
    			     'Runtime package: '|| SSrtd_name ||' '|| SSrtd_version );
14600
 
14601
	END IF;
14602
 
14603
 
14604
END Add_Runtime_Dependency;
4040 dpurdie 14605
 
1374 dpurdie 14606
/
4040 dpurdie 14607
--------------------------------------------------------
14608
--  DDL for Procedure ADD_VIEW_MEMBERS
14609
--------------------------------------------------------
14610
set define off;
14611
 
5172 dpurdie 14612
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_VIEW_MEMBERS" (nGroupId IN NUMBER, sUserList IN VARCHAR2) IS
3959 dpurdie 14613
 
14614
/******************************************************************************
14615
   NAME:       ADD_VIEW_MEMBERS
14616
   PURPOSE:    
14617
 
14618
   REVISIONS:
14619
   Ver        Date        Author           Description
14620
   ---------  ----------  ---------------  ------------------------------------
14621
   1.0        11/04/2006          1. Created this procedure.
14622
 
14623
   NOTES:
14624
 
14625
   Automatically available Auto Replace Keywords:
14626
      Object Name:     ADD_VIEW_MEMBERS
14627
      Sysdate:         11/04/2006
14628
      Date and Time:   11/04/2006, 9:52:58 AM, and 11/04/2006 9:52:58 AM
14629
      Username:         (set in TOAD Options, Procedure Editor)
14630
      Table Name:       (set in the "New PL/SQL Object" dialog)
14631
 
14632
******************************************************************************/
14633
CURSOR user_cur IS
14634
	SELECT u.USER_ID
14635
	  FROM USERS u
14636
	 WHERE u.USER_ID IN (
14637
	 	   			   	SELECT * 
14638
						  FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserList ) AS RELMGR_NUMBER_TAB_t ) FROM dual ) 
14639
						);
14640
user_rec user_cur%ROWTYPE;
14641
 
14642
 
14643
BEGIN
14644
 
14645
	 OPEN user_cur;
14646
	 FETCH user_cur INTO user_rec;
14647
 
14648
	 WHILE user_cur%FOUND
14649
	 LOOP
14650
	 	 INSERT INTO MEMBERS_GROUP (GROUP_EMAIL_ID, USER_ID)
14651
	 	 VALUES ( nGroupId, user_rec.USER_ID);
14652
 
14653
	 	 FETCH user_cur INTO user_rec;	 
14654
	 END LOOP;	 
14655
 
14656
 
14657
 
14658
END ADD_VIEW_MEMBERS;
4040 dpurdie 14659
 
1374 dpurdie 14660
/
4040 dpurdie 14661
--------------------------------------------------------
14662
--  DDL for Procedure BASIC_CLONE
14663
--------------------------------------------------------
14664
set define off;
14665
 
5502 dpurdie 14666
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."BASIC_CLONE" ( 
14667
        nFROMpv_id IN NUMBER,
14668
        nTOpv_id IN NUMBER,
14669
        nRtag_id IN NUMBER,
14670
        nUser_id IN NUMBER,
14671
        nTOpkg_id IN NUMBER DEFAULT NULL,
14672
        enumISSUES_STATE_IMPORTED IN NUMBER DEFAULT NULL ) IS
1373 dpurdie 14673
 
14674
   FromVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
14675
   major NUMBER;
14676
   minor NUMBER;
14677
   patch NUMBER;
14678
   buildn NUMBER;
14679
   from_vcs_type_id NUMBER;
14680
BEGIN
14681
------------------------------ Version Control System ------------------------------------------
14682
   SELECT vcs_type_id
14683
      INTO from_vcs_type_id
14684
      FROM package_versions WHERE pv_id = nFROMpv_id;
14685
 
14686
   UPDATE package_versions
14687
      SET vcs_type_id = from_vcs_type_id
14688
      WHERE pv_id = nTOpv_id;
14689
------------------------------------- Limits ---------------------------------------------------
14690
   select major_limit, minor_limit, patch_limit, build_number_limit
14691
   into major, minor, patch, buildn
14692
   from package_versions where pv_id=nFROMpv_id;
14693
    UPDATE package_versions SET
14694
           major_limit = major,
14695
           minor_limit = minor,
14696
           patch_limit = patch,
14697
           build_number_limit = buildn
14698
     WHERE PV_ID = nTOpv_id;
14699
------------------------------------- Clone Dependencies ---------------------------------------------------
14700
   IF NOT nRtag_id IS NULL
14701
   THEN
14702
      -- Auto Update Dependencies --
14703
      INSERT INTO PACKAGE_DEPENDENCIES
14704
           SELECT nTOpv_id AS pv_id,
14705
                  DECODE(nUser_id,
14706
                         frc.modifier_id,
14707
                         frc.pv_id,
14708
                         DECODE(frc.dlocked,
14709
                                'Y',
14710
                                frc.pv_id,
14711
                                dep.dpv_id)
14712
                         ) AS dpv_id,
14713
                  nTOpkg_id AS pkg_id,
14714
                  dep.dpkg_id,
14715
                  dep.build_type,
14716
                  dep.display_order
14717
             FROM PACKAGE_DEPENDENCIES dep,
14718
                  PACKAGE_VERSIONS pv,
14719
                  (
14720
                  /* Full Release Contents used for reference*/
14721
                  SELECT rpv.pv_id, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext, rpv.modifier_id, rpv.dlocked
14722
                  FROM RELEASE_CONTENT rel, PACKAGE_VERSIONS rpv
14723
                  WHERE rel.pv_id = rpv.pv_id AND rtag_id = nRtag_id
14724
                  ) frc
14725
            WHERE dep.pv_id = nFROMpv_id
14726
              AND dep.dpv_id = pv.pv_id
14727
              AND pv.pkg_id = frc.pkg_id(+)
14728
              AND NVL(pv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+);
14729
   ELSE
14730
      -- Clone Dependencies --
14731
      INSERT INTO PACKAGE_DEPENDENCIES
14732
           SELECT nTOpv_id         AS pv_id,
14733
                  dep.dpv_id,
14734
                  nTOpkg_id        AS pkg_id,
14735
                  dep.dpkg_id,
14736
                  dep.build_type,
14737
                  dep.display_order
14738
             FROM PACKAGE_DEPENDENCIES dep
14739
            WHERE dep.pv_id = nFROMpv_id;
14740
 
14741
   END IF;
14742
 
14743
----------------------------------------- Clone Issues -------------------------------------------------------
14744
   IF enumISSUES_STATE_IMPORTED IS NULL
14745
   THEN
14746
        /* All Issues */
14747
       INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
14748
            SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
14749
              FROM CQ_ISSUES
14750
             WHERE pv_id = nFROMpv_id;
14751
   ELSE
14752
       /* Outstanding Issues Only */
14753
       INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
14754
            SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
14755
              FROM CQ_ISSUES
14756
             WHERE pv_id = nFROMpv_id
14757
               AND iss_state = enumISSUES_STATE_IMPORTED;
14758
   END IF;
14759
 
14760
------------------------------------ Clone Runtime Dependencies -----------------------------------------------
14761
   INSERT INTO RUNTIME_DEPENDENCIES (pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user)
14762
       SELECT nTOpv_id AS pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user
14763
       FROM RUNTIME_DEPENDENCIES WHERE pv_id = nFROMpv_id;
14764
 
14765
--------------------------------------- Clone Additional Notes ------------------------------------------------
14766
   INSERT INTO ADDITIONAL_NOTES ( NOTE_ID, PV_ID, NOTE_TITLE, NOTE_BODY, MOD_DATE, MOD_USER )
14767
        SELECT an.NOTE_ID,
14768
               nTOpv_id AS PV_ID,
14769
               an.NOTE_TITLE,
14770
               an.NOTE_BODY,
14771
               an.MOD_DATE,
14772
               an.MOD_USER
14773
          FROM ADDITIONAL_NOTES an
14774
         WHERE an.PV_ID = nFROMpv_id;
14775
 
14776
-------------------------------------------- Clone Unit Tests -------------------------------------------------
5502 dpurdie 14777
-- Only clone 'Auto Unit Test', 'Interactive Unit Test' and 'Autobuild UTF'
14778
-- Only clone the basic information: TEST_SUMMARY
1373 dpurdie 14779
 
14780
    INSERT INTO UNIT_TESTS (
14781
                            TEST_ID,
14782
                            PV_ID,
14783
                            TEST_TYPES_FK,
14784
                            TEST_SUMMARY
14785
                           )
14786
       SELECT ut.TEST_ID,
14787
              nTOpv_id AS PV_ID,
14788
              ut.TEST_TYPES_FK,
14789
              ut.TEST_SUMMARY
14790
         FROM UNIT_TESTS ut
14791
        WHERE ut.PV_ID = nFROMpv_id
5502 dpurdie 14792
          AND ut.TEST_TYPES_FK IN (5,6,7);
1373 dpurdie 14793
 
14794
-------------------------------------------- Clone Package Documents ------------------------------------------
14795
   INSERT INTO PACKAGE_DOCUMENTS ( PV_ID, TEST_ID, DOC_NUM, DOC_ID, IS_LATEST )
14796
        SELECT nTOpv_id AS PV_ID,
14797
               pd.test_id,
14798
               pd.doc_num,
14799
               pd.doc_id,
14800
               pd.IS_LATEST
14801
          FROM PACKAGE_DOCUMENTS pd
14802
         WHERE pd.PV_ID = nFROMpv_id;
14803
 
14804
-------------------------------------------- Clone Build Environments -----------------------------------------
14805
    INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID, BUILD_TYPE )
14806
    SELECT nTOpv_id AS PV_ID,
14807
           pkgbe.BE_ID,
14808
           pkgbe.BUILD_TYPE
14809
      FROM PACKAGE_BUILD_ENV pkgbe
14810
     WHERE pkgbe.PV_ID = nFROMpv_id;
5502 dpurdie 14811
 
1373 dpurdie 14812
---------------------------------------------Clone Package Build Info------------------------------------------
14813
    INSERT INTO PACKAGE_BUILD_INFO (PV_ID, BM_ID, BSA_ID)
14814
    SELECT nTOpv_id AS PV_ID,
14815
           pkgbinfo.BM_ID,
14816
           pkgbinfo.BSA_ID
14817
      FROM PACKAGE_BUILD_INFO pkgbinfo
14818
     WHERE pkgbinfo.PV_ID = nFROMpv_id;
5502 dpurdie 14819
 
1373 dpurdie 14820
---------------------------------------------Clone Package Version Processes-----------------------------------
14821
    INSERT INTO PACKAGE_PROCESSES ( PV_ID, PROC_ID )
14822
    SELECT nTOpv_id AS PV_ID,
14823
           pp.PROC_ID
14824
      FROM PACKAGE_PROCESSES pp
14825
     WHERE pp.PV_ID = nFROMpv_id;
5502 dpurdie 14826
 
1373 dpurdie 14827
---------------------------------------------Clone Licencing Associations-----------------------------------
14828
    PK_LICENCING.CLONE_LICENCING(nFROMpv_id, nTOpv_id, nUser_id);
14829
---------------------------------------------------------------------------------------------------------------
14830
 
14831
    /* LOG ACTION */
14832
    SELECT pv.PKG_VERSION INTO FromVersion
14833
      FROM PACKAGE_VERSIONS pv
14834
     WHERE pv.PV_ID = nFROMpv_id;
14835
 
14836
    Log_Action ( nTOpv_id, 'clone_from', nUser_id,
14837
                 'Details cloned from: '|| FromVersion );
14838
 
14839
---------------------------------------------------------------------------------------------------------------
14840
 
14841
END Basic_Clone;
4040 dpurdie 14842
 
1374 dpurdie 14843
/
4040 dpurdie 14844
--------------------------------------------------------
14845
--  DDL for Procedure BUILD_TREE
14846
--------------------------------------------------------
14847
set define off;
14848
 
5172 dpurdie 14849
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."BUILD_TREE" ( nRtag_id IN NUMBER,
3959 dpurdie 14850
	   	  		  					     retSessionNum OUT NUMBER ) IS
14851
 
1373 dpurdie 14852
/* ---------------------------------------------------------------------------
3959 dpurdie 14853
    Version: 3.0.0
1373 dpurdie 14854
   --------------------------------------------------------------------------- */
3959 dpurdie 14855
    rowCnt 			NUMBER := 0;						-- Iterations counter
14856
    iteration 		NUMBER := 1;                  -- Maximum number of iterations allowed.
14857
    maxIterations 	NUMBER := 50;      	  	-- This will prevent infinite loops if cyrcular dependencies are found
14858
	UP_THE_TREE 	CONSTANT NUMBER DEFAULT 1;
14859
	DOWN_THE_TREE 	CONSTANT NUMBER DEFAULT -1;
14860
    sessionNum 		NUMBER;
14861
	levelNum		NUMBER;
14862
 
14863
BEGIN
14864
    SELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;
14865
 
14866
	/*
14867
	||	   Start UP THE TREE
14868
	*/
14869
 
14870
 
14871
	/* Packages with no dependencies */    
14872
    INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
14873
		SELECT sessionNum AS SESSION_NUM,
14874
			   iteration AS LEVEL_NUM,
14875
			   UP_THE_TREE AS DIRECTION,
14876
			   rc.pv_id, pv.pkg_id, pv.v_ext
14877
		  FROM release_content rc,
14878
		  	   package_versions pv
14879
		 WHERE rc.rtag_id = nRtag_id
14880
		   AND rc.pv_id = pv.pv_id
14881
		 MINUS
14882
		SELECT sessionNum AS SESSION_NUM, 
14883
			   iteration AS LEVEL_NUM,
14884
			   UP_THE_TREE AS DIRECTION,
14885
			   dep.pv_id, pv.pkg_id, pv.v_ext
14886
		  FROM package_dependencies dep,
14887
		  	   package_versions pv
14888
		 WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtag_id )
14889
		   AND dep.pv_id = pv.pv_id;
14890
 
14891
 
14892
	/* Browse UP the build tree */	   
14893
	iteration := iteration + 1;
14894
    LOOP
14895
 
14896
		INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
14897
			SELECT DISTINCT 
14898
			       sessionNum AS SESSION_NUM,
14899
			       iteration AS LEVEL_NUM,
14900
				   UP_THE_TREE AS DIRECTION, 
14901
				   rdep.pv_id, rdep.pkg_id, rdep.v_ext
14902
			  FROM (  
14903
			        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
14904
			          FROM package_dependencies dep,
14905
			               release_content rc,
14906
						   package_versions pv,
14907
						   package_versions dpv
14908
			         WHERE dep.pv_id = rc.pv_id
14909
			           AND rc.rtag_id = nRtag_id
14910
					   AND dep.pv_id = pv.pv_id
14911
					   AND dep.dpv_id = dpv.pv_id
14912
					) rdep,
14913
					temp_tree_browse ttb
14914
			 WHERE rdep.dpkg_id  = ttb.pkg_id
14915
			   AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext,'|LINK_A_NULL|')
14916
			   AND ttb.SESSION_NUM = sessionNum
14917
			   AND ttb.LEVEL_NUM = iteration - 1	
14918
			MINUS
14919
			/* Packages with all depencencies NOT matched */  
14920
			SELECT DISTINCT 
14921
			       sessionNum AS SESSION_NUM,
14922
			       iteration AS LEVEL_NUM, 
14923
				   UP_THE_TREE AS DIRECTION,
14924
				   rdep.pv_id, rdep.pkg_id, rdep.v_ext
14925
			  FROM (  
14926
			        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
14927
			          FROM package_dependencies dep,
14928
			               release_content rc,
14929
						   package_versions pv,
14930
						   package_versions dpv
14931
			         WHERE dep.pv_id = rc.pv_id
14932
			           AND rc.rtag_id = nRtag_id
14933
					   AND dep.pv_id = pv.pv_id
14934
					   AND dep.dpv_id = dpv.pv_id
14935
					) rdep,
14936
					(
14937
					 SELECT tb.*
14938
					   FROM temp_tree_browse tb
14939
					  WHERE tb.SESSION_NUM = sessionNum
14940
					) ttb
14941
			 WHERE rdep.dpkg_id  = ttb.pkg_id (+)
14942
			   AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext (+),'|LINK_A_NULL|')
14943
			   AND ttb.SESSION_NUM IS NULL;
14944
 
14945
		rowCnt := SQL%ROWCOUNT;
14946
		IF rowCnt > 0 THEN
14947
           iteration := iteration + 1;
14948
		END IF;
14949
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
14950
    END LOOP;
14951
 
14952
	/*---------------------------------------------------------------------------------------------------------------------*/
14953
 
14954
	/*     Check for unresolved dependencies
14955
	||  
14956
	*/
14957
	/* UNRESOLVED */
14958
	 SELECT COUNT(*) INTO rowCnt
14959
	   FROM (
14960
			 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
14961
			  FROM release_content rc,
14962
			  	   package_versions pv
14963
			 WHERE rc.rtag_id = nRtag_id
14964
			   AND rc.pv_id = pv.pv_id	   
14965
			MINUS
14966
			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
14967
			  FROM temp_tree_browse ttb
14968
			 WHERE ttb.session_num = sessionNum
14969
			);
14970
 
14971
 
14972
 
14973
	 IF rowCnt > 0 
14974
	 THEN
14975
	 	 /*     Circular dependencies detected.
14976
		 ||     Try to resolve build order from the top now.
14977
		 ||		Start DOWN THE TREE
14978
		 */
14979
 
14980
		iteration := 0; 
14981
		 /* Top Level packages */	
14982
		INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )	   
14983
			SELECT sessionNum AS SESSION_NUM,
14984
			       iteration AS LEVEL_NUM,
14985
				   DOWN_THE_TREE AS DIRECTION,
14986
				   pv.pv_id, pv.pkg_id, pv.v_ext
14987
			  FROM (		   
14988
					/* Packages no one depends on ( Top level packages )*/
14989
					( 
14990
					/* All parents*/ 
14991
					SELECT pv.pkg_id, pv.v_ext
14992
			          FROM package_dependencies dep,
14993
			               release_content rc,
14994
						   package_versions pv
14995
			         WHERE dep.pv_id = rc.pv_id
14996
			           AND rc.rtag_id = nRtag_id
14997
					   AND dep.pv_id = pv.pv_id
14998
					 MINUS
14999
					 /* All children */
15000
					SELECT dpv.pkg_id, dpv.v_ext
15001
			          FROM package_dependencies dep,
15002
			               release_content rc,
15003
						   package_versions dpv
15004
			         WHERE dep.pv_id = rc.pv_id
15005
			           AND rc.rtag_id = nRtag_id
15006
					   AND dep.dpv_id = dpv.pv_id
15007
					 ) 
15008
					 MINUS
15009
					/* Packages with resolved dependencies from UP THE TREE */ 
15010
					SELECT ttb.pkg_id, ttb.v_ext
15011
					  FROM temp_tree_browse ttb
15012
					 WHERE ttb.session_num = sessionNum
15013
				  ) tpkg,
15014
				  package_versions pv,
15015
				  release_content rc
15016
			WHERE rc.rtag_id = nRtag_id
15017
			  AND rc.pv_id = pv.pv_id
15018
			  AND tpkg.pkg_id = pv.pkg_id
15019
			  AND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');
15020
 
15021
 
15022
		 /* Keep taking packages which no one depende on */			  
15023
		 iteration := iteration - 1;  
15024
		 LOOP	  
15025
			   INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
15026
					SELECT sessionNum AS SESSION_NUM,
15027
					       iteration AS LEVEL_NUM,
15028
					       DOWN_THE_TREE AS DIRECTION,
15029
					       pv.pv_id, pv.pkg_id, pv.v_ext
15030
					  FROM (		   
15031
					 	/* All Unresolved */
15032
					 	(
15033
					 	SELECT pv.pkg_id, pv.v_ext
15034
					 	  FROM release_content rc,
15035
					 	  	   package_versions pv
15036
					 	 WHERE rc.rtag_id = nRtag_id
15037
					 	   AND rc.pv_id = pv.pv_id	   
15038
					 	MINUS
15039
					 	SELECT ttb.pkg_id, ttb.v_ext
15040
					 	  FROM temp_tree_browse ttb
15041
					 	 WHERE ttb.session_num = sessionNum
15042
					 	)
15043
					 	 MINUS
15044
					 	(  
15045
					 	 /* Children of Unresolved */  
15046
					 	SELECT dpv.pkg_id, dpv.V_EXT
15047
					 	  FROM (
15048
					 			SELECT pv.pv_id, pv.pkg_id, pv.v_ext
15049
					 			  FROM release_content rc,
15050
					 			  	   package_versions pv
15051
					 			 WHERE rc.rtag_id = nRtag_id
15052
					 			   AND rc.pv_id = pv.pv_id	   
15053
					 			MINUS
15054
					 			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
15055
					 			  FROM temp_tree_browse ttb
15056
					 			 WHERE ttb.session_num = sessionNum
15057
					 		   ) unr,
15058
					 		   package_dependencies dep,
15059
					 		   package_versions dpv
15060
					 	 WHERE unr.pv_id = dep.pv_id
15061
					 	   AND dep.dpv_id = dpv.pv_id
15062
					 	 )  
15063
					   ) tpkg,
15064
					   package_versions pv,
15065
					   release_content rc
15066
					WHERE rc.rtag_id = nRtag_id
15067
					  AND rc.pv_id = pv.pv_id
15068
					  AND tpkg.pkg_id = pv.pkg_id
15069
					  AND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');
15070
 
15071
            rowCnt := SQL%ROWCOUNT;
15072
        	IF rowCnt > 0 THEN
15073
	           iteration := iteration - 1;
15074
			END IF;
15075
            EXIT WHEN (rowCnt < 1);
15076
     	END LOOP;
15077
 
15078
	 END IF;
15079
 
15080
 
15081
	/*---------------------------------------------------------------------------------------------------------------------*/
15082
 
15083
	/* 
15084
	|| 	 Save results from temp table
15085
	*/	
15086
	/* Clean up build_order table */
15087
	DELETE FROM BUILD_ORDER WHERE rtag_id = nRtag_id;
15088
 
15089
	/* Save UP THE TREE */
15090
	INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )
15091
		SELECT nRtag_id AS rtag_id,
15092
			   ttb.level_num AS step_num, 
15093
			   ttb.PV_ID
15094
		  FROM temp_tree_browse ttb
15095
		 WHERE ttb.session_num = sessionNum
15096
		   AND ttb.direction = UP_THE_TREE;	
15097
 
15098
	/*Get last step_num */
15099
	SELECT MAX(ttb.level_num) + 1 INTO levelNum
15100
	FROM temp_tree_browse ttb WHERE ttb.session_num = sessionNum AND ttb.DIRECTION = UP_THE_TREE;
15101
 
15102
	/* UNRESOLVED */
15103
	 SELECT COUNT(*) INTO rowCnt
15104
	   FROM (
15105
			 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
15106
			  FROM release_content rc,
15107
			  	   package_versions pv
15108
			 WHERE rc.rtag_id = nRtag_id
15109
			   AND rc.pv_id = pv.pv_id	   
15110
			MINUS
15111
			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
15112
			  FROM temp_tree_browse ttb
15113
			 WHERE ttb.session_num = sessionNum
15114
			);
15115
 
15116
 
15117
	IF rowCnt > 0
15118
	THEN
15119
		/* Save unresolved packages */
15120
 		INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID, UNRESOLVED )
15121
		    SELECT  nRtag_id AS rtag_id,
15122
				    levelNum AS step_num, 
15123
				    upv.PV_ID,
15124
					'Y' AS UNRESOLVED
15125
			   FROM (
15126
					 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
15127
					  FROM release_content rc,
15128
					  	   package_versions pv
15129
					 WHERE rc.rtag_id = nRtag_id
15130
					   AND rc.pv_id = pv.pv_id	   
15131
					MINUS
15132
					SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
15133
					  FROM temp_tree_browse ttb
15134
					 WHERE ttb.session_num = sessionNum
15135
					) upv;
15136
	END IF;	
15137
 
15138
	/* Save DOWN THE TREE */
15139
	levelNum := 1000;
15140
	INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )
15141
		SELECT nRtag_id AS rtag_id,
15142
			   levelNum + ttb.level_num  AS step_num, 
15143
			   ttb.PV_ID
15144
		  FROM temp_tree_browse ttb
15145
		 WHERE ttb.session_num = sessionNum
15146
		   AND ttb.direction = DOWN_THE_TREE;
15147
 
15148
 
15149
	/*---------------------------------------------------------------------------------------------------------------------*/
15150
 
15151
	/* Clean up temp table */
15152
	DELETE FROM TEMP_TREE_BROWSE WHERE session_num = sessionNum;
15153
 
15154
	retSessionNum := sessionNum;
15155
END Build_Tree;
4040 dpurdie 15156
 
3959 dpurdie 15157
/
4040 dpurdie 15158
--------------------------------------------------------
15159
--  DDL for Procedure CHANGE_PACKAGE_STATE
15160
--------------------------------------------------------
15161
set define off;
15162
 
5172 dpurdie 15163
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHANGE_PACKAGE_STATE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 15164
											 nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS
15165
/* ---------------------------------------------------------------------------
15166
    Version: 4.0
15167
   --------------------------------------------------------------------------- */
1373 dpurdie 15168
 
15169
BEGIN
15170
 
3959 dpurdie 15171
    -- Unlock Package
15172
    UPDATE RELEASE_CONTENT rc SET
15173
    	rc.PKG_STATE = 0
15174
    WHERE rc.PV_ID = nPvId
15175
	AND rc.RTAG_ID = nRtagId;
1373 dpurdie 15176
 
3959 dpurdie 15177
    /* LOG ACTION */
15178
   /*	Log_Action ( nPvId, 'unlock_package', nUserId );*/
1373 dpurdie 15179
 
3959 dpurdie 15180
END Change_Package_State;
4040 dpurdie 15181
 
1374 dpurdie 15182
/
4040 dpurdie 15183
--------------------------------------------------------
15184
--  DDL for Procedure CHANGE_RELEASE_MODE
15185
--------------------------------------------------------
15186
set define off;
15187
 
5172 dpurdie 15188
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHANGE_RELEASE_MODE" ( nModeCode IN NUMBER, nRtagId IN NUMBER, UserId IN NUMBER ) IS
3959 dpurdie 15189
/* ---------------------------------------------------------------------------
15190
    Version: 3.0.0
15191
   --------------------------------------------------------------------------- */
1373 dpurdie 15192
 
3959 dpurdie 15193
	cMode CHAR(1) := NULL;  
15194
	nProjId NUMBER; 
1373 dpurdie 15195
 
15196
BEGIN
3959 dpurdie 15197
 
1373 dpurdie 15198
 
3959 dpurdie 15199
	/*
15200
	Author: Rupesh Solanki
15201
	Modified: 24th October 2006
15202
	Reason: Added the archive mode state into Release Manager 
15203
	||	1 - Open Mode
15204
	||	2 - Restrictive Mode
15205
	||	3 - Closed Mode
15206
	||	4 - CCB Mode
15207
	||	5 - Archive Mode
5384 dpurdie 15208
  ||  6 - Preserve Mode
3959 dpurdie 15209
	*/	
15210
	-- Get project Id
15211
	SELECT rt.PROJ_ID INTO nProjId
15212
	  FROM RELEASE_TAGS rt
15213
	 WHERE rt.RTAG_ID = nRtagId; 
15214
 
15215
	IF nModeCode = 1 THEN
15216
		-- Open Mode
15217
		cMode := 'N';
15218
 
15219
		/* LOG ACTION */
15220
   		Log_Project_Action ( nProjId, 'set_to_open_mode', UserId, 'Release is set to Open Mode', nRtagId );
15221
 
15222
	ELSIF nModeCode = 2 THEN
15223
		-- Restrictive Mode
15224
		cMode := 'R';
15225
 
15226
		/* LOG ACTION */
15227
   		Log_Project_Action ( nProjId, 'set_to_restrictive_mode', UserId, 'Release is set to Restrictive Mode', nRtagId );
15228
 
15229
	ELSIF nModeCode = 3 THEN
15230
		-- Closed Mode
15231
		cMode := 'Y';
15232
 
15233
		/* LOG ACTION */
15234
   		Log_Project_Action ( nProjId, 'set_to_closed_mode', UserId, 'Release is set to Closed Mode', nRtagId  );
1373 dpurdie 15235
 
3959 dpurdie 15236
	ELSIF nModeCode = 4 THEN
15237
		-- CCB Mode
15238
		cMode := 'C';
15239
 
15240
		/* LOG ACTION */
15241
   		Log_Project_Action ( nProjId, 'set_to_ccb_mode', UserId, 'Release is set to CCB Mode', nRtagId  );
15242
 
15243
	ELSIF nModeCode = 5 THEN
15244
		-- Archive Mode
15245
		cMode := 'A';
15246
 
15247
		/* LOG ACTION */
15248
   		Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Archive Mode', nRtagId  );	
15249
 
5384 dpurdie 15250
  ELSIF nModeCode = 6 THEN
15251
		-- Archive Mode
15252
		cMode := 'P';
3959 dpurdie 15253
 
5384 dpurdie 15254
		/* LOG ACTION */
15255
   		Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Preserve Mode', nRtagId  );		
3959 dpurdie 15256
	END IF;
15257
 
15258
 
15259
 
15260
	-- Now update table
15261
	IF NOT cMode IS NULL THEN
15262
		UPDATE RELEASE_TAGS rt SET
4211 dpurdie 15263
		rt.OFFICIAL = cMode,
15264
    rt.OFFICIAL_STAMP = ORA_SYSDATETIME,
15265
    rt.OFFICIAL_ID = UserId
3959 dpurdie 15266
		WHERE rt.RTAG_ID = nRtagId;
15267
 
15268
	END IF;
1373 dpurdie 15269
 
15270
 
3959 dpurdie 15271
END CHANGE_RELEASE_MODE;
4040 dpurdie 15272
 
1374 dpurdie 15273
/
4040 dpurdie 15274
--------------------------------------------------------
15275
--  DDL for Procedure CHECK_NEW_PATCHES
15276
--------------------------------------------------------
15277
set define off;
15278
 
5172 dpurdie 15279
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHECK_NEW_PATCHES" (
3959 dpurdie 15280
   nrtagid   IN   release_content.rtag_id%TYPE
1373 dpurdie 15281
)
15282
IS
15283
/* ---------------------------------------------------------------------------
3959 dpurdie 15284
    Version: 3.0
1373 dpurdie 15285
   --------------------------------------------------------------------------- */
15286
BEGIN
3959 dpurdie 15287
   /*--------------- Business Rules Here -------------------*/
15288
   /*IF nRtagId NOT IN (SELECT RTAG_ID FROM RELEASE_TAGS ) THEN
15289
      RAISE_APPLICATION_ERROR (-20000, 'Please contact the person in charge of Release Manager now.' );
15290
   END IF
15291
 
15292
   /*-------------------------------------------------------*/
15293
   UPDATE release_content rc
15294
      SET rc.pkg_state = 5                          -- enumPKG_STATE_NEW_PATCH
15295
    WHERE rc.pv_id IN (
15296
             SELECT prod.pv_id
15297
               FROM (SELECT   pp.pv_id AS orig_parent_id,
15298
                              COUNT (*) AS num_of_patches
15299
                         FROM release_content rc, package_patches pp
15300
                        WHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagid
15301
                     GROUP BY pp.pv_id) orig,
15302
                    (SELECT   prodpp.pv_id, pp.pv_id AS parent_id,
15303
                              COUNT (*) AS num_of_patches
15304
                         FROM release_content rc,
15305
                              package_patches pp,
15306
                              package_dependencies dep,
15307
                              package_versions pv,
15308
                              package_patches prodpp
15309
                        WHERE rc.pv_id = pp.pv_id
15310
                          AND rc.rtag_id = nrtagid
15311
                          AND pp.patch_id = dep.dpv_id
15312
                          AND dep.pv_id = pv.pv_id
15313
                          AND pv.is_patch = 'Y'
15314
                          AND pv.dlocked = 'Y'
15315
                          AND prodpp.patch_id = dep.pv_id
15316
                     GROUP BY prodpp.pv_id, pp.pv_id) prod,
15317
                    release_content rc
15318
              WHERE orig.orig_parent_id = prod.pv_id
15319
                AND orig.num_of_patches != prod.num_of_patches
15320
                AND rc.rtag_id = nrtagid
15321
                AND rc.pv_id = prod.pv_id
15322
                AND rc.pkg_state = 0
15323
             UNION
15324
             SELECT   prodpp.pv_id
15325
                 FROM release_content rc,
15326
                      package_patches pp,
15327
                      package_dependencies dep,
1373 dpurdie 15328
                      package_versions pv,
3959 dpurdie 15329
                      package_patches prodpp
15330
                WHERE rc.pv_id = pp.pv_id
15331
                  AND rc.rtag_id = nrtagid
15332
                  AND pp.patch_id = dep.dpv_id
1373 dpurdie 15333
                  AND dep.pv_id = pv.pv_id
3959 dpurdie 15334
                  AND pv.is_patch = 'Y'
15335
                  AND pv.dlocked = 'Y'
15336
                  AND prodpp.patch_id = dep.pv_id
15337
             GROUP BY prodpp.pv_id, pp.pv_id
15338
             MINUS
15339
             SELECT   pp.pv_id
15340
                 FROM release_content rc, package_patches pp
15341
                WHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagid
15342
             GROUP BY pp.pv_id);
15343
END check_new_patches;
4040 dpurdie 15344
 
1374 dpurdie 15345
/
4040 dpurdie 15346
--------------------------------------------------------
15347
--  DDL for Procedure CLEAN_ADVISORY_RIPPLE
15348
--------------------------------------------------------
15349
set define off;
15350
 
5172 dpurdie 15351
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAN_ADVISORY_RIPPLE" (nrtagid IN NUMBER)
3959 dpurdie 15352
IS
15353
/******************************************************************************
15354
   NAME:       clean_advisory_ripple
1373 dpurdie 15355
 
3959 dpurdie 15356
   PURPOSE:    To delete entries from the advisory_ripple table based upon
15357
               an RTAG_ID only
1373 dpurdie 15358
 
3959 dpurdie 15359
               This is a tidy-up operation performed against the advisory_ripple
15360
               table, ensuring that the table does not have rtag_id/pv_id
15361
               combinations that cannot be found in the release's wip/pending/release
15362
               tabs.
15363
 
15364
******************************************************************************/
1373 dpurdie 15365
BEGIN
3959 dpurdie 15366
   -- Delete any invalid rtag_id/pv_id combination from the advisory_ripple table.
15367
   -- An invalid rtag_id/pv_id combination is one that cannot be found in the
15368
   -- work_in_progress, planned, or release_content table.
15369
   -- NOTE: Planned operations that represent pending additive/subtractive merge
15370
   -- operations are ignored because they have not been approved yet and so
15371
   -- cannot be said to be "in the release".
15372
   DELETE FROM advisory_ripple
15373
         WHERE rtag_id = nrtagid
15374
           AND pv_id not in
15375
               ((SELECT pv_id FROM release_content WHERE rtag_id = nrtagid)
15376
                 UNION
15377
                (SELECT pv_id FROM work_in_progress WHERE rtag_id = nrtagid)
15378
                 UNION
15379
                (SELECT pv_id FROM planned WHERE rtag_id = nrtagid AND (operation is null OR operation = 'R'))
15380
               );
15381
END clean_advisory_ripple;
4040 dpurdie 15382
 
3959 dpurdie 15383
/
4040 dpurdie 15384
--------------------------------------------------------
15385
--  DDL for Procedure CLEAN_DO_NOT_RIPPLE
15386
--------------------------------------------------------
15387
set define off;
15388
 
5172 dpurdie 15389
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAN_DO_NOT_RIPPLE" (nrtagid IN NUMBER)
3959 dpurdie 15390
IS
15391
/******************************************************************************
15392
   NAME:       clean_do_not_ripple
1373 dpurdie 15393
 
3959 dpurdie 15394
   PURPOSE:    To delete entries from the do_not_ripple table based upon
15395
               an RTAG_ID only
15396
 
15397
               This is a tidy-up operation performed against the do_not_ripple
15398
               table, ensuring that the table does not have rtag_id/pv_id
15399
               combinations that cannot be found in the release's wip/pending/release
15400
               tabs.
15401
 
15402
******************************************************************************/
15403
BEGIN
15404
   -- Delete any invalid rtag_id/pv_id combination from the do_not_ripple table.
15405
   -- An invalid rtag_id/pv_id combination is one that cannot be found in the
15406
   -- work_in_progress, planned, or release_content table.
15407
   -- NOTE: Planned operations that represent pending additive/subtractive merge
15408
   -- operations are ignored because they have not been approved yet and so
15409
   -- cannot be said to be "in the release".
15410
   DELETE FROM do_not_ripple
15411
         WHERE rtag_id = nrtagid
15412
           AND pv_id not in
15413
               ((SELECT pv_id FROM release_content WHERE rtag_id = nrtagid)
15414
                 UNION
15415
                (SELECT pv_id FROM work_in_progress WHERE rtag_id = nrtagid)
15416
                 UNION
15417
                (SELECT pv_id FROM planned WHERE rtag_id = nrtagid AND (operation is null OR operation = 'R'))
15418
               );
15419
END clean_do_not_ripple;
4040 dpurdie 15420
 
1374 dpurdie 15421
/
4040 dpurdie 15422
--------------------------------------------------------
15423
--  DDL for Procedure CLEAR_ADVISORY_RIPPLE
15424
--------------------------------------------------------
15425
set define off;
15426
 
5172 dpurdie 15427
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAR_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 15428
	   	  		  							   nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
15429
											 nUserId IN NUMBER ) IS
1373 dpurdie 15430
/* ---------------------------------------------------------------------------
3959 dpurdie 15431
    Version: 4.0
1373 dpurdie 15432
   --------------------------------------------------------------------------- */
15433
 
15434
BEGIN
15435
 
3959 dpurdie 15436
    -- Clear Advisory Ripple Package
15437
    DELETE FROM ADVISORY_RIPPLE
15438
	WHERE PV_ID = nPvId
15439
	AND RTAG_ID = nRtagId;
1373 dpurdie 15440
 
3959 dpurdie 15441
    /* LOG ACTION */
15442
   	Log_Action ( nPvId, 'clear_advisory_ripple', nUserId );
15443
 
15444
	/*Rebuild_Environment(nRtagId);*/
1373 dpurdie 15445
 
3959 dpurdie 15446
END Clear_Advisory_Ripple;
4040 dpurdie 15447
 
1374 dpurdie 15448
/
4040 dpurdie 15449
--------------------------------------------------------
15450
--  DDL for Procedure CLONED_PACKAGE_PROCESSES
15451
--------------------------------------------------------
15452
set define off;
15453
 
5172 dpurdie 15454
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLONED_PACKAGE_PROCESSES" 
3959 dpurdie 15455
IS
1373 dpurdie 15456
 
3959 dpurdie 15457
proc_id NUMBER;
1373 dpurdie 15458
/******************************************************************************
3959 dpurdie 15459
   NAME:       DELETE_DO_NOT_RIPPLE
15460
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
15461
               IS RELEASED
1373 dpurdie 15462
 
15463
   REVISIONS:
15464
   Ver        Date        Author           Description
15465
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 15466
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
1373 dpurdie 15467
 
15468
   NOTES:
15469
 
15470
   Automatically available Auto Replace Keywords:
3959 dpurdie 15471
      Object Name:     DELETE_DO_NOT_RIPPLE
15472
      Sysdate:         21/04/2006
15473
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
1373 dpurdie 15474
      Username:         (set in TOAD Options, Procedure Editor)
15475
      Table Name:       (set in the "New PL/SQL Object" dialog)
15476
 
15477
******************************************************************************/
3959 dpurdie 15478
   CURSOR ripple_cur
15479
   IS
15480
      select distinct proc_id, prod_id from deployment_manager.processes_config;
15481
 
15482
   ripple_rec   ripple_cur%ROWTYPE;
1373 dpurdie 15483
BEGIN
3959 dpurdie 15484
   OPEN ripple_cur;
1373 dpurdie 15485
 
3959 dpurdie 15486
   FETCH ripple_cur
15487
    INTO ripple_rec;
1373 dpurdie 15488
 
3959 dpurdie 15489
   WHILE ripple_cur%FOUND
15490
   LOOP
15491
 
1373 dpurdie 15492
 
3959 dpurdie 15493
 
15494
insert into package_processes (PROC_ID, PV_ID) 
15495
values( ripple_rec.proc_id, ripple_rec.prod_id);
15496
 
15497
      FETCH ripple_cur
15498
       INTO ripple_rec;
15499
   END LOOP;
15500
END CLONED_PACKAGE_PROCESSES;
4040 dpurdie 15501
 
1374 dpurdie 15502
/
4040 dpurdie 15503
--------------------------------------------------------
15504
--  DDL for Procedure CLONED_PROCESSES
15505
--------------------------------------------------------
15506
set define off;
15507
 
5172 dpurdie 15508
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLONED_PROCESSES" 
3959 dpurdie 15509
IS
15510
 
15511
proc_id NUMBER;
15512
/******************************************************************************
15513
   NAME:       DELETE_DO_NOT_RIPPLE
15514
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
15515
               IS RELEASED
15516
 
15517
   REVISIONS:
15518
   Ver        Date        Author           Description
15519
   ---------  ----------  ---------------  ------------------------------------
15520
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
15521
 
15522
   NOTES:
15523
 
15524
   Automatically available Auto Replace Keywords:
15525
      Object Name:     DELETE_DO_NOT_RIPPLE
15526
      Sysdate:         21/04/2006
15527
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
15528
      Username:         (set in TOAD Options, Procedure Editor)
15529
      Table Name:       (set in the "New PL/SQL Object" dialog)
15530
 
15531
******************************************************************************/
15532
   CURSOR ripple_cur
15533
   IS
15534
      select distinct pkg_health_tag, cmd_interface, pkg_owner, is_interface from deployment_manager.processes_config;
15535
 
15536
   ripple_rec   ripple_cur%ROWTYPE;
1373 dpurdie 15537
BEGIN
3959 dpurdie 15538
   OPEN ripple_cur;
1373 dpurdie 15539
 
3959 dpurdie 15540
   FETCH ripple_cur
15541
    INTO ripple_rec;
1373 dpurdie 15542
 
3959 dpurdie 15543
   WHILE ripple_cur%FOUND
15544
   LOOP
15545
 
15546
   select deployment_manager.seq_proc_id.nextval into proc_id from dual;
15547
 
15548
insert into processes (PROC_ID, PROC_NAME, RUN_AS, PKG_OWNER, IS_INTERFACE) 
15549
values(proc_id, ripple_rec.pkg_health_tag, ripple_rec.cmd_interface, ripple_rec.pkg_owner, ripple_rec.is_interface);
1373 dpurdie 15550
 
3959 dpurdie 15551
      FETCH ripple_cur
15552
       INTO ripple_rec;
15553
   END LOOP;
15554
END CLONED_PROCESSES;
4040 dpurdie 15555
 
1374 dpurdie 15556
/
4040 dpurdie 15557
--------------------------------------------------------
15558
--  DDL for Procedure DELETE_AUTOBUILD_FAILURE_INFO
15559
--------------------------------------------------------
15560
set define off;
15561
 
5172 dpurdie 15562
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DELETE_AUTOBUILD_FAILURE_INFO" 
3959 dpurdie 15563
IS
1373 dpurdie 15564
/******************************************************************************
3959 dpurdie 15565
   NAME:       DELETE_AUTOBUILD_FAILURE_INFO
15566
   PURPOSE:
1373 dpurdie 15567
 
15568
   REVISIONS:
3959 dpurdie 15569
   Ver        Date        Author           Description
1373 dpurdie 15570
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 15571
   1.0        2/06/2006    Rupesh Solanki      1. Created this procedure.
1373 dpurdie 15572
 
15573
   NOTES:
15574
 
15575
   Automatically available Auto Replace Keywords:
3959 dpurdie 15576
      Object Name:     DELETE_AUTOBUILD_FAILURE_INFO
15577
      Sysdate:         2/06/2006
15578
      Date and Time:   2/06/2006, 8:44:25 AM, and 2/06/2006 8:44:25 AM
1373 dpurdie 15579
      Username:         (set in TOAD Options, Procedure Editor)
15580
      Table Name:       (set in the "New PL/SQL Object" dialog)
15581
 
15582
******************************************************************************/
15583
BEGIN
3959 dpurdie 15584
   DELETE FROM autobuild_failure
15585
         WHERE group_email_id NOT IN (SELECT group_email_id
15586
                                        FROM members_group);
15587
END delete_autobuild_failure_info;
4040 dpurdie 15588
 
1374 dpurdie 15589
/
4040 dpurdie 15590
--------------------------------------------------------
15591
--  DDL for Procedure DEPLOY_TO_RELEASE
15592
--------------------------------------------------------
15593
set define off;
15594
 
5172 dpurdie 15595
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DEPLOY_TO_RELEASE" IS
1373 dpurdie 15596
 
15597
/******************************************************************************
15598
 
15599
 
15600
******************************************************************************/
15601
 
15602
	CURSOR curInfo IS
15603
    SELECT DISTINCT
15604
        qry.DPV_ID
15605
     FROM (
15606
             SELECT dep.*,
15607
                    LEVEL AS LEVEL_NUM
15608
               FROM PACKAGE_DEPENDENCIES dep
15609
             START WITH dep.PV_ID IN ( 
15610
 
4308 dpurdie 15611
                        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 15612
 
15613
                        ) 
15614
 			CONNECT BY PRIOR dep.DPV_ID = dep.PV_ID
15615
 		) qry,
15616
 		PACKAGES pkg,
15617
		PACKAGE_VERSIONS pv
15618
 	 WHERE qry.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_ID
15619
         and (pv.is_patch is null or pv.is_patch = 'N');
15620
    recInfo curInfo%ROWTYPE;
15621
 
15622
 
15623
BEGIN
15624
 
15625
	OPEN curInfo;
15626
    FETCH curInfo INTO recInfo;
15627
 
15628
	WHILE curInfo%FOUND
15629
	LOOP
15630
 
15631
	insert into release_content(RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE)
15632
    VALUES(8027, recInfo.dpv_id, 7, ora_sysdatetime, 0, 0);
15633
 
15634
    FETCH curInfo INTO recInfo;
15635
 
15636
	END LOOP;
15637
 
15638
	CLOSE curInfo;
15639
 
15640
 
15641
 
15642
 
15643
END DEPLOY_TO_RELEASE; 
4040 dpurdie 15644
 
1374 dpurdie 15645
/
4040 dpurdie 15646
--------------------------------------------------------
15647
--  DDL for Procedure DEPRECATE_PACKAGE
15648
--------------------------------------------------------
15649
set define off;
15650
 
5384 dpurdie 15651
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DEPRECATE_PACKAGE" (
15652
    nPvId     IN PACKAGE_VERSIONS.PV_ID%TYPE,
15653
    nRtagId   IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,
15654
    nPkgId    IN DEPRECATED_PACKAGES.PKG_ID%TYPE,
15655
    sComments IN DEPRECATED_PACKAGES.COMMENTS%TYPE,
15656
    nUserId   IN NUMBER)
15657
IS
15658
  ext VARCHAR2(50);
1373 dpurdie 15659
BEGIN
5384 dpurdie 15660
  --Extract the package version extension
15661
  SELECT V_EXT INTO ext
15662
  FROM PACKAGE_VERSIONS
15663
  WHERE PV_ID = nPvId;
15664
 
15665
  -- Deprecate Package
15666
  INSERT INTO DEPRECATED_PACKAGES
15667
    ( RTAG_ID, PKG_ID, COMMENTS, V_EXT )
15668
    VALUES ( nRtagId, nPkgId, sComments, ext );
15669
 
15670
  -- Update Release Contents entry
15671
  -- Process PackageName.ext for the package. ie: Allow multiple
15672
  -- versions of the package to be in the release.
15673
    UPDATE RELEASE_CONTENT
15674
    SET 
15675
      DEPRECATED_STATE = 6
15676
    WHERE RTAG_ID      = nRtagId
15677
    AND PV_ID IN (
15678
      SELECT PV.PV_ID
15679
      FROM PACKAGE_VERSIONS PV
15680
      WHERE PV.PKG_ID   = nPkgId
15681
      AND NVL(PV.V_EXT, '.NULL') = NVL(ext,'.NULL')
15682
      );
1373 dpurdie 15683
 
5384 dpurdie 15684
  -- Update consumers of the package
15685
  --  Update ALL packages in the Release
15686
 
15687
  REBUILD_DEPRECATE_STATE(nRtagId);
1373 dpurdie 15688
 
5384 dpurdie 15689
  /* LOG ACTION */
15690
  /*Log_Action ( nPkgId, 'deprecated_package', nUserId );*/
3959 dpurdie 15691
END Deprecate_Package;
4040 dpurdie 15692
 
1374 dpurdie 15693
/
4040 dpurdie 15694
--------------------------------------------------------
15695
--  DDL for Procedure DT_DROPUSEROBJECTBYID
15696
--------------------------------------------------------
15697
set define off;
15698
 
5172 dpurdie 15699
  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 15700
 
1374 dpurdie 15701
/
4040 dpurdie 15702
--------------------------------------------------------
15703
--  DDL for Procedure DT_SETPROPERTYBYID
15704
--------------------------------------------------------
15705
set define off;
15706
 
5384 dpurdie 15707
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DT_SETPROPERTYBYID" (
15708
    PARAM_ID       IN NUMBER,
15709
    PARAM_PROPERTY IN VARCHAR2,
15710
    PARAM_VALUE    IN VARCHAR2,
15711
    PARAM_LVALUE   IN LONG RAW )
15712
AS
15713
BEGIN
15714
  DECLARE
15715
    X NUMBER(38);
15716
  BEGIN
15717
    SELECT COUNT(*)
15718
    INTO X
15719
    FROM MICROSOFTDTPROPERTIES
15720
    WHERE OBJECTID=PARAM_ID
15721
    AND PROPERTY  =PARAM_PROPERTY;
15722
    IF X          = 0 THEN
15723
      INSERT
15724
      INTO MICROSOFTDTPROPERTIES
15725
        (
15726
          ID,
15727
          PROPERTY,
15728
          OBJECTID,
15729
          VALUE,
15730
          LVALUE,
15731
          VERSION
15732
        )
15733
        VALUES
15734
        (
15735
          MICROSOFTSEQDTPROPERTIES.NEXTVAL,
15736
          PARAM_PROPERTY,
15737
          PARAM_ID,
15738
          PARAM_VALUE,
15739
          PARAM_LVALUE,
15740
 
15741
        );
15742
    ELSE
15743
      UPDATE MICROSOFTDTPROPERTIES
15744
      SET VALUE     =PARAM_VALUE,
15745
        LVALUE      =PARAM_LVALUE,
15746
        VERSION     =VERSION+1
15747
      WHERE OBJECTID=PARAM_ID
15748
      AND PROPERTY  =PARAM_PROPERTY;
15749
    END IF;
15750
  END;
15751
END DT_SETPROPERTYBYID;
4040 dpurdie 15752
 
3959 dpurdie 15753
/
4040 dpurdie 15754
--------------------------------------------------------
15755
--  DDL for Procedure IGNORE_DEPENDENCY_WARNINGS
15756
--------------------------------------------------------
15757
set define off;
15758
 
5172 dpurdie 15759
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."IGNORE_DEPENDENCY_WARNINGS" ( nRtagId IN IGNORE_WARNINGS.RTAG_ID%TYPE,
3959 dpurdie 15760
                                                         nPvId IN IGNORE_WARNINGS.PV_ID%TYPE,
15761
                                                         sIgnoreIdList IN VARCHAR2,
15762
                                                         bDoPatchIgnore IN BOOLEAN DEFAULT FALSE,
15763
                                                         nUserId IN NUMBER DEFAULT NULL ) IS
15764
/* ---------------------------------------------------------------------------
15765
    Updates the ignore warnings table - this is really two functions in one.
15766
 
15767
    1) One function updates the table based on a list of dependent PV_IDs and a parent PV_ID
15768
       and is called from the RM website's SetIgnoreWarnings() function after a user changes
15769
       the ignore warnings checkboxes and submits the form.
15770
       This can (at time of writing this) only be done within releases that are not build
15771
       daemon enabled. The ignore warnings feature is a feature we would like to see the end
15772
       of in an ideal world.
15773
       The SetIgnoreWarnings() website function now calls Touch_Release so there is no need to
15774
       do so in this stored procedure, thereby making this stored procedure much more precise in
15775
       that it only updates the ignore_warnings table (action log table too although that is just
15776
       a log and doesn't affect any subsequent business rules behaviour) and it cares nothing
15777
       about website presentation layer states, etc.
15778
 
15779
    2) The other function updates the table for out of sync dependencies that have in fact
15780
       been satisfied by patches made to some other product in the release.
15781
       This seems to be a seldom used feature in current projects.
15782
       It is probably the most often taken path through this function given that it occurs when
15783
       this function is called from Rebuild_Environment, and that is called in many circumstances
15784
       from the RM website whenever the seems to be a possibility that the state of a package
15785
       in a release might have changed and therefore affects the state of other packages in
15786
       that same release.
15787
 
15788
    Parameter Usage:
15789
                        when called from    | when called from
15790
                        Rebuild_Environment | SetIgnoreWarnings()
15791
                        stored procedure.   | in the Website
15792
      --------------------------------------+----------------------------
15793
      nRtagId           RTAG_ID             | RTAG_ID
15794
      nPvId             NULL                | PV_ID
15795
      sIgnoreIdList     NULL                | list of dependent PV_ID's
15796
      bDoPatchIgnore    TRUE                | FALSE
15797
      nUserId           NULL                | current user ID
15798
   --------------------------------------------------------------------------- */
15799
 
15800
oIgnoreIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
15801
ReleaseLocation VARCHAR2(4000);
15802
ActionTypeId NUMBER;
15803
 
1373 dpurdie 15804
BEGIN
15805
 
3959 dpurdie 15806
   IF (NOT bDoPatchIgnore) THEN
15807
      /* Manual Ignore Warnings - this execution path is the one taken when called from SetIgnoreWarnings() in the Website
15808
      */
15809
      oIgnoreIdCollector := IN_LIST_NUMBER ( sIgnoreIdList );
1373 dpurdie 15810
 
15811
 
3959 dpurdie 15812
      /* Log Action */
15813
      -- Get Release Location
15814
      SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
15815
        FROM PROJECTS proj,
15816
             RELEASE_TAGS rt
15817
       WHERE rt.PROJ_ID = proj.PROJ_ID
15818
         AND rt.RTAG_ID = nRtagId;
1373 dpurdie 15819
 
3959 dpurdie 15820
      -- Get Action Type Id for IGNORE_ON
15821
      SELECT act.ACTTYPE_ID INTO ActionTypeId
15822
        FROM ACTION_TYPE act
15823
       WHERE act.NAME = 'ignore_on';
15824
 
15825
      -- Get Ignored (Current MINUS Old)
5172 dpurdie 15826
      INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
15827
      SELECT nUserId, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeId
3959 dpurdie 15828
        FROM (
15829
              SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_ID
15830
                FROM PACKAGE_VERSIONS pv
15831
               WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
15832
              MINUS
15833
              SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_ID
15834
                FROM IGNORE_WARNINGS igw
15835
               WHERE igw.RTAG_ID = nRtagId
15836
                 AND igw.PV_ID = nPvId
15837
             ) qry,
15838
             PACKAGE_VERSIONS pv,
15839
             PACKAGES pkg,
15840
             RELEASE_CONTENT rc,
15841
             PACKAGE_VERSIONS rpv
15842
       WHERE pv.PKG_ID = pkg.PKG_ID
15843
         AND rc.RTAG_ID = nRtagId
15844
         AND rc.PV_ID = rpv.PV_ID
15845
         AND rpv.PKG_ID = pv.PKG_ID
15846
         AND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )
15847
         AND qry.DPV_ID = pv.PV_ID;
15848
 
15849
 
15850
      -- Get Action Type Id for IGNORE_OFF
15851
      SELECT act.ACTTYPE_ID INTO ActionTypeId
15852
        FROM ACTION_TYPE act
15853
       WHERE act.NAME = 'ignore_off';
15854
 
15855
      -- Get UnIgnored (Old MINUS Current)
5172 dpurdie 15856
      INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
15857
      SELECT nUserId, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeId
3959 dpurdie 15858
        FROM (
15859
              SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_ID
15860
                FROM IGNORE_WARNINGS igw
15861
               WHERE igw.RTAG_ID = nRtagId
15862
                 AND igw.PV_ID = nPvId
15863
              MINUS
15864
              SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_ID
15865
                FROM PACKAGE_VERSIONS pv
15866
               WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
15867
             ) qry,
15868
             PACKAGE_VERSIONS pv,
15869
             PACKAGES pkg,
15870
             RELEASE_CONTENT rc,
15871
             PACKAGE_VERSIONS rpv
15872
       WHERE pv.PKG_ID = pkg.PKG_ID
15873
         AND rc.RTAG_ID = nRtagId
15874
         AND rc.PV_ID = rpv.PV_ID
15875
         AND rpv.PKG_ID = pv.PKG_ID
15876
         AND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )
15877
         AND qry.DPV_ID = pv.PV_ID;
15878
 
15879
 
15880
      -- Delete Current Ignore Warnings
15881
      DELETE
15882
        FROM IGNORE_WARNINGS igw
15883
       WHERE igw.RTAG_ID = nRtagId
15884
         AND igw.PV_ID = nPvId
15885
         AND igw.IS_PATCH_IGNORE IS NULL;
15886
 
15887
 
15888
      IF (oIgnoreIdCollector.COUNT > 0) THEN
15889
         -- Insert Ignore Warnings
15890
         INSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID )
15891
         SELECT nRtagId,
15892
                nPvId,
15893
                pv.PV_ID AS DPV_ID
15894
           FROM PACKAGE_VERSIONS pv
15895
          WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
15896
      END IF;
15897
 
15898
   ELSE
15899
      /* Patch Ignore Warnings - this execution path is the one taken when called from the Rebuild_Environment stored procedure */
15900
 
15901
      -- Delete Current Patch Ignore Warnings
15902
      DELETE
15903
        FROM IGNORE_WARNINGS igw
15904
       WHERE igw.RTAG_ID = nRtagId
15905
         AND igw.IS_PATCH_IGNORE = 'Y';
15906
 
15907
 
15908
      -- Delete Manual Ignores that need to be Patch Ignores
15909
      DELETE
15910
        FROM IGNORE_WARNINGS igw
15911
       WHERE ( RTAG_ID, PV_ID, DPV_ID ) IN
15912
             (
15913
              SELECT DISTINCT
15914
                     nRtagId,
15915
                     err.PV_ID,
15916
                     err.ERR_DPV AS DPV_ID
15917
               FROM  (
15918
                      /* Full Release Contents used for reference*/
15919
                      SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext
15920
                        FROM release_content rel, package_versions rpv
15921
                       WHERE rel.pv_id = rpv.pv_id
15922
                         AND rtag_id = nRtagId
15923
                     ) frc,
15924
                     (
15925
                      /* DPV_IDs not fount in release*/
15926
                      SELECT dep.pv_id, dep.dpv_id AS err_dpv
15927
                        FROM package_dependencies dep
15928
                       WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
15929
                         AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
15930
                     ) err,
15931
                     (
15932
                      SELECT DISTINCT pp.PV_ID, dep.DPV_ID
15933
                        FROM PACKAGE_PATCHES pp,
15934
                             PACKAGE_DEPENDENCIES dep,
15935
                             RELEASE_CONTENT rc
15936
                       WHERE rc.RTAG_ID = nRtagId
15937
                         AND rc.PV_ID = pp.PV_ID
15938
                         AND dep.PV_ID = pp.PATCH_ID
15939
                     ) pp,
15940
                     package_versions errpkg,
15941
                     package_versions errpv
15942
               WHERE err.err_dpv = errpv.pv_id
15943
                 AND errpv.pkg_id = frc.pkg_id(+)
15944
                 AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
15945
                 AND err.pv_id = errpkg.pv_id
15946
                 AND err.PV_ID = pp.PV_ID
15947
                 AND frc.PV_ID = pp.DPV_ID
15948
             );
15949
 
15950
      /*
15951
      ---------------------------------------------------
15952
      --  Make sure that select statement above and below are same
15953
      ---------------------------------------------------
15954
      */
15955
 
15956
      -- Insert Patch Ignores
15957
      INSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE )
15958
      SELECT DISTINCT
15959
             nRtagId,
15960
             err.PV_ID,
15961
             err.ERR_DPV AS DPV_ID,
15962
             'Y'
15963
        FROM (
15964
              /* Full Release Contents used for reference*/
15965
              SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext
15966
                FROM release_content rel, package_versions rpv
15967
               WHERE rel.pv_id = rpv.pv_id
15968
                 AND rtag_id = nRtagId
15969
             ) frc,
15970
             (
15971
               /* DPV_IDs not fount in release*/
15972
               SELECT dep.pv_id, dep.dpv_id AS err_dpv
15973
                 FROM package_dependencies dep
15974
                WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
15975
                  AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
15976
             ) err,
15977
             (
15978
              SELECT DISTINCT pp.PV_ID, dep.DPV_ID
15979
                FROM PACKAGE_PATCHES pp,
15980
                     PACKAGE_DEPENDENCIES dep,
15981
                     RELEASE_CONTENT rc
15982
               WHERE rc.RTAG_ID = nRtagId
15983
                 AND rc.PV_ID = pp.PV_ID
15984
                 AND dep.PV_ID = pp.PATCH_ID
15985
             ) pp,
15986
             package_versions errpkg,
15987
             package_versions errpv
15988
       WHERE err.err_dpv = errpv.pv_id
15989
         AND errpv.pkg_id = frc.pkg_id(+)
15990
         AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
15991
         AND err.pv_id = errpkg.pv_id
15992
         AND err.PV_ID = pp.PV_ID
15993
         AND frc.PV_ID = pp.DPV_ID;
15994
 
15995
    END IF;
15996
 
15997
END Ignore_Dependency_Warnings;
4040 dpurdie 15998
 
1374 dpurdie 15999
/
4040 dpurdie 16000
--------------------------------------------------------
16001
--  DDL for Procedure INSERT_INTO_PACKAGE_BUILD_INFO
16002
--------------------------------------------------------
16003
set define off;
16004
 
5172 dpurdie 16005
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."INSERT_INTO_PACKAGE_BUILD_INFO" IS
1373 dpurdie 16006
 
16007
/******************************************************************************
3959 dpurdie 16008
   NAME:       INSERT_INTO_PACKAGE_BUILD_INFO
1373 dpurdie 16009
   PURPOSE:    
16010
 
16011
   REVISIONS:
16012
   Ver        Date        Author           Description
16013
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 16014
   1.0        6/12/2006          1. Created this procedure.
1373 dpurdie 16015
 
16016
   NOTES:
16017
 
16018
   Automatically available Auto Replace Keywords:
3959 dpurdie 16019
      Object Name:     INSERT_INTO_PACKAGE_BUILD_INFO
16020
      Sysdate:         6/12/2006
16021
      Date and Time:   6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PM
1373 dpurdie 16022
      Username:         (set in TOAD Options, Procedure Editor)
16023
      Table Name:       (set in the "New PL/SQL Object" dialog)
16024
 
16025
******************************************************************************/
16026
 
16027
	CURSOR curInfo IS
3959 dpurdie 16028
    SELECT PV_ID
16029
	FROM PACKAGE_BUILD_ENV
16030
	WHERE BE_ID IN (11, 12);
1373 dpurdie 16031
    recInfo curInfo%ROWTYPE;
16032
 
16033
 
16034
BEGIN
16035
 
16036
	OPEN curInfo;
16037
    FETCH curInfo INTO recInfo;
16038
 
16039
	WHILE curInfo%FOUND
16040
	LOOP
16041
 
3959 dpurdie 16042
		INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID, BSA_ID )
16043
		VALUES( recInfo.PV_ID, 2, 5);
16044
 
16045
		UPDATE PACKAGE_VERSIONS SET BS_ID = 2 WHERE PV_ID = recInfo.PV_ID;
16046
 
1373 dpurdie 16047
		FETCH curInfo INTO recInfo;
3959 dpurdie 16048
 
1373 dpurdie 16049
	END LOOP;
16050
 
16051
	CLOSE curInfo;
16052
 
16053
 
16054
 
16055
 
3959 dpurdie 16056
END INSERT_INTO_PACKAGE_BUILD_INFO;
4040 dpurdie 16057
 
1374 dpurdie 16058
/
4040 dpurdie 16059
--------------------------------------------------------
16060
--  DDL for Procedure INSERT_MULTIPLE_STICKY_NOTES
16061
--------------------------------------------------------
16062
set define off;
16063
 
5172 dpurdie 16064
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."INSERT_MULTIPLE_STICKY_NOTES" IS
1373 dpurdie 16065
 
3959 dpurdie 16066
/******************************************************************************
16067
   NAME:       INSERT_MULTIPLE_STICKY_NOTES
16068
   PURPOSE:    
1373 dpurdie 16069
 
3959 dpurdie 16070
   REVISIONS:
16071
   Ver        Date        Author           Description
16072
   ---------  ----------  ---------------  ------------------------------------
16073
   1.0        6/12/2006          1. Created this procedure.
1373 dpurdie 16074
 
3959 dpurdie 16075
   NOTES:
1373 dpurdie 16076
 
3959 dpurdie 16077
   Automatically available Auto Replace Keywords:
16078
      Object Name:     INSERT_MULTIPLE_STICKY_NOTES
16079
      Sysdate:         6/12/2006
16080
      Date and Time:   6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PM
16081
      Username:         (set in TOAD Options, Procedure Editor)
16082
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 16083
 
3959 dpurdie 16084
******************************************************************************/
1373 dpurdie 16085
 
3959 dpurdie 16086
	CURSOR curInfo IS
16087
    SELECT PV_ID
16088
	FROM PACKAGE_BUILD_ENV
16089
	WHERE BE_ID IN (11, 12);
16090
    recInfo curInfo%ROWTYPE;
16091
 
16092
 
1373 dpurdie 16093
BEGIN
16094
 
3959 dpurdie 16095
	OPEN curInfo;
16096
    FETCH curInfo INTO recInfo;
16097
 
16098
	WHILE curInfo%FOUND
16099
	LOOP
1373 dpurdie 16100
 
3959 dpurdie 16101
		INSERT INTO NOTE_MANAGER ( NID, LAST_USER, LAST_DATE, DESCRIPTION )
16102
		VALUES( recInfo.PV_ID, 'awehalle', ORA_SYSDATETIME, '' );
16103
 
16104
		FETCH curInfo INTO recInfo;
16105
 
16106
	END LOOP;
1373 dpurdie 16107
 
3959 dpurdie 16108
	CLOSE curInfo;
1373 dpurdie 16109
 
16110
 
16111
 
16112
 
3959 dpurdie 16113
END INSERT_MULTIPLE_STICKY_NOTES;
4040 dpurdie 16114
 
1374 dpurdie 16115
/
4040 dpurdie 16116
--------------------------------------------------------
16117
--  DDL for Procedure LEVEL_N_CONFLICTS
16118
--------------------------------------------------------
16119
set define off;
16120
 
5172 dpurdie 16121
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LEVEL_N_CONFLICTS" (
3959 dpurdie 16122
   nnrtag_id       IN       NUMBER,
16123
   nnsession_num   IN       NUMBER,
16124
   nnrowcnt        OUT      NUMBER,
16125
   nniteration     IN       NUMBER
16126
)
16127
IS
1373 dpurdie 16128
/* ---------------------------------------------------------------------------
3959 dpurdie 16129
    Version: 3.0.1
1373 dpurdie 16130
   --------------------------------------------------------------------------- */
3959 dpurdie 16131
   previteration   NUMBER := nniteration - 1;
1373 dpurdie 16132
BEGIN
5384 dpurdie 16133
  -- Map broken dependency information from a package into a consumer
16134
  -- package. ie: Ripple need-to-build info up the dependency tree.
16135
 
3959 dpurdie 16136
   /* ---------  LEVEL 1 CONFILCTS -----------
16137
   || Following states are used:
16138
   || 0 -> NOT FOUND
16139
   || 1 -> MAJOR
16140
   || 2 -> MINOR MINOR
16141
   */
16142
   INSERT INTO temp_env_states
5384 dpurdie 16143
               SELECT DISTINCT nnsession_num AS session_num, nniteration AS level_num,
16144
                      dpv.pv_id, dpv.pkg_id, dpv.v_ext,
3959 dpurdie 16145
                      DECODE (tes.tes_state, 2, 2, 1) AS MESSAGE
5384 dpurdie 16146
                 FROM TEMP_ENV_DEPS dpv,
3959 dpurdie 16147
                      temp_env_states tes
5384 dpurdie 16148
                WHERE dpv.SESSION_NUM = nnsession_num
16149
                  AND dpv.dpkg_id = tes.pkg_id
16150
                  AND NVL (dpv.dv_ext, '|LINK_A_NULL|') = NVL (tes.v_ext, '|LINK_A_NULL|')
3959 dpurdie 16151
                  AND tes.session_num = nnsession_num
5384 dpurdie 16152
                  AND tes.level_num = previteration;
1373 dpurdie 16153
 
3959 dpurdie 16154
   nnrowcnt := SQL%ROWCOUNT;
16155
END level_n_conflicts;
4040 dpurdie 16156
 
1374 dpurdie 16157
/
4040 dpurdie 16158
--------------------------------------------------------
16159
--  DDL for Procedure LEVEL_ONE_CONFLICTS
16160
--------------------------------------------------------
16161
set define off;
16162
 
5172 dpurdie 16163
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LEVEL_ONE_CONFLICTS" (
1373 dpurdie 16164
   nnrtag_id       IN   NUMBER,
16165
   nnsession_num   IN   NUMBER
16166
)
16167
IS
16168
BEGIN
5384 dpurdie 16169
  --  Prepare the TEMP_ENV_DEPS table
16170
  --  This table maps package-versions to their dependencies and is
16171
  --  used to walk up the dependency tree.
16172
  --  This table consists of PV_ID -> DPV_ID in the release in which we are interested
16173
  --  ie: Those that ARE NOT a part of:
16174
  --    Pegged Package
16175
  --    SDK imported package
16176
  --    Marked with an ignore warnings
16177
  --    Marked as an advisory ripple
16178
  --
16179
  --  This table speeds up the process by a huge (really huge) amount
16180
  --
16181
      INSERT into TEMP_ENV_DEPS
16182
      (
16183
      SELECT DISTINCT nnsession_num AS session_num,
16184
                      pv.pv_id, pv.pkg_id, pv.v_ext,
16185
                      dpv.pv_id as dpv_id, dpv.pkg_id as dpkg_id, dpv.v_ext as dv_ext
16186
 
16187
                 FROM release_content rel,
16188
                      package_dependencies dep,
16189
                      package_versions dpv,
16190
                      package_versions pv
16191
 
16192
                WHERE rel.pv_id = dep.pv_id
16193
                  AND rel.rtag_id = nnrtag_id
16194
                  AND dep.pv_id = pv.pv_id
16195
                  AND dep.dpv_id = dpv.pv_id
16196
                  --AND rel.SDKTAG_ID is null
16197
                  --AND NOT dep.pv_id IN (SELECT pegv.pv_id FROM PEGGED_VERSIONS pegv WHERE pegv.rtag_id = nnrtag_id)
16198
                  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)
16199
                  );
16200
 
1373 dpurdie 16201
   /* ---------  LEVEL 1 CONFILCTS -----------
16202
   || Following states are used:
16203
   || 0 -> NOT FOUND
16204
   || 1 -> MAJOR
16205
   || 2 -> MINOR MINOR
16206
   */
16207
   INSERT INTO temp_env_states
16208
      SELECT DISTINCT nnsession_num AS session_num, 1 AS level_num,
16209
                      err.pv_id, errpkg.pkg_id, errpkg.v_ext,
16210
                      DECODE (frc.v_nmm,
16211
                              NULL, 0,
16212
                              errpv.v_nmm, DECODE (frc.v_mm,
16213
                                                   errpv.v_mm, NULL,
16214
                                                   2
16215
                                                  ),
16216
                              1
16217
                             ) AS MESSAGE
16218
                 FROM (
16219
                       /* Full Release Contents used for reference*/
16220
                        SELECT rel.rtag_id, rpv.pv_id, rpv.pkg_id,
16221
                                NVL (rpv.v_ext, '|LINK_A_NULL|') AS v_ext,
16222
                                rpv.pkg_version, rpv.v_nmm, rpv.v_mm,
5384 dpurdie 16223
                                (SELECT COUNT(*) FROM ADVISORY_RIPPLE avr WHERE avr.rtag_id = rel.rtag_id AND avr.pv_id = rel.pv_id ) AS IsAvr
1373 dpurdie 16224
                          FROM release_content rel,
16225
                                package_versions rpv
16226
                          WHERE rel.pv_id = rpv.pv_id
16227
                             AND rtag_id = nnrtag_id
16228
                      ) frc,
16229
 
16230
                      (
5384 dpurdie 16231
                       /* DPV_IDs not found in release. Excluding:
16232
                              Those from pegged versions
16233
                              Those from packages imported via an SDK
16234
                              */
1373 dpurdie 16235
                       SELECT dep.pv_id, dep.dpv_id AS err_dpv
5384 dpurdie 16236
                         FROM package_dependencies dep
16237
                        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 16238
                          AND NOT dep.pv_id IN (SELECT pegv.pv_id FROM PEGGED_VERSIONS pegv WHERE pegv.rtag_id = nnrtag_id)
16239
                          AND NOT dep.dpv_id IN (SELECT pv_id FROM release_content WHERE rtag_id = nnrtag_id)
5384 dpurdie 16240
 
1373 dpurdie 16241
                       MINUS
16242
                       /* MINUS Dependencies to be ignored */
16243
                       SELECT igw.pv_id, igw.dpv_id AS err_dpv
5384 dpurdie 16244
                         FROM ignore_warnings igw
16245
                        WHERE igw.rtag_id = nnrtag_id
16246
 
1373 dpurdie 16247
                      ) err,
16248
                      package_versions errpkg,
16249
                      package_versions errpv
16250
                WHERE err.err_dpv = errpv.pv_id
16251
                  AND errpv.pkg_id = frc.pkg_id(+)
16252
                  AND NVL (errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
16253
                  AND err.pv_id = errpkg.pv_id
5384 dpurdie 16254
                  AND NVL(frc.IsAvr,0) = 0;
1373 dpurdie 16255
END level_one_conflicts;
4040 dpurdie 16256
 
1374 dpurdie 16257
/
4040 dpurdie 16258
--------------------------------------------------------
16259
--  DDL for Procedure LOCK_PACKAGE
16260
--------------------------------------------------------
16261
set define off;
16262
 
5172 dpurdie 16263
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
1373 dpurdie 16264
											 nUserId IN NUMBER ) IS
16265
/* ---------------------------------------------------------------------------
16266
    Version: 4.0
16267
   --------------------------------------------------------------------------- */
16268
 
16269
BEGIN
16270
 
16271
    -- Lock Package
16272
    UPDATE PACKAGE_VERSIONS pv SET
16273
    	pv.DLOCKED = 'Y'
16274
    WHERE pv.PV_ID = nPvId;
16275
 
16276
    /* LOG ACTION */
16277
   	Log_Action ( nPvId, 'lock_package', nUserId );
16278
 
16279
END Lock_Package;
4040 dpurdie 16280
 
1374 dpurdie 16281
/
4040 dpurdie 16282
--------------------------------------------------------
16283
--  DDL for Procedure LOG_ACTION
16284
--------------------------------------------------------
16285
set define off;
16286
 
5172 dpurdie 16287
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 16288
										 enumActionTypeName IN ACTION_TYPE.NAME%TYPE,
16289
                                         nUserId IN ACTION_LOG.USER_ID%TYPE,
16290
										 sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL  ) IS
1373 dpurdie 16291
/* ---------------------------------------------------------------------------
16292
    Version: 3.0
16293
   --------------------------------------------------------------------------- */
16294
 
3959 dpurdie 16295
    ActionTypeId NUMBER;
1373 dpurdie 16296
 
16297
BEGIN
16298
 
3959 dpurdie 16299
    -- Get Action Type FK
16300
    SELECT act.ACTTYPE_ID INTO ActionTypeId
16301
      FROM ACTION_TYPE act
16302
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 16303
 
16304
 
5172 dpurdie 16305
    INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
16306
    VALUES ( nUserId, nPvId, sAdditionalComments, ActionTypeId );
1373 dpurdie 16307
 
16308
 
3959 dpurdie 16309
END Log_Action;
4040 dpurdie 16310
 
1374 dpurdie 16311
/
4040 dpurdie 16312
--------------------------------------------------------
16313
--  DDL for Procedure LOG_ACTION_BULK
16314
--------------------------------------------------------
16315
set define off;
16316
 
5172 dpurdie 16317
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION_BULK" ( nPvIdList IN VARCHAR2,
3959 dpurdie 16318
										 	  enumActionTypeName IN ACTION_TYPE.NAME%TYPE,
16319
                                         	  nUserId IN ACTION_LOG.USER_ID%TYPE,
16320
										 	  sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL  ) IS
1373 dpurdie 16321
/* ---------------------------------------------------------------------------
3959 dpurdie 16322
    Version: 3.0
1373 dpurdie 16323
   --------------------------------------------------------------------------- */
16324
 
3959 dpurdie 16325
    ActionTypeId NUMBER;
16326
    oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
1373 dpurdie 16327
 
16328
BEGIN
16329
 
3959 dpurdie 16330
    oPvIdCollector := IN_LIST_NUMBER ( nPvIdList );
1373 dpurdie 16331
 
3959 dpurdie 16332
    -- Get Action Type FK
16333
    SELECT act.ACTTYPE_ID INTO ActionTypeId
16334
      FROM ACTION_TYPE act
16335
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 16336
 
3959 dpurdie 16337
    -- Log Action
5172 dpurdie 16338
    INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
3959 dpurdie 16339
    SELECT nUserId,
5172 dpurdie 16340
    	     pv.PV_ID,
3959 dpurdie 16341
           sAdditionalComments,
16342
           ActionTypeId
16343
      FROM PACKAGE_VERSIONS pv
16344
     WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
1373 dpurdie 16345
 
16346
 
3959 dpurdie 16347
END Log_Action_Bulk;
4040 dpurdie 16348
 
1374 dpurdie 16349
/
4040 dpurdie 16350
--------------------------------------------------------
16351
--  DDL for Procedure LOG_DAEMON_ACTION
16352
--------------------------------------------------------
16353
set define off;
16354
 
5172 dpurdie 16355
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_DAEMON_ACTION" ( nRconId IN NUMBER,
3959 dpurdie 16356
												 enumActionTypeName IN VARCHAR2,
16357
		                                         nUserId IN NUMBER,
16358
												 sAdditionalComments IN VARCHAR2 DEFAULT NULL  ) IS
16359
/* ---------------------------------------------------------------------------
16360
    Version: 3.0
16361
   --------------------------------------------------------------------------- */
1373 dpurdie 16362
 
3959 dpurdie 16363
    ActionTypeId NUMBER;
1373 dpurdie 16364
 
16365
BEGIN
16366
 
3959 dpurdie 16367
    -- Get Action Type FK
16368
    SELECT act.ACTTYPE_ID INTO ActionTypeId
16369
      FROM ACTION_TYPE act
16370
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 16371
 
16372
 
3959 dpurdie 16373
    INSERT INTO DAEMON_ACTION_LOG
16374
    VALUES ( nUserId, ORA_SYSDATETIME, nRconId, sAdditionalComments, ActionTypeId );
1373 dpurdie 16375
 
16376
 
3959 dpurdie 16377
END Log_Daemon_Action;
4040 dpurdie 16378
 
1374 dpurdie 16379
/
4040 dpurdie 16380
--------------------------------------------------------
16381
--  DDL for Procedure LOG_PROJECT_ACTION
16382
--------------------------------------------------------
16383
set define off;
16384
 
5172 dpurdie 16385
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_PROJECT_ACTION" ( nProjId IN NUMBER,
3959 dpurdie 16386
												 enumActionTypeName IN VARCHAR2,
16387
		                                         nUserId IN NUMBER,
16388
												 sAdditionalComments IN VARCHAR2 DEFAULT NULL,
16389
												 nRtagId IN NUMBER  ) IS
1373 dpurdie 16390
/* ---------------------------------------------------------------------------
3959 dpurdie 16391
    Version: 3.0
1373 dpurdie 16392
   --------------------------------------------------------------------------- */
16393
 
3959 dpurdie 16394
    ActionTypeId NUMBER;
1373 dpurdie 16395
 
16396
BEGIN
16397
 
3959 dpurdie 16398
    -- Get Action Type FK
16399
    SELECT act.ACTTYPE_ID INTO ActionTypeId
16400
      FROM ACTION_TYPE act
16401
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 16402
 
16403
 
3959 dpurdie 16404
    INSERT INTO PROJECT_ACTION_LOG ( USER_ID, ACTION_DATETIME, PROJ_ID, DESCRIPTION, ACTTYPE_ID, RTAG_ID)
16405
    VALUES ( nUserId, ORA_SYSDATETIME, nProjId, sAdditionalComments, ActionTypeId, nRtagId);
1373 dpurdie 16406
 
16407
 
3959 dpurdie 16408
END Log_Project_Action;
4040 dpurdie 16409
 
1374 dpurdie 16410
/
4040 dpurdie 16411
--------------------------------------------------------
16412
--  DDL for Procedure NEW_ADDITIONAL_NOTE
16413
--------------------------------------------------------
16414
set define off;
16415
 
5172 dpurdie 16416
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_ADDITIONAL_NOTE" ( pnPv_id IN NUMBER,
3959 dpurdie 16417
                                                  psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,
16418
                                                  psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,
16419
                                                  pnUser_id IN NUMBER,
16420
                                                  outErrCode OUT NUMBER
16421
                                                 ) IS
1373 dpurdie 16422
/* ---------------------------------------------------------------------------
3959 dpurdie 16423
    Version: 3.0.0
1373 dpurdie 16424
   --------------------------------------------------------------------------- */
16425
 
16426
    newID NUMBER;
16427
 
16428
	CURSOR an_duplicate_cur IS
3959 dpurdie 16429
        SELECT note_id
1373 dpurdie 16430
          FROM ADDITIONAL_NOTES
16431
         WHERE pv_id = pnPv_id
16432
           AND note_title = psNote_title;
16433
    an_duplicate_rec an_duplicate_cur%ROWTYPE;
16434
 
16435
BEGIN
16436
	outErrCode := -1;		-- Set default return error code to ERROR state
16437
 
16438
	OPEN an_duplicate_cur;
16439
    FETCH an_duplicate_cur INTO an_duplicate_rec;
16440
 
3959 dpurdie 16441
    IF an_duplicate_cur%NOTFOUND
1373 dpurdie 16442
    THEN
3959 dpurdie 16443
		/* No duplicate titles */
16444
		-- Get new ID --
16445
    	SELECT SEQ_ADDITIONAL_NOTES.NEXTVAL INTO newID FROM DUAL;
16446
 
16447
		--- Add Additional Note ---
16448
	    INSERT INTO ADDITIONAL_NOTES ( note_id, pv_id, note_title, note_body, mod_date, mod_user  )
16449
	    VALUES (  newID, pnPv_id, psNote_title, psNote_body, Ora_Sysdate, pnUser_id );
1373 dpurdie 16450
		outErrCode := 0;		-- Set return to SUCCESS
16451
	END IF;
16452
 
16453
	CLOSE an_duplicate_cur;
3959 dpurdie 16454
END New_Additional_Note;
4040 dpurdie 16455
 
1374 dpurdie 16456
/
4040 dpurdie 16457
--------------------------------------------------------
16458
--  DDL for Procedure NEW_PACKAGE_NAME
16459
--------------------------------------------------------
16460
set define off;
16461
 
5172 dpurdie 16462
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_PACKAGE_NAME" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
3959 dpurdie 16463
                                               retPKG_ID OUT NUMBER ) IS
1373 dpurdie 16464
/* ---------------------------------------------------------------------------
3959 dpurdie 16465
    Version: 3.0.0
1373 dpurdie 16466
   --------------------------------------------------------------------------- */
16467
 
3959 dpurdie 16468
    CURSOR packages_cur IS
16469
        SELECT pkg.pkg_id
16470
          FROM packages pkg
16471
         WHERE pkg.pkg_name = SSpkg_name;
16472
    packages_rec packages_cur%ROWTYPE;
1373 dpurdie 16473
 
16474
 
16475
BEGIN
16476
 
3959 dpurdie 16477
    /* ---------------------------------------------------- */
16478
    /* Find if package name exists                          */
16479
    /* ---------------------------------------------------- */
1373 dpurdie 16480
 
3959 dpurdie 16481
    OPEN packages_cur;
16482
    FETCH packages_cur INTO packages_rec;
1373 dpurdie 16483
 
3959 dpurdie 16484
    IF packages_cur%NOTFOUND
16485
    THEN
16486
        -- Create new pkg_name --
16487
        SELECT SEQ_PKG_ID.nextval INTO retPKG_ID FROM DUAL;
1373 dpurdie 16488
 
3959 dpurdie 16489
        INSERT INTO packages ( pkg_id, pkg_name )
16490
        VALUES ( retPKG_ID, SSpkg_name );
1373 dpurdie 16491
 
3959 dpurdie 16492
    ELSE
16493
        retPKG_ID := packages_rec.pkg_id;
1373 dpurdie 16494
 
3959 dpurdie 16495
    END IF;
1373 dpurdie 16496
 
16497
 
3959 dpurdie 16498
    CLOSE packages_cur;
1373 dpurdie 16499
 
3959 dpurdie 16500
END New_Package_Name;
4040 dpurdie 16501
 
1374 dpurdie 16502
/
4040 dpurdie 16503
--------------------------------------------------------
16504
--  DDL for Procedure NEW_PATCH
16505
--------------------------------------------------------
16506
set define off;
16507
 
5172 dpurdie 16508
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_PATCH" ( SSpatch_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
1373 dpurdie 16509
 	   	  		  					  	NNparent_id IN NUMBER,
16510
                                        sPatchIdList IN VARCHAR2,
16511
										NNuser_id IN NUMBER ) IS
16512
/* ---------------------------------------------------------------------------
16513
    Version: 3.5
16514
   --------------------------------------------------------------------------- */
16515
 
16516
    patchPv_id    NUMBER;
16517
	parPkg_id	  NUMBER;
16518
    LastInstallOrder NUMBER;
16519
    isPatchDlocked PACKAGE_VERSIONS.DLOCKED%TYPE;
16520
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
16521
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
16522
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
16523
	oPatchDepCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
16524
 
16525
	CURSOR parent_cur IS
16526
        SELECT pv.*, pkg.pkg_name
16527
          FROM package_versions pv,
16528
		       packages pkg
16529
         WHERE pv.pv_id = NNparent_id
16530
		   AND pv.pkg_id = pkg.pkg_id;
16531
    parent_rec parent_cur%ROWTYPE;
16532
 
16533
    CURSOR patch_cur IS
16534
        SELECT pv.*, pg.pkg_name
16535
          FROM package_versions pv,
16536
		       packages pg
16537
         WHERE pv.pkg_id = parPkg_id
16538
		   AND pv.pkg_version = SSpatch_version
16539
		   AND pv.pkg_id = pg.pkg_id;
16540
    patch_rec patch_cur%ROWTYPE;
16541
 
16542
	CURSOR releases_cur IS
16543
        SELECT rc.pv_id
16544
		  FROM release_content rc
16545
		 WHERE rc.pv_id = patch_rec.pv_id;
16546
    releases_rec releases_cur%ROWTYPE;
16547
 
16548
 
16549
BEGIN
16550
 
16551
	-- Get Last Install Order
16552
    SELECT Count(*) INTO LastInstallOrder
16553
	  FROM PACKAGE_PATCHES pp
16554
	 WHERE pp.PV_ID = NNparent_id;
16555
 
16556
 
16557
    -- Get parent details
16558
	OPEN parent_cur;
16559
    FETCH parent_cur INTO parent_rec;
16560
	parPkg_id := parent_rec.pkg_id;
16561
 
16562
 
16563
	-- Find if patch exists in database
16564
    OPEN patch_cur;
16565
    FETCH patch_cur INTO patch_rec;
16566
 
16567
 
16568
    -- Parent must be official
16569
    IF parent_rec.dlocked = 'Y' THEN
16570
 
16571
	    IF patch_cur%NOTFOUND
16572
	    THEN
16573
        	isPatchDlocked := 'N';
16574
 
16575
	        -- Create new patch version --
16576
	        SELECT SEQ_PV_ID.nextval INTO patchPv_id FROM DUAL;
16577
 
16578
 
16579
	        Split_version ( SSpatch_version, SSV_MM, SSV_NMM, SSV_EXT );
16580
 
16581
	        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 )
16582
				   VALUES (
16583
						   patchPv_id,
16584
	                       parPkg_id,
16585
	                       SSpatch_version,
16586
	                       isPatchDlocked,
16587
	                       ORA_SYSDATE,
16588
	                       NNuser_id,
16589
	                       ORA_SYSDATETIME,
16590
	                       NNuser_id,
16591
	                       SSV_MM,
16592
	                       SSV_NMM,
16593
	                       SSV_EXT,
16594
	                       parent_rec.src_path,
16595
	                       'This is a patch to ' || parent_rec.pkg_name || ' ' || parent_rec.pkg_version,
16596
	                       NNuser_id,
16597
						   'Y',
16598
                           patchPv_id,
16599
						   parent_rec.bs_id,
16600
						   parent_rec.is_autobuildable,
16601
						   parent_rec.ripple_field
16602
 
16603
						   );
16604
 
16605
			INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )
16606
		    	   ( SELECT NNparent_id AS pv_id,
16607
				            pv.pv_id AS patch_id,
16608
	                        LastInstallOrder + 1 AS INSTALL_ORDER
16609
				       FROM package_versions pv
16610
					  WHERE pv.pv_id = patchPv_id
16611
					    AND pv.is_patch = 'Y' );
16612
 
16613
	        /* LOG ACTION */
16614
            Log_Action ( patchPv_id, 'new_version', NNuser_id,
16615
        			     'Patch version created: '|| SSpatch_version );
16616
 
16617
        	Log_Action ( NNparent_id, 'patch_add', NNuser_id,
16618
        			     'New patch created and attached: '|| SSpatch_version );
16619
 
16620
 
16621
	    ELSE
16622
 
16623
		    patchPv_id := patch_rec.pv_id;
16624
	    	isPatchDlocked := patch_rec.dlocked;
16625
 
16626
			-- Find if pv_id exists in release content (i.e. it cannot be a patch)
16627
		    OPEN releases_cur;
16628
		    FETCH releases_cur INTO releases_rec;
16629
 
16630
			IF releases_cur%NOTFOUND
16631
	   		THEN
16632
				-- This pv_id is trully a patch, hence add Y to column IS_PATCH
16633
				UPDATE package_versions SET
16634
					   is_patch = 'Y'
16635
					   WHERE pv_id = patchPv_id;
16636
 
16637
				INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )
16638
			    	   ( SELECT NNparent_id AS pv_id,
16639
					            pv.pv_id AS patch_id,
16640
	                            LastInstallOrder + 1 AS INSTALL_ORDER
16641
					       FROM package_versions pv
16642
						  WHERE pv.pv_id = patchPv_id
16643
						    AND pv.is_patch = 'Y' );
16644
 
16645
			END IF;
16646
 
16647
			CLOSE releases_cur;
16648
 
16649
            /* LOG ACTION */
16650
        	Log_Action ( NNparent_id, 'patch_add', NNuser_id,
16651
        			     'Patch version was found and attached: '|| SSpatch_version );
16652
 
16653
	    END IF;
16654
 
16655
 
16656
 
16657
 
16658
    END IF;
16659
 
16660
 
16661
 
16662
    /* Create Patch Dependencies */
16663
    oPatchDepCollector := IN_LIST_NUMBER ( sPatchIdList );
16664
 
16665
 
16666
    -- Make sure patch is unofficial before altering its dependencies
16667
    IF (oPatchDepCollector.COUNT > 0) AND (isPatchDlocked = 'N') THEN
16668
    	-- Delete Existing Dependencies
16669
        DELETE
16670
          FROM PACKAGE_DEPENDENCIES dep
16671
         WHERE dep.PV_ID = patchPv_id;
16672
 
16673
 
16674
        -- Insert new dependencies
16675
        INSERT INTO PACKAGE_DEPENDENCIES ( PV_ID, DPV_ID, PKG_ID, DPKG_ID, BUILD_TYPE )
16676
        SELECT patchPv_id AS PV_ID,
16677
        	   pv.PV_ID AS DPV_ID,
16678
               parPkg_id AS PKG_ID,
16679
               pv.PKG_ID AS DPKG_ID,
16680
               'L' AS BUILD_TYPE
16681
          FROM PACKAGE_VERSIONS pv
16682
         WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPatchDepCollector AS RELMGR_NUMBER_TAB_t ) ) );
16683
 
16684
 
16685
    END IF;
16686
 
16687
 
16688
    CLOSE parent_cur;
16689
    CLOSE patch_cur;
16690
END New_Patch;
4040 dpurdie 16691
 
1374 dpurdie 16692
/
4040 dpurdie 16693
--------------------------------------------------------
16694
--  DDL for Procedure NEW_UNIT_TEST
16695
--------------------------------------------------------
16696
set define off;
16697
 
5172 dpurdie 16698
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_UNIT_TEST" ( nPv_id IN NUMBER,
3959 dpurdie 16699
                                            nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,
16700
                                            sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
16701
                                            sNumOfTest IN UNIT_TESTS.NUMOF_TEST%TYPE,
16702
                                            sDpkg_path IN VARCHAR2,
16703
                                            sResults IN VARCHAR2,
16704
                                            sCompletion_date IN VARCHAR2,
16705
                                            nCompleted_by IN NUMBER,
16706
											enumTEST_TYPE_AUTOMATIC IN NUMBER,
16707
											enumTEST_TYPE_NOT_DONE IN NUMBER,
16708
											outFileName OUT VARCHAR2
16709
                                           ) IS
16710
/* ---------------------------------------------------------------------------
16711
    Version: 3.2.0
16712
   --------------------------------------------------------------------------- */
1373 dpurdie 16713
 
3959 dpurdie 16714
   	FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
1373 dpurdie 16715
 
3959 dpurdie 16716
    newID NUMBER;
16717
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
16718
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
1373 dpurdie 16719
 
3959 dpurdie 16720
BEGIN
1373 dpurdie 16721
 
3959 dpurdie 16722
	-- Get new ID --
16723
   	SELECT SEQ_UNIT_TESTS.NEXTVAL INTO newID FROM DUAL;
1373 dpurdie 16724
 
3959 dpurdie 16725
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
16726
       	ResultsURL := sResults;
16727
       ELSE
16728
       	IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
16729
        	outFileName := FILENAME_PREFIX || newID ||'_'|| sResults;
16730
    		ResultsAttachment := sDpkg_path || '/' || outFileName;
16731
           END IF;
16732
       END IF;
1373 dpurdie 16733
 
3959 dpurdie 16734
	-- Remove NOT_DONE entry if exists
16735
	DELETE FROM UNIT_TESTS
16736
	 WHERE pv_id = nPv_id
16737
	   AND test_types_fk = enumTEST_TYPE_NOT_DONE;
1373 dpurdie 16738
 
3959 dpurdie 16739
	--- Add Additional Note ---
16740
    INSERT INTO UNIT_TESTS ( TEST_ID,
16741
								PV_ID,
16742
								TEST_TYPES_FK,
16743
								TEST_SUMMARY,
16744
								COMPLETION_DATE,
16745
								COMPLETED_BY,
16746
								RESULTS_URL,
16747
								RESULTS_ATTACHMENT_NAME,
16748
								NUMOF_TEST )
16749
    VALUES (
16750
       	newID,
16751
           nPv_id,
16752
           nTestTypeId,
16753
           sTest_summary,
16754
           TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
16755
           nCompleted_by,
16756
           ResultsURL,
16757
           ResultsAttachment,
16758
		   sNumOfTest );
1373 dpurdie 16759
 
3959 dpurdie 16760
END New_Unit_Test;
4040 dpurdie 16761
 
1374 dpurdie 16762
/
4040 dpurdie 16763
--------------------------------------------------------
16764
--  DDL for Procedure PAOLO_BUILD_TREE
16765
--------------------------------------------------------
16766
set define off;
16767
 
5172 dpurdie 16768
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."PAOLO_BUILD_TREE" ( nRtag_id IN NUMBER ) IS
1373 dpurdie 16769
 
3959 dpurdie 16770
    sessionNumber NUMBER := 0;
16771
    iteration NUMBER := 1; 
16772
    rowCnt NUMBER := 0;
16773
    maxIterations 	NUMBER := 50;
16774
 
1373 dpurdie 16775
BEGIN
3959 dpurdie 16776
 
16777
 
16778
    INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
16779
    SELECT sessionNumber, iteration, rc.PV_ID
16780
      FROM RELEASE_CONTENT rc
16781
     WHERE rc.RTAG_ID = nRtag_id;
16782
 
16783
    iteration := iteration + 1;
16784
    LOOP
16785
 
16786
        INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
16787
		SELECT sessionNumber,     
16788
               iteration,
16789
               dep.DPV_ID
16790
          FROM TEMP_TREE_BROWSE ttb,
16791
               PACKAGE_DEPENDENCIES dep
16792
         WHERE dep.PV_ID = ttb.PV_ID 
16793
           AND ttb.LEVEL_NUM = iteration - 1 
16794
 
16795
         MINUS  
16796
 
16797
        SELECT sessionNumber, iteration, ttb.PV_ID
16798
          FROM TEMP_TREE_BROWSE ttb;   
16799
 
16800
 
16801
 
16802
 
16803
		rowCnt := SQL%ROWCOUNT;
16804
		IF rowCnt > 0 THEN
16805
           iteration := iteration + 1;
16806
		END IF;
16807
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
16808
    END LOOP; 
16809
 
16810
END PAOLO_Build_Tree;
4040 dpurdie 16811
 
1374 dpurdie 16812
/
4040 dpurdie 16813
--------------------------------------------------------
5384 dpurdie 16814
--  DDL for Procedure REBUILD_DEPRECATE_STATE
16815
--------------------------------------------------------
16816
set define off;
16817
 
16818
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REBUILD_DEPRECATE_STATE" ( nRtagId IN INT ) AS 
16819
BEGIN
16820
 
16821
  --  Clear the 'calculated' values from the Release Conetnts
16822
  --
16823
  UPDATE RELEASE_CONTENT
16824
      SET DEPRECATED_STATE = NULL
16825
  WHERE RTAG_ID =  nRtagId
16826
  AND DEPRECATED_STATE != 6 
16827
  AND DEPRECATED_STATE is NOT NULL;
16828
 
16829
  --
16830
  --  Insert new calculated values into the table
16831
  --  Use of 'AAA' speeds up the CONNECT BY PRIOR query (lots)
16832
  UPDATE RELEASE_CONTENT
16833
      SET DEPRECATED_STATE = 7
16834
  WHERE RTAG_ID =  nRtagId
16835
  AND DEPRECATED_STATE is null
16836
  AND PV_ID in (
16837
        WITH AAA AS
16838
          (SELECT pd.*
16839
          FROM PACKAGE_DEPENDENCIES pd,
16840
            RELEASE_CONTENT RC1
16841
          WHERE rc1.rtag_id = nRtagId
16842
          AND RC1.PV_ID     = pd.PV_ID
16843
          )
16844
      SELECT DISTINCT qry.PV_ID
16845
      FROM
16846
        (SELECT dep.*,
16847
          LEVEL AS LEVEL_NUM
16848
        FROM AAA dep
16849
          START WITH dep.DPV_ID IN ( 
16850
                SELECT rc.pv_id as pv_id
16851
                FROM RELEASE_CONTENT rc
16852
                WHERE rc.rtag_id  = nRtagId
16853
                AND rc.DEPRECATED_STATE = 6 )
16854
          CONNECT BY PRIOR dep.PV_ID = dep.DPV_ID
16855
        ) qry,
16856
        PACKAGES pkg,
16857
        PACKAGE_VERSIONS pv,
16858
        RELEASE_CONTENT rc
16859
      WHERE qry.PV_ID          = pv.PV_ID
16860
      AND pv.PKG_ID            = pkg.PKG_ID
16861
      AND rc.RTAG_ID           = nRtagId
16862
      AND rc.PV_ID             = qry.PV_ID
16863
      );
16864
END REBUILD_DEPRECATE_STATE;
16865
 
16866
/
16867
--------------------------------------------------------
4040 dpurdie 16868
--  DDL for Procedure REBUILD_ENVIRONMENT
16869
--------------------------------------------------------
16870
set define off;
16871
 
5172 dpurdie 16872
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REBUILD_ENVIRONMENT" ( NNrtag_id IN NUMBER ) IS
5384 dpurdie 16873
  --
16874
  --  Recalculate the package_state
16875
  --  Triggered by the Web Interface
16876
  --
1373 dpurdie 16877
    rowCnt NUMBER := 0;
16878
    iteration NUMBER := 2;          -- Iterations counter
5384 dpurdie 16879
    maxIterations NUMBER := 30;     -- Maximum number of iterations allowed.
1373 dpurdie 16880
                                    -- This will prevent infinite loops if cyrcular dependencies are found
16881
    sessionNum NUMBER;
16882
BEGIN
16883
    SELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;
16884
 
16885
 
16886
    -- Redo Patch Ignore warnings
16887
    Ignore_Dependency_Warnings ( NNrtag_id, NULL, NULL, TRUE );
16888
 
5384 dpurdie 16889
    Level_One_Conflicts ( NNrtag_id, sessionNum );
16890
    --commit;
1373 dpurdie 16891
 
16892
    LOOP
16893
        Level_N_Conflicts ( NNrtag_id, sessionNum, rowCnt, iteration );
5384 dpurdie 16894
        --commit;
1373 dpurdie 16895
        iteration := iteration + 1;
16896
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
16897
    END LOOP;
5172 dpurdie 16898
 
1373 dpurdie 16899
    Update_Package_States ( NNrtag_id, sessionNum );
16900
 
5384 dpurdie 16901
    DELETE FROM temp_env_states WHERE session_num = sessionNum;
16902
    DELETE FROM TEMP_ENV_DEPS WHERE session_num = sessionNum;
1373 dpurdie 16903
 
16904
    -- Flag Packages with New Patches Available
16905
    Check_New_Patches ( NNrtag_id );
16906
 
16907
	Clean_Do_Not_Ripple( NNrtag_id );
16908
 
16909
 
16910
	/* Circular Dependency Flag */
16911
    /*
16912
	IF iteration > maxIterations
16913
	THEN
16914
		UPDATE release_tags SET
16915
		   	   circular_dependency = 'Y'
16916
		 WHERE rtag_id = NNrtag_id;
16917
	ELSE
16918
		UPDATE release_tags SET
16919
		   	   circular_dependency = NULL
16920
		 WHERE rtag_id = NNrtag_id;
16921
	END IF;
16922
    */
16923
END Rebuild_Environment;
4040 dpurdie 16924
 
1374 dpurdie 16925
/
4040 dpurdie 16926
--------------------------------------------------------
16927
--  DDL for Procedure REMOVE_COMPONENTS
16928
--------------------------------------------------------
16929
set define off;
16930
 
5172 dpurdie 16931
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_COMPONENTS" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE ) IS
3959 dpurdie 16932
/* ---------------------------------------------------------------------------
16933
    Version: 3.0.0
16934
   --------------------------------------------------------------------------- */
16935
 
16936
 
16937
BEGIN
16938
 
16939
	 --- Delete From RELEASE_COMPONENTS
16940
	 DELETE FROM RELEASE_COMPONENTS
16941
	 WHERE PV_ID = nPvId;
16942
 
16943
END Remove_Components;
4040 dpurdie 16944
 
3959 dpurdie 16945
/
4040 dpurdie 16946
--------------------------------------------------------
16947
--  DDL for Procedure REMOVE_DOCUMENT
16948
--------------------------------------------------------
16949
set define off;
16950
 
5172 dpurdie 16951
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_DOCUMENT" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 16952
											  nDocId IN PACKAGE_DOCUMENTS.DOC_ID%TYPE,
16953
                                              nUserId IN NUMBER ) IS
16954
/* ---------------------------------------------------------------------------
16955
    Version: 3.0
16956
   --------------------------------------------------------------------------- */
16957
 
16958
   DocNumber PACKAGE_DOCUMENTS.DOC_NUM%TYPE;
16959
 
16960
BEGIN
16961
 
16962
	-- Get Doc Num
16963
    SELECT pd.DOC_NUM INTO DocNumber
16964
      FROM PACKAGE_DOCUMENTS pd
16965
     WHERE pd.PV_ID = nPvId
16966
       AND pd.DOC_ID = nDocId;
16967
 
16968
 
16969
	-- Delete Document
16970
    DELETE
16971
      FROM PACKAGE_DOCUMENTS pd
16972
     WHERE pd.PV_ID = nPvId
16973
       AND pd.DOC_ID = nDocId;
16974
 
16975
 
16976
    /* LOG ACTION */
16977
   	Log_Action ( nPvId, 'document_remove', nUserId,
16978
   			     'Document number: '|| DocNumber );
16979
 
16980
 
16981
END Remove_Document;
4040 dpurdie 16982
 
3959 dpurdie 16983
/
4040 dpurdie 16984
--------------------------------------------------------
16985
--  DDL for Procedure REMOVE_PACKAGE_INTEREST
16986
--------------------------------------------------------
16987
set define off;
16988
 
5172 dpurdie 16989
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PACKAGE_INTEREST" (nProjId IN PROJECTS.PROJ_ID%TYPE,
3959 dpurdie 16990
	   	  		  								  	nPkgId IN PACKAGES.PKG_ID%TYPE,
16991
												  	nUserId IN NUMBER
16992
	   	  		  									) IS
16993
 
1373 dpurdie 16994
/******************************************************************************
3959 dpurdie 16995
   NAME:       REMOVE_PACKAGE_INTEREST
16996
   PURPOSE:    To remove interest in a given package per project
1373 dpurdie 16997
 
16998
   REVISIONS:
16999
   Ver        Date        Author           Description
17000
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 17001
   1.0        12/05/2006  Rupesh Solanki      1. Created this procedure.
1373 dpurdie 17002
 
17003
   NOTES:
17004
 
17005
   Automatically available Auto Replace Keywords:
3959 dpurdie 17006
      Object Name:     REMOVE_PACKAGE_INTEREST
17007
      Sysdate:         12/05/2006
17008
      Date and Time:   12/05/2006, 11:28:50 AM, and 12/05/2006 11:28:50 AM
1373 dpurdie 17009
      Username:         (set in TOAD Options, Procedure Editor)
17010
      Table Name:       (set in the "New PL/SQL Object" dialog)
17011
 
17012
******************************************************************************/
17013
BEGIN
17014
 
3959 dpurdie 17015
	 --Delete from PACKAGE_INTEREST
17016
	 DELETE FROM PACKAGE_INTEREST
17017
	 WHERE PROJ_ID = nProjId
17018
	 AND PKG_ID = nPkgId
17019
	 AND USER_ID = nUserId;
17020
 
17021
END REMOVE_PACKAGE_INTEREST;
4040 dpurdie 17022
 
1374 dpurdie 17023
/
4040 dpurdie 17024
--------------------------------------------------------
17025
--  DDL for Procedure REMOVE_PATCH
17026
--------------------------------------------------------
17027
set define off;
17028
 
5172 dpurdie 17029
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PATCH" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
3959 dpurdie 17030
										   nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
17031
                                           nUserId IN NUMBER ) IS
1373 dpurdie 17032
/* ---------------------------------------------------------------------------
3959 dpurdie 17033
    Version: 4.0
1373 dpurdie 17034
   --------------------------------------------------------------------------- */
17035
 
3959 dpurdie 17036
PatchVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
1373 dpurdie 17037
 
3959 dpurdie 17038
CURSOR curPatch IS
17039
	SELECT pp.PV_ID,
17040
		   pp.PATCH_ID,
17041
	       ROWNUM AS NEW_INSTALL_ORDER
17042
	  FROM PACKAGE_PATCHES pp
17043
	 WHERE pp.PV_ID = nPvId
17044
	ORDER BY pp.INSTALL_ORDER;
17045
recPatch curPatch%ROWTYPE;
17046
 
1373 dpurdie 17047
BEGIN
17048
 
3959 dpurdie 17049
	 -- Delete Patch
17050
     DELETE
17051
       FROM PACKAGE_PATCHES pp
17052
      WHERE pp.PV_ID = nPvId
17053
        AND pp.PATCH_ID = nPatchId;
1373 dpurdie 17054
 
17055
 
3959 dpurdie 17056
	-- Redo Install Order
17057
    OPEN curPatch;
17058
	FETCH curPatch INTO recPatch;
17059
 
17060
	WHILE curPatch%FOUND
17061
	LOOP
17062
 
17063
		UPDATE PACKAGE_PATCHES pp SET
17064
			pp.INSTALL_ORDER = recPatch.NEW_INSTALL_ORDER
17065
		WHERE pp.PV_ID = nPvId
17066
		  AND pp.PATCH_ID = recPatch.PATCH_ID;
17067
 
17068
		FETCH curPatch INTO recPatch;
17069
	END LOOP;
17070
 
17071
	CLOSE curPatch;
17072
 
17073
 
17074
 
17075
 
17076
    /* LOG ACTION */
17077
    SELECT pv.PKG_VERSION INTO PatchVersion
1373 dpurdie 17078
      FROM PACKAGE_VERSIONS pv
3959 dpurdie 17079
     WHERE pv.PV_ID = nPatchId;
1373 dpurdie 17080
 
3959 dpurdie 17081
   	Log_Action ( nPvId, 'patch_remove', nUserId,
17082
   			     'Version: '|| PatchVersion );
1373 dpurdie 17083
 
3959 dpurdie 17084
END Remove_Patch;
4040 dpurdie 17085
 
1374 dpurdie 17086
/
4040 dpurdie 17087
--------------------------------------------------------
17088
--  DDL for Procedure REMOVE_PROJECT_VIEW_OWNER
17089
--------------------------------------------------------
17090
set define off;
17091
 
5172 dpurdie 17092
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PROJECT_VIEW_OWNER" (nProjId IN NUMBER,
3959 dpurdie 17093
	   	  		  						 			  nViewId IN NUMBER,
17094
										 			  sUserIdList IN VARCHAR2,
17095
										 			  nUserId IN NUMBER ) IS
1373 dpurdie 17096
 
3959 dpurdie 17097
GroupId NUMBER;													  
17098
 
17099
 
17100
 
1373 dpurdie 17101
/******************************************************************************
3959 dpurdie 17102
   NAME:       UPDATE_VIEW
17103
   PURPOSE:    
1373 dpurdie 17104
 
17105
   REVISIONS:
3959 dpurdie 17106
   Ver        Date        Author           		Description
1373 dpurdie 17107
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 17108
   1.0        10/04/2006     Rupesh Solanki     1. Created this procedure.
1373 dpurdie 17109
 
17110
   NOTES:
17111
 
17112
   Automatically available Auto Replace Keywords:
3959 dpurdie 17113
      Object Name:     UPDATE_VIEW
17114
      Sysdate:         10/04/2006
17115
      Date and Time:   10/04/2006, 1:55:19 PM, and 10/04/2006 1:55:19 PM
1373 dpurdie 17116
      Username:         (set in TOAD Options, Procedure Editor)
17117
      Table Name:       (set in the "New PL/SQL Object" dialog)
17118
 
17119
******************************************************************************/
17120
 
17121
BEGIN
3959 dpurdie 17122
	 SELECT GROUP_EMAIL_ID into GroupId
17123
	 FROM AUTOBUILD_FAILURE
17124
	 WHERE PROJ_ID = nProjId
17125
	 AND VIEW_ID = nViewId;
17126
 
17127
	 DELETE FROM MEMBERS_GROUP
17128
	 WHERE GROUP_EMAIL_ID = GroupId
17129
	 AND USER_ID IN (
17130
	 SELECT * FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual ) 
17131
	 );
17132
 
1373 dpurdie 17133
 
3959 dpurdie 17134
 
17135
END REMOVE_PROJECT_VIEW_OWNER;
4040 dpurdie 17136
 
3959 dpurdie 17137
/
4040 dpurdie 17138
--------------------------------------------------------
17139
--  DDL for Procedure REMOVE_RELEASE_CONTENT
17140
--------------------------------------------------------
17141
set define off;
17142
 
5172 dpurdie 17143
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_RELEASE_CONTENT" ( sPvIdList IN VARCHAR2,
3959 dpurdie 17144
													 sNotPvIdList IN VARCHAR2,
17145
                                                     nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS
17146
/* ---------------------------------------------------------------------------
17147
    Version: 3.0
17148
   --------------------------------------------------------------------------- */
1373 dpurdie 17149
 
3959 dpurdie 17150
oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
17151
oNotPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
1373 dpurdie 17152
 
3959 dpurdie 17153
BEGIN
17154
	oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
17155
    oNotPvIdCollector := IN_LIST_NUMBER ( sNotPvIdList );
17156
 
17157
    -- Delete From Release Content
17158
    DELETE
17159
      FROM RELEASE_CONTENT
17160
	 WHERE rtag_id = nRTagId
17161
	   AND pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
17162
	   AND NOT pv_id IN ( SELECT * FROM TABLE ( CAST ( oNotPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
17163
 
17164
 
17165
 
17166
END Remove_Release_Content;
4040 dpurdie 17167
 
1374 dpurdie 17168
/
4040 dpurdie 17169
--------------------------------------------------------
17170
--  DDL for Procedure REMOVE_RUNTIME
17171
--------------------------------------------------------
17172
set define off;
17173
 
5172 dpurdie 17174
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_RUNTIME" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 17175
											 nRuntimeId IN RUNTIME_DEPENDENCIES.RTD_ID%TYPE,
17176
                                             nUserId IN NUMBER ) IS
17177
/* ---------------------------------------------------------------------------
17178
    Version: 3.0
17179
   --------------------------------------------------------------------------- */
17180
 
17181
   RuntimeDependency VARCHAR2(4000);
17182
 
17183
BEGIN
17184
 
17185
	-- Get Runtime dependency
17186
    SELECT pkg.PKG_NAME ||' '|| pv.PKG_VERSION  INTO RuntimeDependency
17187
	  FROM RUNTIME_DEPENDENCIES rtd,
17188
	  	   PACKAGES pkg,
17189
	       PACKAGE_VERSIONS pv
17190
	 WHERE rtd.PV_ID = nPvId
17191
	   AND pv.PKG_ID = pkg.PKG_ID
17192
	   AND rtd.RTD_ID = pv.PV_ID
17193
	   AND rtd.RTD_ID = nRuntimeId;
17194
 
17195
 
17196
	-- Delete Document
17197
    DELETE
17198
      FROM RUNTIME_DEPENDENCIES rtd
17199
     WHERE rtd.PV_ID = nPvId
17200
       AND rtd.RTD_ID = nRuntimeId;
17201
 
17202
 
17203
    /* LOG ACTION */
17204
   	Log_Action ( nPvId, 'runtime_remove', nUserId,
17205
   			     'Runtime package: '|| RuntimeDependency );
17206
 
17207
 
17208
END Remove_Runtime;
4040 dpurdie 17209
 
3959 dpurdie 17210
/
4040 dpurdie 17211
--------------------------------------------------------
17212
--  DDL for Procedure RENAME_PACKAGE_VERSION
17213
--------------------------------------------------------
17214
set define off;
17215
 
5172 dpurdie 17216
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RENAME_PACKAGE_VERSION" ( NNpv_id IN NUMBER,
4211 dpurdie 17217
                                  SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
17218
                                  cBuildType IN CHAR,
17219
                                  cChangeType IN CHAR,
17220
                                  NNuser_id IN NUMBER,
17221
                                  errMessage OUT VARCHAR2 ) IS
3959 dpurdie 17222
/* ---------------------------------------------------------------------------
17223
    Version: 3.2
17224
   --------------------------------------------------------------------------- */
17225
 
17226
    sPackageVersion VARCHAR2(4000);
4211 dpurdie 17227
    sLabel VARCHAR2(4000) := NULL;
17228
    sChangeType VARCHAR2(100) := NULL;
17229
    uChangeType CHAR := cChangeType;
3959 dpurdie 17230
    OldPkgVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
17231
 
17232
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
17233
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
17234
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
17235
 
17236
    CURSOR package_versions_cur IS
17237
        SELECT pv_id
4211 dpurdie 17238
          FROM package_versions
17239
         WHERE pkg_id IN ( SELECT pkg_id FROM package_versions WHERE pv_id = NNpv_id )
17240
           AND pkg_version = SSpkg_version;
3959 dpurdie 17241
    package_versions_rec package_versions_cur%ROWTYPE;
17242
 
17243
 
17244
BEGIN
17245
 
17246
    /* ---------------------------------------------------- */
17247
    /* Find if package_version exists                       */
17248
    /* ---------------------------------------------------- */
17249
 
4211 dpurdie 17250
    errMessage := NULL;
3959 dpurdie 17251
 
4211 dpurdie 17252
    -- Get previous version
17253
    SELECT pv.PKG_VERSION INTO OldPkgVersion
3959 dpurdie 17254
      FROM PACKAGE_VERSIONS pv
17255
     WHERE pv.PV_ID = NNpv_id;
17256
 
4211 dpurdie 17257
    sPackageVersion := SSpkg_version;
3959 dpurdie 17258
 
4211 dpurdie 17259
    IF OldPkgVersion != sPackageVersion THEN
3959 dpurdie 17260
 
4211 dpurdie 17261
        OPEN package_versions_cur;
17262
        FETCH package_versions_cur INTO package_versions_rec;
3959 dpurdie 17263
 
4211 dpurdie 17264
        IF package_versions_cur%NOTFOUND
17265
        THEN
3959 dpurdie 17266
 
4211 dpurdie 17267
            -- Split current version in parts
17268
            Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
3959 dpurdie 17269
 
17270
 
4211 dpurdie 17271
                -- Automated built config
17272
                IF ( cBuildType = 'M' ) THEN
17273
                    uChangeType := 'F';
17274
                END IF;  
17275
 
17276
                -- Automated version numbering
17277
                -- Make sure that version is still unique
17278
                IF (uChangeType != 'F') THEN
17279
                    sPackageVersion := '('|| NNpv_id ||')'|| SSV_EXT;
17280
                END IF;
3959 dpurdie 17281
 
4211 dpurdie 17282
                -- Packge version not found, hence rename it.
17283
                UPDATE package_versions
17284
                   SET pkg_version = sPackageVersion,
17285
                       v_mm = SSV_MM,
17286
                       v_nmm = SSV_NMM,
17287
                       v_ext = SSV_EXT,
17288
                       modified_stamp = ORA_SYSDATETIME,
17289
                       modifier_id = NNuser_id,
17290
                       build_type = cBuildType,
17291
                       change_type = uChangeType,
17292
                       pkg_label = NULL
17293
                 WHERE pv_id = NNpv_id;
17294
 
17295
                sLabel := GET_AUTOMATED_LABEL( NNpv_id );
17296
                UPDATE PACKAGE_VERSIONS pv SET
17297
                    pv.PKG_LABEL = sLabel
17298
                WHERE pv_id = NNpv_id;
3959 dpurdie 17299
 
17300
 
4211 dpurdie 17301
              /* LOG ACTION */
17302
              IF (cChangeType = 'F') THEN
17303
                  Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| sPackageVersion );
17304
              ELSE 
17305
 
17306
                  IF cChangeType = 'M' THEN
17307
                    sChangeType := 'Major Change';
17308
                  ELSIF cChangeType = 'N' THEN 
17309
                    sChangeType := 'Minor Change';
17310
                  ELSIF cChangeType = 'P' THEN 
17311
                    sChangeType := 'Patch Change';
17312
                  ELSE
17313
                    sChangeType := 'Unknown Change';
17314
                  END IF;
3959 dpurdie 17315
 
4211 dpurdie 17316
                  Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| sPackageVersion || ',' || sChangeType );
17317
              END IF;
3959 dpurdie 17318
 
4211 dpurdie 17319
        ELSE
17320
            -- Package version exists. Cannot proceed.
17321
            errMessage := 'enum_MSG_VERSION_EXISTS';
3959 dpurdie 17322
 
4211 dpurdie 17323
        END IF;
3959 dpurdie 17324
 
4211 dpurdie 17325
        CLOSE package_versions_cur;
3959 dpurdie 17326
 
4211 dpurdie 17327
    END IF;
3959 dpurdie 17328
 
17329
END Rename_Package_Version;
4040 dpurdie 17330
 
3959 dpurdie 17331
/
4040 dpurdie 17332
--------------------------------------------------------
17333
--  DDL for Procedure RESET_IGNORE_WARNINGS
17334
--------------------------------------------------------
17335
set define off;
17336
 
5172 dpurdie 17337
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RESET_IGNORE_WARNINGS" ( sPvIdList IN VARCHAR2,
3959 dpurdie 17338
                                                    nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS
17339
/* ---------------------------------------------------------------------------
17340
    Version: 5.0
17341
   --------------------------------------------------------------------------- */
17342
 
17343
oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
17344
 
17345
BEGIN
17346
	oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
17347
 
17348
    -- Remove Ignore Warnings
17349
     DELETE
17350
       FROM ignore_warnings
17351
	  WHERE (rtag_id, pv_id, dpv_id) IN
17352
	     (
17353
	      SELECT igw.rtag_id, igw.pv_id, igw.dpv_id
17354
	        FROM ignore_warnings igw,
17355
	             package_versions dpv,
17356
	             package_versions pv
17357
	       WHERE igw.dpv_id = dpv.pv_id
17358
	         AND igw.rtag_id = nRTagId
17359
	         AND dpv.pkg_id = pv.pkg_id
17360
	         AND NVL(dpv.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|')
17361
	         AND pv.pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
17362
         );
17363
 
17364
END Reset_Ignore_Warnings;
4040 dpurdie 17365
 
3959 dpurdie 17366
/
4040 dpurdie 17367
--------------------------------------------------------
17368
--  DDL for Procedure RIPPLE_PACKAGE
17369
--------------------------------------------------------
17370
set define off;
17371
 
5172 dpurdie 17372
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RIPPLE_PACKAGE" (
3959 dpurdie 17373
        sPvIdList IN VARCHAR2,
17374
        nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
17375
        nUserId IN NUMBER
17376
    ) IS
17377
/* ---------------------------------------------------------------------------
17378
    Version: 4.1
17379
   --------------------------------------------------------------------------- */
17380
 
17381
BEGIN
17382
 
17383
    IF (sPvIdList IS NULL) THEN
17384
        RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
17385
    END IF;
17386
 
17387
    -- Ripple Package
17388
    DELETE FROM DO_NOT_RIPPLE
17389
    WHERE RTAG_ID = nRtagId
17390
    AND PV_ID IN (
17391
        SELECT *
17392
        FROM THE (
17393
            SELECT CAST( IN_LIST_NUMBER( sPvIdList )
17394
            AS RELMGR_NUMBER_TAB_t )
17395
            FROM DUAL
17396
        )
17397
    );
17398
 
5172 dpurdie 17399
    -- Mark Release Changed for build
17400
    PK_RELEASE.SET_RELEASE_MODIFIED(nRtagId);
17401
 
3959 dpurdie 17402
    /* LOG ACTION */
17403
    Log_Action_Bulk ( sPvIdList, 'ripple_package', nUserId );
17404
 
17405
END Ripple_Package;
4040 dpurdie 17406
 
3959 dpurdie 17407
/
4040 dpurdie 17408
--------------------------------------------------------
17409
--  DDL for Procedure SEED_PACKAGE_NAMES_VERSIONS
17410
--------------------------------------------------------
17411
set define off;
17412
 
5172 dpurdie 17413
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
4585 dpurdie 17414
                                          SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
17415
                                          NNuser_id IN NUMBER,
17416
                                          retPV_ID OUT NUMBER,
17417
                                          nCloneFromPvId IN NUMBER DEFAULT NULL,
17418
                                          nBuildType IN CHAR DEFAULT 'M',
17419
                                          nChangeType IN CHAR DEFAULT 'F') IS
3959 dpurdie 17420
/* ---------------------------------------------------------------------------
5172 dpurdie 17421
    Version: 5.0
3959 dpurdie 17422
   --------------------------------------------------------------------------- */
17423
 
17424
    parPkg_id   NUMBER;
17425
    parPv_id    NUMBER;
17426
    cloneFrom_pv_id NUMBER;
17427
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
17428
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
17429
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
17430
    spackageversion VARCHAR2 (4000);
4211 dpurdie 17431
    slabel VARCHAR2 (4000) := NULL;
3959 dpurdie 17432
 
17433
    CURSOR packages_cur IS
17434
        SELECT pkg_id FROM PACKAGES
17435
        WHERE pkg_name = SSpkg_name;
17436
    packages_rec packages_cur%ROWTYPE;
17437
 
17438
    CURSOR package_versions_cur IS
17439
        SELECT pv_id FROM PACKAGE_VERSIONS
17440
        WHERE pkg_id = parPkg_id
17441
        AND pkg_version = SSpkg_version;
17442
    package_versions_rec package_versions_cur%ROWTYPE;
17443
 
17444
    CURSOR clone_package_versions_cur IS
17445
        SELECT MAX(pv_id) AS pv_id
17446
          FROM PACKAGE_VERSIONS
17447
         WHERE pkg_id = parPkg_id
17448
           AND NVL(v_ext,'LINK_A_NULL') = NVL(SSV_EXT,'LINK_A_NULL');
17449
    clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
17450
 
17451
BEGIN
17452
    /* -------------------------------------------- */
17453
    /* Find if pkg_name exists and seed if required */
17454
    /* -------------------------------------------- */
17455
    OPEN packages_cur;
17456
    FETCH packages_cur INTO packages_rec;
17457
 
17458
    IF packages_cur%NOTFOUND
17459
    THEN
17460
        /* INSERT into packages table */
17461
        SELECT SEQ_PKG_ID.NEXTVAL INTO parPkg_id FROM DUAL;
17462
        INSERT INTO PACKAGES ( pkg_id, pkg_name ) VALUES ( parPkg_id, SSpkg_name );
17463
 
17464
    ELSE
17465
        parPkg_id := packages_rec.pkg_id;
17466
 
17467
    END IF;
17468
 
17469
    CLOSE packages_cur;
17470
 
17471
 
17472
    /* ---------------------------------------------------- */
17473
    /* Find if package_version exists and seed if required  */
17474
    /* ---------------------------------------------------- */
17475
    OPEN package_versions_cur;
17476
    FETCH package_versions_cur INTO package_versions_rec;
17477
 
17478
    IF package_versions_cur%NOTFOUND
17479
    THEN
17480
        SELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;
17481
 
17482
        /* Generate automated version Number */
17483
        Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
17484
        spackageversion := SSpkg_version;
17485
 
4211 dpurdie 17486
        IF ( nChangeType <> 'F' )
3959 dpurdie 17487
        THEN
17488
            spackageversion := '(' || parPv_id || ')' || SSV_EXT;
17489
        END If;
17490
 
17491
        /* LOG ACTION */
17492
        Log_Action ( parPv_id, 'new_version', NNuser_id,
17493
                     'New package version: '|| spackageversion );
17494
 
17495
 
4585 dpurdie 17496
        /*  Determine clone source for new package-version
17497
            Use nCloneFromPvId - iff provided
17498
            Use most recently created pkgName/pkgExtension - if it exists
17499
            Else create a brand new package-version
17500
        */
3959 dpurdie 17501
 
4585 dpurdie 17502
        IF ( NOT nCloneFromPvId IS NULL) THEN
17503
            cloneFrom_pv_id := nCloneFromPvId;
17504
        ELSE
17505
            /* Find similar pkg_name + ext to clone from */
17506
            OPEN clone_package_versions_cur;
17507
            FETCH clone_package_versions_cur INTO clone_package_versions_rec;
17508
            CLOSE clone_package_versions_cur;
3959 dpurdie 17509
 
4585 dpurdie 17510
            IF ( NOT clone_package_versions_rec.pv_id IS NULL) THEN
17511
                cloneFrom_pv_id := clone_package_versions_rec.pv_id;
3959 dpurdie 17512
            ELSE
4585 dpurdie 17513
                cloneFrom_pv_id := NULL;
3959 dpurdie 17514
            END IF;
17515
 
4585 dpurdie 17516
        END IF;
17517
 
17518
        IF NOT cloneFrom_pv_id IS NULL
17519
        THEN
3959 dpurdie 17520
            -- Clone Package Version Details --
17521
            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,
17522
                                           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  )
17523
                SELECT parPv_id         AS pv_id,
17524
                       parPkg_id        AS pkg_id,
17525
                       spackageversion  AS pkg_version,
17526
                       'N'              AS dlocked,
17527
                       Ora_Sysdate      AS created_stamp,
17528
                       NNuser_id        AS creator_id,
17529
                       Ora_Sysdatetime  AS modified_stamp,
17530
                       NNuser_id        AS modifier_id,
17531
                       SSV_MM           AS V_MM,
17532
                       SSV_NMM          AS V_NMM,
17533
                       SSV_EXT          AS V_EXT,
17534
                       pv.src_path,
17535
                       pv.pv_description,
17536
                       pv.PV_OVERVIEW,
17537
                       cloneFrom_pv_id  AS LAST_PV_ID,
17538
                       pv.owner_id,
17539
                       nBuildType       AS BUILD_TYPE,
17540
                       pv.IS_BUILD_ENV_REQUIRED,
17541
                       pv.BS_ID,
17542
                       pv.is_autobuildable,
17543
                       pv.IS_DEPLOYABLE, 
17544
                       pv.ripple_field,
17545
                       nChangeType       AS change_type
17546
                  FROM PACKAGE_VERSIONS pv
17547
                 WHERE pv.pv_id = cloneFrom_pv_id;
17548
 
17549
            Basic_Clone ( cloneFrom_pv_id, parPv_id, NULL, NNuser_id, parPkg_id, 0 );
17550
 
17551
        ELSE
17552
            /* BRAND NEW version + ext */
17553
            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 )
17554
            VALUES (
17555
                    parPv_id,
17556
                    parPkg_id,
17557
                    spackageversion,
17558
                    'N',
17559
                    Ora_Sysdate,
17560
                    NNuser_id,
17561
                    Ora_Sysdatetime,
17562
                    NNuser_id,
17563
                    SSV_MM,
17564
                    SSV_NMM,
17565
                    SSV_EXT,
17566
                    NNuser_id,
17567
                    parPv_id,
17568
                    nBuildType,
17569
                    'b',
17570
                    nChangeType
17571
                   );
17572
        END IF;
17573
 
4211 dpurdie 17574
        /* Insert initial package label */
17575
        slabel := get_automated_label (parPv_id);
17576
        UPDATE package_versions pv
17577
        SET pv.pkg_label = slabel
17578
        WHERE pv.pv_id = parPv_id;
17579
 
3959 dpurdie 17580
        retPV_ID := parPv_id;
17581
 
17582
    ELSE
17583
        retPV_ID := package_versions_rec.pv_id;
17584
 
17585
    END IF;
17586
 
17587
    CLOSE package_versions_cur;
17588
 
17589
END Seed_Package_Names_Versions;
4040 dpurdie 17590
 
3959 dpurdie 17591
/
4040 dpurdie 17592
--------------------------------------------------------
17593
--  DDL for Procedure SET_ADVISORY_RIPPLE
17594
--------------------------------------------------------
17595
set define off;
17596
 
5172 dpurdie 17597
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
1373 dpurdie 17598
	   	  		  							   nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
17599
											 nUserId IN NUMBER ) IS
17600
/* ---------------------------------------------------------------------------
17601
    Version: 4.0
17602
   --------------------------------------------------------------------------- */
17603
 
17604
BEGIN
17605
 
3959 dpurdie 17606
    -- Set Advisory Ripple Package
17607
    INSERT INTO ADVISORY_RIPPLE (RTAG_ID, PV_ID)
17608
	VALUES (nRtagId, nPvId);
1373 dpurdie 17609
 
17610
    /* LOG ACTION */
3959 dpurdie 17611
   	Log_Action ( nPvId, 'set_advisory_ripple', nUserId );
1373 dpurdie 17612
 
17613
	/*Rebuild_Environment(nRtagId);*/
17614
 
3959 dpurdie 17615
END Set_Advisory_Ripple;
4040 dpurdie 17616
 
1374 dpurdie 17617
/
4040 dpurdie 17618
--------------------------------------------------------
17619
--  DDL for Procedure SET_PACKAGE_BUILD_ENV
17620
--------------------------------------------------------
17621
set define off;
17622
 
5172 dpurdie 17623
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,
3959 dpurdie 17624
	   	  		  								  	sBuildEnvIdList IN VARCHAR2 ) IS
1373 dpurdie 17625
/* ---------------------------------------------------------------------------
3959 dpurdie 17626
    Last Modified: Rupesh Solanki
17627
	Version: 3.0.1
1373 dpurdie 17628
   --------------------------------------------------------------------------- */
17629
 
17630
 
17631
BEGIN
17632
 
3959 dpurdie 17633
   -- Delete Current Build Env settings
17634
   DELETE FROM PACKAGE_BUILD_ENV
17635
   WHERE pv_id = nPvId;
17636
 
17637
   -- Delet Current Package Build Info Settings
17638
   DELETE FROM PACKAGE_BUILD_INFO
17639
   WHERE pv_id = nPvId;
1373 dpurdie 17640
 
3959 dpurdie 17641
   -- Reset flag to N
17642
   UPDATE PACKAGE_VERSIONS SET
17643
	   IS_BUILD_ENV_REQUIRED = 'N'
17644
   WHERE PV_ID = nPvId;
1373 dpurdie 17645
 
17646
 
3959 dpurdie 17647
   -- Set new Build Env
17648
   IF NOT sBuildEnvIdList IS NULL THEN
17649
   	  -- Insert into PACKAGE_BUILD_ENV
17650
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
17651
	  SELECT nPvId AS PV_ID,
17652
	  		 be.BE_ID
17653
	    FROM BUILD_ENVIRONMENTS be
17654
	   WHERE be.BE_ID IN (
17655
	   		 		  	   SELECT *
17656
					   	     FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
17657
	   		 		  	 );
17658
 
17659
   	  -- Insert into PACKAGE_BUILD_INFO
17660
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
17661
	  SELECT nPvId AS PV_ID,
17662
	  		 be.BM_ID
17663
	    FROM BUILD_MACHINES be
17664
	   WHERE be.BM_ID IN (
17665
	   		 		  	   SELECT *
17666
					   	     FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
17667
	   		 		  	 );						 
1373 dpurdie 17668
 
3959 dpurdie 17669
	   -- Set flag to Y
17670
	   UPDATE PACKAGE_VERSIONS SET
17671
		   IS_BUILD_ENV_REQUIRED = 'Y'
17672
	   WHERE PV_ID = nPvId;
1373 dpurdie 17673
 
3959 dpurdie 17674
   END IF;
1373 dpurdie 17675
 
17676
 
3959 dpurdie 17677
END Set_Package_Build_Env;
4040 dpurdie 17678
 
1374 dpurdie 17679
/
4040 dpurdie 17680
--------------------------------------------------------
17681
--  DDL for Procedure SET_PACKAGE_BUILD_ENV_TEMP
17682
--------------------------------------------------------
17683
set define off;
17684
 
5172 dpurdie 17685
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV_TEMP" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,
1373 dpurdie 17686
	   	  		  								  	   	 sBuildEnvIdList IN VARCHAR2,
17687
														 nBuildStandard IN PACKAGE_VERSIONS.BS_ID%TYPE 
17688
														 ) IS
17689
/* ---------------------------------------------------------------------------
17690
    Last Modified: Rupesh Solanki
17691
	Version: 3.0.1
17692
   --------------------------------------------------------------------------- */
17693
 
17694
   nBsCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();   
17695
   BsId NUMBER;
17696
   HackBsId NUMBER;
17697
 
17698
 
17699
BEGIN
17700
 
17701
   nBsCollector := IN_LIST_NUMBER ( sBuildEnvIdList );
17702
 
17703
   -- Delete Current Build Env settings
17704
   DELETE FROM PACKAGE_BUILD_ENV
17705
   WHERE pv_id = nPvId;
17706
 
17707
   -- Delet Current Package Build Info Settings
17708
   DELETE FROM PACKAGE_BUILD_INFO
17709
   WHERE pv_id = nPvId;
17710
 
17711
   -- Reset flag to N
17712
   UPDATE PACKAGE_VERSIONS SET
17713
	   IS_BUILD_ENV_REQUIRED = 'N'
17714
   WHERE PV_ID = nPvId;
17715
 
17716
 
17717
   -- Set new Build Env
17718
   IF NOT sBuildEnvIdList IS NULL THEN
17719
	FOR i IN 1..nBsCollector.COUNT
17720
	LOOP   
17721
 
17722
	BsId := nBsCollector(i);
17723
 
17724
	IF nBuildStandard = 2 THEN
17725
	   IF BsId = 1 THEN
17726
	   	  HackBsId := 11;
17727
	   ELSE
17728
	   	  HackBsId := 12;
17729
	   END IF;
17730
 
17731
   	  -- Insert into PACKAGE_BUILD_ENV
17732
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
17733
	  SELECT nPvId AS PV_ID,
17734
	  		 be.BE_ID
17735
	    FROM BUILD_ENVIRONMENTS be
17736
	   WHERE be.BE_ID IN ( HackBsId );
17737
 
17738
   	  -- Insert into PACKAGE_BUILD_INFO
17739
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
17740
	  SELECT nPvId AS PV_ID,
17741
	  		 be.BM_ID
17742
	    FROM BUILD_MACHINES be
17743
	   WHERE be.BM_ID IN ( BsId );						 
17744
 
17745
	   -- Set flag to Y
17746
	   UPDATE PACKAGE_VERSIONS SET
17747
		   IS_BUILD_ENV_REQUIRED = 'Y'
17748
	   WHERE PV_ID = nPvId;	
17749
 
17750
 
17751
	ELSE
17752
 
17753
   	  -- Insert into PACKAGE_BUILD_ENV
17754
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
17755
	  SELECT nPvId AS PV_ID,
17756
	  		 be.BE_ID
17757
	    FROM BUILD_ENVIRONMENTS be
17758
	   WHERE be.BE_ID IN ( BsId );
17759
 
17760
   	  -- Insert into PACKAGE_BUILD_INFO
17761
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
17762
	  SELECT nPvId AS PV_ID,
17763
	  		 be.BM_ID
17764
	    FROM BUILD_MACHINES be
17765
	   WHERE be.BM_ID IN ( BsId );						 
17766
 
17767
	   -- Set flag to Y
17768
	   UPDATE PACKAGE_VERSIONS SET
17769
		   IS_BUILD_ENV_REQUIRED = 'Y'
17770
	   WHERE PV_ID = nPvId;
17771
 
17772
	END IF;  
17773
 
17774
 
17775
	END LOOP;	   
17776
 
17777
   END IF;
17778
 
17779
 
17780
END Set_Package_Build_Env_Temp;
4040 dpurdie 17781
 
1374 dpurdie 17782
/
4040 dpurdie 17783
--------------------------------------------------------
17784
--  DDL for Procedure SET_TO_AUTOBUILDABLE
17785
--------------------------------------------------------
17786
set define off;
17787
 
5172 dpurdie 17788
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_TO_AUTOBUILDABLE" (
3959 dpurdie 17789
   nrtagid     IN   NUMBER,
17790
   spvidlist   IN   VARCHAR2
17791
)
17792
IS
17793
/******************************************************************************
17794
   NAME:       SET_TO_AUTOBUILDABLE
17795
   PURPOSE:
1373 dpurdie 17796
 
3959 dpurdie 17797
   REVISIONS:
17798
   Ver        Date        Author           Description
17799
   ---------  ----------  ---------------  ------------------------------------
17800
   1.0        15/12/2006   Rupesh Solanki       1. Created this procedure.
1373 dpurdie 17801
 
3959 dpurdie 17802
   NOTES:
1373 dpurdie 17803
 
3959 dpurdie 17804
   Automatically available Auto Replace Keywords:
17805
      Object Name:     SET_TO_AUTOBUILDABLE
17806
      Sysdate:         15/12/2006
17807
      Date and Time:   15/12/2006, 11:42:29 AM, and 15/12/2006 11:42:29 AM
17808
      Username:         (set in TOAD Options, Procedure Editor)
17809
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 17810
 
3959 dpurdie 17811
******************************************************************************/
17812
   npvidcollector   relmgr_number_tab_t := relmgr_number_tab_t ();
17813
   PvId NUMBER;
1373 dpurdie 17814
BEGIN
17815
 
3959 dpurdie 17816
   npvidcollector := in_list_number2 (spvidlist);
17817
 
17818
   UPDATE package_versions
17819
      SET is_autobuildable = 'N'
17820
    WHERE pv_id IN (SELECT pv_id
17821
                      FROM release_content
17822
                     WHERE rtag_id = nrtagid);
1373 dpurdie 17823
 
3959 dpurdie 17824
 
17825
 
17826
   	FOR i IN 1..npvidcollector.COUNT
17827
	LOOP
17828
		PvId := npvidcollector(i);
1373 dpurdie 17829
 
3959 dpurdie 17830
		UPDATE package_versions
17831
		set is_autobuildable = 'Y'
17832
		where pv_id = PvId;
1373 dpurdie 17833
 
3959 dpurdie 17834
	END LOOP;
17835
 
17836
 
17837
END set_to_autobuildable;
4040 dpurdie 17838
 
3959 dpurdie 17839
/
4040 dpurdie 17840
--------------------------------------------------------
17841
--  DDL for Procedure SHIFT_INSTALL_ORDER
17842
--------------------------------------------------------
17843
set define off;
17844
 
5172 dpurdie 17845
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SHIFT_INSTALL_ORDER" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
3959 dpurdie 17846
												  nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
17847
                                                  nToInstallOrder IN PACKAGE_PATCHES.INSTALL_ORDER%TYPE ) IS
17848
/* ---------------------------------------------------------------------------
17849
    Version: 3.0
17850
   --------------------------------------------------------------------------- */
1373 dpurdie 17851
 
3959 dpurdie 17852
currInstallOrder NUMBER;
17853
FromInstallOrder NUMBER;
1373 dpurdie 17854
 
3959 dpurdie 17855
BEGIN
1373 dpurdie 17856
 
3959 dpurdie 17857
	 -- Get Current Install Order
17858
     SELECT pp.INSTALL_ORDER INTO currInstallOrder
17859
       FROM PACKAGE_PATCHES pp
17860
      WHERE pp.PV_ID = nPvId
17861
        AND pp.PATCH_ID = nPatchId;
1373 dpurdie 17862
 
17863
 
3959 dpurdie 17864
	 IF currInstallOrder > nToInstallOrder
17865
	 THEN
1373 dpurdie 17866
 
3959 dpurdie 17867
		FromInstallOrder := nToInstallOrder;
1373 dpurdie 17868
 
3959 dpurdie 17869
	    -- Shift others Up
17870
		UPDATE PACKAGE_PATCHES pp SET
17871
			   pp.INSTALL_ORDER = pp.INSTALL_ORDER + 1
17872
		 WHERE pp.PV_ID = nPvId
17873
           AND pp.PATCH_ID != nPatchId
17874
		   AND pp.INSTALL_ORDER BETWEEN  FromInstallOrder  AND  currInstallOrder - 1;
1373 dpurdie 17875
 
17876
 
3959 dpurdie 17877
	 ELSIF currInstallOrder < nToInstallOrder
17878
	 THEN
1373 dpurdie 17879
 
3959 dpurdie 17880
		FromInstallOrder := currInstallOrder + 1;
1373 dpurdie 17881
 
3959 dpurdie 17882
		-- Shift others Down
17883
        UPDATE PACKAGE_PATCHES pp SET
17884
			   pp.INSTALL_ORDER = pp.INSTALL_ORDER - 1
17885
		 WHERE pp.PV_ID = nPvId
17886
           AND pp.PATCH_ID != nPatchId
17887
		   AND pp.INSTALL_ORDER BETWEEN  FromInstallOrder  AND  nToInstallOrder;
1373 dpurdie 17888
 
3959 dpurdie 17889
	 END IF;
1373 dpurdie 17890
 
17891
 
3959 dpurdie 17892
	 -- Move Patch to new install order
17893
     UPDATE PACKAGE_PATCHES pp SET
17894
		    pp.INSTALL_ORDER = nToInstallOrder
17895
	  WHERE pp.PV_ID = nPvId
17896
	    AND pp.PATCH_ID = nPatchId;
1373 dpurdie 17897
 
17898
 
3959 dpurdie 17899
END Shift_Install_Order;
4040 dpurdie 17900
 
1374 dpurdie 17901
/
4040 dpurdie 17902
--------------------------------------------------------
17903
--  DDL for Procedure SPLIT_VERSION
17904
--------------------------------------------------------
17905
set define off;
17906
 
5172 dpurdie 17907
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SPLIT_VERSION" ( SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
3959 dpurdie 17908
                                            SSV_MM OUT PACKAGE_VERSIONS.V_MM%TYPE,
17909
                                            SSV_NMM OUT PACKAGE_VERSIONS.V_NMM%TYPE,
17910
                                            SSV_EXT OUT PACKAGE_VERSIONS.V_EXT%TYPE  ) IS
1373 dpurdie 17911
/* ---------------------------------------------------------------------------
3959 dpurdie 17912
    Version: 3.0.0
1373 dpurdie 17913
   --------------------------------------------------------------------------- */
17914
 
3959 dpurdie 17915
    TYPE VERSION_COMPONENTS_TYPE IS TABLE OF VARCHAR2(50)
17916
        INDEX BY BINARY_INTEGER;
1373 dpurdie 17917
 
3959 dpurdie 17918
    version_components VERSION_COMPONENTS_TYPE;
17919
    lastDot NUMBER := 0;
17920
    currDot NUMBER := 0;
1373 dpurdie 17921
 
17922
BEGIN
3959 dpurdie 17923
    currDot := INSTR ( SSpkg_version, '.', -1 );      -- Find 1st dot from the right
1373 dpurdie 17924
 
3959 dpurdie 17925
    IF ( currDot > 0 )
1373 dpurdie 17926
    THEN
3959 dpurdie 17927
        -- YES dot separator found --
17928
        SSV_EXT := GET_V_EXT( SSpkg_version );
1373 dpurdie 17929
 
3959 dpurdie 17930
        IF NOT SSV_EXT IS NULL
1373 dpurdie 17931
        THEN
3959 dpurdie 17932
            lastDot := currDot;
17933
            currDot := INSTR ( SSpkg_version, '.', -1, 2 );   -- Find 2nd dot from the right
1373 dpurdie 17934
 
3959 dpurdie 17935
            IF ( currDot > 0 )
17936
            THEN
17937
                -- XXXX.M.E
17938
                SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, lastDot - currDot - 1);
17939
                SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot ) || SSV_EXT;
17940
            ELSE
17941
                -- XXXX.E
17942
                SSV_MM := NULL;
17943
                SSV_NMM := SSpkg_version;
17944
            END IF;
1373 dpurdie 17945
 
17946
        ELSE
3959 dpurdie 17947
            -- XXXX.M
17948
            SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, LENGTH(SSpkg_version) - currDot );
17949
            SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot );
1373 dpurdie 17950
 
17951
        END IF;
17952
 
17953
    ELSE
3959 dpurdie 17954
        -- NO dot separator found --
17955
        -- XXXXXX
17956
        SSV_MM  := NULL;
17957
        SSV_NMM := SSpkg_version;
17958
        SSV_EXT := NULL;
1373 dpurdie 17959
 
17960
    END IF;
17961
 
3959 dpurdie 17962
END Split_Version;
4040 dpurdie 17963
 
1374 dpurdie 17964
/
4040 dpurdie 17965
--------------------------------------------------------
17966
--  DDL for Procedure SWITCH_REPRODUCIBLE_PACKAGE
17967
--------------------------------------------------------
17968
set define off;
17969
 
5172 dpurdie 17970
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SWITCH_REPRODUCIBLE_PACKAGE" (nPvId IN NUMBER, nUserId IN NUMBER)IS
3959 dpurdie 17971
Auto CHAR;
17972
/******************************************************************************
17973
   NAME:       SWITCH_REPRODUCIBLE_PACKAGE
17974
   PURPOSE:    
1373 dpurdie 17975
 
3959 dpurdie 17976
   REVISIONS:
17977
   Ver        Date        Author           Description
17978
   ---------  ----------  ---------------  ------------------------------------
17979
   1.0        14/12/2006   Rupesh Solanki       1. Created this procedure.
1373 dpurdie 17980
 
3959 dpurdie 17981
   NOTES:
1373 dpurdie 17982
 
3959 dpurdie 17983
   Automatically available Auto Replace Keywords:
17984
      Object Name:     SWITCH_REPRODUCIBLE_PACKAGE
17985
      Sysdate:         14/12/2006
17986
      Date and Time:   14/12/2006, 11:35:15 AM, and 14/12/2006 11:35:15 AM
17987
      Username:         (set in TOAD Options, Procedure Editor)
17988
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 17989
 
3959 dpurdie 17990
******************************************************************************/
1373 dpurdie 17991
BEGIN
17992
 
3959 dpurdie 17993
	 SELECT IS_AUTOBUILDABLE into Auto
17994
	 FROM PACKAGE_VERSIONS 
17995
	 WHERE PV_ID = nPvId;
1373 dpurdie 17996
 
3959 dpurdie 17997
	 IF Auto = 'N' Then
17998
 
17999
	 	UPDATE PACKAGE_VERSIONS
18000
	 	SET IS_AUTOBUILDABLE = 'Y'
18001
	 	WHERE PV_ID = nPvId;
18002
 
18003
 
18004
	 	/* LOG ACTION */
18005
   		Log_Action ( nPvId, 'reproducible_package', nUserId );	 
18006
 
18007
	 Else
18008
 
18009
		 UPDATE PACKAGE_VERSIONS
18010
		 SET IS_AUTOBUILDABLE = 'N'
18011
		 WHERE PV_ID = nPvId;
18012
 
18013
 
18014
	 	 /* LOG ACTION */
18015
   	 	 Log_Action ( nPvId, 'unreproducible_package', nUserId );	 
18016
 
18017
	 End If;
18018
 
18019
 
1373 dpurdie 18020
 
3959 dpurdie 18021
 
1373 dpurdie 18022
 
18023
 
18024
 
18025
 
3959 dpurdie 18026
END SWITCH_REPRODUCIBLE_PACKAGE;
4040 dpurdie 18027
 
1374 dpurdie 18028
/
4040 dpurdie 18029
--------------------------------------------------------
18030
--  DDL for Procedure SYNC_PROJECTS_NEW_VERSION
18031
--------------------------------------------------------
18032
set define off;
18033
 
5172 dpurdie 18034
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SYNC_PROJECTS_NEW_VERSION" ( nPv_id 				IN NUMBER,
3959 dpurdie 18035
														  sSyncRtagsInList		IN VARCHAR2,
18036
				                                          nUser_id 				IN NUMBER ) IS
1373 dpurdie 18037
/* ---------------------------------------------------------------------------
18038
    Version: 3.0.0
18039
   --------------------------------------------------------------------------- */
18040
 
3959 dpurdie 18041
	CURSOR sync_rtags_cur IS
18042
        SELECT rc.RTAG_ID, rc.BASE_VIEW_ID, pv.pv_id
18043
		  FROM release_content rc,
18044
		  	   package_versions pv,
18045
		       package_versions opv
18046
		 WHERE rc.pv_id = pv.pv_id
18047
		   AND opv.pkg_id = pv.pkg_id
18048
		   AND NVL(opv.v_ext, '|LINK_A_NULL|') = NVL(pv.v_ext, '|LINK_A_NULL|')
18049
		   AND opv.pv_id = nPv_id
18050
		   AND rtag_id IN ( SELECT *
18051
		   	   		   	      FROM THE (
18052
					   	   		   	    SELECT CAST( IN_LIST_NUMBER( sSyncRtagsInList ) AS RELMGR_NUMBER_TAB_t )
18053
					       		   	    FROM dual
18054
									   )
18055
						  );
18056
    sync_rtags_rec sync_rtags_cur%ROWTYPE;
1373 dpurdie 18057
 
18058
BEGIN
18059
 
3959 dpurdie 18060
	OPEN sync_rtags_cur;
18061
	FETCH sync_rtags_cur INTO sync_rtags_rec;
1373 dpurdie 18062
 
3959 dpurdie 18063
	WHILE sync_rtags_cur%FOUND
18064
	LOOP
18065
		DELETE FROM RELEASE_CONTENT
18066
		 WHERE rtag_id = sync_rtags_rec.rtag_id
18067
	       AND pv_id = sync_rtags_rec.pv_id;
1373 dpurdie 18068
 
3959 dpurdie 18069
		INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )
18070
	   		   VALUES ( sync_rtags_rec.rtag_id,
18071
		       		  	nPv_id,
18072
						sync_rtags_rec.BASE_VIEW_ID,
18073
	           			Ora_Sysdate,
18074
	           			nUser_id,
18075
 
18076
	      	   		   );
1373 dpurdie 18077
 
3959 dpurdie 18078
-- 		UPDATE RELEASE_CONTENT
18079
-- 	       SET pv_id = nPv_id,
18080
-- 	           insert_stamp = Ora_Sysdate,
18081
-- 	           insertor_id = nUser_id
18082
-- 	     WHERE rtag_id = sync_rtags_rec.rtag_id
18083
-- 	       AND pv_id = sync_rtags_rec.pv_id;
1373 dpurdie 18084
 
3959 dpurdie 18085
		FETCH sync_rtags_cur INTO sync_rtags_rec;
18086
	END LOOP;
1373 dpurdie 18087
 
3959 dpurdie 18088
	CLOSE sync_rtags_cur;
18089
 
18090
END Sync_Projects_New_Version;
4040 dpurdie 18091
 
1374 dpurdie 18092
/
4040 dpurdie 18093
--------------------------------------------------------
18094
--  DDL for Procedure TEST
18095
--------------------------------------------------------
18096
set define off;
18097
 
5172 dpurdie 18098
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TEST" 
3959 dpurdie 18099
IS
1373 dpurdie 18100
 
3959 dpurdie 18101
proc_id NUMBER;
18102
/******************************************************************************
18103
   NAME:       DELETE_DO_NOT_RIPPLE
18104
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
18105
               IS RELEASED
1373 dpurdie 18106
 
3959 dpurdie 18107
   REVISIONS:
18108
   Ver        Date        Author           Description
18109
   ---------  ----------  ---------------  ------------------------------------
18110
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
1373 dpurdie 18111
 
3959 dpurdie 18112
   NOTES:
18113
 
18114
   Automatically available Auto Replace Keywords:
18115
      Object Name:     DELETE_DO_NOT_RIPPLE
18116
      Sysdate:         21/04/2006
18117
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
18118
      Username:         (set in TOAD Options, Procedure Editor)
18119
      Table Name:       (set in the "New PL/SQL Object" dialog)
18120
 
18121
******************************************************************************/
18122
   CURSOR ripple_cur
18123
   IS
18124
      select distinct pkg_health_tag, cmd_interface, pkg_owner, is_interface from deployment_manager.processes_config;
18125
 
18126
   ripple_rec   ripple_cur%ROWTYPE;
1373 dpurdie 18127
BEGIN
3959 dpurdie 18128
   OPEN ripple_cur;
1373 dpurdie 18129
 
3959 dpurdie 18130
   FETCH ripple_cur
18131
    INTO ripple_rec;
1373 dpurdie 18132
 
3959 dpurdie 18133
   WHILE ripple_cur%FOUND
18134
   LOOP
18135
 
18136
   select deployment_manager.seq_proc_id.nextval into proc_id from dual;
18137
 
18138
insert into processes (PROC_ID, PROC_NAME, RUN_AS, PKG_OWNER, IS_INTERFACE) 
18139
values(proc_id, ripple_rec.pkg_health_tag, ripple_rec.cmd_interface, ripple_rec.pkg_owner, ripple_rec.is_interface);
1373 dpurdie 18140
 
3959 dpurdie 18141
      FETCH ripple_cur
18142
       INTO ripple_rec;
18143
   END LOOP;
18144
END test;
4040 dpurdie 18145
 
1374 dpurdie 18146
/
4040 dpurdie 18147
--------------------------------------------------------
18148
--  DDL for Procedure TEST_MARCO
18149
--------------------------------------------------------
18150
set define off;
18151
 
5172 dpurdie 18152
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TEST_MARCO" IS
1373 dpurdie 18153
/******************************************************************************
3959 dpurdie 18154
   NAME:       TEST_MARCO
1373 dpurdie 18155
   PURPOSE:    
18156
 
18157
   REVISIONS:
18158
   Ver        Date        Author           Description
18159
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 18160
   1.0        2/03/2007          1. Created this procedure.
1373 dpurdie 18161
 
18162
   NOTES:
18163
 
18164
   Automatically available Auto Replace Keywords:
3959 dpurdie 18165
      Object Name:     TEST_MARCO
18166
      Sysdate:         2/03/2007
18167
      Date and Time:   2/03/2007, 3:11:11 PM, and 2/03/2007 3:11:11 PM
1373 dpurdie 18168
      Username:         (set in TOAD Options, Procedure Editor)
18169
      Table Name:       (set in the "New PL/SQL Object" dialog)
18170
 
18171
******************************************************************************/
18172
 
3959 dpurdie 18173
parPv_id    NUMBER;
18174
parPkg_id   NUMBER;
18175
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
18176
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
18177
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
1373 dpurdie 18178
BEGIN
18179
 
3959 dpurdie 18180
SELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;
1373 dpurdie 18181
 
3959 dpurdie 18182
        /* LOG ACTION */
18183
        Log_Action ( parPv_id, 'new_version', 3764,
18184
        			 'New package version: '|| parPv_id || '.' );
18185
 
18186
        Split_Version ( parPv_id || '.', SSV_MM, SSV_NMM, SSV_EXT );
1373 dpurdie 18187
 
3959 dpurdie 18188
     -- Clone Package Version Details --
18189
            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,
18190
                                           src_path, pv_description, PV_OVERVIEW, LAST_PV_ID, owner_id, BUILD_TYPE, IS_BUILD_ENV_REQUIRED, bs_id, is_autobuildable, is_deployable )
18191
                SELECT parPv_id         AS pv_id,
18192
                       pv.pkg_id        AS pkg_id,
18193
                       parPv_id || '.'    AS pkg_version,
18194
                       'N'              AS dlocked,
18195
                       Ora_Sysdate      AS created_stamp,
18196
                       3764        AS creator_id,
18197
                       Ora_Sysdatetime  AS modified_stamp,
18198
                       3764        AS modifier_id,
18199
                       SSV_MM          AS V_MM,
18200
                       SSV_NMM         AS V_NMM,
18201
                       SSV_EXT          AS V_EXT,
18202
                       pv.src_path,
18203
                       pv.pv_description,
18204
                       pv.PV_OVERVIEW,
18205
                       112982 	AS LAST_PV_ID,
18206
                       pv.owner_id,
18207
					   pv.BUILD_TYPE,
18208
					   pv.IS_BUILD_ENV_REQUIRED,
18209
					   pv.bs_id,
18210
					   pv.is_autobuildable,
18211
					   pv.IS_DEPLOYABLE
18212
                  FROM PACKAGE_VERSIONS pv
18213
                 WHERE pv.pv_id = 112982;		
1373 dpurdie 18214
 
3959 dpurdie 18215
Basic_Clone ( 112982, parPv_id, NULL, 3764, 22325, 0 );
1373 dpurdie 18216
 
18217
 
3959 dpurdie 18218
END TEST_MARCO;
4040 dpurdie 18219
 
3959 dpurdie 18220
/
4040 dpurdie 18221
--------------------------------------------------------
18222
--  DDL for Procedure TOUCH_RELEASE
18223
--------------------------------------------------------
18224
set define off;
18225
 
5172 dpurdie 18226
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE" ( nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS
3959 dpurdie 18227
/* ---------------------------------------------------------------------------
18228
    The purpose of this procedure is to flag in the database that the specified
18229
    release has changed to an extent that the procedure Rebuild_Environment
18230
    should be called at the next opportunity in order that the package state
18231
    icons are all re-evaluated.
18232
    The package state icons are controlled using the pkg_state column in the
18233
    release_content table, and Rebuild_Environment updates that column.
18234
    It will be through user action in the website that Rebuild_Environment will
18235
    be called, for example:
18236
      a) when setting/clearing ignore warnings checkboxes
18237
      b) when someone opens a page upon a rtag/pvid and rebuild_en flag is set
18238
      c) when someone opens the build order report form
18239
      d) when someone modifies dependencies of a package
18240
      + other scenarios (?)
18241
   --------------------------------------------------------------------------- */
18242
BEGIN
18243
   -- Touch Release for Rebuild
18244
   UPDATE RELEASE_TAGS rt SET
18245
          rt.REBUILD_ENV = 'Y',
18246
          rt.REBUILD_STAMP = 0
18247
    WHERE rt.RTAG_ID = nRtagId;
1373 dpurdie 18248
 
3959 dpurdie 18249
END Touch_Release;
4040 dpurdie 18250
 
1374 dpurdie 18251
/
4040 dpurdie 18252
--------------------------------------------------------
18253
--  DDL for Procedure TOUCH_RELEASE_BULK
18254
--------------------------------------------------------
18255
set define off;
18256
 
5172 dpurdie 18257
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE_BULK" ( nRtagIdList IN VARCHAR2 ) IS
1373 dpurdie 18258
/* ---------------------------------------------------------------------------
18259
    Version: 3.0
18260
   --------------------------------------------------------------------------- */
18261
 
18262
oRTagIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
18263
 
18264
BEGIN
18265
	 oRTagIdCollector := IN_LIST_NUMBER ( nRtagIdList );
18266
 
18267
	 -- Touch Release for Rebuild
18268
     UPDATE RELEASE_TAGS rt SET
18269
     	rt.REBUILD_ENV = 'Y',
18270
        rt.REBUILD_STAMP = 0
18271
      WHERE rt.RTAG_ID IN ( SELECT * FROM TABLE ( CAST ( oRTagIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
18272
 
18273
 
18274
END Touch_Release_Bulk;
4040 dpurdie 18275
 
1374 dpurdie 18276
/
4040 dpurdie 18277
--------------------------------------------------------
18278
--  DDL for Procedure TO_INSERT_VTREE_ID
18279
--------------------------------------------------------
18280
set define off;
18281
 
5172 dpurdie 18282
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TO_INSERT_VTREE_ID" IS
1373 dpurdie 18283
 
3959 dpurdie 18284
/******************************************************************************
18285
   NAME:       TO_INSERT_VTREE_ID
18286
   PURPOSE:    
1373 dpurdie 18287
 
3959 dpurdie 18288
   REVISIONS:
18289
   Ver        Date        Author           Description
18290
   ---------  ----------  ---------------  ------------------------------------
18291
   1.0        2/02/2007          1. Created this procedure.
1373 dpurdie 18292
 
3959 dpurdie 18293
   NOTES:
1373 dpurdie 18294
 
3959 dpurdie 18295
   Automatically available Auto Replace Keywords:
18296
      Object Name:     TO_INSERT_VTREE_ID
18297
      Sysdate:         2/02/2007
18298
      Date and Time:   2/02/2007, 8:42:56 AM, and 2/02/2007 8:42:56 AM
18299
      Username:         (set in TOAD Options, Procedure Editor)
18300
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 18301
 
3959 dpurdie 18302
******************************************************************************/
18303
VTreeId NUMBER;																			  																	   
1373 dpurdie 18304
 
18305
 
3959 dpurdie 18306
	CURSOR curInfo IS
18307
    SELECT RTAG_ID
18308
	FROM RELEASE_TAGS
18309
	WHERE VTREE_ID IS NULL;
18310
    recInfo curInfo%ROWTYPE;
18311
 
18312
 
1373 dpurdie 18313
BEGIN
18314
 
3959 dpurdie 18315
	OPEN curInfo;
18316
    FETCH curInfo INTO recInfo;
18317
 
18318
	WHILE curInfo%FOUND
18319
	LOOP
18320
		SELECT SEQ_VTREE_ID.nextval INTO VTreeId FROM DUAL;
1373 dpurdie 18321
 
3959 dpurdie 18322
		UPDATE RELEASE_TAGS
18323
		SET VTREE_ID = VTreeId
18324
		WHERE RTAG_ID = recInfo.RTAG_ID;
1373 dpurdie 18325
 
3959 dpurdie 18326
		FETCH curInfo INTO recInfo;
18327
	END LOOP;
1373 dpurdie 18328
 
3959 dpurdie 18329
	CLOSE curInfo;
1373 dpurdie 18330
 
3959 dpurdie 18331
END TO_INSERT_VTREE_ID;
4040 dpurdie 18332
 
1374 dpurdie 18333
/
4040 dpurdie 18334
--------------------------------------------------------
18335
--  DDL for Procedure UNDEPRECATE_PACKAGE
18336
--------------------------------------------------------
18337
set define off;
18338
 
5384 dpurdie 18339
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNDEPRECATE_PACKAGE" (
18340
    nPvId   IN PACKAGE_VERSIONS.PV_ID%TYPE,
18341
    nRtagId IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,
18342
    nPkgId  IN DEPRECATED_PACKAGES.PKG_ID%TYPE,
18343
    nUserId IN NUMBER)
18344
IS
18345
  ext      VARCHAR2(50);
18346
 
1373 dpurdie 18347
BEGIN
5384 dpurdie 18348
  --Extract the package extension
18349
  SELECT V_EXT INTO ext 
18350
  FROM PACKAGE_VERSIONS
18351
  WHERE PV_ID = nPvId;
1373 dpurdie 18352
 
5384 dpurdie 18353
    -- Undeprecate Package
18354
    DELETE
18355
    FROM DEPRECATED_PACKAGES
18356
    WHERE RTAG_ID = nRtagId
18357
    AND PKG_ID    = nPkgId
18358
    AND NVL(V_EXT,'.NULL') = NVL(ext,'.NULL');
18359
 
18360
    -- Update Release Contents entry
18361
    -- Process PackageName.ext for the package. ie: Allow multiple
18362
    -- versions of the package to be in the release.
18363
 
18364
    UPDATE RELEASE_CONTENT
18365
    SET 
18366
      DEPRECATED_STATE = NULL
18367
    WHERE RTAG_ID      = nRtagId
18368
    AND PV_ID IN (
18369
      SELECT PV.PV_ID
18370
      FROM PACKAGE_VERSIONS PV
18371
      WHERE PV.PKG_ID   = nPkgId
18372
      AND NVL(PV.V_EXT, '.NULL') = NVL(ext,'.NULL')
18373
      );
1373 dpurdie 18374
 
5384 dpurdie 18375
  -- Update consumers of the package
18376
  --  Update ALL packages in the Release
1373 dpurdie 18377
 
5384 dpurdie 18378
  REBUILD_DEPRECATE_STATE(nRtagId);      
1373 dpurdie 18379
 
18380
END Undeprecate_Package;
4040 dpurdie 18381
 
1374 dpurdie 18382
/
4040 dpurdie 18383
--------------------------------------------------------
18384
--  DDL for Procedure UNLOCK_PACKAGE
18385
--------------------------------------------------------
18386
set define off;
18387
 
5172 dpurdie 18388
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNLOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 18389
											 nUserId IN NUMBER ) IS
18390
/* ---------------------------------------------------------------------------
18391
    Author: Rupesh Solanki
18392
 
18393
	Version: 4.0
18394
   --------------------------------------------------------------------------- */
18395
   STATE CHAR;
18396
 
18397
BEGIN
18398
 
18399
	SELECT DLOCKED INTO STATE
18400
	FROM PACKAGE_VERSIONS
18401
	WHERE PV_ID = nPvId; 
1373 dpurdie 18402
 
3959 dpurdie 18403
	IF STATE = 'A' THEN --It was made official for autobuilds
18404
		-- Unlock Package
18405
		UPDATE PACKAGE_VERSIONS pv SET
18406
		pv.DLOCKED = 'P'
18407
		WHERE pv.PV_ID = nPvId;	
18408
	ELSE
18409
		-- Unlock Package
18410
		UPDATE PACKAGE_VERSIONS pv SET
18411
		pv.DLOCKED = 'N'
18412
		WHERE pv.PV_ID = nPvId;	
18413
 
18414
	END IF;	   
18415
 
18416
    /* LOG ACTION */
18417
   	Log_Action ( nPvId, 'unlock_package', nUserId );
18418
 
18419
END Unlock_Package;
4040 dpurdie 18420
 
3959 dpurdie 18421
/
4040 dpurdie 18422
--------------------------------------------------------
18423
--  DDL for Procedure UNRIPPLE_PACKAGE
18424
--------------------------------------------------------
18425
set define off;
18426
 
5172 dpurdie 18427
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE" (
3959 dpurdie 18428
        sPvIdList IN VARCHAR2,
18429
        nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
18430
        nUserId IN NUMBER
18431
    ) IS
18432
/* ---------------------------------------------------------------------------
18433
    Version: 4.1
18434
   --------------------------------------------------------------------------- */
18435
 
18436
    oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
18437
 
18438
BEGIN
18439
 
18440
    IF (sPvIdList IS NULL) THEN
18441
        RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
18442
    END IF;
18443
 
18444
    oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
18445
 
18446
    -- UnRipple Package
18447
    INSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID )
18448
    SELECT nRtagId, pv.PV_ID
18449
    FROM PACKAGE_VERSIONS pv
18450
    WHERE pv.PV_ID IN (
18451
        SELECT *
18452
        FROM TABLE (
18453
            CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t )
18454
        )
18455
    );
18456
 
18457
    /* LOG ACTION */
18458
    Log_Action_Bulk ( sPvIdList, 'unripple_package', nUserId );
18459
 
18460
END UnRipple_Package;
4040 dpurdie 18461
 
3959 dpurdie 18462
/
4040 dpurdie 18463
--------------------------------------------------------
18464
--  DDL for Procedure UNRIPPLE_PACKAGE_INDIRECT
18465
--------------------------------------------------------
18466
set define off;
18467
 
5172 dpurdie 18468
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE_INDIRECT" (
3959 dpurdie 18469
        nPvId IN NUMBER,
18470
        nRtagId IN NUMBER,
18471
        nUserId IN NUMBER,
18472
        nrootCausePvId IN NUMBER,
18473
        srootCause IN VARCHAR2,
18474
        srootFile IN VARCHAR2
18475
    ) IS
18476
    ReleaseLocation VARCHAR2(4000);
18477
BEGIN
18478
 
18479
    -- UnRipple Package
18480
    delete from do_not_ripple where rtag_id=nRtagId and pv_id=nPvId;
18481
    INSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID, ROOT_PV_ID, ROOT_CAUSE, ROOT_FILE ) values (nRtagId, nPvId, nrootCausePvId, srootCause, srootFile);
18482
 
18483
    /* LOG ACTION */
18484
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
18485
              FROM PROJECTS proj,
18486
                   RELEASE_TAGS rt
18487
             WHERE rt.RTAG_ID = nRtagId
18488
               AND rt.PROJ_ID = proj.PROJ_ID;
18489
 
18490
    /* LOG ACTION */
18491
    Log_Action ( nPvId, 'unripple_package', nUserId, 'Location: '|| ReleaseLocation );
18492
 
18493
END UnRipple_Package_Indirect;
4040 dpurdie 18494
 
3959 dpurdie 18495
/
4040 dpurdie 18496
--------------------------------------------------------
18497
--  DDL for Procedure UPDATE_ADDITIONAL_NOTE
18498
--------------------------------------------------------
18499
set define off;
18500
 
5172 dpurdie 18501
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_ADDITIONAL_NOTE" ( pnNote_id IN NUMBER,
3959 dpurdie 18502
													 pnPv_id IN NUMBER,
18503
                                                     psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,
18504
                                                     psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,
18505
                                                     pnUser_id IN NUMBER,
18506
                                                     outErrCode OUT NUMBER
18507
                                                    ) IS
18508
/* ---------------------------------------------------------------------------
18509
    Version: 3.0.1
18510
   --------------------------------------------------------------------------- */
18511
 
18512
    newID NUMBER;
18513
 
18514
    /* Disallow duplicate Note Titles */
18515
	CURSOR an_duplicate_cur IS
18516
        SELECT COUNT(*) AS cnt_note
18517
          FROM ADDITIONAL_NOTES
18518
         WHERE pv_id = pnPv_id
18519
           AND note_id != pnNote_id
18520
           AND note_title = psNote_title;
18521
    an_duplicate_rec an_duplicate_cur%ROWTYPE;
18522
 
18523
BEGIN
18524
	outErrCode := -1;		-- Set default return error code to ERROR state
18525
 
18526
	OPEN an_duplicate_cur;
18527
    FETCH an_duplicate_cur INTO an_duplicate_rec;
18528
 
18529
    IF an_duplicate_rec.cnt_note < 1
18530
    THEN
18531
		--- Update Additional Note ---
18532
	    UPDATE ADDITIONAL_NOTES SET
18533
		       note_title = psNote_title,
18534
		       note_body = psNote_body,
18535
		       mod_date = Ora_Sysdate,
18536
		       mod_user = pnUser_id
18537
         WHERE note_id = pnNote_id
18538
           AND pv_id = pnPv_id;
18539
		outErrCode := 0;		-- Set return to SUCCESS
18540
	END IF;
18541
 
18542
	CLOSE an_duplicate_cur;
18543
END Update_Additional_Note;
4040 dpurdie 18544
 
3959 dpurdie 18545
/
4040 dpurdie 18546
--------------------------------------------------------
18547
--  DDL for Procedure UPDATE_DEPRECATION_STATE
18548
--------------------------------------------------------
18549
set define off;
18550
 
5172 dpurdie 18551
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_DEPRECATION_STATE" (nnrtag_id IN NUMBER) AS
3959 dpurdie 18552
 
18553
recno NUMBER;
18554
 
18555
CURSOR deprecate_cur IS
18556
 
18557
SELECT rc.pv_id
18558
FROM release_content rc
18559
WHERE rtag_id = nnrtag_id
18560
 AND deprecated_state IN(7);
18561
 
18562
deprecate_rec deprecate_cur % rowtype;
18563
 
18564
BEGIN
18565
 
18566
  OPEN deprecate_cur;
18567
 
18568
  FETCH deprecate_cur
18569
  INTO deprecate_rec;
18570
 
18571
  WHILE deprecate_cur % FOUND
18572
  LOOP
18573
 
18574
    SELECT COUNT(*)
18575
    INTO recno
18576
    FROM package_dependencies pd,
18577
      release_content rc
18578
    WHERE pd.pv_id = deprecate_rec.pv_id
18579
     AND rc.pv_id = pd.dpv_id
18580
     AND rc.rtag_id = nnrtag_id
18581
     AND rc.deprecated_state IN(6,   7);
18582
 
18583
    IF recno = 0 THEN
18584
 
18585
      UPDATE release_content
18586
      SET pkg_id = NULL, deprecated_state = NULL
18587
      WHERE pv_id = deprecate_rec.pv_id
18588
       AND rtag_id = nnrtag_id;
18589
 
18590
    END IF;
18591
 
18592
    FETCH deprecate_cur
18593
    INTO deprecate_rec;
18594
  END LOOP;
18595
 
18596
END;
4040 dpurdie 18597
 
3959 dpurdie 18598
/
4040 dpurdie 18599
--------------------------------------------------------
18600
--  DDL for Procedure UPDATE_MISC_VIEW
18601
--------------------------------------------------------
18602
set define off;
18603
 
5172 dpurdie 18604
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_MISC_VIEW" IS
1373 dpurdie 18605
/******************************************************************************
3959 dpurdie 18606
   NAME:       UPDATE_MISC_VIEW
18607
   PURPOSE:    
1373 dpurdie 18608
 
18609
   REVISIONS:
18610
   Ver        Date        Author           Description
18611
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 18612
   1.0        16/03/2007          1. Created this procedure.
1373 dpurdie 18613
 
18614
   NOTES:
18615
 
18616
   Automatically available Auto Replace Keywords:
3959 dpurdie 18617
      Object Name:     UPDATE_MISC_VIEW
18618
      Sysdate:         16/03/2007
18619
      Date and Time:   16/03/2007, 8:56:29 AM, and 16/03/2007 8:56:29 AM
1373 dpurdie 18620
      Username:         (set in TOAD Options, Procedure Editor)
18621
      Table Name:       (set in the "New PL/SQL Object" dialog)
18622
 
18623
******************************************************************************/
3959 dpurdie 18624
   CURSOR view_cur /*Create a record set to store the ripple data*/
18625
   IS
18626
   	 SELECT pkg.pkg_id, rc.base_view_id 
18627
	 FROM package_versions pv, packages pkg, release_content rc
18628
	 where rc.rtag_id = 2362
18629
	 and rc.pv_id = pv.pv_id
18630
	 and pv.pkg_id = pkg.pkg_id;
18631
   view_rec   view_cur%ROWTYPE;
18632
 
18633
 
18634
 
1373 dpurdie 18635
BEGIN
3959 dpurdie 18636
   OPEN view_cur;
1373 dpurdie 18637
 
3959 dpurdie 18638
   FETCH view_cur
18639
    INTO view_rec;
1373 dpurdie 18640
 
3959 dpurdie 18641
   WHILE view_cur%FOUND
18642
   LOOP
1373 dpurdie 18643
 
3959 dpurdie 18644
 
18645
	   update release_content
18646
	   set base_view_id = view_rec.base_view_id
18647
	   where rtag_id = 8027
18648
	   and pv_id IN 
18649
	   (
18650
	   	select pv.pv_id from release_content rc, package_versions pv
18651
		where rc.rtag_id = 8027
18652
		and pv.pv_id = rc.pv_id
18653
		and pv.pkg_id = view_rec.pkg_id 
18654
 
18655
	   );
18656
 
18657
 
1373 dpurdie 18658
 
3959 dpurdie 18659
 
18660
 
18661
 
18662
 
18663
 
1373 dpurdie 18664
 
3959 dpurdie 18665
   FETCH view_cur
18666
   		 INTO view_rec;
18667
   END LOOP;	 
1373 dpurdie 18668
 
18669
 
18670
 
18671
 
3959 dpurdie 18672
 
18673
END UPDATE_MISC_VIEW; 
4040 dpurdie 18674
 
1374 dpurdie 18675
/
4040 dpurdie 18676
--------------------------------------------------------
18677
--  DDL for Procedure UPDATE_PACKAGE_DEPENDENCY
18678
--------------------------------------------------------
18679
set define off;
18680
 
5172 dpurdie 18681
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_DEPENDENCY" ( NNpv_id IN NUMBER,
3959 dpurdie 18682
                                                        SSdep_name IN PACKAGES.pkg_name%TYPE,
18683
                                                        SSdep_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
18684
                                                        CCbuild_type IN PACKAGE_DEPENDENCIES.build_type%TYPE,
18685
                                                        NNuser_id IN NUMBER,
18686
                                                        NNdelete_old_dependency IN NUMBER
18687
                                                       ) IS
1373 dpurdie 18688
/* ---------------------------------------------------------------------------
3959 dpurdie 18689
    Version: 3.3
1373 dpurdie 18690
   --------------------------------------------------------------------------- */
18691
 
3959 dpurdie 18692
    retPV_ID NUMBER;
18693
    SSV_EXT PACKAGE_VERSIONS.v_ext%TYPE;
18694
	DepIsPatch	PACKAGE_VERSIONS.is_patch%TYPE;
18695
    PvIsPatch	PACKAGE_VERSIONS.is_patch%TYPE;
18696
    NNpkg_id NUMBER;
18697
    NNdpkg_id NUMBER;
1373 dpurdie 18698
 
18699
BEGIN
3959 dpurdie 18700
    --- Seed database with package_name and version if required ---
18701
    Seed_Package_Names_Versions ( SSdep_name, SSdep_version, NNuser_id, retPV_ID );
1373 dpurdie 18702
 
3959 dpurdie 18703
    -- get v_ext,pkg_id of current dependency
18704
    SELECT v_ext, pkg_id, is_patch INTO SSV_EXT, NNdpkg_id, DepIsPatch
18705
      FROM PACKAGE_VERSIONS
18706
     WHERE pv_id = retPV_ID;
1373 dpurdie 18707
 
3959 dpurdie 18708
    -- get pkg_id of parent package
18709
    SELECT pkg_id, is_patch INTO NNpkg_id, PvIsPatch
18710
      FROM PACKAGE_VERSIONS
18711
     WHERE pv_id = NNpv_id;
1373 dpurdie 18712
 
18713
 
3959 dpurdie 18714
	IF ( (PvIsPatch IS NULL) AND (DepIsPatch IS NULL) ) OR
18715
    	( (PvIsPatch IS NOT NULL) )THEN
1373 dpurdie 18716
 
3959 dpurdie 18717
	    IF NNdelete_old_dependency = 1 THEN
18718
	        /* Used for CUSTOM dependency add/edit */
1373 dpurdie 18719
 
3959 dpurdie 18720
	        --- Remove old dependency ---
18721
            IF (PvIsPatch IS NULL) THEN
18722
            	-- Do it for Packages
18723
		        DELETE FROM PACKAGE_DEPENDENCIES
18724
		         WHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN
18725
		            (
18726
		            SELECT dep.*
18727
		              FROM PACKAGE_DEPENDENCIES dep,
18728
		                   PACKAGE_VERSIONS dpv,
18729
		                   PACKAGE_VERSIONS pv
18730
		             WHERE dep.dpv_id = dpv.pv_id
18731
		               AND dep.pv_id = NNpv_id
18732
		               AND pv.pv_id = retPV_ID
18733
		               AND dpv.pkg_id = pv.pkg_id
18734
		               AND NVL(dpv.v_ext, '|LINK_A_NULL|') = NVL(SSV_EXT, '|LINK_A_NULL|')
18735
		            );
18736
            ELSE
18737
            	-- Do it for Patches
18738
                DELETE FROM PACKAGE_DEPENDENCIES
18739
		         WHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN
18740
		            (
18741
		            SELECT dep.*
18742
		              FROM PACKAGE_DEPENDENCIES dep
18743
		             WHERE dep.dpv_id = retPV_ID
18744
		               AND dep.pv_id = NNpv_id
18745
		            );
18746
			END IF;
1373 dpurdie 18747
 
3959 dpurdie 18748
	    END IF;
1373 dpurdie 18749
 
3959 dpurdie 18750
	    /* NOTE: for JATS, ANTS dependency update, it is expected that all dependencies are removed. */
18751
 
18752
	    --- Add new dependency ---
18753
	    INSERT INTO PACKAGE_DEPENDENCIES ( pv_id, dpv_id, pkg_id, dpkg_id, build_type )
18754
	    VALUES ( NNpv_id, retPV_ID, NNpkg_id, NNdpkg_id, CCbuild_type );
18755
 
18756
	END IF;
18757
 
18758
END Update_Package_Dependency;
4040 dpurdie 18759
 
1374 dpurdie 18760
/
4040 dpurdie 18761
--------------------------------------------------------
18762
--  DDL for Procedure UPDATE_PACKAGE_STATES
18763
--------------------------------------------------------
18764
set define off;
18765
 
5172 dpurdie 18766
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_STATES" ( NNrtag_id IN NUMBER,
3959 dpurdie 18767
                                                    NNsession_num IN NUMBER ) IS
18768
/* =============  STATE RULES =================== */
18769
/*
18770
   MNR   MRR   MN   MR    |   pkg_state
18771
   ------------------------------------
18772
 
18773
 
18774
 
18775
 
18776
   ------------------------------------
18777
 
18778
 
18779
 
18780
 
18781
   ------------------------------------
18782
    1     0     0     0   |      MINOR_READY
18783
    1     0     0     1   |      MAJOR
18784
    1     0     1     0   |      MINOR
18785
    1     0     1     1   |      MAJOR
18786
   ------------------------------------
18787
    1     1     0     0   |      MAJOR_READY
18788
    1     1     0     1   |      MAJOR
18789
    1     1     1     0   |      MAJOR
18790
    1     1     1     1   |      MAJOR
18791
   ------------------------------------
18792
*/
18793
BEGIN
18794
    /*----------------------------------------------
18795
    ||              MINOR READY
18796
    */----------------------------------------------
1373 dpurdie 18797
 
3959 dpurdie 18798
    UPDATE release_content
18799
       SET pkg_state = 4
18800
     WHERE rtag_id = NNrtag_id
18801
       AND pv_id IN
18802
           (
18803
           SELECT DISTINCT pv_id
18804
           FROM temp_env_states
18805
           WHERE session_num = NNsession_num
18806
             AND level_num = 1
18807
             AND tes_state = 2
18808
           );
1373 dpurdie 18809
 
3959 dpurdie 18810
    /*----------------------------------------------
18811
    ||              MAJOR READY
18812
    */----------------------------------------------
18813
    UPDATE release_content
18814
       SET pkg_state = 3
18815
     WHERE rtag_id = NNrtag_id
18816
       AND pv_id IN
18817
           (
18818
           SELECT DISTINCT pv_id
18819
           FROM temp_env_states
18820
           WHERE session_num = NNsession_num
18821
             AND level_num = 1
18822
             AND tes_state IN (0,1)
18823
           );
1373 dpurdie 18824
 
3959 dpurdie 18825
    /*----------------------------------------------
18826
    ||                MINOR
18827
    */----------------------------------------------
18828
    UPDATE release_content
18829
       SET pkg_state = 2
18830
     WHERE rtag_id = NNrtag_id
18831
       AND pv_id IN
18832
           (
18833
           SELECT DISTINCT pv_id
18834
            FROM temp_env_states
18835
            WHERE session_num = NNsession_num
18836
              AND level_num >= 2
18837
              AND tes_state = 2
18838
            MINUS
18839
           SELECT pv_id
18840
             FROM release_content
18841
            WHERE rtag_id = NNrtag_id
18842
              AND pkg_state = 3
18843
           );
1373 dpurdie 18844
 
3959 dpurdie 18845
    /*----------------------------------------------
18846
    ||                MAJOR
18847
    */----------------------------------------------
18848
    UPDATE release_content
18849
       SET pkg_state = 1
18850
     WHERE rtag_id = NNrtag_id
18851
       AND pv_id IN
18852
           (
18853
           SELECT DISTINCT pv_id
18854
           FROM temp_env_states
18855
           WHERE session_num = NNsession_num
18856
             AND level_num >= 2
18857
             AND tes_state IN (0,1)
18858
           /* MAJOR EXCEPTION - When package has Major Ready and Minor */
18859
           UNION
18860
           SELECT DISTINCT tes.pv_id
18861
           FROM temp_env_states tes,
18862
                release_content rc
18863
           WHERE tes.session_num = NNsession_num
18864
             AND tes.level_num >= 2
18865
             AND tes.tes_state = 2
18866
             AND rtag_id = NNrtag_id
18867
             AND rc.pv_id = tes.pv_id
18868
             AND rc.pkg_state = 3
18869
           );
1373 dpurdie 18870
 
3959 dpurdie 18871
    /*----------------------------------------------
18872
    ||                 OK
18873
    */----------------------------------------------
18874
    UPDATE release_content
18875
       SET pkg_state = 0
18876
     WHERE rtag_id = NNrtag_id
18877
       AND pv_id IN
18878
           (
18879
           SELECT rc.pv_id
18880
             FROM release_content rc
18881
            WHERE rc.rtag_id = NNrtag_id
18882
              AND NOT rc.pv_id IN
18883
                    (
18884
                     SELECT DISTINCT pv_id
18885
                     FROM temp_env_states WHERE session_num = NNsession_num
18886
                    )
18887
           );
1373 dpurdie 18888
 
3959 dpurdie 18889
      Update_Deprecation_State (NNrtag_id);
1373 dpurdie 18890
 
3959 dpurdie 18891
    /*----------------------------------------------
18892
    ||              PEGGED VERSIONS DEPENDENT
18893
    */----------------------------------------------
18894
    UPDATE release_content
18895
       SET pkg_state = 10
18896
     WHERE rtag_id = NNrtag_id
18897
       AND pv_id IN
18898
           (
18899
           SELECT DISTINCT pv_id
18900
           FROM pegged_versions pegv
18901
           WHERE pegv.rtag_id = NNrtag_id
18902
           );
1373 dpurdie 18903
 
3959 dpurdie 18904
    /*----------------------------------------------
18905
    ||              ADVISORY RIPPLE
18906
    */----------------------------------------------
18907
    UPDATE release_content
18908
       SET pkg_state = 8
18909
     WHERE rtag_id = NNrtag_id
18910
       AND pv_id IN
18911
           (
18912
           SELECT DISTINCT pv_id
18913
           FROM advisory_ripple ar
18914
           WHERE ar.rtag_id = NNrtag_id
18915
           )
18916
       AND pv_id IN
18917
           (
18918
           SELECT DISTINCT pv_id
18919
           FROM release_content rc
18920
           WHERE rc.rtag_id = NNrtag_id
18921
           );
5172 dpurdie 18922
 
18923
    /*----------------------------------------------
18924
    ||              SDK Imported
18925
    */----------------------------------------------
18926
    UPDATE release_content
18927
       SET pkg_state = 11
18928
     WHERE rtag_id = NNrtag_id
18929
       AND sdktag_id is not null;           
1373 dpurdie 18930
 
3959 dpurdie 18931
END Update_Package_States;
4040 dpurdie 18932
 
3959 dpurdie 18933
/
4040 dpurdie 18934
--------------------------------------------------------
18935
--  DDL for Procedure UPDATE_PROCESSES
18936
--------------------------------------------------------
18937
set define off;
18938
 
5172 dpurdie 18939
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PROCESSES" 
3959 dpurdie 18940
IS
1373 dpurdie 18941
 
3959 dpurdie 18942
proc_id NUMBER;
18943
/******************************************************************************
18944
   NAME:       DELETE_DO_NOT_RIPPLE
18945
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
18946
               IS RELEASED
1373 dpurdie 18947
 
3959 dpurdie 18948
   REVISIONS:
18949
   Ver        Date        Author           Description
18950
   ---------  ----------  ---------------  ------------------------------------
18951
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
1373 dpurdie 18952
 
3959 dpurdie 18953
   NOTES:
1373 dpurdie 18954
 
3959 dpurdie 18955
   Automatically available Auto Replace Keywords:
18956
      Object Name:     DELETE_DO_NOT_RIPPLE
18957
      Sysdate:         21/04/2006
18958
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
18959
      Username:         (set in TOAD Options, Procedure Editor)
18960
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 18961
 
3959 dpurdie 18962
******************************************************************************/
18963
   CURSOR ripple_cur
18964
   IS
18965
      select proc_id,  proc_name, run_as, pkg_owner, is_interface from processes;
1373 dpurdie 18966
 
3959 dpurdie 18967
   ripple_rec   ripple_cur%ROWTYPE;
18968
BEGIN
18969
   OPEN ripple_cur;
18970
 
18971
   FETCH ripple_cur
18972
    INTO ripple_rec;
18973
 
18974
   WHILE ripple_cur%FOUND
18975
   LOOP
18976
 
18977
 
18978
update deployment_manager.processes_config 
18979
set proc_id = ripple_rec.proc_id
18980
where pkg_health_tag = ripple_rec.proc_name
18981
and cmd_interface IS NULL
18982
and pkg_owner IS NULL
18983
and is_interface IS NULL; 
18984
 
18985
 
18986
      FETCH ripple_cur
18987
       INTO ripple_rec;
18988
   END LOOP;
18989
END UPDATE_PROCESSES;
4040 dpurdie 18990
 
1374 dpurdie 18991
/
4040 dpurdie 18992
--------------------------------------------------------
18993
--  DDL for Procedure UPDATE_RUNTIME_DEPENDENCY
18994
--------------------------------------------------------
18995
set define off;
18996
 
5172 dpurdie 18997
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_RUNTIME_DEPENDENCY" ( NNpv_id IN RUNTIME_DEPENDENCIES.pv_id%TYPE,
3959 dpurdie 18998
				   	  		  						    NNrtd_id IN RUNTIME_DEPENDENCIES.rtd_id%TYPE,
18999
				   	  		  						    SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
19000
													    SSrtd_url IN RUNTIME_DEPENDENCIES.rtd_url%TYPE,
19001
													    SSrtd_comments IN RUNTIME_DEPENDENCIES.rtd_comments%TYPE,
19002
													    NNuser_id IN NUMBER ) IS
1373 dpurdie 19003
/* ---------------------------------------------------------------------------
3959 dpurdie 19004
    Version: 3.0.1
1373 dpurdie 19005
   --------------------------------------------------------------------------- */
19006
 
3959 dpurdie 19007
    retRTD_ID	NUMBER;
19008
	CURSOR rtd_cur IS
19009
	    SELECT pv.pkg_version, pkg.pkg_name
19010
		  FROM runtime_dependencies rtd,
19011
		       package_versions pv,
19012
			   packages pkg
19013
		 WHERE rtd.rtd_id = pv.pv_id
19014
		   AND pv.pkg_id = pkg.pkg_id
19015
		   AND rtd.pv_id = NNpv_id
19016
		   AND rtd.rtd_id = NNrtd_id;
19017
	   rtd_rec rtd_cur%ROWTYPE;
1373 dpurdie 19018
 
3959 dpurdie 19019
	CURSOR old_rtd_cur IS
19020
	    SELECT pv.pv_id
19021
		  FROM package_versions pv
19022
		 WHERE pv.pkg_id IN ( SELECT rtdpv.pkg_id
19023
		 	   			 	    FROM package_versions rtdpv
19024
							   WHERE rtdpv.pv_id = NNrtd_id )
19025
		   AND pv.pkg_version = SSrtd_version;
19026
	old_rtd_rec old_rtd_cur%ROWTYPE;
1373 dpurdie 19027
 
3959 dpurdie 19028
 
1373 dpurdie 19029
BEGIN
19030
 
3959 dpurdie 19031
    -- Get current runtime dependency details
19032
	OPEN rtd_cur;
19033
    FETCH rtd_cur INTO rtd_rec;
1373 dpurdie 19034
 
19035
 
19036
 
19037
 
3959 dpurdie 19038
	IF rtd_rec.pkg_version != SSrtd_version THEN
19039
           -- Version has changed, hence create new runtime dependency --
19040
	    /* NOTE: You must create new version as updating just a version will affect
19041
		        all packages using this runtime dependency and user does not expect that.
19042
		        It is safer to create new version */
19043
		OPEN old_rtd_cur;
19044
		FETCH old_rtd_cur INTO old_rtd_rec;
1373 dpurdie 19045
 
19046
 
3959 dpurdie 19047
		IF old_rtd_cur%NOTFOUND
19048
		THEN
19049
			-- Version not found, hence Create New version --
19050
    		Seed_Package_Names_Versions ( rtd_rec.pkg_name, SSrtd_version, NNuser_id, retRTD_ID );
1373 dpurdie 19051
 
3959 dpurdie 19052
			-- Update runtime dependency table --
19053
			UPDATE runtime_dependencies SET
19054
				   rtd_id = retRTD_ID,
19055
				   rtd_url = SSrtd_url,
19056
				   rtd_comments = SSrtd_comments
19057
			 WHERE pv_id = NNpv_id
19058
			   AND rtd_id = NNrtd_id;
1373 dpurdie 19059
 
3959 dpurdie 19060
		ELSE
19061
			-- Update runtime dependency table --
19062
			UPDATE runtime_dependencies SET
19063
				   rtd_id = old_rtd_rec.pv_id,
19064
				   rtd_url = SSrtd_url,
19065
				   rtd_comments = SSrtd_comments
19066
			 WHERE pv_id = NNpv_id
19067
			   AND rtd_id = NNrtd_id;
19068
 
19069
		END IF;
19070
 
19071
 
19072
		CLOSE old_rtd_cur;
19073
 
19074
	ELSE
19075
		--  Version has not changed, hence update everithing except	version --
19076
		UPDATE runtime_dependencies SET
19077
			   rtd_url = SSrtd_url,
19078
			   rtd_comments = SSrtd_comments
19079
		 WHERE pv_id = NNpv_id
19080
		   AND rtd_id = NNrtd_id;
19081
 
19082
 
19083
 
19084
	END IF;
19085
 
19086
 
19087
	CLOSE rtd_cur;
19088
 
19089
END Update_Runtime_Dependency;
4040 dpurdie 19090
 
1374 dpurdie 19091
/
4040 dpurdie 19092
--------------------------------------------------------
19093
--  DDL for Procedure UPDATE_UNIT_TEST
19094
--------------------------------------------------------
19095
set define off;
19096
 
5172 dpurdie 19097
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST" ( nTest_id IN NUMBER,
3959 dpurdie 19098
	   	  		  							   nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,  	
19099
											   nPv_id IN NUMBER,
19100
											   nUserId IN NUMBER,
19101
	                                           sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
19102
											   sNumof_test IN UNIT_TESTS.NUMOF_TEST%TYPE,
19103
	                                           sCompletion_date IN VARCHAR2,
19104
											   sDpkg_path IN VARCHAR2,
19105
											   enumTEST_TYPE_AUTOMATIC IN NUMBER,
19106
											   sResults IN VARCHAR2,
19107
											   outFileName OUT VARCHAR2
19108
                                              ) IS
1373 dpurdie 19109
/* ---------------------------------------------------------------------------
3959 dpurdie 19110
    Version: 3.1.0
1373 dpurdie 19111
   --------------------------------------------------------------------------- */
3959 dpurdie 19112
 
19113
   	FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
1373 dpurdie 19114
 
3959 dpurdie 19115
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
19116
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
1373 dpurdie 19117
 
3959 dpurdie 19118
 
1373 dpurdie 19119
BEGIN
19120
 
3959 dpurdie 19121
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
19122
       	ResultsURL := sResults;
19123
       ELSE
19124
       	IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
19125
        	outFileName := FILENAME_PREFIX || nTest_id ||'_'|| sResults;
19126
    		ResultsAttachment := sDpkg_path || '/' || outFileName;
19127
           END IF;
19128
       END IF;
1373 dpurdie 19129
 
3959 dpurdie 19130
	--- Update Unit Test ---
19131
    UPDATE UNIT_TESTS SET
19132
           TEST_SUMMARY = sTest_summary,
19133
		   NUMOF_TEST = sNumof_test,
19134
           COMPLETION_DATE = TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
19135
		   COMPLETED_BY = nUserId,
19136
		   RESULTS_URL = ResultsURL,
19137
		   RESULTS_ATTACHMENT_NAME = ResultsAttachment
19138
     WHERE TEST_ID = nTest_id
19139
       AND PV_ID = nPv_id;
1373 dpurdie 19140
 
3959 dpurdie 19141
END Update_Unit_Test;
4040 dpurdie 19142
 
3959 dpurdie 19143
/
4040 dpurdie 19144
--------------------------------------------------------
19145
--  DDL for Procedure UPDATE_UNIT_TEST_ACCEPTANCE
19146
--------------------------------------------------------
19147
set define off;
19148
 
5172 dpurdie 19149
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST_ACCEPTANCE" ( pnTest_id IN NUMBER,
3959 dpurdie 19150
														  pnPv_id IN NUMBER,
19151
					                                      sAccepted IN UNIT_TESTS.TEST_ACCEPTED%TYPE,
19152
														  sAcceptanceDate IN VARCHAR2,
19153
														  sAcceptedBy IN NUMBER,
19154
					                                      sReviewComments IN UNIT_TESTS.REVIEW_COMMENTS%TYPE,
19155
														  cUpdateAcceptedStateOnly IN CHAR
19156
					                                     ) IS
19157
/* ---------------------------------------------------------------------------
19158
    Version: 3.0.0
19159
   --------------------------------------------------------------------------- */
1373 dpurdie 19160
 
19161
 
19162
 
3959 dpurdie 19163
BEGIN
19164
	IF cUpdateAcceptedStateOnly = 'Y'
19165
	THEN
19166
		--- Update Accepted State Only ---
19167
		IF ( sAccepted IS NULL )
19168
		THEN
19169
			-- Clear alleptance
19170
			UPDATE UNIT_TESTS SET
19171
		           TEST_ACCEPTED = NULL,
19172
		           ACCEPTANCE_DATE = NULL,
19173
				   ACCEPTED_BY = NULL,
19174
				   REVIEW_COMMENTS = NULL
19175
		     WHERE TEST_ID = pnTest_id
19176
		       AND PV_ID = pnPv_id;
19177
 
19178
	    ELSE
19179
			UPDATE UNIT_TESTS SET
19180
		           TEST_ACCEPTED = sAccepted,
19181
		           ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),
19182
				   ACCEPTED_BY = sAcceptedBy
19183
		     WHERE TEST_ID = pnTest_id
19184
		       AND PV_ID = pnPv_id;
19185
 
19186
		END IF;
19187
 
19188
 
19189
	ELSE
19190
		--- Update Unit Test Acceptance ---
19191
	    UPDATE UNIT_TESTS SET
19192
	           TEST_ACCEPTED = sAccepted,
19193
			   REVIEW_COMMENTS = sReviewComments,
19194
	           ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),
19195
			   ACCEPTED_BY = sAcceptedBy
19196
	     WHERE TEST_ID = pnTest_id
19197
	       AND PV_ID = pnPv_id;
19198
 
19199
	END IF;
19200
 
19201
END Update_Unit_Test_Acceptance;
4040 dpurdie 19202
 
1374 dpurdie 19203
/
4040 dpurdie 19204
--------------------------------------------------------
19205
--  DDL for Synonymn APPLICATIONS
19206
--------------------------------------------------------
19207
 
5172 dpurdie 19208
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."APPLICATIONS" FOR "ACCESS_MANAGER"."APPLICATIONS";
4040 dpurdie 19209
--------------------------------------------------------
19210
--  DDL for Synonymn APPLICATION_PAGES
19211
--------------------------------------------------------
19212
 
5172 dpurdie 19213
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."APPLICATION_PAGES" FOR "ACCESS_MANAGER"."APPLICATION_PAGES";
4040 dpurdie 19214
--------------------------------------------------------
19215
--  DDL for Synonymn CONTROL_OBJECTS
19216
--------------------------------------------------------
19217
 
5172 dpurdie 19218
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."CONTROL_OBJECTS";
4040 dpurdie 19219
--------------------------------------------------------
19220
--  DDL for Synonymn DATA_PERMISSIONS
19221
--------------------------------------------------------
19222
 
5172 dpurdie 19223
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."DATA_PERMISSIONS" FOR "ACCESS_MANAGER"."DATA_PERMISSIONS";
4040 dpurdie 19224
--------------------------------------------------------
19225
--  DDL for Synonymn DATA_TABLES
19226
--------------------------------------------------------
19227
 
5172 dpurdie 19228
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."DATA_TABLES" FOR "ACCESS_MANAGER"."DATA_TABLES";
4040 dpurdie 19229
--------------------------------------------------------
19230
--  DDL for Synonymn PAGE_CONTROL_OBJECTS
19231
--------------------------------------------------------
19232
 
5172 dpurdie 19233
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PAGE_CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."PAGE_CONTROL_OBJECTS";
4040 dpurdie 19234
--------------------------------------------------------
19235
--  DDL for Synonymn PERMISSION_TYPES
19236
--------------------------------------------------------
19237
 
5172 dpurdie 19238
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PERMISSION_TYPES" FOR "ACCESS_MANAGER"."PERMISSION_TYPES";
4040 dpurdie 19239
--------------------------------------------------------
19240
--  DDL for Synonymn PK_AMUTILS
19241
--------------------------------------------------------
19242
 
5172 dpurdie 19243
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PK_AMUTILS" FOR "ACCESS_MANAGER"."PK_AMUTILS";
4040 dpurdie 19244
--------------------------------------------------------
19245
--  DDL for Synonymn PK_SECURITY
19246
--------------------------------------------------------
19247
 
5172 dpurdie 19248
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PK_SECURITY" FOR "ACCESS_MANAGER"."PK_SECURITY";
4040 dpurdie 19249
--------------------------------------------------------
19250
--  DDL for Synonymn ROLES
19251
--------------------------------------------------------
19252
 
5172 dpurdie 19253
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."ROLES" FOR "ACCESS_MANAGER"."ROLES";
4040 dpurdie 19254
--------------------------------------------------------
19255
--  DDL for Synonymn ROLE_PRIVILEGES
19256
--------------------------------------------------------
19257
 
5172 dpurdie 19258
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."ROLE_PRIVILEGES" FOR "ACCESS_MANAGER"."ROLE_PRIVILEGES";
4040 dpurdie 19259
--------------------------------------------------------
19260
--  DDL for Synonymn USERS
19261
--------------------------------------------------------
19262
 
5172 dpurdie 19263
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USERS" FOR "ACCESS_MANAGER"."USERS";
4040 dpurdie 19264
--------------------------------------------------------
19265
--  DDL for Synonymn USER_APPLICATIONS
19266
--------------------------------------------------------
19267
 
5172 dpurdie 19268
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USER_APPLICATIONS" FOR "ACCESS_MANAGER"."USER_APPLICATIONS";
4040 dpurdie 19269
--------------------------------------------------------
19270
--  DDL for Synonymn USER_ROLES
19271
--------------------------------------------------------
19272
 
5172 dpurdie 19273
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USER_ROLES" FOR "ACCESS_MANAGER"."USER_ROLES";