Subversion Repositories DevTools

Rev

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

Rev Author Line No. Line
1374 dpurdie 1
--------------------------------------------------------
5172 dpurdie 2
--  File created - Tuesday-July-21-2015   
1374 dpurdie 3
--------------------------------------------------------
4040 dpurdie 4
--------------------------------------------------------
5
--  DDL for Type RELMGR_NUMBER_TAB_T
6
--------------------------------------------------------
1373 dpurdie 7
 
5172 dpurdie 8
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_NUMBER_TAB_T" as TABLE of NUMBER
1373 dpurdie 9
 
4040 dpurdie 10
/
11
--------------------------------------------------------
12
--  DDL for Type RELMGR_VARCHAR2_TAB_T
13
--------------------------------------------------------
14
 
5172 dpurdie 15
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_VARCHAR2_TAB_T" 
4040 dpurdie 16
as TABLE of VARCHAR2(4000)
17
 
18
/
19
--------------------------------------------------------
20
--  DDL for Type TDICTIONARY
21
--------------------------------------------------------
22
 
5172 dpurdie 23
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."TDICTIONARY" AS TABLE OF VARCHAR2(4000) INDEX BY VARCHAR2(4000)
4040 dpurdie 24
 
25
/
26
--------------------------------------------------------
27
--  DDL for Sequence MICROSOFTSEQDTPROPERTIES
28
--------------------------------------------------------
29
 
5172 dpurdie 30
   CREATE SEQUENCE  "RELEASE_MANAGER"."MICROSOFTSEQDTPROPERTIES"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 50 NOORDER  NOCYCLE ;
4040 dpurdie 31
--------------------------------------------------------
32
--  DDL for Sequence SEQ_ADDITIONAL_NOTES
33
--------------------------------------------------------
34
 
5172 dpurdie 35
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_ADDITIONAL_NOTES"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 35929 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
 
55
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BUILD_INSTANCE"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 24161 CACHE 20 ORDER  NOCYCLE ;
56
--------------------------------------------------------
4040 dpurdie 57
--  DDL for Sequence SEQ_CR_ID
58
--------------------------------------------------------
59
 
5172 dpurdie 60
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_CR_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 89846 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 61
--------------------------------------------------------
62
--  DDL for Sequence SEQ_DAEMON_INSTRUCTION_ID
63
--------------------------------------------------------
64
 
5172 dpurdie 65
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_DAEMON_INSTRUCTION_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 158028 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 66
--------------------------------------------------------
67
--  DDL for Sequence SEQ_GBE_ID
68
--------------------------------------------------------
69
 
5172 dpurdie 70
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_GBE_ID"  MINVALUE 40 MAXVALUE 9999999999999999999999990 INCREMENT BY 1 START WITH 1232 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
 
5172 dpurdie 85
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PKG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 61927 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 86
--------------------------------------------------------
87
--  DDL for Sequence SEQ_PROJ_ID
88
--------------------------------------------------------
89
 
5172 dpurdie 90
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PROJ_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 841 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 91
--------------------------------------------------------
92
--  DDL for Sequence SEQ_PV_ID
93
--------------------------------------------------------
94
 
5172 dpurdie 95
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PV_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1053105 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 96
--------------------------------------------------------
97
--  DDL for Sequence SEQ_RCON_ID
98
--------------------------------------------------------
99
 
5172 dpurdie 100
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RCON_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 27570 CACHE 20 ORDER  NOCYCLE ;
101
--------------------------------------------------------
102
--  DDL for Sequence SEQ_RELEASE_MOD
103
--------------------------------------------------------
104
 
105
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RELEASE_MOD"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 17976 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 106
--------------------------------------------------------
107
--  DDL for Sequence SEQ_RTAG_ID
108
--------------------------------------------------------
109
 
5172 dpurdie 110
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RTAG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 32205 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 111
--------------------------------------------------------
112
--  DDL for Sequence SEQ_SCHEDULED_ID
113
--------------------------------------------------------
114
 
5172 dpurdie 115
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SCHEDULED_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 27687 CACHE 20 ORDER  NOCYCLE ;
116
--------------------------------------------------------
117
--  DDL for Sequence SEQ_SDKTAG_ID
118
--------------------------------------------------------
119
 
120
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SDKTAG_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 41 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 121
--------------------------------------------------------
5172 dpurdie 122
--  DDL for Sequence SEQ_SDK_ID
123
--------------------------------------------------------
124
 
125
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SDK_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 41 CACHE 20 NOORDER  NOCYCLE ;
126
--------------------------------------------------------
4040 dpurdie 127
--  DDL for Sequence SEQ_SESSION_NUM
128
--------------------------------------------------------
129
 
5172 dpurdie 130
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SESSION_NUM"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1036746 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 131
--------------------------------------------------------
132
--  DDL for Sequence SEQ_UNIT_TESTS
133
--------------------------------------------------------
134
 
5172 dpurdie 135
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_UNIT_TESTS"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 357062 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
 
5172 dpurdie 150
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VIEW_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 5601 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 151
--------------------------------------------------------
152
--  DDL for Sequence SEQ_VTREE_ID
153
--------------------------------------------------------
154
 
5172 dpurdie 155
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VTREE_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 29024 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
--------------------------------------------------------
905
--  DDL for Table MEMBERS_GROUP
906
--------------------------------------------------------
907
 
5172 dpurdie 908
  CREATE TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" 
4040 dpurdie 909
   (	"GROUP_EMAIL_ID" NUMBER, 
910
	"USER_ID" NUMBER
5172 dpurdie 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" ;
4040 dpurdie 916
--------------------------------------------------------
917
--  DDL for Table MESSAGE_BOARD
918
--------------------------------------------------------
919
 
5172 dpurdie 920
  CREATE TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" 
4040 dpurdie 921
   (	"MSG_ID" NUMBER, 
5172 dpurdie 922
	"MSG_DETAILS" VARCHAR2(2000 BYTE), 
4040 dpurdie 923
	"SUBMITION_DATE" DATE, 
924
	"EXPIRY_DATE" DATE, 
925
	"DUE_DATE" DATE
5172 dpurdie 926
   ) SEGMENT CREATION IMMEDIATE 
927
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
928
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
929
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
930
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 931
--------------------------------------------------------
932
--  DDL for Table MICROSOFTDTPROPERTIES
933
--------------------------------------------------------
934
 
5172 dpurdie 935
  CREATE TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" 
4040 dpurdie 936
   (	"ID" NUMBER, 
937
	"OBJECTID" NUMBER, 
5172 dpurdie 938
	"PROPERTY" VARCHAR2(64 BYTE), 
939
	"VALUE" VARCHAR2(255 BYTE), 
4040 dpurdie 940
	"LVALUE" LONG RAW, 
941
	"VERSION" NUMBER DEFAULT (0)
5172 dpurdie 942
   ) SEGMENT CREATION IMMEDIATE 
943
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
944
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
945
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
946
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 947
--------------------------------------------------------
948
--  DDL for Table NOTE_MANAGER
949
--------------------------------------------------------
950
 
5172 dpurdie 951
  CREATE TABLE "RELEASE_MANAGER"."NOTE_MANAGER" 
952
   (	"NID" VARCHAR2(30 BYTE), 
953
	"LAST_USER" VARCHAR2(20 BYTE), 
4040 dpurdie 954
	"LAST_DATE" DATE, 
5172 dpurdie 955
	"DESCRIPTION" VARCHAR2(4000 BYTE)
956
   ) SEGMENT CREATION IMMEDIATE 
957
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
958
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
959
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
960
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 961
--------------------------------------------------------
962
--  DDL for Table NOTIFICATION_HISTORY
963
--------------------------------------------------------
964
 
5172 dpurdie 965
  CREATE TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" 
4040 dpurdie 966
   (	"RTAG_ID" NUMBER, 
967
	"PV_ID" NUMBER, 
968
	"USER_ID" NUMBER, 
969
	"DATE_TIME_STAMP" DATE
5172 dpurdie 970
   ) SEGMENT CREATION IMMEDIATE 
971
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
972
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
973
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
974
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 975
--------------------------------------------------------
976
--  DDL for Table PACKAGES
977
--------------------------------------------------------
978
 
5172 dpurdie 979
  CREATE TABLE "RELEASE_MANAGER"."PACKAGES" 
4040 dpurdie 980
   (	"PKG_ID" NUMBER, 
5172 dpurdie 981
	"PKG_NAME" VARCHAR2(255 BYTE), 
982
	"SUNOS_ELECTRONIC_NAME" VARCHAR2(255 BYTE), 
983
	"WIN_ELECTRONIC_NAME" VARCHAR2(255 BYTE), 
984
	"DEFAULT_PEGGED" CHAR(1 BYTE), 
985
	"DEFAULT_ADVISORY_RIPPLE" CHAR(1 BYTE)
986
   ) SEGMENT CREATION IMMEDIATE 
987
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
988
  STORAGE(INITIAL 196608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
989
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
990
  TABLESPACE "RELEASEM_DATA" ;
991
 
992
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGES"."DEFAULT_PEGGED" IS 'Default pegged state for packages that are added to a release.';
993
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGES"."DEFAULT_ADVISORY_RIPPLE" IS 'Default advisiory ripple state for packages that are added to a release.';
4040 dpurdie 994
--------------------------------------------------------
995
--  DDL for Table PACKAGE_BUILD_ENV
996
--------------------------------------------------------
997
 
5172 dpurdie 998
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" 
4040 dpurdie 999
   (	"PV_ID" NUMBER, 
1000
	"BE_ID" NUMBER, 
1001
	"BUILD_TYPE" NUMBER
5172 dpurdie 1002
   ) SEGMENT CREATION IMMEDIATE 
1003
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1004
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1005
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1006
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1007
--------------------------------------------------------
1008
--  DDL for Table PACKAGE_BUILD_INFO
1009
--------------------------------------------------------
1010
 
5172 dpurdie 1011
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" 
4040 dpurdie 1012
   (	"PV_ID" NUMBER, 
1013
	"BM_ID" NUMBER, 
1014
	"BSA_ID" NUMBER
5172 dpurdie 1015
   ) SEGMENT CREATION IMMEDIATE 
1016
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1017
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1018
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1019
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1020
--------------------------------------------------------
1021
--  DDL for Table PACKAGE_DEPENDENCIES
1022
--------------------------------------------------------
1023
 
5172 dpurdie 1024
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" 
4040 dpurdie 1025
   (	"PV_ID" NUMBER, 
1026
	"DPV_ID" NUMBER, 
1027
	"PKG_ID" NUMBER, 
1028
	"DPKG_ID" NUMBER, 
5172 dpurdie 1029
	"BUILD_TYPE" CHAR(1 BYTE), 
4040 dpurdie 1030
	"DISPLAY_ORDER" NUMBER
5172 dpurdie 1031
   ) SEGMENT CREATION IMMEDIATE 
1032
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1033
  STORAGE(INITIAL 100663296 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1034
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1035
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1036
--------------------------------------------------------
1037
--  DDL for Table PACKAGE_DOCUMENTS
1038
--------------------------------------------------------
1039
 
5172 dpurdie 1040
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" 
4040 dpurdie 1041
   (	"PV_ID" NUMBER, 
1042
	"TEST_ID" NUMBER, 
1043
	"DOC_ID" NUMBER, 
5172 dpurdie 1044
	"DOC_NUM" VARCHAR2(50 BYTE), 
1045
	"IS_LATEST" CHAR(1 BYTE)
1046
   ) SEGMENT CREATION IMMEDIATE 
1047
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1048
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1049
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1050
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1051
--------------------------------------------------------
1052
--  DDL for Table PACKAGE_INTEREST
1053
--------------------------------------------------------
1054
 
5172 dpurdie 1055
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" 
4040 dpurdie 1056
   (	"PKG_ID" NUMBER, 
1057
	"PROJ_ID" NUMBER, 
1058
	"USER_ID" NUMBER
5172 dpurdie 1059
   ) SEGMENT CREATION IMMEDIATE 
1060
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1061
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1062
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1063
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1064
--------------------------------------------------------
1065
--  DDL for Table PACKAGE_METRICS
1066
--------------------------------------------------------
1067
 
5172 dpurdie 1068
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" 
4040 dpurdie 1069
   (	"PV_ID" NUMBER, 
1070
	"BRANCHES" NUMBER, 
5172 dpurdie 1071
	"BRANCH_LIST" VARCHAR2(4000 BYTE), 
4040 dpurdie 1072
	"CODE_FILES" NUMBER, 
1073
	"IGNORED_FILES" NUMBER, 
1074
	"DIRECTORIES" NUMBER, 
1075
	"DIRECTORY_DEPTH" NUMBER, 
1076
	"TOTAL_FILES" NUMBER, 
1077
	"MAKEFILES" NUMBER, 
1078
	"BLANK_LINES" NUMBER, 
1079
	"CODE_LINES" NUMBER, 
1080
	"COMMENT_LINES" NUMBER, 
1081
	"CREATED_STAMP" DATE
5172 dpurdie 1082
   ) SEGMENT CREATION IMMEDIATE 
1083
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1084
  STORAGE(INITIAL 12582912 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1085
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1086
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1087
--------------------------------------------------------
1088
--  DDL for Table PACKAGE_PATCHES
1089
--------------------------------------------------------
1090
 
5172 dpurdie 1091
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" 
4040 dpurdie 1092
   (	"PV_ID" NUMBER, 
1093
	"PATCH_ID" NUMBER, 
1094
	"INSTALL_ORDER" NUMBER, 
1095
	"PATCH_OBSOLETED_BY" NUMBER
5172 dpurdie 1096
   ) SEGMENT CREATION IMMEDIATE 
1097
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1098
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1099
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1100
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1101
--------------------------------------------------------
1102
--  DDL for Table PACKAGE_PROCESSES
1103
--------------------------------------------------------
1104
 
5172 dpurdie 1105
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" 
4040 dpurdie 1106
   (	"PV_ID" NUMBER, 
1107
	"PROC_ID" NUMBER
5172 dpurdie 1108
   ) SEGMENT CREATION IMMEDIATE 
1109
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1110
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1111
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1112
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1113
--------------------------------------------------------
1114
--  DDL for Table PACKAGE_VERSIONS
1115
--------------------------------------------------------
1116
 
5172 dpurdie 1117
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" 
4040 dpurdie 1118
   (	"PV_ID" NUMBER, 
1119
	"PKG_ID" NUMBER, 
5172 dpurdie 1120
	"PKG_VERSION" VARCHAR2(50 BYTE), 
1121
	"DLOCKED" CHAR(1 BYTE), 
4040 dpurdie 1122
	"RELEASED_AT" NUMBER, 
1123
	"MODIFIED_STAMP" DATE, 
1124
	"MODIFIER_ID" NUMBER, 
1125
	"CREATED_STAMP" DATE, 
1126
	"CREATOR_ID" NUMBER, 
5172 dpurdie 1127
	"COMMENTS" VARCHAR2(4000 BYTE), 
1128
	"V_MM" VARCHAR2(50 BYTE), 
1129
	"V_NMM" VARCHAR2(50 BYTE), 
1130
	"V_EXT" VARCHAR2(50 BYTE), 
1131
	"PKG_LABEL" VARCHAR2(60 BYTE), 
1132
	"SRC_PATH" VARCHAR2(2000 BYTE), 
1133
	"PV_DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1134
	"OWNER_ID" NUMBER, 
5172 dpurdie 1135
	"PV_OVERVIEW" VARCHAR2(4000 BYTE), 
1136
	"IS_PATCH" CHAR(1 BYTE), 
4040 dpurdie 1137
	"LAST_PV_ID" NUMBER, 
5172 dpurdie 1138
	"RELEASE_NOTES_INFO" VARCHAR2(1000 BYTE), 
1139
	"IS_DEPLOYABLE" CHAR(1 BYTE), 
1140
	"IS_BUILD_ENV_REQUIRED" CHAR(1 BYTE), 
1141
	"IS_OBSOLETE" CHAR(1 BYTE), 
1142
	"OBSOLETE_COMMENTS" VARCHAR2(4000 BYTE), 
1143
	"BUILD_TYPE" CHAR(1 BYTE), 
1144
	"CHANGE_TYPE" CHAR(1 BYTE), 
1145
	"LINK" VARCHAR2(4000 BYTE), 
1146
	"PATCH_ELECTRONIC_NAME" VARCHAR2(4000 BYTE), 
4040 dpurdie 1147
	"BS_ID" NUMBER, 
5172 dpurdie 1148
	"IS_AUTOBUILDABLE" CHAR(1 BYTE), 
1149
	"SBOM_PRIORITY" CHAR(1 BYTE), 
4040 dpurdie 1150
	"RIPPLE_FIELD" CHAR(1 CHAR), 
1151
	"MAXIMUM_BUILD_TIME" NUMBER, 
1152
	"ESTIMATED_COMPLETION_TIME" DATE, 
1153
	"MAJOR_LIMIT" NUMBER(10,0), 
1154
	"MINOR_LIMIT" NUMBER(10,0), 
1155
	"PATCH_LIMIT" NUMBER(10,0), 
1156
	"BUILD_NUMBER_LIMIT" NUMBER(10,0), 
1157
	"VCS_TYPE_ID" NUMBER
5172 dpurdie 1158
   ) SEGMENT CREATION IMMEDIATE 
1159
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1160
  STORAGE(INITIAL 134217728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1161
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1162
  TABLESPACE "RELEASEM_DATA" ;
1163
 
1164
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."RELEASED_AT" IS 'No longer used';
4040 dpurdie 1165
--------------------------------------------------------
1166
--  DDL for Table PEGGED_VERSIONS
1167
--------------------------------------------------------
1168
 
5172 dpurdie 1169
  CREATE TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" 
4040 dpurdie 1170
   (	"RTAG_ID" NUMBER, 
1171
	"PV_ID" NUMBER
5172 dpurdie 1172
   ) SEGMENT CREATION IMMEDIATE 
1173
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1174
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1175
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1176
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1177
--------------------------------------------------------
1178
--  DDL for Table PLANNED
1179
--------------------------------------------------------
1180
 
5172 dpurdie 1181
  CREATE TABLE "RELEASE_MANAGER"."PLANNED" 
4040 dpurdie 1182
   (	"RTAG_ID" NUMBER, 
1183
	"PV_ID" NUMBER, 
1184
	"VIEW_ID" NUMBER, 
5172 dpurdie 1185
	"OPERATION" CHAR(1 BYTE)
1186
   ) SEGMENT CREATION IMMEDIATE 
1187
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1188
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1189
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1190
  TABLESPACE "RELEASEM_DATA" ;
1191
 
1192
   COMMENT ON COLUMN "RELEASE_MANAGER"."PLANNED"."OPERATION" IS 'A: Add existing version.
1193
 
1194
S:Subtract existing Version. 
1195
 
1196
R:Add New Version';
1197
   COMMENT ON TABLE "RELEASE_MANAGER"."PLANNED"  IS 'This table contains WORK IN PROGRESS packages';
4040 dpurdie 1198
--------------------------------------------------------
1199
--  DDL for Table PLANNED_VERSIONS
1200
--------------------------------------------------------
1201
 
5172 dpurdie 1202
  CREATE TABLE "RELEASE_MANAGER"."PLANNED_VERSIONS" 
4040 dpurdie 1203
   (	"PKG_ID" NUMBER, 
5172 dpurdie 1204
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 1205
	"PLANNED_TIME" DATE
5172 dpurdie 1206
   ) SEGMENT CREATION IMMEDIATE 
1207
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1208
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1209
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1210
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1211
--------------------------------------------------------
1212
--  DDL for Table PLATFORMS
1213
--------------------------------------------------------
1214
 
5172 dpurdie 1215
  CREATE TABLE "RELEASE_MANAGER"."PLATFORMS" 
4040 dpurdie 1216
   (	"CODE" NUMBER, 
5172 dpurdie 1217
	"NAME" VARCHAR2(255 BYTE)
1218
   ) SEGMENT CREATION IMMEDIATE 
1219
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1220
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1221
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1222
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1223
--------------------------------------------------------
1224
--  DDL for Table PROCESSES
1225
--------------------------------------------------------
1226
 
5172 dpurdie 1227
  CREATE TABLE "RELEASE_MANAGER"."PROCESSES" 
4040 dpurdie 1228
   (	"PROC_ID" NUMBER, 
5172 dpurdie 1229
	"PROC_NAME" VARCHAR2(255 BYTE), 
1230
	"PROC_DESCRIPTION" VARCHAR2(255 BYTE), 
1231
	"RUN_AS" VARCHAR2(255 BYTE), 
1232
	"PKG_OWNER" VARCHAR2(4000 BYTE), 
1233
	"IS_INTERFACE" CHAR(1 BYTE)
1234
   ) SEGMENT CREATION IMMEDIATE 
1235
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1236
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1237
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1238
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1239
--------------------------------------------------------
1240
--  DDL for Table PRODUCT_COMPONENTS
1241
--------------------------------------------------------
1242
 
5172 dpurdie 1243
  CREATE TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" 
4040 dpurdie 1244
   (	"PV_ID" NUMBER, 
1245
	"OS_ID" NUMBER, 
5172 dpurdie 1246
	"FILE_PATH" VARCHAR2(4000 BYTE), 
1247
	"FILE_NAME" VARCHAR2(4000 BYTE), 
1248
	"DESTINATION_PATH" VARCHAR2(4000 BYTE), 
4040 dpurdie 1249
	"BYTE_SIZE" NUMBER, 
5172 dpurdie 1250
	"CRC_CKSUM" VARCHAR2(2000 BYTE)
1251
   ) SEGMENT CREATION IMMEDIATE 
1252
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1253
  STORAGE(INITIAL 31457280 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1254
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1255
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1256
--------------------------------------------------------
1257
--  DDL for Table PRODUCT_STATES
1258
--------------------------------------------------------
1259
 
5172 dpurdie 1260
  CREATE TABLE "RELEASE_MANAGER"."PRODUCT_STATES" 
4040 dpurdie 1261
   (	"STATE_ID" NUMBER, 
5172 dpurdie 1262
	"STATE" VARCHAR2(4000 BYTE)
1263
   ) SEGMENT CREATION IMMEDIATE 
1264
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1265
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1266
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1267
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1268
--------------------------------------------------------
1269
--  DDL for Table PROJECTS
1270
--------------------------------------------------------
1271
 
5172 dpurdie 1272
  CREATE TABLE "RELEASE_MANAGER"."PROJECTS" 
4040 dpurdie 1273
   (	"PROJ_ID" NUMBER, 
5172 dpurdie 1274
	"PROJ_NAME" VARCHAR2(50 BYTE), 
1275
	"BASE_URL" VARCHAR2(4000 BYTE), 
1276
	"JIRA_KEY" VARCHAR2(16 BYTE)
1277
   ) SEGMENT CREATION IMMEDIATE 
1278
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1279
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1280
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1281
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1282
--------------------------------------------------------
1283
--  DDL for Table PROJECT_ACTION_LOG
1284
--------------------------------------------------------
1285
 
5172 dpurdie 1286
  CREATE TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" 
4040 dpurdie 1287
   (	"USER_ID" NUMBER, 
1288
	"ACTION_DATETIME" DATE, 
1289
	"PROJ_ID" NUMBER, 
5172 dpurdie 1290
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1291
	"ACTTYPE_ID" NUMBER, 
1292
	"RTAG_ID" NUMBER
5172 dpurdie 1293
   ) SEGMENT CREATION IMMEDIATE 
1294
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1295
  STORAGE(INITIAL 851968 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1296
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1297
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1298
--------------------------------------------------------
1299
--  DDL for Table PROJECT_EXTENTIONS
1300
--------------------------------------------------------
1301
 
5172 dpurdie 1302
  CREATE TABLE "RELEASE_MANAGER"."PROJECT_EXTENTIONS" 
4040 dpurdie 1303
   (	"PROJ_ID" NUMBER, 
5172 dpurdie 1304
	"EXT_NAME" VARCHAR2(10 BYTE), 
1305
	"UCOMMENT" VARCHAR2(120 BYTE), 
1306
	"IS_VISIBLE" CHAR(1 BYTE) DEFAULT 'Y', 
1307
	"IS_COTS" CHAR(1 BYTE) DEFAULT 'N'
1308
   ) SEGMENT CREATION IMMEDIATE 
1309
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1310
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1311
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1312
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1313
--------------------------------------------------------
1314
--  DDL for Table RELEASE_COMPONENTS
1315
--------------------------------------------------------
1316
 
5172 dpurdie 1317
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" 
4040 dpurdie 1318
   (	"PV_ID" NUMBER, 
5172 dpurdie 1319
	"FILE_NAME" VARCHAR2(255 BYTE), 
1320
	"FILE_PATH" VARCHAR2(2000 BYTE), 
4040 dpurdie 1321
	"BYTE_SIZE" NUMBER, 
5172 dpurdie 1322
	"CRC_CKSUM" VARCHAR2(50 BYTE), 
1323
	"CRC_MODCRC" VARCHAR2(50 BYTE)
1324
   ) SEGMENT CREATION IMMEDIATE 
1325
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1326
  STORAGE(INITIAL 2828009472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1327
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1328
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1329
--------------------------------------------------------
1330
--  DDL for Table RELEASE_CONFIG
1331
--------------------------------------------------------
1332
 
5172 dpurdie 1333
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" 
4040 dpurdie 1334
   (	"RCON_ID" NUMBER, 
1335
	"RTAG_ID" NUMBER, 
1336
	"GBE_ID" NUMBER, 
5172 dpurdie 1337
	"DAEMON_HOSTNAME" VARCHAR2(50 BYTE), 
4040 dpurdie 1338
	"DAEMON_MODE" CHAR(1 CHAR), 
5172 dpurdie 1339
	"GBE_BUILDFILTER" VARCHAR2(255 BYTE), 
4308 dpurdie 1340
	"BMCON_ID" NUMBER
5172 dpurdie 1341
   ) SEGMENT CREATION IMMEDIATE 
1342
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1343
  STORAGE(INITIAL 196608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1344
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1345
  TABLESPACE "RELEASEM_DATA" ;
4308 dpurdie 1346
 
5172 dpurdie 1347
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."GBE_ID" IS 'Do not use. Data should come from build_machine_config';
1348
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."DAEMON_HOSTNAME" IS 'Do not use. Data should come from build_machine_config';
1349
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."BMCON_ID" IS 'Link to the build_machine_config table';
4040 dpurdie 1350
--------------------------------------------------------
1351
--  DDL for Table RELEASE_CONTENT
1352
--------------------------------------------------------
1353
 
5172 dpurdie 1354
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" 
4040 dpurdie 1355
   (	"RTAG_ID" NUMBER, 
1356
	"PV_ID" NUMBER, 
1357
	"BASE_VIEW_ID" NUMBER, 
1358
	"INSERT_STAMP" DATE, 
1359
	"INSERTOR_ID" NUMBER, 
1360
	"PKG_STATE" NUMBER, 
1361
	"PKG_ID" NUMBER, 
1362
	"DEPRECATED_STATE" NUMBER, 
5172 dpurdie 1363
	"PRODUCT_STATE" NUMBER, 
1364
	"SDKTAG_ID" NUMBER
1365
   ) SEGMENT CREATION IMMEDIATE 
1366
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1367
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1368
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1369
  TABLESPACE "RELEASEM_DATA" ;
1370
 
1371
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."PKG_ID" IS 'Package that has been deprecated';
1372
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."DEPRECATED_STATE" IS '6: Deprecated Package, 7: Deprecated Dependent';
1373
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."SDKTAG_ID" IS 'Pkg imported via SDK';
4040 dpurdie 1374
--------------------------------------------------------
1375
--  DDL for Table RELEASE_LINKS
1376
--------------------------------------------------------
1377
 
5172 dpurdie 1378
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_LINKS" 
4040 dpurdie 1379
   (	"RTAG_ID" NUMBER, 
1380
	"REF_RTAG_ID" NUMBER
5172 dpurdie 1381
   ) SEGMENT CREATION IMMEDIATE 
1382
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1383
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1384
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1385
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1386
--------------------------------------------------------
1387
--  DDL for Table RELEASE_METRICS
1388
--------------------------------------------------------
1389
 
5172 dpurdie 1390
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_METRICS" 
4040 dpurdie 1391
   (	"RTAG_ID" NUMBER, 
1392
	"TOTAL_PACKAGES" NUMBER, 
1393
	"AUTOBUILT" NUMBER, 
1394
	"LINES_OF_CODE" NUMBER, 
1395
	"UNIT_TESTED" NUMBER, 
1396
	"AUTOTESTED" NUMBER, 
1397
	"BRANCHES" NUMBER, 
1398
	"LAST_BUILD_TIME" DATE
5172 dpurdie 1399
   ) SEGMENT CREATION IMMEDIATE 
1400
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1401
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1402
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1403
  TABLESPACE "RELEASEM_DATA" ;
1404
--------------------------------------------------------
1405
--  DDL for Table RELEASE_MODIFIED
1406
--------------------------------------------------------
1407
 
1408
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" 
1409
   (	"RTAG_ID" NUMBER, 
1410
	"TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP, 
1411
	"SEQNUM" NUMBER
1412
   ) SEGMENT CREATION IMMEDIATE 
1413
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1414
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1415
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1416
  TABLESPACE "RELEASEM_DATA" ;
1417
 
1418
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."RTAG_ID" IS 'Link to Release';
1419
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."TIMESTAMP" IS 'Time of the modification';
1420
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."SEQNUM" IS 'Unique number indicating change';
1421
   COMMENT ON TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED"  IS 'This table conatins a single entry for each RELEASE_TAG.
1422
It is used by the build system to help detect changes to the content of a Release.
1423
A stored proceedure simplifies the use of this table: PK_RELEASE.SET_RELEASE_MODIFIED
1424
 
1425
This should be called whenever the package_versions in the release have changed in such
1426
a manner that the build daemons should examine the release. This includes:
1427
 - Packages added and removed
1428
 - Packages build status changed (re-included in the release )
1429
 - Packages made Pending Build';
4040 dpurdie 1430
--------------------------------------------------------
1431
--  DDL for Table RELEASE_TAGS
1432
--------------------------------------------------------
1433
 
5172 dpurdie 1434
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_TAGS" 
4040 dpurdie 1435
   (	"RTAG_ID" NUMBER, 
1436
	"VTREE_ID" NUMBER, 
5172 dpurdie 1437
	"RTAG_NAME" VARCHAR2(50 BYTE), 
1438
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1439
	"CREATED_STAMP" DATE, 
1440
	"CREATOR_ID" NUMBER, 
1441
	"OFFICIAL_STAMP" DATE, 
1442
	"RELEASOR_ID" NUMBER, 
5172 dpurdie 1443
	"OFFICIAL" CHAR(1 BYTE), 
1444
	"REBUILD_ENV" CHAR(1 BYTE), 
4040 dpurdie 1445
	"REBUILD_STAMP" NUMBER, 
5172 dpurdie 1446
	"RTAG_VERSION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1447
	"RTAG_LIFE_CYCLE" NUMBER, 
1448
	"PARENT_RTAG_ID" NUMBER, 
1449
	"PROJ_ID" NUMBER, 
1450
	"DISPLAY_ORDER" NUMBER, 
5172 dpurdie 1451
	"OWNER_EMAIL" VARCHAR2(1000 BYTE), 
4040 dpurdie 1452
	"ASSOC_MASS_REF" NUMBER, 
5172 dpurdie 1453
	"OWNER_PERSONAL_EMAIL" VARCHAR2(1000 BYTE), 
1454
	"CONFIG_SPEC_BRANCH" VARCHAR2(4000 BYTE), 
1455
	"PRODUCT_STATE_USED" CHAR(1 BYTE), 
1456
	"OFFICIAL_ID" NUMBER, 
1457
	"BUILD_AGE" NUMBER DEFAULT 31
1458
   ) SEGMENT CREATION IMMEDIATE 
1459
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1460
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1461
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1462
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1463
 
5172 dpurdie 1464
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."BUILD_AGE" IS 'Days without building before warning is shown';
4040 dpurdie 1465
--------------------------------------------------------
1466
--  DDL for Table RIPPLE_FIELD_STATES
1467
--------------------------------------------------------
1468
 
5172 dpurdie 1469
  CREATE TABLE "RELEASE_MANAGER"."RIPPLE_FIELD_STATES" 
4040 dpurdie 1470
   (	"STATE_ID" NUMBER, 
5172 dpurdie 1471
	"STATE_ACRONYM" CHAR(1 BYTE), 
1472
	"STATE_NAME" VARCHAR2(50 BYTE)
1473
   ) SEGMENT CREATION IMMEDIATE 
1474
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1475
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1476
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1477
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1478
--------------------------------------------------------
1479
--  DDL for Table RM_PACKAGE_ISSUES
1480
--------------------------------------------------------
1481
 
5172 dpurdie 1482
  CREATE TABLE "RELEASE_MANAGER"."RM_PACKAGE_ISSUES" 
4040 dpurdie 1483
   (	"PKG_ID" NUMBER, 
5172 dpurdie 1484
	"PKG_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 1485
	"PV_ID" NUMBER, 
5172 dpurdie 1486
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 1487
	"DPV_ID" NUMBER, 
5172 dpurdie 1488
	"DPKG_NAME" VARCHAR2(50 BYTE), 
1489
	"DPKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 1490
	"ISS_DB" NUMBER, 
1491
	"ISS_ID" NUMBER
5172 dpurdie 1492
   ) SEGMENT CREATION IMMEDIATE 
1493
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1494
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1495
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1496
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1497
--------------------------------------------------------
1498
--  DDL for Table RM_PKG_ISSUES
1499
--------------------------------------------------------
1500
 
5172 dpurdie 1501
  CREATE GLOBAL TEMPORARY TABLE "RELEASE_MANAGER"."RM_PKG_ISSUES" 
4040 dpurdie 1502
   (	"PKG_ID" NUMBER, 
5172 dpurdie 1503
	"PKG_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 1504
	"PV_ID" NUMBER, 
5172 dpurdie 1505
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 1506
	"DPV_ID" NUMBER, 
5172 dpurdie 1507
	"DPKG_NAME" VARCHAR2(50 BYTE), 
1508
	"DPKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 1509
	"ISS_DB" NUMBER, 
1510
	"ISS_ID" NUMBER
1511
   ) ON COMMIT PRESERVE ROWS ;
1512
--------------------------------------------------------
1513
--  DDL for Table RUNTIME_DEPENDENCIES
1514
--------------------------------------------------------
1515
 
5172 dpurdie 1516
  CREATE TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" 
4040 dpurdie 1517
   (	"PV_ID" NUMBER, 
1518
	"RTD_ID" NUMBER, 
5172 dpurdie 1519
	"RTD_COMMENTS" VARCHAR2(2000 BYTE), 
1520
	"RTD_URL" VARCHAR2(2000 BYTE), 
4040 dpurdie 1521
	"MOD_DATE" DATE, 
1522
	"MOD_USER" NUMBER
5172 dpurdie 1523
   ) SEGMENT CREATION IMMEDIATE 
1524
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1525
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1526
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1527
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1528
--------------------------------------------------------
1529
--  DDL for Table RUN_LEVEL
1530
--------------------------------------------------------
1531
 
5172 dpurdie 1532
  CREATE TABLE "RELEASE_MANAGER"."RUN_LEVEL" 
4040 dpurdie 1533
   (	"RCON_ID" NUMBER, 
1534
	"CURRENT_BUILD_FILES" CLOB, 
1535
	"CURRENT_RUN_LEVEL" NUMBER, 
1536
	"PAUSE" NUMBER, 
1537
	"CURRENT_PKG_ID_BEING_BUILT" NUMBER, 
4553 dpurdie 1538
	"KEEP_ALIVE" DATE, 
1539
	"CURRENT_PV_ID" NUMBER, 
1540
	"LAST_BUILD" DATE DEFAULT sysdate
5172 dpurdie 1541
   ) SEGMENT CREATION IMMEDIATE 
1542
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1543
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1544
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1545
  TABLESPACE "RELEASEM_DATA" 
1546
 LOB ("CURRENT_BUILD_FILES") STORE AS BASICFILE (
1547
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
1548
  NOCACHE LOGGING 
1549
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1550
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
4553 dpurdie 1551
 
5172 dpurdie 1552
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."RCON_ID" IS 'Link to the Release_config table';
1553
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_BUILD_FILES" IS 'The current build file. Set by the Master, consumed by the Slaves.';
1554
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_RUN_LEVEL" IS 'Daemon indiactes its current state';
1555
   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';
1556
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_PKG_ID_BEING_BUILT" IS 'pkg_id of the package currently being built';
1557
   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.';
1558
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_PV_ID" IS 'The PV_ID of the package currently being built.';
1559
   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 1560
--------------------------------------------------------
1561
--  DDL for Table RUN_LEVEL_SCHEDULE
1562
--------------------------------------------------------
1563
 
5172 dpurdie 1564
  CREATE TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" 
4040 dpurdie 1565
   (	"SCHEDULED_ID" NUMBER, 
1566
	"SCHEDULED_PAUSE" DATE, 
1567
	"SCHEDULED_RESUME" DATE, 
5172 dpurdie 1568
	"REPEAT" CHAR(1 BYTE), 
1569
	"INDEFINITE_PAUSE" CHAR(1 BYTE)
1570
   ) SEGMENT CREATION IMMEDIATE 
1571
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1572
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1573
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1574
  TABLESPACE "RELEASEM_DATA" ;
1575
 
1576
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_ID" IS 'Unique entry identifier';
1577
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_PAUSE" IS 'Start DateTime of the outage';
1578
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_RESUME" IS 'End DateTime of the outage';
1579
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."REPEAT" IS '0:Once, 1:Daily, 7:Weekly';
1580
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."INDEFINITE_PAUSE" IS 'Non Null indicates indefinite pause';
1581
--------------------------------------------------------
1582
--  DDL for Table SDK_CONTENT
1583
--------------------------------------------------------
1584
 
1585
  CREATE TABLE "RELEASE_MANAGER"."SDK_CONTENT" 
1586
   (	"SDKTAG_ID" NUMBER, 
1587
	"PV_ID" NUMBER, 
1588
	"SDKPKG_STATE" CHAR(1 BYTE) DEFAULT '-'
1589
   ) SEGMENT CREATION IMMEDIATE 
1590
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1591
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1592
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1593
  TABLESPACE "RELEASEM_DATA" ;
1594
 
1595
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."SDKTAG_ID" IS 'Ref to SDK TAG';
1596
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."PV_ID" IS 'Ref to Package Versions';
1597
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."SDKPKG_STATE" IS 'Package State: -:Not exposed, E:Exposed';
1598
--------------------------------------------------------
1599
--  DDL for Table SDK_NAMES
1600
--------------------------------------------------------
1601
 
1602
  CREATE TABLE "RELEASE_MANAGER"."SDK_NAMES" 
1603
   (	"SDK_ID" NUMBER, 
1604
	"SDK_NAME" VARCHAR2(50 BYTE), 
1605
	"SDK_COMMENT" VARCHAR2(4000 BYTE), 
1606
	"VIEW_ID" NUMBER, 
1607
	"PROJ_ID" NUMBER
1608
   ) SEGMENT CREATION IMMEDIATE 
1609
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1610
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1611
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1612
  TABLESPACE "RELEASEM_DATA" ;
1613
 
1614
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_ID" IS 'Auto Created when row is created';
1615
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_NAME" IS 'Name of the SDK';
1616
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_COMMENT" IS 'User comment';
1617
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."VIEW_ID" IS 'Base View for display';
1618
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."PROJ_ID" IS 'Project ID for Security context';
1619
--------------------------------------------------------
1620
--  DDL for Table SDK_TAGS
1621
--------------------------------------------------------
1622
 
1623
  CREATE TABLE "RELEASE_MANAGER"."SDK_TAGS" 
1624
   (	"SDKTAG_ID" NUMBER, 
1625
	"SDKTAG_NAME" VARCHAR2(50 BYTE), 
1626
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
1627
	"SDK_ID" NUMBER, 
1628
	"RTAG_ID" NUMBER, 
1629
	"CREATED_STAMP" TIMESTAMP (6) DEFAULT SYSTIMESTAMP, 
1630
	"CREATOR_ID" NUMBER, 
1631
	"STATE_STAMP" TIMESTAMP (6) DEFAULT SYSTIMESTAMP, 
1632
	"STATE_ID" NUMBER, 
1633
	"SDK_STATE" CHAR(1 BYTE) DEFAULT 'U'
1634
   ) SEGMENT CREATION IMMEDIATE 
1635
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1636
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1637
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1638
  TABLESPACE "RELEASEM_DATA" ;
1639
 
1640
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDKTAG_ID" IS 'Unique ID. Created automatically';
1641
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDKTAG_NAME" IS 'Name of the SDK Version';
1642
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."DESCRIPTION" IS 'General description';
1643
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDK_ID" IS 'Parent SDK';
1644
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."RTAG_ID" IS 'Release within which this SDK is maintained';
1645
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."CREATED_STAMP" IS 'When created';
1646
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."CREATOR_ID" IS 'Who Created the version';
1647
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."STATE_STAMP" IS 'Time of last change to this version';
1648
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."STATE_ID" IS 'User id who made the last state change';
1649
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDK_STATE" IS 'State: U-Under Development; R-Released; D-Deprecated';
4040 dpurdie 1650
--------------------------------------------------------
1651
--  DDL for Table TEMP_ENV_STATES
1652
--------------------------------------------------------
1653
 
5172 dpurdie 1654
  CREATE TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" 
4040 dpurdie 1655
   (	"SESSION_NUM" NUMBER, 
1656
	"LEVEL_NUM" NUMBER, 
1657
	"PV_ID" NUMBER, 
1658
	"PKG_ID" NUMBER, 
5172 dpurdie 1659
	"V_EXT" VARCHAR2(50 BYTE), 
4040 dpurdie 1660
	"TES_STATE" NUMBER
5172 dpurdie 1661
   ) SEGMENT CREATION IMMEDIATE 
1662
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1663
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1664
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1665
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1666
--------------------------------------------------------
1667
--  DDL for Table TEMP_SASH
1668
--------------------------------------------------------
1669
 
5172 dpurdie 1670
  CREATE TABLE "RELEASE_MANAGER"."TEMP_SASH" 
4040 dpurdie 1671
   (	"RTAG_ID" NUMBER, 
1672
	"PROJ_ID" NUMBER
5172 dpurdie 1673
   ) SEGMENT CREATION IMMEDIATE 
1674
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1675
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1676
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1677
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1678
--------------------------------------------------------
1679
--  DDL for Table TEMP_TREE_BROWSE
1680
--------------------------------------------------------
1681
 
5172 dpurdie 1682
  CREATE TABLE "RELEASE_MANAGER"."TEMP_TREE_BROWSE" 
4040 dpurdie 1683
   (	"SESSION_NUM" NUMBER, 
1684
	"LEVEL_NUM" NUMBER, 
1685
	"PV_ID" NUMBER, 
1686
	"PKG_ID" NUMBER, 
5172 dpurdie 1687
	"V_EXT" VARCHAR2(50 BYTE), 
4040 dpurdie 1688
	"DIRECTION" NUMBER
5172 dpurdie 1689
   ) SEGMENT CREATION IMMEDIATE 
1690
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1691
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1692
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1693
  TABLESPACE "RELEASEM_DATA" ;
1694
--------------------------------------------------------
1695
--  DDL for Table TEST_RUN
1696
--------------------------------------------------------
1697
 
1698
  CREATE TABLE "RELEASE_MANAGER"."TEST_RUN" 
1699
   (	"BUILD_ID" NUMBER, 
1700
	"PLATFORM" VARCHAR2(50 BYTE), 
1701
	"TYPE" VARCHAR2(1 BYTE), 
1702
	"TEST_NAME" VARCHAR2(150 BYTE), 
1703
	"TEST_OUTCOME" VARCHAR2(20 BYTE), 
1704
	"TIME_TAKEN" NUMBER, 
1705
	"FAIL_MESSAGE" CLOB
1706
   ) SEGMENT CREATION IMMEDIATE 
1707
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1708
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1709
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1710
  TABLESPACE "RELEASEM_DATA" 
1711
 LOB ("FAIL_MESSAGE") STORE AS BASICFILE (
1712
  TABLESPACE "RELEASEM_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
1713
  NOCACHE LOGGING 
1714
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1715
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
1716
 
1717
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."PLATFORM" IS 'Target Platform';
1718
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TYPE" IS 'P or D';
1719
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TEST_OUTCOME" IS 'PASS/FAIL/SKIP';
1720
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TIME_TAKEN" IS 'Test Duration in milliseconds';
1721
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."FAIL_MESSAGE" IS 'Failure Message';
4040 dpurdie 1722
--------------------------------------------------------
1723
--  DDL for Table TEST_TYPES
1724
--------------------------------------------------------
1725
 
5172 dpurdie 1726
  CREATE TABLE "RELEASE_MANAGER"."TEST_TYPES" 
4040 dpurdie 1727
   (	"TEST_TYPE_ID" NUMBER, 
5172 dpurdie 1728
	"TEST_TYPE_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 1729
	"DISPLAY_ORDER" NUMBER
5172 dpurdie 1730
   ) SEGMENT CREATION IMMEDIATE 
1731
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1732
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1733
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1734
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1735
--------------------------------------------------------
1736
--  DDL for Table UNIT_TESTS
1737
--------------------------------------------------------
1738
 
5172 dpurdie 1739
  CREATE TABLE "RELEASE_MANAGER"."UNIT_TESTS" 
4040 dpurdie 1740
   (	"TEST_ID" NUMBER, 
1741
	"PV_ID" NUMBER, 
1742
	"TEST_TYPES_FK" NUMBER, 
5172 dpurdie 1743
	"TEST_SUMMARY" VARCHAR2(4000 BYTE), 
4040 dpurdie 1744
	"COMPLETION_DATE" DATE, 
1745
	"COMPLETED_BY" NUMBER, 
5172 dpurdie 1746
	"RESULTS_URL" VARCHAR2(2000 BYTE), 
1747
	"RESULTS_ATTACHMENT_NAME" VARCHAR2(2000 BYTE), 
1748
	"TEST_ACCEPTED" CHAR(1 BYTE), 
4040 dpurdie 1749
	"ACCEPTANCE_DATE" DATE, 
1750
	"ACCEPTED_BY" NUMBER, 
5172 dpurdie 1751
	"REVIEW_COMMENTS" VARCHAR2(4000 BYTE), 
1752
	"NUMOF_TEST" VARCHAR2(50 BYTE)
1753
   ) SEGMENT CREATION IMMEDIATE 
1754
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1755
  STORAGE(INITIAL 31457280 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1756
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1757
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1758
--------------------------------------------------------
1759
--  DDL for Table VALIDATION_RULES
1760
--------------------------------------------------------
1761
 
5172 dpurdie 1762
  CREATE TABLE "RELEASE_MANAGER"."VALIDATION_RULES" 
1763
   (	"FIELD_NAME" VARCHAR2(1000 BYTE), 
1764
	"IS_REQUIRED" CHAR(1 BYTE), 
1765
	"IS_NUMERIC" CHAR(1 BYTE), 
4040 dpurdie 1766
	"MIN_NUMERIC_VALUE" NUMBER, 
1767
	"MAX_NUMERIC_VALUE" NUMBER, 
5172 dpurdie 1768
	"IS_DATE" CHAR(1 BYTE), 
4040 dpurdie 1769
	"START_DATE" DATE, 
1770
	"END_DATE" DATE, 
1771
	"MIN_STRING_LENGTH" NUMBER, 
1772
	"MAX_STRING_LENGTH" NUMBER, 
5172 dpurdie 1773
	"REGEXP" VARCHAR2(4000 BYTE), 
1774
	"REGEXP_DESCRIPTION" VARCHAR2(50 BYTE)
1775
   ) SEGMENT CREATION IMMEDIATE 
1776
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1777
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1778
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1779
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1780
--------------------------------------------------------
1781
--  DDL for Table VCS_TYPE
1782
--------------------------------------------------------
1783
 
5172 dpurdie 1784
  CREATE TABLE "RELEASE_MANAGER"."VCS_TYPE" 
4040 dpurdie 1785
   (	"VCS_TYPE_ID" NUMBER, 
5172 dpurdie 1786
	"NAME" VARCHAR2(128 BYTE), 
1787
	"TAG" VARCHAR2(32 BYTE)
1788
   ) SEGMENT CREATION IMMEDIATE 
1789
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1790
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1791
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1792
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1793
--------------------------------------------------------
1794
--  DDL for Table VIEWS
1795
--------------------------------------------------------
1796
 
5172 dpurdie 1797
  CREATE TABLE "RELEASE_MANAGER"."VIEWS" 
4040 dpurdie 1798
   (	"VIEW_ID" NUMBER, 
5172 dpurdie 1799
	"VIEW_NAME" VARCHAR2(30 BYTE), 
4040 dpurdie 1800
	"OWNER_ID" NUMBER, 
5172 dpurdie 1801
	"BASE_VIEW" CHAR(1 BYTE), 
1802
	"PUBLIC_READ" CHAR(1 BYTE)
1803
   ) SEGMENT CREATION IMMEDIATE 
1804
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1805
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1806
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1807
  TABLESPACE "RELEASEM_DATA" ;
1808
 
1809
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEWS"."OWNER_ID" IS '0:Public';
1810
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEWS"."BASE_VIEW" IS 'Y:Base View';
4040 dpurdie 1811
--------------------------------------------------------
1812
--  DDL for Table VIEW_DEF
1813
--------------------------------------------------------
1814
 
5172 dpurdie 1815
  CREATE TABLE "RELEASE_MANAGER"."VIEW_DEF" 
4040 dpurdie 1816
   (	"VIEW_ID" NUMBER, 
1817
	"PKG_ID" NUMBER
5172 dpurdie 1818
   ) SEGMENT CREATION IMMEDIATE 
1819
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1820
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1821
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1822
  TABLESPACE "RELEASEM_DATA" ;
1823
 
1824
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEW_DEF"."VIEW_ID" IS 'Non Base View ID';
1825
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEW_DEF"."PKG_ID" IS 'Package ID';
1826
   COMMENT ON TABLE "RELEASE_MANAGER"."VIEW_DEF"  IS 'Packages in a non-baseview';
4040 dpurdie 1827
--------------------------------------------------------
1828
--  DDL for Table VIEW_SETTINGS
1829
--------------------------------------------------------
1830
 
5172 dpurdie 1831
  CREATE TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" 
4040 dpurdie 1832
   (	"USER_ID" NUMBER, 
1833
	"VIEW_ID" NUMBER
5172 dpurdie 1834
   ) SEGMENT CREATION IMMEDIATE 
1835
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1836
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1837
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1838
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1839
--------------------------------------------------------
1840
--  DDL for Table VTREES
1841
--------------------------------------------------------
1842
 
5172 dpurdie 1843
  CREATE TABLE "RELEASE_MANAGER"."VTREES" 
4040 dpurdie 1844
   (	"VTREE_ID" NUMBER, 
1845
	"PROJ_ID" NUMBER, 
5172 dpurdie 1846
	"VTREE_NAME" VARCHAR2(50 BYTE), 
1847
	"HIDE" CHAR(1 BYTE)
1848
   ) SEGMENT CREATION IMMEDIATE 
1849
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1850
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1851
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1852
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1853
--------------------------------------------------------
1854
--  DDL for Table VTREES_WORLD
1855
--------------------------------------------------------
1856
 
5172 dpurdie 1857
  CREATE TABLE "RELEASE_MANAGER"."VTREES_WORLD" 
4040 dpurdie 1858
   (	"WORLD_ID" NUMBER, 
1859
	"VTREE_ID" NUMBER
5172 dpurdie 1860
   ) SEGMENT CREATION IMMEDIATE 
1861
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1862
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1863
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1864
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1865
--------------------------------------------------------
1866
--  DDL for Table WORK_IN_PROGRESS
1867
--------------------------------------------------------
1868
 
5172 dpurdie 1869
  CREATE TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" 
4040 dpurdie 1870
   (	"RTAG_ID" NUMBER, 
1871
	"PV_ID" NUMBER, 
1872
	"VIEW_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" ;
4040 dpurdie 1878
--------------------------------------------------------
1879
--  DDL for Table WORLDS
1880
--------------------------------------------------------
1881
 
5172 dpurdie 1882
  CREATE TABLE "RELEASE_MANAGER"."WORLDS" 
4040 dpurdie 1883
   (	"WORLD_ID" NUMBER, 
5172 dpurdie 1884
	"WORLD_NAME" VARCHAR2(30 BYTE), 
1885
	"WORLD_DESC" VARCHAR2(255 BYTE)
1886
   ) SEGMENT CREATION IMMEDIATE 
1887
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
1888
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1889
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1890
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1891
--------------------------------------------------------
1892
--  DDL for View ENVIRONMENT_VIEW
1893
--------------------------------------------------------
1894
 
5172 dpurdie 1895
  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 1896
  SELECT 2 AS ENV_AREA,
1897
    rc.PV_ID,
1898
    rc.RTAG_ID,
1899
    rc.BASE_VIEW_ID AS VIEW_ID,
1900
    rc.PKG_STATE,
1901
 rc.DEPRECATED_STATE,
1902
    rc.INSERTOR_ID,
1903
    rc.INSERT_STAMP,
1904
    ' ' AS OPERATION
1905
  FROM RELEASE_CONTENT rc
1906
UNION
1907
SELECT 0 AS ENV_AREA,
1908
    wip.PV_ID,
1909
    wip.RTAG_ID,
1910
    wip.VIEW_ID,
1911
    NULL AS PKG_STATE,
1912
 NULL AS DEPRECATED_STATE,
1913
    NULL AS INSERTOR_ID,
1914
    NULL AS INSERT_STAMP,
1915
    ' ' AS OPERATION
1916
  FROM WORK_IN_PROGRESS wip
1917
UNION
1918
SELECT 1 AS ENV_AREA,
1919
    pl.PV_ID,
1920
    pl.RTAG_ID,
1921
    pl.VIEW_ID,
1922
    NULL AS PKG_STATE,
1923
 NULL AS DEPRECATED_STATE,
1924
    NULL AS INSERTOR_ID,
1925
    NULL AS INSERT_STAMP,
1926
    pl.operation
1927
FROM PLANNED pl;
1928
--------------------------------------------------------
1929
--  DDL for View RM_PKG_ISSUES_ID
1930
--------------------------------------------------------
1931
 
5172 dpurdie 1932
  CREATE OR REPLACE FORCE VIEW "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" ("ISS_ID", "PKG_VERSION") AS 
4040 dpurdie 1933
  SELECT DISTINCT ISS_ID, PKG_VERSION FROM RM_PACKAGE_ISSUES WHERE ISS_ID IS NOT NULL
1934
 
1935
;
1936
--------------------------------------------------------
4211 dpurdie 1937
--  DDL for Index PK_LICENCES
4040 dpurdie 1938
--------------------------------------------------------
1939
 
5172 dpurdie 1940
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_LICENCES" ON "RELEASE_MANAGER"."LICENCES" ("LICENCE") 
1941
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
1942
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1943
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1944
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 1945
--------------------------------------------------------
4211 dpurdie 1946
--  DDL for Index UNQ_PKG_BUILD_ENV
4040 dpurdie 1947
--------------------------------------------------------
1948
 
5172 dpurdie 1949
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PKG_BUILD_ENV" ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ("PV_ID", "BE_ID") 
1950
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
1951
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1952
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1953
  TABLESPACE "RELEASEM_INDX" ;
1954
--------------------------------------------------------
1955
--  DDL for Index SDK_NAMES_UK1
1956
--------------------------------------------------------
1957
 
1958
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_NAMES_UK1" ON "RELEASE_MANAGER"."SDK_NAMES" ("SDK_NAME") 
1959
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
1960
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1961
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1962
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1963
--------------------------------------------------------
4211 dpurdie 1964
--  DDL for Index UNQ_PACKAGES
4040 dpurdie 1965
--------------------------------------------------------
1966
 
5172 dpurdie 1967
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGES" ON "RELEASE_MANAGER"."PACKAGES" ("PKG_NAME") 
1968
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
1969
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1970
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1971
  TABLESPACE "RELEASEM_INDX" ;
1972
--------------------------------------------------------
1973
--  DDL for Index INX_PACKAGES_ALIAS
1974
--------------------------------------------------------
1975
 
1976
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_ALIAS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID", "V_EXT") 
1977
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
1978
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1979
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1980
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 1981
--------------------------------------------------------
1982
--  DDL for Index CODE_REVIEW_URL_PK
1983
--------------------------------------------------------
1984
 
5172 dpurdie 1985
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CODE_REVIEW_URL_PK" ON "RELEASE_MANAGER"."CODE_REVIEW_URL" ("CR_ID") 
1986
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
1987
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1988
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1989
  TABLESPACE "RELEASEM_INDX" ;
1990
--------------------------------------------------------
1991
--  DDL for Index SDK_NAMES_PK
1992
--------------------------------------------------------
1993
 
1994
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_NAMES_PK" ON "RELEASE_MANAGER"."SDK_NAMES" ("SDK_ID") 
1995
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
1996
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
1997
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1998
  TABLESPACE "RELEASEM_DATA" ;
1999
--------------------------------------------------------
2000
--  DDL for Index INX_ACTION_TIMESTAMP
2001
--------------------------------------------------------
2002
 
2003
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_TIMESTAMP" ON "RELEASE_MANAGER"."ACTION_LOG" ("ACTION_TIMESTAMP") 
2004
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2005
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2006
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2007
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 2008
--------------------------------------------------------
4211 dpurdie 2009
--  DDL for Index INX_UT_COMPLETED
4040 dpurdie 2010
--------------------------------------------------------
2011
 
5172 dpurdie 2012
  CREATE INDEX "RELEASE_MANAGER"."INX_UT_COMPLETED" ON "RELEASE_MANAGER"."UNIT_TESTS" ("COMPLETION_DATE", "COMPLETED_BY") 
2013
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2014
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2015
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2016
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2017
--------------------------------------------------------
4308 dpurdie 2018
--  DDL for Index INX_PV_ID_PKGDOC
2019
--------------------------------------------------------
4040 dpurdie 2020
 
5172 dpurdie 2021
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_ID_PKGDOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID") 
2022
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2023
  STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2024
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2025
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2026
--------------------------------------------------------
2027
--  DDL for Index UNQ_VIEW_SETTINGS
2028
--------------------------------------------------------
4040 dpurdie 2029
 
5172 dpurdie 2030
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEW_SETTINGS" ON "RELEASE_MANAGER"."VIEW_SETTINGS" ("USER_ID", "VIEW_ID") 
2031
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2032
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2033
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2034
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2035
--------------------------------------------------------
2036
--  DDL for Index INX_PP_PV_ID
2037
--------------------------------------------------------
4040 dpurdie 2038
 
5172 dpurdie 2039
  CREATE INDEX "RELEASE_MANAGER"."INX_PP_PV_ID" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PV_ID") 
2040
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2041
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2042
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2043
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2044
--------------------------------------------------------
2045
--  DDL for Index PK_VIEWS
2046
--------------------------------------------------------
4040 dpurdie 2047
 
5172 dpurdie 2048
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_VIEWS" ON "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") 
2049
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2050
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2051
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2052
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2053
--------------------------------------------------------
2054
--  DDL for Index PK_PACKAGES
2055
--------------------------------------------------------
4040 dpurdie 2056
 
5172 dpurdie 2057
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PACKAGES" ON "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") 
2058
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2059
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2060
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2061
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2062
--------------------------------------------------------
2063
--  DDL for Index PK_TEST_TYPES
2064
--------------------------------------------------------
4040 dpurdie 2065
 
5172 dpurdie 2066
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_TEST_TYPES" ON "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_ID") 
2067
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2068
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2069
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2070
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2071
--------------------------------------------------------
2072
--  DDL for Index UNQ_ACTTYPE_ID
2073
--------------------------------------------------------
4040 dpurdie 2074
 
5172 dpurdie 2075
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_ACTTYPE_ID" ON "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") 
2076
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2077
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2078
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2079
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2080
--------------------------------------------------------
2081
--  DDL for Index INX_PROJ_ACTION_DATE_TIME
2082
--------------------------------------------------------
4040 dpurdie 2083
 
5172 dpurdie 2084
  CREATE INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_DATE_TIME" ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ("ACTION_DATETIME") 
2085
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2086
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2087
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2088
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2089
--------------------------------------------------------
2090
--  DDL for Index INX_RC_PKG_STATE
2091
--------------------------------------------------------
4040 dpurdie 2092
 
5172 dpurdie 2093
  CREATE INDEX "RELEASE_MANAGER"."INX_RC_PKG_STATE" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("PKG_STATE") 
2094
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2095
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2096
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2097
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2098
--------------------------------------------------------
2099
--  DDL for Index PROCESSES_PK
2100
--------------------------------------------------------
4040 dpurdie 2101
 
5172 dpurdie 2102
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PROCESSES_PK" ON "RELEASE_MANAGER"."PROCESSES" ("PROC_ID") 
2103
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2104
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2105
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2106
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2107
--------------------------------------------------------
2108
--  DDL for Index INX_PACKAGE_DEPS_DPV_ID
2109
--------------------------------------------------------
4040 dpurdie 2110
 
5172 dpurdie 2111
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPV_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPV_ID") 
2112
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2113
  STORAGE(INITIAL 75497472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2114
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2115
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2116
--------------------------------------------------------
2117
--  DDL for Index INX_PACKAGES_PKG_VERSION
2118
--------------------------------------------------------
4040 dpurdie 2119
 
5172 dpurdie 2120
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_VERSION" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_VERSION") 
2121
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2122
  STORAGE(INITIAL 10485760 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2123
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2124
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2125
--------------------------------------------------------
2126
--  DDL for Index UNQ_PACKAGE_METRICS
2127
--------------------------------------------------------
4040 dpurdie 2128
 
5172 dpurdie 2129
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_METRICS" ON "RELEASE_MANAGER"."PACKAGE_METRICS" ("PV_ID") 
2130
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2131
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2132
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2133
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2134
--------------------------------------------------------
2135
--  DDL for Index UNQ_PLATFORM
2136
--------------------------------------------------------
4040 dpurdie 2137
 
5172 dpurdie 2138
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PLATFORM" ON "RELEASE_MANAGER"."PLATFORMS" ("NAME") 
2139
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2140
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2141
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2142
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2143
--------------------------------------------------------
2144
--  DDL for Index UNQ_VIEWS
2145
--------------------------------------------------------
4040 dpurdie 2146
 
5172 dpurdie 2147
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEWS" ON "RELEASE_MANAGER"."VIEWS" ("VIEW_NAME", "OWNER_ID") 
2148
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2149
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2150
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2151
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2152
--------------------------------------------------------
4211 dpurdie 2153
--  DDL for Index PRODUCT_STATES_PK
4040 dpurdie 2154
--------------------------------------------------------
2155
 
5172 dpurdie 2156
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PRODUCT_STATES_PK" ON "RELEASE_MANAGER"."PRODUCT_STATES" ("STATE_ID") 
2157
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2158
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2159
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2160
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2161
--------------------------------------------------------
4211 dpurdie 2162
--  DDL for Index PK_MESSAGE_BOARD
4040 dpurdie 2163
--------------------------------------------------------
2164
 
5172 dpurdie 2165
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_MESSAGE_BOARD" ON "RELEASE_MANAGER"."MESSAGE_BOARD" ("MSG_ID") 
2166
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2167
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2168
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2169
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2170
--------------------------------------------------------
2171
--  DDL for Index PK_BUILD_MACHINE_CONFIG
2172
--------------------------------------------------------
4040 dpurdie 2173
 
5172 dpurdie 2174
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_BUILD_MACHINE_CONFIG" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ("BMCON_ID") 
2175
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2176
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2177
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2178
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2179
--------------------------------------------------------
2180
--  DDL for Index INX_MSGBOARD
2181
--------------------------------------------------------
4040 dpurdie 2182
 
5172 dpurdie 2183
  CREATE INDEX "RELEASE_MANAGER"."INX_MSGBOARD" ON "RELEASE_MANAGER"."MESSAGE_BOARD" ("EXPIRY_DATE", "DUE_DATE") 
2184
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2185
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2186
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2187
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2188
--------------------------------------------------------
2189
--  DDL for Index PK_VTREES
2190
--------------------------------------------------------
4040 dpurdie 2191
 
5172 dpurdie 2192
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_VTREES" ON "RELEASE_MANAGER"."VTREES" ("VTREE_ID") 
2193
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2194
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2195
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2196
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2197
--------------------------------------------------------
2198
--  DDL for Index UNQ_UT_PART1
2199
--------------------------------------------------------
4040 dpurdie 2200
 
5172 dpurdie 2201
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_UT_PART1" ON "RELEASE_MANAGER"."UNIT_TESTS" ("PV_ID", "TEST_ID") 
2202
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2203
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2204
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2205
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2206
--------------------------------------------------------
2207
--  DDL for Index UNQ_BUILD_ENV
2208
--------------------------------------------------------
4040 dpurdie 2209
 
5172 dpurdie 2210
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV" ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_NAME") 
2211
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2212
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2213
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2214
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2215
--------------------------------------------------------
4211 dpurdie 2216
--  DDL for Index INX_ACTION_DATE_TIME
4040 dpurdie 2217
--------------------------------------------------------
2218
 
5172 dpurdie 2219
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_DATE_TIME" ON "RELEASE_MANAGER"."ACTION_LOG" ("ACTION_DATETIME") 
2220
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2221
  STORAGE(INITIAL 92274688 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2222
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2223
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2224
--------------------------------------------------------
4308 dpurdie 2225
--  DDL for Index UNQ_BUILD_MACHINE_CONFIG02
2226
--------------------------------------------------------
4040 dpurdie 2227
 
5172 dpurdie 2228
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_MACHINE_CONFIG02" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ("MACHINE_HOSTNAME") 
2229
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2230
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2231
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2232
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2233
--------------------------------------------------------
2234
--  DDL for Index BUILD_MACHINES_PK
2235
--------------------------------------------------------
4040 dpurdie 2236
 
5172 dpurdie 2237
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_MACHINES_PK" ON "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") 
2238
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2239
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2240
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2241
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2242
--------------------------------------------------------
2243
--  DDL for Index INX_TTB_SESSION
2244
--------------------------------------------------------
4040 dpurdie 2245
 
5172 dpurdie 2246
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_SESSION" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("SESSION_NUM") 
2247
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2248
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2249
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2250
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2251
--------------------------------------------------------
2252
--  DDL for Index UNQ_RTD
2253
--------------------------------------------------------
4040 dpurdie 2254
 
5172 dpurdie 2255
  CREATE INDEX "RELEASE_MANAGER"."UNQ_RTD" ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ("PV_ID", "RTD_ID") 
2256
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2257
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2258
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2259
  TABLESPACE "RELEASEM_INDX" ;
2260
--------------------------------------------------------
2261
--  DDL for Index SDK_CONTENT_INDEX1
2262
--------------------------------------------------------
2263
 
2264
  CREATE INDEX "RELEASE_MANAGER"."SDK_CONTENT_INDEX1" ON "RELEASE_MANAGER"."SDK_CONTENT" ("SDKTAG_ID") 
2265
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2266
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2267
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2268
  TABLESPACE "RELEASEM_DATA" ;
4308 dpurdie 2269
--------------------------------------------------------
4211 dpurdie 2270
--  DDL for Index INX_RL_RTAG_ID
4040 dpurdie 2271
--------------------------------------------------------
2272
 
5172 dpurdie 2273
  CREATE INDEX "RELEASE_MANAGER"."INX_RL_RTAG_ID" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("RTAG_ID") 
2274
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2275
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2276
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2277
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2278
--------------------------------------------------------
4211 dpurdie 2279
--  DDL for Index UNQ_VIEW_DEF
4040 dpurdie 2280
--------------------------------------------------------
2281
 
5172 dpurdie 2282
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEW_DEF" ON "RELEASE_MANAGER"."VIEW_DEF" ("VIEW_ID", "PKG_ID") 
2283
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2284
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2285
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2286
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2287
--------------------------------------------------------
4211 dpurdie 2288
--  DDL for Index INX_PACKAGES_PKG_NAME
4040 dpurdie 2289
--------------------------------------------------------
2290
 
5172 dpurdie 2291
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_NAME" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID") 
2292
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2293
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2294
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2295
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2296
--------------------------------------------------------
4211 dpurdie 2297
--  DDL for Index INX_PCOMP_FK_PV_ID
4040 dpurdie 2298
--------------------------------------------------------
2299
 
5172 dpurdie 2300
  CREATE INDEX "RELEASE_MANAGER"."INX_PCOMP_FK_PV_ID" ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" ("PV_ID") 
2301
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2302
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2303
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2304
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2305
--------------------------------------------------------
4211 dpurdie 2306
--  DDL for Index DAEMON_INSTRUCTIONS_UK1
4040 dpurdie 2307
--------------------------------------------------------
2308
 
5172 dpurdie 2309
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS_UK1" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("OP_CODE", "RTAG_ID", "PV_ID") 
2310
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2311
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2312
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2313
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2314
--------------------------------------------------------
4211 dpurdie 2315
--  DDL for Index INX_FILE_NAME
4040 dpurdie 2316
--------------------------------------------------------
2317
 
5172 dpurdie 2318
  CREATE INDEX "RELEASE_MANAGER"."INX_FILE_NAME" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" (UPPER("FILE_NAME")) 
2319
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2320
  STORAGE(INITIAL 1147142144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2321
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2322
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2323
--------------------------------------------------------
4211 dpurdie 2324
--  DDL for Index INX_IS_PATCH_IGNORE
4040 dpurdie 2325
--------------------------------------------------------
2326
 
5172 dpurdie 2327
  CREATE INDEX "RELEASE_MANAGER"."INX_IS_PATCH_IGNORE" ON "RELEASE_MANAGER"."IGNORE_WARNINGS" ("IS_PATCH_IGNORE") 
2328
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2329
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2330
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2331
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2332
--------------------------------------------------------
4211 dpurdie 2333
--  DDL for Index UNQ_BUILD_ENV_DOCS
4040 dpurdie 2334
--------------------------------------------------------
2335
 
5172 dpurdie 2336
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV_DOCS" ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" ("BE_ID", "DOC_NUM") 
2337
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2338
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2339
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2340
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2341
--------------------------------------------------------
4211 dpurdie 2342
--  DDL for Index INX_PROJ_ACTION_LOG_PROJ
4040 dpurdie 2343
--------------------------------------------------------
2344
 
5172 dpurdie 2345
  CREATE INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_LOG_PROJ" ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ("PROJ_ID") 
2346
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2347
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2348
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2349
  TABLESPACE "RELEASEM_INDX" ;
2350
--------------------------------------------------------
2351
--  DDL for Index BUILD_SERVICE_CONFIG_INDEX1
2352
--------------------------------------------------------
2353
 
2354
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG_INDEX1" ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" ("SERVICE") 
2355
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2356
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2357
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2358
  TABLESPACE "RELEASEM_DATA" ;
2359
--------------------------------------------------------
2360
--  DDL for Index RELEASE_MODIFIED_PK
2361
--------------------------------------------------------
2362
 
2363
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."RELEASE_MODIFIED_PK" ON "RELEASE_MANAGER"."RELEASE_MODIFIED" ("RTAG_ID") 
2364
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2365
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2366
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2367
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 2368
--------------------------------------------------------
2369
--  DDL for Index INX_TTB_LEVEL_NUM
2370
--------------------------------------------------------
2371
 
5172 dpurdie 2372
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_LEVEL_NUM" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("LEVEL_NUM") 
2373
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2374
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2375
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2376
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2377
--------------------------------------------------------
4211 dpurdie 2378
--  DDL for Index UNQ_WORK_IN_PROGRESS
4040 dpurdie 2379
--------------------------------------------------------
2380
 
5172 dpurdie 2381
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_WORK_IN_PROGRESS" ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" ("RTAG_ID", "PV_ID") 
2382
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2383
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2384
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2385
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2386
--------------------------------------------------------
4211 dpurdie 2387
--  DDL for Index INX_PACKAGES_V_NMM
4040 dpurdie 2388
--------------------------------------------------------
2389
 
5172 dpurdie 2390
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_NMM" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_NMM") 
2391
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2392
  STORAGE(INITIAL 9437184 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2393
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2394
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2395
--------------------------------------------------------
4211 dpurdie 2396
--  DDL for Index UNQ_PLANNED
4040 dpurdie 2397
--------------------------------------------------------
2398
 
5172 dpurdie 2399
  CREATE INDEX "RELEASE_MANAGER"."UNQ_PLANNED" ON "RELEASE_MANAGER"."PLANNED" ("RTAG_ID", "PV_ID") 
2400
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2401
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2402
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2403
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2404
--------------------------------------------------------
4211 dpurdie 2405
--  DDL for Index INX_TES_PKGEXT
4040 dpurdie 2406
--------------------------------------------------------
2407
 
5172 dpurdie 2408
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_PKGEXT" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("PKG_ID", "V_EXT") 
2409
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2410
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2411
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2412
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2413
--------------------------------------------------------
2414
--  DDL for Index UNQ_BUILD_MACHINE_CONFIG01
2415
--------------------------------------------------------
4040 dpurdie 2416
 
5172 dpurdie 2417
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_MACHINE_CONFIG01" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" (LOWER("DISPLAY_NAME")) 
2418
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2419
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2420
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2421
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2422
--------------------------------------------------------
4211 dpurdie 2423
--  DDL for Index UNQ_RELEASE_LINKS
4040 dpurdie 2424
--------------------------------------------------------
2425
 
5172 dpurdie 2426
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_LINKS" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("RTAG_ID", "REF_RTAG_ID") 
2427
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2428
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2429
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2430
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2431
--------------------------------------------------------
2432
--  DDL for Index UNQ_PKG_DOC
2433
--------------------------------------------------------
4040 dpurdie 2434
 
5172 dpurdie 2435
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PKG_DOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID", "DOC_NUM") 
2436
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2437
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2438
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2439
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2440
--------------------------------------------------------
4211 dpurdie 2441
--  DDL for Index DAEMON_INSTRUCTIONS_PK
4040 dpurdie 2442
--------------------------------------------------------
2443
 
5172 dpurdie 2444
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS_PK" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("DAEMON_INSTRUCTIONS_ID") 
2445
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2446
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2447
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2448
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2449
--------------------------------------------------------
2450
--  DDL for Index INX_DAEMON_INST_SCHED_DATETIME
2451
--------------------------------------------------------
4040 dpurdie 2452
 
5172 dpurdie 2453
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_SCHED_DATETIME" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("SCHEDULED_DATETIME") 
2454
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2455
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2456
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2457
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2458
--------------------------------------------------------
4211 dpurdie 2459
--  DDL for Index INX_TTB_PKG
4040 dpurdie 2460
--------------------------------------------------------
2461
 
5172 dpurdie 2462
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_PKG" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("PKG_ID", "V_EXT") 
2463
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2464
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2465
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2466
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2467
--------------------------------------------------------
4211 dpurdie 2468
--  DDL for Index UNQ_VALIDATION_RULES
4040 dpurdie 2469
--------------------------------------------------------
2470
 
5172 dpurdie 2471
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VALIDATION_RULES" ON "RELEASE_MANAGER"."VALIDATION_RULES" ("FIELD_NAME") 
2472
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2473
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2474
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2475
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2476
--------------------------------------------------------
2477
--  DDL for Index BUILD_STANDARDS_ADDENDUM_PK
2478
--------------------------------------------------------
4040 dpurdie 2479
 
5172 dpurdie 2480
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM_PK" ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ("BSA_ID") 
2481
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2482
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2483
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2484
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2485
--------------------------------------------------------
4211 dpurdie 2486
--  DDL for Index INX_PV_OWNER_ID
4040 dpurdie 2487
--------------------------------------------------------
2488
 
5172 dpurdie 2489
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_OWNER_ID" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("OWNER_ID") 
2490
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2491
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2492
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2493
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2494
--------------------------------------------------------
4211 dpurdie 2495
--  DDL for Index INX_TES_TES_STATE
4040 dpurdie 2496
--------------------------------------------------------
2497
 
5172 dpurdie 2498
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_TES_STATE" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("TES_STATE") 
2499
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2500
  STORAGE(INITIAL 458752 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2501
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2502
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2503
--------------------------------------------------------
4308 dpurdie 2504
--  DDL for Index UNQ_AN_PART1
2505
--------------------------------------------------------
4040 dpurdie 2506
 
5172 dpurdie 2507
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_AN_PART1" ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" ("PV_ID", "NOTE_ID") 
2508
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2509
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2510
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2511
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2512
--------------------------------------------------------
4211 dpurdie 2513
--  DDL for Index UNQ_RELEASE_CONTENTS
4040 dpurdie 2514
--------------------------------------------------------
2515
 
5172 dpurdie 2516
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_CONTENTS" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("RTAG_ID", "PV_ID") 
2517
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2518
  STORAGE(INITIAL 10485760 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2519
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2520
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2521
--------------------------------------------------------
2522
--  DDL for Index INX_ACTION_LOG_PV_ID
2523
--------------------------------------------------------
4040 dpurdie 2524
 
5172 dpurdie 2525
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_LOG_PV_ID" ON "RELEASE_MANAGER"."ACTION_LOG" ("PV_ID") 
2526
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2527
  STORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2528
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2529
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2530
--------------------------------------------------------
4211 dpurdie 2531
--  DDL for Index UNQ_TEST_TYPE_NAME
4040 dpurdie 2532
--------------------------------------------------------
2533
 
5172 dpurdie 2534
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_TEST_TYPE_NAME" ON "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_NAME") 
2535
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2536
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2537
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2538
  TABLESPACE "RELEASEM_INDX" ;
2539
--------------------------------------------------------
2540
--  DDL for Index PEGGED_VERSIONS_INDEX1
2541
--------------------------------------------------------
2542
 
2543
  CREATE INDEX "RELEASE_MANAGER"."PEGGED_VERSIONS_INDEX1" ON "RELEASE_MANAGER"."PEGGED_VERSIONS" ("RTAG_ID", "PV_ID") 
2544
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2545
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2546
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2547
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 2548
--------------------------------------------------------
4308 dpurdie 2549
--  DDL for Index PKNOTE_MANAGER1
2550
--------------------------------------------------------
4040 dpurdie 2551
 
5172 dpurdie 2552
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PKNOTE_MANAGER1" ON "RELEASE_MANAGER"."NOTE_MANAGER" ("NID") 
2553
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2554
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2555
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2556
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2557
--------------------------------------------------------
2558
--  DDL for Index INX_PACKAGES_V_MM
2559
--------------------------------------------------------
4040 dpurdie 2560
 
5172 dpurdie 2561
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_MM" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_MM") 
2562
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2563
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2564
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2565
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2566
--------------------------------------------------------
2567
--  DDL for Index INX_CODE_REVIEW
2568
--------------------------------------------------------
4040 dpurdie 2569
 
5172 dpurdie 2570
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_CODE_REVIEW" ON "RELEASE_MANAGER"."CODE_REVIEWS" ("PV_ID") 
2571
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2572
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2573
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2574
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2575
--------------------------------------------------------
4211 dpurdie 2576
--  DDL for Index UNQ_VTREES
4040 dpurdie 2577
--------------------------------------------------------
2578
 
5172 dpurdie 2579
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VTREES" ON "RELEASE_MANAGER"."VTREES" ("PROJ_ID", "VTREE_NAME") 
2580
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2581
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2582
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2583
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2584
--------------------------------------------------------
2585
--  DDL for Index INX_PACKAGE_DEPS_PKG_ID
2586
--------------------------------------------------------
4040 dpurdie 2587
 
5172 dpurdie 2588
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PKG_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PKG_ID") 
2589
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2590
  STORAGE(INITIAL 83886080 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2591
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2592
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2593
--------------------------------------------------------
4211 dpurdie 2594
--  DDL for Index UNQ_PROJECTS
4040 dpurdie 2595
--------------------------------------------------------
2596
 
5172 dpurdie 2597
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PROJECTS" ON "RELEASE_MANAGER"."PROJECTS" ("PROJ_NAME") 
2598
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2599
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2600
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2601
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2602
--------------------------------------------------------
2603
--  DDL for Index INX_PACKAGES_V_EXT
2604
--------------------------------------------------------
4040 dpurdie 2605
 
5172 dpurdie 2606
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_EXT" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_EXT") 
2607
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2608
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2609
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2610
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2611
--------------------------------------------------------
4211 dpurdie 2612
--  DDL for Index PK_PROJECTS
4040 dpurdie 2613
--------------------------------------------------------
2614
 
5172 dpurdie 2615
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PROJECTS" ON "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") 
2616
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2617
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2618
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2619
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2620
--------------------------------------------------------
2621
--  DDL for Index INX_TES_PV
2622
--------------------------------------------------------
4040 dpurdie 2623
 
5172 dpurdie 2624
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_PV" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("PV_ID") 
2625
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2626
  STORAGE(INITIAL 851968 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2627
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2628
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2629
--------------------------------------------------------
4211 dpurdie 2630
--  DDL for Index UNQ_VTREE_WORLD
4040 dpurdie 2631
--------------------------------------------------------
2632
 
5172 dpurdie 2633
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VTREE_WORLD" ON "RELEASE_MANAGER"."VTREES_WORLD" ("WORLD_ID", "VTREE_ID") 
2634
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2635
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2636
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2637
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2638
--------------------------------------------------------
4308 dpurdie 2639
--  DDL for Index UNQ_IGW
2640
--------------------------------------------------------
4040 dpurdie 2641
 
5172 dpurdie 2642
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_IGW" ON "RELEASE_MANAGER"."IGNORE_WARNINGS" ("RTAG_ID", "PV_ID", "DPV_ID") 
2643
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2644
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2646
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2647
--------------------------------------------------------
2648
--  DDL for Index INX_DAEMON_INST_RTAG_ID
2649
--------------------------------------------------------
4040 dpurdie 2650
 
5172 dpurdie 2651
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_RTAG_ID" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("RTAG_ID") 
2652
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2653
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2654
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2655
  TABLESPACE "RELEASEM_INDX" ;
2656
--------------------------------------------------------
2657
--  DDL for Index SDK_TAGS_PK
2658
--------------------------------------------------------
2659
 
2660
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_TAGS_PK" ON "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") 
2661
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2662
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2663
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2664
  TABLESPACE "RELEASEM_DATA" ;
4308 dpurdie 2665
--------------------------------------------------------
2666
--  DDL for Index PK_NOTIFICATION_HISTORY
2667
--------------------------------------------------------
4040 dpurdie 2668
 
5172 dpurdie 2669
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_NOTIFICATION_HISTORY" ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ("RTAG_ID", "PV_ID", "USER_ID") 
2670
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2671
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2672
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2673
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2674
--------------------------------------------------------
2675
--  DDL for Index UNQ_PACKAGE_DEPENDENCIES
2676
--------------------------------------------------------
4040 dpurdie 2677
 
5172 dpurdie 2678
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_DEPENDENCIES" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PV_ID", "DPV_ID") 
2679
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2680
  STORAGE(INITIAL 100663296 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2681
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2682
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2683
--------------------------------------------------------
2684
--  DDL for Index INX_PACKAGE_DEPS_PV_ID
2685
--------------------------------------------------------
4040 dpurdie 2686
 
5172 dpurdie 2687
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PV_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PV_ID") 
2688
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2689
  STORAGE(INITIAL 75497472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2690
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2691
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2692
--------------------------------------------------------
4211 dpurdie 2693
--  DDL for Index BUILD_STANDARDS_PK
4040 dpurdie 2694
--------------------------------------------------------
2695
 
5172 dpurdie 2696
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_PK" ON "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") 
2697
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2698
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2699
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2700
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2701
--------------------------------------------------------
2702
--  DDL for Index UNQ_CQ
2703
--------------------------------------------------------
4040 dpurdie 2704
 
5172 dpurdie 2705
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_CQ" ON "RELEASE_MANAGER"."CQ_ISSUES" ("PV_ID", "ISS_ID", "ISS_DB") 
2706
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2707
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2708
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2709
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2710
--------------------------------------------------------
4211 dpurdie 2711
--  DDL for Index UNQ_PACKAGE_VERSIONS
4040 dpurdie 2712
--------------------------------------------------------
2713
 
5172 dpurdie 2714
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_VERSIONS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID", "PKG_VERSION") 
2715
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2716
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2717
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2718
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2719
--------------------------------------------------------
2720
--  DDL for Index INX_PV_ID_TEST_ID_PKGDOC
2721
--------------------------------------------------------
4040 dpurdie 2722
 
5172 dpurdie 2723
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_ID_TEST_ID_PKGDOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID", "TEST_ID") 
2724
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2725
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2726
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2727
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2728
--------------------------------------------------------
4211 dpurdie 2729
--  DDL for Index UNQ_PACKAGE_PATCHES
4040 dpurdie 2730
--------------------------------------------------------
2731
 
5172 dpurdie 2732
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_PATCHES" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PATCH_ID") 
2733
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2734
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2735
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2736
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2737
--------------------------------------------------------
4308 dpurdie 2738
--  DDL for Index UNQ_REL_COMPONENTS
2739
--------------------------------------------------------
4040 dpurdie 2740
 
5172 dpurdie 2741
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_REL_COMPONENTS" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" ("PV_ID", "FILE_NAME", "FILE_PATH") 
2742
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2743
  STORAGE(INITIAL 3489660928 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2744
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2745
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2746
--------------------------------------------------------
2747
--  DDL for Index PK_PACKAGE_VERSIONS
2748
--------------------------------------------------------
4040 dpurdie 2749
 
5172 dpurdie 2750
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PACKAGE_VERSIONS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") 
2751
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2752
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2753
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2754
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2755
--------------------------------------------------------
2756
--  DDL for Index UNQ_RELEASE_METRICS
2757
--------------------------------------------------------
4040 dpurdie 2758
 
5172 dpurdie 2759
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_METRICS" ON "RELEASE_MANAGER"."RELEASE_METRICS" ("RTAG_ID") 
2760
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2761
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2762
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2763
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2764
--------------------------------------------------------
2765
--  DDL for Index UNQ_BUILD_ORDER
2766
--------------------------------------------------------
4040 dpurdie 2767
 
5172 dpurdie 2768
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ORDER" ON "RELEASE_MANAGER"."BUILD_ORDER" ("RTAG_ID", "PV_ID", "STEP_NUM") 
2769
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2770
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2771
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2772
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2773
--------------------------------------------------------
2774
--  DDL for Index PK_BUILD_ENVIRONMENTS
2775
--------------------------------------------------------
4040 dpurdie 2776
 
5172 dpurdie 2777
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_BUILD_ENVIRONMENTS" ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") 
2778
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2779
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2780
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2781
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2782
--------------------------------------------------------
2783
--  DDL for Index INX_PACKAGE_DEPS_DPKG_ID
2784
--------------------------------------------------------
4040 dpurdie 2785
 
5172 dpurdie 2786
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPKG_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPKG_ID") 
2787
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2788
  STORAGE(INITIAL 83886080 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2789
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2790
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2791
--------------------------------------------------------
2792
--  DDL for Index INX_RL_REFRTAG_ID
2793
--------------------------------------------------------
4040 dpurdie 2794
 
5172 dpurdie 2795
  CREATE INDEX "RELEASE_MANAGER"."INX_RL_REFRTAG_ID" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("REF_RTAG_ID") 
2796
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2797
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2798
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2799
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2800
--------------------------------------------------------
2801
--  DDL for Index INX_RC_BASE_VIEW_ID
2802
--------------------------------------------------------
4040 dpurdie 2803
 
5172 dpurdie 2804
  CREATE INDEX "RELEASE_MANAGER"."INX_RC_BASE_VIEW_ID" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("BASE_VIEW_ID") 
2805
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2806
  STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2807
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2808
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2809
--------------------------------------------------------
2810
--  DDL for Index INX_DAEMON_INST_PV_ID
2811
--------------------------------------------------------
4211 dpurdie 2812
 
5172 dpurdie 2813
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_PV_ID" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("PV_ID") 
2814
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2815
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2816
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2817
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2818
--------------------------------------------------------
4040 dpurdie 2819
--  DDL for Index UNQ_PROJECT_EXT
2820
--------------------------------------------------------
2821
 
5172 dpurdie 2822
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PROJECT_EXT" ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" ("PROJ_ID", "EXT_NAME") 
2823
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2824
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2825
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2826
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2827
--------------------------------------------------------
2828
--  DDL for Index VCS_TYPE_PK
2829
--------------------------------------------------------
4040 dpurdie 2830
 
5172 dpurdie 2831
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."VCS_TYPE_PK" ON "RELEASE_MANAGER"."VCS_TYPE" ("VCS_TYPE_ID") 
2832
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2833
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2834
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2835
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2836
--------------------------------------------------------
4211 dpurdie 2837
--  DDL for Index INX_PC_FILE_NAME
4040 dpurdie 2838
--------------------------------------------------------
2839
 
5172 dpurdie 2840
  CREATE INDEX "RELEASE_MANAGER"."INX_PC_FILE_NAME" ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" (UPPER("FILE_NAME")) 
2841
  PCTFREE 10 INITRANS 2 MAXTRANS 167 COMPUTE STATISTICS 
2842
  STORAGE(INITIAL 18874368 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2843
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2844
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2845
--------------------------------------------------------
2846
--  DDL for Index PK_RELEASE_TAGS
2847
--------------------------------------------------------
4040 dpurdie 2848
 
5172 dpurdie 2849
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_RELEASE_TAGS" ON "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") 
2850
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2851
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2852
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2853
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2854
--------------------------------------------------------
4211 dpurdie 2855
--  DDL for Index FK_PROJ_ID_RELEASE_TAGS
4040 dpurdie 2856
--------------------------------------------------------
2857
 
5172 dpurdie 2858
  CREATE INDEX "RELEASE_MANAGER"."FK_PROJ_ID_RELEASE_TAGS" ON "RELEASE_MANAGER"."RELEASE_TAGS" ("PROJ_ID") 
2859
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2860
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2861
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2862
  TABLESPACE "RELEASEM_INDX" ;
4040 dpurdie 2863
--------------------------------------------------------
4211 dpurdie 2864
--  DDL for Index INX_RCOMP_PV_ID
4040 dpurdie 2865
--------------------------------------------------------
2866
 
5172 dpurdie 2867
  CREATE INDEX "RELEASE_MANAGER"."INX_RCOMP_PV_ID" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" ("PV_ID") 
2868
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2869
  STORAGE(INITIAL 724566016 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2870
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2871
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2872
--------------------------------------------------------
2873
--  DDL for Index MICROSOFT_PK_DTPROPERTIES
2874
--------------------------------------------------------
4040 dpurdie 2875
 
5172 dpurdie 2876
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."MICROSOFT_PK_DTPROPERTIES" ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ("ID", "PROPERTY") 
2877
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2878
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2879
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2880
  TABLESPACE "RELEASEM_INDX" ;
2881
--------------------------------------------------------
2882
--  DDL for Index BUILD_ID
2883
--------------------------------------------------------
2884
 
2885
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_ID" ON "RELEASE_MANAGER"."BUILD_INSTANCES" ("BUILD_ID") 
2886
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2887
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2888
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2889
  TABLESPACE "RELEASEM_DATA" ;
4040 dpurdie 2890
--------------------------------------------------------
4308 dpurdie 2891
--  DDL for Index INX_UT_PV_TEST_TYPE
2892
--------------------------------------------------------
4040 dpurdie 2893
 
5172 dpurdie 2894
  CREATE INDEX "RELEASE_MANAGER"."INX_UT_PV_TEST_TYPE" ON "RELEASE_MANAGER"."UNIT_TESTS" ("PV_ID", "TEST_TYPES_FK") 
2895
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2896
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2897
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2898
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2899
--------------------------------------------------------
2900
--  DDL for Index PK_WORLDS
2901
--------------------------------------------------------
4040 dpurdie 2902
 
5172 dpurdie 2903
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_WORLDS" ON "RELEASE_MANAGER"."WORLDS" ("WORLD_ID") 
2904
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2905
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2906
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2907
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2908
--------------------------------------------------------
2909
--  DDL for Index UNQ_AN_PART2
2910
--------------------------------------------------------
4040 dpurdie 2911
 
5172 dpurdie 2912
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_AN_PART2" ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" ("PV_ID", "NOTE_TITLE") 
2913
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2914
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2915
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2916
  TABLESPACE "RELEASEM_INDX" ;
4308 dpurdie 2917
--------------------------------------------------------
4211 dpurdie 2918
--  Constraints for Table RELEASE_TAGS
4040 dpurdie 2919
--------------------------------------------------------
2920
 
5172 dpurdie 2921
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" ADD CONSTRAINT "PK_RELEASE_TAGS" PRIMARY KEY ("RTAG_ID")
2922
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2923
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2924
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2925
  TABLESPACE "RELEASEM_INDX"  ENABLE;
2926
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("PROJ_ID" NOT NULL ENABLE);
2927
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("PARENT_RTAG_ID" NOT NULL ENABLE);
2928
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("REBUILD_STAMP" NOT NULL ENABLE);
2929
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("REBUILD_ENV" NOT NULL ENABLE);
2930
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("OFFICIAL" NOT NULL ENABLE);
2931
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("RTAG_NAME" NOT NULL ENABLE);
2932
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
2933
--------------------------------------------------------
2934
--  Constraints for Table SDK_NAMES
2935
--------------------------------------------------------
2936
 
2937
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("VIEW_ID" NOT NULL ENABLE);
2938
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("PROJ_ID" NOT NULL ENABLE);
2939
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_PK" PRIMARY KEY ("SDK_ID")
2940
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2941
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2942
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2943
  TABLESPACE "RELEASEM_DATA"  ENABLE;
2944
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_UK1" UNIQUE ("SDK_NAME")
2945
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2946
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2947
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2948
  TABLESPACE "RELEASEM_DATA"  ENABLE;
2949
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("SDK_NAME" NOT NULL ENABLE);
2950
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("SDK_ID" NOT NULL ENABLE);
4040 dpurdie 2951
--------------------------------------------------------
5172 dpurdie 2952
--  Constraints for Table SDK_TAGS
2953
--------------------------------------------------------
2954
 
2955
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_PK" PRIMARY KEY ("SDKTAG_ID")
2956
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2957
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2958
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2959
  TABLESPACE "RELEASEM_DATA"  ENABLE;
2960
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDK_STATE" NOT NULL ENABLE);
2961
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
2962
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDK_ID" NOT NULL ENABLE);
2963
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDKTAG_NAME" NOT NULL ENABLE);
2964
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDKTAG_ID" NOT NULL ENABLE);
2965
--------------------------------------------------------
4308 dpurdie 2966
--  Constraints for Table RIPPLE_FIELD_STATES
2967
--------------------------------------------------------
4040 dpurdie 2968
 
5172 dpurdie 2969
  ALTER TABLE "RELEASE_MANAGER"."RIPPLE_FIELD_STATES" MODIFY ("STATE_ACRONYM" NOT NULL DISABLE);
2970
  ALTER TABLE "RELEASE_MANAGER"."RIPPLE_FIELD_STATES" MODIFY ("STATE_ID" NOT NULL ENABLE);
4308 dpurdie 2971
--------------------------------------------------------
4211 dpurdie 2972
--  Constraints for Table RUNTIME_DEPENDENCIES
4040 dpurdie 2973
--------------------------------------------------------
2974
 
5172 dpurdie 2975
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("MOD_USER" NOT NULL ENABLE);
2976
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
2977
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 2978
--------------------------------------------------------
2979
--  Constraints for Table PACKAGE_PROCESSES
2980
--------------------------------------------------------
4040 dpurdie 2981
 
5172 dpurdie 2982
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" MODIFY ("PROC_ID" NOT NULL ENABLE);
2983
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 2984
--------------------------------------------------------
4211 dpurdie 2985
--  Constraints for Table DO_NOT_RIPPLE
4040 dpurdie 2986
--------------------------------------------------------
2987
 
5172 dpurdie 2988
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
2989
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 2990
--------------------------------------------------------
4211 dpurdie 2991
--  Constraints for Table RELEASE_COMPONENTS
4040 dpurdie 2992
--------------------------------------------------------
2993
 
5172 dpurdie 2994
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 2995
--------------------------------------------------------
2996
--  Constraints for Table VIEW_SETTINGS
2997
--------------------------------------------------------
4211 dpurdie 2998
 
5172 dpurdie 2999
  ALTER TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
3000
  ALTER TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 3001
--------------------------------------------------------
4211 dpurdie 3002
--  Constraints for Table WORLDS
4040 dpurdie 3003
--------------------------------------------------------
3004
 
5172 dpurdie 3005
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" ADD CONSTRAINT "PK_WORLDS" PRIMARY KEY ("WORLD_ID")
3006
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3007
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3008
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3009
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3010
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" MODIFY ("WORLD_NAME" NOT NULL ENABLE);
3011
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" MODIFY ("WORLD_ID" NOT NULL ENABLE);
4040 dpurdie 3012
--------------------------------------------------------
4211 dpurdie 3013
--  Constraints for Table UNIT_TESTS
4040 dpurdie 3014
--------------------------------------------------------
3015
 
5172 dpurdie 3016
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("TEST_TYPES_FK" NOT NULL ENABLE);
3017
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("PV_ID" NOT NULL ENABLE);
3018
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("TEST_ID" NOT NULL ENABLE);
4040 dpurdie 3019
--------------------------------------------------------
4211 dpurdie 3020
--  Constraints for Table PACKAGE_DOCUMENTS
4040 dpurdie 3021
--------------------------------------------------------
3022
 
5172 dpurdie 3023
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("DOC_NUM" NOT NULL ENABLE);
3024
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("DOC_ID" NOT NULL ENABLE);
3025
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3026
--------------------------------------------------------
4211 dpurdie 3027
--  Constraints for Table PACKAGE_BUILD_INFO
4040 dpurdie 3028
--------------------------------------------------------
3029
 
5172 dpurdie 3030
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" MODIFY ("BM_ID" NOT NULL ENABLE);
3031
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3032
--------------------------------------------------------
3033
--  Constraints for Table ADVISORY_RIPPLE
3034
--------------------------------------------------------
3035
 
5172 dpurdie 3036
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" MODIFY ("PV_ID" NOT NULL ENABLE);
3037
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3038
--------------------------------------------------------
4211 dpurdie 3039
--  Constraints for Table PRODUCT_STATES
4040 dpurdie 3040
--------------------------------------------------------
3041
 
5172 dpurdie 3042
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" ADD CONSTRAINT "PRODUCT_STATES_PK" PRIMARY KEY ("STATE_ID")
3043
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3044
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3045
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3046
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3047
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" MODIFY ("STATE" NOT NULL ENABLE);
3048
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" MODIFY ("STATE_ID" NOT NULL ENABLE);
4308 dpurdie 3049
--------------------------------------------------------
3050
--  Constraints for Table PRODUCT_COMPONENTS
3051
--------------------------------------------------------
4040 dpurdie 3052
 
5172 dpurdie 3053
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" MODIFY ("OS_ID" NOT NULL ENABLE);
3054
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 3055
--------------------------------------------------------
3056
--  Constraints for Table PACKAGE_PATCHES
3057
--------------------------------------------------------
4040 dpurdie 3058
 
5172 dpurdie 3059
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("INSTALL_ORDER" NOT NULL ENABLE);
3060
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("PATCH_ID" NOT NULL ENABLE);
3061
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 3062
--------------------------------------------------------
3063
--  Constraints for Table RUN_LEVEL_SCHEDULE
3064
--------------------------------------------------------
4040 dpurdie 3065
 
5172 dpurdie 3066
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" ADD PRIMARY KEY ("SCHEDULED_ID")
3067
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3068
  STORAGE(INITIAL 262144 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_INDX"  ENABLE;
3071
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" MODIFY ("SCHEDULED_ID" NOT NULL ENABLE);
4040 dpurdie 3072
--------------------------------------------------------
4211 dpurdie 3073
--  Constraints for Table MICROSOFTDTPROPERTIES
4040 dpurdie 3074
--------------------------------------------------------
3075
 
5172 dpurdie 3076
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ADD CONSTRAINT "MICROSOFT_PK_DTPROPERTIES" PRIMARY KEY ("ID", "PROPERTY")
3077
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3078
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3079
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3080
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3081
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("VERSION" CONSTRAINT "MICROSOFT_NN_VERSION" NOT NULL ENABLE);
3082
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("PROPERTY" CONSTRAINT "MICROSOFT_NN_PROPERTY" NOT NULL ENABLE);
3083
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("ID" CONSTRAINT "MICROSOFT_NN_ID" NOT NULL ENABLE);
4040 dpurdie 3084
--------------------------------------------------------
4211 dpurdie 3085
--  Constraints for Table NOTE_MANAGER
4040 dpurdie 3086
--------------------------------------------------------
3087
 
5172 dpurdie 3088
  ALTER TABLE "RELEASE_MANAGER"."NOTE_MANAGER" ADD CONSTRAINT "PKNOTE_MANAGER1" PRIMARY KEY ("NID")
3089
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3090
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3091
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3092
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3093
  ALTER TABLE "RELEASE_MANAGER"."NOTE_MANAGER" MODIFY ("NID" NOT NULL ENABLE);
4040 dpurdie 3094
--------------------------------------------------------
4308 dpurdie 3095
--  Constraints for Table BUILD_SERVICE_CONFIG
3096
--------------------------------------------------------
4040 dpurdie 3097
 
5172 dpurdie 3098
  ALTER TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" MODIFY ("CONFIG" NOT NULL ENABLE);
3099
  ALTER TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" MODIFY ("SERVICE" NOT NULL ENABLE);
4308 dpurdie 3100
--------------------------------------------------------
3101
--  Constraints for Table GBE_MACHTYPE
3102
--------------------------------------------------------
4040 dpurdie 3103
 
5172 dpurdie 3104
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("BM_ID" NOT NULL ENABLE);
3105
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" ADD PRIMARY KEY ("GBE_ID")
3106
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3107
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3108
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3109
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3110
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("GBE_VALUE" NOT NULL ENABLE);
3111
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("GBE_ID" NOT NULL ENABLE);
4308 dpurdie 3112
--------------------------------------------------------
4211 dpurdie 3113
--  Constraints for Table ACTION_LOG
4040 dpurdie 3114
--------------------------------------------------------
3115
 
5172 dpurdie 3116
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
3117
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("PV_ID" NOT NULL ENABLE);
3118
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTION_DATETIME" NOT NULL ENABLE);
3119
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
3120
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTION_TIMESTAMP" NOT NULL ENABLE);
3121
--------------------------------------------------------
3122
--  Constraints for Table SDK_CONTENT
3123
--------------------------------------------------------
3124
 
3125
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("SDKPKG_STATE" NOT NULL ENABLE);
3126
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("PV_ID" NOT NULL ENABLE);
3127
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("SDKTAG_ID" NOT NULL ENABLE);
4308 dpurdie 3128
--------------------------------------------------------
3129
--  Constraints for Table ADDITIONAL_NOTES
3130
--------------------------------------------------------
4040 dpurdie 3131
 
5172 dpurdie 3132
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("MOD_USER" NOT NULL ENABLE);
3133
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
3134
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("NOTE_TITLE" NOT NULL ENABLE);
3135
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("PV_ID" NOT NULL ENABLE);
3136
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("NOTE_ID" NOT NULL ENABLE);
4040 dpurdie 3137
--------------------------------------------------------
4308 dpurdie 3138
--  Constraints for Table BUILD_STANDARDS_ADDENDUM
3139
--------------------------------------------------------
4040 dpurdie 3140
 
5172 dpurdie 3141
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ADD CONSTRAINT "BUILD_STANDARDS_ADDENDUM_PK" PRIMARY KEY ("BSA_ID")
3142
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3143
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3144
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3145
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3146
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BS_ID" NOT NULL ENABLE);
3147
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BSA_NAME" NOT NULL ENABLE);
3148
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BSA_ID" NOT NULL ENABLE);
4308 dpurdie 3149
--------------------------------------------------------
4211 dpurdie 3150
--  Constraints for Table TEST_TYPES
4040 dpurdie 3151
--------------------------------------------------------
3152
 
5172 dpurdie 3153
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" ADD CONSTRAINT "PK_TEST_TYPES" PRIMARY KEY ("TEST_TYPE_ID")
3154
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3155
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3156
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3157
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3158
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" MODIFY ("TEST_TYPE_NAME" NOT NULL ENABLE);
3159
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" MODIFY ("TEST_TYPE_ID" NOT NULL ENABLE);
3160
--------------------------------------------------------
3161
--  Constraints for Table BUILD_INSTANCES
3162
--------------------------------------------------------
3163
 
3164
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("STATE" NOT NULL ENABLE);
3165
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("BUILD_ID" NOT NULL ENABLE);
3166
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3167
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("PV_ID" NOT NULL ENABLE);
3168
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("TIMESTAMP" NOT NULL ENABLE);
3169
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_ID" PRIMARY KEY ("BUILD_ID")
3170
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3171
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3172
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3173
  TABLESPACE "RELEASEM_DATA"  ENABLE;
4040 dpurdie 3174
--------------------------------------------------------
4211 dpurdie 3175
--  Constraints for Table TEMP_ENV_STATES
4040 dpurdie 3176
--------------------------------------------------------
3177
 
5172 dpurdie 3178
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("TES_STATE" NOT NULL ENABLE);
3179
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("PKG_ID" NOT NULL ENABLE);
3180
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("PV_ID" NOT NULL ENABLE);
3181
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("LEVEL_NUM" NOT NULL ENABLE);
3182
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("SESSION_NUM" NOT NULL ENABLE);
4040 dpurdie 3183
--------------------------------------------------------
4211 dpurdie 3184
--  Constraints for Table VTREES_WORLD
4040 dpurdie 3185
--------------------------------------------------------
3186
 
5172 dpurdie 3187
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" MODIFY ("VTREE_ID" NOT NULL ENABLE);
3188
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" MODIFY ("WORLD_ID" NOT NULL ENABLE);
4040 dpurdie 3189
--------------------------------------------------------
4211 dpurdie 3190
--  Constraints for Table RELEASE_CONFIG
4040 dpurdie 3191
--------------------------------------------------------
3192
 
5172 dpurdie 3193
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD PRIMARY KEY ("RCON_ID")
3194
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3195
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3196
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3197
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3198
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3199
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" MODIFY ("RCON_ID" NOT NULL ENABLE);
4040 dpurdie 3200
--------------------------------------------------------
4211 dpurdie 3201
--  Constraints for Table VIEWS
4040 dpurdie 3202
--------------------------------------------------------
3203
 
5172 dpurdie 3204
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" ADD CONSTRAINT "PK_VIEWS" PRIMARY KEY ("VIEW_ID")
3205
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3206
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3207
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3208
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3209
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("PUBLIC_READ" NOT NULL ENABLE);
3210
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("BASE_VIEW" NOT NULL ENABLE);
3211
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("OWNER_ID" NOT NULL ENABLE);
3212
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("VIEW_NAME" NOT NULL ENABLE);
3213
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4040 dpurdie 3214
--------------------------------------------------------
4211 dpurdie 3215
--  Constraints for Table JIRA_ISSUES
4040 dpurdie 3216
--------------------------------------------------------
3217
 
5172 dpurdie 3218
  ALTER TABLE "RELEASE_MANAGER"."JIRA_ISSUES" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 3219
--------------------------------------------------------
3220
--  Constraints for Table PLATFORMS
3221
--------------------------------------------------------
4040 dpurdie 3222
 
5172 dpurdie 3223
  ALTER TABLE "RELEASE_MANAGER"."PLATFORMS" MODIFY ("NAME" NOT NULL ENABLE);
3224
  ALTER TABLE "RELEASE_MANAGER"."PLATFORMS" MODIFY ("CODE" NOT NULL ENABLE);
4040 dpurdie 3225
--------------------------------------------------------
3226
--  Constraints for Table IGNORE_WARNINGS
3227
--------------------------------------------------------
3228
 
5172 dpurdie 3229
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("DPV_ID" NOT NULL ENABLE);
3230
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("PV_ID" NOT NULL ENABLE);
3231
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3232
--------------------------------------------------------
4211 dpurdie 3233
--  Constraints for Table DASH_BOARD
4040 dpurdie 3234
--------------------------------------------------------
3235
 
5172 dpurdie 3236
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("TOTAL_PACKAGES" NOT NULL ENABLE);
3237
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("AUTOMATED_PACKAGES" NOT NULL ENABLE);
3238
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("LAST_BUILD_TIME" NOT NULL ENABLE);
3239
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3240
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4040 dpurdie 3241
--------------------------------------------------------
4211 dpurdie 3242
--  Constraints for Table ACTION_TYPE
4040 dpurdie 3243
--------------------------------------------------------
3244
 
5172 dpurdie 3245
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" ADD CONSTRAINT "UNQ_ACTTYPE_ID" PRIMARY KEY ("ACTTYPE_ID")
3246
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3247
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3248
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3249
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3250
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" MODIFY ("NAME" NOT NULL ENABLE);
3251
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
4040 dpurdie 3252
--------------------------------------------------------
4211 dpurdie 3253
--  Constraints for Table PACKAGE_VERSIONS
4040 dpurdie 3254
--------------------------------------------------------
3255
 
5172 dpurdie 3256
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PK_PACKAGE_VERSIONS" PRIMARY KEY ("PV_ID")
3257
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3258
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3259
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3260
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3261
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("BUILD_TYPE" NOT NULL ENABLE);
3262
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("LAST_PV_ID" NOT NULL ENABLE);
3263
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("OWNER_ID" NOT NULL ENABLE);
3264
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("CREATOR_ID" NOT NULL ENABLE);
3265
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("MODIFIER_ID" NOT NULL ENABLE);
3266
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("DLOCKED" NOT NULL ENABLE);
3267
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PKG_VERSION" NOT NULL ENABLE);
3268
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PKG_ID" NOT NULL ENABLE);
3269
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3270
--------------------------------------------------------
4211 dpurdie 3271
--  Constraints for Table PACKAGE_INTEREST
4040 dpurdie 3272
--------------------------------------------------------
3273
 
5172 dpurdie 3274
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("USER_ID" NOT NULL ENABLE);
3275
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("PROJ_ID" NOT NULL ENABLE);
3276
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("PKG_ID" NOT NULL ENABLE);
4040 dpurdie 3277
--------------------------------------------------------
4211 dpurdie 3278
--  Constraints for Table RELEASE_CONTENT
4040 dpurdie 3279
--------------------------------------------------------
3280
 
5172 dpurdie 3281
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("PKG_STATE" NOT NULL ENABLE);
3282
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("INSERTOR_ID" NOT NULL ENABLE);
3283
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("INSERT_STAMP" NOT NULL ENABLE);
3284
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("BASE_VIEW_ID" NOT NULL ENABLE);
3285
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("PV_ID" NOT NULL ENABLE);
3286
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3287
--------------------------------------------------------
4211 dpurdie 3288
--  Constraints for Table RELEASE_METRICS
4040 dpurdie 3289
--------------------------------------------------------
3290
 
5172 dpurdie 3291
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" ADD CONSTRAINT "UNQ_RELEASE_METRICS" UNIQUE ("RTAG_ID")
3292
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3293
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3294
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3295
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3296
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3297
--------------------------------------------------------
4211 dpurdie 3298
--  Constraints for Table PROJECT_EXTENTIONS
4040 dpurdie 3299
--------------------------------------------------------
3300
 
5172 dpurdie 3301
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_EXTENTIONS" MODIFY ("EXT_NAME" NOT NULL ENABLE);
4040 dpurdie 3302
--------------------------------------------------------
4211 dpurdie 3303
--  Constraints for Table ABT_ACTION_LOG
4040 dpurdie 3304
--------------------------------------------------------
3305
 
5172 dpurdie 3306
  ALTER TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" MODIFY ("RCON_ID" NOT NULL ENABLE);
4040 dpurdie 3307
--------------------------------------------------------
4211 dpurdie 3308
--  Constraints for Table DAEMON_ACTION_LOG
4040 dpurdie 3309
--------------------------------------------------------
3310
 
5172 dpurdie 3311
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" MODIFY ("RCON_ID" NOT NULL ENABLE);
3312
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 3313
--------------------------------------------------------
4211 dpurdie 3314
--  Constraints for Table PACKAGE_METRICS
4040 dpurdie 3315
--------------------------------------------------------
3316
 
5172 dpurdie 3317
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" ADD CONSTRAINT "UNQ_PACKAGE_METRICS" UNIQUE ("PV_ID")
3318
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3319
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3320
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3321
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3322
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3323
--------------------------------------------------------
4211 dpurdie 3324
--  Constraints for Table CODE_REVIEW_URL
4040 dpurdie 3325
--------------------------------------------------------
3326
 
5172 dpurdie 3327
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PK" PRIMARY KEY ("CR_ID")
3328
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3329
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3330
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3331
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3332
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("DATE_OF_REVIEW" NOT NULL ENABLE);
3333
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("URL" NOT NULL ENABLE);
3334
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("PROJ_ID" NOT NULL ENABLE);
3335
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("PV_ID" NOT NULL ENABLE);
3336
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("CR_ID" NOT NULL ENABLE);
4040 dpurdie 3337
--------------------------------------------------------
4211 dpurdie 3338
--  Constraints for Table AUTOBUILD_FAILURE
4040 dpurdie 3339
--------------------------------------------------------
3340
 
5172 dpurdie 3341
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD PRIMARY KEY ("GROUP_EMAIL_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"."AUTOBUILD_FAILURE" MODIFY ("GROUP_EMAIL_ID" NOT NULL ENABLE);
4040 dpurdie 3347
--------------------------------------------------------
4211 dpurdie 3348
--  Constraints for Table BUILD_MACHINE_CONFIG
4040 dpurdie 3349
--------------------------------------------------------
3350
 
5172 dpurdie 3351
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ADD CONSTRAINT "PK_BUILD_MACHINE_CONFIG" PRIMARY KEY ("BMCON_ID")
3352
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3353
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3354
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3355
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3356
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("GBE_ID" NOT NULL ENABLE);
3357
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("MACHINE_HOSTNAME" NOT NULL ENABLE);
3358
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("DISPLAY_NAME" NOT NULL ENABLE);
3359
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("BMCON_ID" NOT NULL ENABLE);
3360
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("ACTIVE" NOT NULL ENABLE);
3361
--------------------------------------------------------
3362
--  Constraints for Table TEST_RUN
3363
--------------------------------------------------------
3364
 
3365
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TYPE" NOT NULL ENABLE);
3366
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("PLATFORM" NOT NULL ENABLE);
3367
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TEST_OUTCOME" NOT NULL ENABLE);
3368
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TEST_NAME" NOT NULL ENABLE);
3369
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("BUILD_ID" NOT NULL ENABLE);
4040 dpurdie 3370
--------------------------------------------------------
4211 dpurdie 3371
--  Constraints for Table VIEW_DEF
4040 dpurdie 3372
--------------------------------------------------------
3373
 
5172 dpurdie 3374
  ALTER TABLE "RELEASE_MANAGER"."VIEW_DEF" MODIFY ("PKG_ID" NOT NULL ENABLE);
3375
  ALTER TABLE "RELEASE_MANAGER"."VIEW_DEF" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4040 dpurdie 3376
--------------------------------------------------------
4211 dpurdie 3377
--  Constraints for Table BUILD_STANDARDS
4040 dpurdie 3378
--------------------------------------------------------
3379
 
5172 dpurdie 3380
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" ADD CONSTRAINT "BUILD_STANDARDS_PK" PRIMARY KEY ("BS_ID")
3381
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3382
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3383
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3384
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3385
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" MODIFY ("BS_NAME" NOT NULL ENABLE);
3386
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" MODIFY ("BS_ID" NOT NULL ENABLE);
4308 dpurdie 3387
--------------------------------------------------------
3388
--  Constraints for Table PACKAGE_BUILD_ENV
3389
--------------------------------------------------------
4040 dpurdie 3390
 
5172 dpurdie 3391
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" MODIFY ("BE_ID" NOT NULL ENABLE);
3392
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" MODIFY ("PV_ID" NOT NULL ENABLE);
3393
--------------------------------------------------------
3394
--  Constraints for Table RELEASE_MODIFIED
3395
--------------------------------------------------------
3396
 
3397
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3398
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" ADD CONSTRAINT "RELEASE_MODIFIED_PK" PRIMARY KEY ("RTAG_ID")
3399
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3400
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3401
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3402
  TABLESPACE "RELEASEM_DATA"  ENABLE;
4040 dpurdie 3403
--------------------------------------------------------
4211 dpurdie 3404
--  Constraints for Table VTREES
4040 dpurdie 3405
--------------------------------------------------------
3406
 
5172 dpurdie 3407
  ALTER TABLE "RELEASE_MANAGER"."VTREES" ADD CONSTRAINT "PK_VTREES" PRIMARY KEY ("VTREE_ID")
3408
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3409
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3410
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3411
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3412
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("HIDE" NOT NULL ENABLE);
3413
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("VTREE_NAME" NOT NULL ENABLE);
3414
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("PROJ_ID" NOT NULL ENABLE);
3415
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("VTREE_ID" NOT NULL ENABLE);
4040 dpurdie 3416
--------------------------------------------------------
4308 dpurdie 3417
--  Constraints for Table NOTIFICATION_HISTORY
3418
--------------------------------------------------------
4040 dpurdie 3419
 
5172 dpurdie 3420
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "PK_NOTIFICATION_HISTORY" PRIMARY KEY ("RTAG_ID", "PV_ID", "USER_ID")
3421
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3422
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3423
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3424
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3425
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("DATE_TIME_STAMP" NOT NULL ENABLE);
3426
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("USER_ID" NOT NULL ENABLE);
3427
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("PV_ID" NOT NULL ENABLE);
3428
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 3429
--------------------------------------------------------
3430
--  Constraints for Table RELEASE_LINKS
3431
--------------------------------------------------------
4040 dpurdie 3432
 
5172 dpurdie 3433
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" MODIFY ("REF_RTAG_ID" NOT NULL ENABLE);
3434
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 3435
--------------------------------------------------------
3436
--  Constraints for Table PACKAGES
3437
--------------------------------------------------------
4040 dpurdie 3438
 
5172 dpurdie 3439
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" ADD CONSTRAINT "PK_PACKAGES" PRIMARY KEY ("PKG_ID")
3440
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3441
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3442
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3443
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3444
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" MODIFY ("PKG_NAME" NOT NULL ENABLE);
3445
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" MODIFY ("PKG_ID" NOT NULL ENABLE);
4308 dpurdie 3446
--------------------------------------------------------
3447
--  Constraints for Table PROJECTS
3448
--------------------------------------------------------
4040 dpurdie 3449
 
5172 dpurdie 3450
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" ADD CONSTRAINT "PK_PROJECTS" PRIMARY KEY ("PROJ_ID")
3451
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3452
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3453
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3454
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3455
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" MODIFY ("PROJ_NAME" NOT NULL ENABLE);
3456
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4308 dpurdie 3457
--------------------------------------------------------
3458
--  Constraints for Table LICENCING
3459
--------------------------------------------------------
4040 dpurdie 3460
 
5172 dpurdie 3461
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" MODIFY ("LICENCE" NOT NULL ENABLE);
3462
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 3463
--------------------------------------------------------
3464
--  Constraints for Table MESSAGE_BOARD
3465
--------------------------------------------------------
4040 dpurdie 3466
 
5172 dpurdie 3467
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" ADD CONSTRAINT "PK_MESSAGE_BOARD" PRIMARY KEY ("MSG_ID")
3468
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3469
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3470
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3471
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3472
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("SUBMITION_DATE" NOT NULL ENABLE);
3473
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("MSG_DETAILS" NOT NULL ENABLE);
3474
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("MSG_ID" NOT NULL ENABLE);
4308 dpurdie 3475
--------------------------------------------------------
3476
--  Constraints for Table PROJECT_ACTION_LOG
3477
--------------------------------------------------------
4040 dpurdie 3478
 
5172 dpurdie 3479
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
3480
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("PROJ_ID" NOT NULL ENABLE);
3481
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("ACTION_DATETIME" NOT NULL ENABLE);
3482
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4308 dpurdie 3483
--------------------------------------------------------
3484
--  Constraints for Table ARCHIVE_DATA
3485
--------------------------------------------------------
4040 dpurdie 3486
 
5172 dpurdie 3487
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" MODIFY ("PV_ID" NOT NULL ENABLE);
3488
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 3489
--------------------------------------------------------
3490
--  Constraints for Table VALIDATION_RULES
3491
--------------------------------------------------------
4040 dpurdie 3492
 
5172 dpurdie 3493
  ALTER TABLE "RELEASE_MANAGER"."VALIDATION_RULES" MODIFY ("IS_REQUIRED" NOT NULL ENABLE);
3494
  ALTER TABLE "RELEASE_MANAGER"."VALIDATION_RULES" MODIFY ("FIELD_NAME" NOT NULL ENABLE);
4308 dpurdie 3495
--------------------------------------------------------
3496
--  Constraints for Table LICENCES
3497
--------------------------------------------------------
4040 dpurdie 3498
 
5172 dpurdie 3499
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" ADD CONSTRAINT "PK_LICENCES" PRIMARY KEY ("LICENCE")
3500
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3501
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3502
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3503
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3504
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" MODIFY ("NAME" NOT NULL ENABLE);
3505
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" MODIFY ("LICENCE" NOT NULL ENABLE);
4308 dpurdie 3506
--------------------------------------------------------
3507
--  Constraints for Table MEMBERS_GROUP
3508
--------------------------------------------------------
4040 dpurdie 3509
 
5172 dpurdie 3510
  ALTER TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" MODIFY ("GROUP_EMAIL_ID" NOT NULL ENABLE);
4308 dpurdie 3511
--------------------------------------------------------
3512
--  Constraints for Table CQ_ISSUES
3513
--------------------------------------------------------
4040 dpurdie 3514
 
5172 dpurdie 3515
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
3516
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_STATE" NOT NULL ENABLE);
3517
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_ID" NOT NULL ENABLE);
3518
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_DB" NOT NULL ENABLE);
3519
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 3520
--------------------------------------------------------
3521
--  Constraints for Table ARCHIVE_ACTION_LOG
3522
--------------------------------------------------------
4040 dpurdie 3523
 
5172 dpurdie 3524
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("DESCRIPTION" NOT NULL ENABLE);
3525
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3526
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("DATE_TIME_STAMP" NOT NULL ENABLE);
3527
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4308 dpurdie 3528
--------------------------------------------------------
4211 dpurdie 3529
--  Constraints for Table CODE_REVIEWS
4040 dpurdie 3530
--------------------------------------------------------
3531
 
5172 dpurdie 3532
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEWS" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 3533
--------------------------------------------------------
3534
--  Constraints for Table PLANNED
3535
--------------------------------------------------------
4040 dpurdie 3536
 
5172 dpurdie 3537
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "UNIQUE_PV_RTAG" UNIQUE ("PV_ID", "RTAG_ID")
3538
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3539
  STORAGE(INITIAL 131072 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_INDX"  ENABLE;
3542
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("VIEW_ID" NOT NULL ENABLE);
3543
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("PV_ID" NOT NULL ENABLE);
3544
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 3545
--------------------------------------------------------
3546
--  Constraints for Table VCS_TYPE
3547
--------------------------------------------------------
4040 dpurdie 3548
 
5172 dpurdie 3549
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" ADD CONSTRAINT "VCS_TYPE_PK" PRIMARY KEY ("VCS_TYPE_ID")
3550
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3551
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3552
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3553
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3554
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("TAG" NOT NULL ENABLE);
3555
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("NAME" NOT NULL ENABLE);
3556
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("VCS_TYPE_ID" NOT NULL ENABLE);
4308 dpurdie 3557
--------------------------------------------------------
3558
--  Constraints for Table BUILD_MACHINES
3559
--------------------------------------------------------
4040 dpurdie 3560
 
5172 dpurdie 3561
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" ADD CONSTRAINT "BUILD_MACHINES_PK" PRIMARY KEY ("BM_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_INDX"  ENABLE;
3566
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" MODIFY ("BM_NAME" NOT NULL ENABLE);
3567
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" MODIFY ("BM_ID" NOT NULL ENABLE);
4308 dpurdie 3568
--------------------------------------------------------
3569
--  Constraints for Table PEGGED_VERSIONS
3570
--------------------------------------------------------
4040 dpurdie 3571
 
5172 dpurdie 3572
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" MODIFY ("PV_ID" NOT NULL ENABLE);
3573
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 3574
--------------------------------------------------------
3575
--  Constraints for Table DAEMON_INSTRUCTIONS
3576
--------------------------------------------------------
4040 dpurdie 3577
 
5172 dpurdie 3578
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_UK1" UNIQUE ("OP_CODE", "RTAG_ID", "PV_ID")
3579
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3580
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3581
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3582
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3583
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_PK" PRIMARY KEY ("DAEMON_INSTRUCTIONS_ID")
3584
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3585
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3586
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3587
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3588
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" MODIFY ("OP_CODE" NOT NULL ENABLE);
3589
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" MODIFY ("DAEMON_INSTRUCTIONS_ID" NOT NULL ENABLE);
4040 dpurdie 3590
--------------------------------------------------------
4211 dpurdie 3591
--  Constraints for Table WORK_IN_PROGRESS
4040 dpurdie 3592
--------------------------------------------------------
3593
 
5172 dpurdie 3594
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
3595
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("PV_ID" NOT NULL ENABLE);
3596
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3597
--------------------------------------------------------
4308 dpurdie 3598
--  Constraints for Table BUILD_ENV_DOCUMENTS
3599
--------------------------------------------------------
4040 dpurdie 3600
 
5172 dpurdie 3601
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" MODIFY ("DOC_NUM" NOT NULL ENABLE);
3602
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" MODIFY ("BE_ID" NOT NULL ENABLE);
4308 dpurdie 3603
--------------------------------------------------------
4211 dpurdie 3604
--  Constraints for Table BUILD_ORDER
4040 dpurdie 3605
--------------------------------------------------------
3606
 
5172 dpurdie 3607
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("PV_ID" NOT NULL ENABLE);
3608
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("STEP_NUM" NOT NULL ENABLE);
3609
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 3610
--------------------------------------------------------
3611
--  Constraints for Table PACKAGE_DEPENDENCIES
3612
--------------------------------------------------------
4040 dpurdie 3613
 
5172 dpurdie 3614
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("BUILD_TYPE" NOT NULL ENABLE);
3615
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("DPKG_ID" NOT NULL ENABLE);
3616
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("PKG_ID" NOT NULL ENABLE);
3617
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("DPV_ID" NOT NULL ENABLE);
3618
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 3619
--------------------------------------------------------
3620
--  Constraints for Table PROCESSES
3621
--------------------------------------------------------
4040 dpurdie 3622
 
5172 dpurdie 3623
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" ADD CONSTRAINT "PROCESSES_PK" PRIMARY KEY ("PROC_ID")
3624
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3625
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3626
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3627
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3628
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" MODIFY ("PROC_NAME" NOT NULL ENABLE);
3629
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" MODIFY ("PROC_ID" NOT NULL ENABLE);
4308 dpurdie 3630
--------------------------------------------------------
3631
--  Constraints for Table BUILD_ENVIRONMENTS
3632
--------------------------------------------------------
4040 dpurdie 3633
 
5172 dpurdie 3634
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ADD CONSTRAINT "PK_BUILD_ENVIRONMENTS" PRIMARY KEY ("BE_ID")
3635
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3636
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3637
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3638
  TABLESPACE "RELEASEM_INDX"  ENABLE;
3639
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" MODIFY ("BE_NAME" NOT NULL ENABLE);
3640
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" MODIFY ("BE_ID" NOT NULL ENABLE);
4308 dpurdie 3641
--------------------------------------------------------
3642
--  Constraints for Table DEPRECATED_PACKAGES
3643
--------------------------------------------------------
4040 dpurdie 3644
 
5172 dpurdie 3645
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("COMMENTS" NOT NULL ENABLE);
3646
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("PKG_ID" NOT NULL ENABLE);
3647
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3648
--------------------------------------------------------
3649
--  Ref Constraints for Table ABT_ACTION_LOG
3650
--------------------------------------------------------
3651
 
5172 dpurdie 3652
  ALTER TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" ADD FOREIGN KEY ("RCON_ID")
3653
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
4040 dpurdie 3654
--------------------------------------------------------
3655
--  Ref Constraints for Table ACTION_LOG
3656
--------------------------------------------------------
3657
 
5172 dpurdie 3658
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" ADD CONSTRAINT "REFACTION_TYPE48" FOREIGN KEY ("ACTTYPE_ID")
3659
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
4040 dpurdie 3660
--------------------------------------------------------
3661
--  Ref Constraints for Table ADDITIONAL_NOTES
3662
--------------------------------------------------------
3663
 
5172 dpurdie 3664
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" ADD CONSTRAINT "FK_ADDITION_REF_PV_ID" FOREIGN KEY ("PV_ID")
3665
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 3666
--------------------------------------------------------
3667
--  Ref Constraints for Table ADVISORY_RIPPLE
3668
--------------------------------------------------------
3669
 
5172 dpurdie 3670
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" ADD FOREIGN KEY ("RTAG_ID")
3671
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
3672
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" ADD FOREIGN KEY ("PV_ID")
3673
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 3674
--------------------------------------------------------
3675
--  Ref Constraints for Table AUTOBUILD_FAILURE
3676
--------------------------------------------------------
3677
 
5172 dpurdie 3678
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD FOREIGN KEY ("PROJ_ID")
3679
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
3680
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD FOREIGN KEY ("VIEW_ID")
3681
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
4040 dpurdie 3682
--------------------------------------------------------
3683
--  Ref Constraints for Table BUILD_ENV_DOCUMENTS
3684
--------------------------------------------------------
3685
 
5172 dpurdie 3686
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" ADD CONSTRAINT "FK_BUILD_E_DOCS_REF_BUILD_ENV" FOREIGN KEY ("BE_ID")
3687
	  REFERENCES "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") ENABLE;
3688
--------------------------------------------------------
3689
--  Ref Constraints for Table BUILD_INSTANCES
3690
--------------------------------------------------------
3691
 
3692
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_INSTANCES_FK1" FOREIGN KEY ("RTAG_ID")
3693
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
3694
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_INSTANCES_FK2" FOREIGN KEY ("PV_ID")
3695
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 3696
--------------------------------------------------------
3697
--  Ref Constraints for Table BUILD_MACHINE_CONFIG
3698
--------------------------------------------------------
3699
 
5172 dpurdie 3700
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ADD CONSTRAINT "FK_BM_GBE_ID" FOREIGN KEY ("GBE_ID")
3701
	  REFERENCES "RELEASE_MANAGER"."GBE_MACHTYPE" ("GBE_ID") ENABLE;
4040 dpurdie 3702
--------------------------------------------------------
3703
--  Ref Constraints for Table BUILD_ORDER
3704
--------------------------------------------------------
3705
 
5172 dpurdie 3706
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" ADD CONSTRAINT "FK_BO_PV_ID" FOREIGN KEY ("PV_ID")
3707
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") DISABLE;
3708
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" ADD CONSTRAINT "FK_BO_RTAG_ID" FOREIGN KEY ("RTAG_ID")
3709
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 3710
--------------------------------------------------------
3711
--  Ref Constraints for Table BUILD_STANDARDS_ADDENDUM
3712
--------------------------------------------------------
3713
 
5172 dpurdie 3714
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ADD CONSTRAINT "BUILD_STANDARDS_ADDENDUM_R01" FOREIGN KEY ("BS_ID")
3715
	  REFERENCES "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") ENABLE;
4040 dpurdie 3716
--------------------------------------------------------
3717
--  Ref Constraints for Table CODE_REVIEWS
3718
--------------------------------------------------------
3719
 
5172 dpurdie 3720
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEWS" ADD CONSTRAINT "FK_CODE_REV_REF_PV_ID" FOREIGN KEY ("PV_ID")
3721
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 3722
--------------------------------------------------------
3723
--  Ref Constraints for Table CODE_REVIEW_URL
3724
--------------------------------------------------------
3725
 
5172 dpurdie 3726
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PACKAGE_V_FK1" FOREIGN KEY ("PV_ID")
3727
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
3728
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PROJECT_V_FK1" FOREIGN KEY ("PROJ_ID")
3729
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4040 dpurdie 3730
--------------------------------------------------------
3731
--  Ref Constraints for Table CQ_ISSUES
3732
--------------------------------------------------------
3733
 
5172 dpurdie 3734
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" ADD CONSTRAINT "FK_CQ_PV_ID" FOREIGN KEY ("PV_ID")
3735
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 3736
--------------------------------------------------------
3737
--  Ref Constraints for Table DAEMON_ACTION_LOG
3738
--------------------------------------------------------
3739
 
5172 dpurdie 3740
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" ADD FOREIGN KEY ("RCON_ID")
3741
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
3742
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" ADD FOREIGN KEY ("ACTTYPE_ID")
3743
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
4040 dpurdie 3744
--------------------------------------------------------
3745
--  Ref Constraints for Table DAEMON_INSTRUCTIONS
3746
--------------------------------------------------------
3747
 
5172 dpurdie 3748
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_PV_ID_FK" FOREIGN KEY ("PV_ID")
3749
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
3750
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_RTAG_ID_FK" FOREIGN KEY ("RTAG_ID")
3751
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 3752
--------------------------------------------------------
3753
--  Ref Constraints for Table DASH_BOARD
3754
--------------------------------------------------------
3755
 
5172 dpurdie 3756
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" ADD FOREIGN KEY ("PROJ_ID")
3757
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
3758
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" ADD FOREIGN KEY ("RTAG_ID")
3759
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 3760
--------------------------------------------------------
3761
--  Ref Constraints for Table DO_NOT_RIPPLE
3762
--------------------------------------------------------
3763
 
5172 dpurdie 3764
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" ADD FOREIGN KEY ("PV_ID")
3765
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
3766
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" ADD FOREIGN KEY ("RTAG_ID")
3767
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 3768
--------------------------------------------------------
3769
--  Ref Constraints for Table GBE_MACHTYPE
3770
--------------------------------------------------------
3771
 
5172 dpurdie 3772
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" ADD CONSTRAINT "GBE_MACHTYPE_BUILD_MACHIN_FK1" FOREIGN KEY ("BM_ID")
3773
	  REFERENCES "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") ENABLE;
4040 dpurdie 3774
--------------------------------------------------------
3775
--  Ref Constraints for Table IGNORE_WARNINGS
3776
--------------------------------------------------------
3777
 
5172 dpurdie 3778
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_DPV_ID" FOREIGN KEY ("DPV_ID")
3779
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
3780
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_PV_ID" FOREIGN KEY ("PV_ID")
3781
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
3782
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_RTAG_ID" FOREIGN KEY ("RTAG_ID")
3783
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 3784
--------------------------------------------------------
3785
--  Ref Constraints for Table JIRA_ISSUES
3786
--------------------------------------------------------
3787
 
5172 dpurdie 3788
  ALTER TABLE "RELEASE_MANAGER"."JIRA_ISSUES" ADD CONSTRAINT "FK_JIRA_PV_ID" FOREIGN KEY ("PV_ID")
3789
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 3790
--------------------------------------------------------
3791
--  Ref Constraints for Table LICENCING
3792
--------------------------------------------------------
3793
 
5172 dpurdie 3794
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD FOREIGN KEY ("PV_ID")
3795
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
3796
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD FOREIGN KEY ("LICENCE")
3797
	  REFERENCES "RELEASE_MANAGER"."LICENCES" ("LICENCE") ENABLE;
4040 dpurdie 3798
--------------------------------------------------------
3799
--  Ref Constraints for Table MEMBERS_GROUP
3800
--------------------------------------------------------
3801
 
5172 dpurdie 3802
  ALTER TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" ADD FOREIGN KEY ("GROUP_EMAIL_ID")
3803
	  REFERENCES "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ("GROUP_EMAIL_ID") ENABLE;
4040 dpurdie 3804
--------------------------------------------------------
3805
--  Ref Constraints for Table NOTIFICATION_HISTORY
3806
--------------------------------------------------------
3807
 
5172 dpurdie 3808
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "FK_NH_RTAG_ID" FOREIGN KEY ("RTAG_ID")
3809
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
3810
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "FK_NK_PV_ID" FOREIGN KEY ("PV_ID")
3811
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") DISABLE;
4040 dpurdie 3812
--------------------------------------------------------
3813
--  Ref Constraints for Table PACKAGE_BUILD_ENV
3814
--------------------------------------------------------
3815
 
5172 dpurdie 3816
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ADD CONSTRAINT "FK_PKG_BUILD_E_REF_BUILD_ENV" FOREIGN KEY ("BE_ID")
3817
	  REFERENCES "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") ENABLE;
3818
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ADD CONSTRAINT "FK_PKG_BUILD_E_REF_PKG_VERSION" FOREIGN KEY ("PV_ID")
3819
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 3820
--------------------------------------------------------
3821
--  Ref Constraints for Table PACKAGE_BUILD_INFO
3822
--------------------------------------------------------
3823
 
5172 dpurdie 3824
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" ADD FOREIGN KEY ("PV_ID")
3825
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
3826
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" ADD FOREIGN KEY ("BM_ID")
3827
	  REFERENCES "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") ENABLE;
4040 dpurdie 3828
--------------------------------------------------------
3829
--  Ref Constraints for Table PACKAGE_DOCUMENTS
3830
--------------------------------------------------------
3831
 
5172 dpurdie 3832
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ADD CONSTRAINT "FK_PKGDOCS_REF_PV" FOREIGN KEY ("PV_ID")
3833
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 3834
--------------------------------------------------------
3835
--  Ref Constraints for Table PACKAGE_INTEREST
3836
--------------------------------------------------------
3837
 
5172 dpurdie 3838
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" ADD FOREIGN KEY ("PROJ_ID")
3839
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4040 dpurdie 3840
--------------------------------------------------------
3841
--  Ref Constraints for Table PACKAGE_METRICS
3842
--------------------------------------------------------
3843
 
5172 dpurdie 3844
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" ADD CONSTRAINT "FK_PACKAGE_METRICS_PV_ID" FOREIGN KEY ("PV_ID")
3845
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 3846
--------------------------------------------------------
3847
--  Ref Constraints for Table PACKAGE_PATCHES
3848
--------------------------------------------------------
3849
 
5172 dpurdie 3850
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" ADD CONSTRAINT "FK_PP_PATCH_ID" FOREIGN KEY ("PATCH_ID")
3851
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
3852
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" ADD CONSTRAINT "FK_PP_PV_ID" FOREIGN KEY ("PV_ID")
3853
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 3854
--------------------------------------------------------
3855
--  Ref Constraints for Table PACKAGE_PROCESSES
3856
--------------------------------------------------------
3857
 
5172 dpurdie 3858
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" ADD CONSTRAINT "PACKAGE_PROCESSES_R01" FOREIGN KEY ("PV_ID")
3859
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
3860
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" ADD CONSTRAINT "PACKAGE_PROCESSES_R02" FOREIGN KEY ("PROC_ID")
3861
	  REFERENCES "RELEASE_MANAGER"."PROCESSES" ("PROC_ID") ENABLE;
4040 dpurdie 3862
--------------------------------------------------------
3863
--  Ref Constraints for Table PACKAGE_VERSIONS
3864
--------------------------------------------------------
3865
 
5172 dpurdie 3866
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PACKAGE_VERSIONS_VCS_TYPE" FOREIGN KEY ("VCS_TYPE_ID")
3867
	  REFERENCES "RELEASE_MANAGER"."VCS_TYPE" ("VCS_TYPE_ID") ENABLE;
3868
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD FOREIGN KEY ("BS_ID")
3869
	  REFERENCES "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") ENABLE;
4040 dpurdie 3870
--------------------------------------------------------
3871
--  Ref Constraints for Table PEGGED_VERSIONS
3872
--------------------------------------------------------
3873
 
5172 dpurdie 3874
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" ADD CONSTRAINT "PEGGED_VERSIONS_PACKAG_FK1" FOREIGN KEY ("PV_ID")
3875
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
3876
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" ADD CONSTRAINT "PEGGED_VERSIONS_RELEAS_FK1" FOREIGN KEY ("RTAG_ID")
3877
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 3878
--------------------------------------------------------
3879
--  Ref Constraints for Table PLANNED
3880
--------------------------------------------------------
3881
 
5172 dpurdie 3882
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFPACKAGE_VERSIONS54" FOREIGN KEY ("PV_ID")
3883
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
3884
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFRELEASE_TAGS53" FOREIGN KEY ("RTAG_ID")
3885
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
3886
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFVIEWS55" FOREIGN KEY ("VIEW_ID")
3887
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
4040 dpurdie 3888
--------------------------------------------------------
3889
--  Ref Constraints for Table PLANNED_VERSIONS
3890
--------------------------------------------------------
3891
 
5172 dpurdie 3892
  ALTER TABLE "RELEASE_MANAGER"."PLANNED_VERSIONS" ADD FOREIGN KEY ("PKG_ID")
3893
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
4040 dpurdie 3894
--------------------------------------------------------
3895
--  Ref Constraints for Table PRODUCT_COMPONENTS
3896
--------------------------------------------------------
3897
 
5172 dpurdie 3898
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" ADD CONSTRAINT "REFPACKAGE_VERSIONS49" FOREIGN KEY ("PV_ID")
3899
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 3900
--------------------------------------------------------
3901
--  Ref Constraints for Table PROJECT_ACTION_LOG
3902
--------------------------------------------------------
3903
 
5172 dpurdie 3904
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ADD CONSTRAINT "REFACTION_TYPE63" FOREIGN KEY ("ACTTYPE_ID")
3905
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
3906
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ADD FOREIGN KEY ("RTAG_ID")
3907
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") DISABLE;
4040 dpurdie 3908
--------------------------------------------------------
3909
--  Ref Constraints for Table RELEASE_COMPONENTS
3910
--------------------------------------------------------
3911
 
5172 dpurdie 3912
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" ADD CONSTRAINT "FK_RCONT_PV_ID" FOREIGN KEY ("PV_ID")
3913
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 3914
--------------------------------------------------------
3915
--  Ref Constraints for Table RELEASE_CONFIG
3916
--------------------------------------------------------
3917
 
5172 dpurdie 3918
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD FOREIGN KEY ("RTAG_ID")
3919
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
3920
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD FOREIGN KEY ("GBE_ID")
3921
	  REFERENCES "RELEASE_MANAGER"."GBE_MACHTYPE" ("GBE_ID") ENABLE;
4040 dpurdie 3922
--------------------------------------------------------
3923
--  Ref Constraints for Table RELEASE_CONTENT
3924
--------------------------------------------------------
3925
 
5172 dpurdie 3926
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD CONSTRAINT "RELEASE_CONTENT_FK1" FOREIGN KEY ("SDKTAG_ID")
3927
	  REFERENCES "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") ENABLE;
3928
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD FOREIGN KEY ("PKG_ID")
3929
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
3930
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD FOREIGN KEY ("PRODUCT_STATE")
3931
	  REFERENCES "RELEASE_MANAGER"."PRODUCT_STATES" ("STATE_ID") ENABLE;
4040 dpurdie 3932
--------------------------------------------------------
3933
--  Ref Constraints for Table RELEASE_LINKS
3934
--------------------------------------------------------
3935
 
5172 dpurdie 3936
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" ADD CONSTRAINT "REFRELEASE_TAGS56" FOREIGN KEY ("RTAG_ID")
3937
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
3938
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" ADD CONSTRAINT "REFRELEASE_TAGS58" FOREIGN KEY ("REF_RTAG_ID")
3939
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 3940
--------------------------------------------------------
3941
--  Ref Constraints for Table RELEASE_METRICS
3942
--------------------------------------------------------
3943
 
5172 dpurdie 3944
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" ADD CONSTRAINT "FK_RELEASE_METRICS_RTAG_ID" FOREIGN KEY ("RTAG_ID")
3945
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
3946
--------------------------------------------------------
3947
--  Ref Constraints for Table RELEASE_MODIFIED
3948
--------------------------------------------------------
3949
 
3950
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" ADD CONSTRAINT "RELEASE_MODIFIED_RELEASE__FK1" FOREIGN KEY ("RTAG_ID")
3951
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 3952
--------------------------------------------------------
3953
--  Ref Constraints for Table RUNTIME_DEPENDENCIES
3954
--------------------------------------------------------
3955
 
5172 dpurdie 3956
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ADD CONSTRAINT "FK_RTD_PV_ID" FOREIGN KEY ("PV_ID")
3957
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
3958
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ADD CONSTRAINT "FK_RTD_RTD_ID" FOREIGN KEY ("RTD_ID")
3959
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 3960
--------------------------------------------------------
3961
--  Ref Constraints for Table RUN_LEVEL
3962
--------------------------------------------------------
3963
 
5172 dpurdie 3964
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD FOREIGN KEY ("RCON_ID")
3965
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
3966
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD FOREIGN KEY ("CURRENT_PKG_ID_BEING_BUILT")
3967
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
3968
--------------------------------------------------------
3969
--  Ref Constraints for Table SDK_CONTENT
3970
--------------------------------------------------------
3971
 
3972
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" ADD CONSTRAINT "SDK_CONTENT_FK1" FOREIGN KEY ("PV_ID")
3973
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
3974
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" ADD CONSTRAINT "SDK_CONTENT_FK2" FOREIGN KEY ("SDKTAG_ID")
3975
	  REFERENCES "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") ENABLE;
3976
--------------------------------------------------------
3977
--  Ref Constraints for Table SDK_NAMES
3978
--------------------------------------------------------
3979
 
3980
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_FK1" FOREIGN KEY ("VIEW_ID")
3981
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
3982
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_FK2" FOREIGN KEY ("PROJ_ID")
3983
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
3984
--------------------------------------------------------
3985
--  Ref Constraints for Table SDK_TAGS
3986
--------------------------------------------------------
3987
 
3988
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_FK1" FOREIGN KEY ("SDK_ID")
3989
	  REFERENCES "RELEASE_MANAGER"."SDK_NAMES" ("SDK_ID") ENABLE;
3990
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_FK2" FOREIGN KEY ("RTAG_ID")
3991
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
3992
--------------------------------------------------------
3993
--  Ref Constraints for Table TEST_RUN
3994
--------------------------------------------------------
3995
 
3996
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" ADD CONSTRAINT "TEST_RUN_FK1" FOREIGN KEY ("BUILD_ID")
3997
	  REFERENCES "RELEASE_MANAGER"."BUILD_INSTANCES" ("BUILD_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 3998
--------------------------------------------------------
3999
--  Ref Constraints for Table UNIT_TESTS
4000
--------------------------------------------------------
4001
 
5172 dpurdie 4002
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" ADD CONSTRAINT "FK_UT_REF_PV_ID" FOREIGN KEY ("PV_ID")
4003
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4004
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" ADD CONSTRAINT "FK_UT_REF_TEST_TYPES" FOREIGN KEY ("TEST_TYPES_FK")
4005
	  REFERENCES "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_ID") ENABLE;
4040 dpurdie 4006
--------------------------------------------------------
4007
--  Ref Constraints for Table VTREES_WORLD
4008
--------------------------------------------------------
4009
 
5172 dpurdie 4010
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" ADD CONSTRAINT "FK_VW_REF_VTREE_ID" FOREIGN KEY ("VTREE_ID")
4011
	  REFERENCES "RELEASE_MANAGER"."VTREES" ("VTREE_ID") ENABLE;
4012
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" ADD CONSTRAINT "FK_VW_REF_WORLD_ID" FOREIGN KEY ("WORLD_ID")
4013
	  REFERENCES "RELEASE_MANAGER"."WORLDS" ("WORLD_ID") ENABLE;
4040 dpurdie 4014
--------------------------------------------------------
4015
--  Ref Constraints for Table WORK_IN_PROGRESS
4016
--------------------------------------------------------
4017
 
5172 dpurdie 4018
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFPACKAGE_VERSIONS51" FOREIGN KEY ("PV_ID")
4019
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4020
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFRELEASE_TAGS50" FOREIGN KEY ("RTAG_ID")
4021
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4022
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFVIEWS52" FOREIGN KEY ("VIEW_ID")
4023
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
4024
--------------------------------------------------------
4025
--  DDL for Trigger TRIGGER_BSA_ID
4026
--------------------------------------------------------
4027
 
4028
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_BSA_ID" 
4029
BEFORE INSERT ON BUILD_STANDARDS_ADDENDUM 
4030
for each row
4031
BEGIN
4032
  select SEQ_BSA_ID.nextval
4033
  into :new.BSA_ID
4034
  from DUAL;
4035
END;
4040 dpurdie 4036
/
5172 dpurdie 4037
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_BSA_ID" ENABLE;
4038
--------------------------------------------------------
4039
--  DDL for Trigger TRIGGER_BUILD_INSTANCE
4040
--------------------------------------------------------
4041
 
4042
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_BUILD_INSTANCE" 
4043
BEFORE INSERT ON BUILD_INSTANCES 
4044
for each row
4045
BEGIN
4046
  select SEQ_BUILD_INSTANCE.nextval
4047
  into :new.BUILD_ID
4048
  from DUAL;
4049
END;
4050
/
4051
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_BUILD_INSTANCE" ENABLE;
4052
--------------------------------------------------------
4053
--  DDL for Trigger TRIGGER_SDK_NAMES
4054
--------------------------------------------------------
4055
 
4056
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_NAMES" 
4057
BEFORE INSERT ON SDK_NAMES 
4058
for each row
4059
BEGIN
4060
  select SEQ_SDK_ID.nextval
4061
  into :new.SDK_ID
4062
  from DUAL;
4063
END;
4064
/
4065
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_NAMES" ENABLE;
4066
--------------------------------------------------------
4067
--  DDL for Trigger TRIGGER_SDK_TAGS
4068
--------------------------------------------------------
4069
 
4070
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_TAGS" 
4071
BEFORE INSERT ON SDK_TAGS 
4072
for each row
4073
BEGIN
4074
  select SEQ_SDKTAG_ID.nextval
4075
  into :new.SDKTAG_ID
4076
  from DUAL;
4077
END;
4078
/
4079
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_TAGS" ENABLE;
4040 dpurdie 4080
--------------------------------------------------------
4081
--  DDL for Function CAN_EDIT_PKG_IN_PROJECT
4082
--------------------------------------------------------
4083
 
5172 dpurdie 4084
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."CAN_EDIT_PKG_IN_PROJECT" ( nPvId IN NUMBER, nRtagId IN NUMBER ) RETURN NUMBER IS
1373 dpurdie 4085
 
4086
/* ---------------------------------------------------------------------------
4087
    Version: 3.0.0
4088
   --------------------------------------------------------------------------- */
4089
 
4090
    VExt PACKAGE_VERSIONS.V_EXT%TYPE;
4091
	ProjId NUMBER;
4092
	RowCount NUMBER;
4093
	cReleaseMode CHAR(1);
4094
 
4095
BEGIN
4096
 
4097
	--RETURN 1;
4098
 
4099
 
4100
	/*--------------- Business Rules Here -------------------*/
4101
	IF (nRtagId IS NULL)  OR  (nRtagId < 1)THEN
4102
		RETURN 0;
4103
	END IF;
4104
	/*-------------------------------------------------------*/
4105
 
4106
	/*-- First Check. See if package is used through release reference --*/
4107
	SELECT COUNT(rc.PV_ID) INTO RowCount
4108
	  FROM (
4109
	  		SELECT rl.REF_RTAG_ID
4110
			  FROM RELEASE_LINKS rl
4111
			 WHERE rl.RTAG_ID = nRtagId
4112
	  		) rl,
4113
			RELEASE_CONTENT rc
4114
	  WHERE rc.RTAG_ID = rl.REF_RTAG_ID
4115
	    AND rc.PV_ID = nPvId;			
4116
 
4117
	-- Decide if package can be edited  
4118
	IF RowCount > 0 THEN
4119
		-- Package is referenced from other release, hence cannot be edited
4120
		RETURN 0;	
5172 dpurdie 4121
	END IF;		
1373 dpurdie 4122
 
5172 dpurdie 4123
-- Check if the package is included through an SDK reference
4124
  SELECT count(*) INTO RowCount
4125
    FROM RELEASE_CONTENT rc
4126
   WHERE rc.RTAG_ID = nRtagId
4127
	    AND rc.PV_ID = nPvId
4128
      AND rc.SDKTAG_ID is not NULL ;
4129
 
4130
	IF RowCount > 0 THEN
4131
		-- Package is imported via SDK
4132
		RETURN 0;	
4133
	END IF;	
4134
 
4135
  -- Check if the package is pegged
4136
  SELECT count(*) INTO RowCount
4137
    FROM pegged_versions
4138
   WHERE RTAG_ID = nRtagId
4139
	    AND PV_ID = nPvId;
4140
 
4141
	IF RowCount > 0 THEN
4142
		-- Package is Pegged
4143
		RETURN 0;	
4144
	END IF;	
4145
 
1373 dpurdie 4146
		-- Check is only done for releases in restrictive mode
4147
		SELECT rt.OFFICIAL INTO cReleaseMode
4148
		  FROM RELEASE_TAGS rt
4149
		 WHERE rt.RTAG_ID = nRtagId;
4150
 
5172 dpurdie 4151
		IF cReleaseMode = 'N' OR cReleaseMode = 'R'  OR cReleaseMode = 'C' THEN
1373 dpurdie 4152
			-- Do not do any firther checking,
4153
			-- Package is editable here
4154
			RETURN 1;
4155
		END IF;	
4156
 
5172 dpurdie 4157
 
1373 dpurdie 4158
	/*-- Further checking --*/
4159
	-- Get proj_id
4160
	SELECT rt.PROJ_ID  INTO  ProjId
4161
	  FROM RELEASE_TAGS rt
4162
	 WHERE rt.RTAG_ID = nRtagId;
5172 dpurdie 4163
 
1373 dpurdie 4164
	BEGIN
4165
		-- Get v_ext
4166
		SELECT pv.V_EXT  INTO  Vext
4167
		  FROM PACKAGE_VERSIONS pv
4168
		 WHERE pv.PV_ID = nPvId;  
4169
 
4170
		EXCEPTION
4171
	    	WHEN NO_DATA_FOUND THEN
4172
	       		Vext := NULL;
4173
	END;	 
4174
 
4175
	--Temp Hack for Step Project
4176
	IF ProjId != 281 THEN
4177
		-- Find if package can be edited in this project
4178
			SELECT COUNT(pe.EXT_NAME) INTO RowCount
4179
	 		FROM PROJECT_EXTENTIONS pe
4180
			WHERE pe.PROJ_ID != ProjId  
4181
	  		AND pe.EXT_NAME = VExt;
4182
	END IF;		
4183
 
4184
	-- Decide if package can be edited  
4185
	IF RowCount > 0 THEN
5172 dpurdie 4186
		-- Package extension is found in other projects, hence NOT EDITABLE
1373 dpurdie 4187
		RETURN 0;
4188
	ELSE
4189
		RETURN 1;	
4190
	END IF;
4191
 
4192
 
4193
END CAN_EDIT_PKG_IN_PROJECT;
4040 dpurdie 4194
 
1374 dpurdie 4195
/
4040 dpurdie 4196
--------------------------------------------------------
4197
--  DDL for Function DT_ADDUSEROBJECT
4198
--------------------------------------------------------
4199
 
5172 dpurdie 4200
  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 4201
 
3959 dpurdie 4202
/
4040 dpurdie 4203
--------------------------------------------------------
4204
--  DDL for Function GET_AUTOMATED_LABEL
4205
--------------------------------------------------------
4206
 
5172 dpurdie 4207
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_AUTOMATED_LABEL" ( nPvId IN NUMBER ) RETURN VARCHAR2 IS
3959 dpurdie 4208
 
4209
/* ---------------------------------------------------------------------------
4210
    Version: 3.0.0
4211
   --------------------------------------------------------------------------- */
4212
 
4211 dpurdie 4213
  sPkgName VARCHAR2(4000);
4214
  sPkgVersion VARCHAR2(4000);
4215
  sVext VARCHAR2(4000);
4216
  cChangeType CHAR;
4217
  cBuildType CHAR;
4218
 
3959 dpurdie 4219
 
1373 dpurdie 4220
BEGIN
4221
 
3959 dpurdie 4222
	-- Get package details
4211 dpurdie 4223
	SELECT pkg.PKG_NAME, pv.V_EXT, pv.build_type, pv.change_type, pv.pkg_version INTO sPkgName, sVext,cBuildType, cChangeType, sPkgVersion  
3959 dpurdie 4224
	  FROM PACKAGE_VERSIONS pv,
4225
	  	   PACKAGES pkg
4226
	 WHERE pv.PKG_ID = pkg.PKG_ID
4227
	   AND pv.PV_ID = nPvId;
4228
 
4211 dpurdie 4229
  -- Generate Label for manually built package
4230
  If cBuildType = 'M' Then
4231
    return (sPkgName ||'_'|| sPkgVersion );
4232
  End If;
3959 dpurdie 4233
 
4211 dpurdie 4234
  -- Generate Label for automated build with specified package version
4235
  IF cchangetype = 'F' Then
4236
    return (sPkgName ||'_'|| sPkgVersion ||'.WIP');
4237
  End If;
4238
 
3959 dpurdie 4239
	-- Generate Label for automated build
4240
	RETURN UPPER( sPkgName ||'.'|| nPvId || sVext ||'.WIP' );
4241
 
4242
END GET_AUTOMATED_LABEL;
4040 dpurdie 4243
 
1374 dpurdie 4244
/
4040 dpurdie 4245
--------------------------------------------------------
4246
--  DDL for Function GET_BUILD_NUMBER
4247
--------------------------------------------------------
4248
 
5172 dpurdie 4249
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_BUILD_NUMBER" (s_version IN VARCHAR2) RETURN VARCHAR2
1373 dpurdie 4250
IS
4251
/* ---------------------------------------------------------------------------
4252
    Version: 1.0.0
4253
   --------------------------------------------------------------------------- */
4254
BEGIN
4255
    IF is_number(s_version) AND LENGTH(s_version) > 3
4256
    THEN
4257
        RETURN MOD(TO_NUMBER(s_version), 1000);
4258
    ELSE
4259
        RETURN 0;
4260
    END IF;
4261
END get_build_number;
4040 dpurdie 4262
 
1374 dpurdie 4263
/
4040 dpurdie 4264
--------------------------------------------------------
4265
--  DDL for Function GET_PATCH_VERSION
4266
--------------------------------------------------------
4267
 
5172 dpurdie 4268
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_PATCH_VERSION" (s_version IN VARCHAR2) RETURN VARCHAR2
1373 dpurdie 4269
IS
4270
/* ---------------------------------------------------------------------------
3959 dpurdie 4271
    Version: 1.0.0
1373 dpurdie 4272
   --------------------------------------------------------------------------- */
4273
BEGIN
3959 dpurdie 4274
    IF is_number(s_version) AND LENGTH(s_version) > 3
1373 dpurdie 4275
    THEN
3959 dpurdie 4276
        RETURN FLOOR(TO_NUMBER(s_version) / 1000);
1373 dpurdie 4277
    ELSE
3959 dpurdie 4278
        RETURN s_version;
1373 dpurdie 4279
    END IF;
3959 dpurdie 4280
END get_patch_version;
4040 dpurdie 4281
 
1374 dpurdie 4282
/
4040 dpurdie 4283
--------------------------------------------------------
4284
--  DDL for Function GET_PV_FIRST_MODIFIED
4285
--------------------------------------------------------
4286
 
5172 dpurdie 4287
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" (v_pv_id NUMBER) RETURN DATE IS
3959 dpurdie 4288
  ret DATE;
1373 dpurdie 4289
BEGIN
3959 dpurdie 4290
  SELECT q.modified_stamp
4291
    INTO ret
4292
    FROM (
4293
            SELECT level AS lvl, pvc.pv_id, pvc.modified_stamp, pvc.change_type
4294
              FROM package_versions pvc
4295
              START WITH pvc.pv_id = v_pv_id
4296
            CONNECT BY NOCYCLE pvc.pv_id = PRIOR pvc.last_pv_id
4297
          ) Q
4298
  WHERE q.change_type IS NOT NULL
4299
    AND rownum = 1
4300
  ORDER BY q.lvl;
4301
 
4302
  RETURN ret;
4303
END;
4040 dpurdie 4304
 
1374 dpurdie 4305
/
4040 dpurdie 4306
--------------------------------------------------------
4307
--  DDL for Function GET_V_EXT
4308
--------------------------------------------------------
4309
 
5172 dpurdie 4310
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_V_EXT" (SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE) RETURN VARCHAR2 IS
3959 dpurdie 4311
 
1373 dpurdie 4312
/* ---------------------------------------------------------------------------
3959 dpurdie 4313
    Version: 3.0.0
1373 dpurdie 4314
   --------------------------------------------------------------------------- */
3959 dpurdie 4315
 
4316
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
4317
    lastDot NUMBER;
4318
 
1373 dpurdie 4319
BEGIN
3959 dpurdie 4320
    lastDot := INSTR (SSpkg_version, '.', -1);
4321
 
4322
    IF ( lastDot > 0 ) AND ( lastDot != LENGTH(SSpkg_version) )
1373 dpurdie 4323
    THEN
3959 dpurdie 4324
        -- YES dot separator found --
4325
        SSV_EXT := SUBSTR (SSpkg_version, lastDot, LENGTH(SSpkg_version)-lastDot+1);
4326
 
4327
        IF IS_VERSION_EXTENSION ( SSV_EXT )
4328
        THEN
4329
            RETURN SSV_EXT;
4330
        ELSE
4331
            RETURN NULL;
4332
        END IF;
4333
 
1373 dpurdie 4334
    ELSE
3959 dpurdie 4335
        -- NO dot separator found --
4336
        RETURN NULL;
1373 dpurdie 4337
    END IF;
3959 dpurdie 4338
 
4339
END GET_V_EXT;
4040 dpurdie 4340
 
1374 dpurdie 4341
/
4040 dpurdie 4342
--------------------------------------------------------
4343
--  DDL for Function IN_LIST_NUMBER
4344
--------------------------------------------------------
4345
 
5172 dpurdie 4346
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER" ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS
1373 dpurdie 4347
 
4348
/* ---------------------------------------------------------------------------
4349
    Version: 3.0.0
4350
   --------------------------------------------------------------------------- */
4351
 
4352
    sync_rtags		   RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
4353
	pos				   NUMBER;
3959 dpurdie 4354
	in_list			   VARCHAR2(4000) := sInList || ',';
1373 dpurdie 4355
 
4356
BEGIN
4357
 
4358
	IF NOT sInList IS NULL
4359
	THEN
4360
		LOOP
4361
	        EXIT WHEN in_list IS NULL;
4362
	        pos := INSTR ( in_list, ',' );
4363
	        sync_rtags.extend;
4364
	        sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
4365
	        in_list := SUBSTR ( in_list, pos+1 );
4366
		END LOOP;
4367
	END IF;
4368
 
4369
	RETURN sync_rtags;
3959 dpurdie 4370
END IN_LIST_NUMBER;
4040 dpurdie 4371
 
1374 dpurdie 4372
/
4040 dpurdie 4373
--------------------------------------------------------
4374
--  DDL for Function IN_LIST_NUMBER2
4375
--------------------------------------------------------
4376
 
5172 dpurdie 4377
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER2" ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS
1373 dpurdie 4378
 
4379
/* ---------------------------------------------------------------------------
4380
    Version: 3.0.0
4381
   --------------------------------------------------------------------------- */
4382
 
4383
    sync_rtags		   RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
4384
	pos				   NUMBER;
3959 dpurdie 4385
	in_list			   VARCHAR2(32767) := sInList || ',';
1373 dpurdie 4386
 
4387
BEGIN
4388
 
4389
	IF NOT sInList IS NULL
4390
	THEN
4391
		LOOP
4392
	        EXIT WHEN in_list IS NULL;
4393
	        pos := INSTR ( in_list, ',' );
4394
	        sync_rtags.extend;
4395
	        sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
4396
	        in_list := SUBSTR ( in_list, pos+1 );
4397
		END LOOP;
4398
	END IF;
4399
 
4400
	RETURN sync_rtags;
3959 dpurdie 4401
END IN_LIST_NUMBER2;
4040 dpurdie 4402
 
1374 dpurdie 4403
/
4040 dpurdie 4404
--------------------------------------------------------
4405
--  DDL for Function IN_LIST_VARCHAR2
4406
--------------------------------------------------------
4407
 
5172 dpurdie 4408
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_VARCHAR2" ( sInList IN VARCHAR2, cSeparator IN VARCHAR2 ) RETURN RELMGR_VARCHAR2_TAB_t IS
1373 dpurdie 4409
 
4410
/* ---------------------------------------------------------------------------
4411
    Version: 3.1
4412
   --------------------------------------------------------------------------- */
4413
 
4414
    cItemCollection	   RELMGR_VARCHAR2_TAB_t := RELMGR_VARCHAR2_TAB_t();
4415
	pos				   NUMBER;
4416
	in_list			   VARCHAR2(4000) := sInList || cSeparator;
4417
	val				   VARCHAR2(4000);
4418
 
4419
BEGIN
4420
 
4421
	IF NOT sInList IS NULL
4422
	THEN
4423
		LOOP
4424
	        EXIT WHEN in_list IS NULL;
4425
	        pos := INSTR ( in_list, cSeparator );
4426
			val := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
4427
 
4428
			IF (NOT val IS NULL) THEN
4429
		        cItemCollection.extend;
4430
		        cItemCollection(cItemCollection.count) := val;
4431
			END IF;
4432
 
4433
	        in_list := SUBSTR ( in_list, pos+1 );
4434
		END LOOP;
4435
	END IF;
4436
 
4437
	RETURN cItemCollection;
4438
END IN_LIST_VARCHAR2;
4040 dpurdie 4439
 
1374 dpurdie 4440
/
4040 dpurdie 4441
--------------------------------------------------------
4442
--  DDL for Function IS_NUMBER
4443
--------------------------------------------------------
4444
 
5172 dpurdie 4445
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IS_NUMBER" (p_val IN VARCHAR2) RETURN BOOLEAN
3959 dpurdie 4446
IS
4447
   temp_num NUMBER;
4448
/* ---------------------------------------------------------------------------
4449
    Version: 1.0.0
4450
   --------------------------------------------------------------------------- */
4451
BEGIN
4452
   temp_num := TO_NUMBER(p_val);
4453
   RETURN true;
4454
EXCEPTION WHEN VALUE_ERROR THEN
4455
   RETURN false;
4456
END IS_NUMBER;
4040 dpurdie 4457
 
3959 dpurdie 4458
/
4040 dpurdie 4459
--------------------------------------------------------
4460
--  DDL for Function IS_VERSION_EXTENSION
4461
--------------------------------------------------------
4462
 
5172 dpurdie 4463
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IS_VERSION_EXTENSION" (SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE) RETURN BOOLEAN
3959 dpurdie 4464
IS
4465
/* ---------------------------------------------------------------------------
4466
    Version: 3.0.0
4467
   --------------------------------------------------------------------------- */
1373 dpurdie 4468
 
3959 dpurdie 4469
BEGIN
4470
    IF LENGTH ( TRIM (TRANSLATE (SSV_EXT, '.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',' ') ) ) > 0
4471
    THEN
4472
        RETURN FALSE;
4473
    ELSE
4474
        RETURN TRUE;
4475
    END IF;
1373 dpurdie 4476
 
3959 dpurdie 4477
END IS_VERSION_EXTENSION;
4040 dpurdie 4478
 
1374 dpurdie 4479
/
4040 dpurdie 4480
--------------------------------------------------------
4481
--  DDL for Function ORA_SYSDATE
4482
--------------------------------------------------------
4483
 
5172 dpurdie 4484
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."ORA_SYSDATE" 
3959 dpurdie 4485
RETURN DATE
1373 dpurdie 4486
IS
3959 dpurdie 4487
/* ---------------------------------------------------------------------------
4488
    Version: 3.0.0
4489
   --------------------------------------------------------------------------- */
4490
BEGIN
1373 dpurdie 4491
 
3959 dpurdie 4492
    RETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY' ),'DD-MON-YYYY' );
4493
END ORA_SYSDATE;
4040 dpurdie 4494
 
3959 dpurdie 4495
/
4040 dpurdie 4496
--------------------------------------------------------
4497
--  DDL for Function ORA_SYSDATETIME
4498
--------------------------------------------------------
4499
 
5172 dpurdie 4500
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."ORA_SYSDATETIME" 
3959 dpurdie 4501
RETURN DATE
4502
IS
4503
/* ---------------------------------------------------------------------------
4504
    Version: 3.0.0
4505
   --------------------------------------------------------------------------- */
4506
BEGIN
1373 dpurdie 4507
 
3959 dpurdie 4508
    RETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY HH24:MI:SS' ),'DD-MON-YYYY HH24:MI:SS' );
4509
END ORA_SYSDATETIME;
4040 dpurdie 4510
 
3959 dpurdie 4511
/
4040 dpurdie 4512
--------------------------------------------------------
4513
--  DDL for Function PERL_DBD_TESTFUNC
4514
--------------------------------------------------------
4515
 
5172 dpurdie 4516
  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 4517
 
1374 dpurdie 4518
/
4040 dpurdie 4519
--------------------------------------------------------
4520
--  DDL for Function RELEASE_MODE
4521
--------------------------------------------------------
4522
 
5172 dpurdie 4523
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."RELEASE_MODE" ( nRtagId IN NUMBER ) RETURN CHAR IS
1373 dpurdie 4524
 
3959 dpurdie 4525
/* ---------------------------------------------------------------------------
4526
    Version: 3.0.0
4527
   --------------------------------------------------------------------------- */
1373 dpurdie 4528
 
3959 dpurdie 4529
   returnValue CHAR(1);
1373 dpurdie 4530
 
3959 dpurdie 4531
BEGIN
1373 dpurdie 4532
 
3959 dpurdie 4533
    /*--------------- Business Rules Here -------------------*/
4534
	/*-------------------------------------------------------*/
4535
 
4536
	-- Get release mode
4537
	SELECT rt.OFFICIAL INTO returnValue
4538
	  FROM RELEASE_TAGS rt
4539
	 WHERE rt.RTAG_ID = nRtagId;
4540
 
4541
	RETURN returnValue;
4542
 
4543
END RELEASE_MODE;
4040 dpurdie 4544
 
1374 dpurdie 4545
/
4040 dpurdie 4546
--------------------------------------------------------
4547
--  DDL for Package PK_APP_UTILS
4548
--------------------------------------------------------
4549
 
5172 dpurdie 4550
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_APP_UTILS" IS
1373 dpurdie 4551
/*
4552
------------------------------
4553
||  Last Modified:  S.Vukovic
4554
||  Modified Date:  26/Apr/2005
4555
||  Spec Version:   1.0
4556
------------------------------
4557
*/
4558
 
4559
	TYPE typeCur IS REF CURSOR;
4560
 
4561
    /*================================================================================================*/
4562
 
4563
	PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur);
4564
 
4565
	/*================================================================================================*/
4566
 
4567
END PK_APP_UTILS;
4040 dpurdie 4568
 
1374 dpurdie 4569
/
4040 dpurdie 4570
--------------------------------------------------------
4571
--  DDL for Package PK_ARCHIVE
4572
--------------------------------------------------------
4573
 
5172 dpurdie 4574
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_ARCHIVE" 
1373 dpurdie 4575
IS
3959 dpurdie 4576
/*
4577
------------------------------
4578
||  Author:  Rupesh Solanki
4579
||  Date:    26 October 2006
4580
||  Version:   1.0
4581
------------------------------
4582
*/
1373 dpurdie 4583
 
3959 dpurdie 4584
   /*================================================================================================*/
4585
   PROCEDURE populate_packages_table;
4586
 
4587
   PROCEDURE populate_archive_data_table (
4588
      nrtagid   IN   release_tags.rtag_id%TYPE
4589
   );
1373 dpurdie 4590
 
3959 dpurdie 4591
   PROCEDURE migrate_pv_to_archive_SCHEMA (nrtagid IN release_tags.rtag_id%TYPE);
1373 dpurdie 4592
 
3959 dpurdie 4593
   PROCEDURE migrate_rtag_to_archive_schema (
4594
      nrtagid   IN   release_tags.rtag_id%TYPE
4595
   );
1373 dpurdie 4596
 
3959 dpurdie 4597
   PROCEDURE clean_up_archive_data_table (
4598
      nrtagid   IN   release_tags.rtag_id%TYPE
4599
   );
1373 dpurdie 4600
 
3959 dpurdie 4601
   PROCEDURE write_action_log (
4602
      nuserid   IN   NUMBER,
4603
      nrtagid   IN   release_tags.rtag_id%TYPE
1373 dpurdie 4604
   );
4605
/*================================================================================================*/
3959 dpurdie 4606
END pk_archive;
4040 dpurdie 4607
 
1374 dpurdie 4608
/
4040 dpurdie 4609
--------------------------------------------------------
4610
--  DDL for Package PK_BUILDAPI
4611
--------------------------------------------------------
4612
 
5172 dpurdie 4613
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_BUILDAPI" 
1373 dpurdie 4614
IS
4615
   /*================================================================================================*/
4616
   PROCEDURE add_product_component (
4617
      npvid           IN   NUMBER,
4618
      sosname         IN   VARCHAR2,
4619
      sorigfilepath   IN   VARCHAR2,
4620
      sfilename       IN   VARCHAR2,
4621
      sdestfilepath   IN   VARCHAR2,
4622
      nbytesize       IN   NUMBER,
4623
      scrccksum       IN   VARCHAR2
4624
   );
4625
 
4626
   PROCEDURE remove_all_product_components (
4627
      npvid     IN   NUMBER,
4628
      sosname   IN   VARCHAR2
4629
   );
4630
 
4631
   /*================================================================================================*/
4632
   FUNCTION get_osid (sosname IN VARCHAR2)
4633
      RETURN NUMBER;
4634
 
4308 dpurdie 4635
  /*================================================================================================*/
4636
    PROCEDURE update_build_service_info (
1373 dpurdie 4637
      sdatabaseserver   IN   VARCHAR2,
4638
      sarchiveserver    IN   VARCHAR2,
4639
      smailserver       IN   VARCHAR2,
4640
      smailsender       IN   VARCHAR2,
4211 dpurdie 4641
      faultmlist        IN   VARCHAR2,
1373 dpurdie 4642
      sdiskspace        IN   VARCHAR2,
4643
      ssbommanagement   IN   VARCHAR2
4644
   );
4645
 
4646
   /*================================================================================================*/
4040 dpurdie 4647
   PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2, sgbeclass IN NUMBER);
1373 dpurdie 4648
 
4649
   /*================================================================================================*/
4650
   PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER);
4651
 
4652
   /*================================================================================================*/
4040 dpurdie 4653
   PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2, sgbeclass IN NUMBER);
1373 dpurdie 4654
 
4040 dpurdie 4655
  /*================================================================================================*/
4656
   PROCEDURE add_buildmachine (sbmvalue IN VARCHAR2);
4657
 
1373 dpurdie 4658
   /*================================================================================================*/
4040 dpurdie 4659
   PROCEDURE remove_buildmachine (nbm_id IN NUMBER);
4660
 
4661
   /*================================================================================================*/
4662
   PROCEDURE update_buildmachine (nbm_id IN NUMBER, sbmvalue IN VARCHAR2);
4663
 
4664
   /*================================================================================================*/
1373 dpurdie 4665
   PROCEDURE delete_daemon (srconidlist IN VARCHAR2);
4308 dpurdie 4666
 
1373 dpurdie 4667
   /*================================================================================================*/
4308 dpurdie 4668
   PROCEDURE remove_daemon (srconidlist IN VARCHAR2);
1373 dpurdie 4669
 
4670
   /*================================================================================================*/
4671
   PROCEDURE insert_schedule_info (
4672
      dschedulepause     IN   DATE,
4673
      dscheduleresume    IN   DATE,
4674
      crepeat            IN   VARCHAR2,
4675
      cindefinitepause   IN   VARCHAR2
4676
   );
4677
 
4678
   /*================================================================================================*/
4679
   PROCEDURE delete_schedule (nscheduleid IN NUMBER);
4680
 
4681
   /*================================================================================================*/
4682
   PROCEDURE set_infinite_pause;
4683
 
4684
   /*================================================================================================*/
4685
   PROCEDURE set_resume;
4686
 
4687
   /*================================================================================================*/
4688
   PROCEDURE delete_out_of_date_schedule;
4689
 
4690
   /*================================================================================================*/
4691
   PROCEDURE set_daemon_resume (nrconid IN NUMBER);
4692
 
4693
   /*================================================================================================*/
4694
   PROCEDURE set_daemon_pause (nrconid IN NUMBER);
4695
 
4696
   /*================================================================================================*/
4697
   PROCEDURE set_daemon_disable (nrconid NUMBER);
4698
 
4699
   /*================================================================================================*/
4700
   PROCEDURE set_daemon_states (nrtagid NUMBER, nstate NUMBER);
4701
 
4702
   /*================================================================================================*/
4703
   PROCEDURE mark_daemon_inst_in_progress( nInstId IN NUMBER );
4704
   /*================================================================================================*/
4705
   PROCEDURE mark_daemon_inst_completed( nInstId IN NUMBER );
4706
   /*================================================================================================*/
4707
   FUNCTION get_daemon_inst(
4708
      nRtag_id IN NUMBER,
4709
      nInst_id IN OUT NUMBER,
4710
      nOp_code IN OUT NUMBER,
4711
      nPv_id OUT NUMBER,
4712
      nUser_id OUT NUMBER,
4713
      nInProgress OUT NUMBER
4714
   ) RETURN NUMBER;
4715
   /*================================================================================================*/
4716
   PROCEDURE cleanup_stranded_daemon_insts;
4717
   /*================================================================================================*/
4718
   PROCEDURE insert_daemon_inst(
4719
      nOp_code IN NUMBER,
4720
      nRtag_id IN NUMBER,
4721
      nPv_id IN NUMBER,
4722
      nSchedDate IN DATE,
4723
      nRepeatSecs IN NUMBER,
4724
      nAddedDate IN DATE,
4725
      nUser_id IN NUMBER
4726
   );
4727
   /*================================================================================================*/
4728
   PROCEDURE del_daemon_inst( nInstId IN NUMBER );
4729
   /*================================================================================================*/
4730
   PROCEDURE del_daemon_inst_by_rtag_pvid(
4731
      nOp_code IN NUMBER,
4732
      nRtag_id IN NUMBER,
4733
      nPv_id IN NUMBER
4734
   );
4735
   /*================================================================================================*/
4736
   PROCEDURE update_daemon_inst(
4737
      nInstId IN NUMBER,
4738
      nOp_code IN NUMBER,
4739
      nRtag_id IN NUMBER,
4740
      nPv_id IN NUMBER,
4741
      nSchedDate IN DATE,
4742
      nRepeatSecs IN NUMBER,
4743
      nAddedDate IN DATE,
4744
      nUser_id IN NUMBER
4745
   );
4746
   /*================================================================================================*/
4747
   FUNCTION daemon_ops_for_rtag_pvid(
4748
      nRtag_id IN NUMBER,
4749
      nPv_id IN NUMBER
4750
   ) RETURN VARCHAR2;
4751
   /*================================================================================================*/
4752
   FUNCTION daemon_ops_for_rtag(
4753
      nRtag_id IN NUMBER
4754
   ) RETURN VARCHAR2;
4755
   /*================================================================================================*/
4756
   PROCEDURE add_daemon_config (
4757
      nrtagid           IN   NUMBER,
4758
      nbmcon_id         IN   NUMBER,
4759
      sdaemon_mode      IN   VARCHAR2,
4760
      sgbebuildfilter   IN   VARCHAR2
4761
   );
4762
   /*================================================================================================*/
4763
   PROCEDURE update_daemon_config (
4764
      nrconid           IN   NUMBER,
4765
      nbmcon_id         IN   NUMBER,
4766
      sdaemon_mode      IN   VARCHAR2,
4767
      sgbebuildfilter   IN   VARCHAR2
4768
   );
4769
 
4308 dpurdie 4770
 /*================================================================================================*/
4771
   PROCEDURE duplicate_daemon_config (
4772
      nrtagid           IN   NUMBER,
4773
      nbmcon_id         IN   NUMBER,
4774
      sdaemonhostname   IN   VARCHAR2,
4775
      ngbe_id           IN   NUMBER,
4776
      sdaemon_mode      IN   VARCHAR2,
4777
      sgbebuildfilter   IN   VARCHAR2
4778
   );
4779
 
1373 dpurdie 4780
   /*================================================================================================*/
4781
   PROCEDURE add_build_machine (
4782
      sdisplay_name          IN   VARCHAR2,
4783
      smachine_hostname      IN   VARCHAR2,
4784
      ngbeid                 IN   NUMBER,
5172 dpurdie 4785
      sdescription           IN   VARCHAR2,
4786
      sactive                IN CHAR
1373 dpurdie 4787
   );
4788
   /*================================================================================================*/
4789
   PROCEDURE delete_build_machine (sbmcon_id_list IN VARCHAR2);
4790
   /*================================================================================================*/
4791
   PROCEDURE update_build_machine (
4792
      nbmcon_id              IN   NUMBER,
4793
      sdisplay_name          IN   VARCHAR2,
4794
      smachine_hostname      IN   VARCHAR2,
4795
      ngbeid                 IN   NUMBER,
5172 dpurdie 4796
      sdescription           IN   VARCHAR2,
4797
      sactive                IN CHAR
1373 dpurdie 4798
   );
4553 dpurdie 4799
   /*================================================================================================*/
4800
   PROCEDURE import_daemons ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER  );
5172 dpurdie 4801
   /*================================================================================================*/
4802
   PROCEDURE set_finite_pause (
4803
      duration IN NUMBER
4804
   );
4805
 
1373 dpurdie 4806
END pk_buildapi;
4040 dpurdie 4807
 
1374 dpurdie 4808
/
4040 dpurdie 4809
--------------------------------------------------------
4810
--  DDL for Package PK_ENVIRONMENT
4811
--------------------------------------------------------
4812
 
5172 dpurdie 4813
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_ENVIRONMENT" IS
1373 dpurdie 4814
/*
4815
------------------------------
3959 dpurdie 4816
||  Last Modified:  G.Huddy
4817
||  Modified Date:  28/May/2008
4818
||  Spec Version:   1.2
1373 dpurdie 4819
------------------------------
4820
*/
4821
 
3959 dpurdie 4822
	TYPE typeCur IS REF CURSOR;
4823
 
1373 dpurdie 4824
	/*================================================================================================*/
4825
 
3959 dpurdie 4826
	FUNCTION SELECT_ENVIRONMENT_AREA ( cDlock IN PACKAGE_VERSIONS.DLOCKED%TYPE ) RETURN NUMBER;
4827
	FUNCTION GET_PACKAGE_AREA ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
4828
	FUNCTION GET_VIEW_LOCATION ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
4829
	PROCEDURE ADD_PACKAGE ( PvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
4830
	PROCEDURE ADD_PACKAGE_BULK ( PvIdList IN VARCHAR2, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
4831
	PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
4832
	FUNCTION REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, ForceRemove IN CHAR ) RETURN NUMBER;
4833
 
4834
	PROCEDURE GET_ENVIRONMENT_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
4835
	PROCEDURE GET_RELEASED_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
4836
	PROCEDURE GET_PENDING_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
4837
	PROCEDURE GET_WORK_IN_PROGRESS_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
4838
 
4839
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
4840
 
4841
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
4842
 
4843
 
4844
	PROCEDURE MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
4845
	PROCEDURE MAKE_UNRELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
4846
 
4847
	PROCEDURE MAKE_PENDING ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
4848
	PROCEDURE MAKE_APPROVED ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
4849
	PROCEDURE MAKE_REJECT ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
4850
	PROCEDURE APPROVE_MERGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
4851
 
4852
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
4853
 
4854
	PROCEDURE FIND_PACKAGE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, RecordSet OUT typeCur );
4855
	PROCEDURE FIND_FILE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, nPageSize IN NUMBER, RecordSet OUT typeCur );
4856
 
4857
	PROCEDURE AUTO_MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, VExt IN
4858
							 PACKAGE_VERSIONS.V_EXT%TYPE, SSV_EXT IN PACKAGE_VERSIONS.V_EXT%TYPE,
4859
							 CloneFromPvId IN NUMBER );
4860
 
4861
	PROCEDURE GET_PRODRELEASE_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
4862
 
4863
	PROCEDURE GET_INTEGRATION_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
4864
 
4865
	PROCEDURE GET_TEST_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
4866
 
4867
	PROCEDURE GET_DEPLOY_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
4868
 
4869
	PROCEDURE GET_REJECT_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
1373 dpurdie 4870
	/*================================================================================================*/
3959 dpurdie 4871
 
4872
END PK_ENVIRONMENT;
4040 dpurdie 4873
 
1374 dpurdie 4874
/
4040 dpurdie 4875
--------------------------------------------------------
4876
--  DDL for Package PK_LICENCING
4877
--------------------------------------------------------
4878
 
5172 dpurdie 4879
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_LICENCING" IS
3959 dpurdie 4880
/*
4881
------------------------------
4882
||  Last Modified:  G.Huddy
4883
||  Modified Date:  19/Aug/2008
4884
||  Spec Version:   1.0
4885
------------------------------
4886
*/
4887
 
4888
   TYPE typeCur IS REF CURSOR;
4889
 
4890
    /*================================================================================================*/
4891
   PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER );
4892
   PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER );
4893
   PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER );
4894
   FUNCTION  IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER;
4895
   PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER );
4896
   /*================================================================================================*/
4897
 
4898
END PK_LICENCING;
4040 dpurdie 4899
 
3959 dpurdie 4900
/
4040 dpurdie 4901
--------------------------------------------------------
4902
--  DDL for Package PK_PACKAGE
4903
--------------------------------------------------------
4904
 
5172 dpurdie 4905
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PACKAGE" 
1373 dpurdie 4906
IS
4907
/*
4908
------------------------------
3959 dpurdie 4909
||  Last Modified:  Jeremy Tweddle
4910
||  Modified Date:  24/08/2007
1373 dpurdie 4911
||
4912
------------------------------
4913
*/
4914
   TYPE typecur IS REF CURSOR;
4915
 
4916
/*================================================================================================*/
4917
   PROCEDURE new_version (
4918
      nlastpvid                   IN       NUMBER,
4919
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
4920
      cbuildtype                  IN       CHAR,
4211 dpurdie 4921
      cchangetype                 IN       CHAR,
1373 dpurdie 4922
      nsettopvid                  IN       NUMBER DEFAULT NULL,
4923
      nrtagid                     IN       NUMBER,
4924
      nuserid                     IN       NUMBER,
4925
      enumissues_state_imported   IN       NUMBER,
4926
      returnpvid                  OUT      NUMBER
4927
   );
4928
 
4929
   PROCEDURE change_state (
4930
      pvid       IN   NUMBER,
4931
      newstate   IN   package_versions.dlocked%TYPE,
4932
      userid     IN   NUMBER
4933
   );
4934
 
4935
   PROCEDURE new_patch (
4936
      snewpatchversion   IN       package_versions.pkg_version%TYPE,
4937
      nparentpvid        IN       NUMBER,
4938
      spatchidlist       IN       VARCHAR2,
4939
      nuserid            IN       NUMBER,
4940
      returnpatchid      OUT      NUMBER
4941
   );
4942
 
4943
   PROCEDURE obsolete_patch (
4944
      patchid            IN   NUMBER,
4945
      isobsolete         IN   CHAR,
4946
      obsoletecomments   IN   VARCHAR2,
4947
      userid             IN   NUMBER
4948
   );
4949
 
4950
   PROCEDURE obsolete_patches (
4951
      spatchidlist       IN   VARCHAR2,
4952
      isobsolete         IN   CHAR,
4953
      obsoletecomments   IN   VARCHAR2,
4954
      userid             IN   NUMBER
4955
   );
4956
 
4957
   PROCEDURE destroy_package (
4958
      pvid               IN       NUMBER,
4959
      overridewarnings   IN       CHAR DEFAULT 'N',
4960
      problemstring      OUT      VARCHAR2
4961
   );
4962
 
4963
   PROCEDURE add_process (
4964
      nprocid         IN   processes.proc_id%TYPE,
4965
      shealthtag      IN   processes.proc_name%TYPE,
4966
      sprocdesc       IN   processes.proc_description%TYPE,
4967
      scmdinterface   IN   processes.run_as%TYPE,
4968
      spkgowner       IN   processes.pkg_owner%TYPE,
4969
      sisinterface    IN   processes.is_interface%TYPE,
4970
      npvid           IN   package_processes.pv_id%TYPE,
4971
      nuserid         IN   NUMBER
4972
   );
4973
 
4974
   PROCEDURE add_package_process (
4975
      nprocidlist   IN   VARCHAR2,
4976
      npvid         IN   package_processes.pv_id%TYPE,
4977
      nuserid       IN   NUMBER
4978
   );
4979
 
4980
 
4981
 
4982
   PROCEDURE remove_process (
4983
      nprocid   IN   package_processes.proc_id%TYPE,
4984
      npvid     IN   package_processes.pv_id%TYPE,
4985
      nuserid   IN   NUMBER
4986
   );
4987
 
4988
   PROCEDURE move_package (
4989
   	  npvid  			  IN package_versions.pv_id%TYPE,
4990
	  nrtagid 			  IN release_tags.rtag_id%TYPE,
4991
	  nnewrtagid 		  IN release_tags.rtag_id%TYPE,
4992
	  nuserid			  IN NUMBER		 
4993
   ); 
4994
 
3959 dpurdie 4995
   PROCEDURE modify_product_state (
1373 dpurdie 4996
   	  npvid IN package_versions.pv_id%TYPE,
3959 dpurdie 4997
	  nrtagid IN release_tags.rtag_id%TYPE,
1373 dpurdie 4998
	  nstateid IN product_states.state_id%TYPE,
4999
	  nuserid IN NUMBER
5000
   );
3959 dpurdie 5001
 
5002
   PROCEDURE add_code_review_url (
5003
        npvid           IN    NUMBER,
5004
        nprojid         IN    NUMBER,
5005
        surl            IN    VARCHAR2,
5006
        sreason         IN    VARCHAR2,
4553 dpurdie 5007
        ddateofreview   IN    VARCHAR2
3959 dpurdie 5008
   );
5009
 
5010
   PROCEDURE update_code_review_url (
5011
        ncrid           IN    NUMBER,
5012
        nprojid         IN    NUMBER,
5013
        surl            IN    VARCHAR2,
4553 dpurdie 5014
        sreason         IN    VARCHAR2,
5015
        ddateofreview   IN    VARCHAR2
3959 dpurdie 5016
   );
5017
 
5018
   PROCEDURE remove_code_review_url (
5019
        ncrid           IN    NUMBER
5020
   );
1373 dpurdie 5021
/*================================================================================================*/
3959 dpurdie 5022
END pk_package;
4040 dpurdie 5023
 
1374 dpurdie 5024
/
4040 dpurdie 5025
--------------------------------------------------------
5026
--  DDL for Package PK_PLANNED
5027
--------------------------------------------------------
5028
 
5172 dpurdie 5029
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PLANNED" IS
1373 dpurdie 5030
/*
5031
------------------------------
5032
||  Last Modified:  G.Huddy
5033
||  Modified Date:  28/May/2008
5034
||  Spec Version:   1.1
5035
------------------------------
5036
*/
5037
 
5038
	TYPE typeCur IS REF CURSOR;
5039
 
5040
    /*================================================================================================*/
5041
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5042
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5043
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5044
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
5045
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
5046
	PROCEDURE MERGE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, mergeOperation IN CHAR);
5047
	/*================================================================================================*/
5048
 
5049
END PK_PLANNED;
4040 dpurdie 5050
 
1374 dpurdie 5051
/
4040 dpurdie 5052
--------------------------------------------------------
5053
--  DDL for Package PK_PROJECT
5054
--------------------------------------------------------
5055
 
5172 dpurdie 5056
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PROJECT" IS
1373 dpurdie 5057
 
3959 dpurdie 5058
    TYPE typecur IS REF CURSOR;
1373 dpurdie 5059
 
3959 dpurdie 5060
    /*------------------------------------------------------------------------*/
5061
    PROCEDURE update_base_url (
5062
        nprojid   IN  projects.proj_id%TYPE,
5063
        sbaseurl  IN  VARCHAR2
5064
    );
5065
    /*------------------------------------------------------------------------*/
5066
    PROCEDURE update_project_config (
5067
    nprojid   IN  projects.proj_id%TYPE,
5068
    sbaseurl  IN  VARCHAR2,
5069
    sjirakey  IN  VARCHAR2
5070
    );
5071
    /*------------------------------------------------------------------------*/
1373 dpurdie 5072
 
3959 dpurdie 5073
    END pk_project;
4040 dpurdie 5074
 
1374 dpurdie 5075
/
4040 dpurdie 5076
--------------------------------------------------------
5077
--  DDL for Package PK_RELEASE
5078
--------------------------------------------------------
5079
 
5172 dpurdie 5080
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_RELEASE" IS
1373 dpurdie 5081
/*
5082
------------------------------
5083
||  Last Modified:  S.Vukovic
5084
||  Modified Date:  12/Sep/2005
5085
||  Body Version:   3.0
5086
------------------------------
5087
*/
5088
 
5089
	TYPE typeCur IS REF CURSOR;
5090
 
5091
    /*================================================================================================*/
5092
	PROCEDURE New_Release ( sReleaseName IN VARCHAR2, sReleaseComments IN VARCHAR2, nProjId IN NUMBER, nSourceRtagId IN NUMBER, sIsBranched IN CHAR, nUserId IN NUMBER );
5172 dpurdie 5093
	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 );
1373 dpurdie 5094
	PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER  );
5095
	PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER );
5096
	PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER );
5097
	PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER );
5098
	FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR ) RETURN NUMBER;
5099
	PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER );
5100
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );								 
5101
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5102
	--PROCEDURE ADD_DEPRECATE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, nPkgId IN NUMBER );
5103
	PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5104
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5105
	PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5106
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5107
	PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER );
5108
	PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER );
5109
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
5110
	PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 );
5111
	PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER );
5112
	PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR );
5172 dpurdie 5113
  PROCEDURE SET_RELEASE_MODIFIED (nRtagId IN NUMBER );
5114
  PROCEDURE ADD_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER, nUserId IN NUMBER, bDelete IN  NUMBER, nInsertCount OUT NUMBER, curReturn OUT typeCur );
5115
  PROCEDURE REMOVE_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER );
5116
  FUNCTION CAN_ADD_PKG_TO_RELEASE ( nRtagId IN NUMBER, nPvid in NUMBER ) RETURN NUMBER;
1373 dpurdie 5117
 
5118
	/*================================================================================================*/
5119
 
5120
END PK_RELEASE;
4040 dpurdie 5121
 
1374 dpurdie 5122
/
4040 dpurdie 5123
--------------------------------------------------------
5124
--  DDL for Package PK_RMAPI
5125
--------------------------------------------------------
5126
 
5172 dpurdie 5127
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_RMAPI" 
3959 dpurdie 5128
IS
5129
   TYPE typecur IS REF CURSOR;
1373 dpurdie 5130
 
3959 dpurdie 5131
   FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)
5132
      RETURN typecur;
1373 dpurdie 5133
 
3959 dpurdie 5134
   FUNCTION wip_iteration_package (
5135
      projname        VARCHAR2,
5136
      iterationname   VARCHAR2,
5137
      pkgname         VARCHAR2
5138
   )
5139
      RETURN typecur;
1373 dpurdie 5140
 
3959 dpurdie 5141
   FUNCTION auto_make_vcsrelease (
5142
      rtagid                   IN   NUMBER,
5143
      pkgname                  IN   VARCHAR2,
5144
      vext                     IN   VARCHAR2,
5145
      newpkgversion            IN   VARCHAR2,
5146
      vcstag                   IN   VARCHAR2,
5147
      dependenciesimportlist   IN   VARCHAR2,
5148
      isrippled                IN   NUMBER,
5149
      username                 IN   VARCHAR2
5150
   )
5151
      RETURN NUMBER;
1373 dpurdie 5152
 
5153
 
3959 dpurdie 5154
   PROCEDURE import_dependencies (
5155
      pvid                     IN   NUMBER,
5156
      dependenciesimportlist   IN   VARCHAR2,
5157
      userid                   IN   NUMBER
5158
   );
1373 dpurdie 5159
 
3959 dpurdie 5160
   FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)
5161
      RETURN VARCHAR2;
1373 dpurdie 5162
 
3959 dpurdie 5163
   FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)
5164
      RETURN VARCHAR2;
1373 dpurdie 5165
 
3959 dpurdie 5166
   PROCEDURE update_dash_board (rtagid IN NUMBER);
1373 dpurdie 5167
 
3959 dpurdie 5168
   FUNCTION exclude_from_build (
5169
      pvid          IN   NUMBER,
5170
      spkgversion   IN   VARCHAR2,
5171
      rtagid        IN   NUMBER,
5172
      username      IN   VARCHAR2
5173
   )
5174
      RETURN NUMBER;
1373 dpurdie 5175
 
3959 dpurdie 5176
   FUNCTION exclude_indirect_from_build (
5177
      pvid          IN   NUMBER,
5178
      spkgversion   IN   VARCHAR2,
5179
      rtagid        IN   NUMBER,
5180
      username      IN   VARCHAR2,
5181
      rootpvid      IN   NUMBER,
5182
      rootcause     IN   VARCHAR2,
5183
      rootfile      IN   VARCHAR2
5184
   )
5185
      RETURN NUMBER;
1373 dpurdie 5186
 
3959 dpurdie 5187
   PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2);
1373 dpurdie 5188
 
3959 dpurdie 5189
   FUNCTION insert_package_metrics (
5190
      rtagid IN NUMBER,
5191
      pkgname IN VARCHAR2,
5192
      vext IN VARCHAR2,
5193
      metricstring IN VARCHAR2
5194
   )
5195
      RETURN NUMBER;
1373 dpurdie 5196
 
3959 dpurdie 5197
   PROCEDURE update_release_metrics (rtagid IN NUMBER);
1373 dpurdie 5198
 
3959 dpurdie 5199
   FUNCTION return_vcs_tag(pvid IN NUMBER) RETURN VARCHAR2;
5200
 
5201
   PROCEDURE update_vcs_details(ipv_id IN NUMBER, vcstag IN VARCHAR2, user_id IN NUMBER);
5202
 
5203
   FUNCTION isSVN( pkgid IN NUMBER ) RETURN NUMBER;
5204
 
5205
   FUNCTION isSVNbyName( pkgname IN VARCHAR2 ) RETURN NUMBER;
5206
 
5172 dpurdie 5207
   FUNCTION new_build_instance( rtag_id IN NUMBER, pv_id IN NUMBER, reason IN CHAR ) return NUMBER;
5208
 
5209
   FUNCTION update_build_instance( nbuild_id IN NUMBER, npv_id IN NUMBER default null, nstate IN CHAR default null ) return NUMBER;
5210
 
5211
   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;
5212
 
5213
 
3959 dpurdie 5214
END pk_rmapi;
4040 dpurdie 5215
 
1374 dpurdie 5216
/
4040 dpurdie 5217
--------------------------------------------------------
5218
--  DDL for Package PK_WORK_IN_PROGRESS
5219
--------------------------------------------------------
5220
 
5172 dpurdie 5221
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS
1373 dpurdie 5222
/*
5223
------------------------------
5224
||  Last Modified:  S.Vukovic
3959 dpurdie 5225
||  Modified Date:  2/May/2005
5226
||  Spec Version:   1.0
1373 dpurdie 5227
------------------------------
5228
*/
5229
 
5230
	TYPE typeCur IS REF CURSOR;
5231
 
5232
    /*================================================================================================*/
5233
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5234
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
3959 dpurdie 5235
	PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER );
5236
 
1373 dpurdie 5237
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
3959 dpurdie 5238
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );	
1373 dpurdie 5239
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
5240
	/*================================================================================================*/
3959 dpurdie 5241
 
5242
END PK_WORK_IN_PROGRESS;
4040 dpurdie 5243
 
1374 dpurdie 5244
/
4040 dpurdie 5245
--------------------------------------------------------
5246
--  DDL for Package RM_ISSUES
5247
--------------------------------------------------------
5248
 
5172 dpurdie 5249
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."RM_ISSUES" AS
1373 dpurdie 5250
 
3959 dpurdie 5251
	TYPE T_Cur IS REF CURSOR;
1373 dpurdie 5252
 
3959 dpurdie 5253
	FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;
5254
	FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBER;
5255
	FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;
5256
	FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBER;
1373 dpurdie 5257
 
3959 dpurdie 5258
	PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );
5259
	PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );
5260
	PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 );
1373 dpurdie 5261
 
3959 dpurdie 5262
END Rm_Issues;
4040 dpurdie 5263
 
3959 dpurdie 5264
/
4040 dpurdie 5265
--------------------------------------------------------
5266
--  DDL for Package Body PK_APP_UTILS
5267
--------------------------------------------------------
5268
 
5172 dpurdie 5269
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_APP_UTILS" IS
1373 dpurdie 5270
 
3959 dpurdie 5271
/*
5272
------------------------------
5273
||  Last Modified:  S.Vukovic
5274
||  Modified Date:  26/Apr/2005
5275
||  Body Version:   1.0
5276
------------------------------
5277
*/
1373 dpurdie 5278
 
5279
 
5280
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5281
PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur)   IS
1373 dpurdie 5282
 
5283
 
5284
BEGIN
5285
 
5286
 
3959 dpurdie 5287
	IF (NOT RtagId IS NULL) THEN
5288
		-- Case with RTAG_ID present
5289
		OPEN records FOR
5290
		SELECT rt.PROJ_ID,
5291
			   rt.RTAG_ID AS RTAG_ID
5292
		  FROM RELEASE_TAGS rt
5293
		 WHERE rt.RTAG_ID = TO_NUMBER(RtagId);
1373 dpurdie 5294
 
3959 dpurdie 5295
	ELSIF (NOT ProjId IS NULL) THEN
5296
		-- Case with PROJ_ID present
5297
		OPEN records FOR
5298
		SELECT TO_NUMBER(ProjId) AS PROJ_ID,
5299
			   -1 AS RTAG_ID
5300
		  FROM DUAL;
1373 dpurdie 5301
 
3959 dpurdie 5302
	ELSE
5303
		-- Case with none present
5304
		OPEN records FOR
5305
		SELECT -1 AS PROJ_ID,
5306
			   -1 AS RTAG_ID
5307
		  FROM DUAL;
1373 dpurdie 5308
 
3959 dpurdie 5309
	END IF;
1373 dpurdie 5310
 
5311
 
5312
 
5313
 
3959 dpurdie 5314
   	--RETURN records;
1373 dpurdie 5315
 
5316
END;
5317
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5318
END PK_APP_UTILS;
4040 dpurdie 5319
 
1374 dpurdie 5320
/
4040 dpurdie 5321
--------------------------------------------------------
5322
--  DDL for Package Body PK_ARCHIVE
5323
--------------------------------------------------------
5324
 
5172 dpurdie 5325
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_ARCHIVE" 
1373 dpurdie 5326
IS
3959 dpurdie 5327
/*
5328
------------------------------
5329
||  Author:  Rupesh Solanki
5330
||  Date:    26 October 2006
5331
||  Version:   1.0
5332
------------------------------
5333
*/
5334
/*---------------------------*/
5335
PROCEDURE populate_packages_table IS
1373 dpurdie 5336
 
3959 dpurdie 5337
BEGIN
5338
		  INSERT INTO archive_manager.PACKAGES
5339
		  (
5340
		  select * from packages where pkg_id not in 
5341
		  		  (select pkg_id from archive_manager.packages)
5342
		  );
1373 dpurdie 5343
 
3959 dpurdie 5344
          INSERT INTO archive_manager.PROCESSES
5345
          (
5346
          select * from processes where proc_id not in 
5347
            (select proc_id from archive_manager.processes)
5348
          );
5349
 
1373 dpurdie 5350
 
5351
 
3959 dpurdie 5352
END;
1373 dpurdie 5353
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5354
   PROCEDURE populate_archive_data_table (
5355
      nrtagid   IN   release_tags.rtag_id%TYPE
1373 dpurdie 5356
   )
5357
   IS
3959 dpurdie 5358
/*
5359
Reason: To populate the archive_data table with information regarding the
5360
         number of package versions that exist in other releases.
5361
*/
5362
      numcount      NUMBER;
5363
      numusedby     NUMBER;
5364
      numruntime    NUMBER;
5365
 
5366
      /* Get all the package versions in the release */
5367
      CURSOR archive_cur
5368
      IS
5369
         SELECT pv_id
5370
           FROM release_content
5371
          WHERE rtag_id = nrtagid;
5372
 
5373
      archive_rec   archive_cur%ROWTYPE;
1373 dpurdie 5374
   BEGIN
3959 dpurdie 5375
/*--------------- Business Rules Here -------------------*/
5376
/*-------------------------------------------------------*/
5377
      OPEN archive_cur;
1373 dpurdie 5378
 
3959 dpurdie 5379
      FETCH archive_cur
5380
       INTO archive_rec;
5381
 
5382
      WHILE archive_cur%FOUND
5383
      LOOP
5384
        /* How many packages depend on this package version? */
5385
         SELECT COUNT (*)
5386
           INTO numusedby
5387
           FROM package_dependencies
5388
          WHERE dpv_id = archive_rec.pv_id;
5389
 
5390
        /* How many project releases use this package version?  */
5391
         SELECT COUNT (*)
5392
           INTO numcount
5393
           FROM release_content
5394
          WHERE pv_id = archive_rec.pv_id;
5395
 
5396
        /* How many packages have this package version as runtime
5397
        dependency? */
5398
         SELECT COUNT (*)
5399
           INTO numruntime
5400
           FROM runtime_dependencies
5401
          WHERE rtd_id = archive_rec.pv_id;
5402
 
5403
        /* Insert into the archive_data table if they are not runtime dependant
5404
        and package dependant and they exist in that particular release only*/
5405
         IF numusedby = 0 AND numcount = 1 AND numruntime = 0
1373 dpurdie 5406
         THEN
3959 dpurdie 5407
            INSERT INTO archive_data
5408
                        (rtag_id, pv_id
5409
                        )
5410
                 VALUES (nrtagid, archive_rec.pv_id
5411
                        );
1373 dpurdie 5412
         END IF;
5413
 
3959 dpurdie 5414
         FETCH archive_cur
5415
          INTO archive_rec;
5416
      END LOOP;
1373 dpurdie 5417
   END;
5418
 
5419
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5420
   PROCEDURE migrate_pv_to_archive_schema (
5421
      nrtagid   IN   release_tags.rtag_id%TYPE
1373 dpurdie 5422
   )
5423
   IS
5424
   BEGIN
5425
 
3959 dpurdie 5426
      /* MIGRATION - PACKAGE_VERSIONS */
5427
      INSERT INTO archive_manager.package_versions
5428
         SELECT *
5429
           FROM package_versions
5430
          WHERE pv_id IN (SELECT pv_id
5431
                            FROM archive_data);
1373 dpurdie 5432
 
3959 dpurdie 5433
      /* MIGRATION - PACKAGE_BUILD_ENV */
5434
      INSERT INTO archive_manager.package_build_env
5435
         SELECT *
5436
           FROM package_build_env
5437
          WHERE pv_id IN (SELECT pv_id
5438
                            FROM archive_data);
1373 dpurdie 5439
 
3959 dpurdie 5440
      /* PURGE DATA FROM PACKAGE_BUILD_ENV */
5441
      DELETE FROM package_build_env
5442
            WHERE pv_id IN (SELECT pv_id
5443
                              FROM archive_data);
1373 dpurdie 5444
 
3959 dpurdie 5445
      /* MIGRATION - PACKAGE_BUILD_INFO */
5446
      INSERT INTO archive_manager.package_build_info
5447
         SELECT *
5448
           FROM package_build_info
5449
          WHERE pv_id IN (SELECT pv_id
5450
                            FROM archive_data);
1373 dpurdie 5451
 
3959 dpurdie 5452
      /* PURGE DATA FROM PACKAGE_BUILD_info */
5453
      DELETE FROM package_build_info
5454
            WHERE pv_id IN (SELECT pv_id
5455
                              FROM archive_data);							  
1373 dpurdie 5456
 
3959 dpurdie 5457
      /* MIGRATION - UNIT_TESTS  */
5458
      INSERT INTO archive_manager.unit_tests
5459
         SELECT *
5460
           FROM unit_tests
5461
          WHERE pv_id IN (SELECT pv_id
5462
                            FROM archive_data);
1373 dpurdie 5463
 
3959 dpurdie 5464
      /* PURGE DATA FROM UNIT_TESTS*/
5465
      DELETE FROM unit_tests
5466
            WHERE pv_id IN (SELECT pv_id
5467
                              FROM archive_data);
1373 dpurdie 5468
 
3959 dpurdie 5469
      /* MIGRATION - PACKAGE_PROCESSES */
5470
      INSERT INTO archive_manager.package_processes
5471
         SELECT *
5472
           FROM package_processes
5473
          WHERE pv_id IN (SELECT pv_id
5474
                            FROM archive_data);
1373 dpurdie 5475
 
3959 dpurdie 5476
      /* PURGE DATA FROM PACKAGE_PROCESSES*/
5477
      DELETE FROM package_processes
5478
            WHERE pv_id IN (SELECT pv_id
5479
                              FROM archive_data);
1373 dpurdie 5480
 
3959 dpurdie 5481
      /* MIGRATION - PACKAGE_DEPENDENCIES */
5482
      INSERT INTO archive_manager.package_dependencies
5483
         SELECT *
5484
           FROM package_dependencies
5485
          WHERE pv_id IN (SELECT pv_id
5486
                            FROM archive_data);
2735 dpurdie 5487
 
3959 dpurdie 5488
      /* PURGE DATA FROM PACKAGE_DEPENDENCIES*/
5489
      DELETE FROM package_dependencies
5490
            WHERE pv_id IN (SELECT pv_id
5491
                              FROM archive_data);
1373 dpurdie 5492
 
3959 dpurdie 5493
      /* MIGRATION - CODE_REVIEWS */
5494
      INSERT INTO archive_manager.code_reviews
5495
         SELECT *
5496
           FROM code_reviews
5497
          WHERE pv_id IN (SELECT pv_id
5498
                            FROM archive_data);
1373 dpurdie 5499
 
3959 dpurdie 5500
      /* PURGE DATA FROM CODE_REVIEWS*/
5501
      DELETE FROM code_reviews
5502
            WHERE pv_id IN (SELECT pv_id
5503
                              FROM archive_data);
1373 dpurdie 5504
 
3959 dpurdie 5505
      /* MIGRATION - RUNTIME_DEPENDENCIES*/
5506
      INSERT INTO archive_manager.runtime_dependencies
5507
         SELECT *
5508
           FROM runtime_dependencies
5509
          WHERE pv_id IN (SELECT pv_id
5510
                            FROM archive_data);
1373 dpurdie 5511
 
3959 dpurdie 5512
      /* PURGE DATA FROM RUNTIME_DEPENDENCIES*/
5513
      DELETE FROM runtime_dependencies
5514
            WHERE pv_id IN (SELECT pv_id
5515
                              FROM archive_data);
1373 dpurdie 5516
 
3959 dpurdie 5517
      /* MIGRATION - PACKAGE_DOCUMENTS */
5518
      INSERT INTO archive_manager.package_documents
5519
         SELECT *
5520
           FROM package_documents
5521
          WHERE pv_id IN (SELECT pv_id
5522
                            FROM archive_data);
1373 dpurdie 5523
 
3959 dpurdie 5524
      /* PURGE DATA FROM PACKAGE_DOCUMENTS*/
5525
      DELETE FROM package_documents
5526
            WHERE pv_id IN (SELECT pv_id
5527
                              FROM archive_data);
1373 dpurdie 5528
 
3959 dpurdie 5529
      /* MIGRATION - PACKAGE_PATCHES */
5530
      INSERT INTO archive_manager.package_patches
5531
         SELECT *
5532
           FROM package_patches
5533
          WHERE pv_id IN (SELECT pv_id
5534
                            FROM archive_data);
1373 dpurdie 5535
 
3959 dpurdie 5536
      /* PURGE DATA FROM PACKAGE_PATCHES*/
5537
      DELETE FROM package_patches
5538
            WHERE pv_id IN (SELECT pv_id
5539
                              FROM archive_data);
1373 dpurdie 5540
 
3959 dpurdie 5541
      /* MIGRATION - CQ_ISSUES */
5542
      INSERT INTO archive_manager.cq_issues
5543
         SELECT *
5544
           FROM cq_issues
5545
          WHERE pv_id IN (SELECT pv_id
5546
                            FROM archive_data);
1373 dpurdie 5547
 
3959 dpurdie 5548
      /* PURGE DATA FROM CQ_ISSUES*/
5549
      DELETE FROM cq_issues
5550
            WHERE pv_id IN (SELECT pv_id
5551
                              FROM archive_data);
1373 dpurdie 5552
 
3959 dpurdie 5553
      /* MIGRATION - ADDITIONAL_NOTES */
5554
      INSERT INTO archive_manager.additional_notes
5555
         SELECT *
5556
           FROM additional_notes
5557
          WHERE pv_id IN (SELECT pv_id
5558
                            FROM archive_data);
1373 dpurdie 5559
 
3959 dpurdie 5560
      /* PURGE DATA FROM ADDITIONAL_NOTES*/
5561
      DELETE FROM additional_notes
5562
            WHERE pv_id IN (SELECT pv_id
5563
                              FROM archive_data);
1373 dpurdie 5564
 
3959 dpurdie 5565
      /* MIGRATION - RELEASE_COMPONENTS */
5566
      INSERT INTO archive_manager.release_components
5567
         SELECT *
5568
           FROM release_components
5569
          WHERE pv_id IN (SELECT pv_id
5570
                            FROM archive_data);
1373 dpurdie 5571
 
3959 dpurdie 5572
      /* PURGE DATA FROM RELEASE_COMPONENTS*/
5573
      DELETE FROM release_components
5574
            WHERE pv_id IN (SELECT pv_id
5575
                              FROM archive_data);
1373 dpurdie 5576
 
3959 dpurdie 5577
      /* MIGRATION - IGNORE_WARNINGS */
5578
      INSERT INTO archive_manager.ignore_warnings
5579
         SELECT *
5580
           FROM ignore_warnings
5581
          WHERE pv_id IN (SELECT pv_id
5582
                            FROM archive_data);
1374 dpurdie 5583
 
3959 dpurdie 5584
      /* PURGE DATA FROM IGNORE_WARNINGS*/
5585
      DELETE FROM ignore_warnings
5586
            WHERE pv_id IN (SELECT pv_id
5587
                              FROM archive_data);
1373 dpurdie 5588
 
3959 dpurdie 5589
      /* PURGE DATA FROM WORK_IN_PROGRESS */
5590
      DELETE FROM work_in_progress
5591
            WHERE rtag_id = nrtagid;
1374 dpurdie 5592
 
3959 dpurdie 5593
      /* PURGE DATA FROM PLANNED */
5594
      DELETE FROM planned
5595
            WHERE rtag_id = nrtagid;
1373 dpurdie 5596
 
3959 dpurdie 5597
      /* MIGRATION - JIRA_ISSUES */
5598
      INSERT INTO archive_manager.jira_issues
5599
         SELECT *
5600
           FROM jira_issues
5601
          WHERE pv_id IN (SELECT pv_id
5602
                            FROM archive_data);
1373 dpurdie 5603
 
3959 dpurdie 5604
      /* PURGE DATA FROM JIRA_ISSUES*/
5605
      DELETE FROM jira_issues
5606
            WHERE pv_id IN (SELECT pv_id
5607
                              FROM archive_data);
1373 dpurdie 5608
 
3959 dpurdie 5609
      /* MIGRATION - PRODUCT_COMPONENTS */
5610
      INSERT INTO archive_manager.product_components
5611
         SELECT *
5612
           FROM product_components
5613
          WHERE pv_id IN (SELECT pv_id
5614
                            FROM archive_data);
1373 dpurdie 5615
 
3959 dpurdie 5616
      /* PURGE DATA FROM PRODUCT_COMPONENTS*/
5617
      DELETE FROM product_components
5618
            WHERE pv_id IN (SELECT pv_id
5619
                              FROM archive_data);
1373 dpurdie 5620
 
3959 dpurdie 5621
      /* MIGRATION - ACTION_LOG */
5622
      INSERT INTO archive_manager.action_log
5623
         SELECT *
5624
           FROM action_log
5625
          WHERE pv_id IN (SELECT pv_id
5626
                            FROM archive_data);
1373 dpurdie 5627
 
3959 dpurdie 5628
      /* PURGE DATA FROM ACTION_LOG*/
5629
      DELETE FROM action_log
5630
            WHERE pv_id IN (SELECT pv_id
5631
                              FROM archive_data);
1373 dpurdie 5632
 
5633
 
5634
   END;
5635
 
5636
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5637
   PROCEDURE migrate_rtag_to_archive_schema (
5638
      nrtagid   IN   release_tags.rtag_id%TYPE
1373 dpurdie 5639
   )
5640
   IS
5641
   BEGIN
3959 dpurdie 5642
      /* MIGRATION - DO_NOT_RIPPLE */
5643
      INSERT INTO archive_manager.do_not_ripple
5644
         SELECT *
5645
           FROM do_not_ripple dnp
5646
          WHERE rtag_id = nrtagid;
1373 dpurdie 5647
 
3959 dpurdie 5648
      /* PURGE DATA FROM DO_NOT_RIPPLE */
5649
      DELETE FROM do_not_ripple
5650
            WHERE rtag_id = nrtagid;
5651
 
5652
      /* MIGRATION - ADVISORY_RIPPLES*/
5653
      INSERT INTO archive_manager.advisory_ripples
5654
         SELECT *
5655
           FROM advisory_ripple dnp
5656
          WHERE rtag_id = nrtagid;
1373 dpurdie 5657
 
3959 dpurdie 5658
      /* PURGE DATA FROM ADVISORY_RIPPLES*/
5659
      DELETE FROM advisory_ripple
5660
            WHERE rtag_id = nrtagid;			
1373 dpurdie 5661
 
3959 dpurdie 5662
      /* MIGRATION - RELEASE_CONTENT */
5663
      INSERT INTO archive_manager.release_content
5664
         SELECT *
5665
           FROM release_content
5666
          WHERE rtag_id = nrtagid;
1373 dpurdie 5667
 
3959 dpurdie 5668
      /* PURGE DATA FROM RELEASE_CONTENT*/
5669
      DELETE FROM release_content
5670
            WHERE rtag_id = nrtagid;
1373 dpurdie 5671
 
3959 dpurdie 5672
      /* MIGRATION - NOTIFICATION_HISTORY */
5673
      INSERT INTO archive_manager.notification_history
5674
         SELECT *
5675
           FROM notification_history
5676
          WHERE rtag_id = nrtagid;
1373 dpurdie 5677
 
3959 dpurdie 5678
      /* PURGE DATA FROM NOTIFICATION_HISTORY*/
5679
      DELETE FROM notification_history
5680
            WHERE rtag_id = nrtagid;
1373 dpurdie 5681
 
3959 dpurdie 5682
      /* MIGRATION - BUILD_ORDER   */
5683
      INSERT INTO archive_manager.build_order
5684
         SELECT *
5685
           FROM build_order
5686
          WHERE rtag_id = nrtagid;
1373 dpurdie 5687
 
3959 dpurdie 5688
      /* PURGE DATA FROM BUILD_ORDER*/
5689
      DELETE FROM build_order
5690
            WHERE rtag_id = nrtagid;
1373 dpurdie 5691
 
3959 dpurdie 5692
      /* MIGRATION - PROJECT_ACTION_LOG */
5693
      INSERT INTO archive_manager.project_action_log
5694
         SELECT *
5695
           FROM project_action_log
5696
          WHERE rtag_id = nrtagid;
1373 dpurdie 5697
 
3959 dpurdie 5698
      /* PURGE DATA FROM PROJECT_ACTION_LOG */
5699
      DELETE FROM project_action_log
5700
            WHERE rtag_id = nrtagid;
1373 dpurdie 5701
 
3959 dpurdie 5702
      /* MIGRATION - DEPRECATED_PACKAGES */
5703
      INSERT INTO archive_manager.deprecated_packages
5704
         SELECT *
5705
           FROM deprecated_packages
5706
          WHERE rtag_id = nrtagid;
1373 dpurdie 5707
 
3959 dpurdie 5708
      /* PURGE DATA FROM DEPRECATED_PACKAGES */
5709
      DELETE FROM deprecated_packages
5710
            WHERE rtag_id = nrtagid;
5711
 
5712
      /* MIGRATION - RELEASE_TAGS */
5713
      INSERT INTO archive_manager.release_tags
5714
         SELECT *
1373 dpurdie 5715
           FROM release_tags
3959 dpurdie 5716
          WHERE rtag_id = nrtagid;
5717
 
5718
 
5719
      /* PURGE DATA FROM PACKAGE_VERSIONS*/
5720
      DELETE FROM package_versions
5721
            WHERE pv_id IN (SELECT pv_id
5722
                              FROM archive_data);
5723
 
5724
 
1373 dpurdie 5725
   END;
5726
 
5727
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5728
   PROCEDURE clean_up_archive_data_table (
5729
      nrtagid   IN   release_tags.rtag_id%TYPE
1373 dpurdie 5730
   )
5731
   IS
5732
   BEGIN
3959 dpurdie 5733
      /* Cleaning Up The Archive_Data Table */
5734
      DELETE FROM archive_data
5735
            WHERE rtag_id = nrtagid;
1373 dpurdie 5736
   END;
5737
 
5738
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5739
   PROCEDURE write_action_log (
5740
      nuserid   IN   NUMBER,
5741
      nrtagid   IN   release_tags.rtag_id%TYPE
1373 dpurdie 5742
   )
5743
   IS
5744
   BEGIN
3959 dpurdie 5745
      /* Write Into Archive_Action_Log Table */
5746
      INSERT INTO archive_action_log
5747
                  (user_id, date_time_stamp, rtag_id,
5748
                   description
1373 dpurdie 5749
                  )
3959 dpurdie 5750
           VALUES (nuserid, ora_sysdatetime, nrtagid,
5751
                   'Release has been archived to the ARCHIVE_MANAGER schema'
1373 dpurdie 5752
                  );
5753
   END;
5754
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 5755
END pk_archive; 
4040 dpurdie 5756
 
1374 dpurdie 5757
/
4040 dpurdie 5758
--------------------------------------------------------
5759
--  DDL for Package Body PK_BUILDAPI
5760
--------------------------------------------------------
5761
 
5172 dpurdie 5762
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_BUILDAPI" 
1373 dpurdie 5763
IS
5764
   /*-------------------------------------------------------------------------------------------------------*/
5765
   PROCEDURE add_product_component (
5766
      npvid           IN   NUMBER,
5767
      sosname         IN   VARCHAR2,
5768
      sorigfilepath   IN   VARCHAR2,
5769
      sfilename       IN   VARCHAR2,
5770
      sdestfilepath   IN   VARCHAR2,
5771
      nbytesize       IN   NUMBER,
5772
      scrccksum       IN   VARCHAR2
5773
   )
5774
   IS
5775
      nosid   NUMBER;
5776
   BEGIN
5777
      /*--------------- Business Rules Here -------------------*/
5778
      -- OS Name Requirements --
5779
      IF (sosname IS NULL)
5780
      THEN
5781
         raise_application_error (-20000, 'OsName cannot be NULL.');
5782
      END IF;
5783
 
5784
      -- File Requirements --
5785
      IF (NOT sfilename IS NULL)
5786
      THEN
5787
         IF (nbytesize IS NULL)
5788
         THEN
5789
            raise_application_error (-20000, 'Byte Size cannot be NULL.');
5790
         ELSIF (scrccksum IS NULL)
5791
         THEN
5792
            raise_application_error (-20000, 'CRC CKSUM cannot be NULL.');
5793
         END IF;
5794
      END IF;
5795
 
5796
      -- Folder Requirements --
5797
      -- No requirements for now.
5798
 
5799
      /*-------------------------------------------------------*/
5800
 
5801
      -- Get OsId
5802
      nosid := get_osid (sosname);
5803
 
5804
      -- Insert component entry
5805
      INSERT INTO product_components
5806
                  (pv_id, os_id, file_path, file_name, destination_path,
5807
                  byte_size, crc_cksum
5808
                  )
5809
         VALUES (npvid, nosid, sorigfilepath, sfilename, sdestfilepath,
5810
                  nbytesize, scrccksum
5811
                  );
5812
   EXCEPTION
5813
      WHEN DUP_VAL_ON_INDEX
5814
      THEN
5815
         raise_application_error (-20000,
5816
                                 'Cannot have duplicate product components.'
5817
                                 );
5818
   END;
5819
 
5820
/*-------------------------------------------------------------------------------------------------------*/
5821
   PROCEDURE remove_all_product_components (
5822
      npvid     IN   NUMBER,
5823
      sosname   IN   VARCHAR2
5824
   )
5825
   IS
5826
      nosid   NUMBER;
5827
   BEGIN
5828
/*--------------- Business Rules Here -------------------*/
5829
/*-------------------------------------------------------*/
5830
 
5831
      -- Get OsId
5832
      nosid := get_osid (sosname);
5833
 
5834
      -- Delete component entry
5835
      DELETE FROM product_components pc
5836
            WHERE pc.pv_id = npvid AND pc.os_id = nosid;
5837
   END;
5838
 
5839
/*-------------------------------------------------------------------------------------------------------*/
5840
   FUNCTION get_osid (sosname IN VARCHAR2)
5841
      RETURN NUMBER
5842
   IS
5843
      code   NUMBER;
5844
   BEGIN
5845
      -- Get Platform Code --
5846
      SELECT pf.code
5847
      INTO code
5848
      FROM platforms pf
5849
      WHERE UPPER (pf.NAME) = UPPER (sosname);
5850
 
5851
      RETURN code;
5852
   EXCEPTION
5853
      WHEN NO_DATA_FOUND
5854
      THEN
5855
         raise_application_error
5856
            (-20000,
5857
               'Platform '
5858
            || sosname
5859
            || ' is not valid. It needs to be added to PLATFORMS table in Release Manager.'
5860
            );
5861
         RAISE;
5862
   END;
5863
 
5864
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 5865
 PROCEDURE update_build_service_info (
1373 dpurdie 5866
      sdatabaseserver   IN   VARCHAR2,
5867
      sarchiveserver    IN   VARCHAR2,
5868
      smailserver       IN   VARCHAR2,
5869
      smailsender       IN   VARCHAR2,
4211 dpurdie 5870
      faultmlist        IN   VARCHAR2,
1373 dpurdie 5871
      sdiskspace        IN   VARCHAR2,
5872
      ssbommanagement   IN   VARCHAR2
5873
   )
5874
   IS
5875
   BEGIN
5876
      UPDATE build_service_config
5877
         SET config = sdatabaseserver
5878
      WHERE service = 'DATABASE SERVER';
5879
 
5880
      UPDATE build_service_config
5881
         SET config = sarchiveserver
5882
      WHERE service = 'ARCHIVE SERVER';
5883
 
5884
      UPDATE build_service_config
5885
         SET config = smailserver
5886
      WHERE service = 'MAIL SERVER';
5887
 
5888
      UPDATE build_service_config
5889
         SET config = smailsender
5890
      WHERE service = 'BUILD FAILURE MAIL SENDER';
5891
 
5892
      UPDATE build_service_config
4211 dpurdie 5893
         SET config = faultmlist
5894
      WHERE service = 'FAULT EMAIL ADDRESS LIST';
5895
 
5896
      UPDATE build_service_config
1373 dpurdie 5897
         SET config = sdiskspace
5898
      WHERE service = 'DPKG_ARCHIVE DISK SPACE USED';
5899
 
5900
      UPDATE build_service_config
5901
         SET config = ssbommanagement
5902
      WHERE service = 'SBOM MANAGEMENT';
5903
   END;
4308 dpurdie 5904
 
1373 dpurdie 5905
 
5906
 
5907
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 5908
   PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2, sgbeclass IN NUMBER)
1373 dpurdie 5909
   IS
5910
      gbe_id   NUMBER;
5911
   BEGIN
5912
      -- Get GBE_ID
5913
      SELECT seq_gbe_id.NEXTVAL
5914
      INTO gbe_id
5915
      FROM DUAL;
5916
 
5917
      INSERT INTO gbe_machtype
4040 dpurdie 5918
                  (gbe_id, gbe_value, bm_id )
5919
         VALUES (gbe_id, sgbevalue, sgbeclass );
1373 dpurdie 5920
   END;
5921
 
5922
/*-------------------------------------------------------------------------------------------------------*/
5923
   PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER)
5924
   IS
5925
   BEGIN
5926
      DELETE FROM gbe_machtype
5927
            WHERE gbe_id = ngbe_id;
5928
   END;
5929
 
5930
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 5931
   PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2, sgbeclass IN NUMBER)
1373 dpurdie 5932
   IS
5933
   BEGIN
5934
      UPDATE gbe_machtype
4040 dpurdie 5935
         SET gbe_value = sgbevalue,
5936
             bm_id = sgbeclass
1373 dpurdie 5937
      WHERE gbe_id = ngbe_id;
5938
   END;
5939
 
5940
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 5941
PROCEDURE add_buildmachine (sbmvalue IN VARCHAR2)
5942
   IS
5943
      bm_id   NUMBER;
5944
   BEGIN
5945
      -- Get BM_ID
5946
      SELECT seq_bm_id.NEXTVAL
5947
      INTO bm_id
5948
      FROM DUAL;
5949
 
5950
      INSERT INTO build_machines
5951
                  (bm_id, bm_name)
5952
         VALUES (bm_id, sbmvalue );
5953
   END;
5954
 
5955
/*-------------------------------------------------------------------------------------------------------*/
5956
   PROCEDURE remove_buildmachine (nbm_id IN NUMBER)
5957
   IS
5958
   BEGIN
5959
      DELETE FROM build_machines
5960
            WHERE bm_id = nbm_id;
5961
   END;
5962
 
5963
/*-------------------------------------------------------------------------------------------------------*/
5964
   PROCEDURE update_buildmachine (nbm_id IN NUMBER, sbmvalue IN VARCHAR2) 
5965
   IS
5966
   BEGIN
5967
      UPDATE build_machines
5968
         SET bm_name = sbmvalue
5969
         WHERE bm_id = nbm_id;
5970
   END;
5971
 
5972
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 5973
   PROCEDURE delete_daemon (srconidlist IN VARCHAR2)
5974
   IS
5975
   BEGIN
5976
      -- Entries in the daemon_action_log, run_level and abt_action_log tables must be deleted first.
5977
      DELETE FROM daemon_action_log
5978
            WHERE rcon_id IN (
5979
                     SELECT *
5980
                     FROM THE
5981
                              (SELECT CAST
5982
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
5983
                                          )
5984
                                 FROM DUAL
5985
                              ));
5986
 
5987
      DELETE FROM run_level
5988
            WHERE rcon_id IN (
5989
                     SELECT *
5990
                     FROM THE
5991
                              (SELECT CAST
5992
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
5993
                                          )
5994
                                 FROM DUAL
5995
                              ));
5996
 
5997
      DELETE FROM abt_action_log
5998
            WHERE rcon_id IN (
5999
                     SELECT *
6000
                     FROM THE
6001
                              (SELECT CAST
6002
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6003
                                          )
6004
                                 FROM DUAL
6005
                              ));
6006
 
6007
      -- Once entries in daemon_action_log, run_level and abt_action_log are removed, the daemon is deleted.
6008
      DELETE FROM release_config
6009
            WHERE rcon_id IN (
6010
                     SELECT *
6011
                     FROM THE
6012
                              (SELECT CAST
6013
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6014
                                          )
6015
                                 FROM DUAL
6016
                              ));
6017
   END;
6018
 
6019
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 6020
   PROCEDURE remove_daemon (srconidlist IN VARCHAR2)
1373 dpurdie 6021
   IS
4308 dpurdie 6022
   oRconIdList RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
6023
 
1373 dpurdie 6024
   BEGIN
4308 dpurdie 6025
 
6026
   oRconIdList := IN_LIST_NUMBER ( srconidlist );
6027
 
6028
      -- Break the linkage between the release_config and the build_machine_config
6029
 
6030
      -- Delete the linkage between the two tables.
6031
       UPDATE release_config
6032
         SET daemon_hostname = NULL,
6033
             bmcon_id = NULL 
6034
      WHERE rcon_id IN ( SELECT * FROM TABLE ( CAST ( oRconIdList AS RELMGR_NUMBER_TAB_t ) ) );
1373 dpurdie 6035
   END;
6036
 
6037
/*-------------------------------------------------------------------------------------------------------*/
6038
   PROCEDURE insert_schedule_info (
6039
      dschedulepause     IN   DATE,
6040
      dscheduleresume    IN   DATE,
6041
      crepeat            IN   VARCHAR2,
6042
      cindefinitepause   IN   VARCHAR2
6043
   )
6044
   IS
6045
      nscheduledid   NUMBER;
6046
   BEGIN
6047
      -- Get Next Available Scheduled Id
6048
      SELECT seq_scheduled_id.NEXTVAL
6049
      INTO nscheduledid
6050
      FROM DUAL;
6051
 
6052
      INSERT INTO run_level_schedule
6053
         VALUES (nscheduledid, dschedulepause, dscheduleresume, crepeat,
6054
                  cindefinitepause);
6055
   END;
6056
 
6057
/*-------------------------------------------------------------------------------------------------------*/
6058
   PROCEDURE delete_schedule (nscheduleid IN NUMBER)
6059
   IS
6060
   BEGIN
6061
      DELETE FROM run_level_schedule
6062
            WHERE scheduled_id = nscheduleid;
6063
   END;
6064
 
6065
/*-------------------------------------------------------------------------------------------------------*/
6066
   PROCEDURE set_infinite_pause
6067
   IS
6068
      nscheduledid   NUMBER;
6069
   BEGIN
6070
      -- Get Next Available Scheduled Id
6071
      SELECT seq_scheduled_id.NEXTVAL
6072
      INTO nscheduledid
6073
      FROM DUAL;
6074
 
6075
      INSERT INTO run_level_schedule
5172 dpurdie 6076
         VALUES (nscheduledid, ora_sysdatetime, NULL, NULL, 'P');
1373 dpurdie 6077
   END;
5172 dpurdie 6078
 
6079
/*-------------------------------------------------------------------------------------------------------*/
6080
   PROCEDURE set_finite_pause (duration IN NUMBER)
6081
   IS
6082
      nscheduledid   NUMBER;
6083
      currentDate    DATE := ora_sysdatetime;
6084
   BEGIN
6085
 
6086
      -- Get Next Available Scheduled Id
6087
      SELECT seq_scheduled_id.NEXTVAL
6088
      INTO nscheduledid
6089
      FROM DUAL;
1373 dpurdie 6090
 
5172 dpurdie 6091
      INSERT INTO run_level_schedule
6092
         VALUES (nscheduledid, currentDate, currentDate + duration/(24*60), 0, 'F');
6093
      COMMIT; 
6094
 
6095
      -- Ensure that we have only ONE finite pause by deleting all old ones
6096
      -- Under race conditions the last one wins
6097
      DELETE FROM run_level_schedule 
6098
        WHERE SCHEDULED_ID < nscheduledid
6099
        AND INDEFINITE_PAUSE = 'F';
6100
   END;   
6101
 
1373 dpurdie 6102
/*-------------------------------------------------------------------------------------------------------*/
6103
   PROCEDURE set_resume
6104
   IS
6105
   BEGIN
6106
      DELETE FROM run_level_schedule
5172 dpurdie 6107
            WHERE indefinite_pause in ('F', 'P' );
1373 dpurdie 6108
   END;
6109
 
6110
/*-------------------------------------------------------------------------------------------------------*/
6111
   PROCEDURE delete_out_of_date_schedule
6112
   IS
6113
   BEGIN
6114
      DELETE FROM run_level_schedule
6115
            WHERE scheduled_resume < ora_sysdatetime AND repeat = 0;
6116
   END;
6117
 
6118
/*-------------------------------------------------------------------------------------------------------*/
6119
   PROCEDURE set_daemon_resume (nrconid IN NUMBER)
6120
   IS
6121
   BEGIN
6122
      UPDATE run_level
6123
         SET PAUSE = NULL
6124
      WHERE rcon_id = nrconid;
6125
   END;
6126
 
6127
/*-------------------------------------------------------------------------------------------------------*/
6128
   PROCEDURE set_daemon_pause (nrconid IN NUMBER)
6129
   IS
6130
   BEGIN
6131
      UPDATE run_level
6132
         SET PAUSE = 1
6133
      WHERE rcon_id = nrconid;
6134
   END;
6135
/*-------------------------------------------------------------------------------------------------------*/
6136
   PROCEDURE set_daemon_disable (nrconid NUMBER)
6137
   IS
6138
   BEGIN
6139
      UPDATE run_level
6140
         SET PAUSE = 2
6141
      WHERE rcon_id = nrconid;
6142
   END;
6143
 
6144
/*-------------------------------------------------------------------------------------------------------*/
6145
   PROCEDURE set_daemon_states (nrtagid NUMBER, nstate NUMBER)
6146
   IS
6147
   BEGIN
6148
     UPDATE run_level
6149
     SET pause = nstate
6150
     WHERE rcon_id IN
6151
     (SELECT rc.rcon_id FROM release_config rc WHERE rc.rtag_id = nrtagid);
6152
   END;
6153
 
6154
/*-------------------------------------------------------------------------------------------------------*/
6155
   -- inserts a new daemon instruction
6156
   -- This is for use by the Release Manager Website code.
6157
   --
6158
   PROCEDURE insert_daemon_inst
6159
   ( nOp_code IN NUMBER
6160
   , nRtag_id IN NUMBER
6161
   , nPv_id IN NUMBER
6162
   , nSchedDate IN DATE
6163
   , nRepeatSecs IN NUMBER
6164
   , nAddedDate IN DATE
6165
   , nUser_id IN NUMBER
6166
   ) IS
6167
      nInstId   NUMBER;
6168
   BEGIN
6169
      -- Get Next Available Scheduled Id
6170
      SELECT seq_daemon_instruction_id.NEXTVAL
6171
      INTO nInstId
6172
      FROM DUAL;
6173
 
6174
      INSERT INTO Daemon_Instructions
6175
         VALUES (nInstId, nOp_code, nRtag_id,
6176
                  nPv_id, nSchedDate, nRepeatSecs,
6177
                  nAddedDate, nUser_id, '0');
5172 dpurdie 6178
 
6179
   -- Mark the Release as modified for build purposes      
6180
   PK_RELEASE.SET_RELEASE_MODIFIED(nRtag_id);  
6181
 
1373 dpurdie 6182
   EXCEPTION
6183
      WHEN DUP_VAL_ON_INDEX
6184
      THEN
6185
         raise_application_error (-20000,
6186
                                 'Table already contains a record with the specified OPERATION, RELEASE, and PACKAGE VERSION'
6187
                                 );
6188
      WHEN OTHERS
6189
      THEN
6190
         raise;
5172 dpurdie 6191
 
1373 dpurdie 6192
   END insert_daemon_inst;
6193
 
6194
/*-------------------------------------------------------------------------------------------------------*/
6195
   -- Deletes a daemon instruction matching the specified instruction ID
6196
   --
6197
   PROCEDURE del_daemon_inst
6198
   ( nInstId IN NUMBER
6199
   ) IS
6200
 
6201
   BEGIN
6202
      DELETE FROM Daemon_Instructions
6203
      WHERE DAEMON_INSTRUCTIONS_ID = nInstId;
6204
 
6205
   END del_daemon_inst;
6206
 
6207
/*-------------------------------------------------------------------------------------------------------*/
6208
   -- Deletes a daemon instruction matching the specified op-code, ratag, and pv_id
6209
   --
6210
   PROCEDURE del_daemon_inst_by_rtag_pvid(
6211
      nOp_code IN NUMBER,
6212
      nRtag_id IN NUMBER,
6213
      nPv_id IN NUMBER
6214
   ) IS
6215
   BEGIN
6216
      DELETE FROM Daemon_Instructions
6217
      WHERE OP_CODE = nOp_code
6218
      AND RTAG_ID = nRtag_id
6219
      AND PV_ID   = nPv_id;
6220
 
6221
   END del_daemon_inst_by_rtag_pvid;
6222
 
6223
/*-------------------------------------------------------------------------------------------------------*/
6224
   -- Updates a daemon instruction
6225
   -- This is for use by the Release Manager Website code.
6226
   --
6227
   PROCEDURE update_daemon_inst
6228
   ( nInstId IN NUMBER
6229
   , nOp_code IN NUMBER
6230
   , nRtag_id IN NUMBER
6231
   , nPv_id IN NUMBER
6232
   , nSchedDate IN DATE
6233
   , nRepeatSecs IN NUMBER
6234
   , nAddedDate IN DATE
6235
   , nUser_id IN NUMBER
6236
   ) IS
6237
      CURSOR daemon_inst_cur IS
6238
         SELECT *
6239
         FROM daemon_instructions di
6240
         WHERE di.DAEMON_INSTRUCTIONS_ID = nInstId;
6241
 
6242
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6243
 
6244
      exc_inst_removed EXCEPTION;
6245
   BEGIN
6246
      OPEN daemon_inst_cur;
6247
 
6248
      FETCH daemon_inst_cur
6249
      INTO daemon_inst_rec;
6250
 
6251
      IF daemon_inst_cur%FOUND THEN
6252
 
6253
         UPDATE Daemon_Instructions
6254
         SET op_code = nOp_code,
6255
            rtag_id = nRtag_id,
6256
            pv_id   = nPv_id,
6257
            scheduled_datetime = nSchedDate,
6258
            repeat_secs = nRepeatSecs,
6259
            added_datetime = nAddedDate,
6260
            user_id = nUser_id,
6261
            in_progress = '0'
6262
         WHERE daemon_instructions_id = nInstId;
6263
      ELSE
6264
         raise exc_inst_removed;
6265
      END IF;
6266
 
6267
      CLOSE daemon_inst_cur;
5172 dpurdie 6268
 
6269
      -- Mark the Release as modified for build purposes      
6270
      PK_RELEASE.SET_RELEASE_MODIFIED(nRtag_id);         
6271
 
1373 dpurdie 6272
   EXCEPTION
6273
      WHEN DUP_VAL_ON_INDEX
6274
      THEN
6275
         raise_application_error (-20000,
6276
                                 'Table already contains a record with the specified OPERATION, RELEASE, and PACKAGE VERSION'
6277
                                 );
6278
      WHEN exc_inst_removed
6279
      THEN
6280
         raise_application_error (-20000,
6281
                                 'Record was probably deleted by the Buildtool during your edit-form session. Please create a new Daemon Instruction.'
6282
                                 );
6283
      WHEN OTHERS
6284
      THEN
6285
         raise;
5172 dpurdie 6286
 
1373 dpurdie 6287
   END update_daemon_inst;
6288
 
6289
/*-------------------------------------------------------------------------------------------------------*/
6290
   -- Returns a comma-separated list of operation codes found for a given rtag and pv_id combination
6291
   -- This is for use by the Release Manager Website code.
6292
   --
6293
   FUNCTION daemon_ops_for_rtag_pvid(
6294
      nRtag_id IN NUMBER,
6295
      nPv_id IN NUMBER
6296
   ) RETURN VARCHAR2
6297
   IS
6298
      CURSOR daemon_inst_cur IS
6299
         SELECT di.OP_CODE
6300
         FROM daemon_instructions di
6301
         WHERE di.RTAG_ID = nRtag_id
6302
            AND di.PV_ID = nPv_id;
6303
 
6304
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6305
 
6306
      sRetList VARCHAR2(4000) := '';
6307
 
6308
   BEGIN
6309
      OPEN daemon_inst_cur;
6310
 
6311
      FETCH daemon_inst_cur
6312
      INTO daemon_inst_rec;
6313
 
6314
      WHILE daemon_inst_cur%FOUND
6315
      LOOP
6316
         sRetList := sRetList || daemon_inst_rec.op_code || ',';
6317
 
6318
         FETCH daemon_inst_cur
6319
         INTO daemon_inst_rec;
6320
      END LOOP;
6321
 
6322
      CLOSE daemon_inst_cur;
6323
 
6324
      RETURN sRetList;
6325
   END daemon_ops_for_rtag_pvid;
6326
/*-------------------------------------------------------------------------------------------------------*/
6327
   -- Returns a comma-separated list of operation codes found for a given rtag
6328
   -- This is for use by the Release Manager Website code.
6329
   --
6330
   FUNCTION daemon_ops_for_rtag(
6331
      nRtag_id IN NUMBER
6332
   ) RETURN VARCHAR2
6333
   IS
6334
      CURSOR daemon_inst_cur IS
6335
         SELECT di.OP_CODE
6336
         FROM daemon_instructions di
6337
         WHERE di.RTAG_ID = nRtag_id;
6338
 
6339
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6340
 
6341
      sRetList VARCHAR2(4000) := '';
6342
 
6343
   BEGIN
6344
      OPEN daemon_inst_cur;
6345
 
6346
      FETCH daemon_inst_cur
6347
      INTO daemon_inst_rec;
6348
 
6349
      WHILE daemon_inst_cur%FOUND
6350
      LOOP
6351
         sRetList := sRetList || daemon_inst_rec.op_code || ',';
6352
 
6353
         FETCH daemon_inst_cur
6354
         INTO daemon_inst_rec;
6355
      END LOOP;
6356
 
6357
      CLOSE daemon_inst_cur;
6358
 
6359
      RETURN sRetList;
6360
   END daemon_ops_for_rtag;
6361
/*-------------------------------------------------------------------------------------------------------*/
6362
   -- Gets a record from the daemon instruction table that can be carried out now and returns the fields
6363
   -- in the record a daemon will need
6364
   -- The Buildtool should use this to find a job to do for a particular release. It should then call
6365
   -- mark_daemon_inst_in_progress(inst_id) before carrying out the work, and then call
6366
   -- mark_daemon_inst_completed(inst_id) to signal its completion.
6367
   -- Can be called repeatedly to get a full list of all instructions for a release, by passing back in
6368
   -- the instruction ID obtained from the previous call (the 1st call should use 0)
6369
   -- Can be called repeatedly to get a full list of all instructions of a specific op-code value for a release,
6370
   -- by passing back in an op-code value of 0 or higher (use -1 if no op-code filtering is needed)
6371
   -- Returns 1 if a record was found, else 0.
6372
   --
6373
   FUNCTION get_daemon_inst(
6374
      nRtag_id IN NUMBER,
6375
      nInst_id IN OUT NUMBER,
6376
      nOp_code IN OUT NUMBER,
6377
      nPv_id OUT NUMBER,
6378
      nUser_id OUT NUMBER,
6379
      nInProgress OUT NUMBER
6380
   ) RETURN NUMBER
6381
   IS
6382
      CURSOR daemon_inst_cur IS
6383
         SELECT di.daemon_instructions_id, di.op_code, di.pv_id ,di.user_id, di.in_progress
6384
           FROM daemon_instructions di
6385
          WHERE di.rtag_id = nRtag_id
6386
            AND di.daemon_instructions_id > nInst_id
6387
            AND di.scheduled_datetime <= ora_sysdatetime
6388
            AND ((nOp_code = -1) OR (nOp_code = di.op_code))
6389
            AND rownum <= 1
6390
       ORDER BY di.daemon_instructions_id;
6391
 
6392
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6393
   BEGIN
6394
      OPEN daemon_inst_cur;
6395
 
6396
      FETCH daemon_inst_cur
6397
      INTO daemon_inst_rec;
6398
 
6399
      -- If we found a record, return it.
6400
      IF daemon_inst_cur%FOUND THEN
6401
         nInst_id := daemon_inst_rec.daemon_instructions_id;
6402
         nOp_code := daemon_inst_rec.op_code;
6403
         nPv_id   := daemon_inst_rec.pv_id;
6404
         nUser_id := daemon_inst_rec.user_id;
6405
         IF daemon_inst_rec.in_progress = '1' THEN
6406
            nInProgress := 1;
6407
         ELSE
6408
            nInProgress := 0;
6409
         END IF;
6410
         CLOSE daemon_inst_cur;
6411
         RETURN 1;
6412
      END IF;
6413
 
6414
      CLOSE daemon_inst_cur;
6415
      RETURN 0;
6416
 
6417
   END get_daemon_inst;
6418
/*-------------------------------------------------------------------------------------------------------*/
6419
   -- Marks a daemon instruction as being processed by a daemon
6420
   -- The Buildtool should use this before it embarks on the work the instruction commands
6421
   --
6422
   PROCEDURE mark_daemon_inst_in_progress( nInstId IN NUMBER )
6423
   IS
6424
   BEGIN
6425
      UPDATE Daemon_Instructions
6426
      SET in_progress = '1'
6427
      WHERE daemon_instructions_id = nInstId;
6428
 
6429
   END mark_daemon_inst_in_progress;
6430
 
6431
/*-------------------------------------------------------------------------------------------------------*/
6432
   -- Once the Buildtool has finished carrying out the daemon instruction, it should call this stored
6433
   -- procedure in order to either delete the instruction or update it in the case where it is a repeating
6434
   -- instruction.
6435
   --
6436
   PROCEDURE mark_daemon_inst_completed( nInstId IN NUMBER )
6437
   IS
6438
      repSecs NUMBER;
6439
      schedDate  DATE;
6440
 
6441
      CURSOR daemon_inst_cur IS
6442
         SELECT di.REPEAT_SECS AS repSecs, di.SCHEDULED_DATETIME AS schedDate
6443
         FROM daemon_instructions di
6444
         WHERE di.daemon_instructions_id = nInstId;
6445
 
6446
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6447
   BEGIN
6448
      OPEN daemon_inst_cur;
6449
 
6450
      FETCH daemon_inst_cur
6451
      INTO daemon_inst_rec;
6452
 
6453
      IF daemon_inst_cur%FOUND THEN
6454
 
6455
         -- if instruction repeats daily, add 1 day to the scheduled time and update the record
6456
         IF daemon_inst_rec.repSecs = 86400 THEN
6457
            UPDATE Daemon_Instructions
6458
               SET scheduled_datetime = daemon_inst_rec.schedDate + 1,
6459
                  in_progress = '0'
6460
            WHERE daemon_instructions_id = nInstId;
6461
         ELSE
6462
            -- Delete the daemon instruction, we are done with it
6463
            del_daemon_inst(nInstId);
6464
         END IF;
6465
      END IF;
6466
 
6467
      CLOSE daemon_inst_cur;
6468
 
6469
   EXCEPTION
6470
      WHEN OTHERS
6471
      THEN
6472
         raise;
6473
 
6474
   END mark_daemon_inst_completed;
6475
/*-------------------------------------------------------------------------------------------------------*/
6476
   -- This function deletes any old daemon instruction that appears stranded due to a problem that might
6477
   -- have occured during buildtool operation such as might occur if the buildtool or the machine it was
6478
   -- hosted on came down whilst it was processing a daemon instruction.
6479
   PROCEDURE cleanup_stranded_daemon_insts
6480
   IS
6481
   BEGIN
6482
      -- delete records at least two days old
6483
      DELETE FROM daemon_instructions di
6484
      WHERE  (di.scheduled_datetime + 5) <= ora_sysdatetime;
6485
 
6486
   END cleanup_stranded_daemon_insts;
6487
/*-------------------------------------------------------------------------------------------------------*/
6488
  --This function supersedes function, add_daemon. Done for DEVI-046806
6489
   PROCEDURE add_daemon_config (
6490
      nrtagid           IN   NUMBER,
6491
      nbmcon_id         IN   NUMBER,
6492
      sdaemon_mode      IN   VARCHAR2,
6493
      sgbebuildfilter   IN   VARCHAR2
6494
   )
6495
   IS
6496
      nrecordnumber   NUMBER;
6497
      nrconid         NUMBER;
6498
      sdaemonhostname VARCHAR2(50);
6499
      ngbeid         NUMBER;
6500
   BEGIN
6501
      -- Get RCON_ID
6502
      SELECT seq_rcon_id.NEXTVAL
6503
      INTO nrconid
6504
      FROM DUAL;
6505
 
6506
      SELECT COUNT (*)
6507
      INTO nrecordnumber
6508
      FROM release_config
6509
      WHERE rtag_id = nrtagid;
6510
 
6511
      SELECT machine_hostname,gbe_id INTO sdaemonhostname,ngbeid
6512
      FROM build_machine_config
6513
      WHERE bmcon_id = nbmcon_id;
6514
 
6515
      INSERT INTO release_config
6516
             (rcon_id, rtag_id, daemon_hostname, daemon_mode,
4308 dpurdie 6517
                gbe_id, gbe_buildfilter, bmcon_id)
1373 dpurdie 6518
      VALUES (nrconid, nrtagid, sdaemonhostname, sdaemon_mode,
4308 dpurdie 6519
                ngbeid, sgbebuildfilter, nbmcon_id);
1373 dpurdie 6520
 
6521
      -- A newly configured daemon should initially be paused (DEVI-047277)
6522
      INSERT INTO run_level
6523
                  (rcon_id, pause)
6524
           VALUES (nrconid, 2);
6525
 
6526
   END;
6527
 
6528
/*-------------------------------------------------------------------------------------------------------*/
6529
  --This function supersedes function, update_daemon. Done for DEVI-046806
6530
   PROCEDURE update_daemon_config (
6531
      nrconid           IN   NUMBER,
6532
      nbmcon_id         IN   NUMBER,
6533
      sdaemon_mode      IN   VARCHAR2,
6534
      sgbebuildfilter   IN   VARCHAR2
6535
   )
6536
   IS
6537
      sdaemonhostname VARCHAR2(50);
6538
      ngbeid         NUMBER;
6539
   BEGIN
6540
 
6541
      SELECT machine_hostname,gbe_id INTO sdaemonhostname,ngbeid
6542
      FROM build_machine_config
6543
      WHERE bmcon_id = nbmcon_id;
6544
 
6545
      UPDATE release_config
6546
         SET daemon_hostname = sdaemonhostname,
6547
            gbe_id = ngbeid,
6548
            daemon_mode = sdaemon_mode,
4308 dpurdie 6549
            gbe_buildfilter = sgbebuildfilter,
6550
            bmcon_id = nbmcon_id 
1373 dpurdie 6551
      WHERE rcon_id = nrconid;
6552
   END;
6553
 
6554
 
6555
/*-------------------------------------------------------------------------------------------------------*/
6556
   PROCEDURE add_build_machine (
6557
      sdisplay_name          IN   VARCHAR2,
6558
      smachine_hostname      IN   VARCHAR2,
6559
      ngbeid                 IN   NUMBER,
5172 dpurdie 6560
      sdescription           IN   VARCHAR2,
6561
      sactive                IN   CHAR
1373 dpurdie 6562
   )
6563
   IS
6564
      nrecordnumber   NUMBER;
6565
      nbmcon_id       NUMBER;
6566
   BEGIN
6567
      -- Get BMCON_ID
6568
      SELECT seq_bmcon_id.NEXTVAL INTO nbmcon_id FROM DUAL;
6569
 
5172 dpurdie 6570
      INSERT INTO build_machine_config(bmcon_id, display_name, machine_hostname,gbe_id,description,active)
6571
            VALUES (nbmcon_id,sdisplay_name,smachine_hostname,ngbeid,sdescription, NVL(sactive,'N'));
1373 dpurdie 6572
 
6573
   EXCEPTION
6574
      WHEN DUP_VAL_ON_INDEX
6575
      THEN
6576
         raise_application_error (-20000,
6577
                                 'Cannot have duplicate machines.'
6578
                                 );
6579
 
6580
   END;
6581
 
6582
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 6583
 PROCEDURE duplicate_daemon_config (
6584
      nrtagid           IN   NUMBER,
6585
      nbmcon_id         IN   NUMBER,
6586
      sdaemonhostname   IN   VARCHAR2,
6587
      ngbe_id           IN   NUMBER,
6588
      sdaemon_mode      IN   VARCHAR2,
6589
      sgbebuildfilter   IN   VARCHAR2
6590
   )
6591
   IS
6592
      nrecordnumber   NUMBER;
6593
      nrconid         NUMBER;
6594
    BEGIN
6595
 
6596
      -- Get RCON_ID
6597
      SELECT seq_rcon_id.NEXTVAL
6598
      INTO nrconid
6599
      FROM DUAL;
6600
 
6601
      INSERT INTO release_config
6602
             (rcon_id, rtag_id, daemon_hostname, daemon_mode,
6603
                gbe_id, gbe_buildfilter, bmcon_id)
6604
      VALUES (nrconid, nrtagid, sdaemonhostname, sdaemon_mode,
6605
                ngbe_id, sgbebuildfilter, nbmcon_id);
6606
 
6607
    -- A newly configured daemon should initially be disabled (DEVI-047277)
6608
      INSERT INTO run_level
6609
                  (rcon_id, pause)
6610
           VALUES (nrconid, 2);
6611
 
6612
   END;
6613
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 6614
   PROCEDURE delete_build_machine (sbmcon_id_list IN VARCHAR2)
6615
   IS
6616
   BEGIN
6617
      DELETE FROM build_machine_config
6618
            WHERE bmcon_id IN (
6619
                     SELECT * FROM THE
6620
                              (SELECT CAST
6621
                                          (in_list_number (sbmcon_id_list) AS relmgr_number_tab_t
6622
                                          )
6623
                                 FROM DUAL
6624
                              ));
6625
   END;
6626
 
6627
 
6628
/*-------------------------------------------------------------------------------------------------------*/
6629
   PROCEDURE update_build_machine (
6630
      nbmcon_id              IN   NUMBER,
6631
      sdisplay_name          IN   VARCHAR2,
6632
      smachine_hostname      IN   VARCHAR2,
6633
      ngbeid                 IN   NUMBER,
5172 dpurdie 6634
      sdescription           IN   VARCHAR2,
6635
      sactive                IN   CHAR
1373 dpurdie 6636
   )
6637
   IS
6638
   BEGIN
6639
      UPDATE build_machine_config
6640
         SET display_name = sdisplay_name,
6641
             machine_hostname = smachine_hostname,
6642
             gbe_id = ngbeid,
5172 dpurdie 6643
             description = sdescription,
6644
             active = NVL(sactive, 'N')
1373 dpurdie 6645
      WHERE bmcon_id = nbmcon_id;
6646
   EXCEPTION
6647
      WHEN DUP_VAL_ON_INDEX
6648
      THEN
6649
         raise_application_error (-20000,
6650
                                 'Cannot have duplicate machines.'
6651
                                 );
6652
   END;
4553 dpurdie 6653
 
6654
/*-------------------------------------------------------------------------------------------------------*/
6655
PROCEDURE import_daemons ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER  ) IS
6656
 
6657
   sSourceLocation VARCHAR2(4000);
6658
   sTargetLocation VARCHAR2(4000);
6659
   ProjId NUMBER;
6660
   cReleaseMode CHAR(1);
6661
   RconId NUMBER;
6662
 
6663
   -- this cursor gets the source release daemon configurations, ensuring that the
6664
   -- first record will be the master daemon, and subsequent records will be the slaves.
6665
   CURSOR curSrcReleaseConfigs IS
6666
    SELECT daemon_hostname, gbe_id, gbe_buildfilter, bmcon_id, daemon_mode
6667
     FROM RELEASE_CONFIG rc
6668
    WHERE rc.RTAG_ID = nSourceRtagId
6669
    ORDER BY rc.daemon_mode;
6670
    recSrcReleaseConfigs curSrcReleaseConfigs%ROWTYPE;
6671
 
6672
    -- this cursor looks for target release daemons
6673
   CURSOR curTgtReleaseConfigs IS
6674
    SELECT rcon_id
6675
     FROM RELEASE_CONFIG rc
6676
    WHERE rc.RTAG_ID = nTargetRtagId;
6677
    recTgtReleaseConfigs curTgtReleaseConfigs%ROWTYPE;
6678
 
6679
    -- this cursor looks for target release daemon run level entries
6680
   CURSOR curTgtReleaseConfigRunLevel IS
6681
    SELECT current_run_level
6682
     FROM RUN_LEVEL rl
6683
    WHERE rl.RCON_ID = recTgtReleaseConfigs.rcon_id;
6684
    recTgtReleaseConfigRunLevel curTgtReleaseConfigRunLevel%ROWTYPE;
6685
 
6686
BEGIN
6687
   /*--------------- Business Rules Here -------------------*/
6688
   IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)
6689
   THEN
6690
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );
6691
   END IF;
6692
 
6693
   IF (nSourceRtagId = nTargetRtagId) THEN
6694
      RAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );
6695
   END IF;
6696
 
6697
   -- Check if Target release is in OPEN mode
6698
   SELECT rt.OFFICIAL  INTO  cReleaseMode
6699
     FROM RELEASE_TAGS rt
6700
    WHERE rt.RTAG_ID = nTargetRtagId;
6701
 
6702
   IF (cReleaseMode != 'N') THEN
6703
      RAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the contents.' );
6704
   END IF;
6705
 
6706
   -- check that the target release's daemons are all paused before we allow an import operation
6707
   OPEN curTgtReleaseConfigs;
6708
   FETCH curtgtReleaseConfigs INTO recTgtReleaseConfigs;
6709
 
6710
   WHILE curTgtReleaseConfigs%FOUND
6711
   LOOP
6712
      OPEN curTgtReleaseConfigRunLevel;
6713
      FETCH curTgtReleaseConfigRunLevel INTO recTgtReleaseConfigRunLevel;
6714
      IF curTgtReleaseConfigRunLevel%FOUND THEN
6715
         IF (recTgtReleaseConfigRunLevel.current_run_level IS NULL) OR
6716
            (recTgtReleaseConfigRunLevel.current_run_level <> 2) THEN
6717
            RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
6718
         END IF;
6719
      ELSE
6720
         -- we don't know what the daemon run level is so err on the side of caution
6721
         RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
6722
      END IF;
6723
      CLOSE curTgtReleaseConfigRunLevel;
6724
 
6725
      FETCH curTgtReleaseConfigs INTO recTgtReleaseConfigs;
6726
   END LOOP;
6727
 
6728
   CLOSE curTgtReleaseConfigs;
6729
 
6730
 
6731
   /*-------------------------------------------------------*/
6732
 
6733
   --Import Release Configuration Information
6734
   OPEN curSrcReleaseConfigs;
6735
   FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
6736
 
6737
     WHILE curSrcReleaseConfigs%FOUND
6738
   LOOP
6739
      -- add a daemon to the target release
6740
      PK_BUILDAPI.duplicate_daemon_config( nTargetRtagId, 
6741
                                     recSrcReleaseConfigs.bmcon_id, 
6742
                                     recSrcReleaseConfigs.daemon_hostname, 
6743
                                     recSrcReleaseConfigs.gbe_id, 
6744
                                     recSrcReleaseConfigs.daemon_mode ,
6745
                                     recSrcReleaseConfigs.gbe_buildfilter );
6746
 
6747
      FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
6748
   END LOOP;
6749
 
6750
   CLOSE curSrcReleaseConfigs;
6751
 
6752
 
6753
   /* Log Project Action */
6754
   -- Get Source Location
6755
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sSourceLocation
6756
     FROM RELEASE_TAGS rt,
6757
           PROJECTS pr
6758
    WHERE rt.PROJ_ID = pr.PROJ_ID
6759
      AND rt.RTAG_ID = nSourceRtagId;
6760
 
6761
   -- Get Target Location
6762
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sTargetLocation
6763
     FROM RELEASE_TAGS rt,
6764
           PROJECTS pr
6765
    WHERE rt.PROJ_ID = pr.PROJ_ID
6766
      AND rt.RTAG_ID = nTargetRtagId;
6767
 
6768
   -- Get project id
6769
   SELECT rt.PROJ_ID  INTO  ProjId
6770
     FROM RELEASE_TAGS rt
6771
    WHERE rt.RTAG_ID = nTargetRtagId;
6772
 
6773
   Log_Project_Action ( ProjId, 'import_daemon_configuration', nUserId, 'SOURCE: '|| sSourceLocation ||'   TARGET: '|| sTargetLocation, nTargetRtagId );
6774
END;
6775
 
1373 dpurdie 6776
END pk_buildapi;
4040 dpurdie 6777
 
1374 dpurdie 6778
/
4040 dpurdie 6779
--------------------------------------------------------
6780
--  DDL for Package Body PK_ENVIRONMENT
6781
--------------------------------------------------------
6782
 
5172 dpurdie 6783
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_ENVIRONMENT" 
1373 dpurdie 6784
IS
6785
 
6786
   /*-------------------------------------------------------------------------------------------------------*/
6787
   FUNCTION select_environment_area (cdlock IN package_versions.dlocked%TYPE)
6788
     RETURN NUMBER
6789
   IS
6790
   BEGIN
6791
      /*
6792
     || N - unlocked
6793
     || Y - release and locked
6794
     || P - penging approval
6795
     || A - approved package ready for auto-build
6796
     */
6797
     IF cdlock = 'N' OR cdlock = 'R'
6798
     THEN
6799
       -- WORK IN PROGRESS --
6800
       RETURN 0;
6801
     ELSIF cdlock = 'P' OR cdlock = 'A'
6802
     THEN
6803
       -- PENDING --
6804
       RETURN 1;
6805
     ELSIF cdlock = 'Y'
6806
     THEN
6807
       -- RELEASED --
6808
       RETURN 2;
6809
     ELSE
6810
       -- NOT FOUND --
6811
       raise_application_error
6812
                   (-20000,
6813
                      'Cannot decide where to place package. [cDlock='
6814
                    || cdlock
6815
                    || ']'
6816
                   );
6817
     END IF;
6818
   END;
6819
 
6820
/*-------------------------------------------------------------------------------------------------------*/
6821
   FUNCTION get_package_area (pvid IN NUMBER, rtagid IN NUMBER)
6822
     RETURN NUMBER
6823
   IS
6824
     envtab   NUMBER         := -1;
6825
 
6826
     CURSOR curarea
6827
     IS
6828
       SELECT 2 AS envtab
6829
         FROM release_content rc
6830
        WHERE rc.rtag_id = rtagid AND rc.pv_id = pvid
6831
       UNION
6832
       SELECT 0 AS envtab
6833
         FROM work_in_progress wip
6834
        WHERE wip.rtag_id = rtagid AND wip.pv_id = pvid
6835
       UNION
6836
       SELECT 1 AS envtab
6837
         FROM planned pl
6838
        WHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;
6839
 
6840
     recarea   curarea%ROWTYPE;
6841
   BEGIN
6842
     OPEN curarea;
6843
 
6844
     FETCH curarea
6845
      INTO recarea;
6846
 
6847
     IF curarea%FOUND
6848
     THEN
6849
       envtab := recarea.envtab;
6850
     END IF;
6851
 
6852
     CLOSE curarea;
6853
 
6854
     RETURN envtab;
6855
   END;
6856
 
6857
/*-------------------------------------------------------------------------------------------------------*/
6858
   FUNCTION get_view_location (pvid IN NUMBER, rtagid IN NUMBER)
6859
     RETURN NUMBER
6860
   IS
6861
     ispatch   package_versions.dlocked%TYPE;
6862
     viewid   NUMBER                    := -1;
6863
 
6864
     CURSOR curview
6865
     IS
6866
       SELECT rc.base_view_id AS view_id
6867
         FROM release_content rc
6868
        WHERE rc.rtag_id = rtagid AND rc.pv_id = pvid
6869
       UNION
6870
       SELECT wip.view_id AS view_id
6871
         FROM work_in_progress wip
6872
        WHERE wip.rtag_id = rtagid AND wip.pv_id = pvid
6873
       UNION
6874
       SELECT pl.view_id AS view_id
6875
         FROM planned pl
6876
        WHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;
6877
 
6878
     recview   curview%ROWTYPE;
6879
   BEGIN
6880
     -- Get dlock state
6881
     SELECT pv.is_patch
6882
      INTO ispatch
6883
      FROM package_versions pv
6884
      WHERE pv.pv_id = pvid;
6885
 
6886
     -- Decide which view id should package go under.
6887
     IF (ispatch != 'Y') OR (ispatch IS NULL)
6888
     THEN
6889
       -- Get VIEW ID of Package
6890
       OPEN curview;
6891
 
6892
       FETCH curview
6893
        INTO recview;
6894
 
6895
       IF curview%FOUND
6896
       THEN
6897
         viewid := recview.view_id;
6898
       ELSE
6899
         raise_application_error
6900
            (-20000,
6901
               'Cannot find view_id to proceed. [PvId='
6902
            || pvid
6903
            || ']. The current version may not exist in the release anymore.'
6904
            );
6905
       END IF;
6906
 
6907
       CLOSE curview;
6908
     ELSE
6909
       -- Get VIEW ID of Patch (view id of parent package)
6910
       SELECT rc.base_view_id
6911
         INTO viewid
6912
         FROM release_content rc, package_patches ppv
6913
        WHERE rc.rtag_id = rtagid
6914
         AND rc.pv_id = ppv.pv_id
6915
         AND ppv.patch_id = pvid;
6916
     END IF;
6917
 
6918
     RETURN viewid;
6919
   END;
6920
 
6921
/*-------------------------------------------------------------------------------------------------------*/
6922
   PROCEDURE add_package (
6923
     pvid    IN   NUMBER,
6924
     viewid   IN   NUMBER,
6925
     rtagid   IN   NUMBER,
6926
     userid   IN   NUMBER
6927
   )
6928
   IS
6929
     dlocked   package_versions.dlocked%TYPE;
6930
     envtab   NUMBER;
6931
   BEGIN
6932
     IF can_edit_pkg_in_project (pvid, rtagid) = 1
6933
     THEN
6934
       -- Get dlock state
6935
       SELECT pv.dlocked
6936
         INTO dlocked
6937
         FROM package_versions pv
6938
        WHERE pv.pv_id = pvid;
6939
 
6940
       -- Get which area should go under
6941
       envtab := select_environment_area (dlocked);
6942
       -- Log
5172 dpurdie 6943
       --log_action (pvid, 'action', userid, 'Start of Package Add...');
1373 dpurdie 6944
 
6945
       -- Remove Package
6946
       IF envtab = 0
6947
       THEN
6948
         -- WORK IN PROGRESS --
6949
         pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
6950
       ELSIF envtab = 1
6951
       THEN
6952
         -- PENDING --
6953
         pk_planned.add_package (pvid, viewid, rtagid, userid);
6954
       ELSIF envtab = 2
6955
       THEN
6956
         -- RELEASED --
6957
         -- NOTE: this package will be replaced with matching package
6958
         pk_release.add_package (pvid, viewid, rtagid, userid);
6959
         -- Now do post Release Actions
6960
         pk_release.run_post_actions (pvid, rtagid);
6961
       END IF;
6962
 
6963
       -- Log
5172 dpurdie 6964
       --log_action (pvid, 'action', userid, 'End of Package Add...');
1373 dpurdie 6965
     END IF;
6966
   END;
6967
 
6968
/*-------------------------------------------------------------------------------------------------------*/
6969
   PROCEDURE add_package_bulk (
6970
     pvidlist   IN   VARCHAR2,
6971
     viewid    IN   NUMBER,
6972
     rtagid    IN   NUMBER,
6973
     userid    IN   NUMBER
6974
   )
6975
   IS
6976
     nidcollector   relmgr_number_tab_t         := relmgr_number_tab_t
6977
                                                        ();
6978
     dlocked      package_versions.dlocked%TYPE;
6979
     pvid         NUMBER;
6980
     envtab       NUMBER;
6981
   BEGIN
6982
     /*--------------- Business Rules Here -------------------*/
6983
     IF (pvidlist IS NULL)
6984
     THEN
6985
       raise_application_error (-20000,
6986
                          'Please select at least one package.'
6987
                         );
6988
     END IF;
6989
 
6990
/*-------------------------------------------------------*/
6991
     nidcollector := in_list_number (pvidlist);
6992
 
6993
     FOR i IN 1 .. nidcollector.COUNT
6994
     LOOP
6995
       pvid := nidcollector (i);
6996
       add_package (pvid, viewid, rtagid, userid);
6997
     END LOOP;
6998
   END;
6999
 
7000
/*-------------------------------------------------------------------------------------------------------*/
7001
   PROCEDURE replace_package (
7002
     newpvid  IN   NUMBER,
7003
     oldpvid  IN   NUMBER,
7004
     rtagid   IN   NUMBER,
7005
     userid   IN   NUMBER
7006
   )
7007
   IS
7008
     dlocked      package_versions.dlocked%TYPE;
7009
     viewid       NUMBER;
7010
     envtab       NUMBER;
7011
     ROWCOUNT     NUMBER;
7012
     creleasemode CHAR (1);
7013
     npkgid       NUMBER;
7014
   BEGIN
7015
     /*--------------- Business Rules Here -------------------*/
7016
     -- Check if oldPvId exists. It could have been removed
7017
     SELECT COUNT (pv.pv_id)
7018
       INTO ROWCOUNT
7019
       FROM package_versions pv
7020
      WHERE pv.pv_id = oldpvid;
7021
 
7022
/*-------------------------------------------------------*/
7023
 
7024
     /* This procedure is usually used by "History" option in Release Manager */
7025
 
7026
     -- Get dlock state
7027
     SELECT pv.dlocked
7028
       INTO dlocked
7029
       FROM package_versions pv
7030
      WHERE pv.pv_id = newpvid;
7031
 
7032
     -- Get VIEW_ID ---
7033
     IF ROWCOUNT = 1
7034
     THEN
7035
       viewid := get_view_location (oldpvid, rtagid);
7036
     ELSE
7037
       -- Set ViewID to default
7038
       viewid := 7;
7039
     END IF;
7040
 
7041
     -- Get which area should go under
7042
     envtab := select_environment_area (dlocked);
7043
     -- Log
5172 dpurdie 7044
     --log_action (oldpvid, 'action', userid, 'Start of Package Replace...');
1373 dpurdie 7045
 
7046
     -- Replace package
7047
     IF envtab = 0
7048
     THEN
7049
       -- WORK IN PROGRESS --
7050
 
7051
       -- Delete old package
7052
       pk_work_in_progress.remove_package (oldpvid, rtagid, userid);
7053
 
7054
       -- Add new package
7055
       pk_work_in_progress.add_package (newpvid, viewid, rtagid, userid);
7056
     ELSIF envtab = 1
7057
     THEN
7058
       -- PENDING --
7059
 
7060
       -- Delete old package
7061
       pk_planned.remove_package (oldpvid, rtagid, userid);
7062
 
7063
       -- Add new package
7064
       pk_planned.add_package (newpvid, viewid, rtagid, userid);
7065
     ELSIF envtab = 2
7066
     THEN
7067
       -- RELEASED --
5172 dpurdie 7068
 
7069
       -- Replace Package
7070
       pk_release.replace_package(newpvid, oldpvid, rtagid, userid);
7071
 
1373 dpurdie 7072
       -- Now do post Release Actions
7073
       pk_release.run_post_actions (newpvid, rtagid);
7074
     END IF;
7075
 
7076
     -- Log
5172 dpurdie 7077
     --log_action (oldpvid, 'action', userid, 'End of Package Replace...');
1373 dpurdie 7078
   END;
7079
 
7080
/*-------------------------------------------------------------------------------------------------------*/
7081
   FUNCTION remove_package (
7082
     pvid        IN   NUMBER,
7083
     rtagid      IN   NUMBER,
7084
     userid      IN   NUMBER,
7085
     forceremove IN   CHAR
7086
   )
7087
     RETURN NUMBER
7088
   IS
7089
     envtab      NUMBER;
7090
     isused      BOOLEAN;
7091
     recordcount   NUMBER;
7092
   BEGIN
7093
/*--------------- Business Rules Here -------------------*/
7094
/*-------------------------------------------------------*/
7095
 
7096
     -- Find location of package
7097
     envtab := get_package_area (pvid, rtagid);
7098
 
7099
     -- Remove Package
7100
     IF envtab = 0
7101
     THEN
7102
       -- WORK IN PROGRESS --
7103
       -- Delete package
7104
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
7105
 
7106
       RETURN 0;
7107
     ELSIF envtab = 1
7108
     THEN
7109
       -- PENDING --
7110
       -- Delete package
7111
       pk_planned.remove_package (pvid, rtagid, userid);
7112
 
7113
       RETURN 0;
7114
     ELSIF envtab = 2
7115
     THEN
7116
       -- RELEASED --
7117
 
7118
       -- Check if is used by other packages
7119
       isused := TRUE;
7120
 
7121
       IF forceremove = 'N'
7122
       THEN
5172 dpurdie 7123
          select count(dpv.PKG_ID) INTO recordcount from 
7124
          (SELECT  rc.pv_id
7125
          FROM RELEASE_CONTENT rc, PEGGED_VERSIONS peg
7126
            WHERE rc.rtag_id = rtagid
7127
            AND peg.RTAG_ID(+) = rc.RTAG_ID
7128
            AND peg.PV_ID(+) = rc.PV_ID
7129
            AND peg.rtag_id is null
7130
            AND rc.SDKTAG_ID is null
7131
            ) arc,
7132
          PACKAGE_DEPENDENCIES dep,
7133
          PACKAGE_VERSIONS pv,
7134
          PACKAGE_VERSIONS dpv,
7135
          PACKAGE_VERSIONS bpv
7136
          where dep.PV_ID = arc.pv_id
7137
          AND dep.pv_id = pv.pv_id
7138
          AND dep.dpv_id = dpv.PV_ID
7139
          AND dpv.PKG_ID = bpv.PKG_ID
7140
          AND NVL(dpv.V_EXT, '.NULL') = NVL(bpv.V_EXT, '.NULL')
7141
          AND bpv.pv_id = pvid;
1373 dpurdie 7142
 
7143
         IF recordcount > 0
7144
         THEN
7145
            RETURN 1;               -- Return 1 as package being used
7146
         ELSE
7147
            isused := FALSE;
7148
         END IF;
7149
       END IF;
7150
 
7151
       IF forceremove = 'Y' OR NOT isused
7152
       THEN
7153
         -- Delete old package
7154
         pk_release.remove_package (pvid, rtagid, userid);
7155
 
7156
         -- Delete old package's pegging info
7157
         DELETE FROM PEGGED_VERSIONS pegv WHERE pegv.RTAG_ID = rtagid AND pegv.PV_ID = pvid;
7158
 
7159
         -- Delete old package's advisory ripple info
7160
         DELETE FROM ADVISORY_RIPPLE avr WHERE avr.RTAG_ID = rtagid AND avr.PV_ID = pvid;
7161
 
7162
         -- Now do post Release Actions
7163
         pk_release.run_post_actions (pvid, rtagid);
7164
         RETURN 0;
7165
       END IF;
7166
     END IF;
7167
   END;
7168
 
7169
/*-------------------------------------------------------------------------------------------------------*/
7170
   -- DEVI-45275 added the return of the new "operation" column in the recordset.
7171
 
7172
   PROCEDURE get_environment_items (
7173
     viewtype         IN      NUMBER,
7174
     userid           IN      NUMBER,
7175
     rtagid           IN      NUMBER,
7176
     sviewidshowlist  IN      VARCHAR2,
7177
     ntruerecordcount OUT     NUMBER,
7178
     recordset        OUT     typecur
7179
   )
7180
   IS
7181
   BEGIN
7182
     -- Get true record count because views can give false count
7183
     SELECT COUNT (pl.pv_id)
7184
      INTO ntruerecordcount
7185
      FROM environment_view pl
7186
      WHERE pl.rtag_id = rtagid;
7187
 
7188
     IF viewtype = 1
7189
     THEN
7190
       /*--- GUEST VIEW ---*/
7191
       OPEN recordset FOR
7192
         SELECT   *
7193
            FROM (
7194
                 /* Base Views collapsed */
7195
                 SELECT DISTINCT vi.view_id, vi.view_name,
7196
                             TO_NUMBER (NULL) AS pkg_state,
7197
                             TO_NUMBER (NULL) AS deprecated_state,
7198
                             TO_NUMBER (NULL) AS pv_id,
7199
                             NULL AS pkg_name, NULL AS pkg_version,
7200
                             NULL AS dlocked, NULL AS pv_description,
7201
                             rel.operation
7202
                         FROM environment_view rel, views vi
7203
                        WHERE rel.view_id = vi.view_id
7204
                          AND rtag_id = rtagid
7205
                          AND rel.view_id NOT IN (
7206
                               SELECT *
7207
                                 FROM THE
7208
                                       (SELECT CAST
7209
                                               (in_list_number
7210
                                                  (sviewidshowlist
7211
                                                  ) AS relmgr_number_tab_t
7212
                                               )
7213
                                         FROM DUAL
7214
                                       ))
7215
                 UNION
7216
                 /* Base Views expanded */
7217
                 SELECT vi.view_id, vi.view_name,
7218
                      DECODE (rel.pkg_state,
7219
                            NULL, 0,
7220
                            rel.pkg_state
7221
                           ) AS pkg_state,
7222
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7223
                      pv.pkg_version, pv.dlocked, pv.pv_description,
7224
                      rel.operation
7225
                  FROM environment_view rel,
7226
                      PACKAGES pkg,
7227
                      package_versions pv,
7228
                      views vi
7229
                  WHERE pv.pkg_id = pkg.pkg_id
7230
                   AND rel.pv_id = pv.pv_id
7231
                   AND rel.view_id = vi.view_id
7232
                   AND rel.view_id IN (
7233
                        SELECT *
7234
                          FROM THE
7235
                                (SELECT CAST
7236
                                        (in_list_number
7237
                                               (sviewidshowlist) AS relmgr_number_tab_t
7238
                                        )
7239
                                  FROM DUAL
7240
                                ))
7241
                   AND rtag_id = rtagid) ord
7242
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7243
     ELSIF viewtype = 2
7244
     THEN
7245
       /*--- PERSONAL VIEW ---*/
7246
       OPEN recordset FOR
7247
         SELECT   *
7248
            FROM (
7249
                 /* Base Views collapsed */
7250
                 SELECT DISTINCT vi.view_id, vi.view_name,
7251
                             TO_NUMBER (NULL) AS pkg_state,
7252
                             TO_NUMBER (NULL) AS deprecated_state,
7253
                             TO_NUMBER (NULL) AS pv_id,
7254
                             NULL AS pkg_name, NULL AS pkg_version,
7255
                             NULL AS dlocked, NULL AS pv_description,
7256
                             rel.operation
7257
                         FROM environment_view rel,
7258
                             view_settings vs,
7259
                             views vi
7260
                        WHERE rel.view_id = vi.view_id
7261
                          AND vs.view_id = rel.view_id
7262
                          AND vs.user_id = userid
7263
                          AND rtag_id = rtagid
7264
                          AND rel.view_id NOT IN (
7265
                               SELECT *
7266
                                 FROM THE
7267
                                       (SELECT CAST
7268
                                               (in_list_number
7269
                                                  (sviewidshowlist
7270
                                                  ) AS relmgr_number_tab_t
7271
                                               )
7272
                                         FROM DUAL
7273
                                       ))
7274
                 UNION
7275
                 /* Base Views expanded */
7276
                 SELECT vi.view_id, vi.view_name,
7277
                      DECODE (rel.pkg_state,
7278
                            NULL, 0,
7279
                            rel.pkg_state
7280
                           ) AS pkg_state,
7281
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7282
                      pv.pkg_version, pv.dlocked, pv.pv_description,
7283
                      rel.operation
7284
                  FROM environment_view rel,
7285
                      PACKAGES pkg,
7286
                      package_versions pv,
7287
                      views vi,
7288
                      view_settings vs
7289
                  WHERE pv.pkg_id = pkg.pkg_id
7290
                   AND rel.pv_id = pv.pv_id
7291
                   AND rel.view_id = vi.view_id
7292
                   AND vs.view_id = vi.view_id
7293
                   AND vs.user_id = userid
7294
                   AND rel.view_id IN (
7295
                        SELECT *
7296
                          FROM THE
7297
                                (SELECT CAST
7298
                                        (in_list_number
7299
                                               (sviewidshowlist) AS relmgr_number_tab_t
7300
                                        )
7301
                                  FROM DUAL
7302
                                ))
7303
                   AND rtag_id = rtagid
7304
                 UNION
7305
                 /* Private Views collapsed */
7306
                 SELECT vi.view_id, vi.view_name,
7307
                      TO_NUMBER (NULL) AS pkg_state,
7308
                      TO_NUMBER (NULL) AS deprecated_state,
7309
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
7310
                      NULL AS pkg_version, NULL AS dlocked,
7311
                      NULL AS pv_description,
7312
                      rel.operation
7313
                  FROM view_settings vs,
7314
                      view_def vd,
7315
                      views vi,
7316
                      environment_view rel,
7317
                      package_versions pv
7318
                  WHERE vs.view_id = vi.view_id
7319
                   AND rel.pv_id = pv.pv_id
7320
                   AND vd.pkg_id = pv.pkg_id
7321
                   AND vd.view_id = vi.view_id
7322
                   AND vi.base_view = 'N'
7323
                   AND rel.rtag_id = rtagid
7324
                   AND vs.user_id = userid
7325
                   AND vi.view_id NOT IN (
7326
                        SELECT *
7327
                          FROM THE
7328
                                (SELECT CAST
7329
                                        (in_list_number
7330
                                               (sviewidshowlist) AS relmgr_number_tab_t
7331
                                        )
7332
                                  FROM DUAL
7333
                                ))
7334
                 UNION
7335
                 /* Private Views expanded */
7336
                 SELECT vi.view_id, vi.view_name,
7337
                      DECODE (rel.pkg_state,
7338
                            NULL, 0,
7339
                            rel.pkg_state
7340
                           ) AS pkg_state,
7341
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7342
                      pv.pkg_version, pv.dlocked, pv.pv_description,
7343
                      rel.operation
7344
                  FROM users usr,
7345
                      view_settings vs,
7346
                      view_def vd,
7347
                      views vi,
7348
                      environment_view rel,
7349
                      PACKAGES pkg,
7350
                      package_versions pv
7351
                  WHERE vs.user_id = usr.user_id
7352
                   AND vs.view_id = vi.view_id
7353
                   AND vd.view_id = vi.view_id
7354
                   AND pv.pkg_id = pkg.pkg_id
7355
                   AND rel.pv_id = pv.pv_id
7356
                   AND rel.rtag_id = rtagid
7357
                   AND vd.pkg_id = pkg.pkg_id
7358
                   AND vi.base_view = 'N'
7359
                   AND vi.view_id IN (
7360
                        SELECT *
7361
                          FROM THE
7362
                                (SELECT CAST
7363
                                        (in_list_number
7364
                                               (sviewidshowlist) AS relmgr_number_tab_t
7365
                                        )
7366
                                  FROM DUAL
7367
                                ))
7368
                   AND usr.user_id = userid) ord
7369
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7370
     END IF;
7371
   END;
7372
 
7373
/*-------------------------------------------------------------------------------------------------------*/
7374
   PROCEDURE get_released_items (
7375
     viewtype         IN      NUMBER,
7376
     userid           IN      NUMBER,
7377
     rtagid           IN      NUMBER,
7378
     sviewidshowlist  IN      VARCHAR2,
7379
     ntruerecordcount OUT     NUMBER,
7380
     recordset        OUT     typecur
7381
   )
7382
   IS
7383
   BEGIN
7384
     -- Get true record count because views can give false count
7385
     SELECT COUNT (rc.pv_id)
7386
      INTO ntruerecordcount
7387
      FROM release_content rc
7388
      WHERE rc.rtag_id = rtagid;
7389
 
7390
     IF viewtype = 1
7391
     THEN
7392
       /*--- GUEST VIEW ---*/
7393
       OPEN recordset FOR
7394
         SELECT   *
7395
            FROM (
7396
                 /* Base Views collapsed */
7397
                 SELECT DISTINCT vi.view_id, vi.view_name,
7398
                             TO_NUMBER (NULL) AS pkg_state,
7399
                             TO_NUMBER (NULL) AS deprecated_state,
7400
                             TO_NUMBER (NULL) AS pv_id,
7401
                             NULL AS pkg_name, NULL AS pkg_version,
7402
                             NULL AS dlocked, NULL AS pv_description
7403
                         FROM release_content rel, views vi
7404
                        WHERE rel.base_view_id = vi.view_id
7405
                          AND rtag_id = rtagid
7406
                          AND rel.base_view_id NOT IN (
7407
                               SELECT *
7408
                                 FROM THE
7409
                                       (SELECT CAST
7410
                                               (in_list_number
7411
                                                  (sviewidshowlist
7412
                                                  ) AS relmgr_number_tab_t
7413
                                               )
7414
                                         FROM DUAL
7415
                                       ))
7416
                 UNION
7417
                 /* Base Views expanded */
7418
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
7419
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7420
                      pv.pkg_version, pv.dlocked, pv.pv_description
7421
                  FROM release_content rel,
7422
                      PACKAGES pkg,
7423
                      package_versions pv,
7424
                      views vi
7425
                  WHERE pv.pkg_id = pkg.pkg_id
7426
                   AND rel.pv_id = pv.pv_id
7427
                   AND rel.base_view_id = vi.view_id
7428
                   AND rel.base_view_id IN (
7429
                        SELECT *
7430
                          FROM THE
7431
                                (SELECT CAST
7432
                                        (in_list_number
7433
                                               (sviewidshowlist) AS relmgr_number_tab_t
7434
                                        )
7435
                                  FROM DUAL
7436
                                ))
7437
                   AND rtag_id = rtagid) ord
7438
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7439
     ELSIF viewtype = 2
7440
     THEN
7441
       /*--- PERSONAL VIEW ---*/
7442
       OPEN recordset FOR
7443
         SELECT   *
7444
            FROM (
7445
                 /* Base Views collapsed */
7446
                 SELECT DISTINCT vi.view_id, vi.view_name,
7447
                             TO_NUMBER (NULL) AS pkg_state,
7448
                             TO_NUMBER (NULL) AS deprecated_state,
7449
                             TO_NUMBER (NULL) AS pv_id,
7450
                             NULL AS pkg_name, NULL AS pkg_version,
7451
                             NULL AS dlocked, NULL AS pv_description
7452
                         FROM release_content rel,
7453
                             view_settings vs,
7454
                             views vi
7455
                        WHERE rel.base_view_id = vi.view_id
7456
                          AND vs.view_id = rel.base_view_id
7457
                          AND vs.user_id = userid
7458
                          AND rtag_id = rtagid
7459
                          AND rel.base_view_id NOT IN (
7460
                               SELECT *
7461
                                 FROM THE
7462
                                       (SELECT CAST
7463
                                               (in_list_number
7464
                                                  (sviewidshowlist
7465
                                                  ) AS relmgr_number_tab_t
7466
                                               )
7467
                                         FROM DUAL
7468
                                       ))
7469
                 UNION
7470
                 /* Base Views expanded */
7471
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
7472
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7473
                      pv.pkg_version, pv.dlocked, pv.pv_description
7474
                  FROM release_content rel,
7475
                      PACKAGES pkg,
7476
                      package_versions pv,
7477
                      views vi,
7478
                      view_settings vs
7479
                  WHERE pv.pkg_id = pkg.pkg_id
7480
                   AND rel.pv_id = pv.pv_id
7481
                   AND rel.base_view_id = vi.view_id
7482
                   AND vs.view_id = vi.view_id
7483
                   AND vs.user_id = userid
7484
                   AND rel.base_view_id IN (
7485
                        SELECT *
7486
                          FROM THE
7487
                                (SELECT CAST
7488
                                        (in_list_number
7489
                                               (sviewidshowlist) AS relmgr_number_tab_t
7490
                                        )
7491
                                  FROM DUAL
7492
                                ))
7493
                   AND rtag_id = rtagid
7494
                 UNION
7495
                 /* Private Views collapsed */
7496
                 SELECT vi.view_id, vi.view_name,
7497
                      TO_NUMBER (NULL) AS pkg_state,
7498
                      TO_NUMBER (NULL) AS deprecated_state,
7499
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
7500
                      NULL AS pkg_version, NULL AS dlocked,
7501
                      NULL AS pv_description
7502
                  FROM view_settings vs,
7503
                      view_def vd,
7504
                      views vi,
7505
                      release_content rel,
7506
                      package_versions pv
7507
                  WHERE vs.view_id = vi.view_id
7508
                   AND rel.pv_id = pv.pv_id
7509
                   AND vd.pkg_id = pv.pkg_id
7510
                   AND vd.view_id = vi.view_id
7511
                   AND vi.base_view = 'N'
7512
                   AND rel.rtag_id = rtagid
7513
                   AND vs.user_id = userid
7514
                   AND vi.view_id NOT IN (
7515
                        SELECT *
7516
                          FROM THE
7517
                                (SELECT CAST
7518
                                        (in_list_number
7519
                                               (sviewidshowlist) AS relmgr_number_tab_t
7520
                                        )
7521
                                  FROM DUAL
7522
                                ))
7523
                 UNION
7524
                 /* Private Views expanded */
7525
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
7526
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7527
                      pv.pkg_version, pv.dlocked, pv.pv_description
7528
                  FROM users usr,
7529
                      view_settings vs,
7530
                      view_def vd,
7531
                      views vi,
7532
                      release_content rel,
7533
                      PACKAGES pkg,
7534
                      package_versions pv
7535
                  WHERE vs.user_id = usr.user_id
7536
                   AND vs.view_id = vi.view_id
7537
                   AND vd.view_id = vi.view_id
7538
                   AND pv.pkg_id = pkg.pkg_id
7539
                   AND rel.pv_id = pv.pv_id
7540
                   AND rel.rtag_id = rtagid
7541
                   AND vd.pkg_id = pkg.pkg_id
7542
                   AND vi.base_view = 'N'
7543
                   AND vi.view_id IN (
7544
                        SELECT *
7545
                          FROM THE
7546
                                (SELECT CAST
7547
                                        (in_list_number
7548
                                               (sviewidshowlist) AS relmgr_number_tab_t
7549
                                        )
7550
                                  FROM DUAL
7551
                                ))
7552
                   AND usr.user_id = userid) ord
7553
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7554
     END IF;
7555
   END;
7556
 
7557
/*-------------------------------------------------------------------------------------------------------*/
7558
   PROCEDURE get_work_in_progress_items (
7559
     viewtype         IN      NUMBER,
7560
     userid           IN      NUMBER,
7561
     rtagid           IN      NUMBER,
7562
     sviewidshowlist  IN      VARCHAR2,
7563
     ntruerecordcount OUT     NUMBER,
7564
     recordset        OUT     typecur
7565
   )
7566
   IS
7567
   BEGIN
7568
     -- Get true record count because views can give false count
7569
     SELECT COUNT (wip.pv_id)
7570
      INTO ntruerecordcount
7571
      FROM work_in_progress wip
7572
      WHERE wip.rtag_id = rtagid;
7573
 
7574
     IF viewtype = 1
7575
     THEN
7576
       /*--- GUEST VIEW ---*/
7577
       OPEN recordset FOR
7578
         SELECT   *
7579
            FROM (
7580
                 /* Base Views collapsed */
7581
                 SELECT DISTINCT vi.view_id, vi.view_name,
7582
                             TO_NUMBER (NULL) AS pkg_state,
7583
                             TO_NUMBER (NULL) AS deprecated_state,
7584
                             TO_NUMBER (NULL) AS pv_id,
7585
                             NULL AS pkg_name, NULL AS pkg_version,
7586
                             NULL AS dlocked, NULL AS pv_description
7587
                         FROM work_in_progress rel, views vi
7588
                        WHERE rel.view_id = vi.view_id
7589
                          AND rtag_id = rtagid
7590
                          AND rel.view_id NOT IN (
7591
                               SELECT *
7592
                                 FROM THE
7593
                                       (SELECT CAST
7594
                                               (in_list_number
7595
                                                  (sviewidshowlist
7596
                                                  ) AS relmgr_number_tab_t
7597
                                               )
7598
                                         FROM DUAL
7599
                                       ))
7600
                 UNION
7601
                 /* Base Views expanded */
7602
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
7603
 
7604
                      --rel.pkg_state,
7605
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
7606
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
7607
                      pv.pv_description
7608
                  FROM work_in_progress rel,
7609
                      PACKAGES pkg,
7610
                      package_versions pv,
7611
                      views vi
7612
                  WHERE pv.pkg_id = pkg.pkg_id
7613
                   AND rel.pv_id = pv.pv_id
7614
                   AND rel.view_id = vi.view_id
7615
                   AND rel.view_id IN (
7616
                        SELECT *
7617
                          FROM THE
7618
                                (SELECT CAST
7619
                                        (in_list_number
7620
                                               (sviewidshowlist) AS relmgr_number_tab_t
7621
                                        )
7622
                                  FROM DUAL
7623
                                ))
7624
                   AND rtag_id = rtagid) ord
7625
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7626
     ELSIF viewtype = 2
7627
     THEN
7628
       /*--- PERSONAL VIEW ---*/
7629
       OPEN recordset FOR
7630
         SELECT   *
7631
            FROM (
7632
                 /* Base Views collapsed */
7633
                 SELECT DISTINCT vi.view_id, vi.view_name,
7634
                             TO_NUMBER (NULL) AS pkg_state,
7635
                             TO_NUMBER (NULL) AS deprecated_state,
7636
                             TO_NUMBER (NULL) AS pv_id,
7637
                             NULL AS pkg_name, NULL AS pkg_version,
7638
                             NULL AS dlocked, NULL AS pv_description
7639
                         FROM work_in_progress rel,
7640
                             view_settings vs,
7641
                             views vi
7642
                        WHERE rel.view_id = vi.view_id
7643
                          AND vs.view_id = rel.view_id
7644
                          AND vs.user_id = userid
7645
                          AND rtag_id = rtagid
7646
                          AND rel.view_id NOT IN (
7647
                               SELECT *
7648
                                 FROM THE
7649
                                       (SELECT CAST
7650
                                               (in_list_number
7651
                                                  (sviewidshowlist
7652
                                                  ) AS relmgr_number_tab_t
7653
                                               )
7654
                                         FROM DUAL
7655
                                       ))
7656
                 UNION
7657
                 /* Base Views expanded */
7658
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
7659
 
7660
                      --rel.pkg_state,
7661
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
7662
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
7663
                      pv.pv_description
7664
                  FROM work_in_progress rel,
7665
                      PACKAGES pkg,
7666
                      package_versions pv,
7667
                      views vi,
7668
                      view_settings vs
7669
                  WHERE pv.pkg_id = pkg.pkg_id
7670
                   AND rel.pv_id = pv.pv_id
7671
                   AND rel.view_id = vi.view_id
7672
                   AND vs.view_id = vi.view_id
7673
                   AND vs.user_id = userid
7674
                   AND rel.view_id IN (
7675
                        SELECT *
7676
                          FROM THE
7677
                                (SELECT CAST
7678
                                        (in_list_number
7679
                                               (sviewidshowlist) AS relmgr_number_tab_t
7680
                                        )
7681
                                  FROM DUAL
7682
                                ))
7683
                   AND rtag_id = rtagid
7684
                 UNION
7685
                 /* Private Views collapsed */
7686
                 SELECT vi.view_id, vi.view_name,
7687
                      TO_NUMBER (NULL) AS pkg_state,
7688
                      TO_NUMBER (NULL) AS deprecated_state,
7689
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
7690
                      NULL AS pkg_version, NULL AS dlocked,
7691
                      NULL AS pv_description
7692
                  FROM view_settings vs,
7693
                      view_def vd,
7694
                      views vi,
7695
                      work_in_progress rel,
7696
                      package_versions pv
7697
                  WHERE vs.view_id = vi.view_id
7698
                   AND rel.pv_id = pv.pv_id
7699
                   AND vd.pkg_id = pv.pkg_id
7700
                   AND vd.view_id = vi.view_id
7701
                   AND vi.base_view = 'N'
7702
                   AND rel.rtag_id = rtagid
7703
                   AND vs.user_id = userid
7704
                   AND vi.view_id NOT IN (
7705
                        SELECT *
7706
                          FROM THE
7707
                                (SELECT CAST
7708
                                        (in_list_number
7709
                                               (sviewidshowlist) AS relmgr_number_tab_t
7710
                                        )
7711
                                  FROM DUAL
7712
                                ))
7713
                 UNION
7714
                 /* Private Views expanded */
7715
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
7716
 
7717
                      --rel.pkg_state,
7718
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
7719
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
7720
                      pv.pv_description
7721
                  FROM users usr,
7722
                      view_settings vs,
7723
                      view_def vd,
7724
                      views vi,
7725
                      work_in_progress rel,
7726
                      PACKAGES pkg,
7727
                      package_versions pv
7728
                  WHERE vs.user_id = usr.user_id
7729
                   AND vs.view_id = vi.view_id
7730
                   AND vd.view_id = vi.view_id
7731
                   AND pv.pkg_id = pkg.pkg_id
7732
                   AND rel.pv_id = pv.pv_id
7733
                   AND rel.rtag_id = rtagid
7734
                   AND vd.pkg_id = pkg.pkg_id
7735
                   AND vi.base_view = 'N'
7736
                   AND vi.view_id IN (
7737
                        SELECT *
7738
                          FROM THE
7739
                                (SELECT CAST
7740
                                        (in_list_number
7741
                                               (sviewidshowlist) AS relmgr_number_tab_t
7742
                                        )
7743
                                  FROM DUAL
7744
                                ))
7745
                   AND usr.user_id = userid) ord
7746
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7747
     END IF;
7748
   END;
7749
 
7750
/*-------------------------------------------------------------------------------------------------------*/
7751
   -- DEVI-45275 added the return of the new "operation" column in the recordset.
7752
 
7753
   PROCEDURE get_pending_items (
7754
     viewtype         IN      NUMBER,
7755
     userid           IN      NUMBER,
7756
     rtagid           IN      NUMBER,
7757
     sviewidshowlist  IN      VARCHAR2,
7758
     ntruerecordcount OUT     NUMBER,
7759
     recordset        OUT     typecur
7760
   )
7761
   IS
7762
   BEGIN
7763
     -- Get true record count because views can give false count
7764
     SELECT COUNT (pl.pv_id)
7765
      INTO ntruerecordcount
7766
      FROM planned pl
7767
      WHERE pl.rtag_id = rtagid;
7768
 
7769
     IF viewtype = 1
7770
     THEN
7771
       /*--- GUEST VIEW ---*/
7772
       OPEN recordset FOR
7773
         SELECT   *
7774
            FROM (
7775
                 /* Base Views collapsed */
7776
                 SELECT DISTINCT vi.view_id, vi.view_name,
7777
                             TO_NUMBER (NULL) AS pkg_state,
7778
                             TO_NUMBER (NULL) AS deprecated_state,
7779
                             TO_NUMBER (NULL) AS pv_id,
7780
                             NULL AS pkg_name, NULL AS pkg_version,
7781
                             NULL AS dlocked, NULL AS pv_description,
7782
                             rel.operation
7783
                         FROM planned rel, views vi
7784
                        WHERE rel.view_id = vi.view_id
7785
                          AND rtag_id = rtagid
7786
                          AND rel.view_id NOT IN (
7787
                               SELECT *
7788
                                 FROM THE
7789
                                       (SELECT CAST
7790
                                               (in_list_number
7791
                                                  (sviewidshowlist
7792
                                                  ) AS relmgr_number_tab_t
7793
                                               )
7794
                                         FROM DUAL
7795
                                       ))
7796
                 UNION
7797
                 /* Base Views expanded */
7798
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
7799
 
7800
                      --rel.pkg_state,
7801
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
7802
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
7803
                      pv.pv_description,
7804
                      rel.operation
7805
                  FROM planned rel,
7806
                      PACKAGES pkg,
7807
                      package_versions pv,
7808
                      views vi
7809
                  WHERE pv.pkg_id = pkg.pkg_id
7810
                   AND rel.pv_id = pv.pv_id
7811
                   AND rel.view_id = vi.view_id
7812
                   AND rel.view_id IN (
7813
                        SELECT *
7814
                          FROM THE
7815
                                (SELECT CAST
7816
                                        (in_list_number
7817
                                               (sviewidshowlist) AS relmgr_number_tab_t
7818
                                        )
7819
                                  FROM DUAL
7820
                                ))
7821
                   AND rtag_id = rtagid) ord
7822
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7823
     ELSIF viewtype = 2
7824
     THEN
7825
       /*--- PERSONAL VIEW ---*/
7826
       OPEN recordset FOR
7827
         SELECT   *
7828
            FROM (
7829
                 /* Base Views collapsed */
7830
                 SELECT DISTINCT vi.view_id, vi.view_name,
7831
                             TO_NUMBER (NULL) AS pkg_state,
7832
                             TO_NUMBER (NULL) AS deprecated_state,
7833
                             TO_NUMBER (NULL) AS pv_id,
7834
                             NULL AS pkg_name, NULL AS pkg_version,
7835
                             NULL AS dlocked, NULL AS pv_description,
7836
                             rel.operation
7837
                         FROM planned rel, view_settings vs, views vi
7838
                        WHERE rel.view_id = vi.view_id
7839
                          AND vs.view_id = rel.view_id
7840
                          AND vs.user_id = userid
7841
                          AND rtag_id = rtagid
7842
                          AND rel.view_id NOT IN (
7843
                               SELECT *
7844
                                 FROM THE
7845
                                       (SELECT CAST
7846
                                               (in_list_number
7847
                                                  (sviewidshowlist
7848
                                                  ) AS relmgr_number_tab_t
7849
                                               )
7850
                                         FROM DUAL
7851
                                       ))
7852
                 UNION
7853
                 /* Base Views expanded */
7854
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
7855
 
7856
                      --rel.pkg_state,
7857
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
7858
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
7859
                      pv.pv_description,
7860
                      rel.operation
7861
                  FROM planned rel,
7862
                      PACKAGES pkg,
7863
                      package_versions pv,
7864
                      views vi,
7865
                      view_settings vs
7866
                  WHERE pv.pkg_id = pkg.pkg_id
7867
                   AND rel.pv_id = pv.pv_id
7868
                   AND rel.view_id = vi.view_id
7869
                   AND vs.view_id = vi.view_id
7870
                   AND vs.user_id = userid
7871
                   AND rel.view_id IN (
7872
                        SELECT *
7873
                          FROM THE
7874
                                (SELECT CAST
7875
                                        (in_list_number
7876
                                               (sviewidshowlist) AS relmgr_number_tab_t
7877
                                        )
7878
                                  FROM DUAL
7879
                                ))
7880
                   AND rtag_id = rtagid
7881
                 UNION
7882
                 /* Private Views collapsed */
7883
                 SELECT vi.view_id, vi.view_name,
7884
                      TO_NUMBER (NULL) AS pkg_state,
7885
                      TO_NUMBER (NULL) AS deprecated_state,
7886
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
7887
                      NULL AS pkg_version, NULL AS dlocked,
7888
                      NULL AS pv_description,
7889
                      rel.operation
7890
                  FROM view_settings vs,
7891
                      view_def vd,
7892
                      views vi,
7893
                      planned rel,
7894
                      package_versions pv
7895
                  WHERE vs.view_id = vi.view_id
7896
                   AND rel.pv_id = pv.pv_id
7897
                   AND vd.pkg_id = pv.pkg_id
7898
                   AND vd.view_id = vi.view_id
7899
                   AND vi.base_view = 'N'
7900
                   AND rel.rtag_id = rtagid
7901
                   AND vs.user_id = userid
7902
                   AND vi.view_id NOT IN (
7903
                        SELECT *
7904
                          FROM THE
7905
                                (SELECT CAST
7906
                                        (in_list_number
7907
                                               (sviewidshowlist) AS relmgr_number_tab_t
7908
                                        )
7909
                                  FROM DUAL
7910
                                ))
7911
                 UNION
7912
                 /* Private Views expanded */
7913
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
7914
 
7915
                      --rel.pkg_state,
7916
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
7917
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
7918
                      pv.pv_description,
7919
                      rel.operation
7920
                  FROM users usr,
7921
                      view_settings vs,
7922
                      view_def vd,
7923
                      views vi,
7924
                      planned rel,
7925
                      PACKAGES pkg,
7926
                      package_versions pv
7927
                  WHERE vs.user_id = usr.user_id
7928
                   AND vs.view_id = vi.view_id
7929
                   AND vd.view_id = vi.view_id
7930
                   AND pv.pkg_id = pkg.pkg_id
7931
                   AND rel.pv_id = pv.pv_id
7932
                   AND rel.rtag_id = rtagid
7933
                   AND vd.pkg_id = pkg.pkg_id
7934
                   AND vi.base_view = 'N'
7935
                   AND vi.view_id IN (
7936
                        SELECT *
7937
                          FROM THE
7938
                                (SELECT CAST
7939
                                        (in_list_number
7940
                                               (sviewidshowlist) AS relmgr_number_tab_t
7941
                                        )
7942
                                  FROM DUAL
7943
                                ))
7944
                   AND usr.user_id = userid) ord
7945
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7946
     END IF;
7947
   END;
7948
 
7949
/*-------------------------------------------------------------------------------------------------------*/
7950
   PROCEDURE get_view_content (
7951
     rtagid     IN      NUMBER,
7952
     viewid     IN      NUMBER,
7953
     recordset OUT     typecur
7954
   )
7955
   IS
7956
     isbaseview   CHAR (1);
7957
   BEGIN
7958
     -- Check if the view is BASE VIEW
7959
     SELECT vi.base_view
7960
      INTO isbaseview
7961
      FROM views vi
7962
      WHERE vi.view_id = viewid;
7963
 
5172 dpurdie 7964
     IF (IsBaseView IN ('Y', 'S'))
1373 dpurdie 7965
     THEN
7966
       -- Get Base view content
7967
       OPEN recordset FOR
7968
         SELECT   DECODE (rel.pkg_state,
7969
                      NULL, 0,
7970
                      rel.pkg_state
7971
                     ) AS pkg_state,
7972
                rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7973
                pv.pkg_version, pv.dlocked, pv.pv_description,
7974
                pv.build_type,
7975
                rel.operation
7976
            FROM environment_view rel, PACKAGES pkg, package_versions pv
7977
            WHERE pv.pkg_id = pkg.pkg_id
7978
             AND rel.pv_id = pv.pv_id
7979
             AND rel.view_id = viewid
7980
             AND rel.rtag_id = rtagid
7981
         ORDER BY UPPER (pkg.pkg_name);
7982
     ELSE
7983
       -- Get non base view content
7984
       OPEN recordset FOR
7985
         SELECT   DECODE (rel.pkg_state,
7986
                      NULL, 0,
7987
                      rel.pkg_state
7988
                     ) AS pkg_state,
7989
                rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7990
                pv.pkg_version, pv.dlocked, pv.pv_description,
7991
                pv.build_type,
7992
                rel.operation
7993
            FROM environment_view rel,
7994
                PACKAGES pkg,
7995
                package_versions pv,
7996
                view_def vd
7997
            WHERE pv.pkg_id = pkg.pkg_id
7998
             AND rel.pv_id = pv.pv_id
7999
             AND rel.rtag_id = rtagid
8000
             AND vd.view_id = viewid
8001
             AND vd.pkg_id = pv.pkg_id
8002
         ORDER BY UPPER (pkg.pkg_name);
8003
     END IF;
8004
   END;
8005
 
8006
/*-------------------------------------------------------------------------------------------------------*/
8007
   FUNCTION get_package_view (pvid IN NUMBER, rtagid IN NUMBER)
8008
     RETURN NUMBER
8009
   IS
8010
     envtab           NUMBER;
8011
     returnvalue      NUMBER;
8012
     return_not_found NUMBER := -1;
8013
   BEGIN
8014
     envtab := get_package_area (pvid, rtagid);
8015
 
8016
     IF envtab = 0
8017
     THEN
8018
       -- WORK IN PROGRESS --
8019
       returnvalue := pk_work_in_progress.get_package_view (pvid, rtagid);
8020
     ELSIF envtab = 1
8021
     THEN
8022
       -- PENDING --
8023
       returnvalue := pk_planned.get_package_view (pvid, rtagid);
8024
     ELSIF envtab = 2
8025
     THEN
8026
       -- RELEASED --
8027
       returnvalue := pk_release.get_package_view (pvid, rtagid);
8028
     ELSE
8029
       -- This may be a Patch not located anywhere but unlocked
8030
       returnvalue := return_not_found;
8031
     END IF;
8032
 
8033
     RETURN returnvalue;
8034
   END;
8035
 
8036
/*-------------------------------------------------------------------------------------------------------*/
5172 dpurdie 8037
  PROCEDURE make_release (
4585 dpurdie 8038
     pvid          IN   NUMBER,                         -- NEW  PKG pvid
8039
     rtagid        IN   NUMBER,                         -- Release Id
8040
     userid        IN   NUMBER                          -- User performing Release
8041
   )
1373 dpurdie 8042
   IS
8043
     viewid        NUMBER;
8044
     envtab        NUMBER;
8045
     ispatch       CHAR (1) := NULL;
8046
     buildtype     CHAR (1) := NULL;
8047
   BEGIN
8048
     -- Check if package is patch
8049
     SELECT pv.is_patch, pv.build_type
8050
      INTO ispatch, buildtype
8051
      FROM package_versions pv
8052
      WHERE pv.pv_id = pvid;
8053
 
8054
     -- Get ViewId
8055
     viewid := get_package_view (pvid, rtagid);
8056
     -- Remove from current area
8057
     envtab := pk_environment.get_package_area (pvid, rtagid);
8058
 
8059
     -- Make sure that package was in work-in-progress or pending before makeing it release
8060
     -- Exclude patches, ripple builds
8061
     IF (envtab < 0)
8062
     THEN
8063
       -- Not found in work-in-progress or pending
8064
       IF (ispatch IS NULL) AND (buildtype = 'M')
8065
       THEN
8066
         raise_application_error (-20000,
8067
                            'This package cannot be released here.'
8068
                           );
8069
       END IF;
8070
     END IF;
8071
 
8072
     -- Log
5172 dpurdie 8073
     --log_action (pvid, 'action', userid, 'Start of Make Package Release...');
1373 dpurdie 8074
 
8075
     IF envtab = 0
8076
     THEN
8077
       -- WORK IN PROGRESS --
8078
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
8079
     ELSIF envtab = 1
8080
     THEN
8081
       -- PENDING --
8082
       pk_planned.remove_package (pvid, rtagid, userid);
8083
     END IF;
8084
 
8085
     -- Change package state
4585 dpurdie 8086
     -- Set dlocked state to mark the package a 'Released and Locked'
1373 dpurdie 8087
     pk_package.change_state (pvid, 'Y', userid);
8088
 
8089
     -- Make sure it is valid BASE VIEW
8090
     IF viewid < 1
8091
     THEN
8092
       viewid := 7;                     -- This is default base view
8093
     END IF;
8094
 
8095
     IF (ispatch IS NULL)
8096
     THEN
4585 dpurdie 8097
       -- Add (Replace) package to new area
1373 dpurdie 8098
       pk_release.add_package (pvid, viewid, rtagid, userid);
8099
     END IF;
8100
 
8101
     -- Now do post Release Actions
8102
     pk_release.run_post_actions (pvid, rtagid);
8103
 
8104
     -- The release has changed and there may now be invalid rtag_id/pv_id combinations in
8105
     -- the DO_NOT_RIPPLE and ADVISORY_RIPPLE Tables so perform a clean-up operation upon them.
8106
     clean_do_not_ripple(rtagid);
8107
     clean_advisory_ripple(rtagid);
8108
 
8109
     -- Log
5172 dpurdie 8110
     --log_action (pvid, 'action', userid, 'End of Make Package Release...');
1373 dpurdie 8111
   END;
8112
 
8113
/*-------------------------------------------------------------------------------------------------------*/
4585 dpurdie 8114
  --  Release a specified package into a specified release
8115
  --
8116
  --  Similar to 'make_release', but it attempts to handle the case where a package-version
8117
  --  is being replaced with one with a different package-suffix, but it doesn't
8118
  --  handle all the cases well. 
8119
  --
8120
  --  The current build system cannot do this automatically - yet
8121
  --
8122
  --
1373 dpurdie 8123
   PROCEDURE auto_make_release (
4585 dpurdie 8124
     pvid          IN   NUMBER,                         -- NEW  PKG pvid
8125
     rtagid        IN   NUMBER,                         -- Release Id
8126
     userid        IN   NUMBER,                         -- User performing Release
8127
     vext          IN   package_versions.v_ext%TYPE,    -- Package Extension for original pkg
8128
     ssv_ext       IN   package_versions.v_ext%TYPE,    -- Package Extension for new package
8129
     clonefrompvid IN   NUMBER                          -- PVID of Original
1373 dpurdie 8130
   )
8131
   IS
8132
     viewid        NUMBER;
8133
     envtab        NUMBER;
4585 dpurdie 8134
 
8135
     clone_removal NUMBER := 0;
8136
     clone_viewid  NUMBER := -1;
8137
     clone_envtab  NUMBER := -1;
8138
 
1373 dpurdie 8139
     ispatch       CHAR (1) := NULL;
4585 dpurdie 8140
     buildtype     CHAR (1) := NULL;
8141
 
1373 dpurdie 8142
   BEGIN
8143
     -- Check if package is patch
8144
     SELECT pv.is_patch, pv.build_type
8145
      INTO ispatch, buildtype
8146
      FROM package_versions pv
8147
      WHERE pv.pv_id = pvid;
8148
 
4585 dpurdie 8149
     --
8150
     -- Determine the viewid and environment for the new package
8151
     --
8152
     viewid := get_package_view (pvid, rtagid);
8153
     envtab := pk_environment.get_package_area (pvid, rtagid);
8154
 
8155
     --
8156
     -- If changing pkgExt, then we need to delete the orig package, not just replace it
8157
     --
8158
     IF (clonefrompvid is NOT NULL) AND (vext <> ssv_ext)
1373 dpurdie 8159
     THEN
4585 dpurdie 8160
        clone_removal := 1;
8161
        clone_viewid := get_package_view (clonefrompvid, rtagid);
8162
        clone_envtab := pk_environment.get_package_area (clonefrompvid, rtagid);
1373 dpurdie 8163
     END IF;
8164
 
4585 dpurdie 8165
     --
1373 dpurdie 8166
     -- Make sure that package was in work-in-progress or pending before makeing it release
8167
     -- Exclude patches, ripple builds
4585 dpurdie 8168
     --
1373 dpurdie 8169
     IF (envtab < 0)
8170
     THEN
8171
       -- Not found in work-in-progress or pending
8172
       IF (ispatch IS NULL) AND (buildtype = 'M')
8173
       THEN
8174
         raise_application_error (-20000,
8175
                            'This package cannot be released here.'
8176
                           );
8177
       END IF;
8178
     END IF;
8179
 
8180
     -- Log
5172 dpurdie 8181
     --log_action (pvid, 'action', userid, 'Start of Make Package Release...');
1373 dpurdie 8182
 
4585 dpurdie 8183
     --
8184
     -- Remove the package from the WIP or PENDING tab
8185
     -- Do NOT remove from the release area. 
8186
     --     This will be handled later with a process that
8187
     --     will do a 'replace' so that meta data is not lost
8188
     --
8189
    IF envtab = 0
8190
    THEN
8191
        -- WORK IN PROGRESS --
8192
        pk_work_in_progress.remove_package (pvid, rtagid, userid);
8193
    ELSIF envtab = 1
8194
    THEN
8195
        -- PENDING --
8196
        pk_planned.remove_package (pvid, rtagid, userid);
8197
    END IF;
8198
 
8199
    --
8200
    --  If we are changing the pkgExt, then fully remove the base package
8201
    --  This includes removing it from the 'release' area.
8202
    --
8203
    IF clone_removal = 1
8204
    THEN
8205
        IF clone_envtab = 0
8206
        THEN
8207
            -- WORK IN PROGRESS --
8208
            pk_work_in_progress.remove_package (clonefrompvid, rtagid, userid);
8209
        ELSIF clone_envtab = 1
8210
        THEN
8211
            -- PENDING --
8212
            pk_planned.remove_package (clonefrompvid, rtagid, userid);
8213
        ELSIF clone_envtab = 2
8214
        THEN
8215
            -- RELEASED --
8216
            pk_release.remove_package (clonefrompvid, rtagid, userid);
1373 dpurdie 8217
       END IF;
4585 dpurdie 8218
    END IF;
1373 dpurdie 8219
 
8220
     -- Change package state
4585 dpurdie 8221
     -- Set dlocked state to mark the package a 'Released and Locked'
1373 dpurdie 8222
     pk_package.change_state (pvid, 'Y', userid);
8223
 
8224
     -- Make sure it is valid BASE VIEW
4585 dpurdie 8225
     -- If its not specified, give it a default (7) view
1373 dpurdie 8226
     IF viewid < 1
8227
     THEN
4585 dpurdie 8228
        IF clone_viewid >= 0
8229
        THEN
8230
            viewid := clone_viewid; 
8231
        ELSE
8232
            viewid := 7;
8233
        END IF;
1373 dpurdie 8234
     END IF;
8235
 
8236
     IF (ispatch IS NULL)
8237
     THEN
4585 dpurdie 8238
       -- Add (Replace) package to new area
1373 dpurdie 8239
       pk_release.add_package (pvid, viewid, rtagid, userid);
8240
     END IF;
8241
 
8242
     -- Now do post Release Actions
8243
     pk_release.run_post_actions (pvid, rtagid);
8244
     -- Now update the Dash_Board Table (DEPRECATED)
8245
     pk_rmapi.update_dash_board (rtagid);
8246
 
8247
     -- The release has changed and there may now be invalid rtag_id/pv_id combinations in
8248
     -- the DO_NOT_RIPPLE and ADVISORY_RIPPLE Tables so perform a clean-up operation upon them.
8249
     clean_do_not_ripple(rtagid);
8250
     clean_advisory_ripple(rtagid);
8251
 
8252
     -- Log
5172 dpurdie 8253
     --log_action (pvid, 'action', userid, 'End of Make Package Release...');
1373 dpurdie 8254
   END;
8255
 
5172 dpurdie 8256
 
1373 dpurdie 8257
/*-------------------------------------------------------------------------------------------------------*/
8258
   PROCEDURE make_unrelease (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
8259
   IS
8260
     viewid   NUMBER;
8261
     envtab   NUMBER;
8262
   BEGIN
8263
     -- Get ViewId
8264
     --ViewId := PK_RELEASE.GET_PACKAGE_VIEW ( PvId, RtagId );
8265
     viewid := get_package_view (pvid, rtagid);
8266
     -- Remove from current area
8267
     envtab := pk_environment.get_package_area (pvid, rtagid);
8268
     -- Log
5172 dpurdie 8269
     -- log_action (pvid, 'action', userid, 'Start of Make Package UnRelease...' );
1373 dpurdie 8270
 
8271
     IF envtab = 2
8272
     THEN
8273
       -- RELEASE AREA --
8274
       pk_release.remove_package (pvid, rtagid, userid);
8275
     ELSIF envtab = 1
8276
     THEN
8277
       -- PENDING --
8278
       pk_planned.remove_package (pvid, rtagid, userid);
8279
     END IF;
8280
 
8281
     -- Change package state
8282
     pk_package.change_state (pvid, 'N', userid);
8283
 
8284
     -- Make sure it is valid BASE VIEW
8285
     IF viewid < 1
8286
     THEN
8287
       viewid := 7;                     -- This is default base view
8288
     END IF;
8289
 
8290
     -- Add package to new area
8291
     pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
8292
     -- Now do post Release Actions
8293
     pk_release.run_post_actions (pvid, rtagid);
5172 dpurdie 8294
 
1373 dpurdie 8295
     -- Log
5172 dpurdie 8296
     -- log_action (pvid, 'action', userid, 'End of Make Package UnRelease...');
1373 dpurdie 8297
   END;
8298
 
8299
/*-------------------------------------------------------------------------------------------------------*/
8300
   PROCEDURE make_pending (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
8301
   IS
8302
     viewid     NUMBER;
8303
     ispatch    CHAR (1) := NULL;
8304
     buildtype  CHAR (1) := NULL;
8305
   BEGIN
8306
     -- Check if package is patch
8307
     SELECT pv.is_patch, pv.build_type
8308
      INTO ispatch, buildtype
8309
      FROM package_versions pv
8310
      WHERE pv.pv_id = pvid;
8311
 
8312
     -- Get ViewId
8313
     viewid := get_package_view (pvid, rtagid);
8314
     --ViewId := PK_WORK_IN_PROGRESS.GET_PACKAGE_VIEW ( PvId, RtagId );
8315
 
8316
     -- Log
5172 dpurdie 8317
     --log_action (pvid, 'action', userid, 'Start of Make Package Pending...');
1373 dpurdie 8318
 
8319
     IF (ispatch IS NULL)
8320
     THEN
8321
       -- Remove from current area
8322
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
8323
       -- Change package state
8324
       pk_package.change_state (pvid, 'P', userid);
8325
       -- Add package to new area
8326
       pk_planned.add_package (pvid, viewid, rtagid, userid);
8327
     END IF;
8328
 
8329
     -- Log
5172 dpurdie 8330
     --log_action (pvid, 'action', userid, 'End of Make Package Pending...');
1373 dpurdie 8331
   END;
8332
 
8333
/*-------------------------------------------------------------------------------------------------------*/
8334
   PROCEDURE make_approved (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
8335
   IS
8336
   BEGIN
8337
     -- Log
5172 dpurdie 8338
     -- log_action (pvid, 'action', userid, 'Start of Package Pending Approval...' );
1373 dpurdie 8339
     -- Change package state
8340
     pk_package.change_state (pvid, 'A', userid);
5172 dpurdie 8341
 
8342
     -- Flag Release has changed for the purposes of building
8343
     PK_RELEASE.SET_RELEASE_MODIFIED(rtagid);
8344
 
1373 dpurdie 8345
     -- Log
5172 dpurdie 8346
     -- log_action (pvid, 'action', userid, 'End of Package Pending Approval...');
1373 dpurdie 8347
   END;
8348
 
8349
/*-------------------------------------------------------------------------------------------------------*/
8350
   PROCEDURE make_reject (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
8351
   IS
8352
     viewid   NUMBER;
8353
     operation CHAR;
8354
   BEGIN
8355
     -- Get ViewId
8356
     viewid := get_package_view (pvid, rtagid);
8357
     -- ViewId := PK_PLANNED.GET_PACKAGE_VIEW ( PvId, RtagId );
8358
 
8359
     -- DEVI-45275
8360
     -- If the package version is an official version that is to be rejected from a merge operation
8361
     -- then find out in order to prevent it being added back to work-in-progress table . This will
8362
     -- be denoted by the operation field in the planned table being A or S
8363
     operation := ' ';
8364
     SELECT
8365
     (CASE WHEN pl.operation IS NOT NULL THEN pl.operation ELSE ' ' END) INTO operation
8366
     FROM planned pl
8367
     WHERE pl.PV_ID = pvid
8368
     AND pl.RTAG_ID = rtagid;
8369
 
8370
     -- Log
5172 dpurdie 8371
     -- log_action (pvid, 'action', userid, 'Start of Reject Package...');
8372
 
1373 dpurdie 8373
     -- Remove from current area
8374
     pk_planned.remove_package (pvid, rtagid, userid);
8375
 
8376
     -- DEVI-45275 - Prevent merge candidate from being added back to work-in-progress table .
8377
     IF operation <> 'A' AND operation <> 'S'
8378
     THEN
8379
     -- Change package state
8380
     pk_package.change_state (pvid, 'R', userid);
8381
     -- Add package to new area
8382
     pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
8383
     ELSE
8384
      log_action (pvid, 'action', userid, 'Rejected Package Merge');
8385
     END IF;
5172 dpurdie 8386
 
1373 dpurdie 8387
     -- Log
5172 dpurdie 8388
     -- log_action (pvid, 'action', userid, 'End of Reject Package...');
1373 dpurdie 8389
   END;
8390
 
8391
/*-------------------------------------------------------------------------------------------------------*/
8392
   PROCEDURE change_package_view (
8393
     pvid       IN   NUMBER,
8394
     rtagid     IN   NUMBER,
8395
     newviewid  IN   NUMBER
8396
   )
8397
   IS
8398
     envtab   NUMBER;
8399
   BEGIN
8400
     envtab := pk_environment.get_package_area (pvid, rtagid);
8401
 
8402
     IF envtab = 0
8403
     THEN
8404
       -- WORK IN PROGRESS --
8405
       pk_work_in_progress.change_package_view (pvid, rtagid, newviewid);
8406
     ELSIF envtab = 1
8407
     THEN
8408
       -- PENDING --
8409
       pk_planned.change_package_view (pvid, rtagid, newviewid);
8410
     ELSIF envtab = 2
8411
     THEN
8412
       -- RELEASED --
8413
       pk_release.change_package_view (pvid, rtagid, newviewid);
8414
     END IF;
8415
   END;
8416
 
8417
/*-------------------------------------------------------------------------------------------------------*/
8418
   PROCEDURE find_package (
8419
     skeyword     IN      VARCHAR2,
8420
     nrtagid      IN      NUMBER,
8421
     nsearcharea  IN      NUMBER,
8422
     recordset    OUT     typecur
8423
   )
8424
   IS
8425
   BEGIN
8426
     IF nsearcharea = 0
8427
     THEN
8428
       /* Search Work In Progress */
8429
       OPEN recordset FOR
8430
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
8431
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
8432
                pv.modified_stamp, usr.full_name, usr.user_email
8433
           FROM views vi,
8434
                work_in_progress rc,
8435
                PACKAGES pkg,
8436
                package_versions pv,
8437
                users usr
8438
          WHERE rc.view_id = vi.view_id
8439
            AND rc.pv_id = pv.pv_id
8440
            AND pkg.pkg_id = pv.pkg_id
8441
            AND pv.modifier_id = usr.user_id
8442
            AND rc.rtag_id = nrtagid
8443
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
8444
       ORDER BY UPPER (pkg.pkg_name);
8445
     ELSIF nsearcharea = 1
8446
     THEN
8447
       /* Search Pending */
8448
       OPEN recordset FOR
8449
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
8450
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
8451
                pv.modified_stamp, usr.full_name, usr.user_email
8452
           FROM views vi,
8453
                planned rc,
8454
                PACKAGES pkg,
8455
                package_versions pv,
8456
                users usr
8457
          WHERE rc.view_id = vi.view_id
8458
            AND rc.pv_id = pv.pv_id
8459
            AND pkg.pkg_id = pv.pkg_id
8460
            AND pv.modifier_id = usr.user_id
8461
            AND rc.rtag_id = nrtagid
8462
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
8463
       ORDER BY UPPER (pkg.pkg_name);
8464
     ELSIF nsearcharea = 2
8465
     THEN
8466
       /* Search Released */
8467
       OPEN recordset FOR
8468
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
8469
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
8470
                pv.modified_stamp, usr.full_name, usr.user_email
8471
           FROM views vi,
8472
                release_content rc,
8473
                PACKAGES pkg,
8474
                package_versions pv,
8475
                users usr
8476
          WHERE rc.base_view_id = vi.view_id
8477
            AND rc.pv_id = pv.pv_id
8478
            AND pkg.pkg_id = pv.pkg_id
8479
            AND pv.modifier_id = usr.user_id
8480
            AND rc.rtag_id = nrtagid
8481
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
8482
         ORDER BY UPPER (pkg.pkg_name);
8483
     ELSIF nsearcharea = 3
8484
     THEN
8485
       /* Search ALL */
8486
       OPEN recordset FOR
8487
         SELECT rc.env_area, vi.view_name, pv.dlocked, pkg.pkg_name,
8488
                pv.pv_id, pv.pkg_version, pv.comments,
8489
                pv.modified_stamp, usr.full_name, usr.user_email
8490
           FROM views vi,
8491
                environment_view rc,
8492
                PACKAGES pkg,
8493
                package_versions pv,
8494
                users usr
8495
          WHERE rc.view_id = vi.view_id
8496
            AND rc.pv_id = pv.pv_id
8497
            AND pkg.pkg_id = pv.pkg_id
8498
            AND pv.modifier_id = usr.user_id
8499
            AND rc.rtag_id = nrtagid
8500
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
8501
         ORDER BY UPPER (pkg.pkg_name);
8502
     END IF;
8503
   END;
8504
 
8505
/*-------------------------------------------------------------------------------------------------------*/
8506
   PROCEDURE find_file (
8507
     skeyword     IN      VARCHAR2,
8508
     nrtagid      IN      NUMBER,
8509
     nsearcharea  IN      NUMBER,
8510
     npagesize    IN      NUMBER,
8511
     recordset    OUT     typecur
8512
   )
8513
   IS
8514
   BEGIN
8515
     IF nsearcharea = 0
8516
     THEN
8517
       /* Search Work In Progress */
8518
       OPEN recordset FOR
8519
         SELECT   qry.*
8520
            FROM (
8521
                 /* File search on Packages */
8522
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8523
                        pv.pv_id, pv.pkg_version, art.crc_cksum
8524
                   FROM work_in_progress rc,
8525
                        PACKAGES pkg,
8526
                        package_versions pv,
8527
                        release_components art
8528
                  WHERE rc.pv_id = art.pv_id
8529
                    AND pv.pkg_id = pkg.pkg_id
8530
                    AND rc.pv_id = pv.pv_id
8531
                    AND rc.rtag_id = nrtagid
8532
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
8533
                 UNION ALL
8534
                 /* File search on Products */
8535
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8536
                        pv.pv_id, pv.pkg_version, art.crc_cksum
8537
                   FROM work_in_progress rc,
8538
                        PACKAGES pkg,
8539
                        package_versions pv,
8540
                        product_components art
8541
                  WHERE rc.pv_id = art.pv_id
8542
                    AND pv.pkg_id = pkg.pkg_id
8543
                    AND rc.pv_id = pv.pv_id
8544
                    AND rc.rtag_id = nrtagid
8545
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
8546
            WHERE ROWNUM <= npagesize
8547
         ORDER BY UPPER (qry.pkg_name);
8548
     ELSIF nsearcharea = 1
8549
     THEN
8550
       /* Search Pending */
8551
       OPEN recordset FOR
8552
         SELECT   qry.*
8553
            FROM (
8554
                 /* File search on Packages */
8555
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8556
                        pv.pv_id, pv.pkg_version, art.crc_cksum
8557
                   FROM planned rc,
8558
                        PACKAGES pkg,
8559
                        package_versions pv,
8560
                        release_components art
8561
                  WHERE rc.pv_id = art.pv_id
8562
                    AND pv.pkg_id = pkg.pkg_id
8563
                    AND rc.pv_id = pv.pv_id
8564
                    AND rc.rtag_id = nrtagid
8565
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
8566
                 UNION ALL
8567
                 /* File search on Products */
8568
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8569
                        pv.pv_id, pv.pkg_version, art.crc_cksum
8570
                   FROM planned rc,
8571
                        PACKAGES pkg,
8572
                        package_versions pv,
8573
                        product_components art
8574
                  WHERE rc.pv_id = art.pv_id
8575
                    AND pv.pkg_id = pkg.pkg_id
8576
                    AND rc.pv_id = pv.pv_id
8577
                    AND rc.rtag_id = nrtagid
8578
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
8579
            WHERE ROWNUM <= npagesize
8580
         ORDER BY UPPER (qry.pkg_name);
8581
     ELSIF nsearcharea = 2
8582
     THEN
8583
       /* Search Released */
8584
       OPEN recordset FOR
8585
         SELECT   qry.*
8586
            FROM (
8587
                 /* File search on Packages */
8588
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8589
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
8590
                        NULL AS patch_id
8591
                   FROM release_content rc,
8592
                        PACKAGES pkg,
8593
                        package_versions pv,
8594
                        release_components art
8595
                  WHERE rc.pv_id = art.pv_id
8596
                    AND pv.pkg_id = pkg.pkg_id
8597
                    AND rc.pv_id = pv.pv_id
8598
                    AND rc.rtag_id = nrtagid
8599
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
8600
                 UNION ALL
8601
                 /* File search on Products */
8602
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8603
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
8604
                        NULL AS patch_id
8605
                   FROM release_content rc,
8606
                        PACKAGES pkg,
8607
                        package_versions pv,
8608
                        product_components art
8609
                  WHERE rc.pv_id = art.pv_id
8610
                    AND pv.pkg_id = pkg.pkg_id
8611
                    AND rc.pv_id = pv.pv_id
8612
                    AND rc.rtag_id = nrtagid
8613
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
8614
                 UNION ALL
8615
                 /* File search on Patches */
8616
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8617
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
8618
                        DECODE (art.file_path,
8619
                                NULL, pp.patch_id,
8620
                                NULL
8621
                                ) AS patch_id
8622
                   FROM release_content rc,
8623
                        PACKAGES pkg,
8624
                        package_versions pv,
8625
                        release_components art,
8626
                        package_patches pp
8627
                  WHERE pv.pv_id = pp.pv_id
8628
                    AND pv.pkg_id = pkg.pkg_id
8629
                    AND rc.rtag_id = nrtagid
8630
                    AND art.pv_id = pp.patch_id
8631
                    AND rc.pv_id = pp.pv_id
8632
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
8633
            WHERE ROWNUM <= npagesize
8634
         ORDER BY UPPER (qry.pkg_name);
8635
     ELSIF nsearcharea = 3
8636
     THEN
8637
       /* Search ALL */
8638
       OPEN recordset FOR
8639
         SELECT   qry.*
8640
            FROM (
8641
                 /* File search on Packages */
8642
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8643
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
8644
                        NULL AS patch_id
8645
                   FROM environment_view rc,
8646
                        PACKAGES pkg,
8647
                        package_versions pv,
8648
                        release_components art
8649
                  WHERE rc.pv_id = art.pv_id
8650
                    AND pv.pkg_id = pkg.pkg_id
8651
                    AND rc.pv_id = pv.pv_id
8652
                    AND rc.rtag_id = nrtagid
8653
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
8654
                 UNION ALL
8655
                 /* File search on Products */
8656
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8657
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
8658
                        NULL AS patch_id
8659
                   FROM environment_view rc,
8660
                        PACKAGES pkg,
8661
                        package_versions pv,
8662
                        product_components art
8663
                  WHERE rc.pv_id = art.pv_id
8664
                    AND pv.pkg_id = pkg.pkg_id
8665
                    AND rc.pv_id = pv.pv_id
8666
                    AND rc.rtag_id = nrtagid
8667
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
8668
                 UNION ALL
8669
                 /* File search on Patches */
8670
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
8671
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
8672
                        DECODE (art.file_path,
8673
                                NULL, pp.patch_id,
8674
                                NULL
8675
                               ) AS patch_id
8676
                   FROM release_content rc,
8677
                        PACKAGES pkg,
8678
                        package_versions pv,
8679
                        release_components art,
8680
                        package_patches pp
8681
                  WHERE pv.pv_id = pp.pv_id
8682
                    AND pv.pkg_id = pkg.pkg_id
8683
                    AND rc.rtag_id = nrtagid
8684
                    AND art.pv_id = pp.patch_id
8685
                    AND rc.pv_id = pp.pv_id
8686
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
8687
            WHERE ROWNUM <= npagesize
8688
         ORDER BY UPPER (qry.pkg_name);
8689
     END IF;
8690
   END;
8691
 
8692
/*-------------------------------------------------------------------------------------------------------*/
8693
   PROCEDURE get_prodrelease_items (
8694
     rtagid           IN      NUMBER,
8695
     ntruerecordcount OUT     NUMBER,
8696
     recordset        OUT     typecur
8697
   )
8698
   IS
8699
   BEGIN
8700
     -- Get true record count n the number of integration products
8701
     SELECT COUNT (rc.pv_id)
8702
      INTO ntruerecordcount
8703
      FROM release_content rc
8704
      WHERE rc.rtag_id = rtagid;
8705
 
8706
     OPEN recordset FOR
8707
       SELECT vi.view_id, vi.view_name, rel.pkg_state,   --rel.pkg_state,
8708
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8709
              pv.pkg_version, pv.dlocked, pv.pv_description
8710
         FROM release_content rel,
8711
              PACKAGES pkg,
8712
              package_versions pv,
8713
              views vi
8714
        WHERE pv.pkg_id = pkg.pkg_id
8715
          AND rel.pv_id = pv.pv_id
8716
          AND rel.base_view_id = vi.view_id
8717
          AND pv.is_deployable = 'Y'
8718
          AND rtag_id = rtagid
8719
          AND pv.pv_id NOT IN (SELECT DISTINCT prod_id
8720
                                 FROM deployment_manager.os_contents)
8721
          AND rel.product_state IS NULL
8722
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
8723
   END;
8724
 
8725
/*-------------------------------------------------------------------------------------------------------*/
8726
   PROCEDURE get_integration_items (
8727
     rtagid           IN      NUMBER,
8728
     ntruerecordcount OUT     NUMBER,
8729
     recordset        OUT     typecur
8730
   )
8731
   IS
8732
   BEGIN
8733
     -- Get true record count n the number of integration products
8734
     SELECT COUNT (rc.pv_id)
8735
      INTO ntruerecordcount
8736
      FROM release_content rc
8737
      WHERE rc.rtag_id = rtagid AND rc.product_state = 1;
8738
 
8739
     OPEN recordset FOR
8740
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
8741
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8742
              pv.pkg_version, pv.dlocked, pv.pv_description
8743
         FROM release_content rel,
8744
              PACKAGES pkg,
8745
              package_versions pv,
8746
              views vi
8747
        WHERE pv.pkg_id = pkg.pkg_id
8748
          AND rel.pv_id = pv.pv_id
8749
          AND rel.base_view_id = vi.view_id
8750
          AND pv.is_deployable = 'Y'
8751
          AND rtag_id = rtagid
8752
          AND rel.product_state IN (1, 5)
8753
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
8754
   END;
8755
 
8756
/*-------------------------------------------------------------------------------------------------------*/
8757
   PROCEDURE get_test_items (
8758
     rtagid           IN      NUMBER,
8759
     ntruerecordcount OUT     NUMBER,
8760
     recordset        OUT     typecur
8761
   )
8762
   IS
8763
   BEGIN
8764
     -- Get true record count n the number of test products
8765
     SELECT COUNT (rc.pv_id)
8766
      INTO ntruerecordcount
8767
      FROM release_content rc
8768
      WHERE rc.rtag_id = rtagid AND rc.product_state = 2;
8769
 
8770
     OPEN recordset FOR
8771
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
8772
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8773
              pv.pkg_version, pv.dlocked, pv.pv_description
8774
         FROM release_content rel,
8775
              PACKAGES pkg,
8776
              package_versions pv,
8777
              views vi
8778
        WHERE pv.pkg_id = pkg.pkg_id
8779
          AND rel.pv_id = pv.pv_id
8780
          AND rel.base_view_id = vi.view_id
8781
          AND pv.is_deployable = 'Y'
8782
          AND rtag_id = rtagid
8783
          AND rel.product_state = 2
8784
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
8785
   END;
8786
 
8787
/*-------------------------------------------------------------------------------------------------------*/
8788
   PROCEDURE get_deploy_items (
8789
     rtagid           IN      NUMBER,
8790
     ntruerecordcount OUT     NUMBER,
8791
     recordset        OUT     typecur
8792
   )
8793
   IS
8794
   BEGIN
8795
     -- Get true record count n the number of deploy products
8796
     SELECT COUNT (rc.pv_id)
8797
      INTO ntruerecordcount
8798
      FROM release_content rc
8799
      WHERE rc.rtag_id = rtagid AND rc.product_state = 3;
8800
 
8801
     OPEN recordset FOR
8802
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
8803
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8804
              pv.pkg_version, pv.dlocked, pv.pv_description
8805
         FROM release_content rel,
8806
              PACKAGES pkg,
8807
              package_versions pv,
8808
              views vi
8809
        WHERE pv.pkg_id = pkg.pkg_id
8810
          AND rel.pv_id = pv.pv_id
8811
          AND rel.base_view_id = vi.view_id
8812
          AND pv.is_deployable = 'Y'
8813
          AND rtag_id = rtagid
8814
          AND rel.product_state IN (3, 5)
8815
          AND pv.pv_id NOT IN (SELECT DISTINCT prod_id
8816
                                 FROM deployment_manager.os_contents)
8817
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
8818
   END;
8819
 
8820
/*-------------------------------------------------------------------------------------------------------*/
8821
   PROCEDURE get_reject_items (
8822
     rtagid           IN      NUMBER,
8823
     ntruerecordcount OUT     NUMBER,
8824
     recordset        OUT     typecur
8825
   )
8826
   IS
8827
   BEGIN
8828
     -- Get true record count n the number of reject products
8829
     SELECT COUNT (rc.pv_id)
8830
       INTO ntruerecordcount
8831
       FROM release_content rc
8832
      WHERE rc.rtag_id = rtagid AND rc.product_state = 4;
8833
 
8834
     OPEN recordset FOR
8835
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
8836
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8837
              pv.pkg_version, pv.dlocked, pv.pv_description
8838
         FROM release_content rel,
8839
              PACKAGES pkg,
8840
              package_versions pv,
8841
              views vi
8842
        WHERE pv.pkg_id = pkg.pkg_id
8843
          AND rel.pv_id = pv.pv_id
8844
          AND rel.base_view_id = vi.view_id
8845
          AND pv.is_deployable = 'Y'
8846
          AND rtag_id = rtagid
8847
          AND rel.product_state = 4
8848
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
8849
   END;
8850
/*-------------------------------------------------------------------------------------------------------*/
8851
   -- DEVI-45275 - this procedure performs the merge of an existing package version in the planned table
8852
   -- to the release_content table.
8853
 
8854
  PROCEDURE approve_merge (
8855
   PvId    IN NUMBER,
8856
   RtagId  IN NUMBER,
8857
   UserId  IN NUMBER
8858
  )
8859
  IS
8860
   viewid        NUMBER;
8861
   envtab        NUMBER;
8862
   oper         CHAR;
8863
  BEGIN
8864
      -- Get ViewId
8865
     viewid := get_package_view (pvid, rtagid);
8866
 
8867
     -- Get the view tab
8868
     envtab := pk_environment.get_package_area (pvid, rtagid);
8869
 
8870
     -- Make sure that package was in pending before merging it to released
8871
     IF (envtab <> 1)
8872
     THEN
8873
       -- Not found in pending
8874
       raise_application_error (-20000,
8875
                          'This package cannot be released here.'
8876
                         );
8877
     END IF;
8878
 
8879
     -- Log
5172 dpurdie 8880
     --log_action (pvid, 'action', userid, 'Start of Package Merge...');
1373 dpurdie 8881
 
8882
     -- Get the planned operation type A=Add, S=Subtract
8883
     SELECT ev.operation INTO oper
8884
       FROM environment_view ev
8885
      WHERE ev.rtag_id = RtagId
8886
        AND ev.pv_id = PvId
8887
        AND (ev.operation = 'A' OR ev.operation = 'S');
8888
 
8889
     -- Remove from Pending
8890
     pk_planned.remove_package (PvId, RtagId, UserId);
8891
 
8892
     -- Either add to the release, or remove from the release as the operation commands
8893
     IF oper = 'A'
8894
     THEN
8895
       pk_release.add_package(PvId, viewId, RtagId, UserId);
8896
 
8897
     ELSIF oper = 'S'
8898
     THEN
8899
       pk_release.remove_package(PvId, RtagId, UserId);
8900
 
8901
       -- Delete old package's pegging info
8902
       DELETE FROM PEGGED_VERSIONS pegv WHERE pegv.RTAG_ID = RtagId AND pegv.PV_ID = PvId;
8903
 
8904
       -- Delete old package's advisory ripple info
8905
       DELETE FROM ADVISORY_RIPPLE avr WHERE avr.RTAG_ID = RtagId AND avr.PV_ID = PvId;
8906
     END IF;
8907
 
8908
     touch_release(RtagId);
8909
 
8910
     -- Log
5172 dpurdie 8911
     --log_action (pvid, 'action', userid, 'End of Package Merge...');
1373 dpurdie 8912
  END;
8913
/*-------------------------------------------------------------------------------------------------------*/
8914
END pk_environment;
4040 dpurdie 8915
 
1374 dpurdie 8916
/
4040 dpurdie 8917
--------------------------------------------------------
8918
--  DDL for Package Body PK_LICENCING
8919
--------------------------------------------------------
8920
 
5172 dpurdie 8921
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_LICENCING" IS
1373 dpurdie 8922
 
8923
/*
8924
------------------------------
3959 dpurdie 8925
||  Last Modified:  G.Huddy
8926
||  Modified Date:  19/Aug/2008
1373 dpurdie 8927
||  Body Version:   1.0
8928
------------------------------
8929
*/
8930
 
3959 dpurdie 8931
   PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) IS
8932
   BEGIN
8933
      IF IS_LICENCED(PvId, licenceId) = 0 THEN
8934
         -- Add entry to licencing table
8935
         INSERT INTO licencing (pv_id, licence)
8936
         VALUES (PvId, licenceId);
1373 dpurdie 8937
 
3959 dpurdie 8938
         -- log action
8939
         -- TODO
8940
      END IF;
1373 dpurdie 8941
 
3959 dpurdie 8942
   END;
1373 dpurdie 8943
 
8944
/*-------------------------------------------------------------------------------------------------------*/
8945
 
3959 dpurdie 8946
   PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) IS
8947
   BEGIN
8948
      IF NOT IS_LICENCED(PvId, licenceId) = 0 THEN
8949
         -- Delete entry from licencing table
8950
         DELETE FROM licencing
8951
         WHERE pv_id = PvId
8952
         AND licence = licenceId;
1373 dpurdie 8953
 
3959 dpurdie 8954
         -- log action
8955
         -- TODO
8956
      END IF;
8957
   END;
1373 dpurdie 8958
 
8959
/*-------------------------------------------------------------------------------------------------------*/
8960
 
3959 dpurdie 8961
   PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 8962
 
3959 dpurdie 8963
      CURSOR licencing_cur
8964
      IS
8965
         SELECT *
8966
         FROM licencing
8967
         WHERE pv_id = fromPvId;
1373 dpurdie 8968
 
3959 dpurdie 8969
      licencing_rec licencing_cur%ROWTYPE;
1373 dpurdie 8970
 
8971
   BEGIN
3959 dpurdie 8972
      -- For each licence association that the Last PV_ID had, create a similar
8973
      -- arrangement for the new PV_ID
8974
      -- NOTE that any additional licencing associations the new PV_ID has that the old one
8975
      -- does not have, are retained. The assumption is that the user has made those and so we do not
8976
      -- have any right to destroy them without asking them.
8977
      OPEN licencing_cur;
1373 dpurdie 8978
 
3959 dpurdie 8979
      FETCH licencing_cur
8980
      INTO licencing_rec;
1373 dpurdie 8981
 
3959 dpurdie 8982
      WHILE licencing_cur%FOUND
1373 dpurdie 8983
      LOOP
3959 dpurdie 8984
         ADD_LICENCE ( toPvId, licencing_rec.licence, UserId );
1373 dpurdie 8985
 
3959 dpurdie 8986
         FETCH licencing_cur
8987
         INTO licencing_rec;
1373 dpurdie 8988
      END LOOP;
8989
   END;
8990
 
8991
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 8992
 
8993
   FUNCTION IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER IS
8994
      found NUMBER;
1373 dpurdie 8995
   BEGIN
8996
 
3959 dpurdie 8997
      SELECT COUNT(*) INTO found
8998
      FROM licencing
8999
      WHERE pv_id = PvId
9000
      AND licence = LicenceId;
1373 dpurdie 9001
 
3959 dpurdie 9002
      RETURN found;
1373 dpurdie 9003
   END;
9004
 
9005
/*-------------------------------------------------------------------------------------------------------*/
9006
 
3959 dpurdie 9007
   PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 9008
 
3959 dpurdie 9009
      CURSOR licencing_cur
9010
      IS
1373 dpurdie 9011
         SELECT *
3959 dpurdie 9012
         FROM licencing
9013
         WHERE pv_id = PvId;
1373 dpurdie 9014
 
3959 dpurdie 9015
      licencing_rec licencing_cur%ROWTYPE;
9016
   BEGIN
9017
      -- For each licence association that the PV_ID had, remove it
9018
      OPEN licencing_cur;
1373 dpurdie 9019
 
3959 dpurdie 9020
      FETCH licencing_cur
9021
      INTO licencing_rec;
1373 dpurdie 9022
 
3959 dpurdie 9023
      WHILE licencing_cur%FOUND
9024
      LOOP
9025
         REMOVE_LICENCE ( PvId, licencing_rec.licence, UserId );
1373 dpurdie 9026
 
3959 dpurdie 9027
         FETCH licencing_cur
9028
         INTO licencing_rec;
9029
      END LOOP;
1373 dpurdie 9030
   END;
9031
 
9032
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 9033
END PK_LICENCING;
4040 dpurdie 9034
 
1374 dpurdie 9035
/
4040 dpurdie 9036
--------------------------------------------------------
9037
--  DDL for Package Body PK_PACKAGE
9038
--------------------------------------------------------
9039
 
5172 dpurdie 9040
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PACKAGE" 
1373 dpurdie 9041
IS
9042
   /*-------------------------------------------------------------------------------------------------------*/
9043
   PROCEDURE new_version (
9044
      nlastpvid                   IN       NUMBER,
9045
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
9046
      cbuildtype                  IN       CHAR,
4211 dpurdie 9047
      cchangetype                 IN       CHAR,
1373 dpurdie 9048
      nsettopvid                  IN       NUMBER DEFAULT NULL,
9049
      nrtagid                     IN       NUMBER,
9050
      nuserid                     IN       NUMBER,
9051
      enumissues_state_imported   IN       NUMBER,
9052
      returnpvid                  OUT      NUMBER
9053
   )
9054
   IS
3959 dpurdie 9055
      origpkg_id                  package_versions.pkg_id%TYPE;
9056
      origdlocked                 package_versions.dlocked%TYPE;
9057
      ssv_mm                      package_versions.v_mm%TYPE;
9058
      ssv_nmm                     package_versions.v_nmm%TYPE;
9059
      ssv_ext                     package_versions.v_ext%TYPE;
9060
      spackageversion             VARCHAR2 (4000);
9061
      nissuestypes                NUMBER;
9062
      nviewid                     NUMBER;
9063
      reccount                    NUMBER;
9064
      isreleased                  package_versions.dlocked%TYPE := 'N';
9065
      slabel                      VARCHAR2 (4000)               := NULL;
4211 dpurdie 9066
      uchangetype                 CHAR := cchangetype;
1373 dpurdie 9067
 
9068
      CURSOR package_versions_cur
9069
      IS
9070
         SELECT pv.pv_id, pv.is_patch, pv.dlocked
9071
           FROM package_versions pv
9072
          WHERE pv.pkg_version = snewpkgversion
9073
            AND pv.pkg_id IN (SELECT DISTINCT origpv.pkg_id
9074
                                         FROM package_versions origpv
9075
                                        WHERE origpv.pv_id = nlastpvid);
9076
 
3959 dpurdie 9077
      package_versions_rec package_versions_cur%ROWTYPE;
1373 dpurdie 9078
 
9079
      CURSOR clone_package_versions_cur
9080
      IS
9081
         SELECT DISTINCT pkg_id, dlocked
9082
                    FROM package_versions
9083
                   WHERE pv_id = nlastpvid;
9084
 
3959 dpurdie 9085
      clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
1373 dpurdie 9086
   BEGIN
9087
      spackageversion := snewpkgversion;
9088
 
9089
      IF nsettopvid IS NULL
9090
      THEN
9091
         -- SetToPv_id is not supplied, hence proceed.
9092
 
9093
         /* ---------------------------------------------------- */
3959 dpurdie 9094
         /* Find id package_version exists                       */
9095
         /* ---------------------------------------------------- */
1373 dpurdie 9096
         OPEN package_versions_cur;
9097
 
9098
         FETCH package_versions_cur
9099
          INTO package_versions_rec;
9100
 
9101
         IF package_versions_cur%NOTFOUND
9102
         THEN
9103
            ---  Create brand new package ---
9104
            SELECT seq_pv_id.NEXTVAL
9105
              INTO returnpvid
9106
              FROM DUAL;
9107
 
9108
            -- Split Version to get extention + other
9109
            split_version (spackageversion, ssv_mm, ssv_nmm, ssv_ext);
9110
 
9111
            -- Get previous package to clone from
9112
            OPEN clone_package_versions_cur;
9113
 
9114
            FETCH clone_package_versions_cur
9115
             INTO clone_package_versions_rec;
9116
 
9117
            origpkg_id := clone_package_versions_rec.pkg_id;
9118
            origdlocked := clone_package_versions_rec.dlocked;
9119
 
9120
            CLOSE clone_package_versions_cur;
9121
 
9122
            -- Automated built config
4211 dpurdie 9123
            IF ( cbuildtype = 'M' ) THEN
9124
              uchangetype := 'F';
9125
            END IF;  
9126
 
9127
            -- Automated version numbering
9128
            -- Make sure that version is still unique
9129
            IF (uchangetype != 'F') THEN
9130
              spackageversion := '(' || returnpvid || ')' || ssv_ext;
1373 dpurdie 9131
            END IF;
4211 dpurdie 9132
 
1373 dpurdie 9133
 
9134
            -- Clone Package Version Details --
3959 dpurdie 9135
            INSERT INTO package_versions(pv_id, pkg_id, pkg_version, dlocked, created_stamp,
9136
                                         creator_id, modified_stamp, modifier_id, v_mm, v_nmm,
9137
                                         v_ext, src_path, pv_description, pv_overview,
9138
                                         last_pv_id, owner_id, is_deployable,
4211 dpurdie 9139
                                         is_build_env_required, build_type, change_type, 
9140
                                         bs_id, is_autobuildable, ripple_field)
3959 dpurdie 9141
                 SELECT returnpvid AS pv_id, origpkg_id AS pkg_id,
9142
                        spackageversion AS pkg_version, 'N' AS dlocked,
9143
                        ora_sysdate AS created_stamp, nuserid AS creator_id,
9144
                        ora_sysdatetime AS modified_stamp,
9145
                        nuserid AS modifier_id, ssv_mm AS v_mm,
9146
                        ssv_nmm AS v_nmm, ssv_ext AS v_ext, pv.src_path,
9147
                        pv.pv_description, pv.pv_overview,
9148
                        nlastpvid AS last_pv_id, pv.owner_id, pv.is_deployable,
4211 dpurdie 9149
                        pv.is_build_env_required, cbuildtype, uchangetype, 
9150
                        pv.bs_id, pv.is_autobuildable, pv.ripple_field
3959 dpurdie 9151
                   FROM package_versions pv
9152
                  WHERE pv.pv_id = nlastpvid;
1373 dpurdie 9153
 
9154
            -- Set Issues Type for cloning ---
9155
            IF origdlocked = 'Y'
9156
            THEN
9157
               nissuestypes := enumissues_state_imported;
9158
            ELSE
9159
               nissuestypes := NULL;
9160
            END IF;
9161
 
9162
            basic_clone (nlastpvid,
9163
                         returnpvid,
9164
                         nrtagid,
9165
                         nuserid,
9166
                         origpkg_id,
9167
                         nissuestypes
9168
                        );
4211 dpurdie 9169
 
9170
            -- Update Label for versioning purposes
9171
            slabel := get_automated_label (returnpvid);
9172
            UPDATE package_versions pv
9173
            SET pv.pkg_label = slabel
9174
            WHERE pv.pv_id = returnpvid;
9175
 
1373 dpurdie 9176
         ELSE
9177
            --- Package already exists, hence reuse ---
9178
            returnpvid := package_versions_rec.pv_id;
9179
            isreleased := package_versions_rec.dlocked;
9180
         END IF;
9181
 
9182
         CLOSE package_versions_cur;
9183
      ELSE
9184
         returnpvid := nsettopvid;
9185
      END IF;
9186
   END new_version;
9187
 
9188
/*-------------------------------------------------------------------------------------------------------*/
9189
   PROCEDURE change_state (
9190
      pvid       IN   NUMBER,
9191
      newstate   IN   package_versions.dlocked%TYPE,
9192
      userid     IN   NUMBER
9193
   )
9194
   IS
9195
   BEGIN
9196
      -- Set package in Released mode
9197
      UPDATE package_versions pv
9198
         SET pv.dlocked = newstate,
9199
             pv.modified_stamp = ora_sysdatetime,
9200
             pv.modifier_id = userid
9201
       WHERE pv.pv_id = pvid;
9202
 
9203
      -- Log action --
9204
      IF newstate = 'Y'
9205
      THEN
9206
         -- RELEASED --
9207
         log_action (pvid,
9208
                     'makeofficial',
9209
                     userid,
9210
                     'Package state change to: Released'
9211
                    );
9212
      ELSIF newstate = 'N'
9213
      THEN
9214
         -- UNLOCKED --
9215
         log_action (pvid,
9216
                     'makeunofficial',
9217
                     userid,
9218
                     'Package state change to: Ulocked'
9219
                    );
9220
      ELSIF newstate = 'P'
9221
      THEN
9222
         -- PENDING APPROVAL --
9223
         log_action (pvid,
9224
                     'add_to_planned',
9225
                     userid,
9226
                     'Package state change to: Pending Approval'
9227
                    );
9228
      ELSIF newstate = 'R'
9229
      THEN
9230
         -- REJECTED --
9231
         log_action (pvid,
9232
                     'reject_package',
9233
                     userid,
9234
                     'Package state change to: Rejected'
9235
                    );
9236
      ELSIF newstate = 'A'
9237
      THEN
9238
         -- APPROVED --
9239
         log_action (pvid,
9240
                     'approve_package',
9241
                     userid,
9242
                     'Package state change to: Approved'
9243
                    );
9244
      END IF;
9245
   END;
9246
 
9247
/*-------------------------------------------------------------------------------------------------------*/
9248
   PROCEDURE destroy_package (
9249
      pvid               IN       NUMBER,
9250
      overridewarnings   IN       CHAR DEFAULT 'N',
9251
      problemstring      OUT      VARCHAR2
9252
   )
9253
   IS
9254
      LOCKED     CHAR;
9255
      pkgid      NUMBER;
9256
      ROWCOUNT   NUMBER;
9257
   BEGIN
9258
      /*
9259
      || This will destroy all package details from database.
9260
      || It will only be used to remove unwanted work in progress packages,
9261
      || or mestaken versions
9262
      */
9263
 
9264
      /*--------------- Business Rules Here -------------------*/
9265
      problemstring := NULL;
9266
 
9267
      IF overridewarnings = 'N'
9268
      THEN
9269
         -- Package must not be official
9270
         SELECT pv.dlocked
9271
           INTO LOCKED
9272
           FROM package_versions pv
9273
          WHERE pv.pv_id = pvid;
9274
 
9275
         IF LOCKED = 'Y'
9276
         THEN
9277
            problemstring :=
9278
                  problemstring
9279
               || '- Package is locked and released.'
9280
               || UTL_TCP.crlf;
9281
         END IF;
9282
 
9283
         -- Cannot remove if used in BOMs
9284
         SELECT COUNT (osc.prod_id)
9285
           INTO ROWCOUNT
9286
           FROM deployment_manager.os_contents osc
9287
          WHERE osc.prod_id = pvid;
9288
 
9289
         IF ROWCOUNT > 0
9290
         THEN
9291
            problemstring :=
9292
                  problemstring
9293
               || '- Package is part of Bill-Of-Material (BOM) in Deployment Manager.'
9294
               || UTL_TCP.crlf;
9295
         END IF;
9296
 
9297
         -- Cannot remove if Referenced as build dependency
9298
         SELECT COUNT (dep.pv_id)
9299
           INTO ROWCOUNT
9300
           FROM package_dependencies dep
9301
          WHERE dep.dpv_id = pvid;
9302
 
9303
         IF ROWCOUNT > 0
9304
         THEN
9305
            problemstring :=
9306
                  problemstring
9307
               || '- Package is referenced by other package as build dependency.'
9308
               || UTL_TCP.crlf;
9309
         END IF;
9310
 
9311
         -- Cannot remove if Referenced as runtime dependency
9312
         SELECT COUNT (rd.pv_id)
9313
           INTO ROWCOUNT
9314
           FROM runtime_dependencies rd
9315
          WHERE rd.rtd_id = pvid;
9316
 
9317
         IF ROWCOUNT > 0
9318
         THEN
9319
            problemstring :=
9320
                  problemstring
9321
               || '- Package is referenced by other package as runtime dependency.'
9322
               || UTL_TCP.crlf;
9323
         END IF;
9324
 
9325
         -- Cannot remove if Referenced as patch
9326
         SELECT COUNT (pp.pv_id)
9327
           INTO ROWCOUNT
9328
           FROM package_patches pp
9329
          WHERE pp.patch_id = pvid;
9330
 
9331
         IF ROWCOUNT > 0
9332
         THEN
9333
            problemstring :=
9334
                  problemstring
9335
               || '- Package is used as patch by other package.'
9336
               || UTL_TCP.crlf;
9337
         END IF;
9338
      END IF;
9339
 
9340
/*-------------------------------------------------------*/
9341
      IF (problemstring IS NULL)
9342
      THEN
9343
         --- Remove From Work in Progress
9344
         DELETE FROM work_in_progress wip
9345
               WHERE wip.pv_id = pvid;
9346
 
9347
         --- Remove From Pending
9348
         DELETE FROM planned pl
9349
               WHERE pl.pv_id = pvid;
9350
 
9351
         --- Remove From Released area
9352
         DELETE FROM release_content rc
9353
               WHERE rc.pv_id = pvid;
9354
 
9355
         ---Remove From Package Processes
9356
         DELETE FROM package_processes pp
9357
               WHERE pp.pv_id = pvid;
9358
 
9359
         --- Remove Dependencies
9360
         DELETE FROM package_dependencies dep
9361
               WHERE dep.pv_id = pvid;
9362
 
9363
         DELETE FROM package_dependencies dep
9364
               WHERE dep.dpv_id = pvid;
9365
 
9366
         --- Remove Runtime dependencies
9367
         DELETE FROM runtime_dependencies rtd
9368
               WHERE rtd.pv_id = pvid;
9369
 
9370
         DELETE FROM runtime_dependencies rtd
9371
               WHERE rtd.rtd_id = pvid;
9372
 
9373
         --- Remove components
9374
         DELETE FROM product_components pc
9375
               WHERE pc.pv_id = pvid;
9376
 
9377
         DELETE FROM release_components rc
9378
               WHERE rc.pv_id = pvid;
9379
 
9380
         --- Remove From Notification History
9381
         DELETE FROM notification_history nh
9382
               WHERE nh.pv_id = pvid;
9383
 
9384
         --- Remove From Ignore Warnings
9385
         DELETE FROM ignore_warnings iw
9386
               WHERE iw.pv_id = pvid;
9387
 
9388
         --- Remove From Additional Notes
9389
         DELETE FROM additional_notes an
9390
               WHERE an.pv_id = pvid;
9391
 
9392
         --- Remove From CQ Issues
9393
         DELETE FROM cq_issues cq
9394
               WHERE cq.pv_id = pvid;
9395
 
9396
         --- Remove from Package Patches
9397
         DELETE FROM package_patches pp
9398
               WHERE pp.pv_id = pvid;
9399
 
9400
         DELETE FROM package_patches pp
9401
               WHERE pp.patch_id = pvid;
9402
 
9403
         --- Remove From Package Documents
9404
         DELETE FROM package_documents pd
9405
               WHERE pd.pv_id = pvid;
9406
 
9407
         --- Remove from Code Review
9408
         DELETE FROM code_reviews cr
9409
               WHERE cr.pv_id = pvid;
9410
 
3959 dpurdie 9411
         --- Remove from Code Review URL
9412
         DELETE FROM code_review_url cru
9413
               WHERE cru.pv_id = pvid;
9414
 
1373 dpurdie 9415
         --- Remove from Unit Tests
9416
         DELETE FROM unit_tests ut
9417
               WHERE ut.pv_id = pvid;
9418
 
9419
         --- Remove from Package BuildEnv
9420
         DELETE FROM package_build_env pbe
9421
               WHERE pbe.pv_id = pvid;
9422
 
3959 dpurdie 9423
         --- Remove from Package Build Info
9424
         DELETE FROM package_build_info pbi
9425
               WHERE pbi.pv_id = pvid;
9426
 
1373 dpurdie 9427
         --- Remove from Build Order
9428
         DELETE FROM build_order bo
9429
               WHERE bo.pv_id = pvid;
9430
 
3959 dpurdie 9431
         --- Remove from Licencing
9432
         PK_LICENCING.REMOVE_ALL_LICENCING( pvid, 0 );
9433
 
1373 dpurdie 9434
         --- Remove from Note Manager
9435
         DELETE FROM note_manager nm
9436
               WHERE nm.nid = pvid;
9437
 
9438
         --- Remove from Action log
9439
         DELETE FROM action_log al
9440
               WHERE al.pv_id = pvid;
3959 dpurdie 9441
 
9442
         --- Remove from Do Not Ripple
9443
         DELETE FROM DO_NOT_RIPPLE dnr
9444
               WHERE dnr.PV_ID = pvid;
9445
 
9446
         --- Remove from Advisory Ripple
9447
         DELETE FROM ADVISORY_RIPPLE ar
9448
               WHERE ar.PV_ID = pvid;
9449
 
9450
         --- Remove from Jira Issues
9451
         DELETE FROM JIRA_ISSUES jira
9452
               WHERE jira.PV_ID = pvid;
9453
 
9454
         --- Remove from Package Metrics
9455
         DELETE FROM package_metrics pm
9456
              WHERE pm.pv_id = pvid;
9457
 
9458
         -- Delete from Pegged Versions
9459
         DELETE FROM pegged_versions pegv
9460
              WHERE pegv.pv_id = pvid;
9461
 
1373 dpurdie 9462
         --- Finally Remove From Package Versions
9463
         --- Get Package name
9464
         SELECT pv.pkg_id
9465
           INTO pkgid
9466
           FROM package_versions pv
9467
          WHERE pv.pv_id = pvid;
9468
 
9469
         DELETE FROM package_versions pv
9470
               WHERE pv.pv_id = pvid;
9471
 
9472
         --- Remove package name if not used any more
9473
         SELECT COUNT (pv.pv_id)
9474
           INTO ROWCOUNT
9475
           FROM package_versions pv
9476
          WHERE pv.pkg_id = pkgid;
9477
 
9478
         IF ROWCOUNT < 1
9479
         THEN
9480
            DELETE FROM PACKAGES pkg
9481
                  WHERE pkg.pkg_id = pkgid;
9482
         END IF;
9483
      END IF;
9484
   END;
9485
 
9486
/*-------------------------------------------------------------------------------------------------------*/
9487
   PROCEDURE new_patch (
9488
      snewpatchversion   IN       package_versions.pkg_version%TYPE,
9489
      nparentpvid        IN       NUMBER,
9490
      spatchidlist       IN       VARCHAR2,
9491
      nuserid            IN       NUMBER,
9492
      returnpatchid      OUT      NUMBER
9493
   )
9494
   IS
9495
      patchpv_id           NUMBER;
9496
      parpkg_id            NUMBER;
9497
      lastinstallorder     NUMBER;
9498
      ispatchdlocked       package_versions.dlocked%TYPE;
9499
      ssv_mm               package_versions.v_mm%TYPE;
9500
      ssv_nmm              package_versions.v_nmm%TYPE;
9501
      ssv_ext              package_versions.v_ext%TYPE;
3959 dpurdie 9502
      opatchdepcollector   relmgr_number_tab_t  := relmgr_number_tab_t ();
1373 dpurdie 9503
 
9504
      CURSOR parent_cur
9505
      IS
9506
         SELECT pv.*, pkg.pkg_name
9507
           FROM package_versions pv, PACKAGES pkg
9508
          WHERE pv.pv_id = nparentpvid AND pv.pkg_id = pkg.pkg_id;
9509
 
3959 dpurdie 9510
      parent_rec parent_cur%ROWTYPE;
1373 dpurdie 9511
 
9512
      CURSOR patch_cur
9513
      IS
9514
         SELECT pv.*, pg.pkg_name
9515
           FROM package_versions pv, PACKAGES pg
9516
          WHERE pv.pkg_id = parpkg_id
9517
            AND pv.pkg_version = snewpatchversion
9518
            AND pv.pkg_id = pg.pkg_id;
9519
 
3959 dpurdie 9520
      patch_rec  patch_cur%ROWTYPE;
1373 dpurdie 9521
 
9522
      CURSOR releases_cur
9523
      IS
9524
         SELECT rc.pv_id
9525
           FROM release_content rc
9526
          WHERE rc.pv_id = patch_rec.pv_id;
9527
 
3959 dpurdie 9528
      releases_rec releases_cur%ROWTYPE;
1373 dpurdie 9529
   BEGIN
9530
      -- Get Last Install Order
9531
      SELECT COUNT (*)
9532
        INTO lastinstallorder
9533
        FROM package_patches pp
9534
       WHERE pp.pv_id = nparentpvid;
9535
 
9536
      -- Get parent details
9537
      OPEN parent_cur;
9538
 
9539
      FETCH parent_cur
9540
       INTO parent_rec;
9541
 
9542
      parpkg_id := parent_rec.pkg_id;
9543
 
9544
      -- Find if patch exists in database
9545
      OPEN patch_cur;
9546
 
9547
      FETCH patch_cur
9548
       INTO patch_rec;
9549
 
9550
      -- Parent must be official
9551
      IF parent_rec.dlocked = 'Y'
9552
      THEN
9553
         IF patch_cur%NOTFOUND
9554
         THEN
9555
            ispatchdlocked := 'N';
9556
 
9557
            -- Create new patch version --
9558
            SELECT seq_pv_id.NEXTVAL
9559
              INTO patchpv_id
9560
              FROM DUAL;
9561
 
9562
            split_version (snewpatchversion, ssv_mm, ssv_nmm, ssv_ext);
9563
 
9564
            INSERT INTO package_versions
9565
                        (pv_id, pkg_id, pkg_version,
9566
                         dlocked, created_stamp, creator_id,
9567
                         modified_stamp, modifier_id, v_mm, v_nmm, v_ext,
9568
                         src_path,
9569
                         pv_description,
9570
                         owner_id, is_patch, last_pv_id, build_type, is_build_env_required, bs_id,
3959 dpurdie 9571
                         is_autobuildable, ripple_field
1373 dpurdie 9572
                        )
9573
                 VALUES (patchpv_id, parpkg_id, snewpatchversion,
9574
                         ispatchdlocked, ora_sysdate, nuserid,
9575
                         ora_sysdatetime, nuserid, ssv_mm, ssv_nmm, ssv_ext,
9576
                         parent_rec.src_path,
9577
                            'This is a patch to '
9578
                         || parent_rec.pkg_name
9579
                         || ' '
9580
                         || parent_rec.pkg_version,
3959 dpurdie 9581
                         nuserid, 'Y', patchpv_id, 'M', 'N', 3, 'N', parent_rec.ripple_field
1373 dpurdie 9582
                        );
9583
 
9584
            INSERT INTO package_patches
9585
                        (pv_id, patch_id, install_order)
3959 dpurdie 9586
                (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
9587
                        lastinstallorder + 1 AS install_order
9588
                   FROM package_versions pv
9589
                  WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
1373 dpurdie 9590
 
9591
            /* LOG ACTION */
9592
            log_action (patchpv_id,
9593
                        'new_version',
9594
                        nuserid,
9595
                        'Patch version created: ' || snewpatchversion
9596
                       );
9597
            log_action (nparentpvid,
9598
                        'patch_add',
9599
                        nuserid,
9600
                        'New patch created and attached: ' || snewpatchversion
9601
                       );
9602
         ELSE
9603
            patchpv_id := patch_rec.pv_id;
9604
            ispatchdlocked := patch_rec.dlocked;
9605
 
9606
            -- Find if pv_id exists in release content (i.e. it cannot be a patch)
9607
            OPEN releases_cur;
9608
 
9609
            FETCH releases_cur
9610
             INTO releases_rec;
9611
 
9612
            IF releases_cur%NOTFOUND
9613
            THEN
9614
               -- This pv_id is trully a patch, hence add Y to column IS_PATCH
9615
               UPDATE package_versions
9616
                  SET is_patch = 'Y'
9617
                WHERE pv_id = patchpv_id;
9618
 
9619
               INSERT INTO package_patches
9620
                           (pv_id, patch_id, install_order)
3959 dpurdie 9621
                   (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
9622
                           lastinstallorder + 1 AS install_order
9623
                      FROM package_versions pv
9624
                     WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
1373 dpurdie 9625
            END IF;
9626
 
9627
            CLOSE releases_cur;
9628
 
9629
            /* LOG ACTION */
9630
            log_action (nparentpvid,
9631
                        'patch_add',
9632
                        nuserid,
9633
                           'Patch version was found and attached: '
9634
                        || snewpatchversion
9635
                       );
9636
         END IF;
9637
      END IF;
9638
 
9639
      /* Create Patch Dependencies */
9640
      opatchdepcollector := in_list_number (spatchidlist);
9641
 
9642
      -- Make sure patch is unofficial before altering its dependencies
9643
      IF (opatchdepcollector.COUNT > 0) AND (ispatchdlocked = 'N')
9644
      THEN
9645
         -- Delete Existing Dependencies
9646
         DELETE FROM package_dependencies dep
9647
               WHERE dep.pv_id = patchpv_id;
9648
 
9649
         -- Insert new dependencies
9650
         INSERT INTO package_dependencies
9651
                     (pv_id, dpv_id, pkg_id, dpkg_id, build_type)
3959 dpurdie 9652
              SELECT patchpv_id AS pv_id, pv.pv_id AS dpv_id,
9653
                     parpkg_id AS pkg_id, pv.pkg_id AS dpkg_id,
9654
                     'L' AS build_type
9655
                FROM package_versions pv
9656
               WHERE pv.pv_id IN (
1373 dpurdie 9657
                      SELECT *
9658
                        FROM TABLE
9659
                                (CAST
9660
                                    (opatchdepcollector AS relmgr_number_tab_t)
9661
                                ));
9662
      END IF;
9663
 
9664
      -- Return patch_id
9665
      returnpatchid := patchpv_id;
9666
 
9667
      CLOSE parent_cur;
9668
 
9669
      CLOSE patch_cur;
9670
   EXCEPTION
9671
      WHEN DUP_VAL_ON_INDEX
9672
      THEN
9673
         raise_application_error (-20000,
9674
                                     'Patch version '
9675
                                  || snewpatchversion
9676
                                  || ' already exist.'
9677
                                 );
9678
   END;
9679
 
9680
/*-------------------------------------------------------------------------------------------------------*/
9681
   PROCEDURE obsolete_patch (
9682
      patchid            IN   NUMBER,
9683
      isobsolete         IN   CHAR,
9684
      obsoletecomments   IN   VARCHAR2,
9685
      userid             IN   NUMBER
9686
   )
9687
   IS
9688
   BEGIN
9689
      -- Update patch
9690
      UPDATE package_versions pv
9691
         SET pv.is_obsolete = isobsolete,
9692
             pv.obsolete_comments = obsoletecomments
9693
       WHERE pv.pv_id = patchid;
9694
 
9695
      /*
9696
      -- Update patch children
9697
      UPDATE PACKAGE_VERSIONS pv SET
9698
      pv.IS_OBSOLETE = IsObsolete,
9699
      pv.OBSOLETE_COMMENTS = ObsoleteComments
9700
      WHERE pv.PV_ID IN (
9701
                     SELECT DISTINCT dep.DPV_ID
9702
                       FROM PACKAGE_DEPENDENCIES dep
9703
                      WHERE dep.PV_ID = PatchId
9704
                     );
9705
 
9706
 
9707
      -- Update patch parent
9708
      UPDATE PACKAGE_VERSIONS pv SET
9709
      pv.IS_OBSOLETE = IsObsolete,
9710
      pv.OBSOLETE_COMMENTS = ObsoleteComments
9711
      WHERE pv.PV_ID IN (
9712
                     SELECT DISTINCT dep.PV_ID
9713
                       FROM PACKAGE_DEPENDENCIES dep
9714
                      WHERE dep.DPV_ID = PatchId
9715
                     );
9716
 
3959 dpurdie 9717
      */
1373 dpurdie 9718
 
9719
      /* LOG ACTION */
9720
      IF isobsolete IS NOT NULL
9721
      THEN
9722
         log_action (patchid,
9723
                     'patch_obsolete',
9724
                     userid,
9725
                     'Obsolete patch. ' || obsoletecomments
9726
                    );
9727
      ELSE
9728
         log_action (patchid,
9729
                     'patch_obsolete',
9730
                     userid,
9731
                     'Undo patch obsolete.'
9732
                    );
9733
      END IF;
9734
   END;
9735
 
9736
/*-------------------------------------------------------------------------------------------------------*/
9737
   PROCEDURE obsolete_patches (
9738
      spatchidlist       IN   VARCHAR2,
9739
      isobsolete         IN   CHAR,
9740
      obsoletecomments   IN   VARCHAR2,
9741
      userid             IN   NUMBER
9742
   )
9743
   IS
9744
   BEGIN
9745
      /*--------------- Business Rules Here -------------------*/
9746
      IF spatchidlist IS NULL
9747
      THEN
9748
         raise_application_error (-20000,
9749
                                  'Please select one or more Patches.'
9750
                                 );
9751
      END IF;
9752
 
9753
/*-------------------------------------------------------*/
9754
 
9755
      -- Update patch
9756
      UPDATE package_versions pv
9757
         SET pv.is_obsolete = isobsolete,
9758
             pv.obsolete_comments = obsoletecomments
9759
       WHERE pv.pv_id IN (
9760
                SELECT *
9761
                  FROM THE
9762
                          (SELECT CAST
9763
                                     (in_list_number (spatchidlist) AS relmgr_number_tab_t
9764
                                     )
9765
                             FROM DUAL
9766
                          ));
3959 dpurdie 9767
      /*
9768
      -- Update patch children
9769
      UPDATE PACKAGE_VERSIONS pv SET
9770
      pv.IS_OBSOLETE = IsObsolete,
9771
      pv.OBSOLETE_COMMENTS = ObsoleteComments
9772
      WHERE pv.PV_ID IN (
9773
                     SELECT DISTINCT dep.DPV_ID
9774
                       FROM PACKAGE_DEPENDENCIES dep
9775
                      WHERE dep.PV_ID = PatchId
9776
                     );
1373 dpurdie 9777
 
9778
 
3959 dpurdie 9779
      -- Update patch parent
9780
      UPDATE PACKAGE_VERSIONS pv SET
9781
      pv.IS_OBSOLETE = IsObsolete,
9782
      pv.OBSOLETE_COMMENTS = ObsoleteComments
9783
      WHERE pv.PV_ID IN (
9784
                     SELECT DISTINCT dep.PV_ID
9785
                       FROM PACKAGE_DEPENDENCIES dep
9786
                      WHERE dep.DPV_ID = PatchId
9787
                     );
1373 dpurdie 9788
 
9789
      */
9790
 
3959 dpurdie 9791
      /* LOG ACTION
9792
      IF IsObsolete IS NOT NULL THEN
1373 dpurdie 9793
         Log_Action ( PatchId, 'patch_obsolete', UserId,
3959 dpurdie 9794
                     'Obsolete patch. '|| ObsoleteComments );
9795
      ELSE
9796
         Log_Action ( PatchId, 'patch_obsolete', UserId,
9797
                     'Undo patch obsolete.' );
9798
      END IF;  */
1373 dpurdie 9799
   END;
9800
 
9801
/*-------------------------------------------------------------------------------------------------------*/
9802
   PROCEDURE add_process (
9803
      nprocid         IN   processes.proc_id%TYPE,
9804
      shealthtag      IN   processes.proc_name%TYPE,
9805
      sprocdesc       IN   processes.proc_description%TYPE,
9806
      scmdinterface   IN   processes.run_as%TYPE,
9807
      spkgowner       IN   processes.pkg_owner%TYPE,
9808
      sisinterface    IN   processes.is_interface%TYPE,
9809
      npvid           IN   package_processes.pv_id%TYPE,
9810
      nuserid         IN   NUMBER
9811
   )
9812
   IS
9813
      pkgname   VARCHAR2 (100);
3959 dpurdie 9814
 
1373 dpurdie 9815
   BEGIN
9816
      INSERT INTO processes
9817
                  (proc_id, proc_name, proc_description, run_as, pkg_owner,
9818
                   is_interface
9819
                  )
9820
           VALUES (nprocid, shealthtag, sprocdesc, scmdinterface, spkgowner,
9821
                   sisinterface
9822
                  );
9823
 
9824
      pk_package.add_package_process (nprocid, npvid, nuserid);
9825
   END;
9826
 
9827
/*-------------------------------------------------------------------------------------------------------*/
9828
   PROCEDURE add_package_process (
9829
      nprocidlist   IN   VARCHAR2,
9830
      npvid         IN   package_processes.pv_id%TYPE,
9831
      nuserid       IN   NUMBER
9832
   )
9833
   IS
9834
      processname   VARCHAR2 (4000);
9835
 
9836
      CURSOR proc_cur
9837
      IS
9838
         SELECT prc.proc_id
9839
           FROM processes prc
9840
          WHERE prc.proc_id IN (
9841
                   SELECT *
9842
                     FROM THE
9843
                             (SELECT CAST
9844
                                        (in_list_number (nprocidlist) AS relmgr_number_tab_t
9845
                                        )
9846
                                FROM DUAL
9847
                             ));
9848
 
3959 dpurdie 9849
      proc_rec  proc_cur%ROWTYPE;
1373 dpurdie 9850
   BEGIN
9851
      OPEN proc_cur;
9852
 
9853
      FETCH proc_cur
9854
       INTO proc_rec;
9855
 
9856
      WHILE proc_cur%FOUND
9857
      LOOP
3959 dpurdie 9858
         INSERT INTO package_processes (proc_id, pv_id)
9859
              VALUES (proc_rec.proc_id, npvid);
1373 dpurdie 9860
 
9861
         SELECT prc.proc_name
9862
           INTO processname
9863
           FROM processes prc
9864
          WHERE prc.proc_id = proc_rec.proc_id;
9865
 
9866
         -- Log Action --
9867
         log_action (npvid,
9868
                     'process_add',
9869
                     nuserid,
9870
                     'Added process with health tag ' || processname
9871
                    );
9872
 
9873
         FETCH proc_cur
9874
          INTO proc_rec;
9875
      END LOOP;
3959 dpurdie 9876
 
9877
      CLOSE proc_cur;
1373 dpurdie 9878
   END;
9879
 
9880
/*-------------------------------------------------------------------------------------------------------*/
9881
   PROCEDURE remove_process (
9882
      nprocid   IN   package_processes.proc_id%TYPE,
9883
      npvid     IN   package_processes.pv_id%TYPE,
9884
      nuserid   IN   NUMBER
9885
   )
9886
   IS
9887
      processname   VARCHAR2 (4000);
9888
   BEGIN
9889
      SELECT prc.proc_name
9890
        INTO processname
9891
        FROM processes prc
9892
       WHERE prc.proc_id = nprocid;
9893
 
9894
      DELETE FROM package_processes
9895
            WHERE proc_id = nprocid AND pv_id = npvid;
9896
 
9897
      -- Log Action --
9898
      log_action (npvid,
9899
                  'process_remove',
9900
                  nuserid,
9901
                  'Removed process with health tag ' || processname
9902
                 );
9903
   END;
9904
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 9905
   /*
9906
   ** Author: Rupesh Solanki
9907
   ** Purpose: To move package versions from one release to another
9908
   ** Release: 4th September 2006
9909
   */
9910
   PROCEDURE move_package (
9911
      npvid        IN package_versions.pv_id%TYPE,
9912
      nrtagid      IN release_tags.rtag_id%TYPE,
9913
      nnewrtagid   IN release_tags.rtag_id%TYPE,
9914
      nuserid      IN NUMBER
9915
   )
9916
   IS
1373 dpurdie 9917
 
3959 dpurdie 9918
      oldrtag_name VARCHAR2(4000);newrtag_name VARCHAR2(4000);
9919
 
9920
   BEGIN
9921
      SELECT rtag_name into oldrtag_name
9922
      FROM RELEASE_TAGS
9923
      WHERE rtag_id = nrtagid;
9924
 
9925
      SELECT rtag_name into newrtag_name
9926
      FROM RELEASE_TAGS
9927
      WHERE rtag_id = nnewrtagid;
9928
 
9929
      /* Table Work In Progress*/
9930
      UPDATE WORK_IN_PROGRESS
9931
      SET RTAG_ID = nnewrtagid
9932
      WHERE RTAG_ID = nrtagid
9933
      AND PV_ID = npvid;
9934
 
9935
      /* Table PLANNED*/
9936
      UPDATE PLANNED
9937
      SET RTAG_ID = nnewrtagid
9938
      WHERE RTAG_ID = nrtagid
9939
      AND PV_ID = npvid;
9940
 
9941
      /* Table PEGGED_VERSIONS */
9942
      DELETE FROM PEGGED_VERSIONS pegv
9943
      WHERE pegv.RTAG_ID = nrtagid
9944
      AND pegv.PV_ID = npvid;
9945
 
9946
      /* Table ADVISORY_RIPPLE*/
9947
      DELETE FROM ADVISORY_RIPPLE
9948
      WHERE RTAG_ID = nrtagid
9949
      AND PV_ID = npvid;
9950
 
9951
 
1373 dpurdie 9952
      -- Log Action --
9953
      log_action (npvid,
9954
                  'move_package_version',
9955
                  nuserid,
9956
                  'Moved package version from ' || oldrtag_name || ' to ' || newrtag_name
3959 dpurdie 9957
                 );
9958
   END;
9959
 
1373 dpurdie 9960
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 9961
   /*
9962
   ** Author: Rupesh Solanki
9963
   ** Purpose: To modify the product state from integration to test to deployment
9964
   ** Release: 25th January 2006
9965
   */
9966
   PROCEDURE modify_product_state (
9967
      npvid    IN package_versions.pv_id%TYPE,
9968
      nrtagid  IN release_tags.rtag_id%TYPE,
9969
      nstateid IN product_states.state_id%TYPE,
9970
      nuserid  IN NUMBER
1373 dpurdie 9971
   ) IS
3959 dpurdie 9972
 
9973
      sStateName VARCHAR2(4000);
9974
      sRtagName VARCHAR2(4000);
9975
 
9976
   BEGIN
9977
 
9978
      UPDATE RELEASE_CONTENT
9979
      SET PRODUCT_STATE = nstateid
9980
      WHERE PV_ID = npvid
9981
      AND RTAG_ID = nrtagid;
9982
 
9983
 
9984
      SELECT STATE INTO sStateName
9985
      FROM PRODUCT_STATES
9986
      WHERE STATE_ID = nstateid;
9987
 
9988
      SELECT RTAG_NAME into sRtagName
9989
      FROM RELEASE_TAGS
9990
      WHERE RTAG_ID = nrtagid;
9991
 
9992
 
9993
      -- Log Action --
9994
      log_action (npvid,
9995
                  'modify_product_state',
9996
                     nuserid,
9997
                     sStateName || ' in '|| sRtagName
9998
                  );
9999
   END;
10000
/*-------------------------------------------------------------------------------------------------------*/
10001
   /*
10002
   ** Author: Jeremy Tweddle
10003
   ** Date: 24/Aug/2007
10004
   */
10005
   PROCEDURE add_code_review_url (
10006
      npvid           IN    NUMBER,
10007
      nprojid         IN    NUMBER,
10008
      surl            IN    VARCHAR2,
10009
      sreason         IN    VARCHAR2,
4553 dpurdie 10010
      ddateofreview   IN    VARCHAR2
3959 dpurdie 10011
   ) IS
10012
 
10013
      ncrid NUMBER;
10014
 
10015
   BEGIN
10016
 
10017
      SELECT seq_cr_id.NEXTVAL INTO ncrid FROM DUAL;
10018
 
4553 dpurdie 10019
      INSERT INTO code_review_url ( cr_id, pv_id, proj_id, url, reason, date_of_review, last_modified )
10020
      VALUES ( ncrid, npvid, nprojid, surl, sreason, TO_DATE( ddateofreview,'DD/MM/YYYY' ), ora_sysdate );
3959 dpurdie 10021
 
10022
   END;
10023
/*-------------------------------------------------------------------------------------------------------*/
10024
   /*
10025
   ** Author: Jeremy Tweddle
10026
   ** Date: 22/Aug/2007
10027
   */
10028
   PROCEDURE update_code_review_url (
10029
      ncrid           IN    NUMBER,
10030
      nprojid         IN    NUMBER,
10031
      surl            IN    VARCHAR2,
4553 dpurdie 10032
      sreason         IN    VARCHAR2,
10033
      ddateofreview   IN    VARCHAR2
3959 dpurdie 10034
   ) IS
10035
 
10036
   BEGIN
10037
 
10038
      UPDATE code_review_url
10039
      SET url = surl,
10040
          proj_id = nprojid,
10041
          reason = sreason,
4553 dpurdie 10042
          date_of_review = TO_DATE( ddateofreview,'DD/MM/YYYY' ), 
3959 dpurdie 10043
          last_modified = ora_sysdate
10044
      WHERE cr_id = ncrid;
10045
 
10046
   END;
4553 dpurdie 10047
 
3959 dpurdie 10048
/*-------------------------------------------------------------------------------------------------------*/
10049
   /*
10050
   ** Author: Jeremy Tweddle
10051
   ** Date: 22/Aug/2007
10052
   */
10053
   PROCEDURE remove_code_review_url (
10054
      ncrid  IN    NUMBER
10055
   ) IS
10056
 
10057
   BEGIN
10058
      DELETE FROM code_review_url
10059
      WHERE cr_id = ncrid;
10060
   END;
10061
/*-------------------------------------------------------------------------------------------------------*/
10062
END pk_package;
4040 dpurdie 10063
 
1374 dpurdie 10064
/
4040 dpurdie 10065
--------------------------------------------------------
10066
--  DDL for Package Body PK_PLANNED
10067
--------------------------------------------------------
10068
 
5172 dpurdie 10069
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PLANNED" IS
3959 dpurdie 10070
 
1373 dpurdie 10071
/*
10072
------------------------------
3959 dpurdie 10073
||  Last Modified:  G.Huddy
10074
||  Modified Date:  05/Aug/2008
10075
||  Body Version:   1.2
1373 dpurdie 10076
------------------------------
10077
*/
10078
 
10079
 
10080
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10081
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 10082
 
3959 dpurdie 10083
    oldPvId NUMBER;
10084
    ReleaseLocation VARCHAR2(4000);
10085
    IsPatch CHAR(1) := NULL;
10086
    sLocation VARCHAR2(4000) := NULL;
10087
    nRtagIdLocation NUMBER;
1373 dpurdie 10088
 
10089
 
10090
 
3959 dpurdie 10091
BEGIN
10092
    /*--------------- Business Rules Here -------------------*/
10093
    /*-------------------------------------------------------*/
1373 dpurdie 10094
 
3959 dpurdie 10095
    BEGIN
10096
        -- Check if Exists in "Work in progress" anywhere in the world, except "Closed mode" releases
10097
        SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME, rt.RTAG_ID  INTO sLocation, nRtagIdLocation
10098
          FROM PLANNED pl,
10099
               RELEASE_TAGS rt,
10100
               PROJECTS proj
10101
         WHERE pl.PV_ID = newPvId
10102
           AND pl.RTAG_ID = rt.RTAG_ID
10103
           AND rt.OFFICIAL != 'Y'
10104
           AND rt.PROJ_ID = proj.PROJ_ID;
1373 dpurdie 10105
 
3959 dpurdie 10106
        EXCEPTION
10107
            WHEN NO_DATA_FOUND THEN
10108
                sLocation := NULL;
10109
    END;
1373 dpurdie 10110
 
3959 dpurdie 10111
 
10112
 
10113
    IF (sLocation IS NULL) OR (nRtagIdLocation = RtagId) THEN
10114
 
10115
        -- Add to "Pending" area
10116
        INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )
10117
        VALUES( RtagId, newPvId, ViewId, 'R' );
10118
 
10119
 
10120
        /* LOG ACTION */
10121
        SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
10122
          FROM PROJECTS proj,
10123
               RELEASE_TAGS rt
10124
         WHERE rt.PROJ_ID = proj.PROJ_ID
10125
           AND rt.RTAG_ID = RtagId;
10126
 
10127
        Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
10128
 
10129
    ELSE
10130
 
10131
        RAISE_APPLICATION_ERROR (-20000, 'This version is already in Pending Area at '|| sLocation ||'.' );
10132
 
10133
    END IF;
10134
 
10135
END;
1373 dpurdie 10136
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10137
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 10138
 
3959 dpurdie 10139
    ReleaseLocation VARCHAR2(4000);
1373 dpurdie 10140
 
3959 dpurdie 10141
BEGIN
1373 dpurdie 10142
 
3959 dpurdie 10143
    /*--------------- Business Rules Here -------------------*/
10144
    /*-------------------------------------------------------*/
1373 dpurdie 10145
 
10146
 
3959 dpurdie 10147
    -- Get release location for logging pusposes
10148
    SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
10149
      FROM PROJECTS proj,
10150
           RELEASE_TAGS rt
10151
     WHERE rt.PROJ_ID = proj.PROJ_ID
10152
       AND rt.RTAG_ID = RtagId;
1373 dpurdie 10153
 
10154
 
3959 dpurdie 10155
    -- Delete from Work In Progress
10156
    DELETE
10157
      FROM PLANNED pl
10158
     WHERE pl.RTAG_ID = RtagId
10159
       AND pl.PV_ID = PvId;
1373 dpurdie 10160
 
3959 dpurdie 10161
    Log_Action ( PvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
10162
 
10163
 
10164
 
10165
 
10166
END;
1373 dpurdie 10167
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10168
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
1373 dpurdie 10169
 
3959 dpurdie 10170
    ReturnValue NUMBER;
1373 dpurdie 10171
 
3959 dpurdie 10172
BEGIN
10173
    SELECT pl.VIEW_ID INTO ReturnValue
10174
      FROM PLANNED pl
10175
     WHERE pl.RTAG_ID = RtagId
10176
       AND pl.PV_ID = PvId;
10177
 
10178
    RETURN ReturnValue;
10179
END;
10180
/*-------------------------------------------------------------------------------------------------------*/
10181
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
10182
 
10183
    IsBaseView CHAR(1);
10184
 
10185
BEGIN
10186
 
10187
    -- Check if the view is BASE VIEW
10188
    SELECT vi.BASE_VIEW INTO IsBaseView
10189
      FROM VIEWS vi
10190
     WHERE vi.VIEW_ID = ViewId;
10191
 
10192
 
5172 dpurdie 10193
    IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 10194
        -- Get Base view content
10195
        OPEN RecordSet FOR
10196
        SELECT 0 AS PKG_STATE,
10197
               NULL AS DEPRECATED_STATE,
10198
               pv.pv_id,
10199
               pkg.pkg_name,
10200
               pv.pkg_version,
10201
               pv.dlocked,
10202
               pv.pv_description,
10203
               pv.BUILD_TYPE,
10204
               rel.operation
10205
          FROM PLANNED rel,
10206
               packages pkg,
10207
               package_versions pv
10208
         WHERE pv.pkg_id = pkg.pkg_id
10209
           AND rel.pv_id = pv.pv_id
10210
           AND rel.VIEW_ID = ViewId
10211
           AND rel.RTAG_ID = RtagId
10212
         ORDER BY UPPER(pkg.PKG_NAME);
10213
 
10214
    ELSE
10215
 
10216
        -- Get non base view content
10217
        OPEN RecordSet FOR
10218
        SELECT 0 AS PKG_STATE,
10219
               NULL AS DEPRECATED_STATE,
10220
               pv.pv_id,
10221
               pkg.pkg_name,
10222
               pv.pkg_version,
10223
               pv.dlocked,
10224
               pv.pv_description,
10225
               pv.BUILD_TYPE,
10226
               rel.operation
10227
          FROM PLANNED rel,
10228
               packages pkg,
10229
               package_versions pv,
10230
               VIEW_DEF vd
10231
         WHERE pv.pkg_id = pkg.pkg_id
10232
           AND rel.pv_id = pv.pv_id
10233
           AND rel.RTAG_ID = RtagId
10234
           AND vd.VIEW_ID = ViewId
10235
           AND vd.PKG_ID = pv.PKG_ID
10236
         ORDER BY UPPER(pkg.PKG_NAME);
10237
 
10238
    END IF;
10239
 
10240
 
10241
END;
10242
/*-------------------------------------------------------------------------------------------------------*/
10243
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
10244
 
10245
BEGIN
10246
 
10247
    UPDATE PLANNED pl SET
10248
    pl.VIEW_ID = NewViewId
10249
    WHERE pl.PV_ID = PvId
10250
      AND pl.RTAG_ID = RtagId;
10251
 
10252
END;
10253
/*-------------------------------------------------------------------------------------------------------*/
10254
-- DEVI-45275 This new function supports the ability to insert into the planned table, and existing
10255
-- version of a package as part of a release-to-release merge operation carried out within release manager.
10256
-- DEVI-49594 This function has subsequently been changed to allow a merge operation to cancel its
10257
-- opposite operation, if the opposite already exists in the planned table. This supports user activity
10258
-- via the Release Manager merge manager display
10259
 
10260
PROCEDURE MERGE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, mergeOperation IN CHAR ) IS
10261
 
10262
    ReleaseLocation VARCHAR2(4000);
10263
 
10264
        entryExists NUMBER;
10265
        existingOperation CHAR;
10266
BEGIN
10267
    /*--------------- Business Rules Here -------------------*/
10268
    /*-------------------------------------------------------*/
10269
 
10270
      -- Determine if the specified PV_ID already exists in the planned table....
10271
      SELECT COUNT (pl.pv_id) INTO entryExists
10272
      FROM PLANNED pl
10273
      WHERE pl.pv_id = newPvId
10274
      AND pl.rtag_id = RtagId
10275
      AND pl.view_id = ViewId;
10276
 
10277
      -- If the specified PV_ID already exists in the planned table....
10278
      IF entryExists = 1 THEN
10279
 
10280
         -- Get the operation for the existing entry
10281
         SELECT pl.operation INTO existingOperation
10282
         FROM PLANNED pl
10283
         WHERE pl.pv_id = newPvId
10284
         AND pl.rtag_id = RtagId
10285
         AND pl.view_id = ViewId;
10286
 
10287
         -- Is the specified merge operation the opposite of the existing entry?
10288
         -- If it is not, then there is nothing to do, otherwise...
10289
         -- NOTE: A = Add, S = Subtract
10290
         IF (mergeOperation = 'S' AND existingOperation = 'A')
10291
            OR (mergeOperation = 'A' AND existingOperation = 'S') THEN
10292
 
10293
           -- It is the opposite, so effectively it cancels the existing entry
10294
           -- Remove the entry from the planned table
10295
           DELETE
10296
            FROM PLANNED pl
10297
           WHERE pl.pv_id = newPvId
10298
             AND pl.rtag_id = RtagId
10299
             AND pl.view_id = ViewId;
10300
 
10301
           -- Log action
10302
           SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
10303
             FROM PROJECTS proj,
10304
                  RELEASE_TAGS rt
10305
            WHERE rt.PROJ_ID = proj.PROJ_ID
10306
              AND rt.RTAG_ID = RtagId;
10307
 
10308
           Log_Action ( newPvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 10309
         END IF;
3959 dpurdie 10310
      ELSE
10311
         -- Add to Planned tabled
10312
         INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )
10313
         VALUES( RtagId, newPvId, ViewId, mergeOperation );
1373 dpurdie 10314
 
3959 dpurdie 10315
         -- Log Action
10316
         SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
10317
          FROM PROJECTS proj,
10318
               RELEASE_TAGS rt
10319
         WHERE rt.PROJ_ID = proj.PROJ_ID
10320
         AND   rt.RTAG_ID = RtagId;
10321
 
10322
         Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 10323
      END IF;
10324
 
3959 dpurdie 10325
END;
1373 dpurdie 10326
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10327
END PK_PLANNED;
4040 dpurdie 10328
 
3959 dpurdie 10329
/
4040 dpurdie 10330
--------------------------------------------------------
10331
--  DDL for Package Body PK_PROJECT
10332
--------------------------------------------------------
10333
 
5172 dpurdie 10334
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PROJECT" IS
1373 dpurdie 10335
 
3959 dpurdie 10336
    /*------------------------------------------------------------------------*/
10337
    PROCEDURE update_base_url (
10338
    nprojid   IN  projects.proj_id%TYPE,
10339
    sbaseurl  IN  VARCHAR2
10340
    ) IS
10341
    BEGIN
1373 dpurdie 10342
 
3959 dpurdie 10343
    UPDATE projects
10344
    SET base_url = sbaseurl
10345
    WHERE proj_id = nprojid;
10346
 
10347
    END update_base_url;
10348
 
10349
/*------------------------------------------------------------------------*/
10350
    PROCEDURE update_project_config (
10351
    nprojid   IN  projects.proj_id%TYPE,
10352
    sbaseurl  IN  VARCHAR2,
10353
    sjirakey  IN  VARCHAR2
10354
    ) IS
10355
    BEGIN
10356
 
10357
    UPDATE projects
10358
    SET base_url = sbaseurl,
10359
        jira_key = sjirakey
10360
    WHERE proj_id = nprojid;
10361
 
10362
    END update_project_config;
10363
    /*------------------------------------------------------------------------*/
10364
 
10365
    END pk_project;
4040 dpurdie 10366
 
3959 dpurdie 10367
/
4040 dpurdie 10368
--------------------------------------------------------
10369
--  DDL for Package Body PK_RELEASE
10370
--------------------------------------------------------
10371
 
5172 dpurdie 10372
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_RELEASE" IS
3959 dpurdie 10373
 
1373 dpurdie 10374
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10375
PROCEDURE New_Release ( sReleaseName IN VARCHAR2, sReleaseComments IN VARCHAR2, nProjId IN NUMBER, nSourceRtagId IN NUMBER, sIsBranched IN CHAR, nUserId IN NUMBER ) IS
1373 dpurdie 10376
 
3959 dpurdie 10377
RtagId NUMBER;
10378
ParentRtagId NUMBER;
10379
RecCount NUMBER := 0;
10380
VtreeId NUMBER;
1373 dpurdie 10381
 
3959 dpurdie 10382
BEGIN
10383
   /*--------------- Business Rules Here -------------------*/
10384
   -- Check for missing parameters
10385
   IF (sReleaseName IS NULL) OR (nUserId IS NULL)
10386
   THEN
10387
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId );
1373 dpurdie 10388
 
3959 dpurdie 10389
   END IF;
1373 dpurdie 10390
 
3959 dpurdie 10391
 
10392
   -- Check for duplicate Release Names
10393
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
10394
     FROM RELEASE_TAGS rt
10395
    WHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )
10396
      AND rt.PROJ_ID = nProjId;
10397
 
10398
   IF (RecCount > 0) THEN
10399
      RAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');
10400
   END IF;
10401
   /*-------------------------------------------------------*/
10402
 
10403
 
10404
   -- Get rtag_id
10405
   SELECT SEQ_RTAG_ID.NEXTVAL INTO RtagId FROM DUAL;
10406
 
10407
   SELECT SEQ_VTREE_ID.NEXTVAL INTO VtreeId FROM DUAL;
10408
 
10409
 
10410
 
10411
   -- Get Parent RtagId
10412
   ParentRtagId := GET_PARENT_RTAG ( RtagId, nSourceRtagId, sIsBranched );
10413
 
10414
   -- If the parent RTAG is NOT in this project then we cannot use it.
10415
   -- We must re-assign the parent to be the new release's RTAG_ID instead
10416
   -- else it will not show up in the projects release tree (DEVI-55480)
10417
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
10418
     FROM RELEASE_TAGS rt
10419
    WHERE rt.RTAG_ID = ParentRtagId
10420
      AND rt.PROJ_ID = nProjId;
10421
 
10422
   IF (RecCount = 0) THEN
10423
     ParentRtagId := RtagId;
10424
   END IF;
10425
 
10426
   -- Create new release
10427
   INSERT INTO RELEASE_TAGS ( RTAG_ID, RTAG_NAME, DESCRIPTION, CREATED_STAMP, CREATOR_ID,
10428
                        OFFICIAL, REBUILD_ENV, REBUILD_STAMP,
10429
                        PARENT_RTAG_ID, PROJ_ID, VTREE_ID )
10430
   VALUES ( RtagId,
10431
          sReleaseName,
10432
          sReleaseComments,
10433
          ORA_SYSDATE,
10434
          nUserId,
10435
          'N',
10436
          'N',
10437
          0,
10438
          ParentRtagId,
10439
          nProjId,
10440
          VtreeId );
10441
 
10442
   -- If a source release is provided, clone its config spec branch information into the new release (DEVI-56650)
10443
   IF (NOT nSourceRtagId IS NULL)
10444
   THEN
10445
      UPDATE RELEASE_TAGS rtd
10446
      SET rtd.config_spec_branch = (SELECT rts.CONFIG_SPEC_BRANCH FROM RELEASE_TAGS rts WHERE rts.RTAG_ID = nSourceRtagId)
10447
      WHERE rtd.RTAG_ID = RtagId;
10448
   END IF;
10449
 
10450
   -- Update display Order
10451
   UPDATE_DISPLAY_ORDER ( nProjId );
10452
 
10453
   /* Log Project Action */
10454
   Log_Project_Action ( nProjId, 'new_release', nUserId, sReleaseName, RtagId );
10455
 
10456
 
10457
   -- Import Release Contents
10458
   IF (NOT nSourceRtagId IS NULL) THEN
10459
      Import_Release_Contents ( nSourceRtagId, RtagId, nUserId );
10460
   END IF;
10461
 
10462
END;
10463
/*-------------------------------------------------------------------------------------------------------*/
10464
PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER ) IS
10465
 
10466
 
10467
BEGIN
10468
 
10469
 
10470
   /*--------------- Business Rules Here -------------------*/
10471
   /*-------------------------------------------------------*/
10472
 
10473
   UPDATE RELEASE_TAGS urt SET
10474
   urt.DISPLAY_ORDER = (
10475
                  SELECT qry.REC_NUM
10476
                    FROM (
10477
                        SELECT rel.*, ROWNUM AS REC_NUM
10478
                          FROM (
10479
 
10480
                                SELECT rt.RTAG_ID,
10481
                                    rt.DISPLAY_ORDER,
10482
                                     DECODE( rt.PARENT_RTAG_ID,
10483
                                             rt.RTAG_ID, 0, rt.PARENT_RTAG_ID ) AS PARENT_RTAG_ID
10484
                                FROM RELEASE_TAGS rt
10485
                               WHERE rt.PROJ_ID = nProjId
10486
 
10487
                                ) rel
10488
                        START WITH rel.PARENT_RTAG_ID = 0
10489
                        CONNECT BY PRIOR rel.RTAG_ID = rel.PARENT_RTAG_ID
10490
                        ORDER SIBLINGS BY rel.DISPLAY_ORDER
10491
                        ) qry
10492
                     WHERE qry.RTAG_ID = urt.RTAG_ID
10493
                  )
10494
   WHERE urt.PROJ_ID = nProjId;
10495
 
10496
END;
10497
/*-------------------------------------------------------------------------------------------------------*/
10498
PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER  ) IS
10499
 
10500
   nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
10501
   SeqNum NUMBER;
10502
 
10503
BEGIN
10504
 
10505
 
10506
   /*--------------- Business Rules Here -------------------*/
10507
   /*-------------------------------------------------------*/
10508
 
10509
   nIdCollector := IN_LIST_NUMBER ( sRtagIdList );
10510
 
10511
   -- Set start sequence number
10512
   SeqNum := 1;
10513
 
10514
   FOR i IN 1..nIdCollector.COUNT
10515
   LOOP
10516
 
10517
      -- Update new display order
10518
      UPDATE RELEASE_TAGS rt SET
10519
         rt.DISPLAY_ORDER = SeqNum
10520
       WHERE rt.PROJ_ID = nProjId
10521
         AND rt.RTAG_ID = nIdCollector(i);
10522
 
10523
      SeqNum := SeqNum + 1;
10524
 
10525
   END LOOP;
10526
 
10527
END;
10528
/*-------------------------------------------------------------------------------------------------------*/
5172 dpurdie 10529
PROCEDURE Update_Release ( nRtagId IN NUMBER, 
10530
                           sReleaseName IN VARCHAR2, 
10531
                           sReleaseComments IN VARCHAR2, 
10532
                           nParentRtagId IN NUMBER, 
10533
                           nMASSRtagId IN NUMBER, 
10534
                           nConfigSpecBranch IN VARCHAR2, 
10535
                           sOwnerEmail IN VARCHAR2, 
10536
                           nUserId IN NUMBER, 
10537
                           cState IN VARCHAR, 
10538
                           nBuildAge in NUMBER) IS
3959 dpurdie 10539
 
10540
RecCount NUMBER := 0;
10541
ProjId NUMBER;
10542
 
10543
BEGIN
10544
 
10545
 
10546
   /*--------------- Business Rules Here -------------------*/
10547
   -- Check for missing parameters
10548
   IF (sReleaseName IS NULL) OR (nUserId IS NULL) OR (nRtagId IS NULL)
10549
   THEN
10550
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId ||', nRtagId='|| nRtagId);
10551
 
10552
   END IF;
10553
 
10554
 
10555
   -- Check for duplicate Release Names
10556
   SELECT rt.PROJ_ID INTO ProjId
10557
     FROM RELEASE_TAGS rt
10558
    WHERE rt.RTAG_ID = nRtagId;
10559
 
10560
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
10561
     FROM RELEASE_TAGS rt
10562
    WHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )
10563
      AND rt.RTAG_ID != nRtagId
10564
      AND rt.PROJ_ID = ProjId;
10565
 
10566
 
10567
   IF (RecCount > 0) THEN
10568
      RAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');
10569
   END IF;
10570
   /*-------------------------------------------------------*/
10571
 
10572
 
10573
 
10574
   -- Update release details
10575
   UPDATE RELEASE_TAGS rt SET
10576
   rt.RTAG_NAME = sReleaseName,
10577
   rt.DESCRIPTION = sReleaseComments,
10578
   rt.PARENT_RTAG_ID = nParentRtagId,
10579
   rt.ASSOC_MASS_REF = nMASSRtagId,
10580
   rt.CONFIG_SPEC_BRANCH = nConfigSpecBranch,
10581
   rt.OWNER_EMAIL = sOwnerEmail,
5172 dpurdie 10582
   rt.PRODUCT_STATE_USED = cState,
10583
   rt.BUILD_AGE = nBuildAge
3959 dpurdie 10584
   WHERE rt.RTAG_ID = nRtagId;
10585
 
10586
   -- Update display Order
10587
   UPDATE_DISPLAY_ORDER ( ProjId );
10588
 
10589
   /* Log Project Action */
10590
   Log_Project_Action ( ProjId, 'update_release', nUserId, 'Release Name: <br>Release Comments:', nRtagId );
10591
 
10592
 
10593
 
10594
 
10595
END;
10596
/*-------------------------------------------------------------------------------------------------------*/
10597
PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER ) IS
10598
 
10599
   RecCount NUMBER := 0;
10600
   sReleaseId VARCHAR2(4000);
10601
   ProjId NUMBER;
10602
 
10603
BEGIN
10604
   /*--------------- Business Rules Here -------------------*/
10605
   IF (nRtagId IS NULL)
10606
   THEN
10607
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId  );
10608
   END IF;
10609
 
10610
 
10611
 
10612
   -- Check for any kids
10613
   SELECT COUNT( rt.RTAG_ID ) INTO RecCount
10614
     FROM RELEASE_TAGS rt
10615
    WHERE rt.PARENT_RTAG_ID = nRtagId
10616
      AND rt.RTAG_ID != rt.PARENT_RTAG_ID;
10617
 
10618
   IF (RecCount > 0) THEN
10619
      RAISE_APPLICATION_ERROR (-20000, 'Cannot destroy this release. You need to destroy its children releases first.'  );
10620
   END IF;
10621
   /*-------------------------------------------------------*/
10622
 
10623
   -- Clear the release contents
10624
   Clean_Release_Contents ( nRtagId, nUserId );
10625
 
10626
   /* Log Project Action */
10627
   SELECT rt.PROJ_ID, rt.RTAG_NAME ||'['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']' INTO ProjId, sReleaseId
10628
     FROM RELEASE_TAGS rt
10629
    WHERE rt.RTAG_ID = nRtagId;
10630
 
10631
   Log_Project_Action ( ProjId, 'destroy_release', nUserId, sReleaseId, nRtagId );
10632
 
10633
 
10634
   -- Remove Release
10635
   DELETE
10636
     FROM RELEASE_TAGS rt
10637
    WHERE rt.RTAG_ID = nRtagId;
10638
 
10639
 
10640
 
10641
END;
10642
/*-------------------------------------------------------------------------------------------------------*/
10643
PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER  ) IS
10644
 
10645
   sSourceLocation VARCHAR2(4000);
10646
   sTargetLocation VARCHAR2(4000);
10647
   ProjId NUMBER;
10648
   cReleaseMode CHAR(1);
10649
   RconId NUMBER;
10650
 
10651
   -- this cursor gets the source release daemon configurations, ensuring that the
10652
   -- first record will be the master daemon, and subsequent records will be the slaves.
10653
   CURSOR curSrcReleaseConfigs IS
4308 dpurdie 10654
    SELECT daemon_hostname, gbe_id, gbe_buildfilter, bmcon_id, daemon_mode
3959 dpurdie 10655
     FROM RELEASE_CONFIG rc
10656
    WHERE rc.RTAG_ID = nSourceRtagId
10657
    ORDER BY rc.daemon_mode;
10658
    recSrcReleaseConfigs curSrcReleaseConfigs%ROWTYPE;
10659
 
10660
    -- this cursor looks for target release daemons
10661
   CURSOR curTgtReleaseConfigs IS
10662
    SELECT rcon_id
10663
     FROM RELEASE_CONFIG rc
10664
    WHERE rc.RTAG_ID = nTargetRtagId;
10665
    recTgtReleaseConfigs curTgtReleaseConfigs%ROWTYPE;
10666
 
10667
    -- this cursor looks for target release daemon run level entries
10668
   CURSOR curTgtReleaseConfigRunLevel IS
10669
    SELECT current_run_level
10670
     FROM RUN_LEVEL rl
10671
    WHERE rl.RCON_ID = recTgtReleaseConfigs.rcon_id;
10672
    recTgtReleaseConfigRunLevel curTgtReleaseConfigRunLevel%ROWTYPE;
10673
 
10674
BEGIN
10675
   /*--------------- Business Rules Here -------------------*/
10676
   IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)
10677
   THEN
10678
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );
10679
   END IF;
10680
 
10681
   IF (nSourceRtagId = nTargetRtagId) THEN
10682
      RAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );
10683
   END IF;
10684
 
10685
 
10686
   -- Check if Target release is in OPEN mode
10687
   SELECT rt.OFFICIAL  INTO  cReleaseMode
10688
     FROM RELEASE_TAGS rt
10689
    WHERE rt.RTAG_ID = nTargetRtagId;
10690
 
10691
   IF (cReleaseMode != 'N') THEN
10692
      RAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the contents.' );
10693
   END IF;
10694
 
10695
   -- check that the target release's daemons are all paused before we allow an import operation
10696
   OPEN curTgtReleaseConfigs;
10697
   FETCH curtgtReleaseConfigs INTO recTgtReleaseConfigs;
10698
 
10699
   WHILE curTgtReleaseConfigs%FOUND
10700
   LOOP
10701
      OPEN curTgtReleaseConfigRunLevel;
10702
      FETCH curTgtReleaseConfigRunLevel INTO recTgtReleaseConfigRunLevel;
10703
      IF curTgtReleaseConfigRunLevel%FOUND THEN
10704
         IF (recTgtReleaseConfigRunLevel.current_run_level IS NULL) OR
10705
            (recTgtReleaseConfigRunLevel.current_run_level <> 2) THEN
10706
            RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
10707
         END IF;
1373 dpurdie 10708
      ELSE
3959 dpurdie 10709
         -- we don't know what the daemon run level is so err on the side of caution
10710
         RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
1373 dpurdie 10711
      END IF;
3959 dpurdie 10712
      CLOSE curTgtReleaseConfigRunLevel;
1373 dpurdie 10713
 
3959 dpurdie 10714
      FETCH curTgtReleaseConfigs INTO recTgtReleaseConfigs;
10715
   END LOOP;
1373 dpurdie 10716
 
3959 dpurdie 10717
   CLOSE curTgtReleaseConfigs;
1373 dpurdie 10718
 
10719
 
3959 dpurdie 10720
   /*-------------------------------------------------------*/
1373 dpurdie 10721
 
3959 dpurdie 10722
   -- Clean target contents
10723
   Clean_Release_Contents ( nTargetRtagId, nUserId );
1373 dpurdie 10724
 
10725
 
3959 dpurdie 10726
   -- Import Released Area Contents
10727
   INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE, PKG_ID, DEPRECATED_STATE )
10728
   SELECT nTargetRtagId AS RTAG_ID,
10729
         rc.PV_ID,
10730
         rc.BASE_VIEW_ID,
10731
         rc.INSERT_STAMP,
10732
         rc.INSERTOR_ID,
10733
         rc.PKG_STATE,
10734
         rc.PKG_ID,
10735
         rc.DEPRECATED_STATE
10736
     FROM RELEASE_CONTENT rc
10737
    WHERE rc.RTAG_ID = nSourceRtagId;
10738
 
10739
 
10740
   -- Import any Pegged Version settings from the source release
10741
   INSERT INTO PEGGED_VERSIONS ( RTAG_ID, PV_ID )
10742
   SELECT nTargetRtagId AS RTAG_ID,
10743
          pegv.PV_ID
10744
     FROM PEGGED_VERSIONS pegv
10745
    WHERE pegv.RTAG_ID = nSourceRtagId;
10746
 
10747
   -- Import any Advisory Ripple settings from the source release
10748
   INSERT INTO ADVISORY_RIPPLE ( RTAG_ID, PV_ID )
10749
   SELECT nTargetRtagId AS RTAG_ID,
10750
          avr.PV_ID
10751
     FROM ADVISORY_RIPPLE avr
10752
    WHERE avr.RTAG_ID = nSourceRtagId;
10753
 
10754
 
10755
   --Import Release Configuration Information
10756
   OPEN curSrcReleaseConfigs;
10757
   FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
10758
 
4308 dpurdie 10759
     WHILE curSrcReleaseConfigs%FOUND
3959 dpurdie 10760
   LOOP
10761
      -- add a daemon to the target release
4308 dpurdie 10762
      PK_BUILDAPI.duplicate_daemon_config( nTargetRtagId, 
10763
                                     recSrcReleaseConfigs.bmcon_id, 
10764
                                     recSrcReleaseConfigs.daemon_hostname, 
10765
                                     recSrcReleaseConfigs.gbe_id, 
10766
                                     recSrcReleaseConfigs.daemon_mode ,
10767
                                     recSrcReleaseConfigs.gbe_buildfilter );
3959 dpurdie 10768
 
10769
      FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
10770
   END LOOP;
10771
 
10772
   CLOSE curSrcReleaseConfigs;
10773
 
10774
 
10775
 
10776
   -- Import Ignore Warning states
10777
   INSERT INTO IGNORE_WARNINGS ( RTAG_ID, PV_ID, DPV_ID )
10778
   SELECT nTargetRtagId AS RTAG_ID,
10779
          igw.PV_ID,
10780
          igw.DPV_ID
10781
     FROM IGNORE_WARNINGS igw
10782
    WHERE igw.rtag_id = nSourceRtagId;
10783
 
10784
 
10785
   /* Log Project Action */
10786
   -- Get Source Location
10787
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sSourceLocation
10788
     FROM RELEASE_TAGS rt,
10789
           PROJECTS pr
10790
    WHERE rt.PROJ_ID = pr.PROJ_ID
10791
      AND rt.RTAG_ID = nSourceRtagId;
10792
 
10793
   -- Get Target Location
10794
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sTargetLocation
10795
     FROM RELEASE_TAGS rt,
10796
           PROJECTS pr
10797
    WHERE rt.PROJ_ID = pr.PROJ_ID
10798
      AND rt.RTAG_ID = nTargetRtagId;
10799
 
10800
   -- Get project id
10801
   SELECT rt.PROJ_ID  INTO  ProjId
10802
     FROM RELEASE_TAGS rt
10803
    WHERE rt.RTAG_ID = nTargetRtagId;
10804
 
10805
   Log_Project_Action ( ProjId, 'import_release_contents', nUserId, 'SOURCE: '|| sSourceLocation ||'   TARGET: '|| sTargetLocation, nTargetRtagId );
10806
END;
10807
 
10808
 
10809
 
1373 dpurdie 10810
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10811
PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER ) IS
1373 dpurdie 10812
 
3959 dpurdie 10813
   RecCount NUMBER;
10814
        rconIdList VARCHAR2(4000);
1373 dpurdie 10815
 
3959 dpurdie 10816
BEGIN
10817
   /*--------------- Business Rules Here -------------------*/
10818
   IF (nRtagId IS NULL)
10819
   THEN
10820
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId  );
10821
   END IF;
1373 dpurdie 10822
 
10823
 
3959 dpurdie 10824
   -- Check if other release references this release
10825
   SELECT COUNT( rl.RTAG_ID ) INTO RecCount
10826
     FROM RELEASE_LINKS rl
10827
    WHERE rl.REF_RTAG_ID = nRtagId;
1373 dpurdie 10828
 
3959 dpurdie 10829
   IF (RecCount > 0) THEN
10830
      RAISE_APPLICATION_ERROR (-20000, 'This release is referenced by other release and cannot be destroyed.'  );
10831
   END IF;
10832
   /*-------------------------------------------------------*/
1373 dpurdie 10833
 
3959 dpurdie 10834
   -- Delete Release links
10835
   DELETE
10836
     FROM RELEASE_LINKS rl
10837
    WHERE rl.RTAG_ID = nRtagId;
10838
 
10839
   -- Delete ignore warning
10840
   DELETE
10841
     FROM IGNORE_WARNINGS iw
10842
    WHERE iw.RTAG_ID = nRtagId;
10843
 
10844
 
10845
   -- Delete Build Order cached calculations
10846
   DELETE
10847
     FROM BUILD_ORDER bo
10848
    WHERE bo.RTAG_ID = nRtagId;
10849
 
10850
 
10851
   -- Delete Notification History
10852
   DELETE
10853
     FROM NOTIFICATION_HISTORY nh
10854
    WHERE nh.RTAG_ID = nRtagId;
10855
 
10856
 
10857
   -- Delete Released Area Contents
10858
   DELETE
10859
     FROM RELEASE_CONTENT rc
10860
    WHERE rc.RTAG_ID = nRtagId;
10861
 
10862
 
10863
   -- Delete Work In Progress Area Contents
10864
   DELETE
10865
     FROM WORK_IN_PROGRESS wip
10866
    WHERE wip.RTAG_ID = nRtagId;
10867
 
10868
 
10869
   -- Delete Pending Area Contents
10870
   DELETE
10871
     FROM PLANNED pl
10872
    WHERE pl.RTAG_ID = nRtagId;
10873
 
10874
   -- Delete Deprecated Packages
10875
   DELETE
10876
     FROM DEPRECATED_PACKAGES dp
10877
    WHERE dp.RTAG_ID = nRtagId;
10878
 
10879
   -- Delete Project Action Log
10880
   DELETE
10881
     FROM PROJECT_ACTION_LOG pal
10882
    WHERE pal.RTAG_ID = nRtagId;
10883
 
10884
   -- Delete Do Not Ripple Contents
10885
   DELETE
10886
     FROM DO_NOT_RIPPLE dnr
10887
    WHERE dnr.RTAG_ID = nRtagId;
10888
 
10889
   -- Delete Dash Board Contents
10890
   DELETE
10891
     FROM DASH_BOARD db
10892
    WHERE db.RTAG_ID = nRtagId;
10893
 
10894
   -- Delete Advisory Ripple Contents
10895
   DELETE
10896
     FROM ADVISORY_RIPPLE adr
10897
    WHERE adr.RTAG_ID = nRtagId;
10898
 
10899
   -- Delete Archive Action Log
10900
   DELETE
10901
     FROM ARCHIVE_ACTION_LOG aal
10902
    WHERE aal.RTAG_ID = nRtagId;
10903
 
10904
   -- Delete Daemons For This Release
10905
   FOR rcon IN (SELECT rc.RCON_ID FROM RELEASE_CONFIG rc WHERE rc.RTAG_ID = nRtagId )
10906
   LOOP
10907
      rconIdList := rconIdList || rcon.RCON_ID || ',';
10908
   END LOOP;
10909
 
10910
   pk_buildapi.DELETE_DAEMON(rconIdList);
10911
 
10912
   -- Delete Release Metrics Contents
10913
   DELETE
10914
     FROM RELEASE_METRICS rm
10915
    WHERE rm.RTAG_ID = nRtagId;
10916
 
10917
   -- Delete Release Configuration Contents
10918
   DELETE
10919
     FROM RELEASE_CONFIG rc
10920
    WHERE rc.RTAG_ID = nRtagId;
10921
 
10922
   -- Delete Pegged Version Contents
10923
   DELETE
10924
     FROM PEGGED_VERSIONS pegv
10925
    WHERE pegv.RTAG_ID = nRtagId;
10926
 
10927
END;
10928
/*-------------------------------------------------------------------------------------------------------*/
10929
FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR )  RETURN NUMBER IS
10930
 
10931
   nSourceParentRtagId NUMBER;
10932
 
10933
BEGIN
10934
   /*--------------- Business Rules Here -------------------*/
10935
   IF (nRtagId IS NULL) OR (cIsBranch IS NULL)
10936
   THEN
10937
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId ||', cIsBranch= '|| cIsBranch );
10938
   END IF;
10939
   /*-------------------------------------------------------*/
10940
 
10941
 
10942
   IF ( nSourceRtagId IS NULL ) THEN
10943
      -- Create new on main branch
10944
      RETURN nRtagId;
10945
 
10946
   ELSE
10947
      -- Create from source rtag_id
10948
 
10949
      -- Find parent of Source RtagId
10950
      SELECT rt.PARENT_RTAG_ID INTO nSourceParentRtagId
10951
        FROM RELEASE_TAGS rt
10952
       WHERE rt.RTAG_ID = nSourceRtagId;
10953
 
10954
      IF (UPPER(cIsBranch) = 'Y') THEN
10955
         RETURN nSourceRtagId;
10956
      ELSE
10957
         IF (nSourceRtagId = nSourceParentRtagId) THEN
10958
            RETURN nRtagId;
10959
         ELSE
10960
            RETURN nSourceParentRtagId;
1373 dpurdie 10961
         END IF;
10962
      END IF;
10963
 
3959 dpurdie 10964
 
10965
   END IF;
10966
 
10967
 
10968
END;
1373 dpurdie 10969
/*-------------------------------------------------------------------------------------------------------*/
10970
 
3959 dpurdie 10971
-- PROCEDURE Get_Next_Version ( nSourceRtagId IN NUMBER,
10972
--                       sNextVersion OUT VARCHAR2,
10973
--                       nNextLifeCycle OUT NUMBER,
10974
--                       nParentRtagId OUT NUMBER,
10975
--                       nProjId IN NUMBER ) IS
10976
--
10977
-- SourceBranchCount NUMBER;
10978
-- ProjRootVersion VARCHAR2(4000);
10979
-- LastLifeCycle NUMBER;
10980
-- ROOT_VERSION_NOT_FOUND NUMBER := -1;
10981
-- SET_PARENT_AS_YOURSELF NUMBER := -1;
10982
--
10983
-- SourceProjId NUMBER;
10984
-- SourceVersion RELEASE_TAGS.RTAG_VERSION%TYPE;
10985
-- SourceLifeCycle RELEASE_TAGS.RTAG_LIFE_CYCLE%TYPE;
10986
--
10987
-- BEGIN
10988
--    /*--------------- Business Rules Here -------------------*/
10989
--    /*-------------------------------------------------------*/
10990
--
10991
--
10992
--    BEGIN
10993
--       -- Get Project root version
10994
--       SELECT rt.RTAG_VERSION INTO ProjRootVersion
10995
--         FROM RELEASE_TAGS rt
10996
--        WHERE rt.PROJ_ID = nProjId
10997
--          AND rt.RTAG_ID = rt.PARENT_RTAG_ID;
10998
--
10999
--       EXCEPTION
11000
--       WHEN NO_DATA_FOUND THEN
11001
--       ProjRootVersion := ROOT_VERSION_NOT_FOUND;
11002
--    END;
11003
--
11004
--
11005
--
11006
--
11007
--    BEGIN
11008
--       -- Get info for source rtagid
11009
--       SELECT rt.PROJ_ID, rt.RTAG_VERSION, rt.RTAG_LIFE_CYCLE  INTO  SourceProjId, SourceVersion, SourceLifeCycle
11010
--         FROM RELEASE_TAGS rt
11011
--        WHERE rt.RTAG_ID = nSourceRtagId;
11012
--
11013
--       EXCEPTION
11014
--       WHEN NO_DATA_FOUND THEN
11015
--       SourceProjId := NULL;
11016
--       SourceVersion := NULL;
11017
--       SourceLifeCycle := NULL;
11018
--    END;
11019
--
11020
--
11021
--    IF (nSourceRtagId IS NULL)  OR  ( SourceProjId != nProjId ) THEN
11022
--
11023
--       /* Blank Release Required  OR  Release imported from other project */
11024
--
11025
--       IF (ProjRootVersion = ROOT_VERSION_NOT_FOUND) THEN
11026
--          /* No Releases found in the project, hence calculate next version available.  */
11027
--
11028
--          -- Set parent rtag
11029
--          nParentRtagId := SET_PARENT_AS_YOURSELF;
11030
--
11031
--
11032
--          BEGIN
11033
--             -- Get Next Available Global Root Version
11034
--             SELECT MAX( TO_NUMBER( rt.RTAG_VERSION ) )  INTO  ProjRootVersion
11035
--               FROM RELEASE_TAGS rt
11036
--              WHERE rt.RTAG_ID = rt.PARENT_RTAG_ID;
11037
--
11038
--             -- Set Next Rtag Version
11039
--             sNextVersion := CAST( ProjRootVersion + 1 AS VARCHAR2 );
11040
--
11041
--             -- Restart Lifecycle
11042
--             nNextLifeCycle := 0;
11043
--
11044
--
11045
--             EXCEPTION
11046
--             WHEN NO_DATA_FOUND THEN
11047
--             -- Release Manager has no releases, hence start from 1
11048
--             sNextVersion := '1';
11049
--             nNextLifeCycle := 0;
11050
--
11051
--          END;
11052
--
11053
--
11054
--
11055
--       ELSE
11056
--          /* Releases found in this project. */
11057
--
11058
--          SELECT qry.RTAG_ID, qry.RTAG_LIFE_CYCLE  INTO nParentRtagId, LastLifeCycle
11059
--            FROM (
11060
--                SELECT rt.RTAG_ID, rt.RTAG_LIFE_CYCLE
11061
--                  FROM RELEASE_TAGS rt
11062
--                 WHERE rt.PROJ_ID = nProjId
11063
--                   AND rt.RTAG_VERSION = ProjRootVersion
11064
--                 ORDER BY rt.RTAG_LIFE_CYCLE DESC
11065
--                  ) qry
11066
--           WHERE ROWNUM = 1;
11067
--
11068
--
11069
--          -- Set same Rtag Version
11070
--          sNextVersion := ProjRootVersion;
11071
--
11072
--          -- Increase Lifecycle
11073
--          nNextLifeCycle := LastLifeCycle + 1;
11074
--
11075
--       END IF;
11076
--
11077
--
11078
--
11079
--    ELSE
11080
--       /* Create Release From other release within this project */
11081
--
11082
--       -- Set parent id
11083
--       nParentRtagId := nSourceRtagId;
11084
--
11085
--
11086
--       -- Get number of source branches
11087
--       SELECT COUNT(rt.RTAG_ID) INTO SourceBranchCount
11088
--         FROM RELEASE_TAGS rt
11089
--        WHERE rt.PROJ_ID = nProjId
11090
--          AND rt.PARENT_RTAG_ID = nSourceRtagId;
11091
--
11092
--
11093
--       IF SourceBranchCount = 0 THEN
11094
--          /* Release is Head (i.e. Tip on its branch ) */
11095
--
11096
--          -- Set Next Rtag Version
11097
--          sNextVersion := SourceVersion;
11098
--
11099
--          -- Increase Lifecycle
11100
--          nNextLifeCycle := SourceLifeCycle + 1;
11101
--
11102
--
11103
--       ELSIF SourceBranchCount = 1 THEN
11104
--          /* Release IS NOT Head, but can be branched */
11105
--
11106
--          -- Set Next Rtag Version
11107
--          sNextVersion := SourceVersion ||'.'|| SourceLifeCycle;
11108
--
11109
--          -- Reset Lifecycle to 1
11110
--          nNextLifeCycle := 1;
11111
--
11112
--
11113
--       ELSE
11114
--          -- Limit of two branches is reached
11115
--          RAISE_APPLICATION_ERROR (-20000, 'This release is already branched and cannot be branched again. ');
11116
--
11117
--       END IF;
11118
--
11119
--
11120
--
11121
--
11122
--
11123
--
11124
--    END IF;
11125
--
11126
--
11127
-- END;
11128
 
11129
/*-------------------------------------------------------------------------------------------------------*/
11130
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
11131
 
11132
   IsBaseView CHAR(1);
11133
 
11134
BEGIN
11135
 
11136
   -- Check if the view is BASE VIEW
11137
   SELECT vi.BASE_VIEW INTO IsBaseView
11138
     FROM VIEWS vi
11139
    WHERE vi.VIEW_ID = ViewId;
11140
 
5172 dpurdie 11141
   IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 11142
      -- Get Base view content
11143
      OPEN RecordSet FOR
11144
      SELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,
11145
            rel.deprecated_state,
11146
            pv.pv_id,
11147
            pkg.pkg_name,
11148
            pv.pkg_version,
11149
            pv.dlocked,
11150
            pv.pv_description,
11151
            pv.BUILD_TYPE
11152
        FROM release_content rel,
11153
             packages pkg,
11154
             package_versions pv
11155
       WHERE pv.pkg_id = pkg.pkg_id
11156
         AND rel.pv_id = pv.pv_id
11157
         AND rel.BASE_VIEW_ID = ViewId
11158
         AND rel.RTAG_ID = RtagId
11159
       ORDER BY UPPER(pkg.PKG_NAME);
11160
 
11161
   ELSE
11162
 
11163
       -- Get non base view content
11164
      OPEN RecordSet FOR
11165
      SELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,
11166
            rel.deprecated_state,
11167
            pv.pv_id,
11168
            pkg.pkg_name,
11169
            pv.pkg_version,
11170
            pv.dlocked,
11171
            pv.pv_description,
11172
            pv.BUILD_TYPE
11173
        FROM release_content rel,
11174
             packages pkg,
11175
             package_versions pv,
11176
            VIEW_DEF vd
11177
       WHERE pv.pkg_id = pkg.pkg_id
11178
         AND rel.pv_id = pv.pv_id
11179
         AND vd.VIEW_ID = ViewId
11180
         AND vd.PKG_ID = pv.PKG_ID
11181
         AND rel.RTAG_ID = RtagId
11182
       ORDER BY UPPER(pkg.PKG_NAME);
11183
 
11184
   END IF;
11185
 
11186
 
11187
 
11188
 
11189
END;
11190
/*-------------------------------------------------------------------------------------------------------*/
4585 dpurdie 11191
  -- Add or Replace a package to the specified release
3959 dpurdie 11192
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
11193
   ReleaseLocation VARCHAR2(4000);
11194
   nPkgId NUMBER;
11195
   sVExt VARCHAR2(4000);
11196
   IsPatch PACKAGE_VERSIONS.IS_PATCH%TYPE := 'N';
5172 dpurdie 11197
   default_pegged CHAR := 'N';
11198
   default_advisory_ripple CHAR := 'N';
3959 dpurdie 11199
 
11200
   -- Find package for replacement
11201
   CURSOR curReplacePkg IS
11202
    SELECT pv.PV_ID
11203
     FROM RELEASE_CONTENT rc,
11204
           PACKAGE_VERSIONS pv
11205
    WHERE rc.PV_ID = pv.PV_ID
11206
      AND rc.RTAG_ID = RtagId
11207
      AND pv.PKG_ID = nPkgId
11208
      AND NVL( pv.V_EXT, 'LINK_A_NULL' ) = NVL( sVExt, 'LINK_A_NULL' );
11209
    recReplacePkg curReplacePkg%ROWTYPE;
11210
 
11211
BEGIN
11212
   -- Get is_patch, pkg_id and v_ext
5172 dpurdie 11213
   SELECT pv.IS_PATCH, pv.PKG_ID, pv.V_EXT 
11214
     INTO IsPatch, nPkgId, sVExt
3959 dpurdie 11215
     FROM PACKAGE_VERSIONS pv
11216
    WHERE pv.PV_ID = newPvId;
11217
 
11218
   -- Never put patch in relesed area
11219
   IF (IsPatch != 'Y') OR (IsPatch IS NULL) THEN
11220
 
11221
      -- Try to get a package to be replaced with this new one.
11222
      -- Use unique constraint of PKG_ID and V_EXT
11223
      OPEN curReplacePkg;
11224
       FETCH curReplacePkg INTO recReplacePkg;
11225
 
11226
       IF curReplacePkg%FOUND THEN
11227
         -- Replace package
11228
         REPLACE_PACKAGE ( newPvId, recReplacePkg.PV_ID, RtagId, UserId );
11229
 
11230
      ELSE
11231
         -- Add new package
11232
         INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )
11233
         VALUES( RtagId, newPvId, ViewId, Ora_Sysdate, UserId, 0);
5172 dpurdie 11234
 
11235
        -- Insert default package flags
11236
        -- Get Package Level defaults
11237
 
11238
        SELECT pkg.default_pegged, pkg.DEFAULT_ADVISORY_RIPPLE 
11239
         INTO  default_pegged, default_advisory_ripple
11240
         FROM  PACKAGES pkg
11241
        WHERE  pkg.PKG_ID = nPkgId; 
3959 dpurdie 11242
 
5172 dpurdie 11243
        -- Apply to the newly inserted package
11244
        IF default_pegged = 'Y' THEN
11245
          INSERT INTO PEGGED_VERSIONS ( RTAG_ID, PV_ID ) VALUES (RtagId, newPvId);
11246
          -- Log_Action ( newPvId, 'action', UserId, 'Set default package peg' );
11247
        END IF;
11248
 
11249
        IF default_advisory_ripple = 'Y' THEN
11250
          INSERT INTO ADVISORY_RIPPLE ( RTAG_ID, PV_ID ) VALUES (RtagId, newPvId);
11251
          -- Log_Action ( newPvId, 'action', UserId, 'Set default advisory ripple' );
11252
        END IF;
3959 dpurdie 11253
 
5172 dpurdie 11254
        -- Mark Release as chnaged
11255
        SET_RELEASE_MODIFIED(RtagId);
11256
        RUN_POST_ACTIONS(newPvId, RtagId);
11257
 
3959 dpurdie 11258
          /* LOG ACTION */
11259
         SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11260
           FROM PROJECTS proj,
11261
                 RELEASE_TAGS rt
11262
          WHERE rt.PROJ_ID = proj.PROJ_ID
11263
            AND rt.RTAG_ID = RtagId;
11264
 
11265
         Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );
11266
 
1373 dpurdie 11267
      END IF;
3959 dpurdie 11268
      CLOSE curReplacePkg;
11269
   END IF;
5172 dpurdie 11270
END;
3959 dpurdie 11271
 
1373 dpurdie 11272
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11273
PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 11274
 
3959 dpurdie 11275
   ReleaseLocation VARCHAR2(4000);
11276
   sPkgVersion VARCHAR2(4000);
5172 dpurdie 11277
   nSdkTag NUMBER;
3959 dpurdie 11278
BEGIN
5172 dpurdie 11279
   -- Trap SDK Replacement
11280
   -- This is a last ditch check. The application should not allow this condition to happen
11281
      SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
11282
      WHERE rtag_id = RtagId
11283
       AND pv_id = oldPvId;
11284
 
11285
     If nSdkTag IS NOT NULL  THEN
11286
       raise_application_error (-20000, 'Attempt to replace a package provided by an SDK.');
11287
     END IF;
3959 dpurdie 11288
 
11289
   -- Replace Package
11290
    UPDATE RELEASE_CONTENT
11291
       SET pv_id = newPvId,
11292
           insert_stamp = Ora_Sysdate,
11293
           insertor_id = UserId,
11294
         product_state = NULL
11295
     WHERE rtag_id = RtagId
11296
       AND pv_id = oldPvId;
11297
 
11298
   -- update the pegging table
11299
   UPDATE PEGGED_VERSIONS
11300
      SET pv_id = newPvId
11301
     WHERE rtag_id = RtagId
11302
       AND pv_id = oldPvId;
11303
 
11304
   -- update the advisory_ripple table
11305
   UPDATE ADVISORY_RIPPLE
11306
      SET pv_id = newPvId
11307
     WHERE rtag_id = RtagId
11308
       AND pv_id = oldPvId;
11309
 
11310
    /* LOG ACTION */
11311
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11312
     FROM PROJECTS proj,
11313
           RELEASE_TAGS rt
11314
    WHERE rt.PROJ_ID = proj.PROJ_ID
11315
      AND rt.RTAG_ID = RtagId;
11316
 
11317
   SELECT pv.PKG_VERSION INTO sPkgVersion
11318
     FROM PACKAGE_VERSIONS pv
11319
    WHERE pv.PV_ID = newPvId;
11320
 
5172 dpurdie 11321
   SET_RELEASE_MODIFIED(RtagId);
3959 dpurdie 11322
   Log_Action ( oldPvId, 'replaced_with', UserId, 'Replacing with: '|| sPkgVersion ||' at '|| ReleaseLocation );
11323
   Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );
11324
 
11325
END;
11326
/*-------------------------------------------------------------------------------------------------------*/
11327
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
11328
   ReleaseLocation VARCHAR2(4000);
5172 dpurdie 11329
   nSdkTag NUMBER;
3959 dpurdie 11330
BEGIN
5172 dpurdie 11331
   -- Trap SDK Package Deletion
11332
   -- This is a last ditch check. The application should not allow this condition to happen
11333
      SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
11334
      WHERE rtag_id = RtagId
11335
       AND pv_id = PvId;
11336
 
11337
     If nSdkTag IS NOT NULL  THEN
11338
       raise_application_error (-20000, 'Attempt to delete a package provided by an SDK.');
11339
     END IF;
3959 dpurdie 11340
 
11341
   -- Delete old package
11342
   DELETE
11343
     FROM RELEASE_CONTENT rc
11344
    WHERE rc.PV_ID = PvId
11345
      AND rc.RTAG_ID = RtagId;
11346
 
11347
 
11348
   /* LOG ACTION */
11349
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11350
     FROM PROJECTS proj,
11351
          RELEASE_TAGS rt
11352
    WHERE rt.PROJ_ID = proj.PROJ_ID
11353
      AND rt.RTAG_ID = RtagId;
11354
 
11355
   Log_Action ( PvId, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );
11356
 
11357
 
11358
END;
11359
/*-------------------------------------------------------------------------------------------------------*/
11360
PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
11361
   ReleaseLocation VARCHAR2(4000);
11362
 
11363
   CURSOR curMatchingPackage IS
11364
    SELECT mpv.PV_ID
11365
     FROM RELEASE_CONTENT rc,
11366
           PACKAGE_VERSIONS mpv,
11367
         PACKAGE_VERSIONS pv
11368
    WHERE rc.PV_ID = mpv.PV_ID
11369
      AND rc.RTAG_ID = RtagId
11370
      AND pv.PV_ID = PvId
11371
      AND pv.PKG_ID = mpv.PKG_ID
11372
      AND NVL( pv.V_EXT, '|LINK_A_NULL|' ) = NVL( mpv.V_EXT, '|LINK_A_NULL|' );
11373
    recMatchingPackage curMatchingPackage%ROWTYPE;
11374
 
11375
BEGIN
11376
 
11377
   OPEN curMatchingPackage;
11378
    FETCH curMatchingPackage INTO recMatchingPackage;
11379
 
11380
    IF curMatchingPackage%FOUND THEN
11381
      -- Delete old package
11382
      DELETE
11383
        FROM RELEASE_CONTENT rc
11384
       WHERE rc.PV_ID = recMatchingPackage.PV_ID
11385
         AND rc.RTAG_ID = RtagId;
11386
 
11387
 
11388
      /* LOG ACTION */
11389
      SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11390
        FROM PROJECTS proj,
11391
              RELEASE_TAGS rt
11392
       WHERE rt.PROJ_ID = proj.PROJ_ID
11393
         AND rt.RTAG_ID = RtagId;
11394
 
11395
      Log_Action ( recMatchingPackage.PV_ID, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );
11396
 
11397
   END IF;
11398
 
11399
 
11400
   CLOSE curMatchingPackage;
11401
 
11402
 
11403
 
11404
 
11405
END;
11406
/*-------------------------------------------------------------------------------------------------------*/
11407
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
11408
 
11409
   ReturnValue NUMBER;
11410
 
11411
BEGIN
11412
   SELECT rc.BASE_VIEW_ID INTO ReturnValue
11413
     FROM RELEASE_CONTENT rc
11414
    WHERE rc.RTAG_ID = RtagId
11415
      AND rc.PV_ID = PvId;
11416
 
11417
   RETURN ReturnValue;
11418
END;
11419
/*-------------------------------------------------------------------------------------------------------*/
11420
PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER ) IS
11421
 
11422
BEGIN
11423
   -- Reset Ignore warnings up-the-tree
11424
   RESET_IGNORE_WARNINGS ( TO_CHAR(PvId), RtagId );
11425
 
11426
   -- Refresh Package states
11427
   TOUCH_RELEASE ( RtagId );
11428
 
11429
END;
11430
/*-------------------------------------------------------------------------------------------------------*/
11431
PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER ) IS
11432
   CURSOR curReleases IS
11433
    SELECT rc.RTAG_ID
11434
     FROM RELEASE_CONTENT rc
11435
    WHERE rc.PV_ID = PvId;
11436
    recReleases curReleases%ROWTYPE;
11437
 
11438
BEGIN
11439
 
11440
   OPEN curReleases;
11441
    FETCH curReleases INTO recReleases;
11442
 
11443
   WHILE curReleases%FOUND
11444
   LOOP
11445
 
11446
      RUN_POST_ACTIONS ( PvId, recReleases.RTAG_ID );
11447
 
11448
      FETCH curReleases INTO recReleases;
11449
   END LOOP;
11450
 
11451
   CLOSE curReleases;
11452
 
11453
END;
11454
/*-------------------------------------------------------------------------------------------------------*/
11455
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
11456
 
11457
BEGIN
11458
 
11459
   UPDATE RELEASE_CONTENT rc SET
11460
   rc.BASE_VIEW_ID = NewViewId
11461
   WHERE rc.PV_ID = PvId
11462
     AND rc.RTAG_ID = RtagId;
11463
 
11464
END;
11465
/*-------------------------------------------------------------------------------------------------------*/
11466
PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 ) IS
11467
 
11468
   RowCount NUMBER;
11469
 
11470
 
11471
   CURSOR curPackageClash IS
11472
   SELECT pkg.PKG_NAME,
11473
         er.*
11474
     FROM (
11475
 
11476
           /* Get existing referenced packages */
11477
         SELECT pv.PKG_ID,
11478
                pv.V_EXT
11479
           FROM RELEASE_LINKS rl,
11480
                 RELEASE_CONTENT rc,
11481
                 PACKAGE_VERSIONS pv
11482
          WHERE rl.RTAG_ID = nRtagId
11483
            AND rl.REF_RTAG_ID = rc.RTAG_ID
11484
            AND rc.PV_ID = pv.PV_ID
11485
 
11486
            ) er,
11487
         (
11488
 
11489
         /* Get current reference packages */
11490
         SELECT pv.PKG_ID,
11491
                pv.V_EXT
11492
           FROM RELEASE_CONTENT rc,
11493
                 PACKAGE_VERSIONS pv
11494
          WHERE rc.RTAG_ID = nRefRtagId
11495
            AND rc.PV_ID = pv.PV_ID
11496
 
11497
         ) cr,
11498
         PACKAGES PKG
11499
    WHERE er.PKG_ID = cr.PKG_ID
11500
      AND NVL(er.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
11501
      AND er.PKG_ID = pkg.PKG_ID;
11502
 
11503
   recPackageClash curPackageClash%ROWTYPE;
11504
 
11505
BEGIN
11506
   /*--------------- Business Rules Here -------------------*/
11507
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
11508
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
11509
   END IF;
11510
 
11511
   IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THEN
11512
      RAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );
11513
   END IF;
11514
   /*-------------------------------------------------------*/
11515
   ProblemString := NULL;
11516
 
11517
 
11518
   -- Check if release already has references
11519
   SELECT COUNT(rl.RTAG_ID)  INTO  RowCount
11520
     FROM RELEASE_LINKS rl
11521
    WHERE rl.RTAG_ID = nRtagId;
11522
 
11523
 
11524
   IF RowCount > 0 THEN
11525
      -- Found existing references
11526
 
11527
      -- Make sure there is no package clashes
11528
      OPEN curPackageClash;
11529
       FETCH curPackageClash INTO recPackageClash;
11530
 
11531
      IF curPackageClash%FOUND THEN
11532
 
11533
         ProblemString := ProblemString ||'Following is partial list of package already referenced from other release:'|| UTL_TCP.CRLF;
11534
 
11535
         WHILE curPackageClash%FOUND
11536
         LOOP
11537
            EXIT WHEN LENGTH( ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT  || UTL_TCP.CRLF ) > 200;   -- Do not allow variable overflow
11538
 
11539
            ProblemString := ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT  || UTL_TCP.CRLF;
11540
 
11541
            FETCH curPackageClash INTO recPackageClash;
11542
         END LOOP;
11543
 
1373 dpurdie 11544
      END IF;
11545
 
3959 dpurdie 11546
      CLOSE curPackageClash;
11547
 
11548
 
11549
   ELSE
11550
      -- No references found, hence reference a release
11551
 
11552
 
11553
      -- Remove exising package from this release to be referenced
11554
      REMOVE_RELEASE_REFERENCE ( nRtagId, nRefRtagId);
11555
 
11556
 
11557
      -- Add new linked packages to release
11558
      INSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE)
11559
      SELECT nRtagId,
11560
            rc.PV_ID,
11561
            rc.BASE_VIEW_ID,
11562
            rc.INSERT_STAMP,
11563
            rc.INSERTOR_ID,
11564
            rc.PKG_STATE
11565
        FROM RELEASE_CONTENT rc
11566
       WHERE rc.RTAG_ID = nRefRtagId;
11567
 
11568
 
11569
 
11570
      -- Copy ignore warnings for referenced packages
11571
      INSERT INTO IGNORE_WARNINGS iw (RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE)
11572
      SELECT nRtagId,
11573
            iw.PV_ID,
11574
            iw.DPV_ID,
11575
            iw.IS_PATCH_IGNORE
11576
        FROM IGNORE_WARNINGS iw,
11577
              RELEASE_CONTENT rc
11578
       WHERE iw.RTAG_ID = rc.RTAG_ID
11579
         AND iw.PV_ID = rc.PV_ID
11580
         AND rc.RTAG_ID = nRefRtagId;
11581
 
11582
 
11583
 
11584
      -- Reference release
11585
      INSERT INTO RELEASE_LINKS (RTAG_ID, REF_RTAG_ID)
11586
      VALUES ( nRtagId, nRefRtagId );
11587
 
11588
 
11589
      -- Refresh Package states
11590
      TOUCH_RELEASE ( nRtagId );
11591
 
11592
   END IF;
11593
 
11594
 
11595
END;
1373 dpurdie 11596
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11597
PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER ) IS
1373 dpurdie 11598
 
3959 dpurdie 11599
 
11600
BEGIN
11601
   /*--------------- Business Rules Here -------------------*/
11602
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
11603
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
11604
   END IF;
11605
 
11606
   IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THEN
11607
      RAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );
11608
   END IF;
11609
 
11610
   /*-------------------------------------------------------*/
11611
 
11612
 
11613
   -- Remove ignore warnings for those packages who use referenced packages
11614
   DELETE FROM IGNORE_WARNINGS iw
11615
    WHERE iw.RTAG_ID = nRtagId
11616
      AND iw.DPV_ID IN (
11617
                        SELECT dep.DPV_ID
11618
                       FROM (
11619
 
11620
                           /* Get referenced packages */
11621
                           SELECT pv.PKG_ID,
11622
                                  pv.V_EXT
11623
                             FROM RELEASE_CONTENT rc,
11624
                                   PACKAGE_VERSIONS pv
11625
                            WHERE rc.RTAG_ID = nRefRtagId
11626
                              AND rc.PV_ID = pv.PV_ID
11627
 
11628
                           ) cr,
11629
                           (
11630
 
11631
                           /* Get all dependencies for current release */
11632
                           SELECT DISTINCT
11633
                                 pv.PKG_ID,
11634
                                 pv.V_EXT,
11635
                                 dep.DPV_ID
11636
                             FROM RELEASE_CONTENT rc,
11637
                                 PACKAGE_DEPENDENCIES dep,
11638
                                 PACKAGE_VERSIONS pv
11639
                            WHERE rc.RTAG_ID = nRtagId
11640
                              AND rc.PV_ID = dep.PV_ID
11641
                              AND dep.PV_ID = pv.PV_ID
11642
 
11643
                           ) dep
11644
                      WHERE dep.PKG_ID = cr.PKG_ID
11645
                        AND NVL(dep.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
11646
                     );
11647
 
11648
 
11649
 
11650
 
11651
   -- Remove ignore warnings for those package which are going to be replaced with the reference
11652
   DELETE FROM IGNORE_WARNINGS iw
11653
    WHERE iw.RTAG_ID = nRtagId
11654
      AND iw.PV_ID IN (
11655
                  SELECT pv.PV_ID
11656
                    FROM (
11657
 
11658
                        /* Get referenced packages */
11659
                        SELECT pv.PKG_ID,
11660
                               pv.V_EXT
11661
                          FROM RELEASE_CONTENT rc,
11662
                                PACKAGE_VERSIONS pv
11663
                         WHERE rc.RTAG_ID = nRefRtagId
11664
                           AND rc.PV_ID = pv.PV_ID
11665
 
11666
                        ) cr,
11667
                        RELEASE_CONTENT rc,
11668
                        PACKAGE_VERSIONS pv
11669
                   WHERE pv.PKG_ID = cr.PKG_ID
11670
                     AND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
11671
                     AND rc.RTAG_ID = nRtagId
11672
                     AND rc.PV_ID = pv.PV_ID
11673
                  );
11674
 
11675
 
11676
 
11677
 
11678
 
11679
   -- Remove matching packages from release
11680
   DELETE FROM RELEASE_CONTENT rc
11681
    WHERE rc.RTAG_ID = nRtagId
11682
      AND rc.PV_ID IN (
11683
                  SELECT pv.PV_ID
11684
                    FROM (
11685
 
11686
                        /* Get referenced packages */
11687
                        SELECT pv.PKG_ID,
11688
                               pv.V_EXT
11689
                          FROM RELEASE_CONTENT rc,
11690
                                PACKAGE_VERSIONS pv
11691
                         WHERE rc.RTAG_ID = nRefRtagId
11692
                           AND rc.PV_ID = pv.PV_ID
11693
 
11694
                        ) cr,
11695
                        RELEASE_CONTENT rc,
11696
                        PACKAGE_VERSIONS pv
11697
                   WHERE pv.PKG_ID = cr.PKG_ID
11698
                     AND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
11699
                     AND rc.RTAG_ID = nRtagId
11700
                     AND rc.PV_ID = pv.PV_ID
11701
                  );
11702
 
11703
 
11704
 
11705
 
11706
 
11707
   -- Remove Reference release
11708
   DELETE
11709
     FROM RELEASE_LINKS rl
11710
    WHERE rl.RTAG_ID = nRtagId
11711
      AND rl.REF_RTAG_ID = nRefRtagId;
11712
 
11713
 
11714
   -- Refresh Package states
11715
   TOUCH_RELEASE ( nRtagId );
11716
 
11717
 
11718
END;
11719
/*-------------------------------------------------------------------------------------------------------*/
11720
PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR ) IS
11721
 
11722
   cReleaseMode CHAR(1);
11723
   cPvMode CHAR(1);
11724
 
11725
BEGIN
11726
 
11727
   -- Get Release Mode
11728
   SELECT rt.OFFICIAL INTO cReleaseMode
11729
     FROM RELEASE_TAGS rt
11730
    WHERE rt.RTAG_ID = RtagId;
11731
 
11732
 
11733
   -- Get Package Mode
11734
   SELECT pv.DLOCKED INTO cPvMode
11735
     FROM PACKAGE_VERSIONS pv
11736
    WHERE pv.PV_ID = PvId;
11737
 
11738
   -- Only check if package is locked
11739
   IF (cPvMode = 'Y') THEN
11740
 
11741
      IF (cReleaseMode != 'N') AND (Permission != 'Y')
1373 dpurdie 11742
      THEN
3959 dpurdie 11743
         RAISE_APPLICATION_ERROR (-20000, 'Cannot add package to this release. Release needs to be in Open Mode.' );
11744
 
1373 dpurdie 11745
      END IF;
11746
 
3959 dpurdie 11747
   END IF;
5172 dpurdie 11748
END;
3959 dpurdie 11749
 
5172 dpurdie 11750
/*-----------------------------------------------------------------------------*/
11751
PROCEDURE SET_RELEASE_MODIFIED (nRtagId IN NUMBER ) IS
11752
--
11753
--  Set flags to indicate that the specified release has changed for the
11754
--  purposes of building. (Not every single change)
11755
--
11756
--  Used by Build System to streamline build decisions
11757
--    Bump a sequence number
11758
--    Set a TimeStamp
11759
--
11760
--  Care must be taken to avoid concuency issues
11761
--  Must Insert or Update in a safe manner
11762
--
11763
--  This should be called whenever the package_versions in the release have changed in such
11764
--  a manner that the build daemons should examine the release. This includes:
11765
--   - Packages added, removed and version updated
11766
--   - Packages build status changed (re-included in the release)
11767
--   - Packages made Pending Build
11768
--   - Daemon instruction add/updated (Test Build)
11769
--
11770
--  Note: Not yet used (10-Oct-2014)
11771
--        Uses SEQ_RELEASE_MOD and Table: RELEASE_MODIFIED
11772
BEGIN
11773
 LOOP
11774
  BEGIN
11775
    MERGE INTO RELEASE_MODIFIED USING dual ON ( RTAG_ID=nRtagId )
11776
      WHEN MATCHED THEN UPDATE SET SEQNUM=SEQ_RELEASE_MOD.NEXTVAL,TIMESTAMP=CURRENT_TIMESTAMP 
11777
      WHEN NOT MATCHED THEN INSERT (RTAG_ID,TIMESTAMP,SEQNUM) 
11778
        VALUES (nRtagId, CURRENT_TIMESTAMP,SEQ_RELEASE_MOD.NEXTVAL );
11779
    EXIT; -- success? -> exit loop
11780
  EXCEPTION
11781
    WHEN NO_DATA_FOUND THEN -- the entry was concurrently deleted
11782
      NULL; -- exception? -> no op, i.e. continue looping
11783
    WHEN DUP_VAL_ON_INDEX THEN -- an entry was concurrently inserted
11784
      NULL; -- exception? -> no op, i.e. continue looping
11785
  END;
11786
 END LOOP;
11787
END;
3959 dpurdie 11788
 
5172 dpurdie 11789
/*-------------------------------------------------------------------------------------------------------*/
11790
--  ADD_RELEASE_SDK
11791
--  ADD an SDK Reference to a Release
11792
--  Args: nRtagId           - RTAG_ID of Release to Process
11793
--        nSdktagId         - SDKTAG_ID of SDK to add to Release
11794
--        nUserId           - User IF of user performing the action
11795
--        bDelete           - Delete conflicting (non sdk) packages from the release 0:False
11796
--        nInsertCount      - Returns: Number of Packages inserted: -1 is an error
11797
--        curReturn         - Returns: On error a table of PV_IDs of packages causing the conflict
11798
--
11799
PROCEDURE ADD_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER, nUserId IN NUMBER, bDelete IN NUMBER, nInsertCount OUT NUMBER, curReturn OUT typeCur )IS
11800
 
11801
  vartbl RELMGR_NUMBER_TAB_T := RELMGR_NUMBER_TAB_T();
11802
  ii NUMBER;
11803
  view_id NUMBER;
11804
 
11805
    -- Detect clashing packages
11806
    -- Packages provided by the SDK that are present in the Release
11807
    CURSOR curPackageClash
11808
    IS
11809
      SELECT release.pvid
11810
      FROM
11811
        -- Alias and pvid from SDK
11812
        (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
11813
          pv.PV_ID                  AS pvid
11814
        FROM SDK_CONTENT sc, PACKAGE_VERSIONS pv
11815
        WHERE sc.SDKTAG_ID  = nSdktagId
11816
        AND sc.SDKPKG_STATE = 'E'
11817
        AND pv.PV_ID        = sc.PV_ID
11818
        ) sdk,
11819
      -- Alias and pvid from Release
11820
      (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
11821
        pv.PV_ID                  AS pvid
11822
      FROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pv
11823
      WHERE rc.rtag_id = nRtagId
11824
      AND rc.PV_ID    = pv.PV_ID
11825
      ) RELEASE
11826
    WHERE sdk.pkgAlias = release.pkgAlias;
11827
 
11828
   -- Detect packages in the release that are provided by the SDK
11829
   -- Do not include packages provided by an SDK - these cannot be replaced
11830
       CURSOR curPackageReplacable
11831
    IS
11832
      SELECT release.pvid
11833
      FROM
11834
        -- Alias and pvid from SDK
11835
        (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
11836
                pv.PV_ID                            AS pvid
11837
        FROM SDK_CONTENT sc, PACKAGE_VERSIONS pv
11838
        WHERE sc.SDKTAG_ID    = nSdktagId
11839
          AND sc.SDKPKG_STATE = 'E'
11840
          AND pv.PV_ID        = sc.PV_ID
11841
        ) sdk,
11842
      -- Alias and pvid from Release
11843
      --  Excluding those import by any SDK
11844
      (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
11845
              pv.PV_ID                            AS pvid
11846
       FROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pv
11847
       WHERE rc.rtag_id = nRtagId
11848
         AND rc.PV_ID   = pv.PV_ID
11849
         AND rc.SDKTAG_ID is NULL
11850
      ) RELEASE
11851
    WHERE sdk.pkgAlias = release.pkgAlias;
11852
 
11853
BEGIN
11854
   /*--------------- Business Rules Here -------------------*/
11855
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
11856
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
11857
   END IF;
11858
 
11859
   IF (nSdktagId = 0) OR ( nSdktagId IS NULL ) THEN
11860
      RAISE_APPLICATION_ERROR (-20000, 'nSdktagId is not supplied. [nSdktagId='|| nSdktagId ||']' );
11861
   END IF;
11862
   /*-------------------------------------------------------*/
11863
 
11864
   -- Delete packages from the release if they are provided by the SDK
11865
   -- provided they are not provided by another SDK 
11866
    IF bDelete != 0 THEN
11867
      FOR rdata IN curPackageClash LOOP
11868
        DELETE FROM RELEASE_CONTENT rc
11869
          WHERE rc.RTAG_ID = nRtagId
11870
          AND rc.PV_ID = rdata.pvid;
11871
      END LOOP;
11872
 
11873
      -- Remove exising package from this release to be referenced
11874
      REMOVE_RELEASE_SDK ( nRtagId, nSdktagId);
11875
    END IF;
11876
 
11877
    -- Detect and report package clashes
11878
    -- Packages provided by the SDK that are (still) in the release
11879
    ii := 1;
11880
    FOR rdata IN curPackageClash LOOP
11881
      vartbl.extend;
11882
      --vartbl(ii) := TABLE_PVID(rdata.pvid);
11883
      vartbl(ii) := rdata.pvid;
11884
      ii := ii + 1;
11885
    END LOOP;
11886
    -- Make sure there is no package clashes
11887
 
11888
    IF ii != 1 THEN
11889
      nInsertCount := -1;
11890
      open curReturn for select * from table(vartbl);
11891
      --curReturn := vartbl;
11892
      RETURN;
11893
    END IF;
11894
 
11895
    -- Determine the target view_id
11896
    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;
11897
 
11898
    -- Add SDK exported packages to release
11899
    INSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE, SDKTAG_ID)
11900
    SELECT nRtagId, sc.PV_ID, view_id, sysdate, nUserId, 11, nSdktagId 
11901
        FROM SDK_CONTENT sc
11902
        WHERE sc.SDKTAG_ID = nSdktagId
11903
        AND sc.SDKPKG_STATE = 'E';
11904
    nInsertCount := sql%ROWCOUNT;
11905
 
11906
    -- Refresh Package states
11907
    TOUCH_RELEASE ( nRtagId );
11908
    SET_RELEASE_MODIFIED(nRtagId);
11909
 
3959 dpurdie 11910
END;
11911
 
1373 dpurdie 11912
/*-------------------------------------------------------------------------------------------------------*/
5172 dpurdie 11913
--  Name:   REMOVE_RELEASE_SDK
11914
--  Desc:   Remove an SDK from the specified Release
11915
--          It is not an error to remove an SDK that is not attached to the release
11916
--  Args:   nRtagId         - RTAG_ID of the Release to Process
11917
--          nSdktagId       - SDKTAG_ID to remove
11918
--
11919
PROCEDURE REMOVE_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER ) IS
11920
 
11921
BEGIN
11922
   /*--------------- Business Rules Here -------------------*/
11923
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
11924
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
11925
   END IF;
11926
 
11927
   IF (nSdktagId = 0) OR ( nSdktagId IS NULL ) THEN
11928
      RAISE_APPLICATION_ERROR (-20000, 'nSdktagId is not supplied. [nSdktagId='|| nSdktagId ||']' );
11929
   END IF;
11930
 
11931
   /*-------------------------------------------------------*/
11932
 
11933
   -- Remove matching packages from release
11934
   DELETE FROM RELEASE_CONTENT rc
11935
    WHERE rc.RTAG_ID = nRtagId
11936
      AND rc.SDKTAG_ID = nSdktagId;
11937
 
11938
   -- Refresh Package states
11939
   TOUCH_RELEASE ( nRtagId );
11940
   SET_RELEASE_MODIFIED(nRtagId);
11941
END;
11942
 
11943
--------------------------------------------------------------------------------
11944
--  CAN_ADD_PKG_TO_RELEASE
11945
--  Test if a Package (pvid) can be added to a given release
11946
--  The test will not allwo an exiting package to be replaced IF it is imported via an
11947
--  SDK
11948
--
11949
--  Returns:  0 - Package cannot be replaced
11950
--            1 - Package can be replaced
11951
--            2 - Package will be added
11952
--            
11953
FUNCTION CAN_ADD_PKG_TO_RELEASE ( nRtagId IN NUMBER, nPvid in NUMBER ) RETURN NUMBER IS
11954
 
11955
   sAlias VARCHAR2(4000);
11956
 
11957
    -- Find package for proccessing
11958
    -- Use unique constraint of PKG_ID and V_EXT
11959
   CURSOR curReplacePkg IS
11960
    SELECT pv.PV_ID
11961
     FROM RELEASE_CONTENT rc,
11962
           PACKAGE_VERSIONS pv
11963
    WHERE rc.PV_ID = pv.PV_ID
11964
      AND rc.RTAG_ID = nRtagId
11965
      AND pv.PKG_ID || NVL( pv.V_EXT, 'LINK_A_NULL' ) = sAlias;
11966
 
11967
    recReplacePkg curReplacePkg%ROWTYPE;
11968
    nSdkTag NUMBER;
11969
 
11970
BEGIN
11971
   /*--------------- Business Rules Here -------------------*/
11972
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
11973
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
11974
   END IF;
11975
 
11976
   IF (nPvid = 0) OR ( nPvid IS NULL ) THEN
11977
      RAISE_APPLICATION_ERROR (-20000, 'nPvid is not supplied. [nPvid='|| nPvid ||']' );
11978
   END IF;
11979
 
11980
    -- Find pkg Alias for provided package
11981
   SELECT pv.PKG_ID || NVL( pv.V_EXT, 'LINK_A_NULL' )  
11982
     INTO sAlias
11983
     FROM PACKAGE_VERSIONS pv
11984
    WHERE pv.PV_ID = nPvid;
11985
 
11986
      -- Find Package that may be replaced
11987
      OPEN curReplacePkg;
11988
       FETCH curReplacePkg INTO recReplacePkg;
11989
 
11990
       IF curReplacePkg%FOUND THEN
11991
        SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
11992
         WHERE rtag_id = nRtagId
11993
         AND pv_id = recReplacePkg.PV_ID;
11994
 
11995
        If nSdkTag IS NOT NULL  THEN
11996
          RETURN 0;
11997
        ELSE
11998
          RETURN 1;
11999
        END IF;
12000
      END IF;
12001
 
12002
  -- No package found, so it can be added
12003
  RETURN 2;
12004
 
12005
  EXCEPTION
12006
  WHEN NO_DATA_FOUND THEN
12007
    RAISE_APPLICATION_ERROR (-20000, 'nPvid is not valid. [nPvid='|| nPvid ||']' );
12008
END;
12009
 
12010
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12011
END PK_RELEASE;
4040 dpurdie 12012
 
3959 dpurdie 12013
/
4040 dpurdie 12014
--------------------------------------------------------
12015
--  DDL for Package Body PK_RMAPI
12016
--------------------------------------------------------
12017
 
5172 dpurdie 12018
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_RMAPI" 
3959 dpurdie 12019
IS
12020
 
12021
   /*-------------------------------------------------------------------------------------------------------*/
12022
   FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)
12023
      RETURN typecur
1373 dpurdie 12024
   IS
3959 dpurdie 12025
      npvid     NUMBER  := 0;
12026
      RECORDS   typecur;
1373 dpurdie 12027
   BEGIN
3959 dpurdie 12028
      BEGIN
12029
         -- Get PV_ID --
12030
         SELECT pv.pv_id
12031
           INTO npvid
12032
           FROM PACKAGES pkg, package_versions pv
12033
          WHERE pv.pkg_id = pkg.pkg_id
12034
            AND pkg.pkg_name = pkgname
12035
            AND pv.pkg_version = pkgversion;
12036
      EXCEPTION
12037
         WHEN NO_DATA_FOUND
12038
         THEN
12039
            raise_application_error (-20000, 'Package Not Found!');
12040
            --WHEN OTHERS THEN
12041
                  -- Consider logging the error and then re-raise
12042
            RAISE;
12043
      END;
1373 dpurdie 12044
 
3959 dpurdie 12045
      -- Finally get package dependencies --
12046
      OPEN RECORDS FOR
12047
         SELECT dpv.pv_id, dpkg.pkg_name, dpv.pkg_version
12048
           FROM package_dependencies dep, PACKAGES dpkg, package_versions dpv
12049
          WHERE dep.pv_id = npvid
12050
            AND dpv.pkg_id = dpkg.pkg_id
12051
            AND dpv.pv_id = dep.dpv_id;
12052
 
12053
      RETURN RECORDS;
1373 dpurdie 12054
   END;
12055
 
12056
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12057
   FUNCTION wip_iteration_package (
12058
      projname        VARCHAR2,
12059
      iterationname   VARCHAR2,
12060
      pkgname         VARCHAR2
1373 dpurdie 12061
   )
3959 dpurdie 12062
      RETURN typecur
1373 dpurdie 12063
   IS
3959 dpurdie 12064
      nrtagid   NUMBER  := 0;
12065
      RECORDS   typecur;
1373 dpurdie 12066
   BEGIN
3959 dpurdie 12067
      BEGIN
12068
         -- Get latest rtag_id --
12069
         SELECT rt.rtag_id
12070
           INTO nrtagid
12071
           FROM projects proj, release_tags rt
12072
          WHERE rt.proj_id = proj.proj_id
12073
            AND UPPER (proj.proj_name) = UPPER (projname)
12074
            AND UPPER (rt.rtag_name) = UPPER (iterationname);
1373 dpurdie 12075
 
3959 dpurdie 12076
         IF (nrtagid IS NULL)
12077
         THEN
12078
            raise_application_error (-20000,
12079
                                     'Work In Progress is Not Found!');
12080
         END IF;
12081
      EXCEPTION
12082
         WHEN NO_DATA_FOUND
12083
         THEN
12084
            raise_application_error (-20000,
12085
                                     'Work In Progress is Not Found!');
12086
            RAISE;
12087
      END;
12088
 
12089
      -- Finally get package dependencies --
12090
      OPEN RECORDS FOR
12091
         SELECT pv.pkg_version, pv.dlocked AS is_official, pv.pkg_label,
12092
                pv.src_path
12093
           FROM PACKAGES pkg, package_versions pv, work_in_progress wip
12094
          WHERE pv.pkg_id = pkg.pkg_id
12095
            AND wip.pv_id = pv.pv_id
12096
            AND wip.rtag_id = nrtagid
12097
            AND pkg.pkg_name = pkgname;
12098
 
12099
      RETURN RECORDS;
1373 dpurdie 12100
   END;
12101
 
12102
/*-------------------------------------------------------------------------------------------------------*/
4553 dpurdie 12103
-- Use:
12104
--   Used by the Automated Build System to release a new package
12105
-- Returns:
12106
--    Use application errors to indicate programming errors
12107
--    Use negative return codes to indicate correctable user problems
12108
--    Positive return code is the new PVID of the package
12109
  FUNCTION auto_make_vcsrelease (
3959 dpurdie 12110
      rtagid                   IN   NUMBER,
12111
      pkgname                  IN   VARCHAR2,
12112
      vext                     IN   VARCHAR2,
12113
      newpkgversion            IN   VARCHAR2,
12114
      vcstag                   IN   VARCHAR2,
12115
      dependenciesimportlist   IN   VARCHAR2,
12116
      isrippled                IN   NUMBER,
12117
      username                 IN   VARCHAR2
12118
   )
1373 dpurdie 12119
      RETURN NUMBER
12120
   IS
3959 dpurdie 12121
      pkgid                           NUMBER;
12122
      pvid                            NUMBER                        := 0;
12123
      userid                          NUMBER;
12124
      dlocked                         VARCHAR2 (20)                 := NULL;
12125
      clonefrompvid                   NUMBER;
12126
      ssv_mm                          package_versions.v_mm%TYPE;
12127
      ssv_nmm                         package_versions.v_nmm%TYPE;
12128
      ssv_ext                         package_versions.v_ext%TYPE;
12129
      return_package_not_found        NUMBER                        := -1;
12130
      return_package_already_exists   NUMBER                        := -2;
12131
      return_not_approved             NUMBER                        := -3;
12132
      return_migrated_pkg             NUMBER                        := -4;
4553 dpurdie 12133
      return_svn_path_changed         NUMBER                        := -5;
1373 dpurdie 12134
 
12135
 
3959 dpurdie 12136
      x_vcstypeid                     NUMBER;
12137
      x_tag                           VARCHAR2(32);
12138
      x_label                         VARCHAR2(60);
12139
      x_srcpath                       VARCHAR2(2000);
12140
      p_srcpath                       VARCHAR2(2000);
1373 dpurdie 12141
 
3959 dpurdie 12142
      -- Regular expression constituents
12143
      Token         VARCHAR2(16) := '([^:]+)';  -- a token is anything except a ':' character
12144
      Seperator     VARCHAR2(4)  := '::';       -- tokens will be seperated by '::'
12145
      BOL           VARCHAR2(4)  := '^';
12146
      Anything      VARCHAR2(4)  := '.*';
12147
      ReplaceToken1 VARCHAR2(4)  := '\1';
12148
      ReplaceToken2 VARCHAR2(4)  := '\2';
12149
      ReplaceToken3 VARCHAR2(4)  := '\3';
12150
      iprev_modifier_id               NUMBER;
12151
 
1373 dpurdie 12152
   BEGIN
3959 dpurdie 12153
      /*--------------- Business Rules Here -------------------*/
12154
      IF (rtagid IS NULL)
12155
      THEN
12156
         raise_application_error (-20000, 'RtagId must be supplied.');
12157
      END IF;
1373 dpurdie 12158
 
3959 dpurdie 12159
      IF (pkgname IS NULL)
12160
      THEN
12161
         raise_application_error (-20000, 'PkgName must be supplied.');
12162
      END IF;
1373 dpurdie 12163
 
3959 dpurdie 12164
      IF (newpkgversion IS NULL)
1373 dpurdie 12165
      THEN
3959 dpurdie 12166
         raise_application_error (-20000, 'PkgVersion must be supplied.');
1373 dpurdie 12167
      END IF;
12168
 
3959 dpurdie 12169
      IF (vcstag IS NULL)
1373 dpurdie 12170
      THEN
3959 dpurdie 12171
         raise_application_error (-20000, 'PkgVcsTag must be supplied.');
1373 dpurdie 12172
      END IF;
12173
 
3959 dpurdie 12174
      IF (isrippled IS NULL) OR (isrippled < 0) OR (isrippled > 1)
1373 dpurdie 12175
      THEN
4553 dpurdie 12176
         raise_application_error (-20000, 'IsRippled must be set to 1 (Is rippled build) or 0 (Is planned build).');
1373 dpurdie 12177
      END IF;
12178
 
3959 dpurdie 12179
      IF (username IS NULL)
1373 dpurdie 12180
      THEN
3959 dpurdie 12181
         raise_application_error (-20000, 'UserName must be supplied.');
1373 dpurdie 12182
      END IF;
12183
 
3959 dpurdie 12184
      -- Parse the PkgVcsTag
12185
      -- Sets up
12186
      --   x_tag, x_label, x_srcpath
1373 dpurdie 12187
 
3959 dpurdie 12188
       BEGIN
12189
          -- Extract the first token - this will be the short tag name for the VCS (eg. 'CC', 'SVN', etc)
12190
          x_tag := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Anything, ReplaceToken1);
1373 dpurdie 12191
 
3959 dpurdie 12192
          -- Decode the short tag
12193
          CASE x_tag
12194
             WHEN 'CC' THEN
12195
                -- extract the 2nd and 3rd tokens, those being the source path and label respectively
12196
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
12197
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
1373 dpurdie 12198
 
3959 dpurdie 12199
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
12200
                -- check for that error as well as the obvious zero-length string conditions.
12201
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
12202
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
12203
                END IF;
12204
 
12205
                IF isSVNbyName(pkgname) > 0 THEN
12206
                    -- Don't allow migrated packages to be released from a CC label
12207
                    return return_migrated_pkg;
12208
                END IF;
1373 dpurdie 12209
 
12210
 
3959 dpurdie 12211
             WHEN 'SVN' THEN
12212
                -- extract the 2nd token, that being the subversion tag
12213
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
12214
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
1373 dpurdie 12215
 
3959 dpurdie 12216
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
12217
                -- check for that error as well as the obvious zero-length string conditions.
12218
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
12219
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
12220
                END IF;
12221
 
12222
             WHEN 'UC' THEN
12223
                -- nothing to extract, just assign defaults
12224
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
12225
                x_label   := 'N/A';
12226
             ELSE
12227
                raise_application_error (-20000, 'Unrecognised VCS Tag!');
12228
          END CASE;
12229
       END;
12230
 
12231
      -- Get the VCS_TYPE_ID for the version control system.
12232
      BEGIN
12233
         SELECT vt.vcs_type_id
12234
         INTO x_vcstypeid
12235
         FROM VCS_TYPE vt
12236
         WHERE vt.tag = x_tag;
12237
         EXCEPTION
12238
            WHEN NO_DATA_FOUND THEN
12239
               raise_application_error (-20000, 'Database is missing a version control system tag (' || x_tag || ')!' );
12240
      END;
12241
 
12242
 
12243
      -- Get user_id
12244
      BEGIN
12245
         SELECT usr.user_id
12246
           INTO userid
12247
           FROM users usr
12248
          WHERE UPPER (usr.user_name) = UPPER (username)
12249
            AND usr.is_disabled IS NULL;
12250
      EXCEPTION
12251
         WHEN NO_DATA_FOUND
1373 dpurdie 12252
         THEN
4585 dpurdie 12253
            raise_application_error (-20000, 'UserName: ' || username || ' is not valid or disabled.' );
3959 dpurdie 12254
      END;
1373 dpurdie 12255
 
3959 dpurdie 12256
/*-------------------------------------------------------*/
1373 dpurdie 12257
 
3959 dpurdie 12258
      -- Create package if necessary
12259
      IF isrippled = 1
1373 dpurdie 12260
      THEN
3959 dpurdie 12261
         /* Ripple Build */
12262
         BEGIN
12263
            -- Make sure that package does not exist
12264
            SELECT pv.pv_id
12265
              INTO pvid
12266
              FROM package_versions pv, PACKAGES pkg
12267
             WHERE pv.pkg_id = pkg.pkg_id
12268
               AND pkg.pkg_name = pkgname
12269
               AND pv.pkg_version = newpkgversion;
12270
         EXCEPTION
12271
            WHEN NO_DATA_FOUND
12272
            THEN
12273
               pvid := 0;
12274
         END;
12275
 
12276
         IF (pvid = 0)
1373 dpurdie 12277
         THEN
3959 dpurdie 12278
            -- Split current version in parts
12279
            split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
12280
 
12281
            BEGIN
12282
               -- Find package to be replaced with the ripple package
12283
               IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
12284
               THEN
12285
                  SELECT pv.pv_id, pv.src_path
12286
                    INTO clonefrompvid, p_srcpath
12287
                    FROM PACKAGES pkg, package_versions pv,
12288
                         release_content rc
12289
                   WHERE rc.pv_id = pv.pv_id
12290
                     AND pv.pkg_id = pkg.pkg_id
12291
                     AND rc.rtag_id = rtagid
12292
                     AND pkg.pkg_name = pkgname
12293
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|');
12294
               ELSE
12295
                  SELECT pv.pv_id, pv.src_path
12296
                    INTO clonefrompvid, p_srcpath
12297
                    FROM PACKAGES pkg, package_versions pv,
12298
                         release_content rc
12299
                   WHERE rc.pv_id = pv.pv_id
12300
                     AND pv.pkg_id = pkg.pkg_id
12301
                     AND rc.rtag_id = rtagid
12302
                     AND pkg.pkg_name = pkgname
12303
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
12304
               END IF;
12305
            EXCEPTION
12306
               WHEN NO_DATA_FOUND
12307
               THEN
12308
                  raise_application_error
12309
                                        (-20000,
12310
                                            'Cannot get CloneFromPvId. VExt='
12311
                                         || vext
12312
                                         || ', RtagId='
12313
                                         || rtagid
12314
                                         || ', PkgName='
12315
                                         || pkgname
12316
                                         || ', SSV_EXT='
12317
                                         || ssv_ext
12318
                                        );
12319
            END;
12320
 
12321
            IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
12322
            THEN
12323
               -- Create package
12324
               seed_package_names_versions (pkgname,
12325
                                            newpkgversion,
12326
                                            userid,
12327
                                            pvid,
12328
                                            clonefrompvid
12329
                                           );
12330
            ELSE
4585 dpurdie 12331
               -- Create package (now both the same)
12332
               seed_package_names_versions (pkgname,
3959 dpurdie 12333
                                             newpkgversion,
12334
                                             userid,
12335
                                             pvid,
12336
                                             clonefrompvid
12337
                                            );
12338
            END IF;
12339
 
12340
            -- Update Package reason for release
12341
            UPDATE package_versions pv
12342
               SET pv.comments = 'Rippled Build.',
12343
                   pv.build_type = 'Y'
12344
             WHERE pv.pv_id = pvid;
12345
         ELSE
12346
            -- Package already exists, it was built previously, and has just been re-built again probably due to the
12347
            -- fact that the archive was cleaned of the original build artifacts at some point, and those artifacts
12348
            -- are now needed once more. As such, we need to ensure that a new release note generation occurs so
12349
            -- reset the package_versions[pvid].release_notes_info field to enable that to happen.
12350
            UPDATE package_versions pv
12351
               SET pv.release_notes_info = null,
12352
                   pv.modified_stamp = ora_sysdatetime
12353
             WHERE pv.pv_id = pvid;
12354
 
12355
            --DEVI-066151
12356
            log_action (pvid, 'package_rebuilt', userid, 'Package Re-built...');
12357
 
12358
            RETURN return_package_already_exists;
1373 dpurdie 12359
         END IF;
12360
      ELSE
3959 dpurdie 12361
         /* Auto build from Pending area */
12362
 
12363
         -- Find package in pending area
12364
         BEGIN
12365
            SELECT pv.pv_id, pv.dlocked, pv.src_path
12366
              INTO pvid, dlocked, p_srcpath
12367
              FROM planned pl, package_versions pv, PACKAGES pkg
12368
             WHERE pl.pv_id = pv.pv_id
12369
               AND pv.pkg_id = pkg.pkg_id
12370
               AND pl.rtag_id = rtagid
12371
               AND pkg.pkg_name = pkgname
12372
               AND pv.dlocked = 'A'
12373
               AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|')
12374
               AND rownum = 1
12375
             ORDER BY pv.modified_stamp;
12376
         EXCEPTION
12377
            WHEN NO_DATA_FOUND
12378
            THEN
12379
               pvid := 0;
12380
         END;
12381
 
12382
         IF (pvid = 0)
1373 dpurdie 12383
         THEN
3959 dpurdie 12384
            -- Package does not exist in pending area, hence report it
12385
            RETURN return_package_not_found;
12386
         ELSIF (dlocked != 'A')
1373 dpurdie 12387
         THEN
3959 dpurdie 12388
            -- Package is not approved for autobuild
12389
            RETURN return_not_approved;
1373 dpurdie 12390
         END IF;
12391
 
12392
      END IF;
12393
 
3959 dpurdie 12394
      -- Ensure Source Path does not change
12395
      -- Do not expect the SVN development branch to change
12396
      -- From the previous package
12397
      IF ( x_tag = 'SVN' AND p_srcpath != x_srcpath )
1373 dpurdie 12398
      THEN
4553 dpurdie 12399
        return return_svn_path_changed;
1373 dpurdie 12400
      END IF;
12401
 
3959 dpurdie 12402
      BEGIN
12403
         -- Import Dependencies
12404
         import_dependencies (pvid, dependenciesimportlist, userid);
12405
      END;
1373 dpurdie 12406
 
12407
 
3959 dpurdie 12408
      BEGIN
12409
         -- Split current version in parts
12410
         split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
1373 dpurdie 12411
 
3959 dpurdie 12412
         -- Update Package Details
12413
         UPDATE package_versions pv
12414
            SET pv.pkg_version = newpkgversion,
12415
                pv.v_ext = ssv_ext,
12416
                pv.v_mm = ssv_mm,
12417
                pv.v_nmm = ssv_nmm,
12418
                pv.src_path = x_srcpath,
12419
                pv.pkg_label = x_label,
12420
                pv.vcs_type_id = x_vcstypeid
12421
          WHERE pv.pv_id = pvid;
12422
      EXCEPTION
12423
         WHEN DUP_VAL_ON_INDEX
12424
         THEN
12425
            -- Package already exists, hence cannot be used for ripple build
12426
            RETURN return_package_already_exists;
12427
      END;
12428
 
12429
      -- Update the is_autobuildable
12430
      UPDATE package_versions
12431
         SET is_autobuildable = 'Y'
12432
       WHERE pv_id = pvid;
12433
 
12434
      -- DEVI-063601
12435
      -- For planned builds the modifier_id shouldn't be set to buildadm.
12436
      -- To ensure this the modifier_id is obtained so it can be restored after
12437
      -- the function pk_environment.auto_make_release is called.
12438
      -- This function calls, change_state, which sets the modifier_id to the
12439
      -- specified userid, which for auto builds is buildadm.
12440
      SELECT pv.modifier_id INTO iprev_modifier_id
12441
      FROM package_versions pv WHERE pv.pv_id = pvid;
12442
 
12443
      -- Now release package
12444
      pk_environment.auto_make_release (pvid,
12445
                                        rtagid,
12446
                                        userid,
12447
                                        vext,
12448
                                        ssv_ext,
12449
                                        clonefrompvid
12450
                                       );
12451
 
12452
      -- DEVI-063601
12453
      -- if it is a planned build then restore the modifier_id to the previous modifier
12454
      UPDATE package_versions pv SET pv.modifier_id = iprev_modifier_id
12455
      WHERE pv.pv_id = pvid;
12456
 
12457
      --Now clean the PLANNED_VERSIONS table
12458
      SELECT pkg_id
12459
        INTO pkgid
12460
        FROM PACKAGES
12461
       WHERE pkg_name = pkgname;
12462
 
12463
      DELETE FROM planned_versions
12464
            WHERE pkg_id = pkgid AND pkg_version = newpkgversion;
12465
 
12466
      RETURN pvid;
1373 dpurdie 12467
   END;
12468
 
12469
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12470
   PROCEDURE import_dependencies (
12471
      pvid                     IN   NUMBER,
12472
      dependenciesimportlist   IN   VARCHAR2,
12473
      userid                   IN   NUMBER
12474
   )
1373 dpurdie 12475
   IS
3959 dpurdie 12476
/*
12477
|| DependenciesImportList Format:
12478
|| "pkgA","1.0.0";"pkgB","2.0.0";
12479
||  OR 'pkgA','1.0.0';'pkgB','2.0.0';
12480
*/
12481
      TYPE tdictionary IS TABLE OF VARCHAR2 (4000)
12482
         INDEX BY VARCHAR2 (4000);
12483
 
12484
      seperator         VARCHAR2 (2)           := '||';
12485
      pkgname           VARCHAR2 (4000);
12486
      pkgversion        VARCHAR2 (4000);
12487
      buildtype         VARCHAR2 (50);
12488
      pkgid             NUMBER;
12489
      vext              VARCHAR2 (4000);
12490
      dpvid             NUMBER;
12491
      slist             VARCHAR2 (4000);
12492
      cbuildtypes       tdictionary;
12493
      dependencyrow     NUMBER;
12494
      sdependency       VARCHAR2 (4000);
12495
      first_pos         VARCHAR2 (4000);
12496
      second_pos        VARCHAR2 (4000);
12497
      third_pos         VARCHAR2 (4000);
12498
      forth_pos         VARCHAR2 (4000);
12499
      citemcollection   relmgr_varchar2_tab_t  := relmgr_varchar2_tab_t ();
12500
 
12501
      CURSOR curbuildtype
12502
      IS
12503
         SELECT dpv.pkg_id || seperator || dpv.v_ext AS pkgid_ext,
12504
                dep.build_type
12505
           FROM package_dependencies dep, package_versions dpv
12506
          WHERE dep.pv_id = pvid AND dep.dpv_id = dpv.pv_id;
12507
 
12508
      recbuildtype      curbuildtype%ROWTYPE;
1373 dpurdie 12509
   BEGIN
3959 dpurdie 12510
      slist := dependenciesimportlist;
1373 dpurdie 12511
 
3959 dpurdie 12512
      -- Preformat String
12513
      IF NOT slist IS NULL
1373 dpurdie 12514
      THEN
3959 dpurdie 12515
         slist := REPLACE (slist, ' ');                      -- Remove spaces
12516
         slist := REPLACE (slist, UTL_TCP.crlf);
12517
         -- Remove new line and carriage-return characters
12518
         slist := REPLACE (slist, '''', '"');             -- Replace ' with "
1373 dpurdie 12519
      END IF;
12520
 
3959 dpurdie 12521
      -- Get Current Dependencies
12522
      OPEN curbuildtype;
1373 dpurdie 12523
 
3959 dpurdie 12524
      FETCH curbuildtype
12525
       INTO recbuildtype;
1373 dpurdie 12526
 
3959 dpurdie 12527
      WHILE curbuildtype%FOUND
12528
      LOOP
12529
         cbuildtypes (recbuildtype.pkgid_ext) := recbuildtype.build_type;
1373 dpurdie 12530
 
3959 dpurdie 12531
         FETCH curbuildtype
12532
          INTO recbuildtype;
12533
      END LOOP;
1373 dpurdie 12534
 
3959 dpurdie 12535
      CLOSE curbuildtype;
1373 dpurdie 12536
 
3959 dpurdie 12537
      -- Separate dependencies with ; separator
12538
      citemcollection := in_list_varchar2 (slist, ';');
1373 dpurdie 12539
 
3959 dpurdie 12540
      BEGIN
12541
         -- Remove old dependencies
12542
         DELETE FROM package_dependencies dep
12543
               WHERE dep.pv_id = pvid;
1373 dpurdie 12544
 
3959 dpurdie 12545
         -- Loop through dependencies
12546
         FOR dependencyrow IN 1 .. citemcollection.COUNT
12547
         LOOP
12548
            -- Extract pkg_name and pkg_version
12549
            sdependency := citemcollection (dependencyrow);
12550
            first_pos := INSTR (sdependency, '"', 1, 1);
12551
            second_pos := INSTR (sdependency, '"', 1, 2);
12552
            third_pos := INSTR (sdependency, '"', 1, 3);
12553
            forth_pos := INSTR (sdependency, '"', 1, 4);
12554
            pkgname :=
12555
               SUBSTR (sdependency,
12556
                       (first_pos + 1),
12557
                       (second_pos - first_pos - 1)
12558
                      );
12559
            pkgversion :=
12560
               SUBSTR (sdependency,
12561
                       (third_pos + 1),
12562
                       (forth_pos - third_pos - 1)
12563
                      );
12564
 
12565
            -- Dependency must exits to be linked against
12566
            BEGIN
12567
               SELECT pv.pv_id, pv.pkg_id, pv.v_ext
12568
                 INTO dpvid, pkgid, vext
12569
                 FROM package_versions pv, PACKAGES pkg
12570
                WHERE pv.pkg_id = pkg.pkg_id
12571
                  AND pkg.pkg_name = pkgname
12572
                  AND pv.pkg_version = pkgversion;
12573
            EXCEPTION
12574
               WHEN NO_DATA_FOUND
12575
               THEN
12576
                  raise_application_error
12577
                                  (-20000,
12578
                                      'Dependency ['
12579
                                   || pkgname
12580
                                   || ' '
12581
                                   || pkgversion
12582
                                   || '] does not exist yet and cannot be used!'
12583
                                  );
12584
            END;
12585
 
12586
            -- Get Build Type (i.e. BuildPackageArchive or LinkPackageArchive)
12587
            BEGIN
12588
               buildtype := cbuildtypes (pkgid || seperator || vext);
12589
 
12590
               IF buildtype IS NULL
12591
               THEN
12592
                  -- Set build type to LinkPackageArchive by default
12593
                  buildtype := 'L';
12594
               END IF;
12595
            EXCEPTION
12596
               WHEN NO_DATA_FOUND
12597
               THEN
12598
                  buildtype := 'L';
12599
            END;
12600
 
12601
            -- Insert Dependencies
12602
            update_package_dependency (pvid,
12603
                                       pkgname,
12604
                                       pkgversion,
12605
                                       buildtype,
12606
                                       userid,
12607
 
12608
                                      );
12609
         END LOOP;
12610
      END;
1373 dpurdie 12611
   END;
12612
 
12613
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12614
   FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)
12615
      RETURN VARCHAR2
1373 dpurdie 12616
   IS
3959 dpurdie 12617
      pkgversion   VARCHAR2 (4000);
1373 dpurdie 12618
   BEGIN
3959 dpurdie 12619
      BEGIN
12620
         SELECT pv.pkg_version
12621
           INTO pkgversion
12622
           FROM PACKAGES pkg, release_content rc, package_versions pv
12623
          WHERE pv.pv_id = rc.pv_id
12624
            AND pkg.pkg_id = pv.pkg_id
12625
            AND pkg.pkg_name = pkgname
12626
            AND rc.rtag_id = rtagid;
12627
 
12628
         RETURN pkgversion;
12629
      END;
1373 dpurdie 12630
   END;
12631
 
12632
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12633
   FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)
12634
      RETURN VARCHAR2
1373 dpurdie 12635
   IS
3959 dpurdie 12636
      pkgversion   VARCHAR2 (4000);
1373 dpurdie 12637
   BEGIN
3959 dpurdie 12638
      BEGIN
12639
         SELECT pv.pkg_version
12640
           INTO pkgversion
12641
           FROM PACKAGES pkg, work_in_progress wip, package_versions pv
12642
          WHERE pv.pv_id = wip.pv_id
12643
            AND pkg.pkg_id = pv.pkg_id
12644
            AND pkg.pkg_name = pkgname
12645
            AND wip.rtag_id = rtagid;
1373 dpurdie 12646
 
3959 dpurdie 12647
         IF pkgversion IS NULL
12648
         THEN
12649
            SELECT pv.pkg_version
12650
              INTO pkgversion
12651
              FROM PACKAGES pkg, planned pl, package_versions pv
12652
             WHERE pv.pv_id = pl.pv_id
12653
               AND pkg.pkg_id = pv.pkg_id
12654
               AND pkg.pkg_name = pkgname
12655
               AND pl.rtag_id = rtagid;
12656
         END IF;
12657
 
12658
         RETURN pkgversion;
12659
      END;
1373 dpurdie 12660
   END;
12661
 
12662
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12663
   PROCEDURE update_dash_board (rtagid IN NUMBER)
1373 dpurdie 12664
   IS
3959 dpurdie 12665
      projid       NUMBER;
12666
      projiddb     NUMBER;
12667
      total        NUMBER;
12668
      auto_total   NUMBER;
12669
      rtagiddb     NUMBER;
1373 dpurdie 12670
   BEGIN
3959 dpurdie 12671
      SELECT COUNT (*)
12672
        INTO total
12673
        FROM release_content rc, package_versions pv
12674
       WHERE pv.pv_id = rc.pv_id AND rc.rtag_id = rtagid;
1373 dpurdie 12675
 
3959 dpurdie 12676
      SELECT COUNT (*)
12677
        INTO auto_total
12678
        FROM release_content rc, package_versions pv
12679
       WHERE pv.pv_id = rc.pv_id
12680
         AND pv.is_autobuildable = 'Y'
12681
         AND rc.rtag_id = rtagid;
12682
 
12683
      BEGIN
12684
         SELECT rtag_id
12685
           INTO rtagiddb
12686
           FROM dash_board
12687
          WHERE rtag_id = rtagid;
12688
 
12689
         SELECT proj_id
12690
           INTO projiddb
12691
           FROM dash_board
12692
          WHERE rtag_id = rtagid;
12693
      EXCEPTION
12694
         WHEN NO_DATA_FOUND
12695
         THEN
12696
            rtagiddb := '';
12697
      END;
12698
 
12699
      IF rtagiddb IS NULL
1373 dpurdie 12700
      THEN
3959 dpurdie 12701
         SELECT proj_id
12702
           INTO projid
12703
           FROM release_tags
12704
          WHERE rtag_id = rtagid;
12705
 
12706
         INSERT INTO dash_board
12707
                     (proj_id, rtag_id, last_build_time, automated_packages,
12708
                      total_packages
12709
                     )
12710
              VALUES (projid, rtagid, ora_sysdatetime, auto_total,
12711
                      total
12712
                     );
12713
      ELSE
12714
         UPDATE dash_board
12715
            SET last_build_time = ora_sysdatetime,
12716
                automated_packages = auto_total,
12717
                total_packages = total
12718
          WHERE proj_id = projiddb AND rtag_id = rtagiddb;
1373 dpurdie 12719
      END IF;
12720
   END;
12721
 
12722
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12723
   FUNCTION exclude_from_build (
12724
      pvid          IN   NUMBER,
12725
      spkgversion   IN   VARCHAR2,
12726
      rtagid        IN   NUMBER,
12727
      username      IN   VARCHAR2
1373 dpurdie 12728
   )
3959 dpurdie 12729
      RETURN NUMBER
1373 dpurdie 12730
   IS
3959 dpurdie 12731
      userid              NUMBER;
12732
      outerrcode          NUMBER;
12733
      pkgid               NUMBER;
12734
 
12735
      CURSOR dnr_duplicate_cur
12736
      IS
12737
         SELECT *
12738
           FROM do_not_ripple
12739
          WHERE pv_id = pvid AND rtag_id = rtagid;
12740
 
12741
      dnr_duplicate_rec   dnr_duplicate_cur%ROWTYPE;
1373 dpurdie 12742
   BEGIN
3959 dpurdie 12743
      outerrcode := -1;       -- Set default return error code to ERROR state
12744
 
12745
      /*--------------- Business Rules Here -------------------*/
12746
      IF (rtagid IS NULL)
1373 dpurdie 12747
      THEN
3959 dpurdie 12748
         RETURN outerrcode;
12749
--         raise_application_error (-20000, 'RtagId must be supplied.');
12750
      END IF;
12751
 
12752
      IF (pvid IS NULL)
1373 dpurdie 12753
      THEN
3959 dpurdie 12754
         RETURN outerrcode;
12755
--         raise_application_error (-20000, 'PvId must be supplied.');
12756
      END IF;
12757
 
12758
      IF (username IS NULL)
1373 dpurdie 12759
      THEN
3959 dpurdie 12760
         RETURN outerrcode;
12761
--         raise_application_error (-20000, 'UserName must be supplied.');
12762
      END IF;
12763
 
12764
      -- Get user_id
12765
      BEGIN
12766
         SELECT usr.user_id
12767
           INTO userid
12768
           FROM users usr
12769
          WHERE UPPER (usr.user_name) = UPPER (username)
12770
            AND usr.is_disabled IS NULL;
12771
      EXCEPTION
12772
         WHEN NO_DATA_FOUND
12773
         THEN
12774
            RETURN outerrcode;
12775
--            raise_application_error (-20000,
12776
--                                        'UserName '
12777
--                                     || username
12778
--                                     || ' is not valid or disabled.'
12779
--                                    );
12780
      END;
12781
 
12782
      OPEN dnr_duplicate_cur;
12783
 
12784
      FETCH dnr_duplicate_cur
12785
       INTO dnr_duplicate_rec;
12786
 
12787
      IF dnr_duplicate_cur%FOUND
1373 dpurdie 12788
      THEN
3959 dpurdie 12789
         outerrcode := 0;
1373 dpurdie 12790
      END IF;
3959 dpurdie 12791
 
12792
      IF dnr_duplicate_cur%NOTFOUND
12793
      THEN
12794
         /* No duplicate recordset */
12795
         unripple_package (pvid, rtagid, userid);
12796
         outerrcode := 0;                            -- Set return to SUCCESS
12797
      END IF;
12798
 
12799
      CLOSE dnr_duplicate_cur;
12800
 
12801
      SELECT pkg_id
12802
        INTO pkgid
12803
        FROM package_versions
12804
       WHERE pv_id = pvid;
12805
 
12806
      DELETE FROM planned_versions
12807
            WHERE pkg_id = pkgid AND pkg_version = spkgversion;
12808
 
12809
      RETURN outerrcode;
1373 dpurdie 12810
   END;
12811
 
12812
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12813
   FUNCTION exclude_indirect_from_build (
12814
      pvid          IN   NUMBER,
12815
      spkgversion   IN   VARCHAR2,
12816
      rtagid        IN   NUMBER,
12817
      username      IN   VARCHAR2,
12818
      rootpvid      IN   NUMBER,
12819
      rootcause     IN   VARCHAR2,
12820
      rootfile      IN   VARCHAR2
1373 dpurdie 12821
   )
3959 dpurdie 12822
      RETURN NUMBER
1373 dpurdie 12823
   IS
3959 dpurdie 12824
      userid              NUMBER;
12825
      outerrcode          NUMBER;
12826
      pkgid               NUMBER;
12827
 
12828
      CURSOR dnr_duplicate_cur
12829
      IS
12830
         SELECT *
12831
           FROM do_not_ripple
12832
          WHERE pv_id = pvid AND rtag_id = rtagid;
12833
 
12834
      dnr_duplicate_rec   dnr_duplicate_cur%ROWTYPE;
1373 dpurdie 12835
   BEGIN
3959 dpurdie 12836
      outerrcode := -1;       -- Set default return error code to ERROR state
12837
 
12838
      /*--------------- Business Rules Here -------------------*/
12839
      IF (rtagid IS NULL)
1373 dpurdie 12840
      THEN
3959 dpurdie 12841
         RETURN outerrcode;
12842
--         raise_application_error (-20000, 'RtagId must be supplied.');
12843
      END IF;
12844
 
12845
      IF (pvid IS NULL)
1373 dpurdie 12846
      THEN
3959 dpurdie 12847
         RETURN outerrcode;
12848
--         raise_application_error (-20000, 'PvId must be supplied.');
12849
      END IF;
12850
 
12851
      IF (username IS NULL)
1373 dpurdie 12852
      THEN
3959 dpurdie 12853
         RETURN outerrcode;
12854
--         raise_application_error (-20000, 'UserName must be supplied.');
1373 dpurdie 12855
      END IF;
3959 dpurdie 12856
 
12857
      -- Get user_id
12858
      BEGIN
12859
         SELECT usr.user_id
12860
           INTO userid
12861
           FROM users usr
12862
          WHERE UPPER (usr.user_name) = UPPER (username)
12863
            AND usr.is_disabled IS NULL;
12864
      EXCEPTION
12865
         WHEN NO_DATA_FOUND
12866
         THEN
12867
            RETURN outerrcode;
12868
--            raise_application_error (-20000,
12869
--                                        'UserName '
12870
--                                     || username
12871
--                                     || ' is not valid or disabled.'
12872
--                                    );
12873
      END;
12874
 
12875
     /* No duplicate recordset */
12876
     unripple_package_indirect (pvid, rtagid, userid, rootpvid, rootcause, rootfile);
12877
     outerrcode := 0;                            -- Set return to SUCCESS
12878
 
12879
      SELECT pkg_id
12880
        INTO pkgid
12881
        FROM package_versions
12882
       WHERE pv_id = pvid;
12883
 
12884
      DELETE FROM planned_versions
12885
            WHERE pkg_id = pkgid AND pkg_version = spkgversion;
12886
 
12887
      RETURN outerrcode;
1373 dpurdie 12888
   END;
12889
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12890
   PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2)
1373 dpurdie 12891
   IS
12892
   BEGIN
3959 dpurdie 12893
      INSERT INTO abt_action_log
12894
                  (rcon_id, action_datetime, action
12895
                  )
12896
           VALUES (rconid, ora_sysdatetime, action
12897
                  );
1373 dpurdie 12898
   END;
12899
 
12900
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12901
   FUNCTION insert_package_metrics (
12902
      rtagid                   IN   NUMBER,
12903
      pkgname                  IN   VARCHAR2,
12904
      vext                     IN   VARCHAR2,
12905
      metricstring             IN   VARCHAR2
1373 dpurdie 12906
   )
3959 dpurdie 12907
      RETURN NUMBER
1373 dpurdie 12908
   IS
3959 dpurdie 12909
      citemcollection          relmgr_varchar2_tab_t  := relmgr_varchar2_tab_t ();
12910
      lv_pvid                  NUMBER                 := 0;
12911
      rownumber                NUMBER;
12912
      rowcontent               VARCHAR2(4000);
12913
      metricname               VARCHAR2(1000);
12914
      metricvalue              VARCHAR2(4000);
12915
      return_insert_error      NUMBER                 := -1;
12916
      return_insert_success    NUMBER                 := 0;
12917
 
12918
      /* Metrics */
12919
      lv_branches                 NUMBER;
12920
      lv_branchlist               VARCHAR2(4000);
12921
      lv_codefiles                NUMBER;
12922
      lv_ignoredfiles             NUMBER;
12923
      lv_directories              NUMBER;
12924
      lv_directorydepth           NUMBER;
12925
      lv_totalfiles               NUMBER;
12926
      lv_makefiles                NUMBER;
12927
      lv_blanklines               NUMBER;
12928
      lv_codelines                NUMBER;
12929
      lv_commentlines             NUMBER;
12930
 
1373 dpurdie 12931
   BEGIN
3959 dpurdie 12932
      /*--------------- Business Rules Here -------------------*/
12933
      IF (rtagid IS NULL)
12934
      THEN
12935
         RETURN return_insert_error;
12936
      END IF;
1373 dpurdie 12937
 
3959 dpurdie 12938
      IF (pkgname IS NULL)
12939
      THEN
12940
         RETURN return_insert_error;
12941
      END IF;
12942
 
12943
      IF (metricstring IS NULL)
12944
      THEN
12945
         RETURN return_insert_error;
12946
      END IF;
12947
 
12948
      BEGIN
12949
         SELECT pv.pv_id
12950
           INTO lv_pvid
12951
           FROM package_versions pv, packages pkg, release_content rc
12952
          WHERE pv.pkg_id = pkg.pkg_id
12953
            AND rc.rtag_id = rtagid
12954
            AND pv.pv_id = rc.pv_id
12955
            AND pkg.pkg_name = pkgname
12956
            AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
12957
      EXCEPTION
12958
           WHEN NO_DATA_FOUND
12959
           THEN
12960
                lv_pvid := 0;
12961
      END;
12962
 
12963
      citemcollection := in_list_varchar2 (metricstring, ';');
12964
 
12965
      FOR rownumber IN 1 .. citemcollection.COUNT
12966
      LOOP
12967
         rowcontent := citemcollection(rownumber);
12968
         metricvalue := SUBSTR(rowcontent, (INSTR(rowcontent, '=') + 1));
12969
         metricname := REGEXP_REPLACE(rowcontent, '=.*$', '');
12970
 
12971
         IF    metricname = 'ccbranch.count' THEN lv_branches := metricvalue;
12972
         ELSIF metricname = 'ccbranch.list' THEN lv_branchlist := metricvalue;
12973
         ELSIF metricname = 'code.files' THEN lv_codefiles := metricvalue;
12974
         ELSIF metricname = 'code.ignored' THEN lv_ignoredfiles := metricvalue;
12975
         ELSIF metricname = 'count.dir' THEN lv_directories := metricvalue;
12976
         ELSIF metricname = 'count.dirdepth' THEN lv_directorydepth := metricvalue;
12977
         ELSIF metricname = 'count.file' THEN lv_totalfiles := metricvalue;
12978
         ELSIF metricname = 'count.makefile' THEN lv_makefiles := metricvalue;
12979
         ELSIF metricname = 'lines.blank' THEN lv_blanklines := metricvalue;
12980
         ELSIF metricname = 'lines.code' THEN lv_codelines := metricvalue;
12981
         ELSIF metricname = 'lines.comment' THEN lv_commentlines := metricvalue;
12982
         END IF;
12983
      END LOOP;
12984
 
12985
      IF (lv_pvid > 0)
12986
      THEN
12987
         -- Delete any existing entries for this package version to makes sure our data is untainted
12988
         DELETE FROM package_metrics pm
12989
         WHERE pm.pv_id = lv_pvid;
12990
 
12991
         -- Insert the new data into the metrics table
12992
         INSERT INTO package_metrics
12993
                     (pv_id, branches, branch_list, code_files, ignored_files, directories, directory_depth,
12994
                      total_files, makefiles, blank_lines, code_lines, comment_lines, created_stamp
12995
                     )
12996
              VALUES (lv_pvid, lv_branches, lv_branchlist, lv_codefiles, lv_ignoredfiles, lv_directories, lv_directorydepth,
12997
                      lv_totalfiles, lv_makefiles, lv_blanklines, lv_codelines, lv_commentlines, ora_sysdatetime
12998
                     );
12999
 
13000
         -- Now update the Release_Metrics Table
13001
         update_release_metrics(rtagid);
13002
 
13003
         RETURN return_insert_success;
13004
      ELSE
13005
         RETURN return_insert_error;
13006
      END IF;
1373 dpurdie 13007
   END;
13008
 
13009
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13010
   PROCEDURE update_release_metrics (rtagid IN NUMBER)
1373 dpurdie 13011
   IS
3959 dpurdie 13012
      lv_totalpackages       NUMBER;
13013
      lv_autobuilt           NUMBER;
13014
      lv_linesofcode         NUMBER;
13015
      lv_unittested          NUMBER;
13016
      lv_autotested          NUMBER;
13017
      lv_numOfbranches       NUMBER;
13018
      lv_lastbuildtime       DATE;
1373 dpurdie 13019
   BEGIN
3959 dpurdie 13020
      IF (rtagid > 0)
13021
      THEN
13022
         -- Get the total number of packages in this release and the number of
13023
         -- those that are autobuilt
13024
         SELECT COUNT (DISTINCT rc.pv_id),
13025
                COUNT (DISTINCT autobuilt_qry.pv_id)
13026
           INTO lv_totalpackages, lv_autobuilt
13027
           FROM release_content rc,
13028
                package_versions pv,
13029
                (
13030
                 SELECT rc.pv_id
13031
                   FROM release_content rc,
13032
                        package_versions pv
13033
                  WHERE pv.is_autobuildable = 'Y'
13034
                    AND pv.pv_id = rc.pv_id
13035
                    AND rc.rtag_id = rtagid
13036
                ) autobuilt_qry
13037
          WHERE pv.pv_id = rc.pv_id
13038
            AND rc.rtag_id = rtagid
13039
            AND autobuilt_qry.pv_id (+) = rc.pv_id;
1373 dpurdie 13040
 
3959 dpurdie 13041
         -- Get the build time of the last package built in this release and the
13042
         -- total number of lines of code
13043
         SELECT MAX(pm.created_stamp),
13044
                SUM(pm.code_lines)
13045
           INTO lv_lastbuildtime, lv_linesofcode
13046
           FROM package_metrics pm, release_content rc
13047
          WHERE pm.pv_id = rc.pv_id
13048
            AND rc.rtag_id = rtagid;
13049
 
13050
         -- Get the number of packages with unit tests in this release and the
13051
         -- number of those that are autotested
13052
         SELECT COUNT(DISTINCT ut.pv_id) INTO lv_unittested
13053
           FROM unit_tests ut,
13054
                release_content rc
13055
          WHERE ut.pv_id = rc.pv_id
13056
            AND rc.rtag_id = rtagid
13057
        AND ut.test_types_fk != 1;
13058
 
13059
        SELECT COUNT(DISTINCT ut.pv_id) INTO lv_autotested
13060
          FROM unit_tests ut,
13061
               release_content rc
13062
         WHERE ut.pv_id = rc.pv_id
13063
           AND rc.rtag_id = rtagid
13064
           AND ut.test_types_fk = 7;
13065
 
13066
 
13067
         -- Count the number of unique branches in the packages in this release.
13068
--         SELECT COUNT(DISTINCT branch) INTO lv_numOfbranches
13069
--           FROM (
13070
--                SELECT pv_id,
13071
--                       regexp_substr(str, '[^,]+', 1, level) branch,
13072
--                       level lv,
13073
--                       lag(level, 1, 0) over (partition by pv_id order by level) lg
13074
--                  FROM (
13075
--                       SELECT pm.pv_id,
13076
--                              ','||pm.branch_list str
13077
--                         FROM package_metrics pm,
13078
--                              release_content rc
13079
--                        WHERE pm.pv_id = rc.pv_id
13080
--                          AND rc.rtag_id = rtagid
13081
--                       )
13082
--                CONNECT BY regexp_substr(str, '[^,]+', 1, LEVEL) IS NOT NULL
13083
--                )
13084
--          WHERE lv != lg;
13085
 
13086
         UPDATE release_metrics rm
13087
            SET rm.total_packages = lv_totalpackages,
13088
                rm.autobuilt = lv_autobuilt,
13089
                rm.lines_of_code = lv_linesofcode,
13090
                rm.unit_tested = lv_unittested,
13091
                rm.autotested = lv_autotested,
13092
--                rm.branches = lv_numOfbranches,
13093
                rm.last_build_time = lv_lastbuildtime
13094
          WHERE rtag_id = rtagid;
13095
 
13096
         IF (SQL%ROWCOUNT = 0)
13097
         THEN
13098
            INSERT INTO release_metrics
13099
                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
13100
                         autotested, last_build_time
13101
                        )
13102
                 VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,
13103
                         lv_autotested, lv_lastbuildtime
13104
                        );
13105
         END IF;
13106
--         IF (SQL%ROWCOUNT = 0)
13107
--         THEN
13108
--            INSERT INTO release_metrics
13109
--                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
13110
--                         autotested, branches, last_build_time
13111
--                        )
13112
--                 VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,
13113
--                         lv_autotested, lv_numOfbranches, lv_lastbuildtime
13114
--                        );
13115
--         END IF;
13116
--      ELSE
13117
--         raise_application_error (-20000, 'RtagId must be supplied.');
13118
      END IF;
1373 dpurdie 13119
   END;
13120
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13121
   FUNCTION return_vcs_tag(pvid IN NUMBER) RETURN VARCHAR2
1373 dpurdie 13122
   IS
3959 dpurdie 13123
      vcstypeid    NUMBER;
13124
      vcstag       VARCHAR2(32);
13125
      label        VARCHAR2(60);
13126
      srcpath      VARCHAR2(2000);
13127
      vcstypeid_cc NUMBER;
13128
      vcstypeid_uc NUMBER;
1373 dpurdie 13129
   BEGIN
3959 dpurdie 13130
      -- Get the VCS_TYPE_ID for the ClearCase version control system. We do this so that we make no assumptions about
13131
      -- what the primary key value is for the ClearCase VCS entry.
13132
      BEGIN
13133
         SELECT vt.vcs_type_id
13134
         INTO vcstypeid_cc
13135
         FROM VCS_TYPE vt
13136
         WHERE vt.tag = 'CC';
13137
         EXCEPTION
13138
            WHEN NO_DATA_FOUND THEN
13139
               raise_application_error (-20000, 'Database is missing compulsory CC version control system tag!');
13140
      END;
1373 dpurdie 13141
 
3959 dpurdie 13142
      -- Get the VCS_TYPE_ID for the Uncontrolled version control system. We do this so that we make no assumptions about
13143
      -- what the primary key value is for the Uncontrolled VCS entry.
13144
      BEGIN
13145
         SELECT vt.vcs_type_id
13146
         INTO vcstypeid_uc
13147
         FROM VCS_TYPE vt
13148
         WHERE vt.tag = 'UC';
13149
         EXCEPTION
13150
            WHEN NO_DATA_FOUND THEN
13151
               raise_application_error (-20000, 'Database is missing compulsory UC version control system tag!');
13152
      END;
13153
 
13154
      -- Get the PKG_LABEL, SRC_PATH, VCS_TYPE_ID for the package version
13155
      -- As additional VCS types are introduced, we may have to extend what this SELECT statement returns
13156
      BEGIN
13157
         SELECT pv.pkg_label, pv.src_path,
13158
           (CASE WHEN pv.pkg_label = 'N/A' AND pv.vcs_type_id IS NULL THEN vcstypeid_uc
13159
                 WHEN pv.vcs_type_id IS NULL THEN vcstypeid_cc
13160
                 ELSE pv.vcs_type_id END) AS vcs_type_id
13161
         INTO label, srcpath, vcstypeid
13162
         FROM PACKAGE_VERSIONS pv
13163
         WHERE pv.pv_id = pvid;
13164
         EXCEPTION
13165
            WHEN NO_DATA_FOUND THEN
13166
               raise_application_error (-20000, 'Package Version Not Found!');
13167
      END;
13168
 
13169
      -- Get the VCS TAG for the VCS_TYPE_ID.
13170
      BEGIN
13171
         SELECT vt.tag
13172
         INTO vcstag
13173
         FROM VCS_TYPE vt
13174
         WHERE vt.vcs_type_id = vcstypeid;
13175
         EXCEPTION
13176
            WHEN NO_DATA_FOUND THEN
13177
               raise_application_error (-20000, 'Could not get VCS Tag for the package version!');
13178
      END;
13179
 
13180
      -- Return value depending upon which VCS Tag is being used.
13181
      -- As additional VCS types are introduced, we have to add additional WHEN clauses
13182
      CASE vcstag
13183
         WHEN 'CC' THEN
13184
            RETURN vcstag || '::' || srcpath || '::' || label;
13185
         WHEN 'SVN' THEN
13186
            RETURN vcstag || '::' || srcpath || '::' || label;
13187
         ELSE
13188
            RETURN vcstag || '::';
13189
      END CASE;
13190
 
1373 dpurdie 13191
   END;
3959 dpurdie 13192
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 13193
 
3959 dpurdie 13194
/*-------------------------------------------------------------------------------------------------------
13195
Name:        update_vcs_details
13196
Description: Updates the Version Control System (vcs) details specified in the vcstag
13197
             parameter for the specified package version.
13198
             The specified package vcstag is parsed and split into 3 fields:
13199
                vcs type, src path, label
13200
             These fields are then stored for the specified pv_id in the package_versions, table.
13201
             An action is recorded in the action log and provides information for tracking and
13202
             for restoring the previous vcs settings if a recovery is required.
13203
Paramters:
13204
             ipv_id:     Package version identifier
13205
             vcstag:     Full version control tag.
13206
                         Examples:
13207
                             "SVN::AUPERASVN01/DPG_SWBase/tools/trunk::daf_tools_25.1.7027.cr@1234"
13208
                            "CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr"
13209
             user_id:    Identifier of the user that is performing this function.
13210
*/
13211
PROCEDURE update_vcs_details(ipv_id IN NUMBER, vcstag IN VARCHAR2, user_id IN NUMBER)
1373 dpurdie 13212
   IS
3959 dpurdie 13213
      ivcs_type_id   NUMBER;
13214
      svcs_type      VARCHAR2(128);
13215
      ssrc_path      VARCHAR2(512);
13216
      spkg_label     VARCHAR2(512);
13217
      spattern       VARCHAR2(64);
13218
      saction_desc   VARCHAR2(2048);
13219
      old_vcs_type   VARCHAR2(128);
13220
      old_src_path   VARCHAR2(512);
13221
      old_pkg_label  VARCHAR2(512);
13222
      old_pkg_vcstag VARCHAR2(1024);
13223
      i              NUMBER;
13224
      vcount         NUMBER;
1373 dpurdie 13225
   BEGIN
3959 dpurdie 13226
     -- Split vcs tag into fields: vcs type, src path, label
13227
     -- Fields are separated by '::'
13228
     -- e.g "CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr"
13229
     -- The below regular expression pattern has groups to achieve this.
1373 dpurdie 13230
 
3959 dpurdie 13231
     spattern:= '^([^:]*)::([^:]*)(::(.*))?$';
13232
 
13233
     --As Oracle 10g does not allow REGEXP_SUBSTR to return a group,
13234
     --REGEXP_REPLACE is used instead (Note: Oracle 11g has this enhancement).
13235
     SELECT REGEXP_REPLACE(vcstag,spattern, '\1') INTO svcs_type  FROM DUAL;
13236
     SELECT REGEXP_REPLACE(vcstag,spattern, '\2') INTO ssrc_path  FROM DUAL;
13237
     SELECT REGEXP_REPLACE(vcstag,spattern, '\4') INTO spkg_label FROM DUAL;
13238
 
13239
     -- Validate vcs type
13240
     BEGIN
13241
       SELECT vc.vcs_type_id INTO ivcs_type_id FROM vcs_type vc WHERE UPPER(svcs_type) = UPPER(vc.tag);
13242
     EXCEPTION
13243
       WHEN NO_DATA_FOUND THEN
13244
         raise_application_error (-20000, 'Invalid vcs type: ' || '"' || svcs_type || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
13245
       --RAISE;
13246
     END;
13247
 
13248
     -- If Clearcase
13249
     IF (ivcs_type_id = 2) THEN
13250
       -- Validate source path
13251
       IF NOT REGEXP_LIKE(ssrc_path,'^(\\|\/)[a-z]+[0-9a-z_\.\-\\\/ -]*$','i') THEN
13252
         raise_application_error (-20000, 'Invalid CC src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
13253
       END IF;
13254
 
13255
       -- Validate label
13256
       -- For clearcase the label must be specified. For subversion it is not required.
13257
       IF NOT REGEXP_LIKE(spkg_label,'^[0-9a-z_\.\-]+$','i') THEN
13258
         raise_application_error (-20000, 'Invalid CC label:' || '"' || spkg_label || '"' || ' for package version:' || ipv_id || ', vcstag:' || '"' || vcstag || '"');
13259
       END IF;
13260
 
13261
     -- if Subversion
13262
     ELSIF (ivcs_type_id = 23) THEN
13263
       -- general validity
13264
       -- Not as picky as the RM Data entry
13265
       IF NOT REGEXP_LIKE(ssrc_path,'^([0-9a-z_\.\-]+)(\/([0-9a-z_\.\-]+))+$','i') THEN
13266
         raise_application_error (-20000, 'Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
13267
       END IF;
13268
 
13269
       -- Validate Tag
13270
       -- May be a Peg or a Label
13271
       IF NOT REGEXP_LIKE(spkg_label,'^@?[0-9]+$','i') THEN
13272
           IF NOT REGEXP_LIKE(spkg_label,'^[0-9a-z_\.\-]+($|@[0-9]+)','i') THEN
13273
             raise_application_error (-20000, 'Invalid SVN tag:' || '"' || spkg_label || '"' || ' for package version:' || ipv_id || ', vcstag:' || '"' || vcstag || '"');
13274
           END IF;
13275
       END IF;
13276
 
13277
        -- Check for suitable ending
13278
        IF NOT REGEXP_LIKE(ssrc_path,'(\/tags$)|(\/branches\/)|(\/trunk$)','i') THEN
13279
            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 || '"');
13280
        END IF;
13281
 
13282
       -- Check for combined use of tags, branches, trunk or repeats of each
13283
       -- Count occurrences of /tags or /branches/ or /trunk
13284
       vcount:=0;
13285
       i:=1;
13286
       WHILE i > 0 LOOP
13287
         i:=REGEXP_INSTR(ssrc_path,'(\/tags(\/|$))|(\/branches(\/|$))|(\/trunk(\/|$))',i,1,1,'i');
13288
         IF i > 0 THEN
13289
           -- if found then increment count
13290
           vcount:=vcount+1;
13291
           i:=i-1;  -- move index back to "/"
13292
         END IF;
13293
       END LOOP;
13294
 
13295
       IF vcount = 0  THEN
13296
         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 || '"');
13297
       END IF;
13298
 
13299
       IF vcount > 1  THEN
13300
         raise_application_error (-20000, 'Combined use of /trunk, /tags, or /branches/. Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
13301
       END IF;
13302
 
13303
 
13304
     END IF;
13305
 
13306
     BEGIN
13307
       -- Get current vcs tag for specified package version
13308
       SELECT pv.src_path, pv.pkg_label, vc.tag as vcs_type
13309
       INTO old_src_path, old_pkg_label, old_vcs_type
13310
       FROM package_versions pv, vcs_type vc
13311
       WHERE pv.pv_id = ipv_id
13312
       AND pv.vcs_type_id = vc.vcs_type_id (+);
13313
 
13314
     EXCEPTION
13315
       WHEN NO_DATA_FOUND THEN
13316
         raise_application_error (-20000, 'Package version not found: ' || ipv_id);
13317
     END;
13318
 
13319
     old_pkg_vcstag:= old_vcs_type || '::' || old_src_path;
13320
     IF (old_pkg_label IS NOT NULL) THEN
13321
       old_pkg_vcstag:=old_pkg_vcstag || '::' || old_pkg_label;
13322
     END IF;
13323
 
13324
     -- Create action description
13325
     -- This description will contain the old and new tags.
13326
     -- Its purpose is to provide information for tracking and for restoring previous vcs settings if a recovery is required.
13327
     -- An example of the action description is below:
13328
     --   OldTag:CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr NewTag:SVN::DPG_SWBase/tools/tags/daf_tools_25.1.7027.cr
13329
     saction_desc:='OldTag:' || old_pkg_vcstag || ' ' || 'NewTag:' || vcstag;
13330
 
13331
     -- Store new vcs details
13332
     UPDATE package_versions SET
13333
       src_path = ssrc_path,
13334
       pkg_label = spkg_label,
13335
       vcs_type_id = ivcs_type_id
13336
     WHERE
13337
       pv_id = ipv_id;
13338
 
13339
     -- Store action in action log so that we can back track and also restore vcs settings if required.
13340
     log_action (ipv_id,'VcsConversion',user_id,saction_desc);
13341
 
13342
   END update_vcs_details;
13343
 
13344
/*-------------------------------------------------------------------------------------------------------
13345
Name:        isSVN
13346
Description: Determine if any of the packages versions are controlled under SVN
13347
			 Intended to be used to prevent users from releasing a package
13348
			 that has been migrated to SVN
13349
 
13350
Paramters:	pkgid:     Package ID
13351
 
13352
Returns:	Number of versions under SVN version control
13353
*/
13354
 
13355
FUNCTION isSVN( pkgid IN NUMBER )
13356
    RETURN NUMBER
13357
    IS
13358
    svncount   NUMBER  := 0;
13359
   BEGIN
13360
        SELECT COUNT(*) INTO svncount FROM PACKAGE_VERSIONS pv WHERE pv.PKG_ID = pkgid AND pv.VCS_TYPE_ID = 23;
13361
        RETURN (svncount);
1373 dpurdie 13362
   END;
3959 dpurdie 13363
 
13364
/*-------------------------------------------------------------------------------------------------------
13365
Name:        isSVNbyName
13366
Description: Determine if any of the packages versions are controlled under SVN
13367
			 Intended to be used to prevent users from releasing a package
13368
			 that has been migrated to SVN
13369
 
13370
Paramters:	pkgname:	Package Name
13371
 
13372
Returns:	Number of versions under SVN version control
13373
*/
13374
 
13375
FUNCTION isSVNbyName( pkgname IN VARCHAR2 ) 
13376
    RETURN NUMBER
13377
IS
13378
   svncount   NUMBER  := 0;
13379
   BEGIN
13380
        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;
13381
        RETURN (svncount);
13382
   END;
5172 dpurdie 13383
/*-------------------------------------------------------------------------------------------------------
13384
Name:        new_build_instance
13385
Description: Create a new entry in the BUILD_INSTANCE table
13386
             The BUILD_ID will be allocated.
13387
             The timestamp will be created
13388
 
13389
Paramters:	rtag_id:	Release ID - must exist
13390
            pv_id:    Package ID - must exist
13391
            reason:   Reason code for the build
13392
 
13393
Returns:	BUILD_ID for the new entry
13394
          Returns -1 on error, PV_ID or RTAG_ID do not exist
13395
*/ 
13396
FUNCTION new_build_instance( rtag_id IN NUMBER, pv_id IN NUMBER , reason IN CHAR) 
13397
  RETURN NUMBER   
13398
  IS
13399
    build_id NUMBER := 0;
13400
  BEGIN
13401
    INSERT into BUILD_INSTANCES (RTAG_ID, PV_ID, REASON)
13402
    values( rtag_id, pv_id, reason)
13403
    returning BUILD_ID into build_id;
13404
    return build_id;
13405
  EXCEPTION
13406
    WHEN OTHERS THEN
13407
      return -1;
13408
  END;
13409
 
13410
/*-------------------------------------------------------------------------------------------------------
13411
Name: update_build_instance
13412
Description: Update fields in an existing build instance
13413
Returns: -1 on error
13414
*/
13415
FUNCTION update_build_instance(
13416
    nbuild_id IN NUMBER,
13417
    npv_id    IN NUMBER DEFAULT NULL,
13418
    nstate    IN CHAR DEFAULT NULL )
13419
  RETURN NUMBER
13420
IS
13421
BEGIN
13422
  IF ( npv_id IS NOT NULL AND npv_id > 0 ) THEN
13423
    UPDATE BUILD_INSTANCES SET PV_ID = npv_id WHERE BUILD_ID = nbuild_id;
13424
    IF SQL%NOTFOUND THEN
13425
      RETURN -2;
13426
    END IF;
13427
  END IF;
13428
 
13429
  IF ( nstate        IS NOT NULL ) THEN
13430
    IF (LENGTH(nstate) = 1 ) THEN
13431
      UPDATE BUILD_INSTANCES SET STATE = nstate WHERE BUILD_ID = nbuild_id;
13432
        IF SQL%NOTFOUND THEN
13433
          RETURN -3;
13434
        END IF;
13435
    ELSE
13436
      RETURN -4;
13437
    END IF;
13438
  END IF;
13439
 
13440
  RETURN 1;
13441
  EXCEPTION
13442
    WHEN OTHERS THEN
13443
      RETURN -1;
13444
  END;
13445
 
13446
/*-------------------------------------------------------------------------------------------------------
13447
Name:        insert_test_run
13448
Description: Insert data into the test_run table
13449
 
13450
 
13451
Paramters:	See below
13452
 
13453
Returns:	1 on success
13454
          Returns -1 on error
13455
*/  
13456
  FUNCTION insert_test_run( 
13457
      build_id  IN NUMBER, 
13458
      name      IN VARCHAR2, 
13459
      outcome   IN VARCHAR2, 
13460
      platform  IN VARCHAR2, 
13461
      stype     IN VARCHAR2, 
13462
      duration  IN NUMBER default null, 
13463
      message   IN CLOB default null
13464
      ) return NUMBER
13465
IS
13466
  sName VARCHAR2(1000) := name;
13467
  sNameLen NUMBER;
13468
 
13469
BEGIN
13470
  sNameLen := LENGTH(sName);
13471
  IF sNameLen >= 150 Then
13472
    sName := '...' || SUBSTR(sName, sNameLen - 147); 
13473
  END IF;
13474
 
13475
  INSERT into TEST_RUN
13476
    (BUILD_ID, TEST_NAME, TEST_OUTCOME, TIME_TAKEN,FAIL_MESSAGE,PLATFORM, TYPE)
13477
    VALUES(build_id,sName,outcome, duration, message, platform, stype);
13478
    return 1;
13479
  EXCEPTION
13480
    WHEN OTHERS THEN
13481
      return -1;
13482
 
13483
END;
3959 dpurdie 13484
 
13485
   END;
4040 dpurdie 13486
 
1374 dpurdie 13487
/
4040 dpurdie 13488
--------------------------------------------------------
13489
--  DDL for Package Body PK_WORK_IN_PROGRESS
13490
--------------------------------------------------------
13491
 
5172 dpurdie 13492
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS
1373 dpurdie 13493
 
13494
/*
13495
------------------------------
13496
||  Last Modified:  S.Vukovic
3959 dpurdie 13497
||  Modified Date:  2/May/2005
1373 dpurdie 13498
||  Body Version:   1.0
13499
------------------------------
13500
*/
13501
 
13502
 
13503
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13504
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 13505
 
3959 dpurdie 13506
	oldPvId NUMBER;
13507
	ReleaseLocation VARCHAR2(4000);
13508
	sLocation VARCHAR2(4000) := NULL;
1373 dpurdie 13509
 
3959 dpurdie 13510
 
1373 dpurdie 13511
BEGIN
13512
	/*--------------- Business Rules Here -------------------*/
3959 dpurdie 13513
	/*-------------------------------------------------------*/
1373 dpurdie 13514
 
3959 dpurdie 13515
	BEGIN
13516
		-- Check if Exists in "Work in progress" anywhere in the world, except "Closed mode" releases
13517
		SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME  INTO sLocation
13518
		  FROM WORK_IN_PROGRESS wip,
13519
		  	   RELEASE_TAGS rt,
13520
			   PROJECTS proj
13521
		 WHERE wip.PV_ID = newPvId
13522
		   AND wip.RTAG_ID = rt.RTAG_ID
13523
		   AND rt.OFFICIAL != 'Y'
13524
		   AND rt.PROJ_ID = proj.PROJ_ID;
1373 dpurdie 13525
 
3959 dpurdie 13526
		EXCEPTION
13527
	    	WHEN NO_DATA_FOUND THEN
13528
	       		sLocation := NULL;
13529
 
13530
	END;	   	   
1373 dpurdie 13531
 
13532
 
13533
 
3959 dpurdie 13534
	IF (sLocation IS NULL)  THEN
1373 dpurdie 13535
 
3959 dpurdie 13536
		-- Add to "Work in progress"
13537
		INSERT INTO WORK_IN_PROGRESS ( RTAG_ID, PV_ID, VIEW_ID )
13538
		VALUES( RtagId, newPvId, ViewId );
13539
 
13540
 
13541
	    /* LOG ACTION */
13542
		SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
13543
		  FROM PROJECTS proj,
13544
		  	   RELEASE_TAGS rt
13545
		 WHERE rt.PROJ_ID = proj.PROJ_ID
13546
		   AND rt.RTAG_ID = RtagId;
13547
 
13548
		Log_Action ( newPvId, 'work_in_progress', UserId, 'Location: '|| ReleaseLocation );
13549
 
13550
	ELSE
13551
 
13552
		RAISE_APPLICATION_ERROR (-20000, 'This version is already in Work-In-Progress Area at '|| sLocation ||'.' );
13553
 
1373 dpurdie 13554
	END IF;
13555
 
3959 dpurdie 13556
END;
13557
/*-------------------------------------------------------------------------------------------------------*/
13558
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 13559
 
3959 dpurdie 13560
	ReleaseLocation VARCHAR2(4000);
1373 dpurdie 13561
 
3959 dpurdie 13562
BEGIN
13563
 
13564
	/*--------------- Business Rules Here -------------------*/
1373 dpurdie 13565
	/*-------------------------------------------------------*/
13566
 
13567
 
3959 dpurdie 13568
	-- Get release location for logging pusposes
13569
	SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
13570
	  FROM PROJECTS proj,
13571
	  	   RELEASE_TAGS rt
13572
	 WHERE rt.PROJ_ID = proj.PROJ_ID
13573
	   AND rt.RTAG_ID = RtagId;
1373 dpurdie 13574
 
13575
 
3959 dpurdie 13576
	-- Delete from Work In Progress
13577
	DELETE
13578
	  FROM WORK_IN_PROGRESS wip
13579
	 WHERE wip.RTAG_ID = RtagId
13580
	   AND wip.PV_ID = PvId;
1373 dpurdie 13581
 
3959 dpurdie 13582
	Log_Action ( PvId, 'delete_from_wip', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 13583
 
3959 dpurdie 13584
 
13585
 
13586
 
1373 dpurdie 13587
END;
13588
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13589
PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 13590
 
3959 dpurdie 13591
	nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
13592
	ReleaseLocation VARCHAR2(4000);
13593
	PvId NUMBER;
1373 dpurdie 13594
 
13595
BEGIN
3959 dpurdie 13596
 
1373 dpurdie 13597
	/*--------------- Business Rules Here -------------------*/
3959 dpurdie 13598
	IF (PvIdList IS NULL)
13599
	THEN
13600
		RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
13601
	END IF;
1373 dpurdie 13602
	/*-------------------------------------------------------*/
13603
 
13604
 
3959 dpurdie 13605
	nIdCollector := IN_LIST_NUMBER ( PvIdList );
1373 dpurdie 13606
 
13607
 
3959 dpurdie 13608
	-- Get release location for logging pusposes
13609
	SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
13610
	  FROM PROJECTS proj,
13611
	  	   RELEASE_TAGS rt
13612
	 WHERE rt.PROJ_ID = proj.PROJ_ID
13613
	   AND rt.RTAG_ID = RtagId;
1373 dpurdie 13614
 
3959 dpurdie 13615
 
13616
	FOR i IN 1..nIdCollector.COUNT
13617
	LOOP
13618
		PvId := nIdCollector(i);
13619
 
13620
		-- Delete from Work In Progress
13621
		DELETE
13622
		  FROM WORK_IN_PROGRESS wip
13623
		 WHERE wip.RTAG_ID = RtagId
13624
		   AND wip.PV_ID = PvId;
13625
 
13626
		Log_Action ( PvId, 'remove_from_work_in_progress', UserId, 'Location: '|| ReleaseLocation );
13627
 
13628
	END LOOP;
13629
 
13630
 
1373 dpurdie 13631
END;
13632
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13633
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
13634
 
13635
	ReturnValue NUMBER;
13636
 
1373 dpurdie 13637
BEGIN
3959 dpurdie 13638
	SELECT wip.VIEW_ID INTO ReturnValue
13639
	  FROM WORK_IN_PROGRESS wip
13640
	 WHERE wip.RTAG_ID = RtagId
13641
	   AND wip.PV_ID = PvId;
1373 dpurdie 13642
 
3959 dpurdie 13643
	RETURN ReturnValue;
1373 dpurdie 13644
END;
13645
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13646
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
13647
 
13648
	IsBaseView CHAR(1);
13649
 
1373 dpurdie 13650
BEGIN
13651
 
3959 dpurdie 13652
	-- Check if the view is BASE VIEW
13653
	SELECT vi.BASE_VIEW INTO IsBaseView
13654
	  FROM VIEWS vi
13655
	 WHERE vi.VIEW_ID = ViewId;
13656
 
5172 dpurdie 13657
	IF (IsBaseView IN ('Y', 'S')) THEN 
3959 dpurdie 13658
		-- Get Base view content
13659
		OPEN RecordSet FOR
13660
		SELECT 0 AS PKG_STATE,
13661
			   NULL AS DEPRECATED_STATE,
13662
			   pv.pv_id, 
13663
			   pkg.pkg_name, 
13664
			   pv.pkg_version, 
13665
			   pv.dlocked, 
13666
			   pv.pv_description,
13667
			   pv.BUILD_TYPE
13668
		  FROM WORK_IN_PROGRESS rel,
13669
		       packages pkg,
13670
		       package_versions pv
13671
		 WHERE pv.pkg_id = pkg.pkg_id
13672
		   AND rel.pv_id = pv.pv_id
13673
		   AND rel.VIEW_ID = ViewId
13674
		   AND rel.RTAG_ID = RtagId
13675
		 ORDER BY UPPER(pkg.PKG_NAME);
13676
 
1373 dpurdie 13677
 
3959 dpurdie 13678
	ELSE	 
1373 dpurdie 13679
 
3959 dpurdie 13680
	 	-- Get non base view content
13681
		OPEN RecordSet FOR
13682
		SELECT 0 AS PKG_STATE,
13683
			   NULL AS DEPRECATED_STATE,
13684
			   pv.pv_id, 
13685
			   pkg.pkg_name, 
13686
			   pv.pkg_version, 
13687
			   pv.dlocked, 
13688
			   pv.pv_description,
13689
			   pv.BUILD_TYPE
13690
		  FROM WORK_IN_PROGRESS rel,
13691
		       packages pkg,
13692
		       package_versions pv,
13693
			   VIEW_DEF vd
13694
		 WHERE pv.pkg_id = pkg.pkg_id
13695
		   AND rel.pv_id = pv.pv_id
13696
		   AND vd.VIEW_ID = ViewId
13697
		   AND vd.PKG_ID = pv.PKG_ID
13698
		   AND rel.RTAG_ID = RtagId
13699
		 ORDER BY UPPER(pkg.PKG_NAME);
1373 dpurdie 13700
 
3959 dpurdie 13701
 
13702
	END IF;	 	
13703
 
13704
 
1373 dpurdie 13705
END;
13706
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13707
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
13708
 
1373 dpurdie 13709
BEGIN
13710
 
3959 dpurdie 13711
	UPDATE WORK_IN_PROGRESS wip SET
13712
	wip.VIEW_ID = NewViewId
13713
	WHERE wip.PV_ID = PvId
13714
	  AND wip.RTAG_ID = RtagId;
13715
 
1373 dpurdie 13716
END;
13717
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13718
END PK_WORK_IN_PROGRESS;
4040 dpurdie 13719
 
3959 dpurdie 13720
/
4040 dpurdie 13721
--------------------------------------------------------
13722
--  DDL for Package Body RM_ISSUES
13723
--------------------------------------------------------
13724
 
5172 dpurdie 13725
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."RM_ISSUES" AS
1373 dpurdie 13726
 
3959 dpurdie 13727
-- Private Implementation -----------------------------------------------------
1373 dpurdie 13728
 
13729
 
3959 dpurdie 13730
	FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER
13731
	AS
1373 dpurdie 13732
 
3959 dpurdie 13733
	BEGIN
13734
		-- start boundary case
13735
		IF ( XXstart < XX ) THEN
13736
			RETURN 1;
1373 dpurdie 13737
 
3959 dpurdie 13738
		ELSIF ( XXstart = XX ) THEN
1373 dpurdie 13739
 
3959 dpurdie 13740
			-- need to consider YY
13741
			IF ( YYstart < YY ) THEN
13742
				RETURN 1;
1373 dpurdie 13743
 
3959 dpurdie 13744
			ELSIF ( YYstart = YY ) THEN
1373 dpurdie 13745
 
3959 dpurdie 13746
					-- need to consider ZZ
13747
					IF ( ZZstart <= ZZ ) THEN
13748
						RETURN 1;
13749
 
13750
					ELSE
13751
						RETURN 0;
13752
					END IF;
13753
 
13754
			ELSE
13755
				RETURN 0;
13756
			END IF;
13757
		ELSE
13758
			RETURN 0;
13759
		END IF;
13760
	EXCEPTION
13761
		WHEN OTHERS THEN
13762
			RETURN -1;
13763
	END;
13764
 
13765
 
13766
	FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER
13767
	AS
13768
 
13769
	BEGIN
13770
		-- end boundary case
13771
		IF ( XX < XXend ) THEN
13772
			RETURN 1;
13773
 
13774
		ELSIF ( XX = XXend ) THEN
13775
 
13776
			-- need to consider YY
13777
			IF ( YY < YYend ) THEN
13778
				RETURN 1;
13779
 
13780
			ELSIF ( YY = YYend ) THEN
13781
 
13782
					-- need to consider ZZ
13783
					IF ( ZZ <= ZZend ) THEN
13784
						RETURN 1;
13785
 
13786
					ELSE
13787
						RETURN 0;
13788
					END IF;
13789
			ELSE
13790
 
13791
				RETURN 0;
13792
			END IF;
13793
		ELSE
13794
			RETURN 0;
13795
		END IF;
13796
	EXCEPTION
13797
		WHEN OTHERS THEN
13798
			RETURN -1;
13799
	END;
13800
 
13801
	/*
13802
	-	version format:		XX.YY.ZZ.abc
13803
	*/
13804
	FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBER
13805
	AS
13806
		XXstart		NUMBER	:=	0;
13807
		XXend		NUMBER	:=	0;
13808
		XX			NUMBER	:=	0;
13809
		YYstart		NUMBER	:=	0;
13810
		YYend		NUMBER	:=	0;
13811
		YY			NUMBER	:=	0;
13812
		ZZstart		NUMBER	:=	0;
13813
		ZZend		NUMBER	:=	0;
13814
		ZZ			NUMBER	:=	0;
13815
		first_dot	NUMBER	:=	0;
13816
		second_dot	NUMBER	:=	0;
13817
		third_dot	NUMBER	:=	0;
13818
 
13819
		ProjExtstart	VARCHAR2(10);
13820
		ProjExtend		VARCHAR2(10);
13821
		ProjExt			VARCHAR2(10);
13822
 
13823
	BEGIN
13824
		-- strip the version number
13825
		first_dot :=  INSTR(version_start, '.', 1, 1);
13826
		second_dot :=  INSTR(version_start, '.', 1, 2);
13827
		third_dot :=  INSTR(version_start, '.', 1, 3);
13828
 
13829
		XXstart := TO_NUMBER( SUBSTR( version_start, 1, first_dot - 1 ) );
13830
		YYstart := TO_NUMBER( SUBSTR( version_start, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
13831
		ZZstart := TO_NUMBER( SUBSTR( version_start, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
13832
		ProjExtstart := SUBSTR( version_start, third_dot + 1, LENGTH(version_start) - third_dot );
13833
 
13834
		first_dot :=  INSTR(version_end, '.', 1, 1);
13835
		second_dot :=  INSTR(version_end, '.', 1, 2);
13836
		third_dot :=  INSTR(version_end, '.', 1, 3);
13837
 
13838
		XXend := TO_NUMBER( SUBSTR( version_end, 1, first_dot - 1 ) );
13839
		YYend := TO_NUMBER( SUBSTR( version_end, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
13840
		ZZend := TO_NUMBER( SUBSTR( version_end, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
13841
		ProjExtend := SUBSTR( version_end, third_dot + 1, LENGTH(version_end) - third_dot );
13842
 
13843
		first_dot :=  INSTR(version, '.', 1, 1);
13844
		second_dot :=  INSTR(version, '.', 1, 2);
13845
		third_dot :=  INSTR(version, '.', 1, 3);
13846
 
13847
		XX := TO_NUMBER( SUBSTR( version, 1, first_dot - 1 ) );
13848
		YY := TO_NUMBER( SUBSTR( version, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
13849
		ZZ := TO_NUMBER( SUBSTR( version, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
13850
		ProjExt := SUBSTR( version, third_dot + 1, LENGTH(version) - third_dot );
13851
 
13852
		-- only include versions if all project extensions are the same
13853
		IF ( ProjExtstart = ProjExt AND ProjExt = ProjExtend ) THEN
13854
 
13855
			IF ( VerIsGrtrThanOrEqlToStart( XXstart, XX, YYstart, YY, ZZstart, ZZ ) = 1 AND VerIsLessThanOrEqlToEnd( XXend, XX, YYend, YY, ZZend, ZZ ) = 1 ) THEN
13856
				RETURN 1;
13857
			ELSE
13858
				RETURN 0;
13859
			END IF;
13860
		ELSE
13861
			RETURN 0;
13862
		END IF;
13863
 
13864
	EXCEPTION
13865
		WHEN OTHERS THEN
13866
			RETURN -1;
13867
	END;
13868
 
13869
	FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBER
13870
	AS
13871
	    pkg_id NUMBER;
13872
	BEGIN
13873
		SELECT
13874
			p.PKG_ID
13875
		INTO
13876
			pkg_id
13877
		FROM
13878
			PACKAGES p
13879
		WHERE
13880
			p.PKG_NAME = pkgName;
13881
 
13882
		RETURN pkg_id;
13883
	EXCEPTION
13884
	    WHEN OTHERS THEN
13885
			dbms_output.put_line('GetPkgId exception: ' || SQLERRM );
13886
			RETURN -1;
13887
	END;
13888
 
13889
 
13890
-- Public Implementation ------------------------------------------------------
13891
 
13892
	/*
13893
	-- Proc: AllIssues - Gets all issues for a package from dependent packages one level deep
13894
	--
13895
	-- INPUT PARAMETERS:
13896
	--
13897
	--		pkg_name  	-  	The name of the top level package to get issues for
13898
	--		version_start	-	The start version for the comparison
13899
	--		version_end	-	The end version for the comparison
13900
	*/
13901
	PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )
13902
	AS
13903
		pkgId	NUMBER;
13904
	BEGIN
13905
		-- get pkg_id of the input package:
13906
		pkgId := GetPkgId( pkg_name );
13907
 
13908
		OPEN vCursor FOR
13909
		SELECT
13910
			  pv.PKG_ID,
13911
			  pv.PKG_VERSION,
13912
			  pv.PV_ID,
13913
			  i_pkg.ISS_ID,
13914
			  ( SELECT pkg_name FROM PACKAGES WHERE pkg_id = pd.DPKG_ID ) AS DPV_NAME,
13915
			  pd.DPKG_ID,
13916
			  ( SELECT pkg_version FROM PACKAGE_VERSIONS WHERE pv_id = pd.DPV_ID ) AS DPV_VER,
13917
			  pd.DPV_ID,
13918
			  i_dpkg.ISS_ID AS ISSUE_ID
13919
		FROM
13920
			 PACKAGE_VERSIONS pv
13921
							  LEFT OUTER JOIN CQ_ISSUES i_pkg ON pv.PV_ID = i_pkg.PV_ID
13922
							  LEFT OUTER JOIN PACKAGE_DEPENDENCIES pd ON pv.PV_ID = pd.PV_ID
13923
							  LEFT OUTER JOIN CQ_ISSUES i_dpkg ON pd.DPV_ID = i_dpkg.PV_ID
13924
		WHERE
13925
   			 pv.PKG_ID = pkgId
13926
		AND
13927
			VersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1
13928
		AND
13929
			 ( i_dpkg.ISS_ID IS NOT NULL OR i_pkg.ISS_ID IS NOT NULL )
13930
		ORDER BY
13931
			 pv.PKG_ID,
13932
			 pv.PV_ID,
13933
			 pd.DPKG_ID,
13934
			 pd.DPV_ID;
13935
	EXCEPTION
13936
		WHEN OTHERS THEN
13937
			dbms_output.put_line('AllIssues exception: ' || SQLERRM );
13938
	END;
13939
 
13940
 
13941
	-- NOTE: make RM_PACKAGE_ISSUES a temporary table when tested ok
13942
 
13943
	/*
13944
	-- Proc: LoadIssuesTable
13945
	--
13946
	-- Populates Package_Issues table with details of issues from all dependent packages.
13947
	-- This will be for all package versions of the input pkg_name between the
13948
	-- version_start and version_end.
13949
	--
13950
	-- INPUT PARAMETERS:
13951
	--
13952
	--		pkg_name  	-  	The name of the top level package to get issues for
13953
	--		version_start	-	The start version for the comparison
13954
	--		version_end	-	The end version for the comparison
13955
	*/
13956
	PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )
13957
	AS
13958
		pkgId	NUMBER;
13959
 
13960
		CURSOR pack_vers_cur IS
13961
			SELECT
13962
				pv.PV_ID,
13963
				pv.PKG_VERSION,
13964
				pv.PKG_ID,
13965
				p.PKG_NAME
13966
			FROM
13967
				PACKAGE_VERSIONS pv
13968
					JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
13969
			WHERE
13970
   				 pv.PKG_ID = pkgId
13971
			AND
13972
				VersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1;
13973
 
13974
	BEGIN
13975
		DELETE FROM RELEASE_MANAGER.RM_PKG_ISSUES; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
13976
 
13977
		-- get the pkg_id we are finding issues for
13978
		pkgId := GetPkgId( pkg_name );
13979
 
13980
		-- find all the top level packages we are dealing with and recursively process their issues and their dependent package issues.
13981
		FOR pack_ver_rec IN  pack_vers_cur
13982
		LOOP
13983
			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 );
13984
			COMMIT;
13985
		END LOOP;
13986
 
13987
		-- The output cursor - shows the individual versions of the top level package then were reported on
13988
		OPEN vCursor FOR
13989
		SELECT DISTINCT ISS_ID, PKG_VERSION FROM RM_PKG_ISSUES WHERE ISS_ID IS NOT NULL; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
13990
/*removed
13991
		SELECT
13992
			PKG_VERSION
13993
		FROM
13994
			RELEASE_MANAGER.RM_PACKAGE_ISSUES;
13995
*/
13996
 
13997
 
13998
	EXCEPTION
13999
		WHEN OTHERS THEN
14000
			dbms_output.put_line('LoadIssuesTable exception: ' || SQLERRM );
14001
	END;
14002
 
14003
 
14004
	/*
14005
	-- Proc: InsertIssuesForDepends
14006
	--
14007
	-- Used by LoadIssuesTable to recursively find issues for all dependent packages
14008
	--
14009
	-- INPUT PARAMETERS:
14010
	--
14011
	--		pvID  		-  	The package version id of the package to get issues for
14012
	--		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)
14013
	--		top_pkgName -  	The package name of the top level package
14014
	--		top_pvID  	-  	The package version id of the top level package
14015
	--		top_pkgVer  -  	The package version description of the top level package
14016
	*/
14017
	PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 )
14018
	AS
14019
		pkgId		NUMBER;
14020
		issCnt		NUMBER := 0;
14021
		pkgCheck	NUMBER := 0;
14022
		depCheck	NUMBER := 0;
14023
 
14024
		dpkgName	VARCHAR(50);
14025
		dpkgVersion	VARCHAR(50);
14026
 
14027
		CURSOR dep_packs_cur IS
14028
			SELECT
14029
				DPV_ID
14030
			FROM
14031
				PACKAGE_DEPENDENCIES
14032
			WHERE
14033
				PV_ID = pvID;
14034
 
14035
	BEGIN
14036
 
14037
		-- check to see if the package has been processed previously
14038
		SELECT
14039
			COUNT(*)
14040
		INTO
14041
			pkgCheck
14042
		FROM
14043
			RM_PKG_ISSUES /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
14044
		WHERE
14045
			DPV_ID = pvID;
14046
 
14047
		dbms_output.put_line('pkgCheck: ' || pkgCheck );
14048
 
14049
		-- Package not already processed (no cyclic dependency) - process it
14050
		IF ( pkgCheck = 0 ) THEN
14051
 
14052
			-- check to see if this package version has any issues assigned to it
14053
			SELECT
14054
				COUNT(*)
14055
			INTO
14056
				issCnt
14057
			FROM
14058
				CQ_ISSUES i
14059
			WHERE
14060
				i.PV_ID = pvID;
14061
 
14062
			dbms_output.put_line('issCnt: ' || issCnt );
14063
 
14064
			-- Always enter a marker row into the table even if there are no issues for the package.
14065
			-- This allows us to pick up any cyclic dependencies.
14066
			IF ( issCnt > 0 ) THEN
14067
				-- get issues and insert into RM_PACKAGE_ISSUES
14068
				/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
14069
 
14070
				INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )
14071
					SELECT DISTINCT
14072
						top_pkgID		AS PKG_ID,
14073
						top_pkgName		AS PKG_NAME,
14074
						top_pvID		AS PV_ID,
14075
						top_pkgVer		AS PKG_VERSION,
14076
						pv.PV_ID		AS DPV_ID,
14077
						p.PKG_NAME		AS DPKG_NAME,
14078
						pv.PKG_VERSION	AS DPKG_VERSION,
14079
						ci.ISS_DB,
14080
						ci.ISS_ID
14081
					FROM
14082
						PACKAGE_VERSIONS pv
14083
							JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
14084
							JOIN CQ_ISSUES ci ON pv.PV_ID = ci.PV_ID
14085
					WHERE
14086
						pv.PV_ID = pvID;
14087
 
14088
			ELSE
14089
				-- get the dpkg details - there will always be a row returned here
14090
				SELECT
14091
					p.PKG_NAME
14092
				INTO
14093
					dpkgName
14094
				FROM
14095
					PACKAGE_VERSIONS pv
14096
						JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
14097
				WHERE
14098
	   				 pv.PV_ID = pvID;
14099
 
14100
				SELECT
14101
					pv.PKG_VERSION
14102
				INTO
14103
					dpkgVersion
14104
				FROM
14105
					PACKAGE_VERSIONS pv
14106
				WHERE
14107
	   				 pv.PV_ID = pvID;
14108
 
14109
				-- enter a marker row
14110
				/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
14111
				INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )
14112
				VALUES (
14113
					top_pkgID,
14114
					top_pkgName,
14115
					top_pvID,
14116
					top_pkgVer,
14117
					pvID,
14118
					dpkgName,
14119
					dpkgVersion,
14120
					NULL,
14121
					NULL );
14122
 
14123
			END IF;
14124
 
14125
			-- If this package version has dependencies then recurse
14126
			SELECT
14127
				COUNT(*)
14128
			INTO
14129
				depCheck
14130
			FROM
14131
				PACKAGE_DEPENDENCIES
14132
			WHERE
14133
				PV_ID = pvID;
14134
 
14135
			IF ( depCheck > 0 ) THEN
14136
				-- get dependencies and call this function recursively for each one
14137
				FOR dep_rec IN  dep_packs_cur
14138
				LOOP
14139
					InsertIssuesForDepends( dep_rec.DPV_ID, top_pkgID, top_pkgName, top_pvID, top_pkgVer );
14140
				END LOOP;
14141
 
14142
			END IF;
14143
 
14144
		END IF;
14145
 
14146
	/*EXCEPTION
14147
		WHEN OTHERS THEN
14148
			no exception handling required
14149
	*/
14150
	END;
14151
 
14152
END Rm_Issues;
4040 dpurdie 14153
 
1374 dpurdie 14154
/
4040 dpurdie 14155
--------------------------------------------------------
14156
--  DDL for Procedure ADD_AUTOBUILD_FAILURE_INFO
14157
--------------------------------------------------------
14158
set define off;
14159
 
5172 dpurdie 14160
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_AUTOBUILD_FAILURE_INFO" (
1373 dpurdie 14161
   nprojid     IN   NUMBER,
14162
   nviewid     IN   NUMBER,
14163
   suserlist   IN   VARCHAR2
14164
)
14165
IS
14166
   groupid   NUMBER;
14167
/******************************************************************************
14168
   NAME:       ADD_AUTOBUILD_FAILURE
14169
   PURPOSE:
14170
 
14171
   REVISIONS:
14172
   Ver        Date        Author           Description
14173
   ---------  ----------  ---------------  ------------------------------------
14174
   1.0        11/04/2006   Rupesh Solanki Created this procedure.
14175
 
14176
   NOTES:
14177
 
14178
   Automatically available Auto Replace Keywords:
14179
      Object Name:     ADD_AUTOBUILD_FAILURE
14180
      Sysdate:         11/04/2006
14181
      Date and Time:   11/04/2006, 9:28:28 AM, and 11/04/2006 9:28:28 AM
14182
      Username:         (set in TOAD Options, Procedure Editor)
14183
      Table Name:       (set in the "New PL/SQL Object" dialog)
14184
 
14185
******************************************************************************/
14186
BEGIN
14187
   BEGIN
14188
      SELECT group_email_id
14189
        INTO groupid
14190
        FROM autobuild_failure
14191
       WHERE proj_id = nprojid AND view_id = nviewid;
14192
   EXCEPTION
14193
      WHEN NO_DATA_FOUND
14194
      THEN
14195
         --  Create Next Sequence Id ---
14196
         SELECT seq_group_email_id.NEXTVAL
14197
           INTO groupid
14198
           FROM DUAL;
14199
 
14200
         INSERT INTO autobuild_failure
14201
                     (group_email_id, proj_id, view_id
14202
                     )
14203
              VALUES (groupid, nprojid, nviewid
14204
                     );
14205
   END;
14206
 
14207
   add_view_members (groupid, suserlist);
14208
END add_autobuild_failure_info;
4040 dpurdie 14209
 
1374 dpurdie 14210
/
4040 dpurdie 14211
--------------------------------------------------------
14212
--  DDL for Procedure ADD_COMPONENT
14213
--------------------------------------------------------
14214
set define off;
14215
 
5172 dpurdie 14216
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_COMPONENT" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE,
3959 dpurdie 14217
	   	  		  						  	sFileName IN RELEASE_COMPONENTS.FILE_NAME%TYPE,
14218
											sFilePath IN RELEASE_COMPONENTS.FILE_PATH%TYPE DEFAULT NULL,
14219
											nByteSize IN RELEASE_COMPONENTS.BYTE_SIZE%TYPE,
14220
											sCRCcksum IN RELEASE_COMPONENTS.CRC_CKSUM%TYPE DEFAULT NULL,
14221
											sCRCmodcrc IN RELEASE_COMPONENTS.CRC_MODCRC%TYPE DEFAULT NULL
14222
                                           ) IS
14223
/* ---------------------------------------------------------------------------
14224
    Version: 3.0.0
14225
   --------------------------------------------------------------------------- */
1373 dpurdie 14226
 
14227
 
14228
BEGIN
14229
 
3959 dpurdie 14230
	 --- Insert into RELEASE_COMPONENTS
14231
	 INSERT INTO RELEASE_COMPONENTS ( PV_ID, FILE_NAME, FILE_PATH, BYTE_SIZE, CRC_CKSUM, CRC_MODCRC )
14232
	 VALUES ( nPvId, sFileName, sFilePath, nByteSize, sCRCcksum, sCRCmodcrc  );
1373 dpurdie 14233
 
14234
 
3959 dpurdie 14235
 
14236
 
14237
END Add_Component;
4040 dpurdie 14238
 
1374 dpurdie 14239
/
4040 dpurdie 14240
--------------------------------------------------------
14241
--  DDL for Procedure ADD_PACKAGE_INTEREST
14242
--------------------------------------------------------
14243
set define off;
14244
 
5172 dpurdie 14245
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_PACKAGE_INTEREST" (nProjId IN PROJECTS.PROJ_ID%TYPE,
3959 dpurdie 14246
	   	  		  								  nPkgIdList IN VARCHAR2,
14247
												  nUserId IN NUMBER
14248
	   	  		  								  ) IS
1373 dpurdie 14249
 
3959 dpurdie 14250
/******************************************************************************
14251
   NAME:       ADD_PACKAGE_INTEREST
14252
   PURPOSE:    
1373 dpurdie 14253
 
3959 dpurdie 14254
   REVISIONS:
14255
   Ver        Date        Author           Description
14256
   ---------  ----------  ---------------  ------------------------------------
14257
   1.0        12/05/2006  Rupesh Solanki     1. Created this procedure.
14258
 
14259
   NOTES:
14260
 
14261
   Automatically available Auto Replace Keywords:
14262
      Object Name:     ADD_PACKAGE_INTEREST
14263
      Sysdate:         12/05/2006
14264
      Date and Time:   12/05/2006, 9:11:12 AM, and 12/05/2006 9:11:12 AM
14265
      Username:         (set in TOAD Options, Procedure Editor)
14266
      Table Name:       (set in the "New PL/SQL Object" dialog)
14267
 
14268
******************************************************************************/
14269
   npkgidcollector   relmgr_number_tab_t := relmgr_number_tab_t ();
14270
   nPkgId NUMBER;
1373 dpurdie 14271
BEGIN
14272
 
3959 dpurdie 14273
	 npkgidcollector := in_list_number2 (nPkgIdList);
14274
 
14275
	FOR i IN 1..npkgidcollector.COUNT
14276
	LOOP
14277
		nPkgId := npkgidcollector(i);
1373 dpurdie 14278
 
3959 dpurdie 14279
	 --- Insert into PACKAGE_INTEREST TABLE
14280
	 INSERT INTO PACKAGE_INTEREST (PROJ_ID, PKG_ID, USER_ID)
14281
	 VALUES(nProjId, nPkgId, nUserId);
14282
	END LOOP;	 
14283
 
1373 dpurdie 14284
 
3959 dpurdie 14285
END ADD_PACKAGE_INTEREST;
4040 dpurdie 14286
 
3959 dpurdie 14287
/
4040 dpurdie 14288
--------------------------------------------------------
14289
--  DDL for Procedure ADD_PACKAGE_INTEREST_TEST
14290
--------------------------------------------------------
14291
set define off;
14292
 
5172 dpurdie 14293
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_PACKAGE_INTEREST_TEST" (nProjId IN PROJECTS.PROJ_ID%TYPE,
3959 dpurdie 14294
	   	  		  								  nPkgIdList IN VARCHAR2,
14295
												  nUserId IN NUMBER
14296
	   	  		  								  ) IS
1373 dpurdie 14297
 
3959 dpurdie 14298
/******************************************************************************
14299
   NAME:       ADD_PACKAGE_INTEREST
14300
   PURPOSE:    
14301
 
14302
   REVISIONS:
14303
   Ver        Date        Author           Description
14304
   ---------  ----------  ---------------  ------------------------------------
14305
   1.0        12/05/2006  Rupesh Solanki     1. Created this procedure.
14306
 
14307
   NOTES:
14308
 
14309
   Automatically available Auto Replace Keywords:
14310
      Object Name:     ADD_PACKAGE_INTEREST
14311
      Sysdate:         12/05/2006
14312
      Date and Time:   12/05/2006, 9:11:12 AM, and 12/05/2006 9:11:12 AM
14313
      Username:         (set in TOAD Options, Procedure Editor)
14314
      Table Name:       (set in the "New PL/SQL Object" dialog)
14315
 
14316
******************************************************************************/
14317
   npkgidcollector   relmgr_number_tab_t := relmgr_number_tab_t ();
14318
   nPkgId NUMBER;
14319
BEGIN
14320
 
14321
	 npkgidcollector := in_list_number2 (nPkgIdList);
14322
 
14323
	FOR i IN 1..npkgidcollector.COUNT
14324
	LOOP
14325
		nPkgId := npkgidcollector(i);
14326
 
14327
	 --- Insert into PACKAGE_INTEREST TABLE
14328
	 INSERT INTO PACKAGE_INTEREST (PROJ_ID, PKG_ID, USER_ID)
14329
	 VALUES(nProjId, nPkgId, nUserId);
14330
	END LOOP;	 
14331
 
14332
 
14333
END ADD_PACKAGE_INTEREST_TEST;
4040 dpurdie 14334
 
1374 dpurdie 14335
/
4040 dpurdie 14336
--------------------------------------------------------
14337
--  DDL for Procedure ADD_RUNTIME_DEPENDENCY
14338
--------------------------------------------------------
14339
set define off;
14340
 
5172 dpurdie 14341
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_RUNTIME_DEPENDENCY" ( NNpv_id IN NUMBER,
3959 dpurdie 14342
                                                     SSrtd_name IN PACKAGES.pkg_name%TYPE,
14343
                                                     SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
14344
                                                     NNuser_id IN NUMBER
14345
                                                    ) IS
1373 dpurdie 14346
/* ---------------------------------------------------------------------------
3959 dpurdie 14347
    Version: 3.1
1373 dpurdie 14348
   --------------------------------------------------------------------------- */
14349
 
3959 dpurdie 14350
    retRTD_ID NUMBER;
14351
 
14352
	CURSOR rtd_cur IS
14353
        SELECT rtd_id FROM runtime_dependencies WHERE pv_id = NNpv_id AND rtd_id = retRTD_ID;
14354
    rtd_rec rtd_cur%ROWTYPE;
14355
 
1373 dpurdie 14356
BEGIN
3959 dpurdie 14357
    --- Seed database with package_name and version if required ---
14358
    Seed_Package_Names_Versions ( SSrtd_name, SSrtd_version, NNuser_id, retRTD_ID );
1373 dpurdie 14359
 
3959 dpurdie 14360
	OPEN rtd_cur;
14361
    FETCH rtd_cur INTO rtd_rec;
1373 dpurdie 14362
 
3959 dpurdie 14363
    IF rtd_cur%NOTFOUND
14364
    THEN
14365
		/* Make sure it does not exists already as runtime dependency */
1373 dpurdie 14366
 
3959 dpurdie 14367
		--- Add new Runtime Dependency ---
14368
	    INSERT INTO runtime_dependencies ( pv_id, rtd_id, mod_date, mod_user )
14369
	    VALUES (  NNpv_id, retRTD_ID, ORA_SYSDATE , NNuser_id );
1373 dpurdie 14370
 
3959 dpurdie 14371
    	/* LOG ACTION */
14372
        Log_Action ( NNpv_id, 'runtime_add', NNuser_id,
14373
    			     'Runtime package: '|| SSrtd_name ||' '|| SSrtd_version );
14374
 
14375
	END IF;
14376
 
14377
 
14378
END Add_Runtime_Dependency;
4040 dpurdie 14379
 
1374 dpurdie 14380
/
4040 dpurdie 14381
--------------------------------------------------------
14382
--  DDL for Procedure ADD_VIEW_MEMBERS
14383
--------------------------------------------------------
14384
set define off;
14385
 
5172 dpurdie 14386
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_VIEW_MEMBERS" (nGroupId IN NUMBER, sUserList IN VARCHAR2) IS
3959 dpurdie 14387
 
14388
/******************************************************************************
14389
   NAME:       ADD_VIEW_MEMBERS
14390
   PURPOSE:    
14391
 
14392
   REVISIONS:
14393
   Ver        Date        Author           Description
14394
   ---------  ----------  ---------------  ------------------------------------
14395
   1.0        11/04/2006          1. Created this procedure.
14396
 
14397
   NOTES:
14398
 
14399
   Automatically available Auto Replace Keywords:
14400
      Object Name:     ADD_VIEW_MEMBERS
14401
      Sysdate:         11/04/2006
14402
      Date and Time:   11/04/2006, 9:52:58 AM, and 11/04/2006 9:52:58 AM
14403
      Username:         (set in TOAD Options, Procedure Editor)
14404
      Table Name:       (set in the "New PL/SQL Object" dialog)
14405
 
14406
******************************************************************************/
14407
CURSOR user_cur IS
14408
	SELECT u.USER_ID
14409
	  FROM USERS u
14410
	 WHERE u.USER_ID IN (
14411
	 	   			   	SELECT * 
14412
						  FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserList ) AS RELMGR_NUMBER_TAB_t ) FROM dual ) 
14413
						);
14414
user_rec user_cur%ROWTYPE;
14415
 
14416
 
14417
BEGIN
14418
 
14419
	 OPEN user_cur;
14420
	 FETCH user_cur INTO user_rec;
14421
 
14422
	 WHILE user_cur%FOUND
14423
	 LOOP
14424
	 	 INSERT INTO MEMBERS_GROUP (GROUP_EMAIL_ID, USER_ID)
14425
	 	 VALUES ( nGroupId, user_rec.USER_ID);
14426
 
14427
	 	 FETCH user_cur INTO user_rec;	 
14428
	 END LOOP;	 
14429
 
14430
 
14431
 
14432
END ADD_VIEW_MEMBERS;
4040 dpurdie 14433
 
1374 dpurdie 14434
/
4040 dpurdie 14435
--------------------------------------------------------
14436
--  DDL for Procedure BASIC_CLONE
14437
--------------------------------------------------------
14438
set define off;
14439
 
5172 dpurdie 14440
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."BASIC_CLONE" ( nFROMpv_id IN NUMBER,
1373 dpurdie 14441
                        nTOpv_id IN NUMBER,
14442
                        nRtag_id IN NUMBER,
14443
                        nUser_id IN NUMBER,
14444
                        nTOpkg_id IN NUMBER DEFAULT NULL,
14445
                        enumISSUES_STATE_IMPORTED IN NUMBER DEFAULT NULL ) IS
14446
 
14447
   FromVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
14448
   major NUMBER;
14449
   minor NUMBER;
14450
   patch NUMBER;
14451
   buildn NUMBER;
14452
   from_vcs_type_id NUMBER;
14453
BEGIN
14454
------------------------------ Version Control System ------------------------------------------
14455
   SELECT vcs_type_id
14456
      INTO from_vcs_type_id
14457
      FROM package_versions WHERE pv_id = nFROMpv_id;
14458
 
14459
   UPDATE package_versions
14460
      SET vcs_type_id = from_vcs_type_id
14461
      WHERE pv_id = nTOpv_id;
14462
------------------------------------- Limits ---------------------------------------------------
14463
   select major_limit, minor_limit, patch_limit, build_number_limit
14464
   into major, minor, patch, buildn
14465
   from package_versions where pv_id=nFROMpv_id;
14466
    UPDATE package_versions SET
14467
           major_limit = major,
14468
           minor_limit = minor,
14469
           patch_limit = patch,
14470
           build_number_limit = buildn
14471
     WHERE PV_ID = nTOpv_id;
14472
------------------------------------- Clone Dependencies ---------------------------------------------------
14473
   IF NOT nRtag_id IS NULL
14474
   THEN
14475
      -- Auto Update Dependencies --
14476
      INSERT INTO PACKAGE_DEPENDENCIES
14477
           SELECT nTOpv_id AS pv_id,
14478
                  DECODE(nUser_id,
14479
                         frc.modifier_id,
14480
                         frc.pv_id,
14481
                         DECODE(frc.dlocked,
14482
                                'Y',
14483
                                frc.pv_id,
14484
                                dep.dpv_id)
14485
                         ) AS dpv_id,
14486
                  nTOpkg_id AS pkg_id,
14487
                  dep.dpkg_id,
14488
                  dep.build_type,
14489
                  dep.display_order
14490
             FROM PACKAGE_DEPENDENCIES dep,
14491
                  PACKAGE_VERSIONS pv,
14492
                  (
14493
                  /* Full Release Contents used for reference*/
14494
                  SELECT rpv.pv_id, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext, rpv.modifier_id, rpv.dlocked
14495
                  FROM RELEASE_CONTENT rel, PACKAGE_VERSIONS rpv
14496
                  WHERE rel.pv_id = rpv.pv_id AND rtag_id = nRtag_id
14497
                  ) frc
14498
            WHERE dep.pv_id = nFROMpv_id
14499
              AND dep.dpv_id = pv.pv_id
14500
              AND pv.pkg_id = frc.pkg_id(+)
14501
              AND NVL(pv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+);
14502
   ELSE
14503
      -- Clone Dependencies --
14504
      INSERT INTO PACKAGE_DEPENDENCIES
14505
           SELECT nTOpv_id         AS pv_id,
14506
                  dep.dpv_id,
14507
                  nTOpkg_id        AS pkg_id,
14508
                  dep.dpkg_id,
14509
                  dep.build_type,
14510
                  dep.display_order
14511
             FROM PACKAGE_DEPENDENCIES dep
14512
            WHERE dep.pv_id = nFROMpv_id;
14513
 
14514
   END IF;
14515
 
14516
----------------------------------------- Clone Issues -------------------------------------------------------
14517
   IF enumISSUES_STATE_IMPORTED IS NULL
14518
   THEN
14519
        /* All Issues */
14520
       INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
14521
            SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
14522
              FROM CQ_ISSUES
14523
             WHERE pv_id = nFROMpv_id;
14524
   ELSE
14525
       /* Outstanding Issues Only */
14526
       INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
14527
            SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
14528
              FROM CQ_ISSUES
14529
             WHERE pv_id = nFROMpv_id
14530
               AND iss_state = enumISSUES_STATE_IMPORTED;
14531
   END IF;
14532
 
14533
------------------------------------ Clone Runtime Dependencies -----------------------------------------------
14534
   INSERT INTO RUNTIME_DEPENDENCIES (pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user)
14535
       SELECT nTOpv_id AS pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user
14536
       FROM RUNTIME_DEPENDENCIES WHERE pv_id = nFROMpv_id;
14537
 
14538
--------------------------------------- Clone Additional Notes ------------------------------------------------
14539
   INSERT INTO ADDITIONAL_NOTES ( NOTE_ID, PV_ID, NOTE_TITLE, NOTE_BODY, MOD_DATE, MOD_USER )
14540
        SELECT an.NOTE_ID,
14541
               nTOpv_id AS PV_ID,
14542
               an.NOTE_TITLE,
14543
               an.NOTE_BODY,
14544
               an.MOD_DATE,
14545
               an.MOD_USER
14546
          FROM ADDITIONAL_NOTES an
14547
         WHERE an.PV_ID = nFROMpv_id;
14548
 
14549
-------------------------------------------- Clone Unit Tests -------------------------------------------------
14550
   -- Clone only Automatic unit tests --
14551
   INSERT INTO UNIT_TESTS (
14552
                           TEST_ID,
14553
                           PV_ID,
14554
                           TEST_TYPES_FK,
14555
                           TEST_SUMMARY,
14556
                           COMPLETION_DATE,
14557
                           COMPLETED_BY,
14558
                           RESULTS_URL,
14559
                           RESULTS_ATTACHMENT_NAME,
14560
                           NUMOF_TEST
14561
                          )
14562
        SELECT ut.TEST_ID,
14563
               nTOpv_id AS PV_ID,
14564
               ut.TEST_TYPES_FK,
14565
               ut.TEST_SUMMARY,
14566
               Ora_Sysdate AS COMPLETION_DATE,
14567
               nUser_id AS COMPLETED_BY,
14568
               ut.RESULTS_URL,
14569
               ut.RESULTS_ATTACHMENT_NAME,
14570
               ut.NUMOF_TEST
14571
          FROM UNIT_TESTS ut
14572
         WHERE ut.PV_ID = nFROMpv_id
14573
           AND ut.TEST_TYPES_FK IN ( 5, 7 );
14574
 
14575
    -- Clone only Interactive Unit Tests --
14576
    INSERT INTO UNIT_TESTS (
14577
                            TEST_ID,
14578
                            PV_ID,
14579
                            TEST_TYPES_FK,
14580
                            TEST_SUMMARY
14581
                           )
14582
       SELECT ut.TEST_ID,
14583
              nTOpv_id AS PV_ID,
14584
              ut.TEST_TYPES_FK,
14585
              ut.TEST_SUMMARY
14586
         FROM UNIT_TESTS ut
14587
        WHERE ut.PV_ID = nFROMpv_id
14588
          AND ut.TEST_TYPES_FK IN (6);
14589
 
14590
-------------------------------------------- Clone Package Documents ------------------------------------------
14591
   INSERT INTO PACKAGE_DOCUMENTS ( PV_ID, TEST_ID, DOC_NUM, DOC_ID, IS_LATEST )
14592
        SELECT nTOpv_id AS PV_ID,
14593
               pd.test_id,
14594
               pd.doc_num,
14595
               pd.doc_id,
14596
               pd.IS_LATEST
14597
          FROM PACKAGE_DOCUMENTS pd
14598
         WHERE pd.PV_ID = nFROMpv_id;
14599
 
14600
-------------------------------------------- Clone Build Environments -----------------------------------------
14601
    INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID, BUILD_TYPE )
14602
    SELECT nTOpv_id AS PV_ID,
14603
           pkgbe.BE_ID,
14604
           pkgbe.BUILD_TYPE
14605
      FROM PACKAGE_BUILD_ENV pkgbe
14606
     WHERE pkgbe.PV_ID = nFROMpv_id;
14607
---------------------------------------------Clone Package Build Info------------------------------------------
14608
    INSERT INTO PACKAGE_BUILD_INFO (PV_ID, BM_ID, BSA_ID)
14609
    SELECT nTOpv_id AS PV_ID,
14610
           pkgbinfo.BM_ID,
14611
           pkgbinfo.BSA_ID
14612
      FROM PACKAGE_BUILD_INFO pkgbinfo
14613
     WHERE pkgbinfo.PV_ID = nFROMpv_id;
14614
---------------------------------------------Clone Package Version Processes-----------------------------------
14615
    INSERT INTO PACKAGE_PROCESSES ( PV_ID, PROC_ID )
14616
    SELECT nTOpv_id AS PV_ID,
14617
           pp.PROC_ID
14618
      FROM PACKAGE_PROCESSES pp
14619
     WHERE pp.PV_ID = nFROMpv_id;
14620
---------------------------------------------Clone Licencing Associations-----------------------------------
14621
    PK_LICENCING.CLONE_LICENCING(nFROMpv_id, nTOpv_id, nUser_id);
14622
---------------------------------------------------------------------------------------------------------------
14623
 
14624
    /* LOG ACTION */
14625
    SELECT pv.PKG_VERSION INTO FromVersion
14626
      FROM PACKAGE_VERSIONS pv
14627
     WHERE pv.PV_ID = nFROMpv_id;
14628
 
14629
    Log_Action ( nTOpv_id, 'clone_from', nUser_id,
14630
                 'Details cloned from: '|| FromVersion );
14631
 
14632
---------------------------------------------------------------------------------------------------------------
14633
 
14634
END Basic_Clone;
4040 dpurdie 14635
 
1374 dpurdie 14636
/
4040 dpurdie 14637
--------------------------------------------------------
14638
--  DDL for Procedure BUILD_TREE
14639
--------------------------------------------------------
14640
set define off;
14641
 
5172 dpurdie 14642
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."BUILD_TREE" ( nRtag_id IN NUMBER,
3959 dpurdie 14643
	   	  		  					     retSessionNum OUT NUMBER ) IS
14644
 
1373 dpurdie 14645
/* ---------------------------------------------------------------------------
3959 dpurdie 14646
    Version: 3.0.0
1373 dpurdie 14647
   --------------------------------------------------------------------------- */
3959 dpurdie 14648
    rowCnt 			NUMBER := 0;						-- Iterations counter
14649
    iteration 		NUMBER := 1;                  -- Maximum number of iterations allowed.
14650
    maxIterations 	NUMBER := 50;      	  	-- This will prevent infinite loops if cyrcular dependencies are found
14651
	UP_THE_TREE 	CONSTANT NUMBER DEFAULT 1;
14652
	DOWN_THE_TREE 	CONSTANT NUMBER DEFAULT -1;
14653
    sessionNum 		NUMBER;
14654
	levelNum		NUMBER;
14655
 
14656
BEGIN
14657
    SELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;
14658
 
14659
	/*
14660
	||	   Start UP THE TREE
14661
	*/
14662
 
14663
 
14664
	/* Packages with no dependencies */    
14665
    INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
14666
		SELECT sessionNum AS SESSION_NUM,
14667
			   iteration AS LEVEL_NUM,
14668
			   UP_THE_TREE AS DIRECTION,
14669
			   rc.pv_id, pv.pkg_id, pv.v_ext
14670
		  FROM release_content rc,
14671
		  	   package_versions pv
14672
		 WHERE rc.rtag_id = nRtag_id
14673
		   AND rc.pv_id = pv.pv_id
14674
		 MINUS
14675
		SELECT sessionNum AS SESSION_NUM, 
14676
			   iteration AS LEVEL_NUM,
14677
			   UP_THE_TREE AS DIRECTION,
14678
			   dep.pv_id, pv.pkg_id, pv.v_ext
14679
		  FROM package_dependencies dep,
14680
		  	   package_versions pv
14681
		 WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtag_id )
14682
		   AND dep.pv_id = pv.pv_id;
14683
 
14684
 
14685
	/* Browse UP the build tree */	   
14686
	iteration := iteration + 1;
14687
    LOOP
14688
 
14689
		INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
14690
			SELECT DISTINCT 
14691
			       sessionNum AS SESSION_NUM,
14692
			       iteration AS LEVEL_NUM,
14693
				   UP_THE_TREE AS DIRECTION, 
14694
				   rdep.pv_id, rdep.pkg_id, rdep.v_ext
14695
			  FROM (  
14696
			        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
14697
			          FROM package_dependencies dep,
14698
			               release_content rc,
14699
						   package_versions pv,
14700
						   package_versions dpv
14701
			         WHERE dep.pv_id = rc.pv_id
14702
			           AND rc.rtag_id = nRtag_id
14703
					   AND dep.pv_id = pv.pv_id
14704
					   AND dep.dpv_id = dpv.pv_id
14705
					) rdep,
14706
					temp_tree_browse ttb
14707
			 WHERE rdep.dpkg_id  = ttb.pkg_id
14708
			   AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext,'|LINK_A_NULL|')
14709
			   AND ttb.SESSION_NUM = sessionNum
14710
			   AND ttb.LEVEL_NUM = iteration - 1	
14711
			MINUS
14712
			/* Packages with all depencencies NOT matched */  
14713
			SELECT DISTINCT 
14714
			       sessionNum AS SESSION_NUM,
14715
			       iteration AS LEVEL_NUM, 
14716
				   UP_THE_TREE AS DIRECTION,
14717
				   rdep.pv_id, rdep.pkg_id, rdep.v_ext
14718
			  FROM (  
14719
			        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
14720
			          FROM package_dependencies dep,
14721
			               release_content rc,
14722
						   package_versions pv,
14723
						   package_versions dpv
14724
			         WHERE dep.pv_id = rc.pv_id
14725
			           AND rc.rtag_id = nRtag_id
14726
					   AND dep.pv_id = pv.pv_id
14727
					   AND dep.dpv_id = dpv.pv_id
14728
					) rdep,
14729
					(
14730
					 SELECT tb.*
14731
					   FROM temp_tree_browse tb
14732
					  WHERE tb.SESSION_NUM = sessionNum
14733
					) ttb
14734
			 WHERE rdep.dpkg_id  = ttb.pkg_id (+)
14735
			   AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext (+),'|LINK_A_NULL|')
14736
			   AND ttb.SESSION_NUM IS NULL;
14737
 
14738
		rowCnt := SQL%ROWCOUNT;
14739
		IF rowCnt > 0 THEN
14740
           iteration := iteration + 1;
14741
		END IF;
14742
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
14743
    END LOOP;
14744
 
14745
	/*---------------------------------------------------------------------------------------------------------------------*/
14746
 
14747
	/*     Check for unresolved dependencies
14748
	||  
14749
	*/
14750
	/* UNRESOLVED */
14751
	 SELECT COUNT(*) INTO rowCnt
14752
	   FROM (
14753
			 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
14754
			  FROM release_content rc,
14755
			  	   package_versions pv
14756
			 WHERE rc.rtag_id = nRtag_id
14757
			   AND rc.pv_id = pv.pv_id	   
14758
			MINUS
14759
			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
14760
			  FROM temp_tree_browse ttb
14761
			 WHERE ttb.session_num = sessionNum
14762
			);
14763
 
14764
 
14765
 
14766
	 IF rowCnt > 0 
14767
	 THEN
14768
	 	 /*     Circular dependencies detected.
14769
		 ||     Try to resolve build order from the top now.
14770
		 ||		Start DOWN THE TREE
14771
		 */
14772
 
14773
		iteration := 0; 
14774
		 /* Top Level packages */	
14775
		INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )	   
14776
			SELECT sessionNum AS SESSION_NUM,
14777
			       iteration AS LEVEL_NUM,
14778
				   DOWN_THE_TREE AS DIRECTION,
14779
				   pv.pv_id, pv.pkg_id, pv.v_ext
14780
			  FROM (		   
14781
					/* Packages no one depends on ( Top level packages )*/
14782
					( 
14783
					/* All parents*/ 
14784
					SELECT pv.pkg_id, pv.v_ext
14785
			          FROM package_dependencies dep,
14786
			               release_content rc,
14787
						   package_versions pv
14788
			         WHERE dep.pv_id = rc.pv_id
14789
			           AND rc.rtag_id = nRtag_id
14790
					   AND dep.pv_id = pv.pv_id
14791
					 MINUS
14792
					 /* All children */
14793
					SELECT dpv.pkg_id, dpv.v_ext
14794
			          FROM package_dependencies dep,
14795
			               release_content rc,
14796
						   package_versions dpv
14797
			         WHERE dep.pv_id = rc.pv_id
14798
			           AND rc.rtag_id = nRtag_id
14799
					   AND dep.dpv_id = dpv.pv_id
14800
					 ) 
14801
					 MINUS
14802
					/* Packages with resolved dependencies from UP THE TREE */ 
14803
					SELECT ttb.pkg_id, ttb.v_ext
14804
					  FROM temp_tree_browse ttb
14805
					 WHERE ttb.session_num = sessionNum
14806
				  ) tpkg,
14807
				  package_versions pv,
14808
				  release_content rc
14809
			WHERE rc.rtag_id = nRtag_id
14810
			  AND rc.pv_id = pv.pv_id
14811
			  AND tpkg.pkg_id = pv.pkg_id
14812
			  AND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');
14813
 
14814
 
14815
		 /* Keep taking packages which no one depende on */			  
14816
		 iteration := iteration - 1;  
14817
		 LOOP	  
14818
			   INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
14819
					SELECT sessionNum AS SESSION_NUM,
14820
					       iteration AS LEVEL_NUM,
14821
					       DOWN_THE_TREE AS DIRECTION,
14822
					       pv.pv_id, pv.pkg_id, pv.v_ext
14823
					  FROM (		   
14824
					 	/* All Unresolved */
14825
					 	(
14826
					 	SELECT pv.pkg_id, pv.v_ext
14827
					 	  FROM release_content rc,
14828
					 	  	   package_versions pv
14829
					 	 WHERE rc.rtag_id = nRtag_id
14830
					 	   AND rc.pv_id = pv.pv_id	   
14831
					 	MINUS
14832
					 	SELECT ttb.pkg_id, ttb.v_ext
14833
					 	  FROM temp_tree_browse ttb
14834
					 	 WHERE ttb.session_num = sessionNum
14835
					 	)
14836
					 	 MINUS
14837
					 	(  
14838
					 	 /* Children of Unresolved */  
14839
					 	SELECT dpv.pkg_id, dpv.V_EXT
14840
					 	  FROM (
14841
					 			SELECT pv.pv_id, pv.pkg_id, pv.v_ext
14842
					 			  FROM release_content rc,
14843
					 			  	   package_versions pv
14844
					 			 WHERE rc.rtag_id = nRtag_id
14845
					 			   AND rc.pv_id = pv.pv_id	   
14846
					 			MINUS
14847
					 			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
14848
					 			  FROM temp_tree_browse ttb
14849
					 			 WHERE ttb.session_num = sessionNum
14850
					 		   ) unr,
14851
					 		   package_dependencies dep,
14852
					 		   package_versions dpv
14853
					 	 WHERE unr.pv_id = dep.pv_id
14854
					 	   AND dep.dpv_id = dpv.pv_id
14855
					 	 )  
14856
					   ) tpkg,
14857
					   package_versions pv,
14858
					   release_content rc
14859
					WHERE rc.rtag_id = nRtag_id
14860
					  AND rc.pv_id = pv.pv_id
14861
					  AND tpkg.pkg_id = pv.pkg_id
14862
					  AND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');
14863
 
14864
            rowCnt := SQL%ROWCOUNT;
14865
        	IF rowCnt > 0 THEN
14866
	           iteration := iteration - 1;
14867
			END IF;
14868
            EXIT WHEN (rowCnt < 1);
14869
     	END LOOP;
14870
 
14871
	 END IF;
14872
 
14873
 
14874
	/*---------------------------------------------------------------------------------------------------------------------*/
14875
 
14876
	/* 
14877
	|| 	 Save results from temp table
14878
	*/	
14879
	/* Clean up build_order table */
14880
	DELETE FROM BUILD_ORDER WHERE rtag_id = nRtag_id;
14881
 
14882
	/* Save UP THE TREE */
14883
	INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )
14884
		SELECT nRtag_id AS rtag_id,
14885
			   ttb.level_num AS step_num, 
14886
			   ttb.PV_ID
14887
		  FROM temp_tree_browse ttb
14888
		 WHERE ttb.session_num = sessionNum
14889
		   AND ttb.direction = UP_THE_TREE;	
14890
 
14891
	/*Get last step_num */
14892
	SELECT MAX(ttb.level_num) + 1 INTO levelNum
14893
	FROM temp_tree_browse ttb WHERE ttb.session_num = sessionNum AND ttb.DIRECTION = UP_THE_TREE;
14894
 
14895
	/* UNRESOLVED */
14896
	 SELECT COUNT(*) INTO rowCnt
14897
	   FROM (
14898
			 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
14899
			  FROM release_content rc,
14900
			  	   package_versions pv
14901
			 WHERE rc.rtag_id = nRtag_id
14902
			   AND rc.pv_id = pv.pv_id	   
14903
			MINUS
14904
			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
14905
			  FROM temp_tree_browse ttb
14906
			 WHERE ttb.session_num = sessionNum
14907
			);
14908
 
14909
 
14910
	IF rowCnt > 0
14911
	THEN
14912
		/* Save unresolved packages */
14913
 		INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID, UNRESOLVED )
14914
		    SELECT  nRtag_id AS rtag_id,
14915
				    levelNum AS step_num, 
14916
				    upv.PV_ID,
14917
					'Y' AS UNRESOLVED
14918
			   FROM (
14919
					 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
14920
					  FROM release_content rc,
14921
					  	   package_versions pv
14922
					 WHERE rc.rtag_id = nRtag_id
14923
					   AND rc.pv_id = pv.pv_id	   
14924
					MINUS
14925
					SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
14926
					  FROM temp_tree_browse ttb
14927
					 WHERE ttb.session_num = sessionNum
14928
					) upv;
14929
	END IF;	
14930
 
14931
	/* Save DOWN THE TREE */
14932
	levelNum := 1000;
14933
	INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )
14934
		SELECT nRtag_id AS rtag_id,
14935
			   levelNum + ttb.level_num  AS step_num, 
14936
			   ttb.PV_ID
14937
		  FROM temp_tree_browse ttb
14938
		 WHERE ttb.session_num = sessionNum
14939
		   AND ttb.direction = DOWN_THE_TREE;
14940
 
14941
 
14942
	/*---------------------------------------------------------------------------------------------------------------------*/
14943
 
14944
	/* Clean up temp table */
14945
	DELETE FROM TEMP_TREE_BROWSE WHERE session_num = sessionNum;
14946
 
14947
	retSessionNum := sessionNum;
14948
END Build_Tree;
4040 dpurdie 14949
 
3959 dpurdie 14950
/
4040 dpurdie 14951
--------------------------------------------------------
14952
--  DDL for Procedure CHANGE_PACKAGE_STATE
14953
--------------------------------------------------------
14954
set define off;
14955
 
5172 dpurdie 14956
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHANGE_PACKAGE_STATE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 14957
											 nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS
14958
/* ---------------------------------------------------------------------------
14959
    Version: 4.0
14960
   --------------------------------------------------------------------------- */
1373 dpurdie 14961
 
14962
BEGIN
14963
 
3959 dpurdie 14964
    -- Unlock Package
14965
    UPDATE RELEASE_CONTENT rc SET
14966
    	rc.PKG_STATE = 0
14967
    WHERE rc.PV_ID = nPvId
14968
	AND rc.RTAG_ID = nRtagId;
1373 dpurdie 14969
 
3959 dpurdie 14970
    /* LOG ACTION */
14971
   /*	Log_Action ( nPvId, 'unlock_package', nUserId );*/
1373 dpurdie 14972
 
3959 dpurdie 14973
END Change_Package_State;
4040 dpurdie 14974
 
1374 dpurdie 14975
/
4040 dpurdie 14976
--------------------------------------------------------
14977
--  DDL for Procedure CHANGE_RELEASE_MODE
14978
--------------------------------------------------------
14979
set define off;
14980
 
5172 dpurdie 14981
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHANGE_RELEASE_MODE" ( nModeCode IN NUMBER, nRtagId IN NUMBER, UserId IN NUMBER ) IS
3959 dpurdie 14982
/* ---------------------------------------------------------------------------
14983
    Version: 3.0.0
14984
   --------------------------------------------------------------------------- */
1373 dpurdie 14985
 
3959 dpurdie 14986
	cMode CHAR(1) := NULL;  
14987
	nProjId NUMBER; 
1373 dpurdie 14988
 
14989
BEGIN
3959 dpurdie 14990
 
1373 dpurdie 14991
 
3959 dpurdie 14992
	/*
14993
	Author: Rupesh Solanki
14994
	Modified: 24th October 2006
14995
	Reason: Added the archive mode state into Release Manager 
14996
	||	1 - Open Mode
14997
	||	2 - Restrictive Mode
14998
	||	3 - Closed Mode
14999
	||	4 - CCB Mode
15000
	||	5 - Archive Mode
15001
	*/	
15002
	-- Get project Id
15003
	SELECT rt.PROJ_ID INTO nProjId
15004
	  FROM RELEASE_TAGS rt
15005
	 WHERE rt.RTAG_ID = nRtagId; 
15006
 
15007
	IF nModeCode = 1 THEN
15008
		-- Open Mode
15009
		cMode := 'N';
15010
 
15011
		/* LOG ACTION */
15012
   		Log_Project_Action ( nProjId, 'set_to_open_mode', UserId, 'Release is set to Open Mode', nRtagId );
15013
 
15014
	ELSIF nModeCode = 2 THEN
15015
		-- Restrictive Mode
15016
		cMode := 'R';
15017
 
15018
		/* LOG ACTION */
15019
   		Log_Project_Action ( nProjId, 'set_to_restrictive_mode', UserId, 'Release is set to Restrictive Mode', nRtagId );
15020
 
15021
	ELSIF nModeCode = 3 THEN
15022
		-- Closed Mode
15023
		cMode := 'Y';
15024
 
15025
		/* LOG ACTION */
15026
   		Log_Project_Action ( nProjId, 'set_to_closed_mode', UserId, 'Release is set to Closed Mode', nRtagId  );
1373 dpurdie 15027
 
3959 dpurdie 15028
	ELSIF nModeCode = 4 THEN
15029
		-- CCB Mode
15030
		cMode := 'C';
15031
 
15032
		/* LOG ACTION */
15033
   		Log_Project_Action ( nProjId, 'set_to_ccb_mode', UserId, 'Release is set to CCB Mode', nRtagId  );
15034
 
15035
	ELSIF nModeCode = 5 THEN
15036
		-- Archive Mode
15037
		cMode := 'A';
15038
 
15039
		/* LOG ACTION */
15040
   		Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Archive Mode', nRtagId  );	
15041
 
15042
 
15043
	END IF;
15044
 
15045
 
15046
 
15047
	-- Now update table
15048
	IF NOT cMode IS NULL THEN
15049
		UPDATE RELEASE_TAGS rt SET
4211 dpurdie 15050
		rt.OFFICIAL = cMode,
15051
    rt.OFFICIAL_STAMP = ORA_SYSDATETIME,
15052
    rt.OFFICIAL_ID = UserId
3959 dpurdie 15053
		WHERE rt.RTAG_ID = nRtagId;
15054
 
15055
	END IF;
1373 dpurdie 15056
 
15057
 
3959 dpurdie 15058
END CHANGE_RELEASE_MODE;
4040 dpurdie 15059
 
1374 dpurdie 15060
/
4040 dpurdie 15061
--------------------------------------------------------
15062
--  DDL for Procedure CHECK_NEW_PATCHES
15063
--------------------------------------------------------
15064
set define off;
15065
 
5172 dpurdie 15066
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHECK_NEW_PATCHES" (
3959 dpurdie 15067
   nrtagid   IN   release_content.rtag_id%TYPE
1373 dpurdie 15068
)
15069
IS
15070
/* ---------------------------------------------------------------------------
3959 dpurdie 15071
    Version: 3.0
1373 dpurdie 15072
   --------------------------------------------------------------------------- */
15073
BEGIN
3959 dpurdie 15074
   /*--------------- Business Rules Here -------------------*/
15075
   /*IF nRtagId NOT IN (SELECT RTAG_ID FROM RELEASE_TAGS ) THEN
15076
      RAISE_APPLICATION_ERROR (-20000, 'Please contact the person in charge of Release Manager now.' );
15077
   END IF
15078
 
15079
   /*-------------------------------------------------------*/
15080
   UPDATE release_content rc
15081
      SET rc.pkg_state = 5                          -- enumPKG_STATE_NEW_PATCH
15082
    WHERE rc.pv_id IN (
15083
             SELECT prod.pv_id
15084
               FROM (SELECT   pp.pv_id AS orig_parent_id,
15085
                              COUNT (*) AS num_of_patches
15086
                         FROM release_content rc, package_patches pp
15087
                        WHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagid
15088
                     GROUP BY pp.pv_id) orig,
15089
                    (SELECT   prodpp.pv_id, pp.pv_id AS parent_id,
15090
                              COUNT (*) AS num_of_patches
15091
                         FROM release_content rc,
15092
                              package_patches pp,
15093
                              package_dependencies dep,
15094
                              package_versions pv,
15095
                              package_patches prodpp
15096
                        WHERE rc.pv_id = pp.pv_id
15097
                          AND rc.rtag_id = nrtagid
15098
                          AND pp.patch_id = dep.dpv_id
15099
                          AND dep.pv_id = pv.pv_id
15100
                          AND pv.is_patch = 'Y'
15101
                          AND pv.dlocked = 'Y'
15102
                          AND prodpp.patch_id = dep.pv_id
15103
                     GROUP BY prodpp.pv_id, pp.pv_id) prod,
15104
                    release_content rc
15105
              WHERE orig.orig_parent_id = prod.pv_id
15106
                AND orig.num_of_patches != prod.num_of_patches
15107
                AND rc.rtag_id = nrtagid
15108
                AND rc.pv_id = prod.pv_id
15109
                AND rc.pkg_state = 0
15110
             UNION
15111
             SELECT   prodpp.pv_id
15112
                 FROM release_content rc,
15113
                      package_patches pp,
15114
                      package_dependencies dep,
1373 dpurdie 15115
                      package_versions pv,
3959 dpurdie 15116
                      package_patches prodpp
15117
                WHERE rc.pv_id = pp.pv_id
15118
                  AND rc.rtag_id = nrtagid
15119
                  AND pp.patch_id = dep.dpv_id
1373 dpurdie 15120
                  AND dep.pv_id = pv.pv_id
3959 dpurdie 15121
                  AND pv.is_patch = 'Y'
15122
                  AND pv.dlocked = 'Y'
15123
                  AND prodpp.patch_id = dep.pv_id
15124
             GROUP BY prodpp.pv_id, pp.pv_id
15125
             MINUS
15126
             SELECT   pp.pv_id
15127
                 FROM release_content rc, package_patches pp
15128
                WHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagid
15129
             GROUP BY pp.pv_id);
15130
END check_new_patches;
4040 dpurdie 15131
 
1374 dpurdie 15132
/
4040 dpurdie 15133
--------------------------------------------------------
15134
--  DDL for Procedure CLEAN_ADVISORY_RIPPLE
15135
--------------------------------------------------------
15136
set define off;
15137
 
5172 dpurdie 15138
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAN_ADVISORY_RIPPLE" (nrtagid IN NUMBER)
3959 dpurdie 15139
IS
15140
/******************************************************************************
15141
   NAME:       clean_advisory_ripple
1373 dpurdie 15142
 
3959 dpurdie 15143
   PURPOSE:    To delete entries from the advisory_ripple table based upon
15144
               an RTAG_ID only
1373 dpurdie 15145
 
3959 dpurdie 15146
               This is a tidy-up operation performed against the advisory_ripple
15147
               table, ensuring that the table does not have rtag_id/pv_id
15148
               combinations that cannot be found in the release's wip/pending/release
15149
               tabs.
15150
 
15151
******************************************************************************/
1373 dpurdie 15152
BEGIN
3959 dpurdie 15153
   -- Delete any invalid rtag_id/pv_id combination from the advisory_ripple table.
15154
   -- An invalid rtag_id/pv_id combination is one that cannot be found in the
15155
   -- work_in_progress, planned, or release_content table.
15156
   -- NOTE: Planned operations that represent pending additive/subtractive merge
15157
   -- operations are ignored because they have not been approved yet and so
15158
   -- cannot be said to be "in the release".
15159
   DELETE FROM advisory_ripple
15160
         WHERE rtag_id = nrtagid
15161
           AND pv_id not in
15162
               ((SELECT pv_id FROM release_content WHERE rtag_id = nrtagid)
15163
                 UNION
15164
                (SELECT pv_id FROM work_in_progress WHERE rtag_id = nrtagid)
15165
                 UNION
15166
                (SELECT pv_id FROM planned WHERE rtag_id = nrtagid AND (operation is null OR operation = 'R'))
15167
               );
15168
END clean_advisory_ripple;
4040 dpurdie 15169
 
3959 dpurdie 15170
/
4040 dpurdie 15171
--------------------------------------------------------
15172
--  DDL for Procedure CLEAN_DO_NOT_RIPPLE
15173
--------------------------------------------------------
15174
set define off;
15175
 
5172 dpurdie 15176
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAN_DO_NOT_RIPPLE" (nrtagid IN NUMBER)
3959 dpurdie 15177
IS
15178
/******************************************************************************
15179
   NAME:       clean_do_not_ripple
1373 dpurdie 15180
 
3959 dpurdie 15181
   PURPOSE:    To delete entries from the do_not_ripple table based upon
15182
               an RTAG_ID only
15183
 
15184
               This is a tidy-up operation performed against the do_not_ripple
15185
               table, ensuring that the table does not have rtag_id/pv_id
15186
               combinations that cannot be found in the release's wip/pending/release
15187
               tabs.
15188
 
15189
******************************************************************************/
15190
BEGIN
15191
   -- Delete any invalid rtag_id/pv_id combination from the do_not_ripple table.
15192
   -- An invalid rtag_id/pv_id combination is one that cannot be found in the
15193
   -- work_in_progress, planned, or release_content table.
15194
   -- NOTE: Planned operations that represent pending additive/subtractive merge
15195
   -- operations are ignored because they have not been approved yet and so
15196
   -- cannot be said to be "in the release".
15197
   DELETE FROM do_not_ripple
15198
         WHERE rtag_id = nrtagid
15199
           AND pv_id not in
15200
               ((SELECT pv_id FROM release_content WHERE rtag_id = nrtagid)
15201
                 UNION
15202
                (SELECT pv_id FROM work_in_progress WHERE rtag_id = nrtagid)
15203
                 UNION
15204
                (SELECT pv_id FROM planned WHERE rtag_id = nrtagid AND (operation is null OR operation = 'R'))
15205
               );
15206
END clean_do_not_ripple;
4040 dpurdie 15207
 
1374 dpurdie 15208
/
4040 dpurdie 15209
--------------------------------------------------------
15210
--  DDL for Procedure CLEAR_ADVISORY_RIPPLE
15211
--------------------------------------------------------
15212
set define off;
15213
 
5172 dpurdie 15214
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAR_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 15215
	   	  		  							   nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
15216
											 nUserId IN NUMBER ) IS
1373 dpurdie 15217
/* ---------------------------------------------------------------------------
3959 dpurdie 15218
    Version: 4.0
1373 dpurdie 15219
   --------------------------------------------------------------------------- */
15220
 
15221
BEGIN
15222
 
3959 dpurdie 15223
    -- Clear Advisory Ripple Package
15224
    DELETE FROM ADVISORY_RIPPLE
15225
	WHERE PV_ID = nPvId
15226
	AND RTAG_ID = nRtagId;
1373 dpurdie 15227
 
3959 dpurdie 15228
    /* LOG ACTION */
15229
   	Log_Action ( nPvId, 'clear_advisory_ripple', nUserId );
15230
 
15231
	/*Rebuild_Environment(nRtagId);*/
1373 dpurdie 15232
 
3959 dpurdie 15233
END Clear_Advisory_Ripple;
4040 dpurdie 15234
 
1374 dpurdie 15235
/
4040 dpurdie 15236
--------------------------------------------------------
15237
--  DDL for Procedure CLONED_PACKAGE_PROCESSES
15238
--------------------------------------------------------
15239
set define off;
15240
 
5172 dpurdie 15241
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLONED_PACKAGE_PROCESSES" 
3959 dpurdie 15242
IS
1373 dpurdie 15243
 
3959 dpurdie 15244
proc_id NUMBER;
1373 dpurdie 15245
/******************************************************************************
3959 dpurdie 15246
   NAME:       DELETE_DO_NOT_RIPPLE
15247
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
15248
               IS RELEASED
1373 dpurdie 15249
 
15250
   REVISIONS:
15251
   Ver        Date        Author           Description
15252
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 15253
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
1373 dpurdie 15254
 
15255
   NOTES:
15256
 
15257
   Automatically available Auto Replace Keywords:
3959 dpurdie 15258
      Object Name:     DELETE_DO_NOT_RIPPLE
15259
      Sysdate:         21/04/2006
15260
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
1373 dpurdie 15261
      Username:         (set in TOAD Options, Procedure Editor)
15262
      Table Name:       (set in the "New PL/SQL Object" dialog)
15263
 
15264
******************************************************************************/
3959 dpurdie 15265
   CURSOR ripple_cur
15266
   IS
15267
      select distinct proc_id, prod_id from deployment_manager.processes_config;
15268
 
15269
   ripple_rec   ripple_cur%ROWTYPE;
1373 dpurdie 15270
BEGIN
3959 dpurdie 15271
   OPEN ripple_cur;
1373 dpurdie 15272
 
3959 dpurdie 15273
   FETCH ripple_cur
15274
    INTO ripple_rec;
1373 dpurdie 15275
 
3959 dpurdie 15276
   WHILE ripple_cur%FOUND
15277
   LOOP
15278
 
1373 dpurdie 15279
 
3959 dpurdie 15280
 
15281
insert into package_processes (PROC_ID, PV_ID) 
15282
values( ripple_rec.proc_id, ripple_rec.prod_id);
15283
 
15284
      FETCH ripple_cur
15285
       INTO ripple_rec;
15286
   END LOOP;
15287
END CLONED_PACKAGE_PROCESSES;
4040 dpurdie 15288
 
1374 dpurdie 15289
/
4040 dpurdie 15290
--------------------------------------------------------
15291
--  DDL for Procedure CLONED_PROCESSES
15292
--------------------------------------------------------
15293
set define off;
15294
 
5172 dpurdie 15295
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLONED_PROCESSES" 
3959 dpurdie 15296
IS
15297
 
15298
proc_id NUMBER;
15299
/******************************************************************************
15300
   NAME:       DELETE_DO_NOT_RIPPLE
15301
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
15302
               IS RELEASED
15303
 
15304
   REVISIONS:
15305
   Ver        Date        Author           Description
15306
   ---------  ----------  ---------------  ------------------------------------
15307
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
15308
 
15309
   NOTES:
15310
 
15311
   Automatically available Auto Replace Keywords:
15312
      Object Name:     DELETE_DO_NOT_RIPPLE
15313
      Sysdate:         21/04/2006
15314
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
15315
      Username:         (set in TOAD Options, Procedure Editor)
15316
      Table Name:       (set in the "New PL/SQL Object" dialog)
15317
 
15318
******************************************************************************/
15319
   CURSOR ripple_cur
15320
   IS
15321
      select distinct pkg_health_tag, cmd_interface, pkg_owner, is_interface from deployment_manager.processes_config;
15322
 
15323
   ripple_rec   ripple_cur%ROWTYPE;
1373 dpurdie 15324
BEGIN
3959 dpurdie 15325
   OPEN ripple_cur;
1373 dpurdie 15326
 
3959 dpurdie 15327
   FETCH ripple_cur
15328
    INTO ripple_rec;
1373 dpurdie 15329
 
3959 dpurdie 15330
   WHILE ripple_cur%FOUND
15331
   LOOP
15332
 
15333
   select deployment_manager.seq_proc_id.nextval into proc_id from dual;
15334
 
15335
insert into processes (PROC_ID, PROC_NAME, RUN_AS, PKG_OWNER, IS_INTERFACE) 
15336
values(proc_id, ripple_rec.pkg_health_tag, ripple_rec.cmd_interface, ripple_rec.pkg_owner, ripple_rec.is_interface);
1373 dpurdie 15337
 
3959 dpurdie 15338
      FETCH ripple_cur
15339
       INTO ripple_rec;
15340
   END LOOP;
15341
END CLONED_PROCESSES;
4040 dpurdie 15342
 
1374 dpurdie 15343
/
4040 dpurdie 15344
--------------------------------------------------------
15345
--  DDL for Procedure DELETE_AUTOBUILD_FAILURE_INFO
15346
--------------------------------------------------------
15347
set define off;
15348
 
5172 dpurdie 15349
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DELETE_AUTOBUILD_FAILURE_INFO" 
3959 dpurdie 15350
IS
1373 dpurdie 15351
/******************************************************************************
3959 dpurdie 15352
   NAME:       DELETE_AUTOBUILD_FAILURE_INFO
15353
   PURPOSE:
1373 dpurdie 15354
 
15355
   REVISIONS:
3959 dpurdie 15356
   Ver        Date        Author           Description
1373 dpurdie 15357
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 15358
   1.0        2/06/2006    Rupesh Solanki      1. Created this procedure.
1373 dpurdie 15359
 
15360
   NOTES:
15361
 
15362
   Automatically available Auto Replace Keywords:
3959 dpurdie 15363
      Object Name:     DELETE_AUTOBUILD_FAILURE_INFO
15364
      Sysdate:         2/06/2006
15365
      Date and Time:   2/06/2006, 8:44:25 AM, and 2/06/2006 8:44:25 AM
1373 dpurdie 15366
      Username:         (set in TOAD Options, Procedure Editor)
15367
      Table Name:       (set in the "New PL/SQL Object" dialog)
15368
 
15369
******************************************************************************/
15370
BEGIN
3959 dpurdie 15371
   DELETE FROM autobuild_failure
15372
         WHERE group_email_id NOT IN (SELECT group_email_id
15373
                                        FROM members_group);
15374
END delete_autobuild_failure_info;
4040 dpurdie 15375
 
1374 dpurdie 15376
/
4040 dpurdie 15377
--------------------------------------------------------
15378
--  DDL for Procedure DEPLOY_TO_RELEASE
15379
--------------------------------------------------------
15380
set define off;
15381
 
5172 dpurdie 15382
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DEPLOY_TO_RELEASE" IS
1373 dpurdie 15383
 
15384
/******************************************************************************
15385
 
15386
 
15387
******************************************************************************/
15388
 
15389
	CURSOR curInfo IS
15390
    SELECT DISTINCT
15391
        qry.DPV_ID
15392
     FROM (
15393
             SELECT dep.*,
15394
                    LEVEL AS LEVEL_NUM
15395
               FROM PACKAGE_DEPENDENCIES dep
15396
             START WITH dep.PV_ID IN ( 
15397
 
4308 dpurdie 15398
                        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 15399
 
15400
                        ) 
15401
 			CONNECT BY PRIOR dep.DPV_ID = dep.PV_ID
15402
 		) qry,
15403
 		PACKAGES pkg,
15404
		PACKAGE_VERSIONS pv
15405
 	 WHERE qry.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_ID
15406
         and (pv.is_patch is null or pv.is_patch = 'N');
15407
    recInfo curInfo%ROWTYPE;
15408
 
15409
 
15410
BEGIN
15411
 
15412
	OPEN curInfo;
15413
    FETCH curInfo INTO recInfo;
15414
 
15415
	WHILE curInfo%FOUND
15416
	LOOP
15417
 
15418
	insert into release_content(RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE)
15419
    VALUES(8027, recInfo.dpv_id, 7, ora_sysdatetime, 0, 0);
15420
 
15421
    FETCH curInfo INTO recInfo;
15422
 
15423
	END LOOP;
15424
 
15425
	CLOSE curInfo;
15426
 
15427
 
15428
 
15429
 
15430
END DEPLOY_TO_RELEASE; 
4040 dpurdie 15431
 
1374 dpurdie 15432
/
4040 dpurdie 15433
--------------------------------------------------------
15434
--  DDL for Procedure DEPRECATE_PACKAGE
15435
--------------------------------------------------------
15436
set define off;
15437
 
5172 dpurdie 15438
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DEPRECATE_PACKAGE" (nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 15439
	   	  		  							   nRtagId IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,
15440
	   	  		  							   nPkgId IN DEPRECATED_PACKAGES.PKG_ID%TYPE,
15441
											   sComments IN DEPRECATED_PACKAGES.COMMENTS%TYPE,
15442
											   nUserId IN NUMBER) IS
15443
ext VARCHAR2(50);
1373 dpurdie 15444
 
15445
 
15446
 
3959 dpurdie 15447
 
1373 dpurdie 15448
BEGIN
15449
 
3959 dpurdie 15450
	--Extract the package version extension
15451
	SELECT V_EXT into ext
15452
	FROM PACKAGE_VERSIONS
15453
	WHERE PV_ID = nPvId; 
15454
 
15455
    -- Deprecate Package
15456
    INSERT INTO DEPRECATED_PACKAGES (RTAG_ID, PKG_ID, COMMENTS, V_EXT)
15457
	VALUES (nRtagId, nPkgId, sComments, ext);
15458
 
15459
	IF ext IS NOT NULL THEN
15460
	   UPDATE RELEASE_CONTENT 
15461
	   SET PKG_ID = nPkgId, DEPRECATED_STATE = 6
15462
	   WHERE RTAG_ID = nRtagId
15463
	   AND PV_ID IN (SELECT PV.PV_ID 
15464
		   	  	  	FROM PACKAGE_VERSIONS PV, PACKAGES PKG
15465
				  	WHERE PKG.PKG_ID = PV.PKG_ID
15466
				  	AND PV.V_EXT = ext
15467
				  	AND PKG.PKG_ID = nPkgId
15468
				 	);						
15469
	ELSE
15470
	   UPDATE RELEASE_CONTENT 
15471
	   SET PKG_ID = nPkgId, DEPRECATED_STATE = 6
15472
	   WHERE RTAG_ID = nRtagId
15473
	   AND PV_ID IN (SELECT PV.PV_ID 
15474
		   	  	  	FROM PACKAGE_VERSIONS PV, PACKAGES PKG
15475
				  	WHERE PKG.PKG_ID = PV.PKG_ID
15476
				  	AND PV.V_EXT IS NULL
15477
				  	AND PKG.PKG_ID = nPkgId
15478
				 	);
15479
	END IF;
15480
 
15481
	UPDATE RELEASE_CONTENT
15482
	SET PKG_ID = nPkgId, DEPRECATED_STATE = 7
15483
	WHERE RTAG_ID = nRtagId
15484
	AND PV_ID IN (		   SELECT DISTINCT
15485
 	 		  	 		   qry.PV_ID
15486
						        FROM (
15487
								 	  SELECT dep.*,
15488
									  LEVEL AS LEVEL_NUM
15489
									  FROM PACKAGE_DEPENDENCIES dep 
15490
 								START WITH dep.DPV_ID IN ( nPvId ) 
15491
								CONNECT BY PRIOR dep.PV_ID = dep.DPV_ID
15492
 								) qry,
15493
								PACKAGES pkg,
15494
								PACKAGE_VERSIONS pv,
15495
								RELEASE_CONTENT rc
15496
						 	 WHERE qry.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_ID
15497
							 AND rc.RTAG_ID = nRtagId AND rc.PV_ID = qry.PV_ID
15498
							 AND rc.DEPRECATED_STATE IS NULL
15499
				 );			 
1373 dpurdie 15500
 
15501
    /* LOG ACTION */
3959 dpurdie 15502
   	/*Log_Action ( nPkgId, 'deprecated_package', nUserId );*/
15503
 
1373 dpurdie 15504
 
3959 dpurdie 15505
END Deprecate_Package;
4040 dpurdie 15506
 
1374 dpurdie 15507
/
4040 dpurdie 15508
--------------------------------------------------------
15509
--  DDL for Procedure DT_DROPUSEROBJECTBYID
15510
--------------------------------------------------------
15511
set define off;
15512
 
5172 dpurdie 15513
  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 15514
 
1374 dpurdie 15515
/
4040 dpurdie 15516
--------------------------------------------------------
15517
--  DDL for Procedure DT_SETPROPERTYBYID
15518
--------------------------------------------------------
15519
set define off;
15520
 
5172 dpurdie 15521
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DT_SETPROPERTYBYID" ( PARAM_ID   IN NUMBER, PARAM_PROPERTY IN VARCHAR2, PARAM_VALUE  IN VARCHAR2, PARAM_LVALUE  IN LONG RAW ) AS BEGIN DECLARE X NUMBER(40); BEGIN SELECT COUNT(*) INTO X FROM MICROSOFTDTPROPERTIES WHERE OBJECTID=PARAM_ID AND PROPERTY=PARAM_PROPERTY; IF X = 0 THEN INSERT INTO MICROSOFTDTPROPERTIES (ID, PROPERTY, OBJECTID, VALUE, LVALUE, VERSION) VALUES (MICROSOFTSEQDTPROPERTIES.NEXTVAL, PARAM_PROPERTY, PARAM_ID, PARAM_VALUE, PARAM_LVALUE, 0); ELSE UPDATE MICROSOFTDTPROPERTIES SET VALUE=PARAM_VALUE, LVALUE=PARAM_LVALUE, VERSION=VERSION+1 WHERE OBJECTID=PARAM_ID AND PROPERTY=PARAM_PROPERTY; END IF; END; END DT_SETPROPERTYBYID;
4040 dpurdie 15522
 
3959 dpurdie 15523
/
4040 dpurdie 15524
--------------------------------------------------------
15525
--  DDL for Procedure IGNORE_DEPENDENCY_WARNINGS
15526
--------------------------------------------------------
15527
set define off;
15528
 
5172 dpurdie 15529
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."IGNORE_DEPENDENCY_WARNINGS" ( nRtagId IN IGNORE_WARNINGS.RTAG_ID%TYPE,
3959 dpurdie 15530
                                                         nPvId IN IGNORE_WARNINGS.PV_ID%TYPE,
15531
                                                         sIgnoreIdList IN VARCHAR2,
15532
                                                         bDoPatchIgnore IN BOOLEAN DEFAULT FALSE,
15533
                                                         nUserId IN NUMBER DEFAULT NULL ) IS
15534
/* ---------------------------------------------------------------------------
15535
    Updates the ignore warnings table - this is really two functions in one.
15536
 
15537
    1) One function updates the table based on a list of dependent PV_IDs and a parent PV_ID
15538
       and is called from the RM website's SetIgnoreWarnings() function after a user changes
15539
       the ignore warnings checkboxes and submits the form.
15540
       This can (at time of writing this) only be done within releases that are not build
15541
       daemon enabled. The ignore warnings feature is a feature we would like to see the end
15542
       of in an ideal world.
15543
       The SetIgnoreWarnings() website function now calls Touch_Release so there is no need to
15544
       do so in this stored procedure, thereby making this stored procedure much more precise in
15545
       that it only updates the ignore_warnings table (action log table too although that is just
15546
       a log and doesn't affect any subsequent business rules behaviour) and it cares nothing
15547
       about website presentation layer states, etc.
15548
 
15549
    2) The other function updates the table for out of sync dependencies that have in fact
15550
       been satisfied by patches made to some other product in the release.
15551
       This seems to be a seldom used feature in current projects.
15552
       It is probably the most often taken path through this function given that it occurs when
15553
       this function is called from Rebuild_Environment, and that is called in many circumstances
15554
       from the RM website whenever the seems to be a possibility that the state of a package
15555
       in a release might have changed and therefore affects the state of other packages in
15556
       that same release.
15557
 
15558
    Parameter Usage:
15559
                        when called from    | when called from
15560
                        Rebuild_Environment | SetIgnoreWarnings()
15561
                        stored procedure.   | in the Website
15562
      --------------------------------------+----------------------------
15563
      nRtagId           RTAG_ID             | RTAG_ID
15564
      nPvId             NULL                | PV_ID
15565
      sIgnoreIdList     NULL                | list of dependent PV_ID's
15566
      bDoPatchIgnore    TRUE                | FALSE
15567
      nUserId           NULL                | current user ID
15568
   --------------------------------------------------------------------------- */
15569
 
15570
oIgnoreIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
15571
ReleaseLocation VARCHAR2(4000);
15572
ActionTypeId NUMBER;
15573
 
1373 dpurdie 15574
BEGIN
15575
 
3959 dpurdie 15576
   IF (NOT bDoPatchIgnore) THEN
15577
      /* Manual Ignore Warnings - this execution path is the one taken when called from SetIgnoreWarnings() in the Website
15578
      */
15579
      oIgnoreIdCollector := IN_LIST_NUMBER ( sIgnoreIdList );
1373 dpurdie 15580
 
15581
 
3959 dpurdie 15582
      /* Log Action */
15583
      -- Get Release Location
15584
      SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
15585
        FROM PROJECTS proj,
15586
             RELEASE_TAGS rt
15587
       WHERE rt.PROJ_ID = proj.PROJ_ID
15588
         AND rt.RTAG_ID = nRtagId;
1373 dpurdie 15589
 
3959 dpurdie 15590
      -- Get Action Type Id for IGNORE_ON
15591
      SELECT act.ACTTYPE_ID INTO ActionTypeId
15592
        FROM ACTION_TYPE act
15593
       WHERE act.NAME = 'ignore_on';
15594
 
15595
      -- Get Ignored (Current MINUS Old)
5172 dpurdie 15596
      INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
15597
      SELECT nUserId, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeId
3959 dpurdie 15598
        FROM (
15599
              SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_ID
15600
                FROM PACKAGE_VERSIONS pv
15601
               WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
15602
              MINUS
15603
              SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_ID
15604
                FROM IGNORE_WARNINGS igw
15605
               WHERE igw.RTAG_ID = nRtagId
15606
                 AND igw.PV_ID = nPvId
15607
             ) qry,
15608
             PACKAGE_VERSIONS pv,
15609
             PACKAGES pkg,
15610
             RELEASE_CONTENT rc,
15611
             PACKAGE_VERSIONS rpv
15612
       WHERE pv.PKG_ID = pkg.PKG_ID
15613
         AND rc.RTAG_ID = nRtagId
15614
         AND rc.PV_ID = rpv.PV_ID
15615
         AND rpv.PKG_ID = pv.PKG_ID
15616
         AND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )
15617
         AND qry.DPV_ID = pv.PV_ID;
15618
 
15619
 
15620
      -- Get Action Type Id for IGNORE_OFF
15621
      SELECT act.ACTTYPE_ID INTO ActionTypeId
15622
        FROM ACTION_TYPE act
15623
       WHERE act.NAME = 'ignore_off';
15624
 
15625
      -- Get UnIgnored (Old MINUS Current)
5172 dpurdie 15626
      INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
15627
      SELECT nUserId, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeId
3959 dpurdie 15628
        FROM (
15629
              SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_ID
15630
                FROM IGNORE_WARNINGS igw
15631
               WHERE igw.RTAG_ID = nRtagId
15632
                 AND igw.PV_ID = nPvId
15633
              MINUS
15634
              SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_ID
15635
                FROM PACKAGE_VERSIONS pv
15636
               WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
15637
             ) qry,
15638
             PACKAGE_VERSIONS pv,
15639
             PACKAGES pkg,
15640
             RELEASE_CONTENT rc,
15641
             PACKAGE_VERSIONS rpv
15642
       WHERE pv.PKG_ID = pkg.PKG_ID
15643
         AND rc.RTAG_ID = nRtagId
15644
         AND rc.PV_ID = rpv.PV_ID
15645
         AND rpv.PKG_ID = pv.PKG_ID
15646
         AND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )
15647
         AND qry.DPV_ID = pv.PV_ID;
15648
 
15649
 
15650
      -- Delete Current Ignore Warnings
15651
      DELETE
15652
        FROM IGNORE_WARNINGS igw
15653
       WHERE igw.RTAG_ID = nRtagId
15654
         AND igw.PV_ID = nPvId
15655
         AND igw.IS_PATCH_IGNORE IS NULL;
15656
 
15657
 
15658
      IF (oIgnoreIdCollector.COUNT > 0) THEN
15659
         -- Insert Ignore Warnings
15660
         INSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID )
15661
         SELECT nRtagId,
15662
                nPvId,
15663
                pv.PV_ID AS DPV_ID
15664
           FROM PACKAGE_VERSIONS pv
15665
          WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
15666
      END IF;
15667
 
15668
   ELSE
15669
      /* Patch Ignore Warnings - this execution path is the one taken when called from the Rebuild_Environment stored procedure */
15670
 
15671
      -- Delete Current Patch Ignore Warnings
15672
      DELETE
15673
        FROM IGNORE_WARNINGS igw
15674
       WHERE igw.RTAG_ID = nRtagId
15675
         AND igw.IS_PATCH_IGNORE = 'Y';
15676
 
15677
 
15678
      -- Delete Manual Ignores that need to be Patch Ignores
15679
      DELETE
15680
        FROM IGNORE_WARNINGS igw
15681
       WHERE ( RTAG_ID, PV_ID, DPV_ID ) IN
15682
             (
15683
              SELECT DISTINCT
15684
                     nRtagId,
15685
                     err.PV_ID,
15686
                     err.ERR_DPV AS DPV_ID
15687
               FROM  (
15688
                      /* Full Release Contents used for reference*/
15689
                      SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext
15690
                        FROM release_content rel, package_versions rpv
15691
                       WHERE rel.pv_id = rpv.pv_id
15692
                         AND rtag_id = nRtagId
15693
                     ) frc,
15694
                     (
15695
                      /* DPV_IDs not fount in release*/
15696
                      SELECT dep.pv_id, dep.dpv_id AS err_dpv
15697
                        FROM package_dependencies dep
15698
                       WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
15699
                         AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
15700
                     ) err,
15701
                     (
15702
                      SELECT DISTINCT pp.PV_ID, dep.DPV_ID
15703
                        FROM PACKAGE_PATCHES pp,
15704
                             PACKAGE_DEPENDENCIES dep,
15705
                             RELEASE_CONTENT rc
15706
                       WHERE rc.RTAG_ID = nRtagId
15707
                         AND rc.PV_ID = pp.PV_ID
15708
                         AND dep.PV_ID = pp.PATCH_ID
15709
                     ) pp,
15710
                     package_versions errpkg,
15711
                     package_versions errpv
15712
               WHERE err.err_dpv = errpv.pv_id
15713
                 AND errpv.pkg_id = frc.pkg_id(+)
15714
                 AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
15715
                 AND err.pv_id = errpkg.pv_id
15716
                 AND err.PV_ID = pp.PV_ID
15717
                 AND frc.PV_ID = pp.DPV_ID
15718
             );
15719
 
15720
      /*
15721
      ---------------------------------------------------
15722
      --  Make sure that select statement above and below are same
15723
      ---------------------------------------------------
15724
      */
15725
 
15726
      -- Insert Patch Ignores
15727
      INSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE )
15728
      SELECT DISTINCT
15729
             nRtagId,
15730
             err.PV_ID,
15731
             err.ERR_DPV AS DPV_ID,
15732
             'Y'
15733
        FROM (
15734
              /* Full Release Contents used for reference*/
15735
              SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext
15736
                FROM release_content rel, package_versions rpv
15737
               WHERE rel.pv_id = rpv.pv_id
15738
                 AND rtag_id = nRtagId
15739
             ) frc,
15740
             (
15741
               /* DPV_IDs not fount in release*/
15742
               SELECT dep.pv_id, dep.dpv_id AS err_dpv
15743
                 FROM package_dependencies dep
15744
                WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
15745
                  AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
15746
             ) err,
15747
             (
15748
              SELECT DISTINCT pp.PV_ID, dep.DPV_ID
15749
                FROM PACKAGE_PATCHES pp,
15750
                     PACKAGE_DEPENDENCIES dep,
15751
                     RELEASE_CONTENT rc
15752
               WHERE rc.RTAG_ID = nRtagId
15753
                 AND rc.PV_ID = pp.PV_ID
15754
                 AND dep.PV_ID = pp.PATCH_ID
15755
             ) pp,
15756
             package_versions errpkg,
15757
             package_versions errpv
15758
       WHERE err.err_dpv = errpv.pv_id
15759
         AND errpv.pkg_id = frc.pkg_id(+)
15760
         AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
15761
         AND err.pv_id = errpkg.pv_id
15762
         AND err.PV_ID = pp.PV_ID
15763
         AND frc.PV_ID = pp.DPV_ID;
15764
 
15765
    END IF;
15766
 
15767
END Ignore_Dependency_Warnings;
4040 dpurdie 15768
 
1374 dpurdie 15769
/
4040 dpurdie 15770
--------------------------------------------------------
15771
--  DDL for Procedure INSERT_INTO_PACKAGE_BUILD_INFO
15772
--------------------------------------------------------
15773
set define off;
15774
 
5172 dpurdie 15775
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."INSERT_INTO_PACKAGE_BUILD_INFO" IS
1373 dpurdie 15776
 
15777
/******************************************************************************
3959 dpurdie 15778
   NAME:       INSERT_INTO_PACKAGE_BUILD_INFO
1373 dpurdie 15779
   PURPOSE:    
15780
 
15781
   REVISIONS:
15782
   Ver        Date        Author           Description
15783
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 15784
   1.0        6/12/2006          1. Created this procedure.
1373 dpurdie 15785
 
15786
   NOTES:
15787
 
15788
   Automatically available Auto Replace Keywords:
3959 dpurdie 15789
      Object Name:     INSERT_INTO_PACKAGE_BUILD_INFO
15790
      Sysdate:         6/12/2006
15791
      Date and Time:   6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PM
1373 dpurdie 15792
      Username:         (set in TOAD Options, Procedure Editor)
15793
      Table Name:       (set in the "New PL/SQL Object" dialog)
15794
 
15795
******************************************************************************/
15796
 
15797
	CURSOR curInfo IS
3959 dpurdie 15798
    SELECT PV_ID
15799
	FROM PACKAGE_BUILD_ENV
15800
	WHERE BE_ID IN (11, 12);
1373 dpurdie 15801
    recInfo curInfo%ROWTYPE;
15802
 
15803
 
15804
BEGIN
15805
 
15806
	OPEN curInfo;
15807
    FETCH curInfo INTO recInfo;
15808
 
15809
	WHILE curInfo%FOUND
15810
	LOOP
15811
 
3959 dpurdie 15812
		INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID, BSA_ID )
15813
		VALUES( recInfo.PV_ID, 2, 5);
15814
 
15815
		UPDATE PACKAGE_VERSIONS SET BS_ID = 2 WHERE PV_ID = recInfo.PV_ID;
15816
 
1373 dpurdie 15817
		FETCH curInfo INTO recInfo;
3959 dpurdie 15818
 
1373 dpurdie 15819
	END LOOP;
15820
 
15821
	CLOSE curInfo;
15822
 
15823
 
15824
 
15825
 
3959 dpurdie 15826
END INSERT_INTO_PACKAGE_BUILD_INFO;
4040 dpurdie 15827
 
1374 dpurdie 15828
/
4040 dpurdie 15829
--------------------------------------------------------
15830
--  DDL for Procedure INSERT_MULTIPLE_STICKY_NOTES
15831
--------------------------------------------------------
15832
set define off;
15833
 
5172 dpurdie 15834
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."INSERT_MULTIPLE_STICKY_NOTES" IS
1373 dpurdie 15835
 
3959 dpurdie 15836
/******************************************************************************
15837
   NAME:       INSERT_MULTIPLE_STICKY_NOTES
15838
   PURPOSE:    
1373 dpurdie 15839
 
3959 dpurdie 15840
   REVISIONS:
15841
   Ver        Date        Author           Description
15842
   ---------  ----------  ---------------  ------------------------------------
15843
   1.0        6/12/2006          1. Created this procedure.
1373 dpurdie 15844
 
3959 dpurdie 15845
   NOTES:
1373 dpurdie 15846
 
3959 dpurdie 15847
   Automatically available Auto Replace Keywords:
15848
      Object Name:     INSERT_MULTIPLE_STICKY_NOTES
15849
      Sysdate:         6/12/2006
15850
      Date and Time:   6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PM
15851
      Username:         (set in TOAD Options, Procedure Editor)
15852
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 15853
 
3959 dpurdie 15854
******************************************************************************/
1373 dpurdie 15855
 
3959 dpurdie 15856
	CURSOR curInfo IS
15857
    SELECT PV_ID
15858
	FROM PACKAGE_BUILD_ENV
15859
	WHERE BE_ID IN (11, 12);
15860
    recInfo curInfo%ROWTYPE;
15861
 
15862
 
1373 dpurdie 15863
BEGIN
15864
 
3959 dpurdie 15865
	OPEN curInfo;
15866
    FETCH curInfo INTO recInfo;
15867
 
15868
	WHILE curInfo%FOUND
15869
	LOOP
1373 dpurdie 15870
 
3959 dpurdie 15871
		INSERT INTO NOTE_MANAGER ( NID, LAST_USER, LAST_DATE, DESCRIPTION )
15872
		VALUES( recInfo.PV_ID, 'awehalle', ORA_SYSDATETIME, '' );
15873
 
15874
		FETCH curInfo INTO recInfo;
15875
 
15876
	END LOOP;
1373 dpurdie 15877
 
3959 dpurdie 15878
	CLOSE curInfo;
1373 dpurdie 15879
 
15880
 
15881
 
15882
 
3959 dpurdie 15883
END INSERT_MULTIPLE_STICKY_NOTES;
4040 dpurdie 15884
 
1374 dpurdie 15885
/
4040 dpurdie 15886
--------------------------------------------------------
15887
--  DDL for Procedure LEVEL_N_CONFLICTS
15888
--------------------------------------------------------
15889
set define off;
15890
 
5172 dpurdie 15891
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LEVEL_N_CONFLICTS" (
3959 dpurdie 15892
   nnrtag_id       IN       NUMBER,
15893
   nnsession_num   IN       NUMBER,
15894
   nnrowcnt        OUT      NUMBER,
15895
   nniteration     IN       NUMBER
15896
)
15897
IS
1373 dpurdie 15898
/* ---------------------------------------------------------------------------
3959 dpurdie 15899
    Version: 3.0.1
1373 dpurdie 15900
   --------------------------------------------------------------------------- */
3959 dpurdie 15901
   previteration   NUMBER := nniteration - 1;
1373 dpurdie 15902
BEGIN
3959 dpurdie 15903
   /* ---------  LEVEL 1 CONFILCTS -----------
15904
   || Following states are used:
15905
   || 0 -> NOT FOUND
15906
   || 1 -> MAJOR
15907
   || 2 -> MINOR MINOR
15908
   */
15909
   INSERT INTO temp_env_states
15910
      SELECT DISTINCT nnsession_num AS session_num, nniteration AS level_num,
15911
                      pv.pv_id, pv.pkg_id, pv.v_ext,
15912
                      DECODE (tes.tes_state, 2, 2, 1) AS MESSAGE
15913
                 FROM package_dependencies dep,
15914
                      package_versions dpv,
15915
                      package_versions pv,
15916
                      release_content rel,
15917
                      temp_env_states tes
15918
                WHERE rel.pv_id = dep.pv_id
15919
                  AND rel.rtag_id = nnrtag_id
15920
                  AND dep.pv_id = pv.pv_id
15921
                  AND dep.dpv_id = dpv.pv_id
15922
                  AND dpv.pkg_id = tes.pkg_id
5172 dpurdie 15923
                  AND NVL (dpv.v_ext, '|LINK_A_NULL|') = NVL (tes.v_ext, '|LINK_A_NULL|')
3959 dpurdie 15924
                  AND tes.session_num = nnsession_num
15925
                  AND tes.level_num = previteration
15926
                  AND (dep.pv_id, dep.dpv_id) IN 
5172 dpurdie 15927
                                                   /* Remove packages listed in IGNORE_WARNINGS table 
15928
                                                      and PEGGED packages
15929
                                                      and packages already stored in Temp Table.
3959 dpurdie 15930
                                                 */
15931
                      (
15932
                         SELECT pd.pv_id, pd.dpv_id
15933
                           FROM package_dependencies pd, release_content rc
15934
                          WHERE pd.pv_id = rc.pv_id AND rc.rtag_id = nnrtag_id
5172 dpurdie 15935
                           AND NOT pd.pv_id IN (SELECT pegv.pv_id FROM PEGGED_VERSIONS pegv WHERE pegv.rtag_id = nnrtag_id)
15936
                          -- AND pd.pv_id NOT IN ( SELECT pv_id FROM temp_env_states WHERE session_num = NNsession_num AND level_num > 5 )
3959 dpurdie 15937
                         MINUS
15938
                         SELECT igw.pv_id, igw.dpv_id
15939
                           FROM ignore_warnings igw
15940
                          WHERE igw.rtag_id = nnrtag_id);
1373 dpurdie 15941
 
3959 dpurdie 15942
   nnrowcnt := SQL%ROWCOUNT;
15943
END level_n_conflicts;
4040 dpurdie 15944
 
1374 dpurdie 15945
/
4040 dpurdie 15946
--------------------------------------------------------
15947
--  DDL for Procedure LEVEL_ONE_CONFLICTS
15948
--------------------------------------------------------
15949
set define off;
15950
 
5172 dpurdie 15951
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LEVEL_ONE_CONFLICTS" (
1373 dpurdie 15952
   nnrtag_id       IN   NUMBER,
15953
   nnsession_num   IN   NUMBER
15954
)
15955
IS
15956
BEGIN
15957
   /* ---------  LEVEL 1 CONFILCTS -----------
15958
   || Following states are used:
15959
   || 0 -> NOT FOUND
15960
   || 1 -> MAJOR
15961
   || 2 -> MINOR MINOR
15962
   */
15963
   INSERT INTO temp_env_states
15964
      SELECT DISTINCT nnsession_num AS session_num, 1 AS level_num,
15965
                      err.pv_id, errpkg.pkg_id, errpkg.v_ext,
15966
                      DECODE (frc.v_nmm,
15967
                              NULL, 0,
15968
                              errpv.v_nmm, DECODE (frc.v_mm,
15969
                                                   errpv.v_mm, NULL,
15970
                                                   2
15971
                                                  ),
15972
                              1
15973
                             ) AS MESSAGE
15974
                 FROM (
15975
                       /* Full Release Contents used for reference*/
15976
                        SELECT rel.rtag_id, rpv.pv_id, rpv.pkg_id,
15977
                                NVL (rpv.v_ext, '|LINK_A_NULL|') AS v_ext,
15978
                                rpv.pkg_version, rpv.v_nmm, rpv.v_mm,
15979
                                (SELECT COUNT(*)
15980
                                   FROM ADVISORY_RIPPLE avr
15981
                                  WHERE avr.rtag_id = rel.rtag_id
15982
                                    AND avr.pv_id = rel.pv_id
15983
                                ) AS IsAvr
15984
                          FROM release_content rel,
15985
                                package_versions rpv
15986
                          WHERE rel.pv_id = rpv.pv_id
15987
                             AND rtag_id = nnrtag_id
15988
                      ) frc,
15989
 
15990
                      (
15991
                       /* DPV_IDs not found in release (excluding those from pegged versions whose dependencies will not
15992
                          necessarily be satisfied in the release) */
15993
                       SELECT dep.pv_id, dep.dpv_id AS err_dpv
15994
                         FROM package_dependencies dep,
15995
                              package_versions dep_dpv
15996
                        WHERE dep.dpv_id = dep_dpv.pv_id
15997
                          AND dep.pv_id IN (SELECT pv_id FROM release_content WHERE rtag_id = nnrtag_id)
15998
                          AND NOT dep.pv_id IN (SELECT pegv.pv_id FROM PEGGED_VERSIONS pegv WHERE pegv.rtag_id = nnrtag_id)
15999
                          AND NOT dep.dpv_id IN (SELECT pv_id FROM release_content WHERE rtag_id = nnrtag_id)
16000
                       MINUS
16001
                       /* MINUS Dependencies to be ignored */
16002
                       SELECT igw.pv_id, igw.dpv_id AS err_dpv
16003
                         FROM ignore_warnings igw,
16004
                              package_versions igw_dpv
16005
                        WHERE igw.dpv_id = igw_dpv.pv_id
16006
                          AND igw.rtag_id = nnrtag_id
16007
                      ) err,
16008
                      package_versions errpkg,
16009
                      package_versions errpv
16010
                WHERE err.err_dpv = errpv.pv_id
16011
                  AND errpv.pkg_id = frc.pkg_id(+)
16012
                  AND NVL (errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
16013
                  AND err.pv_id = errpkg.pv_id
16014
                  AND frc.IsAvr = 0;
16015
END level_one_conflicts;
4040 dpurdie 16016
 
1374 dpurdie 16017
/
4040 dpurdie 16018
--------------------------------------------------------
16019
--  DDL for Procedure LOCK_PACKAGE
16020
--------------------------------------------------------
16021
set define off;
16022
 
5172 dpurdie 16023
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
1373 dpurdie 16024
											 nUserId IN NUMBER ) IS
16025
/* ---------------------------------------------------------------------------
16026
    Version: 4.0
16027
   --------------------------------------------------------------------------- */
16028
 
16029
BEGIN
16030
 
16031
    -- Lock Package
16032
    UPDATE PACKAGE_VERSIONS pv SET
16033
    	pv.DLOCKED = 'Y'
16034
    WHERE pv.PV_ID = nPvId;
16035
 
16036
    /* LOG ACTION */
16037
   	Log_Action ( nPvId, 'lock_package', nUserId );
16038
 
16039
END Lock_Package;
4040 dpurdie 16040
 
1374 dpurdie 16041
/
4040 dpurdie 16042
--------------------------------------------------------
16043
--  DDL for Procedure LOG_ACTION
16044
--------------------------------------------------------
16045
set define off;
16046
 
5172 dpurdie 16047
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 16048
										 enumActionTypeName IN ACTION_TYPE.NAME%TYPE,
16049
                                         nUserId IN ACTION_LOG.USER_ID%TYPE,
16050
										 sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL  ) IS
1373 dpurdie 16051
/* ---------------------------------------------------------------------------
16052
    Version: 3.0
16053
   --------------------------------------------------------------------------- */
16054
 
3959 dpurdie 16055
    ActionTypeId NUMBER;
1373 dpurdie 16056
 
16057
BEGIN
16058
 
3959 dpurdie 16059
    -- Get Action Type FK
16060
    SELECT act.ACTTYPE_ID INTO ActionTypeId
16061
      FROM ACTION_TYPE act
16062
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 16063
 
16064
 
5172 dpurdie 16065
    INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
16066
    VALUES ( nUserId, nPvId, sAdditionalComments, ActionTypeId );
1373 dpurdie 16067
 
16068
 
3959 dpurdie 16069
END Log_Action;
4040 dpurdie 16070
 
1374 dpurdie 16071
/
4040 dpurdie 16072
--------------------------------------------------------
16073
--  DDL for Procedure LOG_ACTION_BULK
16074
--------------------------------------------------------
16075
set define off;
16076
 
5172 dpurdie 16077
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION_BULK" ( nPvIdList IN VARCHAR2,
3959 dpurdie 16078
										 	  enumActionTypeName IN ACTION_TYPE.NAME%TYPE,
16079
                                         	  nUserId IN ACTION_LOG.USER_ID%TYPE,
16080
										 	  sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL  ) IS
1373 dpurdie 16081
/* ---------------------------------------------------------------------------
3959 dpurdie 16082
    Version: 3.0
1373 dpurdie 16083
   --------------------------------------------------------------------------- */
16084
 
3959 dpurdie 16085
    ActionTypeId NUMBER;
16086
    oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
1373 dpurdie 16087
 
16088
BEGIN
16089
 
3959 dpurdie 16090
    oPvIdCollector := IN_LIST_NUMBER ( nPvIdList );
1373 dpurdie 16091
 
3959 dpurdie 16092
    -- Get Action Type FK
16093
    SELECT act.ACTTYPE_ID INTO ActionTypeId
16094
      FROM ACTION_TYPE act
16095
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 16096
 
3959 dpurdie 16097
    -- Log Action
5172 dpurdie 16098
    INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
3959 dpurdie 16099
    SELECT nUserId,
5172 dpurdie 16100
    	     pv.PV_ID,
3959 dpurdie 16101
           sAdditionalComments,
16102
           ActionTypeId
16103
      FROM PACKAGE_VERSIONS pv
16104
     WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
1373 dpurdie 16105
 
16106
 
3959 dpurdie 16107
END Log_Action_Bulk;
4040 dpurdie 16108
 
1374 dpurdie 16109
/
4040 dpurdie 16110
--------------------------------------------------------
16111
--  DDL for Procedure LOG_DAEMON_ACTION
16112
--------------------------------------------------------
16113
set define off;
16114
 
5172 dpurdie 16115
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_DAEMON_ACTION" ( nRconId IN NUMBER,
3959 dpurdie 16116
												 enumActionTypeName IN VARCHAR2,
16117
		                                         nUserId IN NUMBER,
16118
												 sAdditionalComments IN VARCHAR2 DEFAULT NULL  ) IS
16119
/* ---------------------------------------------------------------------------
16120
    Version: 3.0
16121
   --------------------------------------------------------------------------- */
1373 dpurdie 16122
 
3959 dpurdie 16123
    ActionTypeId NUMBER;
1373 dpurdie 16124
 
16125
BEGIN
16126
 
3959 dpurdie 16127
    -- Get Action Type FK
16128
    SELECT act.ACTTYPE_ID INTO ActionTypeId
16129
      FROM ACTION_TYPE act
16130
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 16131
 
16132
 
3959 dpurdie 16133
    INSERT INTO DAEMON_ACTION_LOG
16134
    VALUES ( nUserId, ORA_SYSDATETIME, nRconId, sAdditionalComments, ActionTypeId );
1373 dpurdie 16135
 
16136
 
3959 dpurdie 16137
END Log_Daemon_Action;
4040 dpurdie 16138
 
1374 dpurdie 16139
/
4040 dpurdie 16140
--------------------------------------------------------
16141
--  DDL for Procedure LOG_PROJECT_ACTION
16142
--------------------------------------------------------
16143
set define off;
16144
 
5172 dpurdie 16145
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_PROJECT_ACTION" ( nProjId IN NUMBER,
3959 dpurdie 16146
												 enumActionTypeName IN VARCHAR2,
16147
		                                         nUserId IN NUMBER,
16148
												 sAdditionalComments IN VARCHAR2 DEFAULT NULL,
16149
												 nRtagId IN NUMBER  ) IS
1373 dpurdie 16150
/* ---------------------------------------------------------------------------
3959 dpurdie 16151
    Version: 3.0
1373 dpurdie 16152
   --------------------------------------------------------------------------- */
16153
 
3959 dpurdie 16154
    ActionTypeId NUMBER;
1373 dpurdie 16155
 
16156
BEGIN
16157
 
3959 dpurdie 16158
    -- Get Action Type FK
16159
    SELECT act.ACTTYPE_ID INTO ActionTypeId
16160
      FROM ACTION_TYPE act
16161
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 16162
 
16163
 
3959 dpurdie 16164
    INSERT INTO PROJECT_ACTION_LOG ( USER_ID, ACTION_DATETIME, PROJ_ID, DESCRIPTION, ACTTYPE_ID, RTAG_ID)
16165
    VALUES ( nUserId, ORA_SYSDATETIME, nProjId, sAdditionalComments, ActionTypeId, nRtagId);
1373 dpurdie 16166
 
16167
 
3959 dpurdie 16168
END Log_Project_Action;
4040 dpurdie 16169
 
1374 dpurdie 16170
/
4040 dpurdie 16171
--------------------------------------------------------
16172
--  DDL for Procedure NEW_ADDITIONAL_NOTE
16173
--------------------------------------------------------
16174
set define off;
16175
 
5172 dpurdie 16176
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_ADDITIONAL_NOTE" ( pnPv_id IN NUMBER,
3959 dpurdie 16177
                                                  psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,
16178
                                                  psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,
16179
                                                  pnUser_id IN NUMBER,
16180
                                                  outErrCode OUT NUMBER
16181
                                                 ) IS
1373 dpurdie 16182
/* ---------------------------------------------------------------------------
3959 dpurdie 16183
    Version: 3.0.0
1373 dpurdie 16184
   --------------------------------------------------------------------------- */
16185
 
16186
    newID NUMBER;
16187
 
16188
	CURSOR an_duplicate_cur IS
3959 dpurdie 16189
        SELECT note_id
1373 dpurdie 16190
          FROM ADDITIONAL_NOTES
16191
         WHERE pv_id = pnPv_id
16192
           AND note_title = psNote_title;
16193
    an_duplicate_rec an_duplicate_cur%ROWTYPE;
16194
 
16195
BEGIN
16196
	outErrCode := -1;		-- Set default return error code to ERROR state
16197
 
16198
	OPEN an_duplicate_cur;
16199
    FETCH an_duplicate_cur INTO an_duplicate_rec;
16200
 
3959 dpurdie 16201
    IF an_duplicate_cur%NOTFOUND
1373 dpurdie 16202
    THEN
3959 dpurdie 16203
		/* No duplicate titles */
16204
		-- Get new ID --
16205
    	SELECT SEQ_ADDITIONAL_NOTES.NEXTVAL INTO newID FROM DUAL;
16206
 
16207
		--- Add Additional Note ---
16208
	    INSERT INTO ADDITIONAL_NOTES ( note_id, pv_id, note_title, note_body, mod_date, mod_user  )
16209
	    VALUES (  newID, pnPv_id, psNote_title, psNote_body, Ora_Sysdate, pnUser_id );
1373 dpurdie 16210
		outErrCode := 0;		-- Set return to SUCCESS
16211
	END IF;
16212
 
16213
	CLOSE an_duplicate_cur;
3959 dpurdie 16214
END New_Additional_Note;
4040 dpurdie 16215
 
1374 dpurdie 16216
/
4040 dpurdie 16217
--------------------------------------------------------
16218
--  DDL for Procedure NEW_PACKAGE_NAME
16219
--------------------------------------------------------
16220
set define off;
16221
 
5172 dpurdie 16222
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_PACKAGE_NAME" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
3959 dpurdie 16223
                                               retPKG_ID OUT NUMBER ) IS
1373 dpurdie 16224
/* ---------------------------------------------------------------------------
3959 dpurdie 16225
    Version: 3.0.0
1373 dpurdie 16226
   --------------------------------------------------------------------------- */
16227
 
3959 dpurdie 16228
    CURSOR packages_cur IS
16229
        SELECT pkg.pkg_id
16230
          FROM packages pkg
16231
         WHERE pkg.pkg_name = SSpkg_name;
16232
    packages_rec packages_cur%ROWTYPE;
1373 dpurdie 16233
 
16234
 
16235
BEGIN
16236
 
3959 dpurdie 16237
    /* ---------------------------------------------------- */
16238
    /* Find if package name exists                          */
16239
    /* ---------------------------------------------------- */
1373 dpurdie 16240
 
3959 dpurdie 16241
    OPEN packages_cur;
16242
    FETCH packages_cur INTO packages_rec;
1373 dpurdie 16243
 
3959 dpurdie 16244
    IF packages_cur%NOTFOUND
16245
    THEN
16246
        -- Create new pkg_name --
16247
        SELECT SEQ_PKG_ID.nextval INTO retPKG_ID FROM DUAL;
1373 dpurdie 16248
 
3959 dpurdie 16249
        INSERT INTO packages ( pkg_id, pkg_name )
16250
        VALUES ( retPKG_ID, SSpkg_name );
1373 dpurdie 16251
 
3959 dpurdie 16252
    ELSE
16253
        retPKG_ID := packages_rec.pkg_id;
1373 dpurdie 16254
 
3959 dpurdie 16255
    END IF;
1373 dpurdie 16256
 
16257
 
3959 dpurdie 16258
    CLOSE packages_cur;
1373 dpurdie 16259
 
3959 dpurdie 16260
END New_Package_Name;
4040 dpurdie 16261
 
1374 dpurdie 16262
/
4040 dpurdie 16263
--------------------------------------------------------
16264
--  DDL for Procedure NEW_PATCH
16265
--------------------------------------------------------
16266
set define off;
16267
 
5172 dpurdie 16268
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_PATCH" ( SSpatch_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
1373 dpurdie 16269
 	   	  		  					  	NNparent_id IN NUMBER,
16270
                                        sPatchIdList IN VARCHAR2,
16271
										NNuser_id IN NUMBER ) IS
16272
/* ---------------------------------------------------------------------------
16273
    Version: 3.5
16274
   --------------------------------------------------------------------------- */
16275
 
16276
    patchPv_id    NUMBER;
16277
	parPkg_id	  NUMBER;
16278
    LastInstallOrder NUMBER;
16279
    isPatchDlocked PACKAGE_VERSIONS.DLOCKED%TYPE;
16280
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
16281
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
16282
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
16283
	oPatchDepCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
16284
 
16285
	CURSOR parent_cur IS
16286
        SELECT pv.*, pkg.pkg_name
16287
          FROM package_versions pv,
16288
		       packages pkg
16289
         WHERE pv.pv_id = NNparent_id
16290
		   AND pv.pkg_id = pkg.pkg_id;
16291
    parent_rec parent_cur%ROWTYPE;
16292
 
16293
    CURSOR patch_cur IS
16294
        SELECT pv.*, pg.pkg_name
16295
          FROM package_versions pv,
16296
		       packages pg
16297
         WHERE pv.pkg_id = parPkg_id
16298
		   AND pv.pkg_version = SSpatch_version
16299
		   AND pv.pkg_id = pg.pkg_id;
16300
    patch_rec patch_cur%ROWTYPE;
16301
 
16302
	CURSOR releases_cur IS
16303
        SELECT rc.pv_id
16304
		  FROM release_content rc
16305
		 WHERE rc.pv_id = patch_rec.pv_id;
16306
    releases_rec releases_cur%ROWTYPE;
16307
 
16308
 
16309
BEGIN
16310
 
16311
	-- Get Last Install Order
16312
    SELECT Count(*) INTO LastInstallOrder
16313
	  FROM PACKAGE_PATCHES pp
16314
	 WHERE pp.PV_ID = NNparent_id;
16315
 
16316
 
16317
    -- Get parent details
16318
	OPEN parent_cur;
16319
    FETCH parent_cur INTO parent_rec;
16320
	parPkg_id := parent_rec.pkg_id;
16321
 
16322
 
16323
	-- Find if patch exists in database
16324
    OPEN patch_cur;
16325
    FETCH patch_cur INTO patch_rec;
16326
 
16327
 
16328
    -- Parent must be official
16329
    IF parent_rec.dlocked = 'Y' THEN
16330
 
16331
	    IF patch_cur%NOTFOUND
16332
	    THEN
16333
        	isPatchDlocked := 'N';
16334
 
16335
	        -- Create new patch version --
16336
	        SELECT SEQ_PV_ID.nextval INTO patchPv_id FROM DUAL;
16337
 
16338
 
16339
	        Split_version ( SSpatch_version, SSV_MM, SSV_NMM, SSV_EXT );
16340
 
16341
	        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 )
16342
				   VALUES (
16343
						   patchPv_id,
16344
	                       parPkg_id,
16345
	                       SSpatch_version,
16346
	                       isPatchDlocked,
16347
	                       ORA_SYSDATE,
16348
	                       NNuser_id,
16349
	                       ORA_SYSDATETIME,
16350
	                       NNuser_id,
16351
	                       SSV_MM,
16352
	                       SSV_NMM,
16353
	                       SSV_EXT,
16354
	                       parent_rec.src_path,
16355
	                       'This is a patch to ' || parent_rec.pkg_name || ' ' || parent_rec.pkg_version,
16356
	                       NNuser_id,
16357
						   'Y',
16358
                           patchPv_id,
16359
						   parent_rec.bs_id,
16360
						   parent_rec.is_autobuildable,
16361
						   parent_rec.ripple_field
16362
 
16363
						   );
16364
 
16365
			INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )
16366
		    	   ( SELECT NNparent_id AS pv_id,
16367
				            pv.pv_id AS patch_id,
16368
	                        LastInstallOrder + 1 AS INSTALL_ORDER
16369
				       FROM package_versions pv
16370
					  WHERE pv.pv_id = patchPv_id
16371
					    AND pv.is_patch = 'Y' );
16372
 
16373
	        /* LOG ACTION */
16374
            Log_Action ( patchPv_id, 'new_version', NNuser_id,
16375
        			     'Patch version created: '|| SSpatch_version );
16376
 
16377
        	Log_Action ( NNparent_id, 'patch_add', NNuser_id,
16378
        			     'New patch created and attached: '|| SSpatch_version );
16379
 
16380
 
16381
	    ELSE
16382
 
16383
		    patchPv_id := patch_rec.pv_id;
16384
	    	isPatchDlocked := patch_rec.dlocked;
16385
 
16386
			-- Find if pv_id exists in release content (i.e. it cannot be a patch)
16387
		    OPEN releases_cur;
16388
		    FETCH releases_cur INTO releases_rec;
16389
 
16390
			IF releases_cur%NOTFOUND
16391
	   		THEN
16392
				-- This pv_id is trully a patch, hence add Y to column IS_PATCH
16393
				UPDATE package_versions SET
16394
					   is_patch = 'Y'
16395
					   WHERE pv_id = patchPv_id;
16396
 
16397
				INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )
16398
			    	   ( SELECT NNparent_id AS pv_id,
16399
					            pv.pv_id AS patch_id,
16400
	                            LastInstallOrder + 1 AS INSTALL_ORDER
16401
					       FROM package_versions pv
16402
						  WHERE pv.pv_id = patchPv_id
16403
						    AND pv.is_patch = 'Y' );
16404
 
16405
			END IF;
16406
 
16407
			CLOSE releases_cur;
16408
 
16409
            /* LOG ACTION */
16410
        	Log_Action ( NNparent_id, 'patch_add', NNuser_id,
16411
        			     'Patch version was found and attached: '|| SSpatch_version );
16412
 
16413
	    END IF;
16414
 
16415
 
16416
 
16417
 
16418
    END IF;
16419
 
16420
 
16421
 
16422
    /* Create Patch Dependencies */
16423
    oPatchDepCollector := IN_LIST_NUMBER ( sPatchIdList );
16424
 
16425
 
16426
    -- Make sure patch is unofficial before altering its dependencies
16427
    IF (oPatchDepCollector.COUNT > 0) AND (isPatchDlocked = 'N') THEN
16428
    	-- Delete Existing Dependencies
16429
        DELETE
16430
          FROM PACKAGE_DEPENDENCIES dep
16431
         WHERE dep.PV_ID = patchPv_id;
16432
 
16433
 
16434
        -- Insert new dependencies
16435
        INSERT INTO PACKAGE_DEPENDENCIES ( PV_ID, DPV_ID, PKG_ID, DPKG_ID, BUILD_TYPE )
16436
        SELECT patchPv_id AS PV_ID,
16437
        	   pv.PV_ID AS DPV_ID,
16438
               parPkg_id AS PKG_ID,
16439
               pv.PKG_ID AS DPKG_ID,
16440
               'L' AS BUILD_TYPE
16441
          FROM PACKAGE_VERSIONS pv
16442
         WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPatchDepCollector AS RELMGR_NUMBER_TAB_t ) ) );
16443
 
16444
 
16445
    END IF;
16446
 
16447
 
16448
    CLOSE parent_cur;
16449
    CLOSE patch_cur;
16450
END New_Patch;
4040 dpurdie 16451
 
1374 dpurdie 16452
/
4040 dpurdie 16453
--------------------------------------------------------
16454
--  DDL for Procedure NEW_UNIT_TEST
16455
--------------------------------------------------------
16456
set define off;
16457
 
5172 dpurdie 16458
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_UNIT_TEST" ( nPv_id IN NUMBER,
3959 dpurdie 16459
                                            nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,
16460
                                            sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
16461
                                            sNumOfTest IN UNIT_TESTS.NUMOF_TEST%TYPE,
16462
                                            sDpkg_path IN VARCHAR2,
16463
                                            sResults IN VARCHAR2,
16464
                                            sCompletion_date IN VARCHAR2,
16465
                                            nCompleted_by IN NUMBER,
16466
											enumTEST_TYPE_AUTOMATIC IN NUMBER,
16467
											enumTEST_TYPE_NOT_DONE IN NUMBER,
16468
											outFileName OUT VARCHAR2
16469
                                           ) IS
16470
/* ---------------------------------------------------------------------------
16471
    Version: 3.2.0
16472
   --------------------------------------------------------------------------- */
1373 dpurdie 16473
 
3959 dpurdie 16474
   	FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
1373 dpurdie 16475
 
3959 dpurdie 16476
    newID NUMBER;
16477
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
16478
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
1373 dpurdie 16479
 
3959 dpurdie 16480
BEGIN
1373 dpurdie 16481
 
3959 dpurdie 16482
	-- Get new ID --
16483
   	SELECT SEQ_UNIT_TESTS.NEXTVAL INTO newID FROM DUAL;
1373 dpurdie 16484
 
3959 dpurdie 16485
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
16486
       	ResultsURL := sResults;
16487
       ELSE
16488
       	IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
16489
        	outFileName := FILENAME_PREFIX || newID ||'_'|| sResults;
16490
    		ResultsAttachment := sDpkg_path || '/' || outFileName;
16491
           END IF;
16492
       END IF;
1373 dpurdie 16493
 
3959 dpurdie 16494
	-- Remove NOT_DONE entry if exists
16495
	DELETE FROM UNIT_TESTS
16496
	 WHERE pv_id = nPv_id
16497
	   AND test_types_fk = enumTEST_TYPE_NOT_DONE;
1373 dpurdie 16498
 
3959 dpurdie 16499
	--- Add Additional Note ---
16500
    INSERT INTO UNIT_TESTS ( TEST_ID,
16501
								PV_ID,
16502
								TEST_TYPES_FK,
16503
								TEST_SUMMARY,
16504
								COMPLETION_DATE,
16505
								COMPLETED_BY,
16506
								RESULTS_URL,
16507
								RESULTS_ATTACHMENT_NAME,
16508
								NUMOF_TEST )
16509
    VALUES (
16510
       	newID,
16511
           nPv_id,
16512
           nTestTypeId,
16513
           sTest_summary,
16514
           TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
16515
           nCompleted_by,
16516
           ResultsURL,
16517
           ResultsAttachment,
16518
		   sNumOfTest );
1373 dpurdie 16519
 
3959 dpurdie 16520
END New_Unit_Test;
4040 dpurdie 16521
 
1374 dpurdie 16522
/
4040 dpurdie 16523
--------------------------------------------------------
16524
--  DDL for Procedure PAOLO_BUILD_TREE
16525
--------------------------------------------------------
16526
set define off;
16527
 
5172 dpurdie 16528
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."PAOLO_BUILD_TREE" ( nRtag_id IN NUMBER ) IS
1373 dpurdie 16529
 
3959 dpurdie 16530
    sessionNumber NUMBER := 0;
16531
    iteration NUMBER := 1; 
16532
    rowCnt NUMBER := 0;
16533
    maxIterations 	NUMBER := 50;
16534
 
1373 dpurdie 16535
BEGIN
3959 dpurdie 16536
 
16537
 
16538
    INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
16539
    SELECT sessionNumber, iteration, rc.PV_ID
16540
      FROM RELEASE_CONTENT rc
16541
     WHERE rc.RTAG_ID = nRtag_id;
16542
 
16543
    iteration := iteration + 1;
16544
    LOOP
16545
 
16546
        INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
16547
		SELECT sessionNumber,     
16548
               iteration,
16549
               dep.DPV_ID
16550
          FROM TEMP_TREE_BROWSE ttb,
16551
               PACKAGE_DEPENDENCIES dep
16552
         WHERE dep.PV_ID = ttb.PV_ID 
16553
           AND ttb.LEVEL_NUM = iteration - 1 
16554
 
16555
         MINUS  
16556
 
16557
        SELECT sessionNumber, iteration, ttb.PV_ID
16558
          FROM TEMP_TREE_BROWSE ttb;   
16559
 
16560
 
16561
 
16562
 
16563
		rowCnt := SQL%ROWCOUNT;
16564
		IF rowCnt > 0 THEN
16565
           iteration := iteration + 1;
16566
		END IF;
16567
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
16568
    END LOOP; 
16569
 
16570
END PAOLO_Build_Tree;
4040 dpurdie 16571
 
1374 dpurdie 16572
/
4040 dpurdie 16573
--------------------------------------------------------
16574
--  DDL for Procedure REBUILD_ENVIRONMENT
16575
--------------------------------------------------------
16576
set define off;
16577
 
5172 dpurdie 16578
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REBUILD_ENVIRONMENT" ( NNrtag_id IN NUMBER ) IS
1373 dpurdie 16579
 
16580
/* ---------------------------------------------------------------------------
16581
    Version: 3.3
16582
   --------------------------------------------------------------------------- */
16583
    rowCnt NUMBER := 0;
16584
    iteration NUMBER := 2;          -- Iterations counter
16585
    maxIterations NUMBER := 50;    -- Maximum number of iterations allowed.
16586
                                    -- This will prevent infinite loops if cyrcular dependencies are found
16587
    sessionNum NUMBER;
16588
BEGIN
16589
    SELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;
16590
 
16591
 
16592
    -- Redo Patch Ignore warnings
16593
    Ignore_Dependency_Warnings ( NNrtag_id, NULL, NULL, TRUE );
16594
 
16595
 
16596
    Level_One_Conflicts ( NNrtag_id, sessionNum );
16597
 
16598
    LOOP
16599
        Level_N_Conflicts ( NNrtag_id, sessionNum, rowCnt, iteration );
16600
        iteration := iteration + 1;
16601
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
16602
    END LOOP;
5172 dpurdie 16603
 
1373 dpurdie 16604
    Update_Package_States ( NNrtag_id, sessionNum );
16605
 
16606
    DELETE FROM temp_env_states WHERE temp_env_states.session_num = sessionNum;
16607
 
16608
    -- Flag Packages with New Patches Available
16609
    Check_New_Patches ( NNrtag_id );
16610
 
16611
	Clean_Do_Not_Ripple( NNrtag_id );
16612
 
16613
 
16614
	/* Circular Dependency Flag */
16615
    /*
16616
	IF iteration > maxIterations
16617
	THEN
16618
		UPDATE release_tags SET
16619
		   	   circular_dependency = 'Y'
16620
		 WHERE rtag_id = NNrtag_id;
16621
	ELSE
16622
		UPDATE release_tags SET
16623
		   	   circular_dependency = NULL
16624
		 WHERE rtag_id = NNrtag_id;
16625
	END IF;
16626
    */
16627
END Rebuild_Environment;
4040 dpurdie 16628
 
1374 dpurdie 16629
/
4040 dpurdie 16630
--------------------------------------------------------
16631
--  DDL for Procedure RELEASE_MANAGER_MAILOUT
16632
--------------------------------------------------------
16633
set define off;
16634
 
5172 dpurdie 16635
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RELEASE_MANAGER_MAILOUT" (
3959 dpurdie 16636
  sender      IN VARCHAR2,
16637
  recipient   IN VARCHAR2,
16638
  ccrecipient IN VARCHAR2,
16639
  subject     IN VARCHAR2,
16640
  message     IN VARCHAR2
16641
  ) IS
16642
 
16643
  crlf VARCHAR2(2):= UTL_TCP.CRLF;
16644
  connection utl_smtp.connection;
16645
  mailhost VARCHAR2(30) := 'aupera03.aupera.erggroup.com';
16646
  header VARCHAR2(1000);
16647
 
16648
BEGIN
16649
 
16650
  --
16651
  -- Start the connection.
16652
  --
16653
  connection := utl_smtp.open_connection(mailhost,25);
16654
 
16655
  header:= 'Date: '||TO_CHAR(SYSDATE,'dd Mon yy hh24:mi:ss')||crlf||
16656
     'From: '||sender||''||crlf||
16657
  'Subject: '||subject||crlf||
16658
       'To: '||recipient||crlf||
16659
       'CC: '||ccrecipient;
16660
 
16661
  --
16662
  -- Handshake with the SMTP server
16663
  --
16664
  utl_smtp.helo(connection, mailhost);
16665
  utl_smtp.mail(connection, sender);
16666
  utl_smtp.rcpt(connection, recipient);
16667
  utl_smtp.rcpt(connection, ccrecipient);
16668
  utl_smtp.open_data(connection);
16669
  --
16670
  -- Write the header
16671
  --
16672
  utl_smtp.write_data(connection, header);
16673
  --
16674
  -- The crlf is required to distinguish that what comes next is not simply part of the header..
16675
  --
16676
  utl_smtp.write_data(connection, crlf ||message);
16677
  utl_smtp.close_data(connection);
16678
  utl_smtp.quit(connection);
16679
 
16680
EXCEPTION
16681
  WHEN UTL_SMTP.INVALID_OPERATION THEN
16682
    dbms_output.put_line(' Invalid Operation in SMTP transaction.');
16683
  WHEN UTL_SMTP.TRANSIENT_ERROR THEN
16684
    dbms_output.put_line(' Temporary problems with sending email - try again later.');
16685
  WHEN UTL_SMTP.PERMANENT_ERROR THEN
16686
    dbms_output.put_line(' Errors in code for SMTP transaction.');
16687
 
16688
END RELEASE_MANAGER_MAILOUT;
4040 dpurdie 16689
 
3959 dpurdie 16690
/
4040 dpurdie 16691
--------------------------------------------------------
16692
--  DDL for Procedure REMOVE_COMPONENTS
16693
--------------------------------------------------------
16694
set define off;
16695
 
5172 dpurdie 16696
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_COMPONENTS" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE ) IS
3959 dpurdie 16697
/* ---------------------------------------------------------------------------
16698
    Version: 3.0.0
16699
   --------------------------------------------------------------------------- */
16700
 
16701
 
16702
BEGIN
16703
 
16704
	 --- Delete From RELEASE_COMPONENTS
16705
	 DELETE FROM RELEASE_COMPONENTS
16706
	 WHERE PV_ID = nPvId;
16707
 
16708
END Remove_Components;
4040 dpurdie 16709
 
3959 dpurdie 16710
/
4040 dpurdie 16711
--------------------------------------------------------
16712
--  DDL for Procedure REMOVE_DOCUMENT
16713
--------------------------------------------------------
16714
set define off;
16715
 
5172 dpurdie 16716
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_DOCUMENT" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 16717
											  nDocId IN PACKAGE_DOCUMENTS.DOC_ID%TYPE,
16718
                                              nUserId IN NUMBER ) IS
16719
/* ---------------------------------------------------------------------------
16720
    Version: 3.0
16721
   --------------------------------------------------------------------------- */
16722
 
16723
   DocNumber PACKAGE_DOCUMENTS.DOC_NUM%TYPE;
16724
 
16725
BEGIN
16726
 
16727
	-- Get Doc Num
16728
    SELECT pd.DOC_NUM INTO DocNumber
16729
      FROM PACKAGE_DOCUMENTS pd
16730
     WHERE pd.PV_ID = nPvId
16731
       AND pd.DOC_ID = nDocId;
16732
 
16733
 
16734
	-- Delete Document
16735
    DELETE
16736
      FROM PACKAGE_DOCUMENTS pd
16737
     WHERE pd.PV_ID = nPvId
16738
       AND pd.DOC_ID = nDocId;
16739
 
16740
 
16741
    /* LOG ACTION */
16742
   	Log_Action ( nPvId, 'document_remove', nUserId,
16743
   			     'Document number: '|| DocNumber );
16744
 
16745
 
16746
END Remove_Document;
4040 dpurdie 16747
 
3959 dpurdie 16748
/
4040 dpurdie 16749
--------------------------------------------------------
16750
--  DDL for Procedure REMOVE_PACKAGE_INTEREST
16751
--------------------------------------------------------
16752
set define off;
16753
 
5172 dpurdie 16754
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PACKAGE_INTEREST" (nProjId IN PROJECTS.PROJ_ID%TYPE,
3959 dpurdie 16755
	   	  		  								  	nPkgId IN PACKAGES.PKG_ID%TYPE,
16756
												  	nUserId IN NUMBER
16757
	   	  		  									) IS
16758
 
1373 dpurdie 16759
/******************************************************************************
3959 dpurdie 16760
   NAME:       REMOVE_PACKAGE_INTEREST
16761
   PURPOSE:    To remove interest in a given package per project
1373 dpurdie 16762
 
16763
   REVISIONS:
16764
   Ver        Date        Author           Description
16765
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 16766
   1.0        12/05/2006  Rupesh Solanki      1. Created this procedure.
1373 dpurdie 16767
 
16768
   NOTES:
16769
 
16770
   Automatically available Auto Replace Keywords:
3959 dpurdie 16771
      Object Name:     REMOVE_PACKAGE_INTEREST
16772
      Sysdate:         12/05/2006
16773
      Date and Time:   12/05/2006, 11:28:50 AM, and 12/05/2006 11:28:50 AM
1373 dpurdie 16774
      Username:         (set in TOAD Options, Procedure Editor)
16775
      Table Name:       (set in the "New PL/SQL Object" dialog)
16776
 
16777
******************************************************************************/
16778
BEGIN
16779
 
3959 dpurdie 16780
	 --Delete from PACKAGE_INTEREST
16781
	 DELETE FROM PACKAGE_INTEREST
16782
	 WHERE PROJ_ID = nProjId
16783
	 AND PKG_ID = nPkgId
16784
	 AND USER_ID = nUserId;
16785
 
16786
END REMOVE_PACKAGE_INTEREST;
4040 dpurdie 16787
 
1374 dpurdie 16788
/
4040 dpurdie 16789
--------------------------------------------------------
16790
--  DDL for Procedure REMOVE_PATCH
16791
--------------------------------------------------------
16792
set define off;
16793
 
5172 dpurdie 16794
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PATCH" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
3959 dpurdie 16795
										   nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
16796
                                           nUserId IN NUMBER ) IS
1373 dpurdie 16797
/* ---------------------------------------------------------------------------
3959 dpurdie 16798
    Version: 4.0
1373 dpurdie 16799
   --------------------------------------------------------------------------- */
16800
 
3959 dpurdie 16801
PatchVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
1373 dpurdie 16802
 
3959 dpurdie 16803
CURSOR curPatch IS
16804
	SELECT pp.PV_ID,
16805
		   pp.PATCH_ID,
16806
	       ROWNUM AS NEW_INSTALL_ORDER
16807
	  FROM PACKAGE_PATCHES pp
16808
	 WHERE pp.PV_ID = nPvId
16809
	ORDER BY pp.INSTALL_ORDER;
16810
recPatch curPatch%ROWTYPE;
16811
 
1373 dpurdie 16812
BEGIN
16813
 
3959 dpurdie 16814
	 -- Delete Patch
16815
     DELETE
16816
       FROM PACKAGE_PATCHES pp
16817
      WHERE pp.PV_ID = nPvId
16818
        AND pp.PATCH_ID = nPatchId;
1373 dpurdie 16819
 
16820
 
3959 dpurdie 16821
	-- Redo Install Order
16822
    OPEN curPatch;
16823
	FETCH curPatch INTO recPatch;
16824
 
16825
	WHILE curPatch%FOUND
16826
	LOOP
16827
 
16828
		UPDATE PACKAGE_PATCHES pp SET
16829
			pp.INSTALL_ORDER = recPatch.NEW_INSTALL_ORDER
16830
		WHERE pp.PV_ID = nPvId
16831
		  AND pp.PATCH_ID = recPatch.PATCH_ID;
16832
 
16833
		FETCH curPatch INTO recPatch;
16834
	END LOOP;
16835
 
16836
	CLOSE curPatch;
16837
 
16838
 
16839
 
16840
 
16841
    /* LOG ACTION */
16842
    SELECT pv.PKG_VERSION INTO PatchVersion
1373 dpurdie 16843
      FROM PACKAGE_VERSIONS pv
3959 dpurdie 16844
     WHERE pv.PV_ID = nPatchId;
1373 dpurdie 16845
 
3959 dpurdie 16846
   	Log_Action ( nPvId, 'patch_remove', nUserId,
16847
   			     'Version: '|| PatchVersion );
1373 dpurdie 16848
 
3959 dpurdie 16849
END Remove_Patch;
4040 dpurdie 16850
 
1374 dpurdie 16851
/
4040 dpurdie 16852
--------------------------------------------------------
16853
--  DDL for Procedure REMOVE_PROJECT_VIEW_OWNER
16854
--------------------------------------------------------
16855
set define off;
16856
 
5172 dpurdie 16857
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PROJECT_VIEW_OWNER" (nProjId IN NUMBER,
3959 dpurdie 16858
	   	  		  						 			  nViewId IN NUMBER,
16859
										 			  sUserIdList IN VARCHAR2,
16860
										 			  nUserId IN NUMBER ) IS
1373 dpurdie 16861
 
3959 dpurdie 16862
GroupId NUMBER;													  
16863
 
16864
 
16865
 
1373 dpurdie 16866
/******************************************************************************
3959 dpurdie 16867
   NAME:       UPDATE_VIEW
16868
   PURPOSE:    
1373 dpurdie 16869
 
16870
   REVISIONS:
3959 dpurdie 16871
   Ver        Date        Author           		Description
1373 dpurdie 16872
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 16873
   1.0        10/04/2006     Rupesh Solanki     1. Created this procedure.
1373 dpurdie 16874
 
16875
   NOTES:
16876
 
16877
   Automatically available Auto Replace Keywords:
3959 dpurdie 16878
      Object Name:     UPDATE_VIEW
16879
      Sysdate:         10/04/2006
16880
      Date and Time:   10/04/2006, 1:55:19 PM, and 10/04/2006 1:55:19 PM
1373 dpurdie 16881
      Username:         (set in TOAD Options, Procedure Editor)
16882
      Table Name:       (set in the "New PL/SQL Object" dialog)
16883
 
16884
******************************************************************************/
16885
 
16886
BEGIN
3959 dpurdie 16887
	 SELECT GROUP_EMAIL_ID into GroupId
16888
	 FROM AUTOBUILD_FAILURE
16889
	 WHERE PROJ_ID = nProjId
16890
	 AND VIEW_ID = nViewId;
16891
 
16892
	 DELETE FROM MEMBERS_GROUP
16893
	 WHERE GROUP_EMAIL_ID = GroupId
16894
	 AND USER_ID IN (
16895
	 SELECT * FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual ) 
16896
	 );
16897
 
1373 dpurdie 16898
 
3959 dpurdie 16899
 
16900
END REMOVE_PROJECT_VIEW_OWNER;
4040 dpurdie 16901
 
3959 dpurdie 16902
/
4040 dpurdie 16903
--------------------------------------------------------
16904
--  DDL for Procedure REMOVE_RELEASE_CONTENT
16905
--------------------------------------------------------
16906
set define off;
16907
 
5172 dpurdie 16908
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_RELEASE_CONTENT" ( sPvIdList IN VARCHAR2,
3959 dpurdie 16909
													 sNotPvIdList IN VARCHAR2,
16910
                                                     nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS
16911
/* ---------------------------------------------------------------------------
16912
    Version: 3.0
16913
   --------------------------------------------------------------------------- */
1373 dpurdie 16914
 
3959 dpurdie 16915
oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
16916
oNotPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
1373 dpurdie 16917
 
3959 dpurdie 16918
BEGIN
16919
	oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
16920
    oNotPvIdCollector := IN_LIST_NUMBER ( sNotPvIdList );
16921
 
16922
    -- Delete From Release Content
16923
    DELETE
16924
      FROM RELEASE_CONTENT
16925
	 WHERE rtag_id = nRTagId
16926
	   AND pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
16927
	   AND NOT pv_id IN ( SELECT * FROM TABLE ( CAST ( oNotPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
16928
 
16929
 
16930
 
16931
END Remove_Release_Content;
4040 dpurdie 16932
 
1374 dpurdie 16933
/
4040 dpurdie 16934
--------------------------------------------------------
16935
--  DDL for Procedure REMOVE_RUNTIME
16936
--------------------------------------------------------
16937
set define off;
16938
 
5172 dpurdie 16939
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_RUNTIME" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 16940
											 nRuntimeId IN RUNTIME_DEPENDENCIES.RTD_ID%TYPE,
16941
                                             nUserId IN NUMBER ) IS
16942
/* ---------------------------------------------------------------------------
16943
    Version: 3.0
16944
   --------------------------------------------------------------------------- */
16945
 
16946
   RuntimeDependency VARCHAR2(4000);
16947
 
16948
BEGIN
16949
 
16950
	-- Get Runtime dependency
16951
    SELECT pkg.PKG_NAME ||' '|| pv.PKG_VERSION  INTO RuntimeDependency
16952
	  FROM RUNTIME_DEPENDENCIES rtd,
16953
	  	   PACKAGES pkg,
16954
	       PACKAGE_VERSIONS pv
16955
	 WHERE rtd.PV_ID = nPvId
16956
	   AND pv.PKG_ID = pkg.PKG_ID
16957
	   AND rtd.RTD_ID = pv.PV_ID
16958
	   AND rtd.RTD_ID = nRuntimeId;
16959
 
16960
 
16961
	-- Delete Document
16962
    DELETE
16963
      FROM RUNTIME_DEPENDENCIES rtd
16964
     WHERE rtd.PV_ID = nPvId
16965
       AND rtd.RTD_ID = nRuntimeId;
16966
 
16967
 
16968
    /* LOG ACTION */
16969
   	Log_Action ( nPvId, 'runtime_remove', nUserId,
16970
   			     'Runtime package: '|| RuntimeDependency );
16971
 
16972
 
16973
END Remove_Runtime;
4040 dpurdie 16974
 
3959 dpurdie 16975
/
4040 dpurdie 16976
--------------------------------------------------------
16977
--  DDL for Procedure RENAME_PACKAGE_VERSION
16978
--------------------------------------------------------
16979
set define off;
16980
 
5172 dpurdie 16981
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RENAME_PACKAGE_VERSION" ( NNpv_id IN NUMBER,
4211 dpurdie 16982
                                  SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
16983
                                  cBuildType IN CHAR,
16984
                                  cChangeType IN CHAR,
16985
                                  NNuser_id IN NUMBER,
16986
                                  errMessage OUT VARCHAR2 ) IS
3959 dpurdie 16987
/* ---------------------------------------------------------------------------
16988
    Version: 3.2
16989
   --------------------------------------------------------------------------- */
16990
 
16991
    sPackageVersion VARCHAR2(4000);
4211 dpurdie 16992
    sLabel VARCHAR2(4000) := NULL;
16993
    sChangeType VARCHAR2(100) := NULL;
16994
    uChangeType CHAR := cChangeType;
3959 dpurdie 16995
    OldPkgVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
16996
 
16997
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
16998
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
16999
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
17000
 
17001
    CURSOR package_versions_cur IS
17002
        SELECT pv_id
4211 dpurdie 17003
          FROM package_versions
17004
         WHERE pkg_id IN ( SELECT pkg_id FROM package_versions WHERE pv_id = NNpv_id )
17005
           AND pkg_version = SSpkg_version;
3959 dpurdie 17006
    package_versions_rec package_versions_cur%ROWTYPE;
17007
 
17008
 
17009
BEGIN
17010
 
17011
    /* ---------------------------------------------------- */
17012
    /* Find if package_version exists                       */
17013
    /* ---------------------------------------------------- */
17014
 
4211 dpurdie 17015
    errMessage := NULL;
3959 dpurdie 17016
 
4211 dpurdie 17017
    -- Get previous version
17018
    SELECT pv.PKG_VERSION INTO OldPkgVersion
3959 dpurdie 17019
      FROM PACKAGE_VERSIONS pv
17020
     WHERE pv.PV_ID = NNpv_id;
17021
 
4211 dpurdie 17022
    sPackageVersion := SSpkg_version;
3959 dpurdie 17023
 
4211 dpurdie 17024
    IF OldPkgVersion != sPackageVersion THEN
3959 dpurdie 17025
 
4211 dpurdie 17026
        OPEN package_versions_cur;
17027
        FETCH package_versions_cur INTO package_versions_rec;
3959 dpurdie 17028
 
4211 dpurdie 17029
        IF package_versions_cur%NOTFOUND
17030
        THEN
3959 dpurdie 17031
 
4211 dpurdie 17032
            -- Split current version in parts
17033
            Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
3959 dpurdie 17034
 
17035
 
4211 dpurdie 17036
                -- Automated built config
17037
                IF ( cBuildType = 'M' ) THEN
17038
                    uChangeType := 'F';
17039
                END IF;  
17040
 
17041
                -- Automated version numbering
17042
                -- Make sure that version is still unique
17043
                IF (uChangeType != 'F') THEN
17044
                    sPackageVersion := '('|| NNpv_id ||')'|| SSV_EXT;
17045
                END IF;
3959 dpurdie 17046
 
4211 dpurdie 17047
                -- Packge version not found, hence rename it.
17048
                UPDATE package_versions
17049
                   SET pkg_version = sPackageVersion,
17050
                       v_mm = SSV_MM,
17051
                       v_nmm = SSV_NMM,
17052
                       v_ext = SSV_EXT,
17053
                       modified_stamp = ORA_SYSDATETIME,
17054
                       modifier_id = NNuser_id,
17055
                       build_type = cBuildType,
17056
                       change_type = uChangeType,
17057
                       pkg_label = NULL
17058
                 WHERE pv_id = NNpv_id;
17059
 
17060
                sLabel := GET_AUTOMATED_LABEL( NNpv_id );
17061
                UPDATE PACKAGE_VERSIONS pv SET
17062
                    pv.PKG_LABEL = sLabel
17063
                WHERE pv_id = NNpv_id;
3959 dpurdie 17064
 
17065
 
4211 dpurdie 17066
              /* LOG ACTION */
17067
              IF (cChangeType = 'F') THEN
17068
                  Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| sPackageVersion );
17069
              ELSE 
17070
 
17071
                  IF cChangeType = 'M' THEN
17072
                    sChangeType := 'Major Change';
17073
                  ELSIF cChangeType = 'N' THEN 
17074
                    sChangeType := 'Minor Change';
17075
                  ELSIF cChangeType = 'P' THEN 
17076
                    sChangeType := 'Patch Change';
17077
                  ELSE
17078
                    sChangeType := 'Unknown Change';
17079
                  END IF;
3959 dpurdie 17080
 
4211 dpurdie 17081
                  Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| sPackageVersion || ',' || sChangeType );
17082
              END IF;
3959 dpurdie 17083
 
4211 dpurdie 17084
        ELSE
17085
            -- Package version exists. Cannot proceed.
17086
            errMessage := 'enum_MSG_VERSION_EXISTS';
3959 dpurdie 17087
 
4211 dpurdie 17088
        END IF;
3959 dpurdie 17089
 
4211 dpurdie 17090
        CLOSE package_versions_cur;
3959 dpurdie 17091
 
4211 dpurdie 17092
    END IF;
3959 dpurdie 17093
 
17094
END Rename_Package_Version;
4040 dpurdie 17095
 
3959 dpurdie 17096
/
4040 dpurdie 17097
--------------------------------------------------------
17098
--  DDL for Procedure RESET_IGNORE_WARNINGS
17099
--------------------------------------------------------
17100
set define off;
17101
 
5172 dpurdie 17102
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RESET_IGNORE_WARNINGS" ( sPvIdList IN VARCHAR2,
3959 dpurdie 17103
                                                    nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS
17104
/* ---------------------------------------------------------------------------
17105
    Version: 5.0
17106
   --------------------------------------------------------------------------- */
17107
 
17108
oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
17109
 
17110
BEGIN
17111
	oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
17112
 
17113
    -- Remove Ignore Warnings
17114
     DELETE
17115
       FROM ignore_warnings
17116
	  WHERE (rtag_id, pv_id, dpv_id) IN
17117
	     (
17118
	      SELECT igw.rtag_id, igw.pv_id, igw.dpv_id
17119
	        FROM ignore_warnings igw,
17120
	             package_versions dpv,
17121
	             package_versions pv
17122
	       WHERE igw.dpv_id = dpv.pv_id
17123
	         AND igw.rtag_id = nRTagId
17124
	         AND dpv.pkg_id = pv.pkg_id
17125
	         AND NVL(dpv.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|')
17126
	         AND pv.pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
17127
         );
17128
 
17129
END Reset_Ignore_Warnings;
4040 dpurdie 17130
 
3959 dpurdie 17131
/
4040 dpurdie 17132
--------------------------------------------------------
17133
--  DDL for Procedure RIPPLE_PACKAGE
17134
--------------------------------------------------------
17135
set define off;
17136
 
5172 dpurdie 17137
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RIPPLE_PACKAGE" (
3959 dpurdie 17138
        sPvIdList IN VARCHAR2,
17139
        nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
17140
        nUserId IN NUMBER
17141
    ) IS
17142
/* ---------------------------------------------------------------------------
17143
    Version: 4.1
17144
   --------------------------------------------------------------------------- */
17145
 
17146
BEGIN
17147
 
17148
    IF (sPvIdList IS NULL) THEN
17149
        RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
17150
    END IF;
17151
 
17152
    -- Ripple Package
17153
    DELETE FROM DO_NOT_RIPPLE
17154
    WHERE RTAG_ID = nRtagId
17155
    AND PV_ID IN (
17156
        SELECT *
17157
        FROM THE (
17158
            SELECT CAST( IN_LIST_NUMBER( sPvIdList )
17159
            AS RELMGR_NUMBER_TAB_t )
17160
            FROM DUAL
17161
        )
17162
    );
17163
 
5172 dpurdie 17164
    -- Mark Release Changed for build
17165
    PK_RELEASE.SET_RELEASE_MODIFIED(nRtagId);
17166
 
3959 dpurdie 17167
    /* LOG ACTION */
17168
    Log_Action_Bulk ( sPvIdList, 'ripple_package', nUserId );
17169
 
17170
END Ripple_Package;
4040 dpurdie 17171
 
3959 dpurdie 17172
/
4040 dpurdie 17173
--------------------------------------------------------
17174
--  DDL for Procedure SEED_PACKAGE_NAMES_VERSIONS
17175
--------------------------------------------------------
17176
set define off;
17177
 
5172 dpurdie 17178
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
4585 dpurdie 17179
                                          SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
17180
                                          NNuser_id IN NUMBER,
17181
                                          retPV_ID OUT NUMBER,
17182
                                          nCloneFromPvId IN NUMBER DEFAULT NULL,
17183
                                          nBuildType IN CHAR DEFAULT 'M',
17184
                                          nChangeType IN CHAR DEFAULT 'F') IS
3959 dpurdie 17185
/* ---------------------------------------------------------------------------
5172 dpurdie 17186
    Version: 5.0
3959 dpurdie 17187
   --------------------------------------------------------------------------- */
17188
 
17189
    parPkg_id   NUMBER;
17190
    parPv_id    NUMBER;
17191
    cloneFrom_pv_id NUMBER;
17192
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
17193
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
17194
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
17195
    spackageversion VARCHAR2 (4000);
4211 dpurdie 17196
    slabel VARCHAR2 (4000) := NULL;
3959 dpurdie 17197
 
17198
    CURSOR packages_cur IS
17199
        SELECT pkg_id FROM PACKAGES
17200
        WHERE pkg_name = SSpkg_name;
17201
    packages_rec packages_cur%ROWTYPE;
17202
 
17203
    CURSOR package_versions_cur IS
17204
        SELECT pv_id FROM PACKAGE_VERSIONS
17205
        WHERE pkg_id = parPkg_id
17206
        AND pkg_version = SSpkg_version;
17207
    package_versions_rec package_versions_cur%ROWTYPE;
17208
 
17209
    CURSOR clone_package_versions_cur IS
17210
        SELECT MAX(pv_id) AS pv_id
17211
          FROM PACKAGE_VERSIONS
17212
         WHERE pkg_id = parPkg_id
17213
           AND NVL(v_ext,'LINK_A_NULL') = NVL(SSV_EXT,'LINK_A_NULL');
17214
    clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
17215
 
17216
BEGIN
17217
    /* -------------------------------------------- */
17218
    /* Find if pkg_name exists and seed if required */
17219
    /* -------------------------------------------- */
17220
    OPEN packages_cur;
17221
    FETCH packages_cur INTO packages_rec;
17222
 
17223
    IF packages_cur%NOTFOUND
17224
    THEN
17225
        /* INSERT into packages table */
17226
        SELECT SEQ_PKG_ID.NEXTVAL INTO parPkg_id FROM DUAL;
17227
        INSERT INTO PACKAGES ( pkg_id, pkg_name ) VALUES ( parPkg_id, SSpkg_name );
17228
 
17229
    ELSE
17230
        parPkg_id := packages_rec.pkg_id;
17231
 
17232
    END IF;
17233
 
17234
    CLOSE packages_cur;
17235
 
17236
 
17237
    /* ---------------------------------------------------- */
17238
    /* Find if package_version exists and seed if required  */
17239
    /* ---------------------------------------------------- */
17240
    OPEN package_versions_cur;
17241
    FETCH package_versions_cur INTO package_versions_rec;
17242
 
17243
    IF package_versions_cur%NOTFOUND
17244
    THEN
17245
        SELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;
17246
 
17247
        /* Generate automated version Number */
17248
        Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
17249
        spackageversion := SSpkg_version;
17250
 
4211 dpurdie 17251
        IF ( nChangeType <> 'F' )
3959 dpurdie 17252
        THEN
17253
            spackageversion := '(' || parPv_id || ')' || SSV_EXT;
17254
        END If;
17255
 
17256
        /* LOG ACTION */
17257
        Log_Action ( parPv_id, 'new_version', NNuser_id,
17258
                     'New package version: '|| spackageversion );
17259
 
17260
 
4585 dpurdie 17261
        /*  Determine clone source for new package-version
17262
            Use nCloneFromPvId - iff provided
17263
            Use most recently created pkgName/pkgExtension - if it exists
17264
            Else create a brand new package-version
17265
        */
3959 dpurdie 17266
 
4585 dpurdie 17267
        IF ( NOT nCloneFromPvId IS NULL) THEN
17268
            cloneFrom_pv_id := nCloneFromPvId;
17269
        ELSE
17270
            /* Find similar pkg_name + ext to clone from */
17271
            OPEN clone_package_versions_cur;
17272
            FETCH clone_package_versions_cur INTO clone_package_versions_rec;
17273
            CLOSE clone_package_versions_cur;
3959 dpurdie 17274
 
4585 dpurdie 17275
            IF ( NOT clone_package_versions_rec.pv_id IS NULL) THEN
17276
                cloneFrom_pv_id := clone_package_versions_rec.pv_id;
3959 dpurdie 17277
            ELSE
4585 dpurdie 17278
                cloneFrom_pv_id := NULL;
3959 dpurdie 17279
            END IF;
17280
 
4585 dpurdie 17281
        END IF;
17282
 
17283
        IF NOT cloneFrom_pv_id IS NULL
17284
        THEN
3959 dpurdie 17285
            -- Clone Package Version Details --
17286
            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,
17287
                                           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  )
17288
                SELECT parPv_id         AS pv_id,
17289
                       parPkg_id        AS pkg_id,
17290
                       spackageversion  AS pkg_version,
17291
                       'N'              AS dlocked,
17292
                       Ora_Sysdate      AS created_stamp,
17293
                       NNuser_id        AS creator_id,
17294
                       Ora_Sysdatetime  AS modified_stamp,
17295
                       NNuser_id        AS modifier_id,
17296
                       SSV_MM           AS V_MM,
17297
                       SSV_NMM          AS V_NMM,
17298
                       SSV_EXT          AS V_EXT,
17299
                       pv.src_path,
17300
                       pv.pv_description,
17301
                       pv.PV_OVERVIEW,
17302
                       cloneFrom_pv_id  AS LAST_PV_ID,
17303
                       pv.owner_id,
17304
                       nBuildType       AS BUILD_TYPE,
17305
                       pv.IS_BUILD_ENV_REQUIRED,
17306
                       pv.BS_ID,
17307
                       pv.is_autobuildable,
17308
                       pv.IS_DEPLOYABLE, 
17309
                       pv.ripple_field,
17310
                       nChangeType       AS change_type
17311
                  FROM PACKAGE_VERSIONS pv
17312
                 WHERE pv.pv_id = cloneFrom_pv_id;
17313
 
17314
            Basic_Clone ( cloneFrom_pv_id, parPv_id, NULL, NNuser_id, parPkg_id, 0 );
17315
 
17316
        ELSE
17317
            /* BRAND NEW version + ext */
17318
            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 )
17319
            VALUES (
17320
                    parPv_id,
17321
                    parPkg_id,
17322
                    spackageversion,
17323
                    'N',
17324
                    Ora_Sysdate,
17325
                    NNuser_id,
17326
                    Ora_Sysdatetime,
17327
                    NNuser_id,
17328
                    SSV_MM,
17329
                    SSV_NMM,
17330
                    SSV_EXT,
17331
                    NNuser_id,
17332
                    parPv_id,
17333
                    nBuildType,
17334
                    'b',
17335
                    nChangeType
17336
                   );
17337
        END IF;
17338
 
4211 dpurdie 17339
        /* Insert initial package label */
17340
        slabel := get_automated_label (parPv_id);
17341
        UPDATE package_versions pv
17342
        SET pv.pkg_label = slabel
17343
        WHERE pv.pv_id = parPv_id;
17344
 
3959 dpurdie 17345
        retPV_ID := parPv_id;
17346
 
17347
    ELSE
17348
        retPV_ID := package_versions_rec.pv_id;
17349
 
17350
    END IF;
17351
 
17352
    CLOSE package_versions_cur;
17353
 
17354
END Seed_Package_Names_Versions;
4040 dpurdie 17355
 
3959 dpurdie 17356
/
4040 dpurdie 17357
--------------------------------------------------------
17358
--  DDL for Procedure SET_ADVISORY_RIPPLE
17359
--------------------------------------------------------
17360
set define off;
17361
 
5172 dpurdie 17362
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
1373 dpurdie 17363
	   	  		  							   nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
17364
											 nUserId IN NUMBER ) IS
17365
/* ---------------------------------------------------------------------------
17366
    Version: 4.0
17367
   --------------------------------------------------------------------------- */
17368
 
17369
BEGIN
17370
 
3959 dpurdie 17371
    -- Set Advisory Ripple Package
17372
    INSERT INTO ADVISORY_RIPPLE (RTAG_ID, PV_ID)
17373
	VALUES (nRtagId, nPvId);
1373 dpurdie 17374
 
17375
    /* LOG ACTION */
3959 dpurdie 17376
   	Log_Action ( nPvId, 'set_advisory_ripple', nUserId );
1373 dpurdie 17377
 
17378
	/*Rebuild_Environment(nRtagId);*/
17379
 
3959 dpurdie 17380
END Set_Advisory_Ripple;
4040 dpurdie 17381
 
1374 dpurdie 17382
/
4040 dpurdie 17383
--------------------------------------------------------
17384
--  DDL for Procedure SET_PACKAGE_BUILD_ENV
17385
--------------------------------------------------------
17386
set define off;
17387
 
5172 dpurdie 17388
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,
3959 dpurdie 17389
	   	  		  								  	sBuildEnvIdList IN VARCHAR2 ) IS
1373 dpurdie 17390
/* ---------------------------------------------------------------------------
3959 dpurdie 17391
    Last Modified: Rupesh Solanki
17392
	Version: 3.0.1
1373 dpurdie 17393
   --------------------------------------------------------------------------- */
17394
 
17395
 
17396
BEGIN
17397
 
3959 dpurdie 17398
   -- Delete Current Build Env settings
17399
   DELETE FROM PACKAGE_BUILD_ENV
17400
   WHERE pv_id = nPvId;
17401
 
17402
   -- Delet Current Package Build Info Settings
17403
   DELETE FROM PACKAGE_BUILD_INFO
17404
   WHERE pv_id = nPvId;
1373 dpurdie 17405
 
3959 dpurdie 17406
   -- Reset flag to N
17407
   UPDATE PACKAGE_VERSIONS SET
17408
	   IS_BUILD_ENV_REQUIRED = 'N'
17409
   WHERE PV_ID = nPvId;
1373 dpurdie 17410
 
17411
 
3959 dpurdie 17412
   -- Set new Build Env
17413
   IF NOT sBuildEnvIdList IS NULL THEN
17414
   	  -- Insert into PACKAGE_BUILD_ENV
17415
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
17416
	  SELECT nPvId AS PV_ID,
17417
	  		 be.BE_ID
17418
	    FROM BUILD_ENVIRONMENTS be
17419
	   WHERE be.BE_ID IN (
17420
	   		 		  	   SELECT *
17421
					   	     FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
17422
	   		 		  	 );
17423
 
17424
   	  -- Insert into PACKAGE_BUILD_INFO
17425
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
17426
	  SELECT nPvId AS PV_ID,
17427
	  		 be.BM_ID
17428
	    FROM BUILD_MACHINES be
17429
	   WHERE be.BM_ID IN (
17430
	   		 		  	   SELECT *
17431
					   	     FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
17432
	   		 		  	 );						 
1373 dpurdie 17433
 
3959 dpurdie 17434
	   -- Set flag to Y
17435
	   UPDATE PACKAGE_VERSIONS SET
17436
		   IS_BUILD_ENV_REQUIRED = 'Y'
17437
	   WHERE PV_ID = nPvId;
1373 dpurdie 17438
 
3959 dpurdie 17439
   END IF;
1373 dpurdie 17440
 
17441
 
3959 dpurdie 17442
END Set_Package_Build_Env;
4040 dpurdie 17443
 
1374 dpurdie 17444
/
4040 dpurdie 17445
--------------------------------------------------------
17446
--  DDL for Procedure SET_PACKAGE_BUILD_ENV_TEMP
17447
--------------------------------------------------------
17448
set define off;
17449
 
5172 dpurdie 17450
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV_TEMP" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,
1373 dpurdie 17451
	   	  		  								  	   	 sBuildEnvIdList IN VARCHAR2,
17452
														 nBuildStandard IN PACKAGE_VERSIONS.BS_ID%TYPE 
17453
														 ) IS
17454
/* ---------------------------------------------------------------------------
17455
    Last Modified: Rupesh Solanki
17456
	Version: 3.0.1
17457
   --------------------------------------------------------------------------- */
17458
 
17459
   nBsCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();   
17460
   BsId NUMBER;
17461
   HackBsId NUMBER;
17462
 
17463
 
17464
BEGIN
17465
 
17466
   nBsCollector := IN_LIST_NUMBER ( sBuildEnvIdList );
17467
 
17468
   -- Delete Current Build Env settings
17469
   DELETE FROM PACKAGE_BUILD_ENV
17470
   WHERE pv_id = nPvId;
17471
 
17472
   -- Delet Current Package Build Info Settings
17473
   DELETE FROM PACKAGE_BUILD_INFO
17474
   WHERE pv_id = nPvId;
17475
 
17476
   -- Reset flag to N
17477
   UPDATE PACKAGE_VERSIONS SET
17478
	   IS_BUILD_ENV_REQUIRED = 'N'
17479
   WHERE PV_ID = nPvId;
17480
 
17481
 
17482
   -- Set new Build Env
17483
   IF NOT sBuildEnvIdList IS NULL THEN
17484
	FOR i IN 1..nBsCollector.COUNT
17485
	LOOP   
17486
 
17487
	BsId := nBsCollector(i);
17488
 
17489
	IF nBuildStandard = 2 THEN
17490
	   IF BsId = 1 THEN
17491
	   	  HackBsId := 11;
17492
	   ELSE
17493
	   	  HackBsId := 12;
17494
	   END IF;
17495
 
17496
   	  -- Insert into PACKAGE_BUILD_ENV
17497
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
17498
	  SELECT nPvId AS PV_ID,
17499
	  		 be.BE_ID
17500
	    FROM BUILD_ENVIRONMENTS be
17501
	   WHERE be.BE_ID IN ( HackBsId );
17502
 
17503
   	  -- Insert into PACKAGE_BUILD_INFO
17504
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
17505
	  SELECT nPvId AS PV_ID,
17506
	  		 be.BM_ID
17507
	    FROM BUILD_MACHINES be
17508
	   WHERE be.BM_ID IN ( BsId );						 
17509
 
17510
	   -- Set flag to Y
17511
	   UPDATE PACKAGE_VERSIONS SET
17512
		   IS_BUILD_ENV_REQUIRED = 'Y'
17513
	   WHERE PV_ID = nPvId;	
17514
 
17515
 
17516
	ELSE
17517
 
17518
   	  -- Insert into PACKAGE_BUILD_ENV
17519
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
17520
	  SELECT nPvId AS PV_ID,
17521
	  		 be.BE_ID
17522
	    FROM BUILD_ENVIRONMENTS be
17523
	   WHERE be.BE_ID IN ( BsId );
17524
 
17525
   	  -- Insert into PACKAGE_BUILD_INFO
17526
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
17527
	  SELECT nPvId AS PV_ID,
17528
	  		 be.BM_ID
17529
	    FROM BUILD_MACHINES be
17530
	   WHERE be.BM_ID IN ( BsId );						 
17531
 
17532
	   -- Set flag to Y
17533
	   UPDATE PACKAGE_VERSIONS SET
17534
		   IS_BUILD_ENV_REQUIRED = 'Y'
17535
	   WHERE PV_ID = nPvId;
17536
 
17537
	END IF;  
17538
 
17539
 
17540
	END LOOP;	   
17541
 
17542
   END IF;
17543
 
17544
 
17545
END Set_Package_Build_Env_Temp;
4040 dpurdie 17546
 
1374 dpurdie 17547
/
4040 dpurdie 17548
--------------------------------------------------------
17549
--  DDL for Procedure SET_TO_AUTOBUILDABLE
17550
--------------------------------------------------------
17551
set define off;
17552
 
5172 dpurdie 17553
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_TO_AUTOBUILDABLE" (
3959 dpurdie 17554
   nrtagid     IN   NUMBER,
17555
   spvidlist   IN   VARCHAR2
17556
)
17557
IS
17558
/******************************************************************************
17559
   NAME:       SET_TO_AUTOBUILDABLE
17560
   PURPOSE:
1373 dpurdie 17561
 
3959 dpurdie 17562
   REVISIONS:
17563
   Ver        Date        Author           Description
17564
   ---------  ----------  ---------------  ------------------------------------
17565
   1.0        15/12/2006   Rupesh Solanki       1. Created this procedure.
1373 dpurdie 17566
 
3959 dpurdie 17567
   NOTES:
1373 dpurdie 17568
 
3959 dpurdie 17569
   Automatically available Auto Replace Keywords:
17570
      Object Name:     SET_TO_AUTOBUILDABLE
17571
      Sysdate:         15/12/2006
17572
      Date and Time:   15/12/2006, 11:42:29 AM, and 15/12/2006 11:42:29 AM
17573
      Username:         (set in TOAD Options, Procedure Editor)
17574
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 17575
 
3959 dpurdie 17576
******************************************************************************/
17577
   npvidcollector   relmgr_number_tab_t := relmgr_number_tab_t ();
17578
   PvId NUMBER;
1373 dpurdie 17579
BEGIN
17580
 
3959 dpurdie 17581
   npvidcollector := in_list_number2 (spvidlist);
17582
 
17583
   UPDATE package_versions
17584
      SET is_autobuildable = 'N'
17585
    WHERE pv_id IN (SELECT pv_id
17586
                      FROM release_content
17587
                     WHERE rtag_id = nrtagid);
1373 dpurdie 17588
 
3959 dpurdie 17589
 
17590
 
17591
   	FOR i IN 1..npvidcollector.COUNT
17592
	LOOP
17593
		PvId := npvidcollector(i);
1373 dpurdie 17594
 
3959 dpurdie 17595
		UPDATE package_versions
17596
		set is_autobuildable = 'Y'
17597
		where pv_id = PvId;
1373 dpurdie 17598
 
3959 dpurdie 17599
	END LOOP;
17600
 
17601
 
17602
END set_to_autobuildable;
4040 dpurdie 17603
 
3959 dpurdie 17604
/
4040 dpurdie 17605
--------------------------------------------------------
17606
--  DDL for Procedure SHIFT_INSTALL_ORDER
17607
--------------------------------------------------------
17608
set define off;
17609
 
5172 dpurdie 17610
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SHIFT_INSTALL_ORDER" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
3959 dpurdie 17611
												  nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
17612
                                                  nToInstallOrder IN PACKAGE_PATCHES.INSTALL_ORDER%TYPE ) IS
17613
/* ---------------------------------------------------------------------------
17614
    Version: 3.0
17615
   --------------------------------------------------------------------------- */
1373 dpurdie 17616
 
3959 dpurdie 17617
currInstallOrder NUMBER;
17618
FromInstallOrder NUMBER;
1373 dpurdie 17619
 
3959 dpurdie 17620
BEGIN
1373 dpurdie 17621
 
3959 dpurdie 17622
	 -- Get Current Install Order
17623
     SELECT pp.INSTALL_ORDER INTO currInstallOrder
17624
       FROM PACKAGE_PATCHES pp
17625
      WHERE pp.PV_ID = nPvId
17626
        AND pp.PATCH_ID = nPatchId;
1373 dpurdie 17627
 
17628
 
3959 dpurdie 17629
	 IF currInstallOrder > nToInstallOrder
17630
	 THEN
1373 dpurdie 17631
 
3959 dpurdie 17632
		FromInstallOrder := nToInstallOrder;
1373 dpurdie 17633
 
3959 dpurdie 17634
	    -- Shift others Up
17635
		UPDATE PACKAGE_PATCHES pp SET
17636
			   pp.INSTALL_ORDER = pp.INSTALL_ORDER + 1
17637
		 WHERE pp.PV_ID = nPvId
17638
           AND pp.PATCH_ID != nPatchId
17639
		   AND pp.INSTALL_ORDER BETWEEN  FromInstallOrder  AND  currInstallOrder - 1;
1373 dpurdie 17640
 
17641
 
3959 dpurdie 17642
	 ELSIF currInstallOrder < nToInstallOrder
17643
	 THEN
1373 dpurdie 17644
 
3959 dpurdie 17645
		FromInstallOrder := currInstallOrder + 1;
1373 dpurdie 17646
 
3959 dpurdie 17647
		-- Shift others Down
17648
        UPDATE PACKAGE_PATCHES pp SET
17649
			   pp.INSTALL_ORDER = pp.INSTALL_ORDER - 1
17650
		 WHERE pp.PV_ID = nPvId
17651
           AND pp.PATCH_ID != nPatchId
17652
		   AND pp.INSTALL_ORDER BETWEEN  FromInstallOrder  AND  nToInstallOrder;
1373 dpurdie 17653
 
3959 dpurdie 17654
	 END IF;
1373 dpurdie 17655
 
17656
 
3959 dpurdie 17657
	 -- Move Patch to new install order
17658
     UPDATE PACKAGE_PATCHES pp SET
17659
		    pp.INSTALL_ORDER = nToInstallOrder
17660
	  WHERE pp.PV_ID = nPvId
17661
	    AND pp.PATCH_ID = nPatchId;
1373 dpurdie 17662
 
17663
 
3959 dpurdie 17664
END Shift_Install_Order;
4040 dpurdie 17665
 
1374 dpurdie 17666
/
4040 dpurdie 17667
--------------------------------------------------------
17668
--  DDL for Procedure SPLIT_VERSION
17669
--------------------------------------------------------
17670
set define off;
17671
 
5172 dpurdie 17672
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SPLIT_VERSION" ( SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
3959 dpurdie 17673
                                            SSV_MM OUT PACKAGE_VERSIONS.V_MM%TYPE,
17674
                                            SSV_NMM OUT PACKAGE_VERSIONS.V_NMM%TYPE,
17675
                                            SSV_EXT OUT PACKAGE_VERSIONS.V_EXT%TYPE  ) IS
1373 dpurdie 17676
/* ---------------------------------------------------------------------------
3959 dpurdie 17677
    Version: 3.0.0
1373 dpurdie 17678
   --------------------------------------------------------------------------- */
17679
 
3959 dpurdie 17680
    TYPE VERSION_COMPONENTS_TYPE IS TABLE OF VARCHAR2(50)
17681
        INDEX BY BINARY_INTEGER;
1373 dpurdie 17682
 
3959 dpurdie 17683
    version_components VERSION_COMPONENTS_TYPE;
17684
    lastDot NUMBER := 0;
17685
    currDot NUMBER := 0;
1373 dpurdie 17686
 
17687
BEGIN
3959 dpurdie 17688
    currDot := INSTR ( SSpkg_version, '.', -1 );      -- Find 1st dot from the right
1373 dpurdie 17689
 
3959 dpurdie 17690
    IF ( currDot > 0 )
1373 dpurdie 17691
    THEN
3959 dpurdie 17692
        -- YES dot separator found --
17693
        SSV_EXT := GET_V_EXT( SSpkg_version );
1373 dpurdie 17694
 
3959 dpurdie 17695
        IF NOT SSV_EXT IS NULL
1373 dpurdie 17696
        THEN
3959 dpurdie 17697
            lastDot := currDot;
17698
            currDot := INSTR ( SSpkg_version, '.', -1, 2 );   -- Find 2nd dot from the right
1373 dpurdie 17699
 
3959 dpurdie 17700
            IF ( currDot > 0 )
17701
            THEN
17702
                -- XXXX.M.E
17703
                SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, lastDot - currDot - 1);
17704
                SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot ) || SSV_EXT;
17705
            ELSE
17706
                -- XXXX.E
17707
                SSV_MM := NULL;
17708
                SSV_NMM := SSpkg_version;
17709
            END IF;
1373 dpurdie 17710
 
17711
        ELSE
3959 dpurdie 17712
            -- XXXX.M
17713
            SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, LENGTH(SSpkg_version) - currDot );
17714
            SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot );
1373 dpurdie 17715
 
17716
        END IF;
17717
 
17718
    ELSE
3959 dpurdie 17719
        -- NO dot separator found --
17720
        -- XXXXXX
17721
        SSV_MM  := NULL;
17722
        SSV_NMM := SSpkg_version;
17723
        SSV_EXT := NULL;
1373 dpurdie 17724
 
17725
    END IF;
17726
 
3959 dpurdie 17727
END Split_Version;
4040 dpurdie 17728
 
1374 dpurdie 17729
/
4040 dpurdie 17730
--------------------------------------------------------
17731
--  DDL for Procedure SWITCH_REPRODUCIBLE_PACKAGE
17732
--------------------------------------------------------
17733
set define off;
17734
 
5172 dpurdie 17735
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SWITCH_REPRODUCIBLE_PACKAGE" (nPvId IN NUMBER, nUserId IN NUMBER)IS
3959 dpurdie 17736
Auto CHAR;
17737
/******************************************************************************
17738
   NAME:       SWITCH_REPRODUCIBLE_PACKAGE
17739
   PURPOSE:    
1373 dpurdie 17740
 
3959 dpurdie 17741
   REVISIONS:
17742
   Ver        Date        Author           Description
17743
   ---------  ----------  ---------------  ------------------------------------
17744
   1.0        14/12/2006   Rupesh Solanki       1. Created this procedure.
1373 dpurdie 17745
 
3959 dpurdie 17746
   NOTES:
1373 dpurdie 17747
 
3959 dpurdie 17748
   Automatically available Auto Replace Keywords:
17749
      Object Name:     SWITCH_REPRODUCIBLE_PACKAGE
17750
      Sysdate:         14/12/2006
17751
      Date and Time:   14/12/2006, 11:35:15 AM, and 14/12/2006 11:35:15 AM
17752
      Username:         (set in TOAD Options, Procedure Editor)
17753
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 17754
 
3959 dpurdie 17755
******************************************************************************/
1373 dpurdie 17756
BEGIN
17757
 
3959 dpurdie 17758
	 SELECT IS_AUTOBUILDABLE into Auto
17759
	 FROM PACKAGE_VERSIONS 
17760
	 WHERE PV_ID = nPvId;
1373 dpurdie 17761
 
3959 dpurdie 17762
	 IF Auto = 'N' Then
17763
 
17764
	 	UPDATE PACKAGE_VERSIONS
17765
	 	SET IS_AUTOBUILDABLE = 'Y'
17766
	 	WHERE PV_ID = nPvId;
17767
 
17768
 
17769
	 	/* LOG ACTION */
17770
   		Log_Action ( nPvId, 'reproducible_package', nUserId );	 
17771
 
17772
	 Else
17773
 
17774
		 UPDATE PACKAGE_VERSIONS
17775
		 SET IS_AUTOBUILDABLE = 'N'
17776
		 WHERE PV_ID = nPvId;
17777
 
17778
 
17779
	 	 /* LOG ACTION */
17780
   	 	 Log_Action ( nPvId, 'unreproducible_package', nUserId );	 
17781
 
17782
	 End If;
17783
 
17784
 
1373 dpurdie 17785
 
3959 dpurdie 17786
 
1373 dpurdie 17787
 
17788
 
17789
 
17790
 
3959 dpurdie 17791
END SWITCH_REPRODUCIBLE_PACKAGE;
4040 dpurdie 17792
 
1374 dpurdie 17793
/
4040 dpurdie 17794
--------------------------------------------------------
17795
--  DDL for Procedure SYNC_PROJECTS_NEW_VERSION
17796
--------------------------------------------------------
17797
set define off;
17798
 
5172 dpurdie 17799
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SYNC_PROJECTS_NEW_VERSION" ( nPv_id 				IN NUMBER,
3959 dpurdie 17800
														  sSyncRtagsInList		IN VARCHAR2,
17801
				                                          nUser_id 				IN NUMBER ) IS
1373 dpurdie 17802
/* ---------------------------------------------------------------------------
17803
    Version: 3.0.0
17804
   --------------------------------------------------------------------------- */
17805
 
3959 dpurdie 17806
	CURSOR sync_rtags_cur IS
17807
        SELECT rc.RTAG_ID, rc.BASE_VIEW_ID, pv.pv_id
17808
		  FROM release_content rc,
17809
		  	   package_versions pv,
17810
		       package_versions opv
17811
		 WHERE rc.pv_id = pv.pv_id
17812
		   AND opv.pkg_id = pv.pkg_id
17813
		   AND NVL(opv.v_ext, '|LINK_A_NULL|') = NVL(pv.v_ext, '|LINK_A_NULL|')
17814
		   AND opv.pv_id = nPv_id
17815
		   AND rtag_id IN ( SELECT *
17816
		   	   		   	      FROM THE (
17817
					   	   		   	    SELECT CAST( IN_LIST_NUMBER( sSyncRtagsInList ) AS RELMGR_NUMBER_TAB_t )
17818
					       		   	    FROM dual
17819
									   )
17820
						  );
17821
    sync_rtags_rec sync_rtags_cur%ROWTYPE;
1373 dpurdie 17822
 
17823
BEGIN
17824
 
3959 dpurdie 17825
	OPEN sync_rtags_cur;
17826
	FETCH sync_rtags_cur INTO sync_rtags_rec;
1373 dpurdie 17827
 
3959 dpurdie 17828
	WHILE sync_rtags_cur%FOUND
17829
	LOOP
17830
		DELETE FROM RELEASE_CONTENT
17831
		 WHERE rtag_id = sync_rtags_rec.rtag_id
17832
	       AND pv_id = sync_rtags_rec.pv_id;
1373 dpurdie 17833
 
3959 dpurdie 17834
		INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )
17835
	   		   VALUES ( sync_rtags_rec.rtag_id,
17836
		       		  	nPv_id,
17837
						sync_rtags_rec.BASE_VIEW_ID,
17838
	           			Ora_Sysdate,
17839
	           			nUser_id,
17840
 
17841
	      	   		   );
1373 dpurdie 17842
 
3959 dpurdie 17843
-- 		UPDATE RELEASE_CONTENT
17844
-- 	       SET pv_id = nPv_id,
17845
-- 	           insert_stamp = Ora_Sysdate,
17846
-- 	           insertor_id = nUser_id
17847
-- 	     WHERE rtag_id = sync_rtags_rec.rtag_id
17848
-- 	       AND pv_id = sync_rtags_rec.pv_id;
1373 dpurdie 17849
 
3959 dpurdie 17850
		FETCH sync_rtags_cur INTO sync_rtags_rec;
17851
	END LOOP;
1373 dpurdie 17852
 
3959 dpurdie 17853
	CLOSE sync_rtags_cur;
17854
 
17855
END Sync_Projects_New_Version;
4040 dpurdie 17856
 
1374 dpurdie 17857
/
4040 dpurdie 17858
--------------------------------------------------------
17859
--  DDL for Procedure TEST
17860
--------------------------------------------------------
17861
set define off;
17862
 
5172 dpurdie 17863
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TEST" 
3959 dpurdie 17864
IS
1373 dpurdie 17865
 
3959 dpurdie 17866
proc_id NUMBER;
17867
/******************************************************************************
17868
   NAME:       DELETE_DO_NOT_RIPPLE
17869
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
17870
               IS RELEASED
1373 dpurdie 17871
 
3959 dpurdie 17872
   REVISIONS:
17873
   Ver        Date        Author           Description
17874
   ---------  ----------  ---------------  ------------------------------------
17875
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
1373 dpurdie 17876
 
3959 dpurdie 17877
   NOTES:
17878
 
17879
   Automatically available Auto Replace Keywords:
17880
      Object Name:     DELETE_DO_NOT_RIPPLE
17881
      Sysdate:         21/04/2006
17882
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
17883
      Username:         (set in TOAD Options, Procedure Editor)
17884
      Table Name:       (set in the "New PL/SQL Object" dialog)
17885
 
17886
******************************************************************************/
17887
   CURSOR ripple_cur
17888
   IS
17889
      select distinct pkg_health_tag, cmd_interface, pkg_owner, is_interface from deployment_manager.processes_config;
17890
 
17891
   ripple_rec   ripple_cur%ROWTYPE;
1373 dpurdie 17892
BEGIN
3959 dpurdie 17893
   OPEN ripple_cur;
1373 dpurdie 17894
 
3959 dpurdie 17895
   FETCH ripple_cur
17896
    INTO ripple_rec;
1373 dpurdie 17897
 
3959 dpurdie 17898
   WHILE ripple_cur%FOUND
17899
   LOOP
17900
 
17901
   select deployment_manager.seq_proc_id.nextval into proc_id from dual;
17902
 
17903
insert into processes (PROC_ID, PROC_NAME, RUN_AS, PKG_OWNER, IS_INTERFACE) 
17904
values(proc_id, ripple_rec.pkg_health_tag, ripple_rec.cmd_interface, ripple_rec.pkg_owner, ripple_rec.is_interface);
1373 dpurdie 17905
 
3959 dpurdie 17906
      FETCH ripple_cur
17907
       INTO ripple_rec;
17908
   END LOOP;
17909
END test;
4040 dpurdie 17910
 
1374 dpurdie 17911
/
4040 dpurdie 17912
--------------------------------------------------------
17913
--  DDL for Procedure TEST_MARCO
17914
--------------------------------------------------------
17915
set define off;
17916
 
5172 dpurdie 17917
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TEST_MARCO" IS
1373 dpurdie 17918
/******************************************************************************
3959 dpurdie 17919
   NAME:       TEST_MARCO
1373 dpurdie 17920
   PURPOSE:    
17921
 
17922
   REVISIONS:
17923
   Ver        Date        Author           Description
17924
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 17925
   1.0        2/03/2007          1. Created this procedure.
1373 dpurdie 17926
 
17927
   NOTES:
17928
 
17929
   Automatically available Auto Replace Keywords:
3959 dpurdie 17930
      Object Name:     TEST_MARCO
17931
      Sysdate:         2/03/2007
17932
      Date and Time:   2/03/2007, 3:11:11 PM, and 2/03/2007 3:11:11 PM
1373 dpurdie 17933
      Username:         (set in TOAD Options, Procedure Editor)
17934
      Table Name:       (set in the "New PL/SQL Object" dialog)
17935
 
17936
******************************************************************************/
17937
 
3959 dpurdie 17938
parPv_id    NUMBER;
17939
parPkg_id   NUMBER;
17940
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
17941
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
17942
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
1373 dpurdie 17943
BEGIN
17944
 
3959 dpurdie 17945
SELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;
1373 dpurdie 17946
 
3959 dpurdie 17947
        /* LOG ACTION */
17948
        Log_Action ( parPv_id, 'new_version', 3764,
17949
        			 'New package version: '|| parPv_id || '.' );
17950
 
17951
        Split_Version ( parPv_id || '.', SSV_MM, SSV_NMM, SSV_EXT );
1373 dpurdie 17952
 
3959 dpurdie 17953
     -- Clone Package Version Details --
17954
            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,
17955
                                           src_path, pv_description, PV_OVERVIEW, LAST_PV_ID, owner_id, BUILD_TYPE, IS_BUILD_ENV_REQUIRED, bs_id, is_autobuildable, is_deployable )
17956
                SELECT parPv_id         AS pv_id,
17957
                       pv.pkg_id        AS pkg_id,
17958
                       parPv_id || '.'    AS pkg_version,
17959
                       'N'              AS dlocked,
17960
                       Ora_Sysdate      AS created_stamp,
17961
                       3764        AS creator_id,
17962
                       Ora_Sysdatetime  AS modified_stamp,
17963
                       3764        AS modifier_id,
17964
                       SSV_MM          AS V_MM,
17965
                       SSV_NMM         AS V_NMM,
17966
                       SSV_EXT          AS V_EXT,
17967
                       pv.src_path,
17968
                       pv.pv_description,
17969
                       pv.PV_OVERVIEW,
17970
                       112982 	AS LAST_PV_ID,
17971
                       pv.owner_id,
17972
					   pv.BUILD_TYPE,
17973
					   pv.IS_BUILD_ENV_REQUIRED,
17974
					   pv.bs_id,
17975
					   pv.is_autobuildable,
17976
					   pv.IS_DEPLOYABLE
17977
                  FROM PACKAGE_VERSIONS pv
17978
                 WHERE pv.pv_id = 112982;		
1373 dpurdie 17979
 
3959 dpurdie 17980
Basic_Clone ( 112982, parPv_id, NULL, 3764, 22325, 0 );
1373 dpurdie 17981
 
17982
 
3959 dpurdie 17983
END TEST_MARCO;
4040 dpurdie 17984
 
3959 dpurdie 17985
/
4040 dpurdie 17986
--------------------------------------------------------
17987
--  DDL for Procedure TOUCH_RELEASE
17988
--------------------------------------------------------
17989
set define off;
17990
 
5172 dpurdie 17991
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE" ( nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS
3959 dpurdie 17992
/* ---------------------------------------------------------------------------
17993
    The purpose of this procedure is to flag in the database that the specified
17994
    release has changed to an extent that the procedure Rebuild_Environment
17995
    should be called at the next opportunity in order that the package state
17996
    icons are all re-evaluated.
17997
    The package state icons are controlled using the pkg_state column in the
17998
    release_content table, and Rebuild_Environment updates that column.
17999
    It will be through user action in the website that Rebuild_Environment will
18000
    be called, for example:
18001
      a) when setting/clearing ignore warnings checkboxes
18002
      b) when someone opens a page upon a rtag/pvid and rebuild_en flag is set
18003
      c) when someone opens the build order report form
18004
      d) when someone modifies dependencies of a package
18005
      + other scenarios (?)
18006
   --------------------------------------------------------------------------- */
18007
BEGIN
18008
   -- Touch Release for Rebuild
18009
   UPDATE RELEASE_TAGS rt SET
18010
          rt.REBUILD_ENV = 'Y',
18011
          rt.REBUILD_STAMP = 0
18012
    WHERE rt.RTAG_ID = nRtagId;
1373 dpurdie 18013
 
3959 dpurdie 18014
END Touch_Release;
4040 dpurdie 18015
 
1374 dpurdie 18016
/
4040 dpurdie 18017
--------------------------------------------------------
18018
--  DDL for Procedure TOUCH_RELEASE_BULK
18019
--------------------------------------------------------
18020
set define off;
18021
 
5172 dpurdie 18022
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE_BULK" ( nRtagIdList IN VARCHAR2 ) IS
1373 dpurdie 18023
/* ---------------------------------------------------------------------------
18024
    Version: 3.0
18025
   --------------------------------------------------------------------------- */
18026
 
18027
oRTagIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
18028
 
18029
BEGIN
18030
	 oRTagIdCollector := IN_LIST_NUMBER ( nRtagIdList );
18031
 
18032
	 -- Touch Release for Rebuild
18033
     UPDATE RELEASE_TAGS rt SET
18034
     	rt.REBUILD_ENV = 'Y',
18035
        rt.REBUILD_STAMP = 0
18036
      WHERE rt.RTAG_ID IN ( SELECT * FROM TABLE ( CAST ( oRTagIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
18037
 
18038
 
18039
END Touch_Release_Bulk;
4040 dpurdie 18040
 
1374 dpurdie 18041
/
4040 dpurdie 18042
--------------------------------------------------------
18043
--  DDL for Procedure TO_INSERT_VTREE_ID
18044
--------------------------------------------------------
18045
set define off;
18046
 
5172 dpurdie 18047
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TO_INSERT_VTREE_ID" IS
1373 dpurdie 18048
 
3959 dpurdie 18049
/******************************************************************************
18050
   NAME:       TO_INSERT_VTREE_ID
18051
   PURPOSE:    
1373 dpurdie 18052
 
3959 dpurdie 18053
   REVISIONS:
18054
   Ver        Date        Author           Description
18055
   ---------  ----------  ---------------  ------------------------------------
18056
   1.0        2/02/2007          1. Created this procedure.
1373 dpurdie 18057
 
3959 dpurdie 18058
   NOTES:
1373 dpurdie 18059
 
3959 dpurdie 18060
   Automatically available Auto Replace Keywords:
18061
      Object Name:     TO_INSERT_VTREE_ID
18062
      Sysdate:         2/02/2007
18063
      Date and Time:   2/02/2007, 8:42:56 AM, and 2/02/2007 8:42:56 AM
18064
      Username:         (set in TOAD Options, Procedure Editor)
18065
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 18066
 
3959 dpurdie 18067
******************************************************************************/
18068
VTreeId NUMBER;																			  																	   
1373 dpurdie 18069
 
18070
 
3959 dpurdie 18071
	CURSOR curInfo IS
18072
    SELECT RTAG_ID
18073
	FROM RELEASE_TAGS
18074
	WHERE VTREE_ID IS NULL;
18075
    recInfo curInfo%ROWTYPE;
18076
 
18077
 
1373 dpurdie 18078
BEGIN
18079
 
3959 dpurdie 18080
	OPEN curInfo;
18081
    FETCH curInfo INTO recInfo;
18082
 
18083
	WHILE curInfo%FOUND
18084
	LOOP
18085
		SELECT SEQ_VTREE_ID.nextval INTO VTreeId FROM DUAL;
1373 dpurdie 18086
 
3959 dpurdie 18087
		UPDATE RELEASE_TAGS
18088
		SET VTREE_ID = VTreeId
18089
		WHERE RTAG_ID = recInfo.RTAG_ID;
1373 dpurdie 18090
 
3959 dpurdie 18091
		FETCH curInfo INTO recInfo;
18092
	END LOOP;
1373 dpurdie 18093
 
3959 dpurdie 18094
	CLOSE curInfo;
1373 dpurdie 18095
 
3959 dpurdie 18096
END TO_INSERT_VTREE_ID;
4040 dpurdie 18097
 
1374 dpurdie 18098
/
4040 dpurdie 18099
--------------------------------------------------------
18100
--  DDL for Procedure UNDEPRECATE_PACKAGE
18101
--------------------------------------------------------
18102
set define off;
18103
 
5172 dpurdie 18104
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNDEPRECATE_PACKAGE" (nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
1373 dpurdie 18105
	   	  		  								 nRtagId IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,
18106
	   	  		  							   	 nPkgId IN DEPRECATED_PACKAGES.PKG_ID%TYPE,
18107
											   	 nUserId IN NUMBER) IS
18108
 
18109
ext VARCHAR2(50);
18110
PvIdList VARCHAR2(32767);
18111
nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
18112
PvId NUMBER;
18113
sComments VARCHAR2(32767);
18114
 
18115
BEGIN
18116
 
18117
 
18118
 
18119
	--Extract the package extension
18120
	SELECT V_EXT into ext 
18121
	FROM PACKAGE_VERSIONS 
18122
	WHERE PV_ID = nPvId;
18123
 
18124
	--SELECT COMMENTS into sComments 
18125
	--FROM DEPRECATED_PACKAGES
18126
	--WHERE RTAG_ID = nRtagId
18127
	--AND V_EXT = ext
18128
	--AND PKG_ID = nPkgId;
18129
 
18130
	--SELECT PV_ID into PvIdList FROM
18131
	--RELEASE_CONTENT WHERE RTAG_ID = nRtagId
18132
	--AND PKG_STATE = 6
18133
	--AND PV_ID NOT IN nPvId;
18134
 
18135
 
18136
	IF ext IS NOT NULL THEN
18137
       -- Undeprecate Package
18138
       DELETE FROM DEPRECATED_PACKAGES 
18139
	   WHERE RTAG_ID = nRtagId 
18140
	   AND PKG_ID = nPkgId
18141
	   AND V_EXT = ext;	
18142
 
18143
		UPDATE RELEASE_CONTENT 
18144
		SET PKG_ID = NULL, DEPRECATED_STATE = NULL
18145
		WHERE RTAG_ID = nRtagId
18146
		AND PV_ID IN (SELECT PV.PV_ID 
18147
				  	  FROM PACKAGE_VERSIONS PV, PACKAGES PKG
18148
					  WHERE PKG.PKG_ID = PV.PKG_ID
18149
					  AND PKG.PKG_ID = nPkgId
18150
					  AND PV.V_EXT = ext
18151
					  UNION
18152
					  SELECT DISTINCT
18153
	 	 		  	 		   qry.PV_ID
18154
							        FROM (
18155
									 	  SELECT dep.*,
18156
										  LEVEL AS LEVEL_NUM
18157
										  FROM PACKAGE_DEPENDENCIES dep
18158
	 								START WITH dep.DPV_ID IN ( nPvId )
18159
									--AND dep.DPV_ID NOT IN ( SELECT PV_ID FROM RELEASE_CONTENT WHERE RTAG_ID = nRtagId AND PKG_STATE = 6 )
18160
									CONNECT BY PRIOR dep.PV_ID = dep.DPV_ID
18161
	 								) qry,
18162
									PACKAGES pkg,
18163
									PACKAGE_VERSIONS pv,
18164
									RELEASE_CONTENT rc
18165
							 	 WHERE qry.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_ID
18166
								 AND rc.RTAG_ID = nRtagId AND rc.PV_ID = qry.PV_ID
18167
 
18168
					 );	 
18169
 
18170
	ELSE
18171
       -- Undeprecate Package
18172
       DELETE FROM DEPRECATED_PACKAGES 
18173
	   WHERE RTAG_ID = nRtagId 
18174
	   AND PKG_ID = nPkgId
18175
	   AND V_EXT IS NULL;	
18176
 
18177
		UPDATE RELEASE_CONTENT 
18178
		SET PKG_ID = NULL, DEPRECATED_STATE = NULL
18179
		WHERE RTAG_ID = nRtagId
18180
		AND PV_ID IN (SELECT PV.PV_ID 
18181
				  	  FROM PACKAGE_VERSIONS PV, PACKAGES PKG
18182
					  WHERE PKG.PKG_ID = PV.PKG_ID
18183
					  AND PKG.PKG_ID = nPkgId
18184
					  AND PV.V_EXT IS NULL
18185
					  UNION
18186
					  SELECT DISTINCT
18187
	 	 		  	 		   qry.PV_ID
18188
							        FROM (
18189
									 	  SELECT dep.*,
18190
										  LEVEL AS LEVEL_NUM
18191
										  FROM PACKAGE_DEPENDENCIES dep
18192
	 								START WITH dep.DPV_ID IN ( nPvId )
18193
									--AND dep.DPV_ID NOT IN ( SELECT PV_ID FROM RELEASE_CONTENT WHERE RTAG_ID = nRtagId AND PKG_STATE = 6 )
18194
									CONNECT BY PRIOR dep.PV_ID = dep.DPV_ID
18195
	 								) qry,
18196
									PACKAGES pkg,
18197
									PACKAGE_VERSIONS pv,
18198
									RELEASE_CONTENT rc
18199
							 	 WHERE qry.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_ID
18200
								 AND rc.RTAG_ID = nRtagId AND rc.PV_ID = qry.PV_ID
18201
 
18202
					 );	 	   
18203
 
18204
	END IF;
18205
 
18206
	--IF PvIdList IS NOT NULL THEN
18207
 
18208
	 --  nIdCollector := IN_LIST_NUMBER ( PvIdList );
18209
 
18210
	 --  FOR i IN 1..nIdCollector.COUNT
18211
	 --  LOOP
18212
	--	   PvId := nIdCollector(i);
18213
 
18214
 
18215
 
18216
	--		Deprecate_Package (nPvId, nRtagId, nPkgId, sComments, nUserId );
18217
	--		END LOOP;
18218
	--END IF;
18219
 
18220
	Rebuild_environment(nRtagId);			 
18221
 
18222
 
18223
 
18224
END Undeprecate_Package;
4040 dpurdie 18225
 
1374 dpurdie 18226
/
4040 dpurdie 18227
--------------------------------------------------------
18228
--  DDL for Procedure UNLOCK_PACKAGE
18229
--------------------------------------------------------
18230
set define off;
18231
 
5172 dpurdie 18232
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNLOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 18233
											 nUserId IN NUMBER ) IS
18234
/* ---------------------------------------------------------------------------
18235
    Author: Rupesh Solanki
18236
 
18237
	Version: 4.0
18238
   --------------------------------------------------------------------------- */
18239
   STATE CHAR;
18240
 
18241
BEGIN
18242
 
18243
	SELECT DLOCKED INTO STATE
18244
	FROM PACKAGE_VERSIONS
18245
	WHERE PV_ID = nPvId; 
1373 dpurdie 18246
 
3959 dpurdie 18247
	IF STATE = 'A' THEN --It was made official for autobuilds
18248
		-- Unlock Package
18249
		UPDATE PACKAGE_VERSIONS pv SET
18250
		pv.DLOCKED = 'P'
18251
		WHERE pv.PV_ID = nPvId;	
18252
	ELSE
18253
		-- Unlock Package
18254
		UPDATE PACKAGE_VERSIONS pv SET
18255
		pv.DLOCKED = 'N'
18256
		WHERE pv.PV_ID = nPvId;	
18257
 
18258
	END IF;	   
18259
 
18260
    /* LOG ACTION */
18261
   	Log_Action ( nPvId, 'unlock_package', nUserId );
18262
 
18263
END Unlock_Package;
4040 dpurdie 18264
 
3959 dpurdie 18265
/
4040 dpurdie 18266
--------------------------------------------------------
18267
--  DDL for Procedure UNRIPPLE_PACKAGE
18268
--------------------------------------------------------
18269
set define off;
18270
 
5172 dpurdie 18271
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE" (
3959 dpurdie 18272
        sPvIdList IN VARCHAR2,
18273
        nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
18274
        nUserId IN NUMBER
18275
    ) IS
18276
/* ---------------------------------------------------------------------------
18277
    Version: 4.1
18278
   --------------------------------------------------------------------------- */
18279
 
18280
    oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
18281
 
18282
BEGIN
18283
 
18284
    IF (sPvIdList IS NULL) THEN
18285
        RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
18286
    END IF;
18287
 
18288
    oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
18289
 
18290
    -- UnRipple Package
18291
    INSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID )
18292
    SELECT nRtagId, pv.PV_ID
18293
    FROM PACKAGE_VERSIONS pv
18294
    WHERE pv.PV_ID IN (
18295
        SELECT *
18296
        FROM TABLE (
18297
            CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t )
18298
        )
18299
    );
18300
 
18301
    /* LOG ACTION */
18302
    Log_Action_Bulk ( sPvIdList, 'unripple_package', nUserId );
18303
 
18304
END UnRipple_Package;
4040 dpurdie 18305
 
3959 dpurdie 18306
/
4040 dpurdie 18307
--------------------------------------------------------
18308
--  DDL for Procedure UNRIPPLE_PACKAGE_INDIRECT
18309
--------------------------------------------------------
18310
set define off;
18311
 
5172 dpurdie 18312
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE_INDIRECT" (
3959 dpurdie 18313
        nPvId IN NUMBER,
18314
        nRtagId IN NUMBER,
18315
        nUserId IN NUMBER,
18316
        nrootCausePvId IN NUMBER,
18317
        srootCause IN VARCHAR2,
18318
        srootFile IN VARCHAR2
18319
    ) IS
18320
    ReleaseLocation VARCHAR2(4000);
18321
BEGIN
18322
 
18323
    -- UnRipple Package
18324
    delete from do_not_ripple where rtag_id=nRtagId and pv_id=nPvId;
18325
    INSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID, ROOT_PV_ID, ROOT_CAUSE, ROOT_FILE ) values (nRtagId, nPvId, nrootCausePvId, srootCause, srootFile);
18326
 
18327
    /* LOG ACTION */
18328
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
18329
              FROM PROJECTS proj,
18330
                   RELEASE_TAGS rt
18331
             WHERE rt.RTAG_ID = nRtagId
18332
               AND rt.PROJ_ID = proj.PROJ_ID;
18333
 
18334
    /* LOG ACTION */
18335
    Log_Action ( nPvId, 'unripple_package', nUserId, 'Location: '|| ReleaseLocation );
18336
 
18337
END UnRipple_Package_Indirect;
4040 dpurdie 18338
 
3959 dpurdie 18339
/
4040 dpurdie 18340
--------------------------------------------------------
18341
--  DDL for Procedure UPDATE_ADDITIONAL_NOTE
18342
--------------------------------------------------------
18343
set define off;
18344
 
5172 dpurdie 18345
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_ADDITIONAL_NOTE" ( pnNote_id IN NUMBER,
3959 dpurdie 18346
													 pnPv_id IN NUMBER,
18347
                                                     psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,
18348
                                                     psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,
18349
                                                     pnUser_id IN NUMBER,
18350
                                                     outErrCode OUT NUMBER
18351
                                                    ) IS
18352
/* ---------------------------------------------------------------------------
18353
    Version: 3.0.1
18354
   --------------------------------------------------------------------------- */
18355
 
18356
    newID NUMBER;
18357
 
18358
    /* Disallow duplicate Note Titles */
18359
	CURSOR an_duplicate_cur IS
18360
        SELECT COUNT(*) AS cnt_note
18361
          FROM ADDITIONAL_NOTES
18362
         WHERE pv_id = pnPv_id
18363
           AND note_id != pnNote_id
18364
           AND note_title = psNote_title;
18365
    an_duplicate_rec an_duplicate_cur%ROWTYPE;
18366
 
18367
BEGIN
18368
	outErrCode := -1;		-- Set default return error code to ERROR state
18369
 
18370
	OPEN an_duplicate_cur;
18371
    FETCH an_duplicate_cur INTO an_duplicate_rec;
18372
 
18373
    IF an_duplicate_rec.cnt_note < 1
18374
    THEN
18375
		--- Update Additional Note ---
18376
	    UPDATE ADDITIONAL_NOTES SET
18377
		       note_title = psNote_title,
18378
		       note_body = psNote_body,
18379
		       mod_date = Ora_Sysdate,
18380
		       mod_user = pnUser_id
18381
         WHERE note_id = pnNote_id
18382
           AND pv_id = pnPv_id;
18383
		outErrCode := 0;		-- Set return to SUCCESS
18384
	END IF;
18385
 
18386
	CLOSE an_duplicate_cur;
18387
END Update_Additional_Note;
4040 dpurdie 18388
 
3959 dpurdie 18389
/
4040 dpurdie 18390
--------------------------------------------------------
18391
--  DDL for Procedure UPDATE_DEPRECATION_STATE
18392
--------------------------------------------------------
18393
set define off;
18394
 
5172 dpurdie 18395
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_DEPRECATION_STATE" (nnrtag_id IN NUMBER) AS
3959 dpurdie 18396
 
18397
recno NUMBER;
18398
 
18399
CURSOR deprecate_cur IS
18400
 
18401
SELECT rc.pv_id
18402
FROM release_content rc
18403
WHERE rtag_id = nnrtag_id
18404
 AND deprecated_state IN(7);
18405
 
18406
deprecate_rec deprecate_cur % rowtype;
18407
 
18408
BEGIN
18409
 
18410
  OPEN deprecate_cur;
18411
 
18412
  FETCH deprecate_cur
18413
  INTO deprecate_rec;
18414
 
18415
  WHILE deprecate_cur % FOUND
18416
  LOOP
18417
 
18418
    SELECT COUNT(*)
18419
    INTO recno
18420
    FROM package_dependencies pd,
18421
      release_content rc
18422
    WHERE pd.pv_id = deprecate_rec.pv_id
18423
     AND rc.pv_id = pd.dpv_id
18424
     AND rc.rtag_id = nnrtag_id
18425
     AND rc.deprecated_state IN(6,   7);
18426
 
18427
    IF recno = 0 THEN
18428
 
18429
      UPDATE release_content
18430
      SET pkg_id = NULL, deprecated_state = NULL
18431
      WHERE pv_id = deprecate_rec.pv_id
18432
       AND rtag_id = nnrtag_id;
18433
 
18434
    END IF;
18435
 
18436
    FETCH deprecate_cur
18437
    INTO deprecate_rec;
18438
  END LOOP;
18439
 
18440
END;
4040 dpurdie 18441
 
3959 dpurdie 18442
/
4040 dpurdie 18443
--------------------------------------------------------
18444
--  DDL for Procedure UPDATE_MISC_VIEW
18445
--------------------------------------------------------
18446
set define off;
18447
 
5172 dpurdie 18448
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_MISC_VIEW" IS
1373 dpurdie 18449
/******************************************************************************
3959 dpurdie 18450
   NAME:       UPDATE_MISC_VIEW
18451
   PURPOSE:    
1373 dpurdie 18452
 
18453
   REVISIONS:
18454
   Ver        Date        Author           Description
18455
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 18456
   1.0        16/03/2007          1. Created this procedure.
1373 dpurdie 18457
 
18458
   NOTES:
18459
 
18460
   Automatically available Auto Replace Keywords:
3959 dpurdie 18461
      Object Name:     UPDATE_MISC_VIEW
18462
      Sysdate:         16/03/2007
18463
      Date and Time:   16/03/2007, 8:56:29 AM, and 16/03/2007 8:56:29 AM
1373 dpurdie 18464
      Username:         (set in TOAD Options, Procedure Editor)
18465
      Table Name:       (set in the "New PL/SQL Object" dialog)
18466
 
18467
******************************************************************************/
3959 dpurdie 18468
   CURSOR view_cur /*Create a record set to store the ripple data*/
18469
   IS
18470
   	 SELECT pkg.pkg_id, rc.base_view_id 
18471
	 FROM package_versions pv, packages pkg, release_content rc
18472
	 where rc.rtag_id = 2362
18473
	 and rc.pv_id = pv.pv_id
18474
	 and pv.pkg_id = pkg.pkg_id;
18475
   view_rec   view_cur%ROWTYPE;
18476
 
18477
 
18478
 
1373 dpurdie 18479
BEGIN
3959 dpurdie 18480
   OPEN view_cur;
1373 dpurdie 18481
 
3959 dpurdie 18482
   FETCH view_cur
18483
    INTO view_rec;
1373 dpurdie 18484
 
3959 dpurdie 18485
   WHILE view_cur%FOUND
18486
   LOOP
1373 dpurdie 18487
 
3959 dpurdie 18488
 
18489
	   update release_content
18490
	   set base_view_id = view_rec.base_view_id
18491
	   where rtag_id = 8027
18492
	   and pv_id IN 
18493
	   (
18494
	   	select pv.pv_id from release_content rc, package_versions pv
18495
		where rc.rtag_id = 8027
18496
		and pv.pv_id = rc.pv_id
18497
		and pv.pkg_id = view_rec.pkg_id 
18498
 
18499
	   );
18500
 
18501
 
1373 dpurdie 18502
 
3959 dpurdie 18503
 
18504
 
18505
 
18506
 
18507
 
1373 dpurdie 18508
 
3959 dpurdie 18509
   FETCH view_cur
18510
   		 INTO view_rec;
18511
   END LOOP;	 
1373 dpurdie 18512
 
18513
 
18514
 
18515
 
3959 dpurdie 18516
 
18517
END UPDATE_MISC_VIEW; 
4040 dpurdie 18518
 
1374 dpurdie 18519
/
4040 dpurdie 18520
--------------------------------------------------------
18521
--  DDL for Procedure UPDATE_PACKAGE_DEPENDENCY
18522
--------------------------------------------------------
18523
set define off;
18524
 
5172 dpurdie 18525
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_DEPENDENCY" ( NNpv_id IN NUMBER,
3959 dpurdie 18526
                                                        SSdep_name IN PACKAGES.pkg_name%TYPE,
18527
                                                        SSdep_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
18528
                                                        CCbuild_type IN PACKAGE_DEPENDENCIES.build_type%TYPE,
18529
                                                        NNuser_id IN NUMBER,
18530
                                                        NNdelete_old_dependency IN NUMBER
18531
                                                       ) IS
1373 dpurdie 18532
/* ---------------------------------------------------------------------------
3959 dpurdie 18533
    Version: 3.3
1373 dpurdie 18534
   --------------------------------------------------------------------------- */
18535
 
3959 dpurdie 18536
    retPV_ID NUMBER;
18537
    SSV_EXT PACKAGE_VERSIONS.v_ext%TYPE;
18538
	DepIsPatch	PACKAGE_VERSIONS.is_patch%TYPE;
18539
    PvIsPatch	PACKAGE_VERSIONS.is_patch%TYPE;
18540
    NNpkg_id NUMBER;
18541
    NNdpkg_id NUMBER;
1373 dpurdie 18542
 
18543
BEGIN
3959 dpurdie 18544
    --- Seed database with package_name and version if required ---
18545
    Seed_Package_Names_Versions ( SSdep_name, SSdep_version, NNuser_id, retPV_ID );
1373 dpurdie 18546
 
3959 dpurdie 18547
    -- get v_ext,pkg_id of current dependency
18548
    SELECT v_ext, pkg_id, is_patch INTO SSV_EXT, NNdpkg_id, DepIsPatch
18549
      FROM PACKAGE_VERSIONS
18550
     WHERE pv_id = retPV_ID;
1373 dpurdie 18551
 
3959 dpurdie 18552
    -- get pkg_id of parent package
18553
    SELECT pkg_id, is_patch INTO NNpkg_id, PvIsPatch
18554
      FROM PACKAGE_VERSIONS
18555
     WHERE pv_id = NNpv_id;
1373 dpurdie 18556
 
18557
 
3959 dpurdie 18558
	IF ( (PvIsPatch IS NULL) AND (DepIsPatch IS NULL) ) OR
18559
    	( (PvIsPatch IS NOT NULL) )THEN
1373 dpurdie 18560
 
3959 dpurdie 18561
	    IF NNdelete_old_dependency = 1 THEN
18562
	        /* Used for CUSTOM dependency add/edit */
1373 dpurdie 18563
 
3959 dpurdie 18564
	        --- Remove old dependency ---
18565
            IF (PvIsPatch IS NULL) THEN
18566
            	-- Do it for Packages
18567
		        DELETE FROM PACKAGE_DEPENDENCIES
18568
		         WHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN
18569
		            (
18570
		            SELECT dep.*
18571
		              FROM PACKAGE_DEPENDENCIES dep,
18572
		                   PACKAGE_VERSIONS dpv,
18573
		                   PACKAGE_VERSIONS pv
18574
		             WHERE dep.dpv_id = dpv.pv_id
18575
		               AND dep.pv_id = NNpv_id
18576
		               AND pv.pv_id = retPV_ID
18577
		               AND dpv.pkg_id = pv.pkg_id
18578
		               AND NVL(dpv.v_ext, '|LINK_A_NULL|') = NVL(SSV_EXT, '|LINK_A_NULL|')
18579
		            );
18580
            ELSE
18581
            	-- Do it for Patches
18582
                DELETE FROM PACKAGE_DEPENDENCIES
18583
		         WHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN
18584
		            (
18585
		            SELECT dep.*
18586
		              FROM PACKAGE_DEPENDENCIES dep
18587
		             WHERE dep.dpv_id = retPV_ID
18588
		               AND dep.pv_id = NNpv_id
18589
		            );
18590
			END IF;
1373 dpurdie 18591
 
3959 dpurdie 18592
	    END IF;
1373 dpurdie 18593
 
3959 dpurdie 18594
	    /* NOTE: for JATS, ANTS dependency update, it is expected that all dependencies are removed. */
18595
 
18596
	    --- Add new dependency ---
18597
	    INSERT INTO PACKAGE_DEPENDENCIES ( pv_id, dpv_id, pkg_id, dpkg_id, build_type )
18598
	    VALUES ( NNpv_id, retPV_ID, NNpkg_id, NNdpkg_id, CCbuild_type );
18599
 
18600
	END IF;
18601
 
18602
END Update_Package_Dependency;
4040 dpurdie 18603
 
1374 dpurdie 18604
/
4040 dpurdie 18605
--------------------------------------------------------
18606
--  DDL for Procedure UPDATE_PACKAGE_STATES
18607
--------------------------------------------------------
18608
set define off;
18609
 
5172 dpurdie 18610
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_STATES" ( NNrtag_id IN NUMBER,
3959 dpurdie 18611
                                                    NNsession_num IN NUMBER ) IS
18612
/* =============  STATE RULES =================== */
18613
/*
18614
   MNR   MRR   MN   MR    |   pkg_state
18615
   ------------------------------------
18616
 
18617
 
18618
 
18619
 
18620
   ------------------------------------
18621
 
18622
 
18623
 
18624
 
18625
   ------------------------------------
18626
    1     0     0     0   |      MINOR_READY
18627
    1     0     0     1   |      MAJOR
18628
    1     0     1     0   |      MINOR
18629
    1     0     1     1   |      MAJOR
18630
   ------------------------------------
18631
    1     1     0     0   |      MAJOR_READY
18632
    1     1     0     1   |      MAJOR
18633
    1     1     1     0   |      MAJOR
18634
    1     1     1     1   |      MAJOR
18635
   ------------------------------------
18636
*/
18637
BEGIN
18638
    /*----------------------------------------------
18639
    ||              MINOR READY
18640
    */----------------------------------------------
1373 dpurdie 18641
 
3959 dpurdie 18642
    UPDATE release_content
18643
       SET pkg_state = 4
18644
     WHERE rtag_id = NNrtag_id
18645
       AND pv_id IN
18646
           (
18647
           SELECT DISTINCT pv_id
18648
           FROM temp_env_states
18649
           WHERE session_num = NNsession_num
18650
             AND level_num = 1
18651
             AND tes_state = 2
18652
           );
1373 dpurdie 18653
 
3959 dpurdie 18654
    /*----------------------------------------------
18655
    ||              MAJOR READY
18656
    */----------------------------------------------
18657
    UPDATE release_content
18658
       SET pkg_state = 3
18659
     WHERE rtag_id = NNrtag_id
18660
       AND pv_id IN
18661
           (
18662
           SELECT DISTINCT pv_id
18663
           FROM temp_env_states
18664
           WHERE session_num = NNsession_num
18665
             AND level_num = 1
18666
             AND tes_state IN (0,1)
18667
           );
1373 dpurdie 18668
 
3959 dpurdie 18669
    /*----------------------------------------------
18670
    ||                MINOR
18671
    */----------------------------------------------
18672
    UPDATE release_content
18673
       SET pkg_state = 2
18674
     WHERE rtag_id = NNrtag_id
18675
       AND pv_id IN
18676
           (
18677
           SELECT DISTINCT pv_id
18678
            FROM temp_env_states
18679
            WHERE session_num = NNsession_num
18680
              AND level_num >= 2
18681
              AND tes_state = 2
18682
            MINUS
18683
           SELECT pv_id
18684
             FROM release_content
18685
            WHERE rtag_id = NNrtag_id
18686
              AND pkg_state = 3
18687
           );
1373 dpurdie 18688
 
3959 dpurdie 18689
    /*----------------------------------------------
18690
    ||                MAJOR
18691
    */----------------------------------------------
18692
    UPDATE release_content
18693
       SET pkg_state = 1
18694
     WHERE rtag_id = NNrtag_id
18695
       AND pv_id IN
18696
           (
18697
           SELECT DISTINCT pv_id
18698
           FROM temp_env_states
18699
           WHERE session_num = NNsession_num
18700
             AND level_num >= 2
18701
             AND tes_state IN (0,1)
18702
           /* MAJOR EXCEPTION - When package has Major Ready and Minor */
18703
           UNION
18704
           SELECT DISTINCT tes.pv_id
18705
           FROM temp_env_states tes,
18706
                release_content rc
18707
           WHERE tes.session_num = NNsession_num
18708
             AND tes.level_num >= 2
18709
             AND tes.tes_state = 2
18710
             AND rtag_id = NNrtag_id
18711
             AND rc.pv_id = tes.pv_id
18712
             AND rc.pkg_state = 3
18713
           );
1373 dpurdie 18714
 
3959 dpurdie 18715
    /*----------------------------------------------
18716
    ||                 OK
18717
    */----------------------------------------------
18718
    UPDATE release_content
18719
       SET pkg_state = 0
18720
     WHERE rtag_id = NNrtag_id
18721
       AND pv_id IN
18722
           (
18723
           SELECT rc.pv_id
18724
             FROM release_content rc
18725
            WHERE rc.rtag_id = NNrtag_id
18726
              AND NOT rc.pv_id IN
18727
                    (
18728
                     SELECT DISTINCT pv_id
18729
                     FROM temp_env_states WHERE session_num = NNsession_num
18730
                    )
18731
           );
1373 dpurdie 18732
 
3959 dpurdie 18733
      Update_Deprecation_State (NNrtag_id);
1373 dpurdie 18734
 
3959 dpurdie 18735
    /*----------------------------------------------
18736
    ||              PEGGED VERSIONS DEPENDENT
18737
    */----------------------------------------------
18738
    UPDATE release_content
18739
       SET pkg_state = 10
18740
     WHERE rtag_id = NNrtag_id
18741
       AND pv_id IN
18742
           (
18743
           SELECT DISTINCT pv_id
18744
           FROM pegged_versions pegv
18745
           WHERE pegv.rtag_id = NNrtag_id
18746
           );
1373 dpurdie 18747
 
3959 dpurdie 18748
    /*----------------------------------------------
18749
    ||              ADVISORY RIPPLE
18750
    */----------------------------------------------
18751
    UPDATE release_content
18752
       SET pkg_state = 8
18753
     WHERE rtag_id = NNrtag_id
18754
       AND pv_id IN
18755
           (
18756
           SELECT DISTINCT pv_id
18757
           FROM advisory_ripple ar
18758
           WHERE ar.rtag_id = NNrtag_id
18759
           )
18760
       AND pv_id IN
18761
           (
18762
           SELECT DISTINCT pv_id
18763
           FROM release_content rc
18764
           WHERE rc.rtag_id = NNrtag_id
18765
           );
5172 dpurdie 18766
 
18767
    /*----------------------------------------------
18768
    ||              SDK Imported
18769
    */----------------------------------------------
18770
    UPDATE release_content
18771
       SET pkg_state = 11
18772
     WHERE rtag_id = NNrtag_id
18773
       AND sdktag_id is not null;           
1373 dpurdie 18774
 
3959 dpurdie 18775
END Update_Package_States;
4040 dpurdie 18776
 
3959 dpurdie 18777
/
4040 dpurdie 18778
--------------------------------------------------------
18779
--  DDL for Procedure UPDATE_PROCESSES
18780
--------------------------------------------------------
18781
set define off;
18782
 
5172 dpurdie 18783
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PROCESSES" 
3959 dpurdie 18784
IS
1373 dpurdie 18785
 
3959 dpurdie 18786
proc_id NUMBER;
18787
/******************************************************************************
18788
   NAME:       DELETE_DO_NOT_RIPPLE
18789
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
18790
               IS RELEASED
1373 dpurdie 18791
 
3959 dpurdie 18792
   REVISIONS:
18793
   Ver        Date        Author           Description
18794
   ---------  ----------  ---------------  ------------------------------------
18795
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
1373 dpurdie 18796
 
3959 dpurdie 18797
   NOTES:
1373 dpurdie 18798
 
3959 dpurdie 18799
   Automatically available Auto Replace Keywords:
18800
      Object Name:     DELETE_DO_NOT_RIPPLE
18801
      Sysdate:         21/04/2006
18802
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
18803
      Username:         (set in TOAD Options, Procedure Editor)
18804
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 18805
 
3959 dpurdie 18806
******************************************************************************/
18807
   CURSOR ripple_cur
18808
   IS
18809
      select proc_id,  proc_name, run_as, pkg_owner, is_interface from processes;
1373 dpurdie 18810
 
3959 dpurdie 18811
   ripple_rec   ripple_cur%ROWTYPE;
18812
BEGIN
18813
   OPEN ripple_cur;
18814
 
18815
   FETCH ripple_cur
18816
    INTO ripple_rec;
18817
 
18818
   WHILE ripple_cur%FOUND
18819
   LOOP
18820
 
18821
 
18822
update deployment_manager.processes_config 
18823
set proc_id = ripple_rec.proc_id
18824
where pkg_health_tag = ripple_rec.proc_name
18825
and cmd_interface IS NULL
18826
and pkg_owner IS NULL
18827
and is_interface IS NULL; 
18828
 
18829
 
18830
      FETCH ripple_cur
18831
       INTO ripple_rec;
18832
   END LOOP;
18833
END UPDATE_PROCESSES;
4040 dpurdie 18834
 
1374 dpurdie 18835
/
4040 dpurdie 18836
--------------------------------------------------------
18837
--  DDL for Procedure UPDATE_RUNTIME_DEPENDENCY
18838
--------------------------------------------------------
18839
set define off;
18840
 
5172 dpurdie 18841
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_RUNTIME_DEPENDENCY" ( NNpv_id IN RUNTIME_DEPENDENCIES.pv_id%TYPE,
3959 dpurdie 18842
				   	  		  						    NNrtd_id IN RUNTIME_DEPENDENCIES.rtd_id%TYPE,
18843
				   	  		  						    SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
18844
													    SSrtd_url IN RUNTIME_DEPENDENCIES.rtd_url%TYPE,
18845
													    SSrtd_comments IN RUNTIME_DEPENDENCIES.rtd_comments%TYPE,
18846
													    NNuser_id IN NUMBER ) IS
1373 dpurdie 18847
/* ---------------------------------------------------------------------------
3959 dpurdie 18848
    Version: 3.0.1
1373 dpurdie 18849
   --------------------------------------------------------------------------- */
18850
 
3959 dpurdie 18851
    retRTD_ID	NUMBER;
18852
	CURSOR rtd_cur IS
18853
	    SELECT pv.pkg_version, pkg.pkg_name
18854
		  FROM runtime_dependencies rtd,
18855
		       package_versions pv,
18856
			   packages pkg
18857
		 WHERE rtd.rtd_id = pv.pv_id
18858
		   AND pv.pkg_id = pkg.pkg_id
18859
		   AND rtd.pv_id = NNpv_id
18860
		   AND rtd.rtd_id = NNrtd_id;
18861
	   rtd_rec rtd_cur%ROWTYPE;
1373 dpurdie 18862
 
3959 dpurdie 18863
	CURSOR old_rtd_cur IS
18864
	    SELECT pv.pv_id
18865
		  FROM package_versions pv
18866
		 WHERE pv.pkg_id IN ( SELECT rtdpv.pkg_id
18867
		 	   			 	    FROM package_versions rtdpv
18868
							   WHERE rtdpv.pv_id = NNrtd_id )
18869
		   AND pv.pkg_version = SSrtd_version;
18870
	old_rtd_rec old_rtd_cur%ROWTYPE;
1373 dpurdie 18871
 
3959 dpurdie 18872
 
1373 dpurdie 18873
BEGIN
18874
 
3959 dpurdie 18875
    -- Get current runtime dependency details
18876
	OPEN rtd_cur;
18877
    FETCH rtd_cur INTO rtd_rec;
1373 dpurdie 18878
 
18879
 
18880
 
18881
 
3959 dpurdie 18882
	IF rtd_rec.pkg_version != SSrtd_version THEN
18883
           -- Version has changed, hence create new runtime dependency --
18884
	    /* NOTE: You must create new version as updating just a version will affect
18885
		        all packages using this runtime dependency and user does not expect that.
18886
		        It is safer to create new version */
18887
		OPEN old_rtd_cur;
18888
		FETCH old_rtd_cur INTO old_rtd_rec;
1373 dpurdie 18889
 
18890
 
3959 dpurdie 18891
		IF old_rtd_cur%NOTFOUND
18892
		THEN
18893
			-- Version not found, hence Create New version --
18894
    		Seed_Package_Names_Versions ( rtd_rec.pkg_name, SSrtd_version, NNuser_id, retRTD_ID );
1373 dpurdie 18895
 
3959 dpurdie 18896
			-- Update runtime dependency table --
18897
			UPDATE runtime_dependencies SET
18898
				   rtd_id = retRTD_ID,
18899
				   rtd_url = SSrtd_url,
18900
				   rtd_comments = SSrtd_comments
18901
			 WHERE pv_id = NNpv_id
18902
			   AND rtd_id = NNrtd_id;
1373 dpurdie 18903
 
3959 dpurdie 18904
		ELSE
18905
			-- Update runtime dependency table --
18906
			UPDATE runtime_dependencies SET
18907
				   rtd_id = old_rtd_rec.pv_id,
18908
				   rtd_url = SSrtd_url,
18909
				   rtd_comments = SSrtd_comments
18910
			 WHERE pv_id = NNpv_id
18911
			   AND rtd_id = NNrtd_id;
18912
 
18913
		END IF;
18914
 
18915
 
18916
		CLOSE old_rtd_cur;
18917
 
18918
	ELSE
18919
		--  Version has not changed, hence update everithing except	version --
18920
		UPDATE runtime_dependencies SET
18921
			   rtd_url = SSrtd_url,
18922
			   rtd_comments = SSrtd_comments
18923
		 WHERE pv_id = NNpv_id
18924
		   AND rtd_id = NNrtd_id;
18925
 
18926
 
18927
 
18928
	END IF;
18929
 
18930
 
18931
	CLOSE rtd_cur;
18932
 
18933
END Update_Runtime_Dependency;
4040 dpurdie 18934
 
1374 dpurdie 18935
/
4040 dpurdie 18936
--------------------------------------------------------
18937
--  DDL for Procedure UPDATE_UNIT_TEST
18938
--------------------------------------------------------
18939
set define off;
18940
 
5172 dpurdie 18941
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST" ( nTest_id IN NUMBER,
3959 dpurdie 18942
	   	  		  							   nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,  	
18943
											   nPv_id IN NUMBER,
18944
											   nUserId IN NUMBER,
18945
	                                           sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
18946
											   sNumof_test IN UNIT_TESTS.NUMOF_TEST%TYPE,
18947
	                                           sCompletion_date IN VARCHAR2,
18948
											   sDpkg_path IN VARCHAR2,
18949
											   enumTEST_TYPE_AUTOMATIC IN NUMBER,
18950
											   sResults IN VARCHAR2,
18951
											   outFileName OUT VARCHAR2
18952
                                              ) IS
1373 dpurdie 18953
/* ---------------------------------------------------------------------------
3959 dpurdie 18954
    Version: 3.1.0
1373 dpurdie 18955
   --------------------------------------------------------------------------- */
3959 dpurdie 18956
 
18957
   	FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
1373 dpurdie 18958
 
3959 dpurdie 18959
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
18960
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
1373 dpurdie 18961
 
3959 dpurdie 18962
 
1373 dpurdie 18963
BEGIN
18964
 
3959 dpurdie 18965
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
18966
       	ResultsURL := sResults;
18967
       ELSE
18968
       	IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
18969
        	outFileName := FILENAME_PREFIX || nTest_id ||'_'|| sResults;
18970
    		ResultsAttachment := sDpkg_path || '/' || outFileName;
18971
           END IF;
18972
       END IF;
1373 dpurdie 18973
 
3959 dpurdie 18974
	--- Update Unit Test ---
18975
    UPDATE UNIT_TESTS SET
18976
           TEST_SUMMARY = sTest_summary,
18977
		   NUMOF_TEST = sNumof_test,
18978
           COMPLETION_DATE = TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
18979
		   COMPLETED_BY = nUserId,
18980
		   RESULTS_URL = ResultsURL,
18981
		   RESULTS_ATTACHMENT_NAME = ResultsAttachment
18982
     WHERE TEST_ID = nTest_id
18983
       AND PV_ID = nPv_id;
1373 dpurdie 18984
 
3959 dpurdie 18985
END Update_Unit_Test;
4040 dpurdie 18986
 
3959 dpurdie 18987
/
4040 dpurdie 18988
--------------------------------------------------------
18989
--  DDL for Procedure UPDATE_UNIT_TEST_ACCEPTANCE
18990
--------------------------------------------------------
18991
set define off;
18992
 
5172 dpurdie 18993
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST_ACCEPTANCE" ( pnTest_id IN NUMBER,
3959 dpurdie 18994
														  pnPv_id IN NUMBER,
18995
					                                      sAccepted IN UNIT_TESTS.TEST_ACCEPTED%TYPE,
18996
														  sAcceptanceDate IN VARCHAR2,
18997
														  sAcceptedBy IN NUMBER,
18998
					                                      sReviewComments IN UNIT_TESTS.REVIEW_COMMENTS%TYPE,
18999
														  cUpdateAcceptedStateOnly IN CHAR
19000
					                                     ) IS
19001
/* ---------------------------------------------------------------------------
19002
    Version: 3.0.0
19003
   --------------------------------------------------------------------------- */
1373 dpurdie 19004
 
19005
 
19006
 
3959 dpurdie 19007
BEGIN
19008
	IF cUpdateAcceptedStateOnly = 'Y'
19009
	THEN
19010
		--- Update Accepted State Only ---
19011
		IF ( sAccepted IS NULL )
19012
		THEN
19013
			-- Clear alleptance
19014
			UPDATE UNIT_TESTS SET
19015
		           TEST_ACCEPTED = NULL,
19016
		           ACCEPTANCE_DATE = NULL,
19017
				   ACCEPTED_BY = NULL,
19018
				   REVIEW_COMMENTS = NULL
19019
		     WHERE TEST_ID = pnTest_id
19020
		       AND PV_ID = pnPv_id;
19021
 
19022
	    ELSE
19023
			UPDATE UNIT_TESTS SET
19024
		           TEST_ACCEPTED = sAccepted,
19025
		           ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),
19026
				   ACCEPTED_BY = sAcceptedBy
19027
		     WHERE TEST_ID = pnTest_id
19028
		       AND PV_ID = pnPv_id;
19029
 
19030
		END IF;
19031
 
19032
 
19033
	ELSE
19034
		--- Update Unit Test Acceptance ---
19035
	    UPDATE UNIT_TESTS SET
19036
	           TEST_ACCEPTED = sAccepted,
19037
			   REVIEW_COMMENTS = sReviewComments,
19038
	           ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),
19039
			   ACCEPTED_BY = sAcceptedBy
19040
	     WHERE TEST_ID = pnTest_id
19041
	       AND PV_ID = pnPv_id;
19042
 
19043
	END IF;
19044
 
19045
END Update_Unit_Test_Acceptance;
4040 dpurdie 19046
 
1374 dpurdie 19047
/
4040 dpurdie 19048
--------------------------------------------------------
19049
--  DDL for Synonymn APPLICATIONS
19050
--------------------------------------------------------
19051
 
5172 dpurdie 19052
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."APPLICATIONS" FOR "ACCESS_MANAGER"."APPLICATIONS";
4040 dpurdie 19053
--------------------------------------------------------
19054
--  DDL for Synonymn APPLICATION_PAGES
19055
--------------------------------------------------------
19056
 
5172 dpurdie 19057
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."APPLICATION_PAGES" FOR "ACCESS_MANAGER"."APPLICATION_PAGES";
4040 dpurdie 19058
--------------------------------------------------------
19059
--  DDL for Synonymn CONTROL_OBJECTS
19060
--------------------------------------------------------
19061
 
5172 dpurdie 19062
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."CONTROL_OBJECTS";
4040 dpurdie 19063
--------------------------------------------------------
19064
--  DDL for Synonymn DATA_PERMISSIONS
19065
--------------------------------------------------------
19066
 
5172 dpurdie 19067
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."DATA_PERMISSIONS" FOR "ACCESS_MANAGER"."DATA_PERMISSIONS";
4040 dpurdie 19068
--------------------------------------------------------
19069
--  DDL for Synonymn DATA_TABLES
19070
--------------------------------------------------------
19071
 
5172 dpurdie 19072
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."DATA_TABLES" FOR "ACCESS_MANAGER"."DATA_TABLES";
4040 dpurdie 19073
--------------------------------------------------------
19074
--  DDL for Synonymn PAGE_CONTROL_OBJECTS
19075
--------------------------------------------------------
19076
 
5172 dpurdie 19077
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PAGE_CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."PAGE_CONTROL_OBJECTS";
4040 dpurdie 19078
--------------------------------------------------------
19079
--  DDL for Synonymn PERMISSION_TYPES
19080
--------------------------------------------------------
19081
 
5172 dpurdie 19082
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PERMISSION_TYPES" FOR "ACCESS_MANAGER"."PERMISSION_TYPES";
4040 dpurdie 19083
--------------------------------------------------------
19084
--  DDL for Synonymn PK_AMUTILS
19085
--------------------------------------------------------
19086
 
5172 dpurdie 19087
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PK_AMUTILS" FOR "ACCESS_MANAGER"."PK_AMUTILS";
4040 dpurdie 19088
--------------------------------------------------------
19089
--  DDL for Synonymn PK_SECURITY
19090
--------------------------------------------------------
19091
 
5172 dpurdie 19092
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PK_SECURITY" FOR "ACCESS_MANAGER"."PK_SECURITY";
4040 dpurdie 19093
--------------------------------------------------------
19094
--  DDL for Synonymn ROLES
19095
--------------------------------------------------------
19096
 
5172 dpurdie 19097
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."ROLES" FOR "ACCESS_MANAGER"."ROLES";
4040 dpurdie 19098
--------------------------------------------------------
19099
--  DDL for Synonymn ROLE_PRIVILEGES
19100
--------------------------------------------------------
19101
 
5172 dpurdie 19102
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."ROLE_PRIVILEGES" FOR "ACCESS_MANAGER"."ROLE_PRIVILEGES";
4040 dpurdie 19103
--------------------------------------------------------
19104
--  DDL for Synonymn USERS
19105
--------------------------------------------------------
19106
 
5172 dpurdie 19107
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USERS" FOR "ACCESS_MANAGER"."USERS";
4040 dpurdie 19108
--------------------------------------------------------
19109
--  DDL for Synonymn USER_APPLICATIONS
19110
--------------------------------------------------------
19111
 
5172 dpurdie 19112
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USER_APPLICATIONS" FOR "ACCESS_MANAGER"."USER_APPLICATIONS";
4040 dpurdie 19113
--------------------------------------------------------
19114
--  DDL for Synonymn USER_ROLES
19115
--------------------------------------------------------
19116
 
5172 dpurdie 19117
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USER_ROLES" FOR "ACCESS_MANAGER"."USER_ROLES";