Subversion Repositories DevTools

Rev

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

Rev Author Line No. Line
1374 dpurdie 1
--------------------------------------------------------
6600 dpurdie 2
--  File created - Thursday-July-26-2018   
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
/
6031 dpurdie 11
--------------------------------------------------------
12
--  DDL for Type RELMGR_PKG_DESTROY_ERR_T
13
--------------------------------------------------------
14
 
15
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_PKG_DESTROY_ERR_T" AS OBJECT 
16
( msg VARCHAR(200),
17
  mtype CHAR(1)
18
)
19
 
20
/
21
--------------------------------------------------------
22
--  DDL for Type RELMGR_PKG_DESTROY_ERR_TAB_T
23
--------------------------------------------------------
24
 
25
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_PKG_DESTROY_ERR_TAB_T" 
26
AS TABLE OF RELMGR_PKG_DESTROY_ERR_T;
27
 
28
/
4040 dpurdie 29
--------------------------------------------------------
30
--  DDL for Type RELMGR_VARCHAR2_TAB_T
31
--------------------------------------------------------
32
 
5172 dpurdie 33
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_VARCHAR2_TAB_T" 
4040 dpurdie 34
as TABLE of VARCHAR2(4000)
35
 
36
/
37
--------------------------------------------------------
38
--  DDL for Type TDICTIONARY
39
--------------------------------------------------------
40
 
5892 dpurdie 41
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."TDICTIONARY" AS
42
  TABLE OF VARCHAR2(4000)
4040 dpurdie 43
 
44
/
45
--------------------------------------------------------
46
--  DDL for Sequence MICROSOFTSEQDTPROPERTIES
47
--------------------------------------------------------
48
 
5172 dpurdie 49
   CREATE SEQUENCE  "RELEASE_MANAGER"."MICROSOFTSEQDTPROPERTIES"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 50 NOORDER  NOCYCLE ;
4040 dpurdie 50
--------------------------------------------------------
51
--  DDL for Sequence SEQ_ADDITIONAL_NOTES
52
--------------------------------------------------------
53
 
6600 dpurdie 54
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_ADDITIONAL_NOTES"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 37313 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 55
--------------------------------------------------------
56
--  DDL for Sequence SEQ_BMCON_ID
57
--------------------------------------------------------
58
 
6600 dpurdie 59
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BMCON_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 401 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 60
--------------------------------------------------------
61
--  DDL for Sequence SEQ_BM_ID
62
--------------------------------------------------------
63
 
6031 dpurdie 64
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BM_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 6 NOCACHE  ORDER  NOCYCLE ;
5172 dpurdie 65
--------------------------------------------------------
66
--  DDL for Sequence SEQ_BSA_ID
67
--------------------------------------------------------
68
 
6031 dpurdie 69
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BSA_ID"  MINVALUE 8 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 48 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 70
--------------------------------------------------------
5172 dpurdie 71
--  DDL for Sequence SEQ_BUILD_INSTANCE
72
--------------------------------------------------------
73
 
6600 dpurdie 74
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BUILD_INSTANCE"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 254039 CACHE 20 ORDER  NOCYCLE ;
5172 dpurdie 75
--------------------------------------------------------
4040 dpurdie 76
--  DDL for Sequence SEQ_CR_ID
77
--------------------------------------------------------
78
 
6600 dpurdie 79
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_CR_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 96052 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 80
--------------------------------------------------------
81
--  DDL for Sequence SEQ_DAEMON_INSTRUCTION_ID
82
--------------------------------------------------------
83
 
6600 dpurdie 84
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_DAEMON_INSTRUCTION_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 169770 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 85
--------------------------------------------------------
86
--  DDL for Sequence SEQ_GBE_ID
87
--------------------------------------------------------
88
 
6600 dpurdie 89
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_GBE_ID"  MINVALUE 40 MAXVALUE 9999999999999999999999990 INCREMENT BY 1 START WITH 1245 NOCACHE  ORDER  NOCYCLE ;
4040 dpurdie 90
--------------------------------------------------------
91
--  DDL for Sequence SEQ_GROUP_EMAIL_ID
92
--------------------------------------------------------
93
 
6031 dpurdie 94
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_GROUP_EMAIL_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999 INCREMENT BY 1 START WITH 1186 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 95
--------------------------------------------------------
96
--  DDL for Sequence SEQ_MSG_ID
97
--------------------------------------------------------
98
 
6031 dpurdie 99
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_MSG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 582 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 100
--------------------------------------------------------
101
--  DDL for Sequence SEQ_PKG_ID
102
--------------------------------------------------------
103
 
6600 dpurdie 104
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PKG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 66589 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 105
--------------------------------------------------------
106
--  DDL for Sequence SEQ_PROJ_ID
107
--------------------------------------------------------
108
 
6600 dpurdie 109
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PROJ_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 941 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 110
--------------------------------------------------------
111
--  DDL for Sequence SEQ_PV_ID
112
--------------------------------------------------------
113
 
6600 dpurdie 114
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PV_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1259965 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 115
--------------------------------------------------------
116
--  DDL for Sequence SEQ_RCON_ID
117
--------------------------------------------------------
118
 
6600 dpurdie 119
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RCON_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 33943 CACHE 20 ORDER  NOCYCLE ;
5172 dpurdie 120
--------------------------------------------------------
121
--  DDL for Sequence SEQ_RELEASE_MOD
122
--------------------------------------------------------
123
 
6600 dpurdie 124
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RELEASE_MOD"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 342814 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 125
--------------------------------------------------------
126
--  DDL for Sequence SEQ_RTAG_ID
127
--------------------------------------------------------
128
 
6600 dpurdie 129
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RTAG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 37029 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 130
--------------------------------------------------------
131
--  DDL for Sequence SEQ_SCHEDULED_ID
132
--------------------------------------------------------
133
 
6600 dpurdie 134
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SCHEDULED_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 29733 CACHE 20 ORDER  NOCYCLE ;
5172 dpurdie 135
--------------------------------------------------------
136
--  DDL for Sequence SEQ_SDKTAG_ID
137
--------------------------------------------------------
138
 
6600 dpurdie 139
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SDKTAG_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 883 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 140
--------------------------------------------------------
5172 dpurdie 141
--  DDL for Sequence SEQ_SDK_ID
142
--------------------------------------------------------
143
 
6600 dpurdie 144
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SDK_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 163 CACHE 20 NOORDER  NOCYCLE ;
5172 dpurdie 145
--------------------------------------------------------
4040 dpurdie 146
--  DDL for Sequence SEQ_SESSION_NUM
147
--------------------------------------------------------
148
 
6600 dpurdie 149
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SESSION_NUM"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1103850 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 150
--------------------------------------------------------
5892 dpurdie 151
--  DDL for Sequence SEQ_TESTRUN_ID
152
--------------------------------------------------------
153
 
6600 dpurdie 154
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_TESTRUN_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 2948677 CACHE 20 NOORDER  NOCYCLE ;
5892 dpurdie 155
--------------------------------------------------------
4040 dpurdie 156
--  DDL for Sequence SEQ_UNIT_TESTS
157
--------------------------------------------------------
158
 
6600 dpurdie 159
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_UNIT_TESTS"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 368596 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 160
--------------------------------------------------------
161
--  DDL for Sequence SEQ_USER_ID
162
--------------------------------------------------------
163
 
5172 dpurdie 164
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_USER_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 3961 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 165
--------------------------------------------------------
166
--  DDL for Sequence SEQ_VCS_TYPE
167
--------------------------------------------------------
168
 
6031 dpurdie 169
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VCS_TYPE"  MINVALUE 1 MAXVALUE 255 INCREMENT BY 1 START WITH 63 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 170
--------------------------------------------------------
171
--  DDL for Sequence SEQ_VIEW_ID
172
--------------------------------------------------------
173
 
6600 dpurdie 174
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VIEW_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 10221 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 175
--------------------------------------------------------
176
--  DDL for Sequence SEQ_VTREE_ID
177
--------------------------------------------------------
178
 
6600 dpurdie 179
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VTREE_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 33848 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 180
--------------------------------------------------------
181
--  DDL for Table ABT_ACTION_LOG
182
--------------------------------------------------------
183
 
5172 dpurdie 184
  CREATE TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" 
4040 dpurdie 185
   (	"RCON_ID" NUMBER, 
186
	"ACTION_DATETIME" DATE, 
5172 dpurdie 187
	"ACTION" VARCHAR2(4000 BYTE)
188
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 189
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
190
 NOCOMPRESS LOGGING
5172 dpurdie 191
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 192
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
193
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
194
  TABLESPACE "RELEASE_MANAGER_DATA" ;
195
  GRANT SELECT ON "RELEASE_MANAGER"."ABT_ACTION_LOG" TO "RM_READONLY";
196
  GRANT SELECT ON "RELEASE_MANAGER"."ABT_ACTION_LOG" TO "MS_READONLY";
5892 dpurdie 197
  GRANT SELECT ON "RELEASE_MANAGER"."ABT_ACTION_LOG" TO "DM_READONLY";
4040 dpurdie 198
--------------------------------------------------------
199
--  DDL for Table ACTION_LOG
200
--------------------------------------------------------
201
 
5172 dpurdie 202
  CREATE TABLE "RELEASE_MANAGER"."ACTION_LOG" 
4040 dpurdie 203
   (	"USER_ID" NUMBER, 
5172 dpurdie 204
	"ACTION_DATETIME" DATE DEFAULT SYSDATE, 
4040 dpurdie 205
	"PV_ID" NUMBER, 
5172 dpurdie 206
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
207
	"ACTTYPE_ID" NUMBER, 
208
	"ACTION_TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP
209
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 210
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
211
 NOCOMPRESS LOGGING
5172 dpurdie 212
  STORAGE(INITIAL 308281344 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 213
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
214
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
215
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 216
 
217
   COMMENT ON COLUMN "RELEASE_MANAGER"."ACTION_LOG"."ACTION_DATETIME" IS 'To be deprecated. Use timestamp instead';
6031 dpurdie 218
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "RM_READONLY";
219
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "MS_READONLY";
5892 dpurdie 220
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "DM_READONLY";
221
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "RELEASE_MANAGER_READ";
6031 dpurdie 222
  GRANT DELETE ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";
223
  GRANT UPDATE ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";
224
  GRANT INSERT ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";
225
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 226
--------------------------------------------------------
227
--  DDL for Table ACTION_TYPE
228
--------------------------------------------------------
229
 
5172 dpurdie 230
  CREATE TABLE "RELEASE_MANAGER"."ACTION_TYPE" 
4040 dpurdie 231
   (	"ACTTYPE_ID" NUMBER, 
5172 dpurdie 232
	"NAME" VARCHAR2(255 BYTE), 
233
	"DESCRIPTION" VARCHAR2(4000 BYTE)
234
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 235
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
236
 NOCOMPRESS LOGGING
5172 dpurdie 237
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 238
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
239
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
240
  TABLESPACE "RELEASE_MANAGER_DATA" ;
241
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "RM_READONLY";
242
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "MS_READONLY";
5892 dpurdie 243
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "DM_READONLY";
244
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 245
--------------------------------------------------------
246
--  DDL for Table ADDITIONAL_NOTES
247
--------------------------------------------------------
248
 
5172 dpurdie 249
  CREATE TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" 
4040 dpurdie 250
   (	"NOTE_ID" NUMBER, 
251
	"PV_ID" NUMBER, 
5172 dpurdie 252
	"NOTE_TITLE" VARCHAR2(2000 BYTE), 
253
	"NOTE_BODY" VARCHAR2(4000 BYTE), 
4040 dpurdie 254
	"MOD_DATE" DATE, 
255
	"MOD_USER" NUMBER
5172 dpurdie 256
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 257
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
258
 NOCOMPRESS LOGGING
5172 dpurdie 259
  STORAGE(INITIAL 55574528 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 260
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
261
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
262
  TABLESPACE "RELEASE_MANAGER_DATA" ;
263
  GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "RM_READONLY";
264
  GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "MS_READONLY";
5892 dpurdie 265
  GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "DM_READONLY";
266
  GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 267
--------------------------------------------------------
268
--  DDL for Table ADVISORY_RIPPLE
269
--------------------------------------------------------
270
 
5172 dpurdie 271
  CREATE TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" 
4040 dpurdie 272
   (	"RTAG_ID" NUMBER, 
273
	"PV_ID" NUMBER
5172 dpurdie 274
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 275
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
276
 NOCOMPRESS LOGGING
5172 dpurdie 277
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 278
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
279
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
280
  TABLESPACE "RELEASE_MANAGER_DATA" ;
281
  GRANT SELECT ON "RELEASE_MANAGER"."ADVISORY_RIPPLE" TO "RM_READONLY";
282
  GRANT SELECT ON "RELEASE_MANAGER"."ADVISORY_RIPPLE" TO "MS_READONLY";
5892 dpurdie 283
  GRANT SELECT ON "RELEASE_MANAGER"."ADVISORY_RIPPLE" TO "DM_READONLY";
4040 dpurdie 284
--------------------------------------------------------
285
--  DDL for Table ARCHIVE_ACTION_LOG
286
--------------------------------------------------------
287
 
5172 dpurdie 288
  CREATE TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" 
4040 dpurdie 289
   (	"USER_ID" NUMBER, 
290
	"DATE_TIME_STAMP" DATE, 
291
	"RTAG_ID" NUMBER, 
5172 dpurdie 292
	"DESCRIPTION" VARCHAR2(4000 BYTE)
293
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 294
  PCTFREE 10 PCTUSED 0 INITRANS 1 MAXTRANS 255 
295
 NOCOMPRESS LOGGING
5172 dpurdie 296
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 297
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
298
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
299
  TABLESPACE "RELEASE_MANAGER_DATA" ;
300
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" TO "RM_READONLY";
301
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" TO "MS_READONLY";
5892 dpurdie 302
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" TO "DM_READONLY";
4040 dpurdie 303
--------------------------------------------------------
304
--  DDL for Table ARCHIVE_DATA
305
--------------------------------------------------------
306
 
5172 dpurdie 307
  CREATE TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" 
4040 dpurdie 308
   (	"RTAG_ID" NUMBER(*,0), 
309
	"PV_ID" NUMBER(*,0)
5172 dpurdie 310
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 311
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
312
 NOCOMPRESS LOGGING
5172 dpurdie 313
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 314
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
315
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
316
  TABLESPACE "RELEASE_MANAGER_DATA" ;
317
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_DATA" TO "RM_READONLY";
318
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_DATA" TO "MS_READONLY";
5892 dpurdie 319
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_DATA" TO "DM_READONLY";
4040 dpurdie 320
--------------------------------------------------------
321
--  DDL for Table AUTOBUILD_FAILURE
322
--------------------------------------------------------
323
 
5172 dpurdie 324
  CREATE TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" 
4040 dpurdie 325
   (	"GROUP_EMAIL_ID" NUMBER, 
326
	"PROJ_ID" NUMBER, 
327
	"VIEW_ID" NUMBER
5172 dpurdie 328
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 329
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
330
 NOCOMPRESS LOGGING
5172 dpurdie 331
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 332
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
333
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
334
  TABLESPACE "RELEASE_MANAGER_DATA" ;
335
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "RM_READONLY";
336
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "MS_READONLY";
5892 dpurdie 337
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "DM_READONLY";
338
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 339
--------------------------------------------------------
340
--  DDL for Table BUILD_ENVIRONMENTS
341
--------------------------------------------------------
342
 
5172 dpurdie 343
  CREATE TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" 
4040 dpurdie 344
   (	"BE_ID" NUMBER, 
5172 dpurdie 345
	"BE_NAME" VARCHAR2(255 BYTE)
346
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 347
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
348
 NOCOMPRESS LOGGING
5172 dpurdie 349
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 350
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
351
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
352
  TABLESPACE "RELEASE_MANAGER_DATA" ;
353
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "RM_READONLY";
354
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "MS_READONLY";
5892 dpurdie 355
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DM_READONLY";
356
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "RELEASE_MANAGER_READ";
6031 dpurdie 357
  GRANT UPDATE ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";
358
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";
359
  GRANT INSERT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";
360
  GRANT DELETE ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 361
--------------------------------------------------------
362
--  DDL for Table BUILD_ENV_DOCUMENTS
363
--------------------------------------------------------
364
 
5172 dpurdie 365
  CREATE TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" 
4040 dpurdie 366
   (	"BE_ID" NUMBER, 
5172 dpurdie 367
	"DOC_NUM" VARCHAR2(255 BYTE)
368
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 369
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
370
 NOCOMPRESS LOGGING
5172 dpurdie 371
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 372
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
373
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
374
  TABLESPACE "RELEASE_MANAGER_DATA" ;
375
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "RM_READONLY";
376
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "MS_READONLY";
5892 dpurdie 377
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "DM_READONLY";
378
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "RELEASE_MANAGER_READ";
5172 dpurdie 379
--------------------------------------------------------
380
--  DDL for Table BUILD_INSTANCES
381
--------------------------------------------------------
382
 
383
  CREATE TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" 
384
   (	"BUILD_ID" NUMBER, 
385
	"RTAG_ID" NUMBER, 
386
	"PV_ID" NUMBER, 
387
	"TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP, 
388
	"REASON" CHAR(1 BYTE), 
389
	"STATE" CHAR(1 BYTE) DEFAULT 'B'
390
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 391
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
392
 NOCOMPRESS LOGGING
5172 dpurdie 393
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 394
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
395
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
396
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 397
 
398
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."BUILD_ID" IS 'Unique. Auto generated when row is created.';
399
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."RTAG_ID" IS 'Link the build to a Release';
400
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."PV_ID" IS 'Link the build to a Package';
401
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."TIMESTAMP" IS 'When the instance is created';
402
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."REASON" IS 'Reason for the build. Ripple(''R''), Test(''T''), NewVersion(''N''), Restore(''P'')';
403
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."STATE" IS 'Result of the build. ''B'', ''Buiding'', ''C'', ''Complete'', ''E'', ''Error'', ''S'', ''SysErr''';
4040 dpurdie 404
--------------------------------------------------------
405
--  DDL for Table BUILD_MACHINES
406
--------------------------------------------------------
407
 
5172 dpurdie 408
  CREATE TABLE "RELEASE_MANAGER"."BUILD_MACHINES" 
4040 dpurdie 409
   (	"BM_ID" NUMBER, 
5172 dpurdie 410
	"BM_NAME" VARCHAR2(20 BYTE)
411
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 412
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
413
 NOCOMPRESS LOGGING
5172 dpurdie 414
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 415
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
416
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
417
  TABLESPACE "RELEASE_MANAGER_DATA" ;
418
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "RM_READONLY";
419
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "MS_READONLY";
5892 dpurdie 420
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "DM_READONLY";
421
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 422
--------------------------------------------------------
423
--  DDL for Table BUILD_MACHINE_CONFIG
424
--------------------------------------------------------
425
 
5172 dpurdie 426
  CREATE TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" 
4040 dpurdie 427
   (	"BMCON_ID" NUMBER, 
5172 dpurdie 428
	"DISPLAY_NAME" VARCHAR2(50 BYTE), 
429
	"MACHINE_HOSTNAME" VARCHAR2(50 BYTE), 
430
	"DESCRIPTION" VARCHAR2(512 BYTE), 
431
	"GBE_ID" NUMBER, 
432
	"ACTIVE" CHAR(1 BYTE) DEFAULT 'Y'
433
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 434
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
435
 NOCOMPRESS LOGGING
5172 dpurdie 436
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 437
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
438
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
439
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 440
 
441
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG"."ACTIVE" IS 'Allows user to select deamon, otherwise its not shown unless already in use.';
6031 dpurdie 442
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "RM_READONLY";
443
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "MS_READONLY";
5892 dpurdie 444
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "DM_READONLY";
445
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 446
--------------------------------------------------------
447
--  DDL for Table BUILD_ORDER
448
--------------------------------------------------------
449
 
5172 dpurdie 450
  CREATE TABLE "RELEASE_MANAGER"."BUILD_ORDER" 
4040 dpurdie 451
   (	"RTAG_ID" NUMBER, 
452
	"STEP_NUM" NUMBER, 
453
	"PV_ID" NUMBER, 
5172 dpurdie 454
	"UNRESOLVED" CHAR(1 BYTE)
455
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 456
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
457
 NOCOMPRESS LOGGING
5172 dpurdie 458
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 459
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
460
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
461
  TABLESPACE "RELEASE_MANAGER_DATA" ;
462
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "RM_READONLY";
463
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "MS_READONLY";
5892 dpurdie 464
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "DM_READONLY";
465
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "RELEASE_MANAGER_READ";
466
--------------------------------------------------------
467
--  DDL for Table BUILD_PLAN
468
--------------------------------------------------------
469
 
470
  CREATE TABLE "RELEASE_MANAGER"."BUILD_PLAN" 
471
   (	"RTAG_ID" NUMBER, 
472
	"BUILD_ORDER" NUMBER, 
473
	"PV_ID" NUMBER
474
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 475
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
476
 NOCOMPRESS LOGGING
5892 dpurdie 477
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 478
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
479
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
480
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5892 dpurdie 481
 
482
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_PLAN"."RTAG_ID" IS 'Identify target Release';
483
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_PLAN"."BUILD_ORDER" IS 'Sequence for build';
484
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_PLAN"."PV_ID" IS 'Package to build';
4040 dpurdie 485
--------------------------------------------------------
486
--  DDL for Table BUILD_SERVICE_CONFIG
487
--------------------------------------------------------
488
 
5172 dpurdie 489
  CREATE TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" 
490
   (	"SERVICE" VARCHAR2(50 BYTE), 
491
	"CONFIG" VARCHAR2(2000 BYTE)
492
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 493
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
494
 NOCOMPRESS LOGGING
5172 dpurdie 495
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 496
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
497
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
498
  TABLESPACE "RELEASE_MANAGER_DATA" ;
499
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "RM_READONLY";
500
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "MS_READONLY";
5892 dpurdie 501
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "DM_READONLY";
502
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 503
--------------------------------------------------------
504
--  DDL for Table BUILD_STANDARDS
505
--------------------------------------------------------
506
 
5172 dpurdie 507
  CREATE TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" 
4040 dpurdie 508
   (	"BS_ID" NUMBER, 
5172 dpurdie 509
	"BS_NAME" VARCHAR2(20 BYTE)
510
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 511
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
512
 NOCOMPRESS LOGGING
5172 dpurdie 513
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 514
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
515
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
516
  TABLESPACE "RELEASE_MANAGER_DATA" ;
517
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "RM_READONLY";
518
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "MS_READONLY";
5892 dpurdie 519
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "DM_READONLY";
520
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 521
--------------------------------------------------------
522
--  DDL for Table BUILD_STANDARDS_ADDENDUM
523
--------------------------------------------------------
524
 
5172 dpurdie 525
  CREATE TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" 
4040 dpurdie 526
   (	"BSA_ID" NUMBER, 
5172 dpurdie 527
	"BSA_NAME" VARCHAR2(4000 BYTE), 
4040 dpurdie 528
	"BS_ID" NUMBER
5172 dpurdie 529
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 530
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
531
 NOCOMPRESS LOGGING
5172 dpurdie 532
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 533
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
534
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
535
  TABLESPACE "RELEASE_MANAGER_DATA" ;
536
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "RM_READONLY";
537
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "MS_READONLY";
5892 dpurdie 538
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "DM_READONLY";
539
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 540
--------------------------------------------------------
541
--  DDL for Table CODE_REVIEWS
542
--------------------------------------------------------
543
 
5172 dpurdie 544
  CREATE TABLE "RELEASE_MANAGER"."CODE_REVIEWS" 
4040 dpurdie 545
   (	"PV_ID" NUMBER, 
546
	"DATE_OF_REVIEW" DATE, 
547
	"TIME_SPENT" FLOAT(126), 
5172 dpurdie 548
	"REVIEW_REASON" VARCHAR2(4000 BYTE), 
549
	"RTEAM_DOMAIN_EXPERT" VARCHAR2(4000 BYTE), 
550
	"RTEAM_LANGUAGE_EXPERT" VARCHAR2(4000 BYTE), 
551
	"RTEAM_PEER_DEVELOPER" VARCHAR2(4000 BYTE), 
552
	"RTEAM_AUTHOR" VARCHAR2(4000 BYTE), 
553
	"FILES_REVIEWED" VARCHAR2(4000 BYTE), 
4040 dpurdie 554
	"REVIEW_RESULTS" NUMBER, 
5172 dpurdie 555
	"ISSUES_RAISED" VARCHAR2(4000 BYTE), 
556
	"REVIEW_COMMENTS" VARCHAR2(4000 BYTE), 
557
	"FNC_S_MEETS_FUNCTIONALITY" CHAR(1 BYTE), 
558
	"FNC_C_MEETS_FUNCTIONALITY" VARCHAR2(4000 BYTE), 
559
	"RBS_S_BOUND_COND_HANDLED" CHAR(1 BYTE), 
560
	"RBS_C_BOUND_COND_HANDLED" VARCHAR2(4000 BYTE), 
561
	"RBS_S_CLASS_INTERF_PRECOND" CHAR(1 BYTE), 
562
	"RBS_C_CLASS_INTERF_PRECOND" VARCHAR2(4000 BYTE), 
563
	"RBS_S_NO_UNITIALISED_DATE" CHAR(1 BYTE), 
564
	"RBS_C_NO_UNITIALISED_DATE" VARCHAR2(4000 BYTE), 
565
	"RBS_S_EXCEP_HANDING" CHAR(1 BYTE), 
566
	"RBS_C_EXCEP_HANDING" VARCHAR2(4000 BYTE), 
567
	"RBS_S_RESOURCE_MNG" CHAR(1 BYTE), 
568
	"RBS_C_RESOURCE_MNG" VARCHAR2(4000 BYTE), 
569
	"RBS_S_TRANS_COMPLET" CHAR(1 BYTE), 
570
	"RBS_C_TRANS_COMPLET" VARCHAR2(4000 BYTE), 
571
	"RBS_S_THREADSAFETY" CHAR(1 BYTE), 
572
	"RBS_C_THREADSAFETY" VARCHAR2(4000 BYTE), 
573
	"RBS_S_RET_VALS" CHAR(1 BYTE), 
574
	"RBS_C_RET_VALS" VARCHAR2(4000 BYTE), 
575
	"RBS_S_CORR_ERR_HANDLING" CHAR(1 BYTE), 
576
	"RBS_C_CORR_ERR_HANDLING" VARCHAR2(4000 BYTE), 
577
	"RBS_S_SQL_STD" CHAR(1 BYTE), 
578
	"RBS_C_SQL_STD" VARCHAR2(4000 BYTE), 
579
	"MNT_S_EXT_REF" CHAR(1 BYTE), 
580
	"MNT_C_EXT_REF" VARCHAR2(4000 BYTE), 
581
	"MNT_S_CLASS_SIZE" CHAR(1 BYTE), 
582
	"MNT_C_CLASS_SIZE" VARCHAR2(4000 BYTE), 
583
	"MNT_S_METHOD_SIZE" CHAR(1 BYTE), 
584
	"MNT_C_METHOD_SIZE" VARCHAR2(4000 BYTE), 
585
	"MNT_S_APPROP_COMM" CHAR(1 BYTE), 
586
	"MNT_C_APPROP_COMM" VARCHAR2(4000 BYTE), 
587
	"MNT_S_IDENT_NAME_STD" CHAR(1 BYTE), 
588
	"MNT_C_IDENT_NAME_STD" VARCHAR2(4000 BYTE), 
589
	"MNT_S_SWITCH_HAVE_DEFAULTS" CHAR(1 BYTE), 
590
	"MNT_C_SWITCH_HAVE_DEFAULTS" VARCHAR2(4000 BYTE), 
591
	"MNT_S_NO_LIT_NUM" CHAR(1 BYTE), 
592
	"MNT_C_NO_LIT_NUM" VARCHAR2(4000 BYTE), 
593
	"MNT_S_NO_DEAD_CODE" CHAR(1 BYTE), 
594
	"MNT_C_NO_DEAD_CODE" VARCHAR2(4000 BYTE), 
595
	"DEI_S_STD_DES_PATT" CHAR(1 BYTE), 
596
	"DEI_C_STD_DES_PATT" VARCHAR2(4000 BYTE), 
597
	"DEI_S_APPROP_ALGOR" CHAR(1 BYTE), 
598
	"DEI_C_APPROP_ALGOR" VARCHAR2(4000 BYTE), 
599
	"DEI_S_APPROP_OBJ" CHAR(1 BYTE), 
600
	"DEI_C_APPROP_OBJ" VARCHAR2(4000 BYTE), 
601
	"DEI_S_APPROP_ERR_MSG" CHAR(1 BYTE), 
602
	"DEI_C_APPROP_ERR_MSG" VARCHAR2(4000 BYTE), 
603
	"DEI_S_STD_FRAMEW_COMP" CHAR(1 BYTE), 
604
	"DEI_C_STD_FRAMEW_COMP" VARCHAR2(4000 BYTE), 
605
	"DEI_S_APPROP_LOGGING" CHAR(1 BYTE), 
606
	"DEI_C_APPROP_LOGGING" VARCHAR2(4000 BYTE)
607
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 608
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
609
 NOCOMPRESS LOGGING
5172 dpurdie 610
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 611
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
612
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
613
  TABLESPACE "RELEASE_MANAGER_DATA" ;
614
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "RM_READONLY";
615
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "MS_READONLY";
5892 dpurdie 616
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "DM_READONLY";
617
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 618
--------------------------------------------------------
619
--  DDL for Table CODE_REVIEW_URL
620
--------------------------------------------------------
621
 
5172 dpurdie 622
  CREATE TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" 
4040 dpurdie 623
   (	"CR_ID" NUMBER, 
624
	"PV_ID" NUMBER, 
625
	"PROJ_ID" NUMBER, 
5172 dpurdie 626
	"URL" VARCHAR2(4000 BYTE), 
627
	"REASON" VARCHAR2(4000 BYTE), 
4040 dpurdie 628
	"DATE_OF_REVIEW" DATE, 
629
	"LAST_MODIFIED" DATE
5172 dpurdie 630
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 631
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
632
 NOCOMPRESS LOGGING
5172 dpurdie 633
  STORAGE(INITIAL 983040 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 634
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
635
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
636
  TABLESPACE "RELEASE_MANAGER_DATA" ;
637
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEW_URL" TO "RM_READONLY";
638
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEW_URL" TO "MS_READONLY";
5892 dpurdie 639
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEW_URL" TO "DM_READONLY";
4040 dpurdie 640
--------------------------------------------------------
4585 dpurdie 641
--  DDL for Table CQ_HISTORY
642
--------------------------------------------------------
643
 
5172 dpurdie 644
  CREATE TABLE "RELEASE_MANAGER"."CQ_HISTORY" 
4585 dpurdie 645
   (	"DBID" NUMBER(10,0), 
646
	"ENTITY_DBID" NUMBER(10,0), 
647
	"ENTITYDEF_ID" NUMBER(10,0), 
648
	"ENTITYDEF_NAME" VARCHAR2(30 CHAR), 
649
	"ACTION_TIMESTAMP" DATE, 
650
	"USER_NAME" VARCHAR2(30 CHAR), 
651
	"ACTION_NAME" VARCHAR2(30 CHAR), 
652
	"OLD_STATE" VARCHAR2(30 CHAR), 
653
	"NEW_STATE" VARCHAR2(30 CHAR), 
654
	"EXPIRED_TIMESTAMP" DATE
5172 dpurdie 655
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 656
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
657
 NOCOMPRESS LOGGING
5172 dpurdie 658
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 659
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
660
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
661
  TABLESPACE "RELEASE_MANAGER_DATA" ;
662
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "RM_READONLY";
663
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "MS_READONLY";
5892 dpurdie 664
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "DM_READONLY";
665
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "DEPLOYMENT_MANAGER";
666
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "ACCESS_MANAGER";
4585 dpurdie 667
--------------------------------------------------------
4040 dpurdie 668
--  DDL for Table CQ_ISSUES
669
--------------------------------------------------------
670
 
5172 dpurdie 671
  CREATE TABLE "RELEASE_MANAGER"."CQ_ISSUES" 
4040 dpurdie 672
   (	"PV_ID" NUMBER, 
673
	"ISS_DB" NUMBER, 
674
	"ISS_ID" NUMBER, 
675
	"ISS_STATE" NUMBER, 
676
	"MOD_DATE" DATE, 
5172 dpurdie 677
	"NOTES" VARCHAR2(255 BYTE)
678
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 679
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
680
 NOCOMPRESS LOGGING
5172 dpurdie 681
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 682
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
683
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
684
  TABLESPACE "RELEASE_MANAGER_DATA" ;
685
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "RM_READONLY";
686
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "MS_READONLY";
5892 dpurdie 687
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "DM_READONLY";
688
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "RELEASE_MANAGER_READ";
689
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "DEPLOYMENT_MANAGER";
4585 dpurdie 690
--------------------------------------------------------
691
--  DDL for Table CQ_SOFTWARE_ISSUE
692
--------------------------------------------------------
693
 
5172 dpurdie 694
  CREATE TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" 
4585 dpurdie 695
   (	"RATL_MASTERSHIP" NUMBER(10,0), 
696
	"DBID" NUMBER(10,0), 
697
	"IS_ACTIVE" NUMBER(10,0), 
698
	"ID" VARCHAR2(13 CHAR), 
699
	"STATE" NUMBER(10,0), 
700
	"VERSION" NUMBER(10,0), 
701
	"LOCK_VERSION" NUMBER(10,0), 
702
	"LOCKED_BY" NUMBER(10,0), 
703
	"IS_DUPLICATE" NUMBER(10,0), 
704
	"UNDUPLICATE_STATE" VARCHAR2(50 CHAR), 
705
	"HEADLINE" VARCHAR2(150 CHAR), 
706
	"DESCRIPTION" CLOB, 
707
	"PRIORITY" VARCHAR2(50 CHAR), 
708
	"SUBMITTER" NUMBER(10,0), 
709
	"SUBMIT_DATE" DATE, 
710
	"OWNER" NUMBER(10,0), 
711
	"APPROVER" NUMBER(10,0), 
712
	"NOTE_ENTRY" CLOB, 
713
	"NOTES_LOG" CLOB, 
714
	"RESOLUTION_DATE" DATE, 
715
	"ISSUE_TYPE" VARCHAR2(50 CHAR), 
716
	"PACKAGE_REF" VARCHAR2(50 CHAR), 
717
	"SOLUTION_APPROVED_DATE" DATE, 
718
	"CLOSE_DATE" DATE, 
719
	"BUILD_NUMBER" VARCHAR2(50 CHAR), 
720
	"NEW_NUM" VARCHAR2(50 CHAR), 
721
	"FOR_INFORMATION" CLOB, 
722
	"PROP_SOL_DATE" DATE, 
723
	"ARTIFACTS_TO_BE_UPDATED_1" CLOB, 
724
	"ISSUE_ID" NUMBER(10,0), 
725
	"SOLUTION_DATE" DATE, 
726
	"KPI_SOLUTION_DATE" DATE, 
727
	"TITLE" VARCHAR2(80 CHAR), 
728
	"PROJECT" VARCHAR2(50 CHAR), 
729
	"ORIGINATING_AREA" VARCHAR2(50 CHAR), 
730
	"ESTIMATED_TIME_INHOURS" NUMBER(10,0), 
731
	"RELEASE_PART1" NUMBER(10,0), 
732
	"RELEASE_PART2" NUMBER(10,0), 
733
	"RELEASE_PART3" NUMBER(10,0), 
734
	"SOLUTION_RELEASE_PART1" NUMBER(10,0), 
735
	"SOLUTION_RELEASE_PART2" NUMBER(10,0), 
736
	"SOLUTION_RELEASE_PART3" NUMBER(10,0), 
737
	"ORIGINAL_IMPLEMENT_DATE" DATE, 
738
	"ISSUE_LABEL" VARCHAR2(50 CHAR), 
739
	"PRODUCT" VARCHAR2(50 CHAR), 
740
	"ORIGIN" VARCHAR2(50 CHAR), 
741
	"CLONE_NOTE" CLOB, 
742
	"SOLUTION_LABEL" VARCHAR2(50 CHAR), 
743
	"REQUIRED_BY" DATE, 
744
	"ITERATION_AFFECTED" VARCHAR2(50 CHAR), 
745
	"MERGE_OLD_ID" VARCHAR2(150 CHAR), 
746
	"COMMENTS" CLOB, 
747
	"CHANGE_CONTROL" VARCHAR2(50 CHAR), 
748
	"MERGE_COMMENTS" CLOB, 
749
	"MERGE_CHANGE_CONTROL" VARCHAR2(50 CHAR), 
750
	"AWAITING_INFO_DESC" CLOB, 
751
	"REQUEST_CLOSE_DESC" CLOB, 
752
	"ROOT_CAUSE" VARCHAR2(50 CHAR), 
753
	"FLAGA" VARCHAR2(50 CHAR), 
754
	"FLAGB" VARCHAR2(50 CHAR), 
755
	"FLAGC" VARCHAR2(50 CHAR), 
756
	"SCHEDULED_RELEASE" VARCHAR2(60 CHAR), 
757
	"SEVERITY" VARCHAR2(50 CHAR), 
758
	"CUSTOM_FIELD_01" CLOB, 
759
	"CUSTOM_FIELD_02" CLOB, 
760
	"CUSTOM_FIELD_03" CLOB, 
761
	"CUSTOMER_REFERENCE" VARCHAR2(254 CHAR), 
762
	"TEAMLEADER" NUMBER(10,0), 
763
	"WIP" CLOB, 
764
	"RELEASEINFO" CLOB, 
765
	"SBOM" VARCHAR2(254 CHAR), 
766
	"NEW_EXTERNAL_NOTE" CLOB, 
767
	"EXTERNAL_NOTE_LOG" CLOB, 
768
	"CUSTOMER_REFERENCE_2" VARCHAR2(50 CHAR), 
769
	"CUSTOMER_REFERENCE_3" VARCHAR2(50 CHAR), 
770
	"CUSTOMER_REFERENCE_4" VARCHAR2(50 CHAR), 
771
	"CUSTOMER_REFERENCE_5" VARCHAR2(50 CHAR), 
772
	"TEST_CASES" CLOB, 
773
	"INTEGRATION_NOTES" CLOB, 
774
	"UPDATED_DESIGN_NOTES" VARCHAR2(50 CHAR), 
775
	"RELATED_DATABASE_PATCHES" VARCHAR2(50 CHAR), 
776
	"AFFECTED_PACKAGES" VARCHAR2(50 CHAR), 
777
	"CODEREVIEW_REFERENCE" CLOB, 
778
	"RISK" VARCHAR2(50 CHAR), 
779
	"DEPENDANT_DEVIS" VARCHAR2(50 CHAR), 
780
	"CUSTOM_FIELD_04" CLOB, 
781
	"CUSTOM_FIELD_05" CLOB, 
782
	"ITERATION_FOUND" VARCHAR2(50 CHAR)
5172 dpurdie 783
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 784
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
785
 NOCOMPRESS LOGGING
5172 dpurdie 786
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 787
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
788
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
789
  TABLESPACE "RELEASE_MANAGER_DATA" 
5172 dpurdie 790
 LOB ("DESCRIPTION") STORE AS BASICFILE (
6031 dpurdie 791
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 792
  NOCACHE LOGGING 
793
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 794
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
795
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 796
 LOB ("NOTE_ENTRY") STORE AS BASICFILE (
6031 dpurdie 797
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 798
  NOCACHE LOGGING 
799
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 800
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
801
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 802
 LOB ("NOTES_LOG") STORE AS BASICFILE (
6031 dpurdie 803
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 804
  NOCACHE LOGGING 
805
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 806
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
807
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 808
 LOB ("FOR_INFORMATION") STORE AS BASICFILE (
6031 dpurdie 809
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 810
  NOCACHE LOGGING 
811
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 812
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
813
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 814
 LOB ("ARTIFACTS_TO_BE_UPDATED_1") STORE AS BASICFILE (
6031 dpurdie 815
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 816
  NOCACHE LOGGING 
817
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 818
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
819
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 820
 LOB ("CLONE_NOTE") STORE AS BASICFILE (
6031 dpurdie 821
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 822
  NOCACHE LOGGING 
823
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 824
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
825
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 826
 LOB ("COMMENTS") STORE AS BASICFILE (
6031 dpurdie 827
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 828
  NOCACHE LOGGING 
829
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 830
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
831
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 832
 LOB ("MERGE_COMMENTS") STORE AS BASICFILE (
6031 dpurdie 833
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 834
  NOCACHE LOGGING 
835
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 836
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
837
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 838
 LOB ("AWAITING_INFO_DESC") STORE AS BASICFILE (
6031 dpurdie 839
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 840
  NOCACHE LOGGING 
841
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 842
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
843
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 844
 LOB ("REQUEST_CLOSE_DESC") STORE AS BASICFILE (
6031 dpurdie 845
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 846
  NOCACHE LOGGING 
847
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 848
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
849
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 850
 LOB ("CUSTOM_FIELD_01") STORE AS BASICFILE (
6031 dpurdie 851
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 852
  NOCACHE LOGGING 
853
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 854
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
855
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 856
 LOB ("CUSTOM_FIELD_02") STORE AS BASICFILE (
6031 dpurdie 857
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 858
  NOCACHE LOGGING 
859
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 860
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
861
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 862
 LOB ("CUSTOM_FIELD_03") STORE AS BASICFILE (
6031 dpurdie 863
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 864
  NOCACHE LOGGING 
865
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 866
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
867
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 868
 LOB ("WIP") STORE AS BASICFILE (
6031 dpurdie 869
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 870
  NOCACHE LOGGING 
871
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 872
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
873
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 874
 LOB ("RELEASEINFO") STORE AS BASICFILE (
6031 dpurdie 875
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 876
  NOCACHE LOGGING 
877
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 878
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
879
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 880
 LOB ("NEW_EXTERNAL_NOTE") STORE AS BASICFILE (
6031 dpurdie 881
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 882
  NOCACHE LOGGING 
883
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 884
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
885
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 886
 LOB ("EXTERNAL_NOTE_LOG") STORE AS BASICFILE (
6031 dpurdie 887
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 888
  NOCACHE LOGGING 
889
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 890
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
891
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 892
 LOB ("TEST_CASES") STORE AS BASICFILE (
6031 dpurdie 893
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 894
  NOCACHE LOGGING 
895
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 896
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
897
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 898
 LOB ("INTEGRATION_NOTES") STORE AS BASICFILE (
6031 dpurdie 899
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 900
  NOCACHE LOGGING 
901
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 902
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
903
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 904
 LOB ("CODEREVIEW_REFERENCE") STORE AS BASICFILE (
6031 dpurdie 905
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 906
  NOCACHE LOGGING 
907
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 908
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
909
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 910
 LOB ("CUSTOM_FIELD_04") STORE AS BASICFILE (
6031 dpurdie 911
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 912
  NOCACHE LOGGING 
913
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 914
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
915
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 916
 LOB ("CUSTOM_FIELD_05") STORE AS BASICFILE (
6031 dpurdie 917
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 918
  NOCACHE LOGGING 
919
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 920
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
921
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
922
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "RM_READONLY";
923
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "MS_READONLY";
5892 dpurdie 924
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "DM_READONLY";
925
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "DEPLOYMENT_MANAGER";
926
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "ACCESS_MANAGER";
4585 dpurdie 927
--------------------------------------------------------
928
--  DDL for Table CQ_STATEDEF
929
--------------------------------------------------------
930
 
5172 dpurdie 931
  CREATE TABLE "RELEASE_MANAGER"."CQ_STATEDEF" 
4585 dpurdie 932
   (	"ID" NUMBER(10,0), 
933
	"PACKAGE_OWNERSHIP" NUMBER(10,0), 
934
	"NAME" VARCHAR2(255 CHAR), 
935
	"ENTITYDEF_ID" NUMBER(10,0), 
936
	"ORDINAL" NUMBER(10,0)
5172 dpurdie 937
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 938
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
939
 NOCOMPRESS LOGGING
5172 dpurdie 940
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 941
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
942
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
943
  TABLESPACE "RELEASE_MANAGER_DATA" ;
944
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "RM_READONLY";
945
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "MS_READONLY";
5892 dpurdie 946
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "DM_READONLY";
947
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "DEPLOYMENT_MANAGER";
948
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "ACCESS_MANAGER";
4585 dpurdie 949
--------------------------------------------------------
950
--  DDL for Table CQ_USERS
951
--------------------------------------------------------
952
 
5172 dpurdie 953
  CREATE TABLE "RELEASE_MANAGER"."CQ_USERS" 
954
   (	"DBID" VARCHAR2(8 BYTE), 
955
	"LOGIN_NAME" VARCHAR2(17 BYTE), 
956
	"FULLNAME" VARCHAR2(30 BYTE)
957
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 958
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
959
 NOCOMPRESS LOGGING
5172 dpurdie 960
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 961
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
962
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
963
  TABLESPACE "RELEASE_MANAGER_DATA" ;
964
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "RM_READONLY";
965
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "MS_READONLY";
5892 dpurdie 966
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "DM_READONLY";
967
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "DEPLOYMENT_MANAGER";
968
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "ACCESS_MANAGER";
4040 dpurdie 969
--------------------------------------------------------
970
--  DDL for Table DAEMON_ACTION_LOG
971
--------------------------------------------------------
972
 
5172 dpurdie 973
  CREATE TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" 
4040 dpurdie 974
   (	"USER_ID" NUMBER, 
975
	"ACTION_DATETIME" DATE, 
976
	"RCON_ID" NUMBER, 
5172 dpurdie 977
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 978
	"ACTTYPE_ID" NUMBER
5172 dpurdie 979
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 980
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
981
 NOCOMPRESS LOGGING
5172 dpurdie 982
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 983
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
984
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
985
  TABLESPACE "RELEASE_MANAGER_DATA" ;
986
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_ACTION_LOG" TO "RM_READONLY";
987
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_ACTION_LOG" TO "MS_READONLY";
5892 dpurdie 988
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_ACTION_LOG" TO "DM_READONLY";
4040 dpurdie 989
--------------------------------------------------------
990
--  DDL for Table DAEMON_INSTRUCTIONS
991
--------------------------------------------------------
992
 
5172 dpurdie 993
  CREATE TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" 
4040 dpurdie 994
   (	"DAEMON_INSTRUCTIONS_ID" NUMBER, 
995
	"OP_CODE" NUMBER(*,0), 
996
	"RTAG_ID" NUMBER, 
997
	"PV_ID" NUMBER, 
998
	"SCHEDULED_DATETIME" DATE, 
999
	"REPEAT_SECS" NUMBER(*,0), 
1000
	"ADDED_DATETIME" DATE, 
1001
	"USER_ID" NUMBER, 
5172 dpurdie 1002
	"IN_PROGRESS" CHAR(1 BYTE)
1003
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1004
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1005
 NOCOMPRESS LOGGING
5172 dpurdie 1006
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1007
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1008
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1009
  TABLESPACE "RELEASE_MANAGER_DATA" ;
4040 dpurdie 1010
 
5172 dpurdie 1011
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."OP_CODE" IS 'The instruction op-code';
1012
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."SCHEDULED_DATETIME" IS 'The datetime after which the instruction can be carried out.';
1013
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."REPEAT_SECS" IS 'The number of seconds to add to scheduled_datetime when instruction is repeating';
1014
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."ADDED_DATETIME" IS 'The datetime the instruction was added to the table - informational only';
1015
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."USER_ID" IS 'The user who added the instruction to the table  - informational only';
6031 dpurdie 1016
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" TO "RM_READONLY";
1017
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" TO "MS_READONLY";
5892 dpurdie 1018
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" TO "DM_READONLY";
4040 dpurdie 1019
--------------------------------------------------------
1020
--  DDL for Table DASH_BOARD
1021
--------------------------------------------------------
1022
 
5172 dpurdie 1023
  CREATE TABLE "RELEASE_MANAGER"."DASH_BOARD" 
4040 dpurdie 1024
   (	"PROJ_ID" NUMBER, 
1025
	"RTAG_ID" NUMBER, 
1026
	"LAST_BUILD_TIME" DATE, 
1027
	"AUTOMATED_PACKAGES" NUMBER, 
1028
	"TOTAL_PACKAGES" NUMBER
5172 dpurdie 1029
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1030
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1031
 NOCOMPRESS LOGGING
5172 dpurdie 1032
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1033
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1034
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1035
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1036
  GRANT SELECT ON "RELEASE_MANAGER"."DASH_BOARD" TO "RM_READONLY";
1037
  GRANT SELECT ON "RELEASE_MANAGER"."DASH_BOARD" TO "MS_READONLY";
5892 dpurdie 1038
  GRANT SELECT ON "RELEASE_MANAGER"."DASH_BOARD" TO "DM_READONLY";
4040 dpurdie 1039
--------------------------------------------------------
1040
--  DDL for Table DEPRECATED_PACKAGES
1041
--------------------------------------------------------
1042
 
5172 dpurdie 1043
  CREATE TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" 
4040 dpurdie 1044
   (	"RTAG_ID" NUMBER, 
1045
	"PKG_ID" NUMBER, 
5172 dpurdie 1046
	"COMMENTS" VARCHAR2(4000 BYTE), 
1047
	"V_EXT" VARCHAR2(50 BYTE)
1048
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1049
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1050
 NOCOMPRESS LOGGING
5172 dpurdie 1051
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1052
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1053
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1054
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1055
  GRANT SELECT ON "RELEASE_MANAGER"."DEPRECATED_PACKAGES" TO "RM_READONLY";
1056
  GRANT SELECT ON "RELEASE_MANAGER"."DEPRECATED_PACKAGES" TO "MS_READONLY";
5892 dpurdie 1057
  GRANT SELECT ON "RELEASE_MANAGER"."DEPRECATED_PACKAGES" TO "DM_READONLY";
4040 dpurdie 1058
--------------------------------------------------------
1059
--  DDL for Table DO_NOT_RIPPLE
1060
--------------------------------------------------------
1061
 
5172 dpurdie 1062
  CREATE TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" 
4040 dpurdie 1063
   (	"RTAG_ID" NUMBER, 
1064
	"PV_ID" NUMBER, 
1065
	"ROOT_PV_ID" NUMBER, 
5172 dpurdie 1066
	"ROOT_CAUSE" VARCHAR2(50 BYTE), 
1067
	"ROOT_FILE" VARCHAR2(100 BYTE)
1068
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1069
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1070
 NOCOMPRESS LOGGING
5172 dpurdie 1071
  STORAGE(INITIAL 655360 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1072
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1073
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1074
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1075
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "RM_READONLY";
1076
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "MS_READONLY";
5892 dpurdie 1077
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "DM_READONLY";
1078
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "RELEASE_MANAGER_READ";
1079
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1080
--------------------------------------------------------
1081
--  DDL for Table GBE_MACHTYPE
1082
--------------------------------------------------------
1083
 
5172 dpurdie 1084
  CREATE TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" 
4040 dpurdie 1085
   (	"GBE_ID" NUMBER, 
5172 dpurdie 1086
	"GBE_VALUE" VARCHAR2(20 BYTE), 
4040 dpurdie 1087
	"BM_ID" NUMBER
5172 dpurdie 1088
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1089
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1090
 NOCOMPRESS LOGGING
5172 dpurdie 1091
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1092
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1093
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1094
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1095
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "RM_READONLY";
1096
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "MS_READONLY";
5892 dpurdie 1097
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "DM_READONLY";
1098
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1099
--------------------------------------------------------
1100
--  DDL for Table IGNORE_WARNINGS
1101
--------------------------------------------------------
1102
 
5172 dpurdie 1103
  CREATE TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" 
4040 dpurdie 1104
   (	"RTAG_ID" NUMBER, 
1105
	"PV_ID" NUMBER, 
1106
	"DPV_ID" NUMBER, 
5172 dpurdie 1107
	"IS_PATCH_IGNORE" CHAR(1 BYTE)
1108
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1109
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1110
 NOCOMPRESS LOGGING
5172 dpurdie 1111
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1112
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1113
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1114
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1115
  GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "RM_READONLY";
1116
  GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "MS_READONLY";
5892 dpurdie 1117
  GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "DM_READONLY";
1118
  GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1119
--------------------------------------------------------
1120
--  DDL for Table JIRA_ISSUES
1121
--------------------------------------------------------
1122
 
5172 dpurdie 1123
  CREATE TABLE "RELEASE_MANAGER"."JIRA_ISSUES" 
4040 dpurdie 1124
   (	"PV_ID" NUMBER, 
5172 dpurdie 1125
	"ISS_KEY" VARCHAR2(4000 BYTE), 
4040 dpurdie 1126
	"DATE_TIME_STAMP" DATE
5172 dpurdie 1127
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1128
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1129
 NOCOMPRESS LOGGING
5172 dpurdie 1130
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1131
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1132
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1133
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1134
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "RM_READONLY";
1135
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "MS_READONLY";
5892 dpurdie 1136
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "DM_READONLY";
1137
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "RELEASE_MANAGER_READ";
1138
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1139
--------------------------------------------------------
1140
--  DDL for Table LICENCES
1141
--------------------------------------------------------
1142
 
5172 dpurdie 1143
  CREATE TABLE "RELEASE_MANAGER"."LICENCES" 
4040 dpurdie 1144
   (	"LICENCE" NUMBER, 
5172 dpurdie 1145
	"NAME" VARCHAR2(50 BYTE)
1146
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1147
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1148
 NOCOMPRESS LOGGING
5172 dpurdie 1149
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1150
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1151
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1152
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1153
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCES" TO "RM_READONLY";
1154
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCES" TO "MS_READONLY";
5892 dpurdie 1155
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCES" TO "DM_READONLY";
4040 dpurdie 1156
--------------------------------------------------------
1157
--  DDL for Table LICENCING
1158
--------------------------------------------------------
1159
 
5172 dpurdie 1160
  CREATE TABLE "RELEASE_MANAGER"."LICENCING" 
4040 dpurdie 1161
   (	"PV_ID" NUMBER, 
1162
	"LICENCE" NUMBER
5172 dpurdie 1163
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1164
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1165
 NOCOMPRESS LOGGING
5172 dpurdie 1166
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1167
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1168
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1169
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1170
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCING" TO "RM_READONLY";
1171
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCING" TO "MS_READONLY";
5892 dpurdie 1172
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCING" TO "DM_READONLY";
4040 dpurdie 1173
--------------------------------------------------------
5384 dpurdie 1174
--  DDL for Table LXR_STATE
1175
--------------------------------------------------------
1176
 
1177
  CREATE TABLE "RELEASE_MANAGER"."LXR_STATE" 
1178
   (	"RTAG_ID" NUMBER, 
1179
	"LXRSERVER" CHAR(1 BYTE) DEFAULT 'N'
1180
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1181
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1182
 NOCOMPRESS LOGGING
5384 dpurdie 1183
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1184
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1185
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1186
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5384 dpurdie 1187
 
1188
   COMMENT ON COLUMN "RELEASE_MANAGER"."LXR_STATE"."RTAG_ID" IS 'Link to Release_Tags';
1189
   COMMENT ON COLUMN "RELEASE_MANAGER"."LXR_STATE"."LXRSERVER" IS 'Written by server - I:Indexed, C:Closing, N:Not Known. May be InProgress.';
1190
   COMMENT ON TABLE "RELEASE_MANAGER"."LXR_STATE"  IS 'Contains data updated by the LXR server.
1191
This table is writable by a user known to the LXR Server';
6031 dpurdie 1192
  GRANT UPDATE ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
1193
  GRANT SELECT ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
1194
  GRANT INSERT ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
1195
  GRANT DELETE ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
1196
  GRANT ALTER ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
5384 dpurdie 1197
--------------------------------------------------------
4040 dpurdie 1198
--  DDL for Table MEMBERS_GROUP
1199
--------------------------------------------------------
1200
 
5172 dpurdie 1201
  CREATE TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" 
4040 dpurdie 1202
   (	"GROUP_EMAIL_ID" NUMBER, 
1203
	"USER_ID" NUMBER
5172 dpurdie 1204
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1205
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1206
 NOCOMPRESS LOGGING
5172 dpurdie 1207
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1208
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1209
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1210
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1211
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "RM_READONLY";
1212
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "MS_READONLY";
5892 dpurdie 1213
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "DM_READONLY";
1214
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1215
--------------------------------------------------------
1216
--  DDL for Table MESSAGE_BOARD
1217
--------------------------------------------------------
1218
 
5172 dpurdie 1219
  CREATE TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" 
4040 dpurdie 1220
   (	"MSG_ID" NUMBER, 
5172 dpurdie 1221
	"MSG_DETAILS" VARCHAR2(2000 BYTE), 
4040 dpurdie 1222
	"SUBMITION_DATE" DATE, 
1223
	"EXPIRY_DATE" DATE, 
1224
	"DUE_DATE" DATE
5172 dpurdie 1225
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1226
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1227
 NOCOMPRESS LOGGING
5172 dpurdie 1228
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1229
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1230
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1231
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1232
  GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "RM_READONLY";
1233
  GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "MS_READONLY";
5892 dpurdie 1234
  GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "DM_READONLY";
1235
  GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1236
--------------------------------------------------------
1237
--  DDL for Table MICROSOFTDTPROPERTIES
1238
--------------------------------------------------------
1239
 
5172 dpurdie 1240
  CREATE TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" 
4040 dpurdie 1241
   (	"ID" NUMBER, 
1242
	"OBJECTID" NUMBER, 
5172 dpurdie 1243
	"PROPERTY" VARCHAR2(64 BYTE), 
1244
	"VALUE" VARCHAR2(255 BYTE), 
4040 dpurdie 1245
	"LVALUE" LONG RAW, 
1246
	"VERSION" NUMBER DEFAULT (0)
5172 dpurdie 1247
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1248
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1249
 NOCOMPRESS LOGGING
5172 dpurdie 1250
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1251
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1252
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1253
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1254
  GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "RM_READONLY";
1255
  GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "MS_READONLY";
5892 dpurdie 1256
  GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "DM_READONLY";
1257
  GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1258
--------------------------------------------------------
1259
--  DDL for Table NOTE_MANAGER
1260
--------------------------------------------------------
1261
 
5172 dpurdie 1262
  CREATE TABLE "RELEASE_MANAGER"."NOTE_MANAGER" 
1263
   (	"NID" VARCHAR2(30 BYTE), 
1264
	"LAST_USER" VARCHAR2(20 BYTE), 
4040 dpurdie 1265
	"LAST_DATE" DATE, 
5172 dpurdie 1266
	"DESCRIPTION" VARCHAR2(4000 BYTE)
1267
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1268
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1269
 NOCOMPRESS LOGGING
5172 dpurdie 1270
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1271
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1272
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1273
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1274
  GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "RM_READONLY";
1275
  GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "MS_READONLY";
5892 dpurdie 1276
  GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "DM_READONLY";
1277
  GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1278
--------------------------------------------------------
1279
--  DDL for Table NOTIFICATION_HISTORY
1280
--------------------------------------------------------
1281
 
5172 dpurdie 1282
  CREATE TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" 
4040 dpurdie 1283
   (	"RTAG_ID" NUMBER, 
1284
	"PV_ID" NUMBER, 
1285
	"USER_ID" NUMBER, 
1286
	"DATE_TIME_STAMP" DATE
5172 dpurdie 1287
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1288
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1289
 NOCOMPRESS LOGGING
5172 dpurdie 1290
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1291
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1292
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1293
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1294
  GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "RM_READONLY";
1295
  GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "MS_READONLY";
5892 dpurdie 1296
  GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "DM_READONLY";
1297
  GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1298
--------------------------------------------------------
1299
--  DDL for Table PACKAGES
1300
--------------------------------------------------------
1301
 
5172 dpurdie 1302
  CREATE TABLE "RELEASE_MANAGER"."PACKAGES" 
4040 dpurdie 1303
   (	"PKG_ID" NUMBER, 
5172 dpurdie 1304
	"PKG_NAME" VARCHAR2(255 BYTE), 
1305
	"SUNOS_ELECTRONIC_NAME" VARCHAR2(255 BYTE), 
1306
	"WIN_ELECTRONIC_NAME" VARCHAR2(255 BYTE), 
1307
	"DEFAULT_PEGGED" CHAR(1 BYTE), 
1308
	"DEFAULT_ADVISORY_RIPPLE" CHAR(1 BYTE)
1309
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1310
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1311
 NOCOMPRESS LOGGING
5172 dpurdie 1312
  STORAGE(INITIAL 196608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1313
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1314
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1315
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 1316
 
1317
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGES"."DEFAULT_PEGGED" IS 'Default pegged state for packages that are added to a release.';
1318
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGES"."DEFAULT_ADVISORY_RIPPLE" IS 'Default advisiory ripple state for packages that are added to a release.';
6031 dpurdie 1319
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "RM_READONLY";
1320
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "MS_READONLY";
5892 dpurdie 1321
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "DM_READONLY";
1322
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "RELEASE_MANAGER_READ";
1323
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER_READ";
6031 dpurdie 1324
  GRANT UPDATE ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";
1325
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";
1326
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";
1327
  GRANT DELETE ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1328
--------------------------------------------------------
1329
--  DDL for Table PACKAGE_BUILD_ENV
1330
--------------------------------------------------------
1331
 
5172 dpurdie 1332
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" 
4040 dpurdie 1333
   (	"PV_ID" NUMBER, 
1334
	"BE_ID" NUMBER, 
1335
	"BUILD_TYPE" NUMBER
5172 dpurdie 1336
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1337
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1338
 NOCOMPRESS LOGGING
5172 dpurdie 1339
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1340
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1341
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1342
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1343
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "RM_READONLY";
1344
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "MS_READONLY";
5892 dpurdie 1345
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DM_READONLY";
1346
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "RELEASE_MANAGER_READ";
6031 dpurdie 1347
  GRANT UPDATE ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";
1348
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";
1349
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";
1350
  GRANT DELETE ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1351
--------------------------------------------------------
1352
--  DDL for Table PACKAGE_BUILD_INFO
1353
--------------------------------------------------------
1354
 
5172 dpurdie 1355
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" 
4040 dpurdie 1356
   (	"PV_ID" NUMBER, 
1357
	"BM_ID" NUMBER, 
1358
	"BSA_ID" NUMBER
5172 dpurdie 1359
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1360
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1361
 NOCOMPRESS LOGGING
5172 dpurdie 1362
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1363
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1364
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1365
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1366
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "RM_READONLY";
1367
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "MS_READONLY";
5892 dpurdie 1368
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "DM_READONLY";
1369
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1370
--------------------------------------------------------
1371
--  DDL for Table PACKAGE_DEPENDENCIES
1372
--------------------------------------------------------
1373
 
5172 dpurdie 1374
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" 
4040 dpurdie 1375
   (	"PV_ID" NUMBER, 
1376
	"DPV_ID" NUMBER, 
1377
	"PKG_ID" NUMBER, 
1378
	"DPKG_ID" NUMBER, 
5172 dpurdie 1379
	"BUILD_TYPE" CHAR(1 BYTE), 
4040 dpurdie 1380
	"DISPLAY_ORDER" NUMBER
5172 dpurdie 1381
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1382
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1383
 NOCOMPRESS LOGGING
5172 dpurdie 1384
  STORAGE(INITIAL 100663296 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1385
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1386
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1387
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5384 dpurdie 1388
 
1389
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."PV_ID" IS 'Package Version Identifier';
1390
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."DPV_ID" IS 'Depends on this package version';
1391
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."BUILD_TYPE" IS 'B:BuildPkgArchive, L:LinkPkgArchive';
6031 dpurdie 1392
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "RM_READONLY";
1393
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "MS_READONLY";
5892 dpurdie 1394
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "DM_READONLY";
1395
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "RELEASE_MANAGER_READ";
1396
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1397
--------------------------------------------------------
1398
--  DDL for Table PACKAGE_DOCUMENTS
1399
--------------------------------------------------------
1400
 
5172 dpurdie 1401
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" 
4040 dpurdie 1402
   (	"PV_ID" NUMBER, 
1403
	"TEST_ID" NUMBER, 
1404
	"DOC_ID" NUMBER, 
5172 dpurdie 1405
	"DOC_NUM" VARCHAR2(50 BYTE), 
1406
	"IS_LATEST" CHAR(1 BYTE)
1407
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1408
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1409
 NOCOMPRESS LOGGING
5172 dpurdie 1410
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1411
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1412
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1413
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1414
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "RM_READONLY";
1415
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "MS_READONLY";
5892 dpurdie 1416
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "DM_READONLY";
1417
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1418
--------------------------------------------------------
1419
--  DDL for Table PACKAGE_INTEREST
1420
--------------------------------------------------------
1421
 
5172 dpurdie 1422
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" 
4040 dpurdie 1423
   (	"PKG_ID" NUMBER, 
1424
	"PROJ_ID" NUMBER, 
1425
	"USER_ID" NUMBER
5172 dpurdie 1426
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1427
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1428
 NOCOMPRESS LOGGING
5172 dpurdie 1429
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1430
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1431
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1432
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1433
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_INTEREST" TO "RM_READONLY";
1434
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_INTEREST" TO "MS_READONLY";
5892 dpurdie 1435
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_INTEREST" TO "DM_READONLY";
4040 dpurdie 1436
--------------------------------------------------------
1437
--  DDL for Table PACKAGE_METRICS
1438
--------------------------------------------------------
1439
 
5172 dpurdie 1440
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" 
4040 dpurdie 1441
   (	"PV_ID" NUMBER, 
1442
	"BRANCHES" NUMBER, 
5172 dpurdie 1443
	"BRANCH_LIST" VARCHAR2(4000 BYTE), 
4040 dpurdie 1444
	"CODE_FILES" NUMBER, 
1445
	"IGNORED_FILES" NUMBER, 
1446
	"DIRECTORIES" NUMBER, 
1447
	"DIRECTORY_DEPTH" NUMBER, 
1448
	"TOTAL_FILES" NUMBER, 
1449
	"MAKEFILES" NUMBER, 
1450
	"BLANK_LINES" NUMBER, 
1451
	"CODE_LINES" NUMBER, 
1452
	"COMMENT_LINES" NUMBER, 
1453
	"CREATED_STAMP" DATE
5172 dpurdie 1454
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1455
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1456
 NOCOMPRESS LOGGING
5172 dpurdie 1457
  STORAGE(INITIAL 12582912 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1458
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1459
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1460
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1461
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_METRICS" TO "RM_READONLY";
1462
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_METRICS" TO "MS_READONLY";
5892 dpurdie 1463
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_METRICS" TO "DM_READONLY";
4040 dpurdie 1464
--------------------------------------------------------
1465
--  DDL for Table PACKAGE_PATCHES
1466
--------------------------------------------------------
1467
 
5172 dpurdie 1468
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" 
4040 dpurdie 1469
   (	"PV_ID" NUMBER, 
1470
	"PATCH_ID" NUMBER, 
1471
	"INSTALL_ORDER" NUMBER, 
1472
	"PATCH_OBSOLETED_BY" NUMBER
5172 dpurdie 1473
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1474
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1475
 NOCOMPRESS LOGGING
5172 dpurdie 1476
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1477
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1478
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1479
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1480
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "RM_READONLY";
1481
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "MS_READONLY";
5892 dpurdie 1482
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "DM_READONLY";
1483
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "RELEASE_MANAGER_READ";
1484
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1485
--------------------------------------------------------
1486
--  DDL for Table PACKAGE_PROCESSES
1487
--------------------------------------------------------
1488
 
5172 dpurdie 1489
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" 
4040 dpurdie 1490
   (	"PV_ID" NUMBER, 
1491
	"PROC_ID" NUMBER
5172 dpurdie 1492
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1493
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1494
 NOCOMPRESS LOGGING
5172 dpurdie 1495
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1496
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1497
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1498
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1499
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "RM_READONLY";
1500
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "MS_READONLY";
5892 dpurdie 1501
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DM_READONLY";
6031 dpurdie 1502
  GRANT UPDATE ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";
1503
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";
1504
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";
1505
  GRANT DELETE ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1506
--------------------------------------------------------
1507
--  DDL for Table PACKAGE_VERSIONS
1508
--------------------------------------------------------
1509
 
5172 dpurdie 1510
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" 
4040 dpurdie 1511
   (	"PV_ID" NUMBER, 
1512
	"PKG_ID" NUMBER, 
5172 dpurdie 1513
	"PKG_VERSION" VARCHAR2(50 BYTE), 
1514
	"DLOCKED" CHAR(1 BYTE), 
4040 dpurdie 1515
	"RELEASED_AT" NUMBER, 
1516
	"MODIFIED_STAMP" DATE, 
1517
	"MODIFIER_ID" NUMBER, 
1518
	"CREATED_STAMP" DATE, 
1519
	"CREATOR_ID" NUMBER, 
5172 dpurdie 1520
	"COMMENTS" VARCHAR2(4000 BYTE), 
1521
	"V_MM" VARCHAR2(50 BYTE), 
1522
	"V_NMM" VARCHAR2(50 BYTE), 
1523
	"V_EXT" VARCHAR2(50 BYTE), 
1524
	"PKG_LABEL" VARCHAR2(60 BYTE), 
1525
	"SRC_PATH" VARCHAR2(2000 BYTE), 
1526
	"PV_DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1527
	"OWNER_ID" NUMBER, 
5172 dpurdie 1528
	"PV_OVERVIEW" VARCHAR2(4000 BYTE), 
1529
	"IS_PATCH" CHAR(1 BYTE), 
4040 dpurdie 1530
	"LAST_PV_ID" NUMBER, 
5172 dpurdie 1531
	"RELEASE_NOTES_INFO" VARCHAR2(1000 BYTE), 
1532
	"IS_DEPLOYABLE" CHAR(1 BYTE), 
1533
	"IS_BUILD_ENV_REQUIRED" CHAR(1 BYTE), 
1534
	"IS_OBSOLETE" CHAR(1 BYTE), 
1535
	"OBSOLETE_COMMENTS" VARCHAR2(4000 BYTE), 
1536
	"BUILD_TYPE" CHAR(1 BYTE), 
1537
	"CHANGE_TYPE" CHAR(1 BYTE), 
1538
	"LINK" VARCHAR2(4000 BYTE), 
1539
	"PATCH_ELECTRONIC_NAME" VARCHAR2(4000 BYTE), 
4040 dpurdie 1540
	"BS_ID" NUMBER, 
5172 dpurdie 1541
	"IS_AUTOBUILDABLE" CHAR(1 BYTE), 
1542
	"SBOM_PRIORITY" CHAR(1 BYTE), 
4040 dpurdie 1543
	"RIPPLE_FIELD" CHAR(1 CHAR), 
1544
	"MAXIMUM_BUILD_TIME" NUMBER, 
5892 dpurdie 1545
	"BUILD_TIME" NUMBER, 
4040 dpurdie 1546
	"MAJOR_LIMIT" NUMBER(10,0), 
1547
	"MINOR_LIMIT" NUMBER(10,0), 
1548
	"PATCH_LIMIT" NUMBER(10,0), 
1549
	"BUILD_NUMBER_LIMIT" NUMBER(10,0), 
5384 dpurdie 1550
	"VCS_TYPE_ID" NUMBER, 
1551
	"PKG_IDEXT" VARCHAR2(70 BYTE)
5172 dpurdie 1552
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1553
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1554
 NOCOMPRESS LOGGING
5172 dpurdie 1555
  STORAGE(INITIAL 134217728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1556
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1557
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1558
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 1559
 
1560
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."RELEASED_AT" IS 'No longer used';
5892 dpurdie 1561
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."IS_DEPLOYABLE" IS 'null:No, NonNull:Yes Y:Yes';
6031 dpurdie 1562
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."BUILD_TYPE" IS 'A:Auto, M:Manual, U:UnBuildable';
5892 dpurdie 1563
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."IS_AUTOBUILDABLE" IS 'Y: Indicates that the package has been built on a build machine';
1564
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."BUILD_TIME" IS 'Duration of last build';
6031 dpurdie 1565
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "RM_READONLY";
1566
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "MS_READONLY";
5892 dpurdie 1567
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DM_READONLY";
1568
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "RELEASE_MANAGER_READ";
6031 dpurdie 1569
  GRANT UPDATE ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";
1570
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";
1571
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";
1572
  GRANT DELETE ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1573
--------------------------------------------------------
1574
--  DDL for Table PEGGED_VERSIONS
1575
--------------------------------------------------------
1576
 
5172 dpurdie 1577
  CREATE TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" 
4040 dpurdie 1578
   (	"RTAG_ID" NUMBER, 
1579
	"PV_ID" NUMBER
5172 dpurdie 1580
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1581
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1582
 NOCOMPRESS LOGGING
5172 dpurdie 1583
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1584
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1585
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1586
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1587
  GRANT SELECT ON "RELEASE_MANAGER"."PEGGED_VERSIONS" TO "RM_READONLY";
1588
  GRANT SELECT ON "RELEASE_MANAGER"."PEGGED_VERSIONS" TO "MS_READONLY";
5892 dpurdie 1589
  GRANT SELECT ON "RELEASE_MANAGER"."PEGGED_VERSIONS" TO "DM_READONLY";
4040 dpurdie 1590
--------------------------------------------------------
1591
--  DDL for Table PLANNED
1592
--------------------------------------------------------
1593
 
5172 dpurdie 1594
  CREATE TABLE "RELEASE_MANAGER"."PLANNED" 
4040 dpurdie 1595
   (	"RTAG_ID" NUMBER, 
1596
	"PV_ID" NUMBER, 
1597
	"VIEW_ID" NUMBER, 
5172 dpurdie 1598
	"OPERATION" CHAR(1 BYTE)
1599
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1600
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1601
 NOCOMPRESS LOGGING
5172 dpurdie 1602
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1603
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1604
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1605
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 1606
 
1607
   COMMENT ON COLUMN "RELEASE_MANAGER"."PLANNED"."OPERATION" IS 'A: Add existing version.
1608
 
6031 dpurdie 1609
S:Subtract existing Version.
5172 dpurdie 1610
 
1611
R:Add New Version';
1612
   COMMENT ON TABLE "RELEASE_MANAGER"."PLANNED"  IS 'This table contains WORK IN PROGRESS packages';
6031 dpurdie 1613
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "RM_READONLY";
1614
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "MS_READONLY";
5892 dpurdie 1615
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "DM_READONLY";
1616
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "RELEASE_MANAGER_READ";
1617
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1618
--------------------------------------------------------
1619
--  DDL for Table PLANNED_VERSIONS
1620
--------------------------------------------------------
1621
 
5172 dpurdie 1622
  CREATE TABLE "RELEASE_MANAGER"."PLANNED_VERSIONS" 
4040 dpurdie 1623
   (	"PKG_ID" NUMBER, 
5172 dpurdie 1624
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 1625
	"PLANNED_TIME" DATE
5172 dpurdie 1626
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1627
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1628
 NOCOMPRESS LOGGING
5172 dpurdie 1629
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1630
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1631
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1632
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1633
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED_VERSIONS" TO "RM_READONLY";
1634
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED_VERSIONS" TO "MS_READONLY";
5892 dpurdie 1635
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED_VERSIONS" TO "DM_READONLY";
4040 dpurdie 1636
--------------------------------------------------------
1637
--  DDL for Table PLATFORMS
1638
--------------------------------------------------------
1639
 
5172 dpurdie 1640
  CREATE TABLE "RELEASE_MANAGER"."PLATFORMS" 
4040 dpurdie 1641
   (	"CODE" NUMBER, 
5172 dpurdie 1642
	"NAME" VARCHAR2(255 BYTE)
1643
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1644
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1645
 NOCOMPRESS LOGGING
5172 dpurdie 1646
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1647
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1648
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1649
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1650
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "RM_READONLY";
1651
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "MS_READONLY";
5892 dpurdie 1652
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "DM_READONLY";
1653
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "RELEASE_MANAGER_READ";
1654
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1655
--------------------------------------------------------
1656
--  DDL for Table PROCESSES
1657
--------------------------------------------------------
1658
 
5172 dpurdie 1659
  CREATE TABLE "RELEASE_MANAGER"."PROCESSES" 
4040 dpurdie 1660
   (	"PROC_ID" NUMBER, 
5172 dpurdie 1661
	"PROC_NAME" VARCHAR2(255 BYTE), 
1662
	"PROC_DESCRIPTION" VARCHAR2(255 BYTE), 
1663
	"RUN_AS" VARCHAR2(255 BYTE), 
1664
	"PKG_OWNER" VARCHAR2(4000 BYTE), 
1665
	"IS_INTERFACE" CHAR(1 BYTE)
1666
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1667
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1668
 NOCOMPRESS LOGGING
5172 dpurdie 1669
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1670
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1671
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1672
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1673
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "RM_READONLY";
1674
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "MS_READONLY";
5892 dpurdie 1675
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "DM_READONLY";
1676
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "RELEASE_MANAGER_READ";
6031 dpurdie 1677
  GRANT UPDATE ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";
1678
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";
1679
  GRANT INSERT ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";
1680
  GRANT DELETE ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1681
--------------------------------------------------------
1682
--  DDL for Table PRODUCT_COMPONENTS
1683
--------------------------------------------------------
1684
 
5172 dpurdie 1685
  CREATE TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" 
4040 dpurdie 1686
   (	"PV_ID" NUMBER, 
1687
	"OS_ID" NUMBER, 
5172 dpurdie 1688
	"FILE_PATH" VARCHAR2(4000 BYTE), 
1689
	"FILE_NAME" VARCHAR2(4000 BYTE), 
1690
	"DESTINATION_PATH" VARCHAR2(4000 BYTE), 
4040 dpurdie 1691
	"BYTE_SIZE" NUMBER, 
5172 dpurdie 1692
	"CRC_CKSUM" VARCHAR2(2000 BYTE)
1693
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1694
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1695
 NOCOMPRESS LOGGING
5172 dpurdie 1696
  STORAGE(INITIAL 31457280 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1697
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1698
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1699
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1700
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "RM_READONLY";
1701
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "MS_READONLY";
5892 dpurdie 1702
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "DM_READONLY";
1703
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "RELEASE_MANAGER_READ";
1704
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1705
--------------------------------------------------------
1706
--  DDL for Table PRODUCT_STATES
1707
--------------------------------------------------------
1708
 
5172 dpurdie 1709
  CREATE TABLE "RELEASE_MANAGER"."PRODUCT_STATES" 
4040 dpurdie 1710
   (	"STATE_ID" NUMBER, 
5172 dpurdie 1711
	"STATE" VARCHAR2(4000 BYTE)
1712
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1713
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1714
 NOCOMPRESS LOGGING
5172 dpurdie 1715
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1716
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1717
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1718
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1719
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_STATES" TO "RM_READONLY";
1720
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_STATES" TO "MS_READONLY";
5892 dpurdie 1721
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_STATES" TO "DM_READONLY";
4040 dpurdie 1722
--------------------------------------------------------
1723
--  DDL for Table PROJECTS
1724
--------------------------------------------------------
1725
 
5172 dpurdie 1726
  CREATE TABLE "RELEASE_MANAGER"."PROJECTS" 
4040 dpurdie 1727
   (	"PROJ_ID" NUMBER, 
5172 dpurdie 1728
	"PROJ_NAME" VARCHAR2(50 BYTE), 
1729
	"BASE_URL" VARCHAR2(4000 BYTE), 
1730
	"JIRA_KEY" VARCHAR2(16 BYTE)
1731
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1732
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1733
 NOCOMPRESS LOGGING
5172 dpurdie 1734
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1735
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1736
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1737
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1738
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "RM_READONLY";
1739
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "MS_READONLY";
5892 dpurdie 1740
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "DM_READONLY";
1741
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "RELEASE_MANAGER_READ";
1742
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER_READ";
6031 dpurdie 1743
  GRANT UPDATE ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";
1744
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";
1745
  GRANT INSERT ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";
1746
  GRANT DELETE ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";
5892 dpurdie 1747
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "ACCESS_MANAGER";
4040 dpurdie 1748
--------------------------------------------------------
1749
--  DDL for Table PROJECT_ACTION_LOG
1750
--------------------------------------------------------
1751
 
5172 dpurdie 1752
  CREATE TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" 
4040 dpurdie 1753
   (	"USER_ID" NUMBER, 
1754
	"ACTION_DATETIME" DATE, 
1755
	"PROJ_ID" NUMBER, 
5172 dpurdie 1756
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1757
	"ACTTYPE_ID" NUMBER, 
1758
	"RTAG_ID" NUMBER
5172 dpurdie 1759
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1760
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1761
 NOCOMPRESS LOGGING
5172 dpurdie 1762
  STORAGE(INITIAL 851968 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1763
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1764
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1765
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1766
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "RM_READONLY";
1767
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "MS_READONLY";
5892 dpurdie 1768
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "DM_READONLY";
1769
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1770
--------------------------------------------------------
1771
--  DDL for Table PROJECT_EXTENTIONS
1772
--------------------------------------------------------
1773
 
5172 dpurdie 1774
  CREATE TABLE "RELEASE_MANAGER"."PROJECT_EXTENTIONS" 
4040 dpurdie 1775
   (	"PROJ_ID" NUMBER, 
5172 dpurdie 1776
	"EXT_NAME" VARCHAR2(10 BYTE), 
1777
	"UCOMMENT" VARCHAR2(120 BYTE), 
1778
	"IS_VISIBLE" CHAR(1 BYTE) DEFAULT 'Y', 
1779
	"IS_COTS" CHAR(1 BYTE) DEFAULT 'N'
1780
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1781
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1782
 NOCOMPRESS LOGGING
5172 dpurdie 1783
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1784
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1785
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1786
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1787
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "RM_READONLY";
1788
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "MS_READONLY";
5892 dpurdie 1789
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "DM_READONLY";
1790
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "RELEASE_MANAGER_READ";
1791
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1792
--------------------------------------------------------
1793
--  DDL for Table RELEASE_COMPONENTS
1794
--------------------------------------------------------
1795
 
5172 dpurdie 1796
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" 
4040 dpurdie 1797
   (	"PV_ID" NUMBER, 
5172 dpurdie 1798
	"FILE_NAME" VARCHAR2(255 BYTE), 
1799
	"FILE_PATH" VARCHAR2(2000 BYTE), 
4040 dpurdie 1800
	"BYTE_SIZE" NUMBER, 
5172 dpurdie 1801
	"CRC_CKSUM" VARCHAR2(50 BYTE), 
1802
	"CRC_MODCRC" VARCHAR2(50 BYTE)
1803
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1804
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1805
 NOCOMPRESS LOGGING
5172 dpurdie 1806
  STORAGE(INITIAL 2828009472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1807
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1808
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1809
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1810
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "RM_READONLY";
1811
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "MS_READONLY";
5892 dpurdie 1812
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "DM_READONLY";
1813
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1814
--------------------------------------------------------
1815
--  DDL for Table RELEASE_CONFIG
1816
--------------------------------------------------------
1817
 
5172 dpurdie 1818
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" 
4040 dpurdie 1819
   (	"RCON_ID" NUMBER, 
1820
	"RTAG_ID" NUMBER, 
1821
	"GBE_ID" NUMBER, 
5172 dpurdie 1822
	"DAEMON_HOSTNAME" VARCHAR2(50 BYTE), 
4040 dpurdie 1823
	"DAEMON_MODE" CHAR(1 CHAR), 
5172 dpurdie 1824
	"GBE_BUILDFILTER" VARCHAR2(255 BYTE), 
4308 dpurdie 1825
	"BMCON_ID" NUMBER
5172 dpurdie 1826
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1827
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1828
 NOCOMPRESS LOGGING
5172 dpurdie 1829
  STORAGE(INITIAL 196608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1830
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1831
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1832
  TABLESPACE "RELEASE_MANAGER_DATA" ;
4308 dpurdie 1833
 
5172 dpurdie 1834
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."GBE_ID" IS 'Do not use. Data should come from build_machine_config';
1835
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."DAEMON_HOSTNAME" IS 'Do not use. Data should come from build_machine_config';
1836
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."BMCON_ID" IS 'Link to the build_machine_config table';
6031 dpurdie 1837
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "RM_READONLY";
1838
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "MS_READONLY";
5892 dpurdie 1839
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "DM_READONLY";
1840
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1841
--------------------------------------------------------
1842
--  DDL for Table RELEASE_CONTENT
1843
--------------------------------------------------------
1844
 
5172 dpurdie 1845
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" 
4040 dpurdie 1846
   (	"RTAG_ID" NUMBER, 
1847
	"PV_ID" NUMBER, 
1848
	"BASE_VIEW_ID" NUMBER, 
1849
	"INSERT_STAMP" DATE, 
1850
	"INSERTOR_ID" NUMBER, 
1851
	"PKG_STATE" NUMBER, 
1852
	"PKG_ID" NUMBER, 
1853
	"DEPRECATED_STATE" NUMBER, 
5172 dpurdie 1854
	"PRODUCT_STATE" NUMBER, 
6600 dpurdie 1855
	"SDKTAG_ID" NUMBER, 
1856
	"RIPPLE_STOP" CHAR(1 BYTE), 
1857
	"PERSIST_RIPPLE_STOP" CHAR(1 BYTE)
5172 dpurdie 1858
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1859
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1860
 NOCOMPRESS LOGGING
5172 dpurdie 1861
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1862
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1863
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1864
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 1865
 
5384 dpurdie 1866
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."PKG_ID" IS 'NotUsed any more. Was:Package that has been deprecated';
5172 dpurdie 1867
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."DEPRECATED_STATE" IS '6: Deprecated Package, 7: Deprecated Dependent';
1868
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."SDKTAG_ID" IS 'Pkg imported via SDK';
6600 dpurdie 1869
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."RIPPLE_STOP" IS 's: Stop Ripple, w:Wait for Reset, g:GoBuild';
1870
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."PERSIST_RIPPLE_STOP" IS 'Null:No';
6031 dpurdie 1871
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "RM_READONLY";
1872
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "MS_READONLY";
5892 dpurdie 1873
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "DM_READONLY";
1874
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "RELEASE_MANAGER_READ";
1875
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1876
--------------------------------------------------------
1877
--  DDL for Table RELEASE_LINKS
1878
--------------------------------------------------------
1879
 
5172 dpurdie 1880
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_LINKS" 
4040 dpurdie 1881
   (	"RTAG_ID" NUMBER, 
1882
	"REF_RTAG_ID" NUMBER
5172 dpurdie 1883
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1884
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1885
 NOCOMPRESS LOGGING
5172 dpurdie 1886
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1887
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1888
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1889
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1890
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "RM_READONLY";
1891
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "MS_READONLY";
5892 dpurdie 1892
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "DM_READONLY";
1893
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1894
--------------------------------------------------------
1895
--  DDL for Table RELEASE_METRICS
1896
--------------------------------------------------------
1897
 
5172 dpurdie 1898
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_METRICS" 
4040 dpurdie 1899
   (	"RTAG_ID" NUMBER, 
1900
	"TOTAL_PACKAGES" NUMBER, 
1901
	"AUTOBUILT" NUMBER, 
1902
	"LINES_OF_CODE" NUMBER, 
1903
	"UNIT_TESTED" NUMBER, 
1904
	"AUTOTESTED" NUMBER, 
1905
	"BRANCHES" NUMBER, 
1906
	"LAST_BUILD_TIME" DATE
5172 dpurdie 1907
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1908
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1909
 NOCOMPRESS LOGGING
5172 dpurdie 1910
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1911
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1912
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1913
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1914
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "RM_READONLY";
1915
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "MS_READONLY";
5892 dpurdie 1916
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "DM_READONLY";
5172 dpurdie 1917
--------------------------------------------------------
1918
--  DDL for Table RELEASE_MODIFIED
1919
--------------------------------------------------------
1920
 
1921
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" 
1922
   (	"RTAG_ID" NUMBER, 
1923
	"TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP, 
1924
	"SEQNUM" NUMBER
1925
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1926
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1927
 NOCOMPRESS LOGGING
5172 dpurdie 1928
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1929
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1930
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1931
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 1932
 
1933
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."RTAG_ID" IS 'Link to Release';
1934
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."TIMESTAMP" IS 'Time of the modification';
1935
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."SEQNUM" IS 'Unique number indicating change';
1936
   COMMENT ON TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED"  IS 'This table conatins a single entry for each RELEASE_TAG.
1937
It is used by the build system to help detect changes to the content of a Release.
1938
A stored proceedure simplifies the use of this table: PK_RELEASE.SET_RELEASE_MODIFIED
1939
 
1940
This should be called whenever the package_versions in the release have changed in such
1941
a manner that the build daemons should examine the release. This includes:
1942
 - Packages added and removed
1943
 - Packages build status changed (re-included in the release )
1944
 - Packages made Pending Build';
4040 dpurdie 1945
--------------------------------------------------------
1946
--  DDL for Table RELEASE_TAGS
1947
--------------------------------------------------------
1948
 
5172 dpurdie 1949
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_TAGS" 
4040 dpurdie 1950
   (	"RTAG_ID" NUMBER, 
1951
	"VTREE_ID" NUMBER, 
5172 dpurdie 1952
	"RTAG_NAME" VARCHAR2(50 BYTE), 
1953
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1954
	"CREATED_STAMP" DATE, 
1955
	"CREATOR_ID" NUMBER, 
1956
	"OFFICIAL_STAMP" DATE, 
1957
	"RELEASOR_ID" NUMBER, 
5172 dpurdie 1958
	"OFFICIAL" CHAR(1 BYTE), 
1959
	"REBUILD_ENV" CHAR(1 BYTE), 
4040 dpurdie 1960
	"REBUILD_STAMP" NUMBER, 
5172 dpurdie 1961
	"RTAG_VERSION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1962
	"RTAG_LIFE_CYCLE" NUMBER, 
1963
	"PARENT_RTAG_ID" NUMBER, 
1964
	"PROJ_ID" NUMBER, 
1965
	"DISPLAY_ORDER" NUMBER, 
5172 dpurdie 1966
	"OWNER_EMAIL" VARCHAR2(1000 BYTE), 
4040 dpurdie 1967
	"ASSOC_MASS_REF" NUMBER, 
5172 dpurdie 1968
	"OWNER_PERSONAL_EMAIL" VARCHAR2(1000 BYTE), 
1969
	"CONFIG_SPEC_BRANCH" VARCHAR2(4000 BYTE), 
1970
	"PRODUCT_STATE_USED" CHAR(1 BYTE), 
1971
	"OFFICIAL_ID" NUMBER, 
5384 dpurdie 1972
	"BUILD_AGE" NUMBER DEFAULT 31, 
1973
	"LXR" CHAR(1 BYTE) DEFAULT 'N'
5172 dpurdie 1974
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1975
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1976
 NOCOMPRESS LOGGING
5172 dpurdie 1977
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1978
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1979
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1980
  TABLESPACE "RELEASE_MANAGER_DATA" ;
4040 dpurdie 1981
 
5384 dpurdie 1982
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."CREATED_STAMP" IS 'Date Release was created';
1983
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."CREATOR_ID" IS 'User who created the release';
1984
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL_STAMP" IS 'Date OFFICIAL state was changed';
1985
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."RELEASOR_ID" IS 'Not Used';
1986
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL" IS 'State of release. A:Archived, Y:Closed, C:CCB Mode, R:Restricted, N: Open';
1987
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."REBUILD_ENV" IS 'Y: Rebuild Package State';
1988
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."REBUILD_STAMP" IS 'Not used ?';
1989
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL_ID" IS 'User last changed OFFICIAL state';
5172 dpurdie 1990
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."BUILD_AGE" IS 'Days without building before warning is shown';
5384 dpurdie 1991
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."LXR" IS 'Y:Enable LXR';
6031 dpurdie 1992
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "RM_READONLY";
5892 dpurdie 1993
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "MS_READONLY";
6031 dpurdie 1994
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "DM_READONLY";
5892 dpurdie 1995
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "RELEASE_MANAGER_READ";
1996
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1997
--------------------------------------------------------
6031 dpurdie 1998
--  DDL for Table RM_PACKAGE_ISSUES_DELETE_ME
4040 dpurdie 1999
--------------------------------------------------------
2000
 
6031 dpurdie 2001
  CREATE TABLE "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" 
4040 dpurdie 2002
   (	"PKG_ID" NUMBER, 
5172 dpurdie 2003
	"PKG_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 2004
	"PV_ID" NUMBER, 
5172 dpurdie 2005
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 2006
	"DPV_ID" NUMBER, 
5172 dpurdie 2007
	"DPKG_NAME" VARCHAR2(50 BYTE), 
2008
	"DPKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 2009
	"ISS_DB" NUMBER, 
2010
	"ISS_ID" NUMBER
5172 dpurdie 2011
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2012
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2013
 NOCOMPRESS LOGGING
5172 dpurdie 2014
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2015
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2016
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2017
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2018
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "RM_READONLY";
2019
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "MS_READONLY";
2020
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "DM_READONLY";
2021
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2022
--------------------------------------------------------
2023
--  DDL for Table RM_PKG_ISSUES
2024
--------------------------------------------------------
2025
 
5172 dpurdie 2026
  CREATE GLOBAL TEMPORARY TABLE "RELEASE_MANAGER"."RM_PKG_ISSUES" 
4040 dpurdie 2027
   (	"PKG_ID" NUMBER, 
5172 dpurdie 2028
	"PKG_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 2029
	"PV_ID" NUMBER, 
5172 dpurdie 2030
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 2031
	"DPV_ID" NUMBER, 
5172 dpurdie 2032
	"DPKG_NAME" VARCHAR2(50 BYTE), 
2033
	"DPKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 2034
	"ISS_DB" NUMBER, 
2035
	"ISS_ID" NUMBER
2036
   ) ON COMMIT PRESERVE ROWS ;
6031 dpurdie 2037
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "RM_READONLY";
2038
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "MS_READONLY";
5892 dpurdie 2039
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "DM_READONLY";
2040
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2041
--------------------------------------------------------
2042
--  DDL for Table RUNTIME_DEPENDENCIES
2043
--------------------------------------------------------
2044
 
5172 dpurdie 2045
  CREATE TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" 
4040 dpurdie 2046
   (	"PV_ID" NUMBER, 
2047
	"RTD_ID" NUMBER, 
5172 dpurdie 2048
	"RTD_COMMENTS" VARCHAR2(2000 BYTE), 
2049
	"RTD_URL" VARCHAR2(2000 BYTE), 
4040 dpurdie 2050
	"MOD_DATE" DATE, 
2051
	"MOD_USER" NUMBER
5172 dpurdie 2052
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2053
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2054
 NOCOMPRESS LOGGING
5172 dpurdie 2055
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2056
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2057
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2058
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2059
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "RM_READONLY";
2060
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "MS_READONLY";
5892 dpurdie 2061
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "DM_READONLY";
2062
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2063
--------------------------------------------------------
2064
--  DDL for Table RUN_LEVEL
2065
--------------------------------------------------------
2066
 
5172 dpurdie 2067
  CREATE TABLE "RELEASE_MANAGER"."RUN_LEVEL" 
4040 dpurdie 2068
   (	"RCON_ID" NUMBER, 
2069
	"CURRENT_BUILD_FILES" CLOB, 
2070
	"CURRENT_RUN_LEVEL" NUMBER, 
2071
	"PAUSE" NUMBER, 
2072
	"CURRENT_PKG_ID_BEING_BUILT" NUMBER, 
4553 dpurdie 2073
	"KEEP_ALIVE" DATE, 
2074
	"CURRENT_PV_ID" NUMBER, 
2075
	"LAST_BUILD" DATE DEFAULT sysdate
5172 dpurdie 2076
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2077
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2078
 NOCOMPRESS LOGGING
5172 dpurdie 2079
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2080
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2081
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2082
  TABLESPACE "RELEASE_MANAGER_DATA" 
5172 dpurdie 2083
 LOB ("CURRENT_BUILD_FILES") STORE AS BASICFILE (
6031 dpurdie 2084
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
5172 dpurdie 2085
  NOCACHE LOGGING 
2086
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2087
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2088
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
4553 dpurdie 2089
 
5172 dpurdie 2090
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."RCON_ID" IS 'Link to the Release_config table';
2091
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_BUILD_FILES" IS 'The current build file. Set by the Master, consumed by the Slaves.';
5892 dpurdie 2092
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_RUN_LEVEL" IS 'Daemon indiactes its current state. 1:Cannot Continue, 2:Paused, 3:Active, 4:Idle, 5:Waiting, 6:Publishing';
5172 dpurdie 2093
   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';
2094
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_PKG_ID_BEING_BUILT" IS 'pkg_id of the package currently being built';
2095
   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.';
2096
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_PV_ID" IS 'The PV_ID of the package currently being built.';
2097
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."LAST_BUILD" IS 'The DateTime that the last build started. This does not include dummy builds. Used to determine unused daemons.';
6031 dpurdie 2098
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "RM_READONLY";
2099
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "MS_READONLY";
5892 dpurdie 2100
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "DM_READONLY";
4040 dpurdie 2101
--------------------------------------------------------
2102
--  DDL for Table RUN_LEVEL_SCHEDULE
2103
--------------------------------------------------------
2104
 
5172 dpurdie 2105
  CREATE TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" 
4040 dpurdie 2106
   (	"SCHEDULED_ID" NUMBER, 
2107
	"SCHEDULED_PAUSE" DATE, 
2108
	"SCHEDULED_RESUME" DATE, 
5172 dpurdie 2109
	"REPEAT" CHAR(1 BYTE), 
2110
	"INDEFINITE_PAUSE" CHAR(1 BYTE)
2111
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2112
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2113
 NOCOMPRESS LOGGING
5172 dpurdie 2114
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2115
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2116
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2117
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2118
 
2119
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_ID" IS 'Unique entry identifier';
2120
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_PAUSE" IS 'Start DateTime of the outage';
2121
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_RESUME" IS 'End DateTime of the outage';
2122
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."REPEAT" IS '0:Once, 1:Daily, 7:Weekly';
2123
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."INDEFINITE_PAUSE" IS 'Non Null indicates indefinite pause';
6031 dpurdie 2124
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "RM_READONLY";
2125
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "MS_READONLY";
5892 dpurdie 2126
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "DM_READONLY";
5172 dpurdie 2127
--------------------------------------------------------
2128
--  DDL for Table SDK_CONTENT
2129
--------------------------------------------------------
2130
 
2131
  CREATE TABLE "RELEASE_MANAGER"."SDK_CONTENT" 
2132
   (	"SDKTAG_ID" NUMBER, 
2133
	"PV_ID" NUMBER, 
2134
	"SDKPKG_STATE" CHAR(1 BYTE) DEFAULT '-'
2135
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2136
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2137
 NOCOMPRESS LOGGING
5172 dpurdie 2138
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2139
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2140
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2141
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2142
 
2143
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."SDKTAG_ID" IS 'Ref to SDK TAG';
2144
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."PV_ID" IS 'Ref to Package Versions';
2145
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."SDKPKG_STATE" IS 'Package State: -:Not exposed, E:Exposed';
2146
--------------------------------------------------------
2147
--  DDL for Table SDK_NAMES
2148
--------------------------------------------------------
2149
 
2150
  CREATE TABLE "RELEASE_MANAGER"."SDK_NAMES" 
2151
   (	"SDK_ID" NUMBER, 
2152
	"SDK_NAME" VARCHAR2(50 BYTE), 
2153
	"SDK_COMMENT" VARCHAR2(4000 BYTE), 
2154
	"VIEW_ID" NUMBER, 
2155
	"PROJ_ID" NUMBER
2156
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2157
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2158
 NOCOMPRESS LOGGING
5172 dpurdie 2159
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2160
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2161
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2162
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2163
 
2164
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_ID" IS 'Auto Created when row is created';
2165
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_NAME" IS 'Name of the SDK';
2166
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_COMMENT" IS 'User comment';
2167
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."VIEW_ID" IS 'Base View for display';
2168
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."PROJ_ID" IS 'Project ID for Security context';
2169
--------------------------------------------------------
2170
--  DDL for Table SDK_TAGS
2171
--------------------------------------------------------
2172
 
2173
  CREATE TABLE "RELEASE_MANAGER"."SDK_TAGS" 
2174
   (	"SDKTAG_ID" NUMBER, 
2175
	"SDKTAG_NAME" VARCHAR2(50 BYTE), 
2176
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
2177
	"SDK_ID" NUMBER, 
2178
	"RTAG_ID" NUMBER, 
2179
	"CREATED_STAMP" TIMESTAMP (6) DEFAULT SYSTIMESTAMP, 
2180
	"CREATOR_ID" NUMBER, 
2181
	"STATE_STAMP" TIMESTAMP (6) DEFAULT SYSTIMESTAMP, 
2182
	"STATE_ID" NUMBER, 
2183
	"SDK_STATE" CHAR(1 BYTE) DEFAULT 'U'
2184
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2185
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2186
 NOCOMPRESS LOGGING
5172 dpurdie 2187
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2188
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2189
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2190
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2191
 
2192
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDKTAG_ID" IS 'Unique ID. Created automatically';
2193
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDKTAG_NAME" IS 'Name of the SDK Version';
2194
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."DESCRIPTION" IS 'General description';
2195
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDK_ID" IS 'Parent SDK';
2196
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."RTAG_ID" IS 'Release within which this SDK is maintained';
2197
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."CREATED_STAMP" IS 'When created';
2198
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."CREATOR_ID" IS 'Who Created the version';
2199
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."STATE_STAMP" IS 'Time of last change to this version';
2200
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."STATE_ID" IS 'User id who made the last state change';
2201
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDK_STATE" IS 'State: U-Under Development; R-Released; D-Deprecated';
4040 dpurdie 2202
--------------------------------------------------------
5384 dpurdie 2203
--  DDL for Table TEMP_ENV_DEPS
2204
--------------------------------------------------------
2205
 
2206
  CREATE TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" 
2207
   (	"SESSION_NUM" NUMBER, 
2208
	"PV_ID" NUMBER, 
2209
	"PKG_ID" NUMBER, 
2210
	"V_EXT" VARCHAR2(50 BYTE), 
2211
	"DPV_ID" NUMBER, 
2212
	"DPKG_ID" NUMBER, 
2213
	"DV_EXT" VARCHAR2(50 BYTE)
2214
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2215
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2216
 NOCOMPRESS LOGGING
5384 dpurdie 2217
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2218
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2219
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2220
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5384 dpurdie 2221
 
2222
   COMMENT ON TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS"  IS 'This table is used in the creation of the package_state information
2223
Data in the table is temporary. It should be cleared out after its been used.
2224
Data will only be used for a few seconds.
2225
 
2226
The table is used to map DPV_IDs to PV_IDs, but only for DPV_IDs that are of interest';
2227
--------------------------------------------------------
4040 dpurdie 2228
--  DDL for Table TEMP_ENV_STATES
2229
--------------------------------------------------------
2230
 
5172 dpurdie 2231
  CREATE TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" 
4040 dpurdie 2232
   (	"SESSION_NUM" NUMBER, 
2233
	"LEVEL_NUM" NUMBER, 
2234
	"PV_ID" NUMBER, 
2235
	"PKG_ID" NUMBER, 
5172 dpurdie 2236
	"V_EXT" VARCHAR2(50 BYTE), 
6031 dpurdie 2237
	"TES_STATE" NUMBER, 
2238
	"BUILD_TYPE" CHAR(1 BYTE)
5172 dpurdie 2239
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2240
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2241
 NOCOMPRESS LOGGING
5172 dpurdie 2242
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2243
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2244
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2245
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2246
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "RM_READONLY";
2247
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "MS_READONLY";
5892 dpurdie 2248
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "DM_READONLY";
2249
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2250
--------------------------------------------------------
2251
--  DDL for Table TEMP_SASH
2252
--------------------------------------------------------
2253
 
5172 dpurdie 2254
  CREATE TABLE "RELEASE_MANAGER"."TEMP_SASH" 
4040 dpurdie 2255
   (	"RTAG_ID" NUMBER, 
2256
	"PROJ_ID" NUMBER
5172 dpurdie 2257
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2258
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2259
 NOCOMPRESS LOGGING
5172 dpurdie 2260
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2261
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2262
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2263
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2264
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "RM_READONLY";
2265
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "MS_READONLY";
5892 dpurdie 2266
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "DM_READONLY";
2267
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2268
--------------------------------------------------------
2269
--  DDL for Table TEMP_TREE_BROWSE
2270
--------------------------------------------------------
2271
 
5172 dpurdie 2272
  CREATE TABLE "RELEASE_MANAGER"."TEMP_TREE_BROWSE" 
4040 dpurdie 2273
   (	"SESSION_NUM" NUMBER, 
2274
	"LEVEL_NUM" NUMBER, 
2275
	"PV_ID" NUMBER, 
2276
	"PKG_ID" NUMBER, 
5172 dpurdie 2277
	"V_EXT" VARCHAR2(50 BYTE), 
4040 dpurdie 2278
	"DIRECTION" NUMBER
5172 dpurdie 2279
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2280
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2281
 NOCOMPRESS LOGGING
5172 dpurdie 2282
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2283
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2284
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2285
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2286
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "RM_READONLY";
2287
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "MS_READONLY";
5892 dpurdie 2288
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "DM_READONLY";
2289
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "RELEASE_MANAGER_READ";
5172 dpurdie 2290
--------------------------------------------------------
2291
--  DDL for Table TEST_RUN
2292
--------------------------------------------------------
2293
 
2294
  CREATE TABLE "RELEASE_MANAGER"."TEST_RUN" 
6031 dpurdie 2295
   (	"TESTRUN_ID" NUMBER, 
2296
	"BUILD_ID" NUMBER, 
5172 dpurdie 2297
	"PLATFORM" VARCHAR2(50 BYTE), 
2298
	"TYPE" VARCHAR2(1 BYTE), 
5384 dpurdie 2299
	"TEST_NAME" VARCHAR2(200 BYTE), 
5172 dpurdie 2300
	"TEST_OUTCOME" VARCHAR2(20 BYTE), 
2301
	"TIME_TAKEN" NUMBER, 
6031 dpurdie 2302
	"FAIL_MESSAGE" CLOB
5172 dpurdie 2303
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2304
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2305
 NOCOMPRESS LOGGING
5172 dpurdie 2306
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2307
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2308
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2309
  TABLESPACE "RELEASE_MANAGER_DATA" 
5172 dpurdie 2310
 LOB ("FAIL_MESSAGE") STORE AS BASICFILE (
6031 dpurdie 2311
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 2312
  NOCACHE LOGGING 
2313
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2314
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2315
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
5172 dpurdie 2316
 
6031 dpurdie 2317
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TESTRUN_ID" IS 'Unique Id. Used to generate a primary key.';
5172 dpurdie 2318
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."PLATFORM" IS 'Target Platform';
2319
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TYPE" IS 'P or D';
2320
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TEST_OUTCOME" IS 'PASS/FAIL/SKIP';
2321
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TIME_TAKEN" IS 'Test Duration in milliseconds';
2322
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."FAIL_MESSAGE" IS 'Failure Message';
4040 dpurdie 2323
--------------------------------------------------------
2324
--  DDL for Table TEST_TYPES
2325
--------------------------------------------------------
2326
 
5172 dpurdie 2327
  CREATE TABLE "RELEASE_MANAGER"."TEST_TYPES" 
4040 dpurdie 2328
   (	"TEST_TYPE_ID" NUMBER, 
5172 dpurdie 2329
	"TEST_TYPE_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 2330
	"DISPLAY_ORDER" NUMBER
5172 dpurdie 2331
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2332
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2333
 NOCOMPRESS LOGGING
5172 dpurdie 2334
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2335
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2336
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2337
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2338
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "RM_READONLY";
2339
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "MS_READONLY";
5892 dpurdie 2340
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "DM_READONLY";
2341
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "RELEASE_MANAGER_READ";
2342
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2343
--------------------------------------------------------
2344
--  DDL for Table UNIT_TESTS
2345
--------------------------------------------------------
2346
 
5172 dpurdie 2347
  CREATE TABLE "RELEASE_MANAGER"."UNIT_TESTS" 
4040 dpurdie 2348
   (	"TEST_ID" NUMBER, 
2349
	"PV_ID" NUMBER, 
2350
	"TEST_TYPES_FK" NUMBER, 
5172 dpurdie 2351
	"TEST_SUMMARY" VARCHAR2(4000 BYTE), 
4040 dpurdie 2352
	"COMPLETION_DATE" DATE, 
2353
	"COMPLETED_BY" NUMBER, 
5172 dpurdie 2354
	"RESULTS_URL" VARCHAR2(2000 BYTE), 
2355
	"RESULTS_ATTACHMENT_NAME" VARCHAR2(2000 BYTE), 
2356
	"TEST_ACCEPTED" CHAR(1 BYTE), 
4040 dpurdie 2357
	"ACCEPTANCE_DATE" DATE, 
2358
	"ACCEPTED_BY" NUMBER, 
5172 dpurdie 2359
	"REVIEW_COMMENTS" VARCHAR2(4000 BYTE), 
2360
	"NUMOF_TEST" VARCHAR2(50 BYTE)
2361
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2362
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2363
 NOCOMPRESS LOGGING
5172 dpurdie 2364
  STORAGE(INITIAL 31457280 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2365
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2366
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2367
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2368
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "RM_READONLY";
2369
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "MS_READONLY";
5892 dpurdie 2370
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "DM_READONLY";
2371
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "RELEASE_MANAGER_READ";
2372
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2373
--------------------------------------------------------
6031 dpurdie 2374
--  DDL for Table VALIDATION_RULES_DELETE_ME
4040 dpurdie 2375
--------------------------------------------------------
2376
 
6031 dpurdie 2377
  CREATE TABLE "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" 
5172 dpurdie 2378
   (	"FIELD_NAME" VARCHAR2(1000 BYTE), 
2379
	"IS_REQUIRED" CHAR(1 BYTE), 
2380
	"IS_NUMERIC" CHAR(1 BYTE), 
4040 dpurdie 2381
	"MIN_NUMERIC_VALUE" NUMBER, 
2382
	"MAX_NUMERIC_VALUE" NUMBER, 
5172 dpurdie 2383
	"IS_DATE" CHAR(1 BYTE), 
4040 dpurdie 2384
	"START_DATE" DATE, 
2385
	"END_DATE" DATE, 
2386
	"MIN_STRING_LENGTH" NUMBER, 
2387
	"MAX_STRING_LENGTH" NUMBER, 
5172 dpurdie 2388
	"REGEXP" VARCHAR2(4000 BYTE), 
2389
	"REGEXP_DESCRIPTION" VARCHAR2(50 BYTE)
2390
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2391
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2392
 NOCOMPRESS LOGGING
5172 dpurdie 2393
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2394
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2395
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2396
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2397
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "RM_READONLY";
2398
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "MS_READONLY";
2399
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "DM_READONLY";
2400
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2401
--------------------------------------------------------
2402
--  DDL for Table VCS_TYPE
2403
--------------------------------------------------------
2404
 
5172 dpurdie 2405
  CREATE TABLE "RELEASE_MANAGER"."VCS_TYPE" 
4040 dpurdie 2406
   (	"VCS_TYPE_ID" NUMBER, 
5172 dpurdie 2407
	"NAME" VARCHAR2(128 BYTE), 
2408
	"TAG" VARCHAR2(32 BYTE)
2409
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2410
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2411
 NOCOMPRESS LOGGING
5172 dpurdie 2412
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2413
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2414
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2415
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2416
  GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "RM_READONLY";
2417
  GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "MS_READONLY";
5892 dpurdie 2418
  GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "DM_READONLY";
4040 dpurdie 2419
--------------------------------------------------------
2420
--  DDL for Table VIEWS
2421
--------------------------------------------------------
2422
 
5172 dpurdie 2423
  CREATE TABLE "RELEASE_MANAGER"."VIEWS" 
4040 dpurdie 2424
   (	"VIEW_ID" NUMBER, 
5172 dpurdie 2425
	"VIEW_NAME" VARCHAR2(30 BYTE), 
4040 dpurdie 2426
	"OWNER_ID" NUMBER, 
5172 dpurdie 2427
	"BASE_VIEW" CHAR(1 BYTE), 
2428
	"PUBLIC_READ" CHAR(1 BYTE)
2429
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2430
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2431
 NOCOMPRESS LOGGING
5172 dpurdie 2432
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2433
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2434
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2435
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2436
 
2437
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEWS"."OWNER_ID" IS '0:Public';
2438
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEWS"."BASE_VIEW" IS 'Y:Base View';
6031 dpurdie 2439
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "RM_READONLY";
2440
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "MS_READONLY";
5892 dpurdie 2441
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "DM_READONLY";
2442
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2443
--------------------------------------------------------
2444
--  DDL for Table VIEW_DEF
2445
--------------------------------------------------------
2446
 
5172 dpurdie 2447
  CREATE TABLE "RELEASE_MANAGER"."VIEW_DEF" 
4040 dpurdie 2448
   (	"VIEW_ID" NUMBER, 
2449
	"PKG_ID" NUMBER
5172 dpurdie 2450
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2451
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2452
 NOCOMPRESS LOGGING
5172 dpurdie 2453
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2454
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2455
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2456
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2457
 
2458
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEW_DEF"."VIEW_ID" IS 'Non Base View ID';
2459
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEW_DEF"."PKG_ID" IS 'Package ID';
2460
   COMMENT ON TABLE "RELEASE_MANAGER"."VIEW_DEF"  IS 'Packages in a non-baseview';
6031 dpurdie 2461
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "RM_READONLY";
2462
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "MS_READONLY";
5892 dpurdie 2463
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "DM_READONLY";
2464
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2465
--------------------------------------------------------
2466
--  DDL for Table VIEW_SETTINGS
2467
--------------------------------------------------------
2468
 
5172 dpurdie 2469
  CREATE TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" 
4040 dpurdie 2470
   (	"USER_ID" NUMBER, 
2471
	"VIEW_ID" NUMBER
5172 dpurdie 2472
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2473
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2474
 NOCOMPRESS LOGGING
5172 dpurdie 2475
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2476
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2477
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2478
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2479
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "RM_READONLY";
2480
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "MS_READONLY";
5892 dpurdie 2481
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "DM_READONLY";
2482
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2483
--------------------------------------------------------
2484
--  DDL for Table VTREES
2485
--------------------------------------------------------
2486
 
5172 dpurdie 2487
  CREATE TABLE "RELEASE_MANAGER"."VTREES" 
4040 dpurdie 2488
   (	"VTREE_ID" NUMBER, 
2489
	"PROJ_ID" NUMBER, 
5172 dpurdie 2490
	"VTREE_NAME" VARCHAR2(50 BYTE), 
2491
	"HIDE" CHAR(1 BYTE)
2492
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2493
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2494
 NOCOMPRESS LOGGING
5172 dpurdie 2495
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2496
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2497
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2498
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2499
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "RM_READONLY";
2500
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "MS_READONLY";
5892 dpurdie 2501
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "DM_READONLY";
2502
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "RELEASE_MANAGER_READ";
2503
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2504
--------------------------------------------------------
2505
--  DDL for Table VTREES_WORLD
2506
--------------------------------------------------------
2507
 
5172 dpurdie 2508
  CREATE TABLE "RELEASE_MANAGER"."VTREES_WORLD" 
4040 dpurdie 2509
   (	"WORLD_ID" NUMBER, 
2510
	"VTREE_ID" NUMBER
5172 dpurdie 2511
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2512
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2513
 NOCOMPRESS LOGGING
5172 dpurdie 2514
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2515
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2516
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2517
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2518
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "RM_READONLY";
2519
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "MS_READONLY";
5892 dpurdie 2520
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "DM_READONLY";
2521
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "RELEASE_MANAGER_READ";
2522
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2523
--------------------------------------------------------
2524
--  DDL for Table WORK_IN_PROGRESS
2525
--------------------------------------------------------
2526
 
5172 dpurdie 2527
  CREATE TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" 
4040 dpurdie 2528
   (	"RTAG_ID" NUMBER, 
2529
	"PV_ID" NUMBER, 
2530
	"VIEW_ID" NUMBER
5172 dpurdie 2531
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2532
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2533
 NOCOMPRESS LOGGING
5172 dpurdie 2534
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2535
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2536
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2537
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2538
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "RM_READONLY";
2539
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "MS_READONLY";
5892 dpurdie 2540
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "DM_READONLY";
2541
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2542
--------------------------------------------------------
2543
--  DDL for Table WORLDS
2544
--------------------------------------------------------
2545
 
5172 dpurdie 2546
  CREATE TABLE "RELEASE_MANAGER"."WORLDS" 
4040 dpurdie 2547
   (	"WORLD_ID" NUMBER, 
5172 dpurdie 2548
	"WORLD_NAME" VARCHAR2(30 BYTE), 
2549
	"WORLD_DESC" VARCHAR2(255 BYTE)
2550
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2551
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2552
 NOCOMPRESS LOGGING
5172 dpurdie 2553
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2554
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2555
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2556
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2557
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "RM_READONLY";
2558
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "MS_READONLY";
5892 dpurdie 2559
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "DM_READONLY";
2560
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2561
--------------------------------------------------------
2562
--  DDL for View ENVIRONMENT_VIEW
2563
--------------------------------------------------------
2564
 
5172 dpurdie 2565
  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 2566
  SELECT 2 AS ENV_AREA,
2567
    rc.PV_ID,
2568
    rc.RTAG_ID,
2569
    rc.BASE_VIEW_ID AS VIEW_ID,
2570
    rc.PKG_STATE,
2571
 rc.DEPRECATED_STATE,
2572
    rc.INSERTOR_ID,
2573
    rc.INSERT_STAMP,
2574
    ' ' AS OPERATION
2575
  FROM RELEASE_CONTENT rc
2576
UNION
2577
SELECT 0 AS ENV_AREA,
2578
    wip.PV_ID,
2579
    wip.RTAG_ID,
2580
    wip.VIEW_ID,
2581
    NULL AS PKG_STATE,
2582
 NULL AS DEPRECATED_STATE,
2583
    NULL AS INSERTOR_ID,
2584
    NULL AS INSERT_STAMP,
2585
    ' ' AS OPERATION
2586
  FROM WORK_IN_PROGRESS wip
2587
UNION
2588
SELECT 1 AS ENV_AREA,
2589
    pl.PV_ID,
2590
    pl.RTAG_ID,
2591
    pl.VIEW_ID,
2592
    NULL AS PKG_STATE,
2593
 NULL AS DEPRECATED_STATE,
2594
    NULL AS INSERTOR_ID,
2595
    NULL AS INSERT_STAMP,
2596
    pl.operation
2597
FROM PLANNED pl;
6031 dpurdie 2598
  GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "RM_READONLY";
5892 dpurdie 2599
  GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "MS_READONLY";
2600
  GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2601
--------------------------------------------------------
2602
--  DDL for View RM_PKG_ISSUES_ID
2603
--------------------------------------------------------
2604
 
5172 dpurdie 2605
  CREATE OR REPLACE FORCE VIEW "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" ("ISS_ID", "PKG_VERSION") AS 
4040 dpurdie 2606
  SELECT DISTINCT ISS_ID, PKG_VERSION FROM RM_PACKAGE_ISSUES WHERE ISS_ID IS NOT NULL
2607
 
2608
;
6031 dpurdie 2609
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" TO "RM_READONLY";
5892 dpurdie 2610
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" TO "MS_READONLY";
2611
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2612
--------------------------------------------------------
4211 dpurdie 2613
--  DDL for Index PK_LICENCES
4040 dpurdie 2614
--------------------------------------------------------
2615
 
5172 dpurdie 2616
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_LICENCES" ON "RELEASE_MANAGER"."LICENCES" ("LICENCE") 
2617
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2618
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2619
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2620
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2621
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2622
--------------------------------------------------------
4211 dpurdie 2623
--  DDL for Index UNQ_PKG_BUILD_ENV
4040 dpurdie 2624
--------------------------------------------------------
2625
 
5172 dpurdie 2626
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PKG_BUILD_ENV" ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ("PV_ID", "BE_ID") 
2627
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2628
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2629
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2630
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2631
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 2632
--------------------------------------------------------
2633
--  DDL for Index SDK_NAMES_UK1
2634
--------------------------------------------------------
2635
 
2636
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_NAMES_UK1" ON "RELEASE_MANAGER"."SDK_NAMES" ("SDK_NAME") 
2637
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2638
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2639
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2640
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2641
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2642
--------------------------------------------------------
4211 dpurdie 2643
--  DDL for Index UNQ_PACKAGES
4040 dpurdie 2644
--------------------------------------------------------
2645
 
5172 dpurdie 2646
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGES" ON "RELEASE_MANAGER"."PACKAGES" ("PKG_NAME") 
2647
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2648
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2649
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2650
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2651
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 2652
--------------------------------------------------------
2653
--  DDL for Index INX_PACKAGES_ALIAS
2654
--------------------------------------------------------
2655
 
5384 dpurdie 2656
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_PACKAGES_ALIAS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID", "PKG_ID", "V_EXT") 
5172 dpurdie 2657
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2658
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2659
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2660
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2661
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2662
--------------------------------------------------------
2663
--  DDL for Index CODE_REVIEW_URL_PK
2664
--------------------------------------------------------
2665
 
5172 dpurdie 2666
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CODE_REVIEW_URL_PK" ON "RELEASE_MANAGER"."CODE_REVIEW_URL" ("CR_ID") 
2667
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2668
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2669
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2670
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2671
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 2672
--------------------------------------------------------
2673
--  DDL for Index SDK_NAMES_PK
2674
--------------------------------------------------------
2675
 
2676
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_NAMES_PK" ON "RELEASE_MANAGER"."SDK_NAMES" ("SDK_ID") 
2677
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2678
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2679
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2680
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2681
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 2682
--------------------------------------------------------
2683
--  DDL for Index INX_ACTION_TIMESTAMP
2684
--------------------------------------------------------
2685
 
2686
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_TIMESTAMP" ON "RELEASE_MANAGER"."ACTION_LOG" ("ACTION_TIMESTAMP") 
2687
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2688
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2689
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2690
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2691
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2692
--------------------------------------------------------
4211 dpurdie 2693
--  DDL for Index INX_UT_COMPLETED
4040 dpurdie 2694
--------------------------------------------------------
2695
 
5172 dpurdie 2696
  CREATE INDEX "RELEASE_MANAGER"."INX_UT_COMPLETED" ON "RELEASE_MANAGER"."UNIT_TESTS" ("COMPLETION_DATE", "COMPLETED_BY") 
2697
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2698
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2699
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2700
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2701
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2702
--------------------------------------------------------
4308 dpurdie 2703
--  DDL for Index INX_PV_ID_PKGDOC
2704
--------------------------------------------------------
4040 dpurdie 2705
 
5172 dpurdie 2706
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_ID_PKGDOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID") 
2707
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2708
  STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2709
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2710
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2711
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2712
--------------------------------------------------------
2713
--  DDL for Index UNQ_VIEW_SETTINGS
2714
--------------------------------------------------------
4040 dpurdie 2715
 
5172 dpurdie 2716
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEW_SETTINGS" ON "RELEASE_MANAGER"."VIEW_SETTINGS" ("USER_ID", "VIEW_ID") 
2717
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2718
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2719
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2720
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2721
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2722
--------------------------------------------------------
2723
--  DDL for Index INX_PP_PV_ID
2724
--------------------------------------------------------
4040 dpurdie 2725
 
5172 dpurdie 2726
  CREATE INDEX "RELEASE_MANAGER"."INX_PP_PV_ID" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PV_ID") 
2727
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2728
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2729
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2730
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2731
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2732
--------------------------------------------------------
2733
--  DDL for Index PK_VIEWS
2734
--------------------------------------------------------
4040 dpurdie 2735
 
5172 dpurdie 2736
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_VIEWS" ON "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") 
2737
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2738
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2739
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2740
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2741
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 2742
--------------------------------------------------------
2743
--  DDL for Index CQ_USERS_PK
2744
--------------------------------------------------------
2745
 
2746
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_USERS_PK" ON "RELEASE_MANAGER"."CQ_USERS" ("DBID") 
2747
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2748
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2749
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2750
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2751
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2752
--------------------------------------------------------
2753
--  DDL for Index PK_PACKAGES
2754
--------------------------------------------------------
4040 dpurdie 2755
 
5172 dpurdie 2756
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PACKAGES" ON "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") 
2757
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2758
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2759
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2760
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2761
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2762
--------------------------------------------------------
2763
--  DDL for Index PK_TEST_TYPES
2764
--------------------------------------------------------
4040 dpurdie 2765
 
5172 dpurdie 2766
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_TEST_TYPES" ON "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_ID") 
2767
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2768
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2769
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2770
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2771
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2772
--------------------------------------------------------
2773
--  DDL for Index UNQ_ACTTYPE_ID
2774
--------------------------------------------------------
4040 dpurdie 2775
 
5172 dpurdie 2776
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_ACTTYPE_ID" ON "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") 
2777
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2778
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2779
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2780
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2781
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2782
--------------------------------------------------------
2783
--  DDL for Index INX_PROJ_ACTION_DATE_TIME
2784
--------------------------------------------------------
4040 dpurdie 2785
 
5172 dpurdie 2786
  CREATE INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_DATE_TIME" ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ("ACTION_DATETIME") 
2787
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2788
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2789
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2790
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2791
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2792
--------------------------------------------------------
2793
--  DDL for Index INX_RC_PKG_STATE
2794
--------------------------------------------------------
4040 dpurdie 2795
 
5172 dpurdie 2796
  CREATE INDEX "RELEASE_MANAGER"."INX_RC_PKG_STATE" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("PKG_STATE") 
2797
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2798
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2799
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2800
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2801
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2802
--------------------------------------------------------
2803
--  DDL for Index PROCESSES_PK
2804
--------------------------------------------------------
4040 dpurdie 2805
 
5172 dpurdie 2806
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PROCESSES_PK" ON "RELEASE_MANAGER"."PROCESSES" ("PROC_ID") 
2807
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2808
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2809
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2810
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2811
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2812
--------------------------------------------------------
2813
--  DDL for Index INX_PACKAGE_DEPS_DPV_ID
2814
--------------------------------------------------------
4040 dpurdie 2815
 
5172 dpurdie 2816
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPV_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPV_ID") 
2817
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2818
  STORAGE(INITIAL 75497472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2819
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2820
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2821
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2822
--------------------------------------------------------
6031 dpurdie 2823
--  DDL for Index PACKAGE_VERSIONS_RNOTE
2824
--------------------------------------------------------
2825
 
2826
  CREATE INDEX "RELEASE_MANAGER"."PACKAGE_VERSIONS_RNOTE" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("RELEASE_NOTES_INFO") 
2827
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2828
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2829
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2830
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2831
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2832
--------------------------------------------------------
4308 dpurdie 2833
--  DDL for Index INX_PACKAGES_PKG_VERSION
2834
--------------------------------------------------------
4040 dpurdie 2835
 
5172 dpurdie 2836
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_VERSION" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_VERSION") 
2837
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2838
  STORAGE(INITIAL 10485760 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2839
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2840
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2841
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2842
--------------------------------------------------------
2843
--  DDL for Index UNQ_PACKAGE_METRICS
2844
--------------------------------------------------------
4040 dpurdie 2845
 
5172 dpurdie 2846
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_METRICS" ON "RELEASE_MANAGER"."PACKAGE_METRICS" ("PV_ID") 
2847
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2848
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2849
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2850
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2851
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2852
--------------------------------------------------------
2853
--  DDL for Index UNQ_PLATFORM
2854
--------------------------------------------------------
4040 dpurdie 2855
 
5172 dpurdie 2856
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PLATFORM" ON "RELEASE_MANAGER"."PLATFORMS" ("NAME") 
2857
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2858
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2859
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2860
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2861
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2862
--------------------------------------------------------
2863
--  DDL for Index UNQ_VIEWS
2864
--------------------------------------------------------
4040 dpurdie 2865
 
5172 dpurdie 2866
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEWS" ON "RELEASE_MANAGER"."VIEWS" ("VIEW_NAME", "OWNER_ID") 
2867
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2868
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2869
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2870
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2871
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2872
--------------------------------------------------------
4211 dpurdie 2873
--  DDL for Index PRODUCT_STATES_PK
4040 dpurdie 2874
--------------------------------------------------------
2875
 
5172 dpurdie 2876
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PRODUCT_STATES_PK" ON "RELEASE_MANAGER"."PRODUCT_STATES" ("STATE_ID") 
2877
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2878
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2879
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2880
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2881
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2882
--------------------------------------------------------
4211 dpurdie 2883
--  DDL for Index PK_MESSAGE_BOARD
4040 dpurdie 2884
--------------------------------------------------------
2885
 
5172 dpurdie 2886
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_MESSAGE_BOARD" ON "RELEASE_MANAGER"."MESSAGE_BOARD" ("MSG_ID") 
2887
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2888
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2889
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2890
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2891
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2892
--------------------------------------------------------
2893
--  DDL for Index PK_BUILD_MACHINE_CONFIG
2894
--------------------------------------------------------
4040 dpurdie 2895
 
5172 dpurdie 2896
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_BUILD_MACHINE_CONFIG" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ("BMCON_ID") 
2897
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2898
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2899
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2900
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2901
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2902
--------------------------------------------------------
2903
--  DDL for Index INX_MSGBOARD
2904
--------------------------------------------------------
4040 dpurdie 2905
 
5172 dpurdie 2906
  CREATE INDEX "RELEASE_MANAGER"."INX_MSGBOARD" ON "RELEASE_MANAGER"."MESSAGE_BOARD" ("EXPIRY_DATE", "DUE_DATE") 
2907
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2908
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2909
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2910
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2911
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2912
--------------------------------------------------------
2913
--  DDL for Index PK_VTREES
2914
--------------------------------------------------------
4040 dpurdie 2915
 
5172 dpurdie 2916
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_VTREES" ON "RELEASE_MANAGER"."VTREES" ("VTREE_ID") 
2917
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2918
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2919
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2920
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2921
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2922
--------------------------------------------------------
2923
--  DDL for Index UNQ_UT_PART1
2924
--------------------------------------------------------
4040 dpurdie 2925
 
5172 dpurdie 2926
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_UT_PART1" ON "RELEASE_MANAGER"."UNIT_TESTS" ("PV_ID", "TEST_ID") 
2927
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2928
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2929
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2930
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2931
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2932
--------------------------------------------------------
2933
--  DDL for Index UNQ_BUILD_ENV
2934
--------------------------------------------------------
4040 dpurdie 2935
 
5172 dpurdie 2936
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV" ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_NAME") 
2937
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2938
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2939
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2940
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2941
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2942
--------------------------------------------------------
6031 dpurdie 2943
--  DDL for Index PK_RUN_LEVEL
2944
--------------------------------------------------------
2945
 
2946
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_RUN_LEVEL" ON "RELEASE_MANAGER"."RUN_LEVEL" ("RCON_ID") 
2947
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2948
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2949
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2950
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2951
  TABLESPACE "RELEASE_MANAGER_INDX" ;
2952
--------------------------------------------------------
4211 dpurdie 2953
--  DDL for Index INX_ACTION_DATE_TIME
4040 dpurdie 2954
--------------------------------------------------------
2955
 
5172 dpurdie 2956
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_DATE_TIME" ON "RELEASE_MANAGER"."ACTION_LOG" ("ACTION_DATETIME") 
2957
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2958
  STORAGE(INITIAL 92274688 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2959
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2960
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2961
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2962
--------------------------------------------------------
4308 dpurdie 2963
--  DDL for Index UNQ_BUILD_MACHINE_CONFIG02
2964
--------------------------------------------------------
4040 dpurdie 2965
 
5172 dpurdie 2966
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_MACHINE_CONFIG02" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ("MACHINE_HOSTNAME") 
2967
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2968
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2969
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2970
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2971
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2972
--------------------------------------------------------
5384 dpurdie 2973
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX6
2974
--------------------------------------------------------
2975
 
2976
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX6" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("NEW_NUM") 
2977
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2978
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2979
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2980
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2981
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 2982
--------------------------------------------------------
4308 dpurdie 2983
--  DDL for Index BUILD_MACHINES_PK
2984
--------------------------------------------------------
4040 dpurdie 2985
 
5172 dpurdie 2986
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_MACHINES_PK" ON "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") 
2987
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2988
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2989
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2990
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2991
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2992
--------------------------------------------------------
2993
--  DDL for Index INX_TTB_SESSION
2994
--------------------------------------------------------
4040 dpurdie 2995
 
5172 dpurdie 2996
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_SESSION" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("SESSION_NUM") 
2997
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2998
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2999
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3000
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3001
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3002
--------------------------------------------------------
3003
--  DDL for Index UNQ_RTD
3004
--------------------------------------------------------
4040 dpurdie 3005
 
5172 dpurdie 3006
  CREATE INDEX "RELEASE_MANAGER"."UNQ_RTD" ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ("PV_ID", "RTD_ID") 
3007
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3008
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3009
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3010
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3011
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 3012
--------------------------------------------------------
5892 dpurdie 3013
--  DDL for Index BUILD_PLAN_PK
3014
--------------------------------------------------------
3015
 
3016
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_PLAN_PK" ON "RELEASE_MANAGER"."BUILD_PLAN" ("RTAG_ID", "BUILD_ORDER", "PV_ID") 
3017
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3018
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3019
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3020
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3021
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5892 dpurdie 3022
--------------------------------------------------------
5172 dpurdie 3023
--  DDL for Index SDK_CONTENT_INDEX1
3024
--------------------------------------------------------
3025
 
3026
  CREATE INDEX "RELEASE_MANAGER"."SDK_CONTENT_INDEX1" ON "RELEASE_MANAGER"."SDK_CONTENT" ("SDKTAG_ID") 
3027
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3028
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3029
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3030
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3031
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3032
--------------------------------------------------------
3033
--  DDL for Index CQ_STATEDEF_PK
3034
--------------------------------------------------------
3035
 
3036
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_STATEDEF_PK" ON "RELEASE_MANAGER"."CQ_STATEDEF" ("ID") 
3037
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3038
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3039
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3040
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3041
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3042
--------------------------------------------------------
4211 dpurdie 3043
--  DDL for Index INX_RL_RTAG_ID
4040 dpurdie 3044
--------------------------------------------------------
3045
 
5172 dpurdie 3046
  CREATE INDEX "RELEASE_MANAGER"."INX_RL_RTAG_ID" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("RTAG_ID") 
3047
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3048
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3049
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3050
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3051
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3052
--------------------------------------------------------
4211 dpurdie 3053
--  DDL for Index UNQ_VIEW_DEF
4040 dpurdie 3054
--------------------------------------------------------
3055
 
5172 dpurdie 3056
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEW_DEF" ON "RELEASE_MANAGER"."VIEW_DEF" ("VIEW_ID", "PKG_ID") 
3057
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3058
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3059
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3060
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3061
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3062
--------------------------------------------------------
4211 dpurdie 3063
--  DDL for Index INX_PACKAGES_PKG_NAME
4040 dpurdie 3064
--------------------------------------------------------
3065
 
5172 dpurdie 3066
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_NAME" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID") 
3067
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3068
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3069
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3070
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3071
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3072
--------------------------------------------------------
4211 dpurdie 3073
--  DDL for Index INX_PCOMP_FK_PV_ID
4040 dpurdie 3074
--------------------------------------------------------
3075
 
5172 dpurdie 3076
  CREATE INDEX "RELEASE_MANAGER"."INX_PCOMP_FK_PV_ID" ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" ("PV_ID") 
3077
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3078
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3079
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3080
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3081
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3082
--------------------------------------------------------
4211 dpurdie 3083
--  DDL for Index DAEMON_INSTRUCTIONS_UK1
4040 dpurdie 3084
--------------------------------------------------------
3085
 
5172 dpurdie 3086
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS_UK1" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("OP_CODE", "RTAG_ID", "PV_ID") 
3087
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3088
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3089
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3090
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3091
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3092
--------------------------------------------------------
4211 dpurdie 3093
--  DDL for Index INX_FILE_NAME
4040 dpurdie 3094
--------------------------------------------------------
3095
 
5172 dpurdie 3096
  CREATE INDEX "RELEASE_MANAGER"."INX_FILE_NAME" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" (UPPER("FILE_NAME")) 
3097
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3098
  STORAGE(INITIAL 1147142144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3099
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3100
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3101
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3102
--------------------------------------------------------
4211 dpurdie 3103
--  DDL for Index INX_IS_PATCH_IGNORE
4040 dpurdie 3104
--------------------------------------------------------
3105
 
5172 dpurdie 3106
  CREATE INDEX "RELEASE_MANAGER"."INX_IS_PATCH_IGNORE" ON "RELEASE_MANAGER"."IGNORE_WARNINGS" ("IS_PATCH_IGNORE") 
3107
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3108
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3109
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3110
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3111
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3112
--------------------------------------------------------
6031 dpurdie 3113
--  DDL for Index PK_TEST_RUN
3114
--------------------------------------------------------
3115
 
3116
  CREATE INDEX "RELEASE_MANAGER"."PK_TEST_RUN" ON "RELEASE_MANAGER"."TEST_RUN" ("TESTRUN_ID") 
3117
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3118
  STORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3119
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3120
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3121
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3122
--------------------------------------------------------
4211 dpurdie 3123
--  DDL for Index UNQ_BUILD_ENV_DOCS
4040 dpurdie 3124
--------------------------------------------------------
3125
 
5172 dpurdie 3126
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV_DOCS" ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" ("BE_ID", "DOC_NUM") 
3127
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3128
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3129
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3130
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3131
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3132
--------------------------------------------------------
4211 dpurdie 3133
--  DDL for Index INX_PROJ_ACTION_LOG_PROJ
4040 dpurdie 3134
--------------------------------------------------------
3135
 
5172 dpurdie 3136
  CREATE INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_LOG_PROJ" ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ("PROJ_ID") 
3137
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3138
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3139
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3140
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3141
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 3142
--------------------------------------------------------
5384 dpurdie 3143
--  DDL for Index LICENCING_PK
3144
--------------------------------------------------------
3145
 
3146
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."LICENCING_PK" ON "RELEASE_MANAGER"."LICENCING" ("PV_ID", "LICENCE") 
3147
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3148
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3149
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3150
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3151
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3152
--------------------------------------------------------
5172 dpurdie 3153
--  DDL for Index BUILD_SERVICE_CONFIG_INDEX1
3154
--------------------------------------------------------
3155
 
3156
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG_INDEX1" ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" ("SERVICE") 
3157
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3158
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3159
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3160
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3161
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 3162
--------------------------------------------------------
3163
--  DDL for Index RELEASE_MODIFIED_PK
3164
--------------------------------------------------------
3165
 
3166
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."RELEASE_MODIFIED_PK" ON "RELEASE_MANAGER"."RELEASE_MODIFIED" ("RTAG_ID") 
3167
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3168
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3169
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3170
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3171
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3172
--------------------------------------------------------
3173
--  DDL for Index CQ_HISTORY_INDEX2
3174
--------------------------------------------------------
3175
 
3176
  CREATE INDEX "RELEASE_MANAGER"."CQ_HISTORY_INDEX2" ON "RELEASE_MANAGER"."CQ_HISTORY" ("ENTITYDEF_ID") 
3177
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3178
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3179
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3180
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3181
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3182
--------------------------------------------------------
3183
--  DDL for Index INX_TTB_LEVEL_NUM
3184
--------------------------------------------------------
3185
 
5172 dpurdie 3186
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_LEVEL_NUM" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("LEVEL_NUM") 
3187
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3188
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3189
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3190
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3191
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3192
--------------------------------------------------------
4211 dpurdie 3193
--  DDL for Index UNQ_WORK_IN_PROGRESS
4040 dpurdie 3194
--------------------------------------------------------
3195
 
5172 dpurdie 3196
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_WORK_IN_PROGRESS" ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" ("RTAG_ID", "PV_ID") 
3197
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3198
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3199
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3200
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3201
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3202
--------------------------------------------------------
4211 dpurdie 3203
--  DDL for Index INX_PACKAGES_V_NMM
4040 dpurdie 3204
--------------------------------------------------------
3205
 
6600 dpurdie 3206
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_NMM" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_NMM", "PV_ID") 
5172 dpurdie 3207
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3208
  STORAGE(INITIAL 9437184 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3209
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3210
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3211
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3212
--------------------------------------------------------
6031 dpurdie 3213
--  DDL for Index TEST_RUN_IDX_BUILD_ID
3214
--------------------------------------------------------
3215
 
3216
  CREATE INDEX "RELEASE_MANAGER"."TEST_RUN_IDX_BUILD_ID" ON "RELEASE_MANAGER"."TEST_RUN" ("BUILD_ID") 
3217
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3218
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3219
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3220
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3221
  TABLESPACE "RELEASE_MANAGER_DATA" ;
3222
--------------------------------------------------------
4211 dpurdie 3223
--  DDL for Index UNQ_PLANNED
4040 dpurdie 3224
--------------------------------------------------------
3225
 
5172 dpurdie 3226
  CREATE INDEX "RELEASE_MANAGER"."UNQ_PLANNED" ON "RELEASE_MANAGER"."PLANNED" ("RTAG_ID", "PV_ID") 
3227
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3228
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3229
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3230
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3231
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3232
--------------------------------------------------------
4211 dpurdie 3233
--  DDL for Index INX_TES_PKGEXT
4040 dpurdie 3234
--------------------------------------------------------
3235
 
5172 dpurdie 3236
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_PKGEXT" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("PKG_ID", "V_EXT") 
3237
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3238
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3239
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3240
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3241
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3242
--------------------------------------------------------
3243
--  DDL for Index UNQ_BUILD_MACHINE_CONFIG01
3244
--------------------------------------------------------
4040 dpurdie 3245
 
5172 dpurdie 3246
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_MACHINE_CONFIG01" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" (LOWER("DISPLAY_NAME")) 
3247
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3248
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3249
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3250
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3251
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3252
--------------------------------------------------------
5384 dpurdie 3253
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX2
3254
--------------------------------------------------------
3255
 
3256
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX2" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("STATE") 
3257
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3258
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3259
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3260
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3261
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3262
--------------------------------------------------------
3263
--  DDL for Index TEMP_ENV_DEPS_PK
3264
--------------------------------------------------------
3265
 
3266
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."TEMP_ENV_DEPS_PK" ON "RELEASE_MANAGER"."TEMP_ENV_DEPS" ("PV_ID", "SESSION_NUM", "DPV_ID") 
3267
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3268
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3269
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3270
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3271
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3272
--------------------------------------------------------
4211 dpurdie 3273
--  DDL for Index UNQ_RELEASE_LINKS
4040 dpurdie 3274
--------------------------------------------------------
3275
 
5172 dpurdie 3276
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_LINKS" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("RTAG_ID", "REF_RTAG_ID") 
3277
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3278
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3279
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3280
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3281
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3282
--------------------------------------------------------
3283
--  DDL for Index UNQ_PKG_DOC
3284
--------------------------------------------------------
4040 dpurdie 3285
 
5172 dpurdie 3286
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PKG_DOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID", "DOC_NUM") 
3287
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3288
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3289
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3290
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3291
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3292
--------------------------------------------------------
3293
--  DDL for Index LXR_STATE_PK
3294
--------------------------------------------------------
3295
 
3296
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."LXR_STATE_PK" ON "RELEASE_MANAGER"."LXR_STATE" ("RTAG_ID") 
3297
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3298
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3299
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3300
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3301
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3302
--------------------------------------------------------
4211 dpurdie 3303
--  DDL for Index DAEMON_INSTRUCTIONS_PK
4040 dpurdie 3304
--------------------------------------------------------
3305
 
5172 dpurdie 3306
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS_PK" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("DAEMON_INSTRUCTIONS_ID") 
3307
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3308
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3309
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3310
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3311
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3312
--------------------------------------------------------
3313
--  DDL for Index INX_DAEMON_INST_SCHED_DATETIME
3314
--------------------------------------------------------
4040 dpurdie 3315
 
5172 dpurdie 3316
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_SCHED_DATETIME" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("SCHEDULED_DATETIME") 
3317
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3318
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3319
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3320
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3321
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3322
--------------------------------------------------------
4211 dpurdie 3323
--  DDL for Index INX_TTB_PKG
4040 dpurdie 3324
--------------------------------------------------------
3325
 
5172 dpurdie 3326
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_PKG" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("PKG_ID", "V_EXT") 
3327
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3328
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3329
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3330
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3331
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3332
--------------------------------------------------------
3333
--  DDL for Index PACKAGE_VERSIONS_MODIFER_ID
3334
--------------------------------------------------------
3335
 
3336
  CREATE INDEX "RELEASE_MANAGER"."PACKAGE_VERSIONS_MODIFER_ID" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("MODIFIER_ID") 
3337
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3338
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3339
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3340
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3341
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3342
--------------------------------------------------------
4211 dpurdie 3343
--  DDL for Index UNQ_VALIDATION_RULES
4040 dpurdie 3344
--------------------------------------------------------
3345
 
6031 dpurdie 3346
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VALIDATION_RULES" ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" ("FIELD_NAME") 
5172 dpurdie 3347
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3348
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3349
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3350
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3351
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3352
--------------------------------------------------------
3353
--  DDL for Index BUILD_STANDARDS_ADDENDUM_PK
3354
--------------------------------------------------------
4040 dpurdie 3355
 
5172 dpurdie 3356
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM_PK" ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ("BSA_ID") 
3357
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3358
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3359
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3360
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3361
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3362
--------------------------------------------------------
4211 dpurdie 3363
--  DDL for Index INX_PV_OWNER_ID
4040 dpurdie 3364
--------------------------------------------------------
3365
 
5172 dpurdie 3366
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_OWNER_ID" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("OWNER_ID") 
3367
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3368
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3369
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3370
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3371
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3372
--------------------------------------------------------
4211 dpurdie 3373
--  DDL for Index INX_TES_TES_STATE
4040 dpurdie 3374
--------------------------------------------------------
3375
 
5172 dpurdie 3376
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_TES_STATE" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("TES_STATE") 
3377
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3378
  STORAGE(INITIAL 458752 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3379
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3380
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3381
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3382
--------------------------------------------------------
4308 dpurdie 3383
--  DDL for Index UNQ_AN_PART1
3384
--------------------------------------------------------
4040 dpurdie 3385
 
5172 dpurdie 3386
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_AN_PART1" ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" ("PV_ID", "NOTE_ID") 
3387
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3388
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3389
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3390
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3391
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3392
--------------------------------------------------------
4211 dpurdie 3393
--  DDL for Index UNQ_RELEASE_CONTENTS
4040 dpurdie 3394
--------------------------------------------------------
3395
 
5172 dpurdie 3396
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_CONTENTS" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("RTAG_ID", "PV_ID") 
3397
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3398
  STORAGE(INITIAL 10485760 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3399
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3400
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3401
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3402
--------------------------------------------------------
3403
--  DDL for Index INX_ACTION_LOG_PV_ID
3404
--------------------------------------------------------
4040 dpurdie 3405
 
5172 dpurdie 3406
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_LOG_PV_ID" ON "RELEASE_MANAGER"."ACTION_LOG" ("PV_ID") 
3407
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3408
  STORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3409
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3410
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3411
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3412
--------------------------------------------------------
4211 dpurdie 3413
--  DDL for Index UNQ_TEST_TYPE_NAME
4040 dpurdie 3414
--------------------------------------------------------
3415
 
5172 dpurdie 3416
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_TEST_TYPE_NAME" ON "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_NAME") 
3417
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3418
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3419
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3420
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3421
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 3422
--------------------------------------------------------
3423
--  DDL for Index PEGGED_VERSIONS_INDEX1
3424
--------------------------------------------------------
3425
 
3426
  CREATE INDEX "RELEASE_MANAGER"."PEGGED_VERSIONS_INDEX1" ON "RELEASE_MANAGER"."PEGGED_VERSIONS" ("RTAG_ID", "PV_ID") 
3427
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3428
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3429
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3430
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3431
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3432
--------------------------------------------------------
4308 dpurdie 3433
--  DDL for Index PKNOTE_MANAGER1
3434
--------------------------------------------------------
4040 dpurdie 3435
 
5172 dpurdie 3436
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PKNOTE_MANAGER1" ON "RELEASE_MANAGER"."NOTE_MANAGER" ("NID") 
3437
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3438
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3439
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3440
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3441
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3442
--------------------------------------------------------
3443
--  DDL for Index INX_PACKAGES_V_MM
3444
--------------------------------------------------------
4040 dpurdie 3445
 
6600 dpurdie 3446
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_MM" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_MM", "PV_ID") 
5172 dpurdie 3447
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3448
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3449
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3450
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3451
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3452
--------------------------------------------------------
3453
--  DDL for Index INX_CODE_REVIEW
3454
--------------------------------------------------------
4040 dpurdie 3455
 
5172 dpurdie 3456
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_CODE_REVIEW" ON "RELEASE_MANAGER"."CODE_REVIEWS" ("PV_ID") 
3457
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3458
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3459
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3460
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3461
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3462
--------------------------------------------------------
4211 dpurdie 3463
--  DDL for Index UNQ_VTREES
4040 dpurdie 3464
--------------------------------------------------------
3465
 
5172 dpurdie 3466
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VTREES" ON "RELEASE_MANAGER"."VTREES" ("PROJ_ID", "VTREE_NAME") 
3467
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3468
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3469
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3470
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3471
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3472
--------------------------------------------------------
3473
--  DDL for Index INX_PACKAGE_DEPS_PKG_ID
3474
--------------------------------------------------------
4040 dpurdie 3475
 
5172 dpurdie 3476
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PKG_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PKG_ID") 
3477
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3478
  STORAGE(INITIAL 83886080 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3479
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3480
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3481
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3482
--------------------------------------------------------
4211 dpurdie 3483
--  DDL for Index UNQ_PROJECTS
4040 dpurdie 3484
--------------------------------------------------------
3485
 
5172 dpurdie 3486
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PROJECTS" ON "RELEASE_MANAGER"."PROJECTS" ("PROJ_NAME") 
3487
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3488
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3489
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3490
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3491
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3492
--------------------------------------------------------
3493
--  DDL for Index INX_PACKAGES_V_EXT
3494
--------------------------------------------------------
4040 dpurdie 3495
 
5172 dpurdie 3496
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_EXT" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_EXT") 
3497
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3498
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3499
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3500
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3501
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3502
--------------------------------------------------------
4211 dpurdie 3503
--  DDL for Index PK_PROJECTS
4040 dpurdie 3504
--------------------------------------------------------
3505
 
5172 dpurdie 3506
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PROJECTS" ON "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") 
3507
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3508
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3509
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3510
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3511
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3512
--------------------------------------------------------
3513
--  DDL for Index INX_TES_PV
3514
--------------------------------------------------------
4040 dpurdie 3515
 
5172 dpurdie 3516
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_PV" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("PV_ID") 
3517
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3518
  STORAGE(INITIAL 851968 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3519
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3520
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3521
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3522
--------------------------------------------------------
5384 dpurdie 3523
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX5
3524
--------------------------------------------------------
3525
 
3526
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX5" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PRODUCT") 
3527
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3528
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3529
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3530
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3531
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3532
--------------------------------------------------------
4211 dpurdie 3533
--  DDL for Index UNQ_VTREE_WORLD
4040 dpurdie 3534
--------------------------------------------------------
3535
 
5172 dpurdie 3536
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VTREE_WORLD" ON "RELEASE_MANAGER"."VTREES_WORLD" ("WORLD_ID", "VTREE_ID") 
3537
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3538
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3539
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3540
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3541
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3542
--------------------------------------------------------
4308 dpurdie 3543
--  DDL for Index UNQ_IGW
3544
--------------------------------------------------------
4040 dpurdie 3545
 
5172 dpurdie 3546
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_IGW" ON "RELEASE_MANAGER"."IGNORE_WARNINGS" ("RTAG_ID", "PV_ID", "DPV_ID") 
3547
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3548
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3549
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3550
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3551
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3552
--------------------------------------------------------
3553
--  DDL for Index INX_DAEMON_INST_RTAG_ID
3554
--------------------------------------------------------
4040 dpurdie 3555
 
5172 dpurdie 3556
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_RTAG_ID" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("RTAG_ID") 
3557
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3558
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3559
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3560
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3561
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 3562
--------------------------------------------------------
3563
--  DDL for Index SDK_TAGS_PK
3564
--------------------------------------------------------
3565
 
3566
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_TAGS_PK" ON "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") 
3567
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3568
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3569
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3570
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3571
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3572
--------------------------------------------------------
3573
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX7
3574
--------------------------------------------------------
3575
 
3576
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX7" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("DEPENDANT_DEVIS") 
3577
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3578
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3579
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3580
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3581
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3582
--------------------------------------------------------
3583
--  DDL for Index PK_NOTIFICATION_HISTORY
3584
--------------------------------------------------------
4040 dpurdie 3585
 
5172 dpurdie 3586
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_NOTIFICATION_HISTORY" ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ("RTAG_ID", "PV_ID", "USER_ID") 
3587
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3588
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3589
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3590
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3591
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3592
--------------------------------------------------------
3593
--  DDL for Index UNQ_PACKAGE_DEPENDENCIES
3594
--------------------------------------------------------
4040 dpurdie 3595
 
5172 dpurdie 3596
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_DEPENDENCIES" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PV_ID", "DPV_ID") 
3597
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3598
  STORAGE(INITIAL 100663296 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3599
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3600
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3601
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3602
--------------------------------------------------------
6600 dpurdie 3603
--  DDL for Index PACKAGE_PATCHES_INDEX1
3604
--------------------------------------------------------
3605
 
3606
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PACKAGE_PATCHES_INDEX1" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PV_ID", "PATCH_ID") 
3607
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3608
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3609
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3610
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3611
  TABLESPACE "RELEASE_MANAGER_DATA" ;
3612
--------------------------------------------------------
4308 dpurdie 3613
--  DDL for Index INX_PACKAGE_DEPS_PV_ID
3614
--------------------------------------------------------
4040 dpurdie 3615
 
5172 dpurdie 3616
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PV_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PV_ID") 
3617
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3618
  STORAGE(INITIAL 75497472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3619
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3620
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3621
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3622
--------------------------------------------------------
4211 dpurdie 3623
--  DDL for Index BUILD_STANDARDS_PK
4040 dpurdie 3624
--------------------------------------------------------
3625
 
5172 dpurdie 3626
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_PK" ON "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") 
3627
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3628
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3629
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3630
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3631
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3632
--------------------------------------------------------
3633
--  DDL for Index UNQ_CQ
3634
--------------------------------------------------------
4040 dpurdie 3635
 
5172 dpurdie 3636
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_CQ" ON "RELEASE_MANAGER"."CQ_ISSUES" ("PV_ID", "ISS_ID", "ISS_DB") 
3637
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3638
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3639
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3640
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3641
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3642
--------------------------------------------------------
4211 dpurdie 3643
--  DDL for Index UNQ_PACKAGE_VERSIONS
4040 dpurdie 3644
--------------------------------------------------------
3645
 
5172 dpurdie 3646
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_VERSIONS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID", "PKG_VERSION") 
3647
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3648
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3649
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3650
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3651
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3652
--------------------------------------------------------
3653
--  DDL for Index INX_PV_ID_TEST_ID_PKGDOC
3654
--------------------------------------------------------
4040 dpurdie 3655
 
5172 dpurdie 3656
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_ID_TEST_ID_PKGDOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID", "TEST_ID") 
3657
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3658
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3659
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3660
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3661
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3662
--------------------------------------------------------
4211 dpurdie 3663
--  DDL for Index UNQ_PACKAGE_PATCHES
4040 dpurdie 3664
--------------------------------------------------------
3665
 
5172 dpurdie 3666
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_PATCHES" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PATCH_ID") 
3667
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3668
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3669
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3670
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3671
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3672
--------------------------------------------------------
5384 dpurdie 3673
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX3
3674
--------------------------------------------------------
3675
 
3676
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX3" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PACKAGE_REF") 
3677
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3678
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3679
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3680
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3681
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3682
--------------------------------------------------------
3683
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX4
3684
--------------------------------------------------------
3685
 
3686
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX4" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PROJECT") 
3687
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3688
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3689
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3690
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3691
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3692
--------------------------------------------------------
4308 dpurdie 3693
--  DDL for Index UNQ_REL_COMPONENTS
3694
--------------------------------------------------------
4040 dpurdie 3695
 
5172 dpurdie 3696
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_REL_COMPONENTS" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" ("PV_ID", "FILE_NAME", "FILE_PATH") 
3697
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3698
  STORAGE(INITIAL 3489660928 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3699
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3700
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3701
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3702
--------------------------------------------------------
3703
--  DDL for Index PK_PACKAGE_VERSIONS
3704
--------------------------------------------------------
4040 dpurdie 3705
 
5172 dpurdie 3706
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PACKAGE_VERSIONS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") 
3707
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3708
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3709
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3710
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3711
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3712
--------------------------------------------------------
3713
--  DDL for Index UNQ_RELEASE_METRICS
3714
--------------------------------------------------------
4040 dpurdie 3715
 
5172 dpurdie 3716
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_METRICS" ON "RELEASE_MANAGER"."RELEASE_METRICS" ("RTAG_ID") 
3717
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3718
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3719
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3720
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3721
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3722
--------------------------------------------------------
3723
--  DDL for Index UNQ_BUILD_ORDER
3724
--------------------------------------------------------
4040 dpurdie 3725
 
5172 dpurdie 3726
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ORDER" ON "RELEASE_MANAGER"."BUILD_ORDER" ("RTAG_ID", "PV_ID", "STEP_NUM") 
3727
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3728
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3729
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3730
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3731
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3732
--------------------------------------------------------
3733
--  DDL for Index PK_BUILD_ENVIRONMENTS
3734
--------------------------------------------------------
4040 dpurdie 3735
 
5172 dpurdie 3736
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_BUILD_ENVIRONMENTS" ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") 
3737
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3738
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3739
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3740
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3741
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3742
--------------------------------------------------------
3743
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX1
3744
--------------------------------------------------------
3745
 
3746
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX1" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("DBID") 
3747
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3748
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3749
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3750
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3751
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3752
--------------------------------------------------------
3753
--  DDL for Index INX_PACKAGE_DEPS_DPKG_ID
3754
--------------------------------------------------------
4040 dpurdie 3755
 
5172 dpurdie 3756
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPKG_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPKG_ID") 
3757
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3758
  STORAGE(INITIAL 83886080 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3759
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3760
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3761
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3762
--------------------------------------------------------
3763
--  DDL for Index INX_RL_REFRTAG_ID
3764
--------------------------------------------------------
4040 dpurdie 3765
 
5172 dpurdie 3766
  CREATE INDEX "RELEASE_MANAGER"."INX_RL_REFRTAG_ID" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("REF_RTAG_ID") 
3767
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3768
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3769
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3770
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3771
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3772
--------------------------------------------------------
3773
--  DDL for Index INX_RC_BASE_VIEW_ID
3774
--------------------------------------------------------
4040 dpurdie 3775
 
5172 dpurdie 3776
  CREATE INDEX "RELEASE_MANAGER"."INX_RC_BASE_VIEW_ID" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("BASE_VIEW_ID") 
3777
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3778
  STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3779
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3780
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3781
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3782
--------------------------------------------------------
3783
--  DDL for Index INX_DAEMON_INST_PV_ID
3784
--------------------------------------------------------
4211 dpurdie 3785
 
5172 dpurdie 3786
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_PV_ID" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("PV_ID") 
3787
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3788
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3789
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3790
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3791
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3792
--------------------------------------------------------
4040 dpurdie 3793
--  DDL for Index UNQ_PROJECT_EXT
3794
--------------------------------------------------------
3795
 
5172 dpurdie 3796
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PROJECT_EXT" ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" ("PROJ_ID", "EXT_NAME") 
3797
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3798
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3799
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3800
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3801
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3802
--------------------------------------------------------
3803
--  DDL for Index VCS_TYPE_PK
3804
--------------------------------------------------------
4040 dpurdie 3805
 
5172 dpurdie 3806
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."VCS_TYPE_PK" ON "RELEASE_MANAGER"."VCS_TYPE" ("VCS_TYPE_ID") 
3807
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3808
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3809
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3810
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3811
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3812
--------------------------------------------------------
4211 dpurdie 3813
--  DDL for Index INX_PC_FILE_NAME
4040 dpurdie 3814
--------------------------------------------------------
3815
 
5172 dpurdie 3816
  CREATE INDEX "RELEASE_MANAGER"."INX_PC_FILE_NAME" ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" (UPPER("FILE_NAME")) 
3817
  PCTFREE 10 INITRANS 2 MAXTRANS 167 COMPUTE STATISTICS 
3818
  STORAGE(INITIAL 18874368 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3819
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3820
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3821
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3822
--------------------------------------------------------
3823
--  DDL for Index PK_RELEASE_TAGS
3824
--------------------------------------------------------
4040 dpurdie 3825
 
5172 dpurdie 3826
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_RELEASE_TAGS" ON "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") 
3827
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3828
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3829
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3830
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3831
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3832
--------------------------------------------------------
4211 dpurdie 3833
--  DDL for Index FK_PROJ_ID_RELEASE_TAGS
4040 dpurdie 3834
--------------------------------------------------------
3835
 
5172 dpurdie 3836
  CREATE INDEX "RELEASE_MANAGER"."FK_PROJ_ID_RELEASE_TAGS" ON "RELEASE_MANAGER"."RELEASE_TAGS" ("PROJ_ID") 
3837
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3838
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3839
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3840
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3841
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3842
--------------------------------------------------------
4211 dpurdie 3843
--  DDL for Index INX_RCOMP_PV_ID
4040 dpurdie 3844
--------------------------------------------------------
3845
 
5172 dpurdie 3846
  CREATE INDEX "RELEASE_MANAGER"."INX_RCOMP_PV_ID" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" ("PV_ID") 
3847
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3848
  STORAGE(INITIAL 724566016 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3849
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3850
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3851
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3852
--------------------------------------------------------
3853
--  DDL for Index MICROSOFT_PK_DTPROPERTIES
3854
--------------------------------------------------------
4040 dpurdie 3855
 
5172 dpurdie 3856
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."MICROSOFT_PK_DTPROPERTIES" ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ("ID", "PROPERTY") 
3857
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3858
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3859
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3860
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3861
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 3862
--------------------------------------------------------
3863
--  DDL for Index BUILD_ID
3864
--------------------------------------------------------
3865
 
3866
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_ID" ON "RELEASE_MANAGER"."BUILD_INSTANCES" ("BUILD_ID") 
3867
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3868
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3869
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3870
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3871
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3872
--------------------------------------------------------
4308 dpurdie 3873
--  DDL for Index INX_UT_PV_TEST_TYPE
3874
--------------------------------------------------------
4040 dpurdie 3875
 
5172 dpurdie 3876
  CREATE INDEX "RELEASE_MANAGER"."INX_UT_PV_TEST_TYPE" ON "RELEASE_MANAGER"."UNIT_TESTS" ("PV_ID", "TEST_TYPES_FK") 
3877
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3878
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3879
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3880
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3881
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3882
--------------------------------------------------------
3883
--  DDL for Index PK_WORLDS
3884
--------------------------------------------------------
4040 dpurdie 3885
 
5172 dpurdie 3886
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_WORLDS" ON "RELEASE_MANAGER"."WORLDS" ("WORLD_ID") 
3887
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3888
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3889
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3890
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3891
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5892 dpurdie 3892
--------------------------------------------------------
5384 dpurdie 3893
--  DDL for Index CQ_HISTORY_INDEX1
3894
--------------------------------------------------------
3895
 
3896
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_HISTORY_INDEX1" ON "RELEASE_MANAGER"."CQ_HISTORY" ("DBID") 
3897
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3898
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3899
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3900
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3901
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3902
--------------------------------------------------------
4308 dpurdie 3903
--  DDL for Index UNQ_AN_PART2
3904
--------------------------------------------------------
4040 dpurdie 3905
 
5172 dpurdie 3906
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_AN_PART2" ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" ("PV_ID", "NOTE_TITLE") 
3907
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3908
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3909
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3910
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3911
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3912
--------------------------------------------------------
4211 dpurdie 3913
--  Constraints for Table RELEASE_TAGS
4040 dpurdie 3914
--------------------------------------------------------
3915
 
5172 dpurdie 3916
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" ADD CONSTRAINT "PK_RELEASE_TAGS" PRIMARY KEY ("RTAG_ID")
3917
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3918
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3919
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3920
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3921
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 3922
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("PROJ_ID" NOT NULL ENABLE);
3923
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("PARENT_RTAG_ID" NOT NULL ENABLE);
3924
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("REBUILD_STAMP" NOT NULL ENABLE);
3925
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("REBUILD_ENV" NOT NULL ENABLE);
3926
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("OFFICIAL" NOT NULL ENABLE);
3927
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("RTAG_NAME" NOT NULL ENABLE);
3928
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3929
--------------------------------------------------------
6031 dpurdie 3930
--  Constraints for Table PACKAGE_DOCUMENTS
5172 dpurdie 3931
--------------------------------------------------------
3932
 
6031 dpurdie 3933
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("DOC_NUM" NOT NULL ENABLE);
3934
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("DOC_ID" NOT NULL ENABLE);
3935
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3936
--------------------------------------------------------
6031 dpurdie 3937
--  Constraints for Table AUTOBUILD_FAILURE
5172 dpurdie 3938
--------------------------------------------------------
3939
 
6031 dpurdie 3940
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD PRIMARY KEY ("GROUP_EMAIL_ID")
5172 dpurdie 3941
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3942
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3943
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3944
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3945
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
3946
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" MODIFY ("GROUP_EMAIL_ID" NOT NULL ENABLE);
5172 dpurdie 3947
--------------------------------------------------------
6031 dpurdie 3948
--  Constraints for Table RELEASE_METRICS
5384 dpurdie 3949
--------------------------------------------------------
3950
 
6031 dpurdie 3951
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" ADD CONSTRAINT "UNQ_RELEASE_METRICS" UNIQUE ("RTAG_ID")
5384 dpurdie 3952
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3953
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3954
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3955
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3956
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
3957
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 3958
--------------------------------------------------------
6031 dpurdie 3959
--  Constraints for Table RELEASE_COMPONENTS
4308 dpurdie 3960
--------------------------------------------------------
4040 dpurdie 3961
 
6031 dpurdie 3962
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3963
--------------------------------------------------------
6031 dpurdie 3964
--  Constraints for Table SDK_CONTENT
4040 dpurdie 3965
--------------------------------------------------------
3966
 
6031 dpurdie 3967
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("SDKPKG_STATE" NOT NULL ENABLE);
3968
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("PV_ID" NOT NULL ENABLE);
3969
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("SDKTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3970
--------------------------------------------------------
6031 dpurdie 3971
--  Constraints for Table ACTION_TYPE
4040 dpurdie 3972
--------------------------------------------------------
3973
 
6031 dpurdie 3974
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" ADD CONSTRAINT "UNQ_ACTTYPE_ID" PRIMARY KEY ("ACTTYPE_ID")
3975
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3976
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3977
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3978
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3979
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
3980
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" MODIFY ("NAME" NOT NULL ENABLE);
3981
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
4308 dpurdie 3982
--------------------------------------------------------
6031 dpurdie 3983
--  Constraints for Table PLANNED
4308 dpurdie 3984
--------------------------------------------------------
4211 dpurdie 3985
 
6031 dpurdie 3986
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "UNIQUE_PV_RTAG" UNIQUE ("PV_ID", "RTAG_ID")
5172 dpurdie 3987
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3988
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3989
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3990
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3991
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
3992
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("VIEW_ID" NOT NULL ENABLE);
3993
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("PV_ID" NOT NULL ENABLE);
3994
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3995
--------------------------------------------------------
6031 dpurdie 3996
--  Constraints for Table SDK_TAGS
4040 dpurdie 3997
--------------------------------------------------------
3998
 
6031 dpurdie 3999
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_PK" PRIMARY KEY ("SDKTAG_ID")
4000
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4001
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4002
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4003
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4004
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4005
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDK_STATE" NOT NULL ENABLE);
4006
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4007
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDK_ID" NOT NULL ENABLE);
4008
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDKTAG_NAME" NOT NULL ENABLE);
4009
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDKTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4010
--------------------------------------------------------
6031 dpurdie 4011
--  Constraints for Table RELEASE_MODIFIED
4040 dpurdie 4012
--------------------------------------------------------
4013
 
6031 dpurdie 4014
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" ADD CONSTRAINT "RELEASE_MODIFIED_PK" PRIMARY KEY ("RTAG_ID")
4015
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4016
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4017
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4018
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4019
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4020
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4021
--------------------------------------------------------
6031 dpurdie 4022
--  Constraints for Table PACKAGE_METRICS
4040 dpurdie 4023
--------------------------------------------------------
4024
 
6031 dpurdie 4025
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" ADD CONSTRAINT "UNQ_PACKAGE_METRICS" UNIQUE ("PV_ID")
4026
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4027
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4028
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4029
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4030
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4031
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 4032
--------------------------------------------------------
6031 dpurdie 4033
--  Constraints for Table PACKAGE_BUILD_ENV
4040 dpurdie 4034
--------------------------------------------------------
4035
 
6031 dpurdie 4036
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" MODIFY ("BE_ID" NOT NULL ENABLE);
4037
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 4038
--------------------------------------------------------
6031 dpurdie 4039
--  Constraints for Table PROCESSES
4040 dpurdie 4040
--------------------------------------------------------
4041
 
6031 dpurdie 4042
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" ADD CONSTRAINT "PROCESSES_PK" PRIMARY KEY ("PROC_ID")
5172 dpurdie 4043
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4044
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4045
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4046
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4047
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4048
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" MODIFY ("PROC_NAME" NOT NULL ENABLE);
4049
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" MODIFY ("PROC_ID" NOT NULL ENABLE);
4308 dpurdie 4050
--------------------------------------------------------
6031 dpurdie 4051
--  Constraints for Table BUILD_SERVICE_CONFIG
4308 dpurdie 4052
--------------------------------------------------------
4040 dpurdie 4053
 
6031 dpurdie 4054
  ALTER TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" MODIFY ("CONFIG" NOT NULL ENABLE);
4055
  ALTER TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" MODIFY ("SERVICE" NOT NULL ENABLE);
4308 dpurdie 4056
--------------------------------------------------------
6031 dpurdie 4057
--  Constraints for Table PROJECT_ACTION_LOG
4308 dpurdie 4058
--------------------------------------------------------
4040 dpurdie 4059
 
6031 dpurdie 4060
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
4061
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4062
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("ACTION_DATETIME" NOT NULL ENABLE);
4063
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4308 dpurdie 4064
--------------------------------------------------------
6031 dpurdie 4065
--  Constraints for Table ARCHIVE_ACTION_LOG
4308 dpurdie 4066
--------------------------------------------------------
4040 dpurdie 4067
 
6031 dpurdie 4068
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("DESCRIPTION" NOT NULL ENABLE);
4069
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4070
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("DATE_TIME_STAMP" NOT NULL ENABLE);
4071
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 4072
--------------------------------------------------------
6031 dpurdie 4073
--  Constraints for Table VTREES
4040 dpurdie 4074
--------------------------------------------------------
4075
 
6031 dpurdie 4076
  ALTER TABLE "RELEASE_MANAGER"."VTREES" ADD CONSTRAINT "PK_VTREES" PRIMARY KEY ("VTREE_ID")
5172 dpurdie 4077
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4078
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4079
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4080
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4081
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4082
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("HIDE" NOT NULL ENABLE);
4083
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("VTREE_NAME" NOT NULL ENABLE);
4084
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4085
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("VTREE_ID" NOT NULL ENABLE);
4040 dpurdie 4086
--------------------------------------------------------
4308 dpurdie 4087
--  Constraints for Table GBE_MACHTYPE
4088
--------------------------------------------------------
4040 dpurdie 4089
 
5172 dpurdie 4090
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" ADD PRIMARY KEY ("GBE_ID")
4091
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4092
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4093
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4094
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4095
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4096
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("BM_ID" NOT NULL ENABLE);
5172 dpurdie 4097
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("GBE_VALUE" NOT NULL ENABLE);
4098
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("GBE_ID" NOT NULL ENABLE);
4308 dpurdie 4099
--------------------------------------------------------
6031 dpurdie 4100
--  Constraints for Table PACKAGE_INTEREST
4040 dpurdie 4101
--------------------------------------------------------
4102
 
6031 dpurdie 4103
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("USER_ID" NOT NULL ENABLE);
4104
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4105
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("PKG_ID" NOT NULL ENABLE);
5172 dpurdie 4106
--------------------------------------------------------
6031 dpurdie 4107
--  Constraints for Table PACKAGES
5172 dpurdie 4108
--------------------------------------------------------
4109
 
6031 dpurdie 4110
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" ADD CONSTRAINT "PK_PACKAGES" PRIMARY KEY ("PKG_ID")
4111
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4112
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4113
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4114
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4115
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4116
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" MODIFY ("PKG_NAME" NOT NULL ENABLE);
4117
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" MODIFY ("PKG_ID" NOT NULL ENABLE);
4308 dpurdie 4118
--------------------------------------------------------
6031 dpurdie 4119
--  Constraints for Table IGNORE_WARNINGS
4308 dpurdie 4120
--------------------------------------------------------
4040 dpurdie 4121
 
6031 dpurdie 4122
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("DPV_ID" NOT NULL ENABLE);
4123
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("PV_ID" NOT NULL ENABLE);
4124
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4125
--------------------------------------------------------
6031 dpurdie 4126
--  Constraints for Table PRODUCT_COMPONENTS
4308 dpurdie 4127
--------------------------------------------------------
4040 dpurdie 4128
 
6031 dpurdie 4129
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" MODIFY ("OS_ID" NOT NULL ENABLE);
4130
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 4131
--------------------------------------------------------
4211 dpurdie 4132
--  Constraints for Table TEST_TYPES
4040 dpurdie 4133
--------------------------------------------------------
4134
 
5172 dpurdie 4135
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" ADD CONSTRAINT "PK_TEST_TYPES" PRIMARY KEY ("TEST_TYPE_ID")
4136
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4137
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4138
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4139
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4140
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 4141
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" MODIFY ("TEST_TYPE_NAME" NOT NULL ENABLE);
4142
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" MODIFY ("TEST_TYPE_ID" NOT NULL ENABLE);
4143
--------------------------------------------------------
6031 dpurdie 4144
--  Constraints for Table MICROSOFTDTPROPERTIES
5172 dpurdie 4145
--------------------------------------------------------
4146
 
6031 dpurdie 4147
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ADD CONSTRAINT "MICROSOFT_PK_DTPROPERTIES" PRIMARY KEY ("ID", "PROPERTY")
5172 dpurdie 4148
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4149
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4150
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4151
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4152
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4153
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("VERSION" CONSTRAINT "MICROSOFT_NN_VERSION" NOT NULL ENABLE);
4154
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("PROPERTY" CONSTRAINT "MICROSOFT_NN_PROPERTY" NOT NULL ENABLE);
4155
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("ID" CONSTRAINT "MICROSOFT_NN_ID" NOT NULL ENABLE);
4040 dpurdie 4156
--------------------------------------------------------
6031 dpurdie 4157
--  Constraints for Table PRODUCT_STATES
4040 dpurdie 4158
--------------------------------------------------------
4159
 
6031 dpurdie 4160
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" ADD CONSTRAINT "PRODUCT_STATES_PK" PRIMARY KEY ("STATE_ID")
4161
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4162
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4163
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4164
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4165
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4166
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" MODIFY ("STATE" NOT NULL ENABLE);
4167
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" MODIFY ("STATE_ID" NOT NULL ENABLE);
4040 dpurdie 4168
--------------------------------------------------------
6031 dpurdie 4169
--  Constraints for Table CODE_REVIEWS
4040 dpurdie 4170
--------------------------------------------------------
4171
 
6031 dpurdie 4172
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEWS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 4173
--------------------------------------------------------
6031 dpurdie 4174
--  Constraints for Table RELEASE_CONTENT
4040 dpurdie 4175
--------------------------------------------------------
4176
 
6031 dpurdie 4177
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("PKG_STATE" NOT NULL ENABLE);
4178
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("INSERTOR_ID" NOT NULL ENABLE);
4179
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("INSERT_STAMP" NOT NULL ENABLE);
4180
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("BASE_VIEW_ID" NOT NULL ENABLE);
4181
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("PV_ID" NOT NULL ENABLE);
4182
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4183
--------------------------------------------------------
6031 dpurdie 4184
--  Constraints for Table WORLDS
4040 dpurdie 4185
--------------------------------------------------------
4186
 
6031 dpurdie 4187
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" ADD CONSTRAINT "PK_WORLDS" PRIMARY KEY ("WORLD_ID")
5172 dpurdie 4188
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4189
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4190
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4191
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4192
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4193
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" MODIFY ("WORLD_NAME" NOT NULL ENABLE);
4194
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" MODIFY ("WORLD_ID" NOT NULL ENABLE);
4040 dpurdie 4195
--------------------------------------------------------
6031 dpurdie 4196
--  Constraints for Table PEGGED_VERSIONS
4040 dpurdie 4197
--------------------------------------------------------
4198
 
6031 dpurdie 4199
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" MODIFY ("PV_ID" NOT NULL ENABLE);
4200
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 4201
--------------------------------------------------------
6031 dpurdie 4202
--  Constraints for Table ABT_ACTION_LOG
4308 dpurdie 4203
--------------------------------------------------------
4040 dpurdie 4204
 
6031 dpurdie 4205
  ALTER TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" MODIFY ("RCON_ID" NOT NULL ENABLE);
4040 dpurdie 4206
--------------------------------------------------------
6031 dpurdie 4207
--  Constraints for Table LICENCING
4040 dpurdie 4208
--------------------------------------------------------
4209
 
6031 dpurdie 4210
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD CONSTRAINT "LICENCING_PK" PRIMARY KEY ("PV_ID", "LICENCE")
4211
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4212
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4213
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4214
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4215
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4216
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" MODIFY ("LICENCE" NOT NULL ENABLE);
4217
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 4218
--------------------------------------------------------
4211 dpurdie 4219
--  Constraints for Table DASH_BOARD
4040 dpurdie 4220
--------------------------------------------------------
4221
 
5172 dpurdie 4222
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("TOTAL_PACKAGES" NOT NULL ENABLE);
4223
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("AUTOMATED_PACKAGES" NOT NULL ENABLE);
4224
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("LAST_BUILD_TIME" NOT NULL ENABLE);
4225
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4226
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4040 dpurdie 4227
--------------------------------------------------------
6031 dpurdie 4228
--  Constraints for Table BUILD_INSTANCES
4040 dpurdie 4229
--------------------------------------------------------
4230
 
6031 dpurdie 4231
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_ID" PRIMARY KEY ("BUILD_ID")
5172 dpurdie 4232
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4233
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4234
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4235
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4236
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4237
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("STATE" NOT NULL ENABLE);
4238
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("TIMESTAMP" NOT NULL ENABLE);
4239
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("PV_ID" NOT NULL ENABLE);
4240
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4241
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("BUILD_ID" NOT NULL ENABLE);
4040 dpurdie 4242
--------------------------------------------------------
6031 dpurdie 4243
--  Constraints for Table NOTE_MANAGER
4040 dpurdie 4244
--------------------------------------------------------
4245
 
6031 dpurdie 4246
  ALTER TABLE "RELEASE_MANAGER"."NOTE_MANAGER" ADD CONSTRAINT "PKNOTE_MANAGER1" PRIMARY KEY ("NID")
5172 dpurdie 4247
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4248
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4249
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4250
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4251
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4252
  ALTER TABLE "RELEASE_MANAGER"."NOTE_MANAGER" MODIFY ("NID" NOT NULL ENABLE);
4253
--------------------------------------------------------
4254
--  Constraints for Table NOTIFICATION_HISTORY
4040 dpurdie 4255
--------------------------------------------------------
5384 dpurdie 4256
 
6031 dpurdie 4257
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "PK_NOTIFICATION_HISTORY" PRIMARY KEY ("RTAG_ID", "PV_ID", "USER_ID")
5384 dpurdie 4258
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4259
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4260
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4261
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4262
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4263
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("DATE_TIME_STAMP" NOT NULL ENABLE);
4264
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("USER_ID" NOT NULL ENABLE);
4265
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("PV_ID" NOT NULL ENABLE);
4266
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4267
--------------------------------------------------------
6031 dpurdie 4268
--  Constraints for Table ACTION_LOG
4269
--------------------------------------------------------
4040 dpurdie 4270
 
6031 dpurdie 4271
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTION_TIMESTAMP" NOT NULL ENABLE);
4272
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
4273
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("PV_ID" NOT NULL ENABLE);
4274
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTION_DATETIME" NOT NULL ENABLE);
4275
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 4276
--------------------------------------------------------
6031 dpurdie 4277
--  Constraints for Table RELEASE_LINKS
4040 dpurdie 4278
--------------------------------------------------------
4279
 
6031 dpurdie 4280
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" MODIFY ("REF_RTAG_ID" NOT NULL ENABLE);
4281
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4282
--------------------------------------------------------
6031 dpurdie 4283
--  Constraints for Table VTREES_WORLD
4040 dpurdie 4284
--------------------------------------------------------
4285
 
6031 dpurdie 4286
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" MODIFY ("VTREE_ID" NOT NULL ENABLE);
4287
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" MODIFY ("WORLD_ID" NOT NULL ENABLE);
4040 dpurdie 4288
--------------------------------------------------------
6031 dpurdie 4289
--  Constraints for Table DAEMON_ACTION_LOG
4040 dpurdie 4290
--------------------------------------------------------
4291
 
6031 dpurdie 4292
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" MODIFY ("RCON_ID" NOT NULL ENABLE);
4293
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 4294
--------------------------------------------------------
6031 dpurdie 4295
--  Constraints for Table BUILD_STANDARDS_ADDENDUM
4296
--------------------------------------------------------
4297
 
4298
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ADD CONSTRAINT "BUILD_STANDARDS_ADDENDUM_PK" PRIMARY KEY ("BSA_ID")
4299
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4300
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4301
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4302
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4303
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4304
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BS_ID" NOT NULL ENABLE);
4305
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BSA_NAME" NOT NULL ENABLE);
4306
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BSA_ID" NOT NULL ENABLE);
4307
--------------------------------------------------------
4308
--  Constraints for Table BUILD_MACHINES
5892 dpurdie 4309
--------------------------------------------------------
4310
 
6031 dpurdie 4311
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" ADD CONSTRAINT "BUILD_MACHINES_PK" PRIMARY KEY ("BM_ID")
5892 dpurdie 4312
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4313
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4314
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4315
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4316
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4317
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" MODIFY ("BM_NAME" NOT NULL ENABLE);
4318
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" MODIFY ("BM_ID" NOT NULL ENABLE);
4040 dpurdie 4319
--------------------------------------------------------
6031 dpurdie 4320
--  Constraints for Table PLATFORMS
4321
--------------------------------------------------------
4040 dpurdie 4322
 
6031 dpurdie 4323
  ALTER TABLE "RELEASE_MANAGER"."PLATFORMS" MODIFY ("NAME" NOT NULL ENABLE);
4324
  ALTER TABLE "RELEASE_MANAGER"."PLATFORMS" MODIFY ("CODE" NOT NULL ENABLE);
4040 dpurdie 4325
--------------------------------------------------------
6031 dpurdie 4326
--  Constraints for Table WORK_IN_PROGRESS
4040 dpurdie 4327
--------------------------------------------------------
4328
 
6031 dpurdie 4329
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4330
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("PV_ID" NOT NULL ENABLE);
4331
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4332
--------------------------------------------------------
6031 dpurdie 4333
--  Constraints for Table CQ_ISSUES
4040 dpurdie 4334
--------------------------------------------------------
4335
 
6031 dpurdie 4336
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
4337
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_STATE" NOT NULL ENABLE);
4338
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_ID" NOT NULL ENABLE);
4339
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_DB" NOT NULL ENABLE);
4340
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 4341
--------------------------------------------------------
6031 dpurdie 4342
--  Constraints for Table BUILD_ORDER
4343
--------------------------------------------------------
5384 dpurdie 4344
 
6031 dpurdie 4345
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("PV_ID" NOT NULL ENABLE);
4346
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("STEP_NUM" NOT NULL ENABLE);
4347
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4348
--------------------------------------------------------
4349
--  Constraints for Table VALIDATION_RULES_DELETE_ME
4350
--------------------------------------------------------
4351
 
4352
  ALTER TABLE "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" MODIFY ("IS_REQUIRED" NOT NULL ENABLE);
4353
  ALTER TABLE "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" MODIFY ("FIELD_NAME" NOT NULL ENABLE);
4354
--------------------------------------------------------
4211 dpurdie 4355
--  Constraints for Table CODE_REVIEW_URL
4040 dpurdie 4356
--------------------------------------------------------
4357
 
5172 dpurdie 4358
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PK" PRIMARY KEY ("CR_ID")
4359
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4360
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4361
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4362
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4363
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 4364
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("DATE_OF_REVIEW" NOT NULL ENABLE);
4365
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("URL" NOT NULL ENABLE);
4366
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4367
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("PV_ID" NOT NULL ENABLE);
4368
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("CR_ID" NOT NULL ENABLE);
5384 dpurdie 4369
--------------------------------------------------------
6031 dpurdie 4370
--  Constraints for Table RELEASE_CONFIG
5384 dpurdie 4371
--------------------------------------------------------
4372
 
6031 dpurdie 4373
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD PRIMARY KEY ("RCON_ID")
5384 dpurdie 4374
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4375
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4376
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4377
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4378
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4379
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4380
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" MODIFY ("RCON_ID" NOT NULL ENABLE);
4381
--------------------------------------------------------
4382
--  Constraints for Table PACKAGE_PROCESSES
4383
--------------------------------------------------------
4040 dpurdie 4384
 
6031 dpurdie 4385
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" MODIFY ("PROC_ID" NOT NULL ENABLE);
4386
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" MODIFY ("PV_ID" NOT NULL ENABLE);
4387
--------------------------------------------------------
4388
--  Constraints for Table PACKAGE_BUILD_INFO
4389
--------------------------------------------------------
4040 dpurdie 4390
 
6031 dpurdie 4391
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" MODIFY ("BM_ID" NOT NULL ENABLE);
4392
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" MODIFY ("PV_ID" NOT NULL ENABLE);
4393
--------------------------------------------------------
4394
--  Constraints for Table VIEW_SETTINGS
4395
--------------------------------------------------------
4396
 
4397
  ALTER TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4398
  ALTER TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" MODIFY ("USER_ID" NOT NULL ENABLE);
4399
--------------------------------------------------------
4400
--  Constraints for Table DEPRECATED_PACKAGES
4401
--------------------------------------------------------
4402
 
4403
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("COMMENTS" NOT NULL ENABLE);
4404
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("PKG_ID" NOT NULL ENABLE);
4405
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4406
--------------------------------------------------------
4407
--  Constraints for Table BUILD_PLAN
4408
--------------------------------------------------------
4409
 
4410
  ALTER TABLE "RELEASE_MANAGER"."BUILD_PLAN" ADD CONSTRAINT "BUILD_PLAN_PK" PRIMARY KEY ("RTAG_ID", "BUILD_ORDER", "PV_ID")
5172 dpurdie 4411
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4412
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4413
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4414
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4415
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 4416
--------------------------------------------------------
6031 dpurdie 4417
--  Constraints for Table MESSAGE_BOARD
5172 dpurdie 4418
--------------------------------------------------------
4419
 
6031 dpurdie 4420
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" ADD CONSTRAINT "PK_MESSAGE_BOARD" PRIMARY KEY ("MSG_ID")
5892 dpurdie 4421
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4422
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4423
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4424
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4425
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4426
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("SUBMITION_DATE" NOT NULL ENABLE);
4427
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("MSG_DETAILS" NOT NULL ENABLE);
4428
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("MSG_ID" NOT NULL ENABLE);
4040 dpurdie 4429
--------------------------------------------------------
6031 dpurdie 4430
--  Constraints for Table VCS_TYPE
4040 dpurdie 4431
--------------------------------------------------------
4432
 
6031 dpurdie 4433
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" ADD CONSTRAINT "VCS_TYPE_PK" PRIMARY KEY ("VCS_TYPE_ID")
5172 dpurdie 4434
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4435
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4436
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4437
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4438
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4439
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("TAG" NOT NULL ENABLE);
4440
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("NAME" NOT NULL ENABLE);
4441
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("VCS_TYPE_ID" NOT NULL ENABLE);
4308 dpurdie 4442
--------------------------------------------------------
6031 dpurdie 4443
--  Constraints for Table RUN_LEVEL
5172 dpurdie 4444
--------------------------------------------------------
4445
 
6031 dpurdie 4446
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD CONSTRAINT "PK_RUN_LEVEL" PRIMARY KEY ("RCON_ID")
5172 dpurdie 4447
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4448
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4449
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4450
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4451
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4452
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" MODIFY ("RCON_ID" NOT NULL ENABLE);
5384 dpurdie 4453
--------------------------------------------------------
6031 dpurdie 4454
--  Constraints for Table DO_NOT_RIPPLE
4455
--------------------------------------------------------
5384 dpurdie 4456
 
6031 dpurdie 4457
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" MODIFY ("PV_ID" NOT NULL ENABLE);
4458
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4459
--------------------------------------------------------
4460
--  Constraints for Table CQ_SOFTWARE_ISSUE
4461
--------------------------------------------------------
4462
 
4463
  ALTER TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ADD CONSTRAINT "CQ_SOFTWARE_ISSUE_PK" PRIMARY KEY ("DBID")
5384 dpurdie 4464
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4465
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4466
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4467
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4468
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4469
  ALTER TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" MODIFY ("DBID" NOT NULL ENABLE);
5384 dpurdie 4470
--------------------------------------------------------
6031 dpurdie 4471
--  Constraints for Table LICENCES
4040 dpurdie 4472
--------------------------------------------------------
4473
 
6031 dpurdie 4474
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" ADD CONSTRAINT "PK_LICENCES" PRIMARY KEY ("LICENCE")
5172 dpurdie 4475
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4476
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4477
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4478
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4479
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4480
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" MODIFY ("NAME" NOT NULL ENABLE);
4481
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" MODIFY ("LICENCE" NOT NULL ENABLE);
4482
--------------------------------------------------------
4483
--  Constraints for Table UNIT_TESTS
4484
--------------------------------------------------------
4040 dpurdie 4485
 
6031 dpurdie 4486
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("TEST_TYPES_FK" NOT NULL ENABLE);
4487
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4488
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("TEST_ID" NOT NULL ENABLE);
4489
--------------------------------------------------------
4490
--  Constraints for Table CQ_STATEDEF
4491
--------------------------------------------------------
4040 dpurdie 4492
 
6031 dpurdie 4493
  ALTER TABLE "RELEASE_MANAGER"."CQ_STATEDEF" ADD CONSTRAINT "CQ_STATEDEF_PK" PRIMARY KEY ("ID")
5172 dpurdie 4494
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4495
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4496
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4497
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4498
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4499
  ALTER TABLE "RELEASE_MANAGER"."CQ_STATEDEF" MODIFY ("ID" NOT NULL ENABLE);
4500
--------------------------------------------------------
4501
--  Constraints for Table TEMP_ENV_STATES
4502
--------------------------------------------------------
4040 dpurdie 4503
 
6031 dpurdie 4504
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("TES_STATE" NOT NULL ENABLE);
4505
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("PKG_ID" NOT NULL ENABLE);
4506
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("PV_ID" NOT NULL ENABLE);
4507
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("LEVEL_NUM" NOT NULL ENABLE);
4508
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("SESSION_NUM" NOT NULL ENABLE);
4509
--------------------------------------------------------
4510
--  Constraints for Table CQ_USERS
4511
--------------------------------------------------------
4512
 
4513
  ALTER TABLE "RELEASE_MANAGER"."CQ_USERS" ADD CONSTRAINT "CQ_USERS_PK" PRIMARY KEY ("DBID")
5384 dpurdie 4514
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4515
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4516
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4517
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4518
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4519
  ALTER TABLE "RELEASE_MANAGER"."CQ_USERS" MODIFY ("DBID" NOT NULL ENABLE);
4308 dpurdie 4520
--------------------------------------------------------
6031 dpurdie 4521
--  Constraints for Table TEMP_ENV_DEPS
4308 dpurdie 4522
--------------------------------------------------------
4040 dpurdie 4523
 
6031 dpurdie 4524
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" ADD CONSTRAINT "TEMP_ENV_DEPS_PK" PRIMARY KEY ("PV_ID", "SESSION_NUM", "DPV_ID")
5172 dpurdie 4525
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4526
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4527
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4528
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4529
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4530
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("DPKG_ID" NOT NULL ENABLE);
4531
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("DPV_ID" NOT NULL ENABLE);
4532
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("PKG_ID" NOT NULL ENABLE);
4533
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("PV_ID" NOT NULL ENABLE);
4534
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("SESSION_NUM" NOT NULL ENABLE);
5892 dpurdie 4535
--------------------------------------------------------
6031 dpurdie 4536
--  Constraints for Table RUN_LEVEL_SCHEDULE
4537
--------------------------------------------------------
5892 dpurdie 4538
 
6031 dpurdie 4539
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" ADD PRIMARY KEY ("SCHEDULED_ID")
5892 dpurdie 4540
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4541
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4542
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4543
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4544
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4545
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" MODIFY ("SCHEDULED_ID" NOT NULL ENABLE);
5892 dpurdie 4546
--------------------------------------------------------
6031 dpurdie 4547
--  Constraints for Table SDK_NAMES
4548
--------------------------------------------------------
4040 dpurdie 4549
 
6031 dpurdie 4550
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_PK" PRIMARY KEY ("SDK_ID")
5172 dpurdie 4551
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4552
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4553
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4554
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4555
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4556
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_UK1" UNIQUE ("SDK_NAME")
4557
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4558
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4559
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4560
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4561
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4562
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4563
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4564
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("SDK_NAME" NOT NULL ENABLE);
4565
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("SDK_ID" NOT NULL ENABLE);
4308 dpurdie 4566
--------------------------------------------------------
6031 dpurdie 4567
--  Constraints for Table PROJECT_EXTENTIONS
4568
--------------------------------------------------------
4040 dpurdie 4569
 
6031 dpurdie 4570
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_EXTENTIONS" MODIFY ("EXT_NAME" NOT NULL ENABLE);
4571
--------------------------------------------------------
4572
--  Constraints for Table MEMBERS_GROUP
4573
--------------------------------------------------------
4574
 
5172 dpurdie 4575
  ALTER TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" MODIFY ("GROUP_EMAIL_ID" NOT NULL ENABLE);
6031 dpurdie 4576
--------------------------------------------------------
4577
--  Constraints for Table TEST_RUN
4578
--------------------------------------------------------
4040 dpurdie 4579
 
6031 dpurdie 4580
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" ADD CONSTRAINT "PK_TEST_RUN" PRIMARY KEY ("TESTRUN_ID")
5172 dpurdie 4581
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4582
  STORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4583
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4584
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4585
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4586
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TEST_OUTCOME" NOT NULL ENABLE);
4587
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TEST_NAME" NOT NULL ENABLE);
4588
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TYPE" NOT NULL ENABLE);
4589
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("PLATFORM" NOT NULL ENABLE);
4590
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("BUILD_ID" NOT NULL ENABLE);
4591
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TESTRUN_ID" NOT NULL ENABLE);
4592
--------------------------------------------------------
4593
--  Constraints for Table BUILD_STANDARDS
4594
--------------------------------------------------------
4040 dpurdie 4595
 
6031 dpurdie 4596
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" ADD CONSTRAINT "BUILD_STANDARDS_PK" PRIMARY KEY ("BS_ID")
5172 dpurdie 4597
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4598
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4599
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4600
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4601
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4602
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" MODIFY ("BS_NAME" NOT NULL ENABLE);
4603
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" MODIFY ("BS_ID" NOT NULL ENABLE);
4604
--------------------------------------------------------
4605
--  Constraints for Table RUNTIME_DEPENDENCIES
4606
--------------------------------------------------------
4040 dpurdie 4607
 
6031 dpurdie 4608
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("MOD_USER" NOT NULL ENABLE);
4609
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
4610
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("PV_ID" NOT NULL ENABLE);
4611
--------------------------------------------------------
4308 dpurdie 4612
--  Constraints for Table DAEMON_INSTRUCTIONS
4613
--------------------------------------------------------
4040 dpurdie 4614
 
5172 dpurdie 4615
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_UK1" UNIQUE ("OP_CODE", "RTAG_ID", "PV_ID")
4616
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4617
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4618
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4619
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4620
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 4621
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_PK" PRIMARY KEY ("DAEMON_INSTRUCTIONS_ID")
4622
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4623
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4624
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4625
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4626
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 4627
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" MODIFY ("OP_CODE" NOT NULL ENABLE);
4628
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" MODIFY ("DAEMON_INSTRUCTIONS_ID" NOT NULL ENABLE);
4040 dpurdie 4629
--------------------------------------------------------
6031 dpurdie 4630
--  Constraints for Table PACKAGE_VERSIONS
4040 dpurdie 4631
--------------------------------------------------------
4632
 
6031 dpurdie 4633
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PK_PACKAGE_VERSIONS" PRIMARY KEY ("PV_ID")
4634
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4635
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4636
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4637
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4638
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4639
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("BUILD_TYPE" NOT NULL ENABLE);
4640
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("LAST_PV_ID" NOT NULL ENABLE);
4641
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("OWNER_ID" NOT NULL ENABLE);
4642
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("CREATOR_ID" NOT NULL ENABLE);
4643
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("MODIFIER_ID" NOT NULL ENABLE);
4644
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("DLOCKED" NOT NULL ENABLE);
4645
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PKG_VERSION" NOT NULL ENABLE);
4646
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PKG_ID" NOT NULL ENABLE);
4647
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 4648
--------------------------------------------------------
4308 dpurdie 4649
--  Constraints for Table BUILD_ENV_DOCUMENTS
4650
--------------------------------------------------------
4040 dpurdie 4651
 
5172 dpurdie 4652
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" MODIFY ("DOC_NUM" NOT NULL ENABLE);
4653
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" MODIFY ("BE_ID" NOT NULL ENABLE);
6031 dpurdie 4654
--------------------------------------------------------
4655
--  Constraints for Table LXR_STATE
4656
--------------------------------------------------------
4657
 
4658
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" ADD CONSTRAINT "LXR_STATE_PK" PRIMARY KEY ("RTAG_ID")
4659
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4660
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4661
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4662
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4663
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4664
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4665
--------------------------------------------------------
4666
--  Constraints for Table BUILD_MACHINE_CONFIG
4667
--------------------------------------------------------
4668
 
4669
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ADD CONSTRAINT "PK_BUILD_MACHINE_CONFIG" PRIMARY KEY ("BMCON_ID")
4670
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4671
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4672
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4673
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4674
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4675
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("ACTIVE" NOT NULL ENABLE);
4676
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("GBE_ID" NOT NULL ENABLE);
4677
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("MACHINE_HOSTNAME" NOT NULL ENABLE);
4678
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("DISPLAY_NAME" NOT NULL ENABLE);
4679
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("BMCON_ID" NOT NULL ENABLE);
4308 dpurdie 4680
--------------------------------------------------------
6031 dpurdie 4681
--  Constraints for Table ADVISORY_RIPPLE
4040 dpurdie 4682
--------------------------------------------------------
4683
 
6031 dpurdie 4684
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" MODIFY ("PV_ID" NOT NULL ENABLE);
4685
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4686
--------------------------------------------------------
4687
--  Constraints for Table PROJECTS
4688
--------------------------------------------------------
4689
 
4690
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" ADD CONSTRAINT "PK_PROJECTS" PRIMARY KEY ("PROJ_ID")
4691
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4692
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4693
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4694
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4695
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4696
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" MODIFY ("PROJ_NAME" NOT NULL ENABLE);
4697
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4698
--------------------------------------------------------
4699
--  Constraints for Table PACKAGE_PATCHES
4700
--------------------------------------------------------
4701
 
4702
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("INSTALL_ORDER" NOT NULL ENABLE);
4703
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("PATCH_ID" NOT NULL ENABLE);
4704
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 4705
--------------------------------------------------------
4706
--  Constraints for Table PACKAGE_DEPENDENCIES
4707
--------------------------------------------------------
4040 dpurdie 4708
 
5172 dpurdie 4709
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("BUILD_TYPE" NOT NULL ENABLE);
4710
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("DPKG_ID" NOT NULL ENABLE);
4711
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("PKG_ID" NOT NULL ENABLE);
4712
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("DPV_ID" NOT NULL ENABLE);
4713
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 4714
--------------------------------------------------------
6031 dpurdie 4715
--  Constraints for Table JIRA_ISSUES
4308 dpurdie 4716
--------------------------------------------------------
4040 dpurdie 4717
 
6031 dpurdie 4718
  ALTER TABLE "RELEASE_MANAGER"."JIRA_ISSUES" MODIFY ("PV_ID" NOT NULL ENABLE);
4719
--------------------------------------------------------
4720
--  Constraints for Table ADDITIONAL_NOTES
4721
--------------------------------------------------------
4722
 
4723
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("MOD_USER" NOT NULL ENABLE);
4724
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
4725
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("NOTE_TITLE" NOT NULL ENABLE);
4726
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("PV_ID" NOT NULL ENABLE);
4727
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("NOTE_ID" NOT NULL ENABLE);
4728
--------------------------------------------------------
4729
--  Constraints for Table ARCHIVE_DATA
4730
--------------------------------------------------------
4731
 
4732
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" MODIFY ("PV_ID" NOT NULL ENABLE);
4733
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 4734
--------------------------------------------------------
4735
--  Constraints for Table BUILD_ENVIRONMENTS
4736
--------------------------------------------------------
4040 dpurdie 4737
 
5172 dpurdie 4738
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ADD CONSTRAINT "PK_BUILD_ENVIRONMENTS" PRIMARY KEY ("BE_ID")
4739
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4740
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4741
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4742
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4743
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 4744
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" MODIFY ("BE_NAME" NOT NULL ENABLE);
4745
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" MODIFY ("BE_ID" NOT NULL ENABLE);
4308 dpurdie 4746
--------------------------------------------------------
6031 dpurdie 4747
--  Constraints for Table VIEWS
4308 dpurdie 4748
--------------------------------------------------------
4040 dpurdie 4749
 
6031 dpurdie 4750
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" ADD CONSTRAINT "PK_VIEWS" PRIMARY KEY ("VIEW_ID")
4751
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4752
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4753
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4754
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4755
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4756
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("PUBLIC_READ" NOT NULL ENABLE);
4757
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("BASE_VIEW" NOT NULL ENABLE);
4758
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("OWNER_ID" NOT NULL ENABLE);
4759
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("VIEW_NAME" NOT NULL ENABLE);
4760
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4761
--------------------------------------------------------
4762
--  Constraints for Table VIEW_DEF
4763
--------------------------------------------------------
4764
 
4765
  ALTER TABLE "RELEASE_MANAGER"."VIEW_DEF" MODIFY ("PKG_ID" NOT NULL ENABLE);
4766
  ALTER TABLE "RELEASE_MANAGER"."VIEW_DEF" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4040 dpurdie 4767
--------------------------------------------------------
4768
--  Ref Constraints for Table ABT_ACTION_LOG
4769
--------------------------------------------------------
4770
 
5172 dpurdie 4771
  ALTER TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" ADD FOREIGN KEY ("RCON_ID")
4772
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
4040 dpurdie 4773
--------------------------------------------------------
4774
--  Ref Constraints for Table ACTION_LOG
4775
--------------------------------------------------------
4776
 
6031 dpurdie 4777
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" ADD CONSTRAINT "ACTION_LOG_FK1" FOREIGN KEY ("PV_ID")
4778
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
5172 dpurdie 4779
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" ADD CONSTRAINT "REFACTION_TYPE48" FOREIGN KEY ("ACTTYPE_ID")
4780
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
4040 dpurdie 4781
--------------------------------------------------------
4782
--  Ref Constraints for Table ADDITIONAL_NOTES
4783
--------------------------------------------------------
4784
 
5172 dpurdie 4785
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" ADD CONSTRAINT "FK_ADDITION_REF_PV_ID" FOREIGN KEY ("PV_ID")
4786
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4787
--------------------------------------------------------
4788
--  Ref Constraints for Table ADVISORY_RIPPLE
4789
--------------------------------------------------------
4790
 
5172 dpurdie 4791
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" ADD FOREIGN KEY ("RTAG_ID")
4792
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4793
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" ADD FOREIGN KEY ("PV_ID")
4794
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4795
--------------------------------------------------------
4796
--  Ref Constraints for Table AUTOBUILD_FAILURE
4797
--------------------------------------------------------
4798
 
5172 dpurdie 4799
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD FOREIGN KEY ("PROJ_ID")
4800
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4801
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD FOREIGN KEY ("VIEW_ID")
4802
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
4040 dpurdie 4803
--------------------------------------------------------
4804
--  Ref Constraints for Table BUILD_ENV_DOCUMENTS
4805
--------------------------------------------------------
4806
 
5172 dpurdie 4807
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" ADD CONSTRAINT "FK_BUILD_E_DOCS_REF_BUILD_ENV" FOREIGN KEY ("BE_ID")
4808
	  REFERENCES "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") ENABLE;
4809
--------------------------------------------------------
4810
--  Ref Constraints for Table BUILD_INSTANCES
4811
--------------------------------------------------------
4812
 
4813
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_INSTANCES_FK1" FOREIGN KEY ("RTAG_ID")
4814
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
4815
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_INSTANCES_FK2" FOREIGN KEY ("PV_ID")
4816
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 4817
--------------------------------------------------------
4818
--  Ref Constraints for Table BUILD_MACHINE_CONFIG
4819
--------------------------------------------------------
4820
 
5172 dpurdie 4821
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ADD CONSTRAINT "FK_BM_GBE_ID" FOREIGN KEY ("GBE_ID")
4822
	  REFERENCES "RELEASE_MANAGER"."GBE_MACHTYPE" ("GBE_ID") ENABLE;
4040 dpurdie 4823
--------------------------------------------------------
4824
--  Ref Constraints for Table BUILD_ORDER
4825
--------------------------------------------------------
4826
 
5172 dpurdie 4827
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" ADD CONSTRAINT "FK_BO_PV_ID" FOREIGN KEY ("PV_ID")
6031 dpurdie 4828
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5172 dpurdie 4829
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" ADD CONSTRAINT "FK_BO_RTAG_ID" FOREIGN KEY ("RTAG_ID")
4830
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5892 dpurdie 4831
--------------------------------------------------------
4832
--  Ref Constraints for Table BUILD_PLAN
4833
--------------------------------------------------------
4834
 
4835
  ALTER TABLE "RELEASE_MANAGER"."BUILD_PLAN" ADD CONSTRAINT "BUILD_PLAN_FK1" FOREIGN KEY ("PV_ID")
4836
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
4837
  ALTER TABLE "RELEASE_MANAGER"."BUILD_PLAN" ADD CONSTRAINT "BUILD_PLAN_FK2" FOREIGN KEY ("RTAG_ID")
4838
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 4839
--------------------------------------------------------
4840
--  Ref Constraints for Table BUILD_STANDARDS_ADDENDUM
4841
--------------------------------------------------------
4842
 
5172 dpurdie 4843
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ADD CONSTRAINT "BUILD_STANDARDS_ADDENDUM_R01" FOREIGN KEY ("BS_ID")
4844
	  REFERENCES "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") ENABLE;
4040 dpurdie 4845
--------------------------------------------------------
4846
--  Ref Constraints for Table CODE_REVIEWS
4847
--------------------------------------------------------
4848
 
5172 dpurdie 4849
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEWS" ADD CONSTRAINT "FK_CODE_REV_REF_PV_ID" FOREIGN KEY ("PV_ID")
4850
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4851
--------------------------------------------------------
4852
--  Ref Constraints for Table CODE_REVIEW_URL
4853
--------------------------------------------------------
4854
 
5172 dpurdie 4855
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PACKAGE_V_FK1" FOREIGN KEY ("PV_ID")
4856
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4857
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PROJECT_V_FK1" FOREIGN KEY ("PROJ_ID")
4858
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4040 dpurdie 4859
--------------------------------------------------------
4860
--  Ref Constraints for Table CQ_ISSUES
4861
--------------------------------------------------------
4862
 
5172 dpurdie 4863
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" ADD CONSTRAINT "FK_CQ_PV_ID" FOREIGN KEY ("PV_ID")
4864
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4865
--------------------------------------------------------
4866
--  Ref Constraints for Table DAEMON_ACTION_LOG
4867
--------------------------------------------------------
4868
 
5172 dpurdie 4869
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" ADD FOREIGN KEY ("RCON_ID")
4870
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
4871
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" ADD FOREIGN KEY ("ACTTYPE_ID")
4872
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
4040 dpurdie 4873
--------------------------------------------------------
4874
--  Ref Constraints for Table DAEMON_INSTRUCTIONS
4875
--------------------------------------------------------
4876
 
5172 dpurdie 4877
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_PV_ID_FK" FOREIGN KEY ("PV_ID")
4878
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4879
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_RTAG_ID_FK" FOREIGN KEY ("RTAG_ID")
4880
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4881
--------------------------------------------------------
4882
--  Ref Constraints for Table DASH_BOARD
4883
--------------------------------------------------------
4884
 
5172 dpurdie 4885
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" ADD FOREIGN KEY ("PROJ_ID")
4886
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4887
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" ADD FOREIGN KEY ("RTAG_ID")
4888
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4889
--------------------------------------------------------
4890
--  Ref Constraints for Table DO_NOT_RIPPLE
4891
--------------------------------------------------------
4892
 
5172 dpurdie 4893
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" ADD FOREIGN KEY ("PV_ID")
4894
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4895
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" ADD FOREIGN KEY ("RTAG_ID")
4896
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4897
--------------------------------------------------------
4898
--  Ref Constraints for Table GBE_MACHTYPE
4899
--------------------------------------------------------
4900
 
5172 dpurdie 4901
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" ADD CONSTRAINT "GBE_MACHTYPE_BUILD_MACHIN_FK1" FOREIGN KEY ("BM_ID")
4902
	  REFERENCES "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") ENABLE;
4040 dpurdie 4903
--------------------------------------------------------
4904
--  Ref Constraints for Table IGNORE_WARNINGS
4905
--------------------------------------------------------
4906
 
5172 dpurdie 4907
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_DPV_ID" FOREIGN KEY ("DPV_ID")
4908
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4909
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_PV_ID" FOREIGN KEY ("PV_ID")
4910
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4911
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_RTAG_ID" FOREIGN KEY ("RTAG_ID")
4912
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4913
--------------------------------------------------------
4914
--  Ref Constraints for Table JIRA_ISSUES
4915
--------------------------------------------------------
4916
 
5172 dpurdie 4917
  ALTER TABLE "RELEASE_MANAGER"."JIRA_ISSUES" ADD CONSTRAINT "FK_JIRA_PV_ID" FOREIGN KEY ("PV_ID")
4918
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4919
--------------------------------------------------------
4920
--  Ref Constraints for Table LICENCING
4921
--------------------------------------------------------
4922
 
5172 dpurdie 4923
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD FOREIGN KEY ("PV_ID")
4924
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4925
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD FOREIGN KEY ("LICENCE")
4926
	  REFERENCES "RELEASE_MANAGER"."LICENCES" ("LICENCE") ENABLE;
4040 dpurdie 4927
--------------------------------------------------------
5384 dpurdie 4928
--  Ref Constraints for Table LXR_STATE
4929
--------------------------------------------------------
4930
 
4931
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" ADD CONSTRAINT "LXR_STATE_FK1" FOREIGN KEY ("RTAG_ID")
4932
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
4933
--------------------------------------------------------
4040 dpurdie 4934
--  Ref Constraints for Table MEMBERS_GROUP
4935
--------------------------------------------------------
4936
 
5172 dpurdie 4937
  ALTER TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" ADD FOREIGN KEY ("GROUP_EMAIL_ID")
4938
	  REFERENCES "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ("GROUP_EMAIL_ID") ENABLE;
4040 dpurdie 4939
--------------------------------------------------------
4940
--  Ref Constraints for Table NOTIFICATION_HISTORY
4941
--------------------------------------------------------
4942
 
5172 dpurdie 4943
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "FK_NH_RTAG_ID" FOREIGN KEY ("RTAG_ID")
4944
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4945
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "FK_NK_PV_ID" FOREIGN KEY ("PV_ID")
4946
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") DISABLE;
4040 dpurdie 4947
--------------------------------------------------------
4948
--  Ref Constraints for Table PACKAGE_BUILD_ENV
4949
--------------------------------------------------------
4950
 
5172 dpurdie 4951
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ADD CONSTRAINT "FK_PKG_BUILD_E_REF_BUILD_ENV" FOREIGN KEY ("BE_ID")
4952
	  REFERENCES "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") ENABLE;
4953
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ADD CONSTRAINT "FK_PKG_BUILD_E_REF_PKG_VERSION" FOREIGN KEY ("PV_ID")
4954
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4955
--------------------------------------------------------
4956
--  Ref Constraints for Table PACKAGE_BUILD_INFO
4957
--------------------------------------------------------
4958
 
5172 dpurdie 4959
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" ADD FOREIGN KEY ("PV_ID")
4960
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4961
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" ADD FOREIGN KEY ("BM_ID")
4962
	  REFERENCES "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") ENABLE;
4040 dpurdie 4963
--------------------------------------------------------
5892 dpurdie 4964
--  Ref Constraints for Table PACKAGE_DEPENDENCIES
4965
--------------------------------------------------------
4966
 
4967
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK1" FOREIGN KEY ("PV_ID")
4968
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
4969
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK2" FOREIGN KEY ("DPV_ID")
4970
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
4971
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK3" FOREIGN KEY ("DPKG_ID")
4972
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ON DELETE CASCADE ENABLE;
4973
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK4" FOREIGN KEY ("PKG_ID")
4974
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ON DELETE CASCADE ENABLE;
4975
--------------------------------------------------------
4040 dpurdie 4976
--  Ref Constraints for Table PACKAGE_DOCUMENTS
4977
--------------------------------------------------------
4978
 
5172 dpurdie 4979
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ADD CONSTRAINT "FK_PKGDOCS_REF_PV" FOREIGN KEY ("PV_ID")
4980
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4981
--------------------------------------------------------
4982
--  Ref Constraints for Table PACKAGE_INTEREST
4983
--------------------------------------------------------
4984
 
5172 dpurdie 4985
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" ADD FOREIGN KEY ("PROJ_ID")
4986
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4040 dpurdie 4987
--------------------------------------------------------
4988
--  Ref Constraints for Table PACKAGE_METRICS
4989
--------------------------------------------------------
4990
 
5172 dpurdie 4991
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" ADD CONSTRAINT "FK_PACKAGE_METRICS_PV_ID" FOREIGN KEY ("PV_ID")
4992
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4993
--------------------------------------------------------
4994
--  Ref Constraints for Table PACKAGE_PATCHES
4995
--------------------------------------------------------
4996
 
5172 dpurdie 4997
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" ADD CONSTRAINT "FK_PP_PATCH_ID" FOREIGN KEY ("PATCH_ID")
4998
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4999
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" ADD CONSTRAINT "FK_PP_PV_ID" FOREIGN KEY ("PV_ID")
5000
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 5001
--------------------------------------------------------
5002
--  Ref Constraints for Table PACKAGE_PROCESSES
5003
--------------------------------------------------------
5004
 
5172 dpurdie 5005
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" ADD CONSTRAINT "PACKAGE_PROCESSES_R01" FOREIGN KEY ("PV_ID")
5006
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5007
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" ADD CONSTRAINT "PACKAGE_PROCESSES_R02" FOREIGN KEY ("PROC_ID")
5008
	  REFERENCES "RELEASE_MANAGER"."PROCESSES" ("PROC_ID") ENABLE;
4040 dpurdie 5009
--------------------------------------------------------
5010
--  Ref Constraints for Table PACKAGE_VERSIONS
5011
--------------------------------------------------------
5012
 
5172 dpurdie 5013
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PACKAGE_VERSIONS_VCS_TYPE" FOREIGN KEY ("VCS_TYPE_ID")
5014
	  REFERENCES "RELEASE_MANAGER"."VCS_TYPE" ("VCS_TYPE_ID") ENABLE;
6600 dpurdie 5015
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PKG_NAME_EXISTS" FOREIGN KEY ("PKG_ID")
5016
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
5172 dpurdie 5017
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD FOREIGN KEY ("BS_ID")
5018
	  REFERENCES "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") ENABLE;
4040 dpurdie 5019
--------------------------------------------------------
5020
--  Ref Constraints for Table PEGGED_VERSIONS
5021
--------------------------------------------------------
5022
 
5172 dpurdie 5023
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" ADD CONSTRAINT "PEGGED_VERSIONS_PACKAG_FK1" FOREIGN KEY ("PV_ID")
5024
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5025
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" ADD CONSTRAINT "PEGGED_VERSIONS_RELEAS_FK1" FOREIGN KEY ("RTAG_ID")
5026
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 5027
--------------------------------------------------------
5028
--  Ref Constraints for Table PLANNED
5029
--------------------------------------------------------
5030
 
5172 dpurdie 5031
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFPACKAGE_VERSIONS54" FOREIGN KEY ("PV_ID")
5032
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5033
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFRELEASE_TAGS53" FOREIGN KEY ("RTAG_ID")
5034
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5035
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFVIEWS55" FOREIGN KEY ("VIEW_ID")
5036
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
4040 dpurdie 5037
--------------------------------------------------------
5038
--  Ref Constraints for Table PLANNED_VERSIONS
5039
--------------------------------------------------------
5040
 
5172 dpurdie 5041
  ALTER TABLE "RELEASE_MANAGER"."PLANNED_VERSIONS" ADD FOREIGN KEY ("PKG_ID")
5042
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
4040 dpurdie 5043
--------------------------------------------------------
5044
--  Ref Constraints for Table PRODUCT_COMPONENTS
5045
--------------------------------------------------------
5046
 
5172 dpurdie 5047
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" ADD CONSTRAINT "REFPACKAGE_VERSIONS49" FOREIGN KEY ("PV_ID")
5048
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 5049
--------------------------------------------------------
5050
--  Ref Constraints for Table PROJECT_ACTION_LOG
5051
--------------------------------------------------------
5052
 
5172 dpurdie 5053
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ADD CONSTRAINT "REFACTION_TYPE63" FOREIGN KEY ("ACTTYPE_ID")
5054
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
5055
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ADD FOREIGN KEY ("RTAG_ID")
5056
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") DISABLE;
4040 dpurdie 5057
--------------------------------------------------------
5058
--  Ref Constraints for Table RELEASE_COMPONENTS
5059
--------------------------------------------------------
5060
 
5172 dpurdie 5061
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" ADD CONSTRAINT "FK_RCONT_PV_ID" FOREIGN KEY ("PV_ID")
5062
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 5063
--------------------------------------------------------
5064
--  Ref Constraints for Table RELEASE_CONFIG
5065
--------------------------------------------------------
5066
 
5172 dpurdie 5067
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD FOREIGN KEY ("RTAG_ID")
5068
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5069
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD FOREIGN KEY ("GBE_ID")
5070
	  REFERENCES "RELEASE_MANAGER"."GBE_MACHTYPE" ("GBE_ID") ENABLE;
4040 dpurdie 5071
--------------------------------------------------------
5072
--  Ref Constraints for Table RELEASE_CONTENT
5073
--------------------------------------------------------
5074
 
5172 dpurdie 5075
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD CONSTRAINT "RELEASE_CONTENT_FK1" FOREIGN KEY ("SDKTAG_ID")
5076
	  REFERENCES "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") ENABLE;
5077
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD FOREIGN KEY ("PKG_ID")
5078
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
5079
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD FOREIGN KEY ("PRODUCT_STATE")
5080
	  REFERENCES "RELEASE_MANAGER"."PRODUCT_STATES" ("STATE_ID") ENABLE;
4040 dpurdie 5081
--------------------------------------------------------
5082
--  Ref Constraints for Table RELEASE_LINKS
5083
--------------------------------------------------------
5084
 
5172 dpurdie 5085
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" ADD CONSTRAINT "REFRELEASE_TAGS56" FOREIGN KEY ("RTAG_ID")
5086
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5087
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" ADD CONSTRAINT "REFRELEASE_TAGS58" FOREIGN KEY ("REF_RTAG_ID")
5088
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 5089
--------------------------------------------------------
5090
--  Ref Constraints for Table RELEASE_METRICS
5091
--------------------------------------------------------
5092
 
5172 dpurdie 5093
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" ADD CONSTRAINT "FK_RELEASE_METRICS_RTAG_ID" FOREIGN KEY ("RTAG_ID")
5094
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5095
--------------------------------------------------------
5096
--  Ref Constraints for Table RELEASE_MODIFIED
5097
--------------------------------------------------------
5098
 
5099
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" ADD CONSTRAINT "RELEASE_MODIFIED_RELEASE__FK1" FOREIGN KEY ("RTAG_ID")
5100
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 5101
--------------------------------------------------------
5102
--  Ref Constraints for Table RUNTIME_DEPENDENCIES
5103
--------------------------------------------------------
5104
 
5172 dpurdie 5105
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ADD CONSTRAINT "FK_RTD_PV_ID" FOREIGN KEY ("PV_ID")
5106
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5107
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ADD CONSTRAINT "FK_RTD_RTD_ID" FOREIGN KEY ("RTD_ID")
5108
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 5109
--------------------------------------------------------
5110
--  Ref Constraints for Table RUN_LEVEL
5111
--------------------------------------------------------
5112
 
5172 dpurdie 5113
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD FOREIGN KEY ("RCON_ID")
5114
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
5115
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD FOREIGN KEY ("CURRENT_PKG_ID_BEING_BUILT")
5116
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
5117
--------------------------------------------------------
5118
--  Ref Constraints for Table SDK_CONTENT
5119
--------------------------------------------------------
5120
 
5121
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" ADD CONSTRAINT "SDK_CONTENT_FK1" FOREIGN KEY ("PV_ID")
5122
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5123
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" ADD CONSTRAINT "SDK_CONTENT_FK2" FOREIGN KEY ("SDKTAG_ID")
5124
	  REFERENCES "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") ENABLE;
5125
--------------------------------------------------------
5126
--  Ref Constraints for Table SDK_NAMES
5127
--------------------------------------------------------
5128
 
5129
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_FK1" FOREIGN KEY ("VIEW_ID")
5130
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
5131
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_FK2" FOREIGN KEY ("PROJ_ID")
5132
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
5133
--------------------------------------------------------
5134
--  Ref Constraints for Table SDK_TAGS
5135
--------------------------------------------------------
5136
 
5137
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_FK1" FOREIGN KEY ("SDK_ID")
5138
	  REFERENCES "RELEASE_MANAGER"."SDK_NAMES" ("SDK_ID") ENABLE;
5139
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_FK2" FOREIGN KEY ("RTAG_ID")
5140
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5141
--------------------------------------------------------
5142
--  Ref Constraints for Table TEST_RUN
5143
--------------------------------------------------------
5144
 
5145
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" ADD CONSTRAINT "TEST_RUN_FK1" FOREIGN KEY ("BUILD_ID")
5146
	  REFERENCES "RELEASE_MANAGER"."BUILD_INSTANCES" ("BUILD_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 5147
--------------------------------------------------------
5148
--  Ref Constraints for Table UNIT_TESTS
5149
--------------------------------------------------------
5150
 
5172 dpurdie 5151
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" ADD CONSTRAINT "FK_UT_REF_PV_ID" FOREIGN KEY ("PV_ID")
5152
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5153
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" ADD CONSTRAINT "FK_UT_REF_TEST_TYPES" FOREIGN KEY ("TEST_TYPES_FK")
5154
	  REFERENCES "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_ID") ENABLE;
4040 dpurdie 5155
--------------------------------------------------------
5156
--  Ref Constraints for Table VTREES_WORLD
5157
--------------------------------------------------------
5158
 
5172 dpurdie 5159
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" ADD CONSTRAINT "FK_VW_REF_VTREE_ID" FOREIGN KEY ("VTREE_ID")
5160
	  REFERENCES "RELEASE_MANAGER"."VTREES" ("VTREE_ID") ENABLE;
5161
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" ADD CONSTRAINT "FK_VW_REF_WORLD_ID" FOREIGN KEY ("WORLD_ID")
5162
	  REFERENCES "RELEASE_MANAGER"."WORLDS" ("WORLD_ID") ENABLE;
4040 dpurdie 5163
--------------------------------------------------------
5164
--  Ref Constraints for Table WORK_IN_PROGRESS
5165
--------------------------------------------------------
5166
 
5172 dpurdie 5167
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFPACKAGE_VERSIONS51" FOREIGN KEY ("PV_ID")
5168
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5169
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFRELEASE_TAGS50" FOREIGN KEY ("RTAG_ID")
5170
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5171
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFVIEWS52" FOREIGN KEY ("VIEW_ID")
5172
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
5173
--------------------------------------------------------
5174
--  DDL for Trigger TRIGGER_BSA_ID
5175
--------------------------------------------------------
5176
 
5177
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_BSA_ID" 
6031 dpurdie 5178
BEFORE INSERT ON BUILD_STANDARDS_ADDENDUM
5172 dpurdie 5179
for each row
5180
BEGIN
5181
  select SEQ_BSA_ID.nextval
5182
  into :new.BSA_ID
5183
  from DUAL;
5184
END;
4040 dpurdie 5185
/
5172 dpurdie 5186
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_BSA_ID" ENABLE;
5187
--------------------------------------------------------
5188
--  DDL for Trigger TRIGGER_BUILD_INSTANCE
5189
--------------------------------------------------------
5190
 
5191
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_BUILD_INSTANCE" 
6031 dpurdie 5192
BEFORE INSERT ON BUILD_INSTANCES
5172 dpurdie 5193
for each row
5194
BEGIN
5195
  select SEQ_BUILD_INSTANCE.nextval
5196
  into :new.BUILD_ID
5197
  from DUAL;
5198
END;
5199
/
5200
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_BUILD_INSTANCE" ENABLE;
5201
--------------------------------------------------------
5202
--  DDL for Trigger TRIGGER_SDK_NAMES
5203
--------------------------------------------------------
5204
 
5205
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_NAMES" 
6031 dpurdie 5206
BEFORE INSERT ON SDK_NAMES
5172 dpurdie 5207
for each row
5208
BEGIN
5209
  select SEQ_SDK_ID.nextval
5210
  into :new.SDK_ID
5211
  from DUAL;
5212
END;
5213
/
5214
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_NAMES" ENABLE;
5215
--------------------------------------------------------
5216
--  DDL for Trigger TRIGGER_SDK_TAGS
5217
--------------------------------------------------------
5218
 
5219
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_TAGS" 
6031 dpurdie 5220
BEFORE INSERT ON SDK_TAGS
5172 dpurdie 5221
for each row
5222
BEGIN
5223
  select SEQ_SDKTAG_ID.nextval
5224
  into :new.SDKTAG_ID
5225
  from DUAL;
5226
END;
5227
/
5228
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_TAGS" ENABLE;
4040 dpurdie 5229
--------------------------------------------------------
5892 dpurdie 5230
--  DDL for Trigger TRIGGER_TEST_RUNS
5231
--------------------------------------------------------
5232
 
5233
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_TEST_RUNS" 
6031 dpurdie 5234
  BEFORE INSERT ON TEST_RUN
5235
  for each row
5892 dpurdie 5236
BEGIN
5237
  select SEQ_TESTRUN_ID.nextval
6031 dpurdie 5238
    into :new.TESTRUN_ID
5892 dpurdie 5239
  from DUAL;
5240
END;
5241
/
5242
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_TEST_RUNS" ENABLE;
5243
--------------------------------------------------------
4040 dpurdie 5244
--  DDL for Function CAN_EDIT_PKG_IN_PROJECT
5245
--------------------------------------------------------
5246
 
5172 dpurdie 5247
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."CAN_EDIT_PKG_IN_PROJECT" ( nPvId IN NUMBER, nRtagId IN NUMBER ) RETURN NUMBER IS
5384 dpurdie 5248
-- Returns 0 : Package is not editable in this Release
5249
--         1 : Package is editable in this release
1373 dpurdie 5250
/* ---------------------------------------------------------------------------
5251
    Version: 3.0.0
5252
   --------------------------------------------------------------------------- */
5253
 
5384 dpurdie 5254
  VExt PACKAGE_VERSIONS.V_EXT%TYPE;
5255
  ProjId NUMBER;
5256
  RowCount NUMBER;
5257
  cReleaseMode CHAR(1);
1373 dpurdie 5258
 
5259
BEGIN
6031 dpurdie 5260
 
5384 dpurdie 5261
  /*--------------- Business Rules Here -------------------*/
5262
  IF (nRtagId IS NULL)  OR  (nRtagId < 1)THEN
5263
    RETURN 0;
5264
  END IF;
5265
  /*-------------------------------------------------------*/
6031 dpurdie 5266
 
5384 dpurdie 5267
  /*-- First Check. See if package is used through release reference --*/
5268
  SELECT COUNT(rc.PV_ID) INTO RowCount
5269
    FROM (
5270
        SELECT rl.REF_RTAG_ID
5271
        FROM RELEASE_LINKS rl
5272
       WHERE rl.RTAG_ID = nRtagId
5273
        ) rl,
5274
      RELEASE_CONTENT rc
5275
    WHERE rc.RTAG_ID = rl.REF_RTAG_ID
6031 dpurdie 5276
      AND rc.PV_ID = nPvId;
5277
 
5278
  -- Decide if package can be edited
5384 dpurdie 5279
  IF RowCount > 0 THEN
5280
    -- Package is referenced from other release, hence cannot be edited
6031 dpurdie 5281
    RETURN 0;
5282
  END IF;
5283
 
5172 dpurdie 5284
-- Check if the package is included through an SDK reference
5285
  SELECT count(*) INTO RowCount
5286
    FROM RELEASE_CONTENT rc
5287
   WHERE rc.RTAG_ID = nRtagId
5384 dpurdie 5288
      AND rc.PV_ID = nPvId
5172 dpurdie 5289
      AND rc.SDKTAG_ID is not NULL ;
5290
 
5384 dpurdie 5291
  IF RowCount > 0 THEN
5292
    -- Package is imported via SDK
6031 dpurdie 5293
    RETURN 0;
5294
  END IF;
5295
 
5384 dpurdie 5296
--  Pegged packages can be edited. Other checking needs to be done
5297
--  -- Check if the package is pegged
5298
--  SELECT count(*) INTO RowCount
5299
--    FROM pegged_versions
5300
--   WHERE RTAG_ID = nRtagId
5301
--      AND PV_ID = nPvId;
5172 dpurdie 5302
 
5384 dpurdie 5303
--  IF RowCount > 0 THEN
5304
--    -- Package is Pegged
6031 dpurdie 5305
--    RETURN 0;
5306
--  END IF;
5307
 
5384 dpurdie 5308
  -- Check is only done for releases in restrictive mode
5309
  SELECT rt.OFFICIAL INTO cReleaseMode
5310
    FROM RELEASE_TAGS rt
5311
   WHERE rt.RTAG_ID = nRtagId;
6031 dpurdie 5312
 
5384 dpurdie 5313
  IF cReleaseMode = 'N' OR cReleaseMode = 'R'  OR cReleaseMode = 'C' THEN
5314
    -- Do not do any further checking,
5315
    -- Package is editable here
5316
    RETURN 1;
6031 dpurdie 5317
  END IF;
5172 dpurdie 5318
 
6031 dpurdie 5319
 
5384 dpurdie 5320
  /*-- Further checking --*/
5321
  -- Get proj_id
5322
  SELECT rt.PROJ_ID  INTO  ProjId
5323
    FROM RELEASE_TAGS rt
5324
   WHERE rt.RTAG_ID = nRtagId;
5172 dpurdie 5325
 
5384 dpurdie 5326
  BEGIN
5327
    -- Get v_ext
5328
    SELECT pv.V_EXT  INTO  Vext
5329
      FROM PACKAGE_VERSIONS pv
6031 dpurdie 5330
     WHERE pv.PV_ID = nPvId;
1373 dpurdie 5331
 
5384 dpurdie 5332
    EXCEPTION
5333
        WHEN NO_DATA_FOUND THEN
5334
            Vext := NULL;
6031 dpurdie 5335
  END;
5336
 
5384 dpurdie 5337
  --Temp Hack for Step Project
5338
  IF ProjId != 281 THEN
5339
    -- Find if package can be edited in this project
5340
      SELECT COUNT(pe.EXT_NAME) INTO RowCount
5341
      FROM PROJECT_EXTENTIONS pe
6031 dpurdie 5342
      WHERE pe.PROJ_ID != ProjId
5384 dpurdie 5343
        AND pe.EXT_NAME = VExt;
6031 dpurdie 5344
  END IF;
5345
 
5346
  -- Decide if package can be edited
5384 dpurdie 5347
  IF RowCount > 0 THEN
5348
    -- Package extension is found in other projects, hence NOT EDITABLE
5349
    RETURN 0;
5350
  ELSE
6031 dpurdie 5351
    RETURN 1;
5384 dpurdie 5352
  END IF;
1373 dpurdie 5353
 
6031 dpurdie 5354
 
1373 dpurdie 5355
END CAN_EDIT_PKG_IN_PROJECT;
4040 dpurdie 5356
 
1374 dpurdie 5357
/
4040 dpurdie 5358
--------------------------------------------------------
5359
--  DDL for Function DT_ADDUSEROBJECT
5360
--------------------------------------------------------
5361
 
5172 dpurdie 5362
  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 5363
 
3959 dpurdie 5364
/
4040 dpurdie 5365
--------------------------------------------------------
5366
--  DDL for Function GET_AUTOMATED_LABEL
5367
--------------------------------------------------------
5368
 
5172 dpurdie 5369
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_AUTOMATED_LABEL" ( nPvId IN NUMBER ) RETURN VARCHAR2 IS
3959 dpurdie 5370
 
5371
/* ---------------------------------------------------------------------------
5372
    Version: 3.0.0
5373
   --------------------------------------------------------------------------- */
5374
 
4211 dpurdie 5375
  sPkgName VARCHAR2(4000);
5376
  sPkgVersion VARCHAR2(4000);
5377
  sVext VARCHAR2(4000);
5378
  cChangeType CHAR;
5379
  cBuildType CHAR;
3959 dpurdie 5380
 
6031 dpurdie 5381
 
1373 dpurdie 5382
BEGIN
5383
 
3959 dpurdie 5384
	-- Get package details
6031 dpurdie 5385
	SELECT pkg.PKG_NAME, pv.V_EXT, pv.build_type, pv.change_type, pv.pkg_version INTO sPkgName, sVext,cBuildType, cChangeType, sPkgVersion
3959 dpurdie 5386
	  FROM PACKAGE_VERSIONS pv,
5387
	  	   PACKAGES pkg
5388
	 WHERE pv.PKG_ID = pkg.PKG_ID
5389
	   AND pv.PV_ID = nPvId;
5390
 
4211 dpurdie 5391
  -- Generate Label for manually built package
5392
  If cBuildType = 'M' Then
5393
    return (sPkgName ||'_'|| sPkgVersion );
5394
  End If;
3959 dpurdie 5395
 
4211 dpurdie 5396
  -- Generate Label for automated build with specified package version
5397
  IF cchangetype = 'F' Then
5398
    return (sPkgName ||'_'|| sPkgVersion ||'.WIP');
5399
  End If;
5400
 
3959 dpurdie 5401
	-- Generate Label for automated build
5402
	RETURN UPPER( sPkgName ||'.'|| nPvId || sVext ||'.WIP' );
5403
 
5404
END GET_AUTOMATED_LABEL;
4040 dpurdie 5405
 
1374 dpurdie 5406
/
4040 dpurdie 5407
--------------------------------------------------------
5408
--  DDL for Function GET_BUILD_NUMBER
5409
--------------------------------------------------------
5410
 
5172 dpurdie 5411
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_BUILD_NUMBER" (s_version IN VARCHAR2) RETURN VARCHAR2
1373 dpurdie 5412
IS
5413
/* ---------------------------------------------------------------------------
5414
    Version: 1.0.0
5415
   --------------------------------------------------------------------------- */
5416
BEGIN
5417
    IF is_number(s_version) AND LENGTH(s_version) > 3
5418
    THEN
5419
        RETURN MOD(TO_NUMBER(s_version), 1000);
5420
    ELSE
5421
        RETURN 0;
5422
    END IF;
5423
END get_build_number;
4040 dpurdie 5424
 
1374 dpurdie 5425
/
4040 dpurdie 5426
--------------------------------------------------------
5427
--  DDL for Function GET_PATCH_VERSION
5428
--------------------------------------------------------
5429
 
5172 dpurdie 5430
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_PATCH_VERSION" (s_version IN VARCHAR2) RETURN VARCHAR2
1373 dpurdie 5431
IS
5432
/* ---------------------------------------------------------------------------
3959 dpurdie 5433
    Version: 1.0.0
1373 dpurdie 5434
   --------------------------------------------------------------------------- */
5435
BEGIN
3959 dpurdie 5436
    IF is_number(s_version) AND LENGTH(s_version) > 3
1373 dpurdie 5437
    THEN
3959 dpurdie 5438
        RETURN FLOOR(TO_NUMBER(s_version) / 1000);
1373 dpurdie 5439
    ELSE
3959 dpurdie 5440
        RETURN s_version;
1373 dpurdie 5441
    END IF;
3959 dpurdie 5442
END get_patch_version;
4040 dpurdie 5443
 
1374 dpurdie 5444
/
4040 dpurdie 5445
--------------------------------------------------------
5446
--  DDL for Function GET_PV_FIRST_MODIFIED
5447
--------------------------------------------------------
5448
 
5172 dpurdie 5449
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" (v_pv_id NUMBER) RETURN DATE IS
3959 dpurdie 5450
  ret DATE;
1373 dpurdie 5451
BEGIN
3959 dpurdie 5452
  SELECT q.modified_stamp
5453
    INTO ret
5454
    FROM (
5455
            SELECT level AS lvl, pvc.pv_id, pvc.modified_stamp, pvc.change_type
5456
              FROM package_versions pvc
5457
              START WITH pvc.pv_id = v_pv_id
5458
            CONNECT BY NOCYCLE pvc.pv_id = PRIOR pvc.last_pv_id
5459
          ) Q
5460
  WHERE q.change_type IS NOT NULL
5461
    AND rownum = 1
5462
  ORDER BY q.lvl;
5463
 
5464
  RETURN ret;
5465
END;
4040 dpurdie 5466
 
1374 dpurdie 5467
/
5892 dpurdie 5468
 
6031 dpurdie 5469
  GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "RM_READONLY";
5892 dpurdie 5470
  GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "DM_READONLY";
5471
  GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 5472
--------------------------------------------------------
5473
--  DDL for Function GET_V_EXT
5474
--------------------------------------------------------
5475
 
5172 dpurdie 5476
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_V_EXT" (SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE) RETURN VARCHAR2 IS
3959 dpurdie 5477
 
1373 dpurdie 5478
/* ---------------------------------------------------------------------------
3959 dpurdie 5479
    Version: 3.0.0
1373 dpurdie 5480
   --------------------------------------------------------------------------- */
3959 dpurdie 5481
 
5482
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
5483
    lastDot NUMBER;
5484
 
1373 dpurdie 5485
BEGIN
3959 dpurdie 5486
    lastDot := INSTR (SSpkg_version, '.', -1);
5487
 
5488
    IF ( lastDot > 0 ) AND ( lastDot != LENGTH(SSpkg_version) )
1373 dpurdie 5489
    THEN
3959 dpurdie 5490
        -- YES dot separator found --
5491
        SSV_EXT := SUBSTR (SSpkg_version, lastDot, LENGTH(SSpkg_version)-lastDot+1);
5492
 
5493
        IF IS_VERSION_EXTENSION ( SSV_EXT )
5494
        THEN
5495
            RETURN SSV_EXT;
5496
        ELSE
5497
            RETURN NULL;
5498
        END IF;
5499
 
1373 dpurdie 5500
    ELSE
3959 dpurdie 5501
        -- NO dot separator found --
5502
        RETURN NULL;
1373 dpurdie 5503
    END IF;
3959 dpurdie 5504
 
5505
END GET_V_EXT;
4040 dpurdie 5506
 
1374 dpurdie 5507
/
4040 dpurdie 5508
--------------------------------------------------------
5509
--  DDL for Function IN_LIST_NUMBER
5510
--------------------------------------------------------
5511
 
5172 dpurdie 5512
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER" ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS
1373 dpurdie 5513
 
5514
/* ---------------------------------------------------------------------------
5515
    Version: 3.0.0
5516
   --------------------------------------------------------------------------- */
5517
 
5518
    sync_rtags		   RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
5519
	pos				   NUMBER;
3959 dpurdie 5520
	in_list			   VARCHAR2(4000) := sInList || ',';
1373 dpurdie 5521
 
5522
BEGIN
5523
 
5524
	IF NOT sInList IS NULL
5525
	THEN
5526
		LOOP
5527
	        EXIT WHEN in_list IS NULL;
5528
	        pos := INSTR ( in_list, ',' );
5529
	        sync_rtags.extend;
5530
	        sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
5531
	        in_list := SUBSTR ( in_list, pos+1 );
5532
		END LOOP;
5533
	END IF;
5534
 
5535
	RETURN sync_rtags;
3959 dpurdie 5536
END IN_LIST_NUMBER;
4040 dpurdie 5537
 
1374 dpurdie 5538
/
4040 dpurdie 5539
--------------------------------------------------------
5540
--  DDL for Function IN_LIST_NUMBER2
5541
--------------------------------------------------------
5542
 
5172 dpurdie 5543
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER2" ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS
1373 dpurdie 5544
 
5545
/* ---------------------------------------------------------------------------
5546
    Version: 3.0.0
5547
   --------------------------------------------------------------------------- */
5548
 
5549
    sync_rtags		   RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
5550
	pos				   NUMBER;
3959 dpurdie 5551
	in_list			   VARCHAR2(32767) := sInList || ',';
1373 dpurdie 5552
 
5553
BEGIN
5554
 
5555
	IF NOT sInList IS NULL
5556
	THEN
5557
		LOOP
5558
	        EXIT WHEN in_list IS NULL;
5559
	        pos := INSTR ( in_list, ',' );
5560
	        sync_rtags.extend;
5561
	        sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
5562
	        in_list := SUBSTR ( in_list, pos+1 );
5563
		END LOOP;
5564
	END IF;
5565
 
5566
	RETURN sync_rtags;
3959 dpurdie 5567
END IN_LIST_NUMBER2;
4040 dpurdie 5568
 
1374 dpurdie 5569
/
4040 dpurdie 5570
--------------------------------------------------------
5571
--  DDL for Function IN_LIST_VARCHAR2
5572
--------------------------------------------------------
5573
 
5172 dpurdie 5574
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_VARCHAR2" ( sInList IN VARCHAR2, cSeparator IN VARCHAR2 ) RETURN RELMGR_VARCHAR2_TAB_t IS
1373 dpurdie 5575
 
5576
/* ---------------------------------------------------------------------------
5577
    Version: 3.1
5578
   --------------------------------------------------------------------------- */
5579
 
5580
    cItemCollection	   RELMGR_VARCHAR2_TAB_t := RELMGR_VARCHAR2_TAB_t();
5581
	pos				   NUMBER;
5582
	in_list			   VARCHAR2(4000) := sInList || cSeparator;
5583
	val				   VARCHAR2(4000);
5584
 
5585
BEGIN
5586
 
5587
	IF NOT sInList IS NULL
5588
	THEN
5589
		LOOP
5590
	        EXIT WHEN in_list IS NULL;
5591
	        pos := INSTR ( in_list, cSeparator );
5592
			val := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
6031 dpurdie 5593
 
1373 dpurdie 5594
			IF (NOT val IS NULL) THEN
5595
		        cItemCollection.extend;
5596
		        cItemCollection(cItemCollection.count) := val;
5597
			END IF;
6031 dpurdie 5598
 
1373 dpurdie 5599
	        in_list := SUBSTR ( in_list, pos+1 );
5600
		END LOOP;
5601
	END IF;
5602
 
5603
	RETURN cItemCollection;
5604
END IN_LIST_VARCHAR2;
4040 dpurdie 5605
 
1374 dpurdie 5606
/
4040 dpurdie 5607
--------------------------------------------------------
5608
--  DDL for Function IS_NUMBER
5609
--------------------------------------------------------
5610
 
5172 dpurdie 5611
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IS_NUMBER" (p_val IN VARCHAR2) RETURN BOOLEAN
3959 dpurdie 5612
IS
5613
   temp_num NUMBER;
5614
/* ---------------------------------------------------------------------------
5615
    Version: 1.0.0
5616
   --------------------------------------------------------------------------- */
5617
BEGIN
5618
   temp_num := TO_NUMBER(p_val);
5619
   RETURN true;
5620
EXCEPTION WHEN VALUE_ERROR THEN
5621
   RETURN false;
5622
END IS_NUMBER;
4040 dpurdie 5623
 
3959 dpurdie 5624
/
4040 dpurdie 5625
--------------------------------------------------------
5626
--  DDL for Function IS_VERSION_EXTENSION
5627
--------------------------------------------------------
5628
 
5172 dpurdie 5629
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IS_VERSION_EXTENSION" (SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE) RETURN BOOLEAN
3959 dpurdie 5630
IS
5631
/* ---------------------------------------------------------------------------
5632
    Version: 3.0.0
5633
   --------------------------------------------------------------------------- */
1373 dpurdie 5634
 
3959 dpurdie 5635
BEGIN
5636
    IF LENGTH ( TRIM (TRANSLATE (SSV_EXT, '.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',' ') ) ) > 0
5637
    THEN
5638
        RETURN FALSE;
5639
    ELSE
5640
        RETURN TRUE;
5641
    END IF;
1373 dpurdie 5642
 
3959 dpurdie 5643
END IS_VERSION_EXTENSION;
4040 dpurdie 5644
 
1374 dpurdie 5645
/
4040 dpurdie 5646
--------------------------------------------------------
5647
--  DDL for Function ORA_SYSDATE
5648
--------------------------------------------------------
5649
 
5172 dpurdie 5650
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."ORA_SYSDATE" 
3959 dpurdie 5651
RETURN DATE
1373 dpurdie 5652
IS
3959 dpurdie 5653
/* ---------------------------------------------------------------------------
5654
    Version: 3.0.0
5655
   --------------------------------------------------------------------------- */
5656
BEGIN
1373 dpurdie 5657
 
3959 dpurdie 5658
    RETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY' ),'DD-MON-YYYY' );
5659
END ORA_SYSDATE;
4040 dpurdie 5660
 
3959 dpurdie 5661
/
4040 dpurdie 5662
--------------------------------------------------------
5663
--  DDL for Function ORA_SYSDATETIME
5664
--------------------------------------------------------
5665
 
5172 dpurdie 5666
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."ORA_SYSDATETIME" 
3959 dpurdie 5667
RETURN DATE
5668
IS
5669
/* ---------------------------------------------------------------------------
5670
    Version: 3.0.0
5671
   --------------------------------------------------------------------------- */
5672
BEGIN
1373 dpurdie 5673
 
3959 dpurdie 5674
    RETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY HH24:MI:SS' ),'DD-MON-YYYY HH24:MI:SS' );
5675
END ORA_SYSDATETIME;
4040 dpurdie 5676
 
3959 dpurdie 5677
/
4040 dpurdie 5678
--------------------------------------------------------
5679
--  DDL for Function PERL_DBD_TESTFUNC
5680
--------------------------------------------------------
5681
 
5172 dpurdie 5682
  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 5683
 
1374 dpurdie 5684
/
4040 dpurdie 5685
--------------------------------------------------------
5686
--  DDL for Function RELEASE_MODE
5687
--------------------------------------------------------
5688
 
5172 dpurdie 5689
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."RELEASE_MODE" ( nRtagId IN NUMBER ) RETURN CHAR IS
1373 dpurdie 5690
 
3959 dpurdie 5691
/* ---------------------------------------------------------------------------
5692
    Version: 3.0.0
5693
   --------------------------------------------------------------------------- */
1373 dpurdie 5694
 
3959 dpurdie 5695
   returnValue CHAR(1);
1373 dpurdie 5696
 
3959 dpurdie 5697
BEGIN
1373 dpurdie 5698
 
3959 dpurdie 5699
    /*--------------- Business Rules Here -------------------*/
5700
	/*-------------------------------------------------------*/
6031 dpurdie 5701
 
3959 dpurdie 5702
	-- Get release mode
5703
	SELECT rt.OFFICIAL INTO returnValue
5704
	  FROM RELEASE_TAGS rt
5705
	 WHERE rt.RTAG_ID = nRtagId;
6031 dpurdie 5706
 
3959 dpurdie 5707
	RETURN returnValue;
6031 dpurdie 5708
 
3959 dpurdie 5709
END RELEASE_MODE;
4040 dpurdie 5710
 
1374 dpurdie 5711
/
4040 dpurdie 5712
--------------------------------------------------------
5713
--  DDL for Package PK_APP_UTILS
5714
--------------------------------------------------------
5715
 
5172 dpurdie 5716
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_APP_UTILS" IS
1373 dpurdie 5717
/*
5718
------------------------------
5719
||  Last Modified:  S.Vukovic
5720
||  Modified Date:  26/Apr/2005
5721
||  Spec Version:   1.0
5722
------------------------------
5723
*/
5724
 
5725
	TYPE typeCur IS REF CURSOR;
5726
 
5727
    /*================================================================================================*/
5728
 
5729
	PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur);
5730
 
5731
	/*================================================================================================*/
5732
 
5733
END PK_APP_UTILS;
4040 dpurdie 5734
 
1374 dpurdie 5735
/
4040 dpurdie 5736
 
5892 dpurdie 5737
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_APP_UTILS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 5738
--------------------------------------------------------
5739
--  DDL for Package PK_BUILDAPI
5740
--------------------------------------------------------
5741
 
5172 dpurdie 5742
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_BUILDAPI" 
1373 dpurdie 5743
IS
5744
   /*================================================================================================*/
5745
   PROCEDURE add_product_component (
5746
      npvid           IN   NUMBER,
5747
      sosname         IN   VARCHAR2,
5748
      sorigfilepath   IN   VARCHAR2,
5749
      sfilename       IN   VARCHAR2,
5750
      sdestfilepath   IN   VARCHAR2,
5751
      nbytesize       IN   NUMBER,
5752
      scrccksum       IN   VARCHAR2
5753
   );
5754
 
5755
   PROCEDURE remove_all_product_components (
5756
      npvid     IN   NUMBER,
5757
      sosname   IN   VARCHAR2
5758
   );
5759
 
5760
   /*================================================================================================*/
5761
   FUNCTION get_osid (sosname IN VARCHAR2)
5762
      RETURN NUMBER;
5763
 
4308 dpurdie 5764
  /*================================================================================================*/
5765
    PROCEDURE update_build_service_info (
1373 dpurdie 5766
      sdatabaseserver   IN   VARCHAR2,
5767
      sarchiveserver    IN   VARCHAR2,
5768
      smailserver       IN   VARCHAR2,
5769
      smailsender       IN   VARCHAR2,
4211 dpurdie 5770
      faultmlist        IN   VARCHAR2,
1373 dpurdie 5771
      sdiskspace        IN   VARCHAR2,
6600 dpurdie 5772
      ssbommanagement   IN   VARCHAR2,
5773
      lxrserver         IN   VARCHAR2
1373 dpurdie 5774
   );
5775
 
5776
   /*================================================================================================*/
4040 dpurdie 5777
   PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2, sgbeclass IN NUMBER);
1373 dpurdie 5778
 
5779
   /*================================================================================================*/
5780
   PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER);
5781
 
5782
   /*================================================================================================*/
4040 dpurdie 5783
   PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2, sgbeclass IN NUMBER);
1373 dpurdie 5784
 
4040 dpurdie 5785
  /*================================================================================================*/
5786
   PROCEDURE add_buildmachine (sbmvalue IN VARCHAR2);
5787
 
1373 dpurdie 5788
   /*================================================================================================*/
4040 dpurdie 5789
   PROCEDURE remove_buildmachine (nbm_id IN NUMBER);
5790
 
5791
   /*================================================================================================*/
5792
   PROCEDURE update_buildmachine (nbm_id IN NUMBER, sbmvalue IN VARCHAR2);
6031 dpurdie 5793
 
4040 dpurdie 5794
   /*================================================================================================*/
1373 dpurdie 5795
   PROCEDURE delete_daemon (srconidlist IN VARCHAR2);
6031 dpurdie 5796
 
1373 dpurdie 5797
   /*================================================================================================*/
4308 dpurdie 5798
   PROCEDURE remove_daemon (srconidlist IN VARCHAR2);
1373 dpurdie 5799
 
5800
   /*================================================================================================*/
5801
   PROCEDURE insert_schedule_info (
5802
      dschedulepause     IN   DATE,
5803
      dscheduleresume    IN   DATE,
5804
      crepeat            IN   VARCHAR2,
5805
      cindefinitepause   IN   VARCHAR2
5806
   );
5807
 
5808
   /*================================================================================================*/
5809
   PROCEDURE delete_schedule (nscheduleid IN NUMBER);
5810
 
5811
   /*================================================================================================*/
5812
   PROCEDURE set_infinite_pause;
5813
 
5814
   /*================================================================================================*/
5815
   PROCEDURE set_resume;
5816
 
5817
   /*================================================================================================*/
5818
   PROCEDURE delete_out_of_date_schedule;
5819
 
5820
   /*================================================================================================*/
5821
   PROCEDURE set_daemon_resume (nrconid IN NUMBER);
5822
 
5823
   /*================================================================================================*/
5824
   PROCEDURE set_daemon_pause (nrconid IN NUMBER);
5825
 
5826
   /*================================================================================================*/
5827
   PROCEDURE set_daemon_disable (nrconid NUMBER);
5828
 
5829
   /*================================================================================================*/
5830
   PROCEDURE set_daemon_states (nrtagid NUMBER, nstate NUMBER);
5831
 
5832
   /*================================================================================================*/
5833
   PROCEDURE mark_daemon_inst_in_progress( nInstId IN NUMBER );
5834
   /*================================================================================================*/
5835
   PROCEDURE mark_daemon_inst_completed( nInstId IN NUMBER );
5836
   /*================================================================================================*/
5837
   FUNCTION get_daemon_inst(
5838
      nRtag_id IN NUMBER,
5839
      nInst_id IN OUT NUMBER,
5840
      nOp_code IN OUT NUMBER,
5841
      nPv_id OUT NUMBER,
5842
      nUser_id OUT NUMBER,
5843
      nInProgress OUT NUMBER
5844
   ) RETURN NUMBER;
5845
   /*================================================================================================*/
5846
   PROCEDURE cleanup_stranded_daemon_insts;
5847
   /*================================================================================================*/
5848
   PROCEDURE insert_daemon_inst(
5849
      nOp_code IN NUMBER,
5850
      nRtag_id IN NUMBER,
5851
      nPv_id IN NUMBER,
5852
      nSchedDate IN DATE,
5853
      nRepeatSecs IN NUMBER,
5854
      nAddedDate IN DATE,
5855
      nUser_id IN NUMBER
5856
   );
5857
   /*================================================================================================*/
5858
   PROCEDURE del_daemon_inst( nInstId IN NUMBER );
5859
   /*================================================================================================*/
5860
   PROCEDURE del_daemon_inst_by_rtag_pvid(
5861
      nOp_code IN NUMBER,
5862
      nRtag_id IN NUMBER,
5863
      nPv_id IN NUMBER
5864
   );
5865
   /*================================================================================================*/
5866
   PROCEDURE update_daemon_inst(
5867
      nInstId IN NUMBER,
5868
      nOp_code IN NUMBER,
5869
      nRtag_id IN NUMBER,
5870
      nPv_id IN NUMBER,
5871
      nSchedDate IN DATE,
5872
      nRepeatSecs IN NUMBER,
5873
      nAddedDate IN DATE,
5874
      nUser_id IN NUMBER
5875
   );
5876
   /*================================================================================================*/
5877
   FUNCTION daemon_ops_for_rtag_pvid(
5878
      nRtag_id IN NUMBER,
5879
      nPv_id IN NUMBER
5880
   ) RETURN VARCHAR2;
5881
   /*================================================================================================*/
5882
   FUNCTION daemon_ops_for_rtag(
5883
      nRtag_id IN NUMBER
5884
   ) RETURN VARCHAR2;
5885
   /*================================================================================================*/
5886
   PROCEDURE add_daemon_config (
5887
      nrtagid           IN   NUMBER,
5888
      nbmcon_id         IN   NUMBER,
5889
      sdaemon_mode      IN   VARCHAR2,
5890
      sgbebuildfilter   IN   VARCHAR2
5891
   );
5892
   /*================================================================================================*/
5893
   PROCEDURE update_daemon_config (
5894
      nrconid           IN   NUMBER,
5895
      nbmcon_id         IN   NUMBER,
5896
      sdaemon_mode      IN   VARCHAR2,
5897
      sgbebuildfilter   IN   VARCHAR2
5898
   );
5899
 
4308 dpurdie 5900
 /*================================================================================================*/
5901
   PROCEDURE duplicate_daemon_config (
5902
      nrtagid           IN   NUMBER,
5903
      nbmcon_id         IN   NUMBER,
5904
      sdaemonhostname   IN   VARCHAR2,
5905
      ngbe_id           IN   NUMBER,
5906
      sdaemon_mode      IN   VARCHAR2,
5907
      sgbebuildfilter   IN   VARCHAR2
5908
   );
6031 dpurdie 5909
 
1373 dpurdie 5910
   /*================================================================================================*/
5911
   PROCEDURE add_build_machine (
5912
      sdisplay_name          IN   VARCHAR2,
5913
      smachine_hostname      IN   VARCHAR2,
5914
      ngbeid                 IN   NUMBER,
5172 dpurdie 5915
      sdescription           IN   VARCHAR2,
5916
      sactive                IN CHAR
1373 dpurdie 5917
   );
5918
   /*================================================================================================*/
5919
   PROCEDURE delete_build_machine (sbmcon_id_list IN VARCHAR2);
5920
   /*================================================================================================*/
5921
   PROCEDURE update_build_machine (
5922
      nbmcon_id              IN   NUMBER,
5923
      sdisplay_name          IN   VARCHAR2,
5924
      smachine_hostname      IN   VARCHAR2,
5925
      ngbeid                 IN   NUMBER,
5172 dpurdie 5926
      sdescription           IN   VARCHAR2,
5927
      sactive                IN CHAR
1373 dpurdie 5928
   );
4553 dpurdie 5929
   /*================================================================================================*/
5930
   PROCEDURE import_daemons ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER  );
5172 dpurdie 5931
   /*================================================================================================*/
5892 dpurdie 5932
   PROCEDURE set_finite_pause ( duration IN NUMBER  );
5933
   PROCEDURE set_build_plan (rtagId IN NUMBER, nStartIndex IN NUMBER, pvList IN VARCHAR2);
5172 dpurdie 5934
 
1373 dpurdie 5935
END pk_buildapi;
4040 dpurdie 5936
 
1374 dpurdie 5937
/
4040 dpurdie 5938
--------------------------------------------------------
5939
--  DDL for Package PK_ENVIRONMENT
5940
--------------------------------------------------------
5941
 
5172 dpurdie 5942
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_ENVIRONMENT" IS
1373 dpurdie 5943
/*
5944
------------------------------
3959 dpurdie 5945
||  Last Modified:  G.Huddy
5946
||  Modified Date:  28/May/2008
5947
||  Spec Version:   1.2
1373 dpurdie 5948
------------------------------
5949
*/
5950
 
3959 dpurdie 5951
	TYPE typeCur IS REF CURSOR;
5952
 
1373 dpurdie 5953
	/*================================================================================================*/
5954
 
3959 dpurdie 5955
	FUNCTION SELECT_ENVIRONMENT_AREA ( cDlock IN PACKAGE_VERSIONS.DLOCKED%TYPE ) RETURN NUMBER;
5956
	FUNCTION GET_PACKAGE_AREA ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5957
	FUNCTION GET_VIEW_LOCATION ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5384 dpurdie 5958
	PROCEDURE ADD_PACKAGE ( PvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, imode IN   CHAR default NULL );
5959
	PROCEDURE ADD_PACKAGE_BULK ( PvIdList IN VARCHAR2, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, imode IN CHAR default NULL );
3959 dpurdie 5960
	PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5961
	FUNCTION REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, ForceRemove IN CHAR ) RETURN NUMBER;
5962
 
5963
	PROCEDURE GET_ENVIRONMENT_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5964
	PROCEDURE GET_RELEASED_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5965
	PROCEDURE GET_PENDING_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5966
	PROCEDURE GET_WORK_IN_PROGRESS_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5967
 
5968
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
5969
 
5970
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5971
 
5972
 
5973
	PROCEDURE MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5974
	PROCEDURE MAKE_UNRELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5975
 
5976
	PROCEDURE MAKE_PENDING ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5977
	PROCEDURE MAKE_APPROVED ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5978
	PROCEDURE MAKE_REJECT ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5979
	PROCEDURE APPROVE_MERGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5980
 
5981
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
5982
 
5983
	PROCEDURE FIND_PACKAGE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, RecordSet OUT typeCur );
5984
	PROCEDURE FIND_FILE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, nPageSize IN NUMBER, RecordSet OUT typeCur );
5985
 
5986
	PROCEDURE AUTO_MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, VExt IN
5987
							 PACKAGE_VERSIONS.V_EXT%TYPE, SSV_EXT IN PACKAGE_VERSIONS.V_EXT%TYPE,
5988
							 CloneFromPvId IN NUMBER );
5989
 
5990
	PROCEDURE GET_PRODRELEASE_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5991
 
5992
	PROCEDURE GET_INTEGRATION_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5993
 
5994
	PROCEDURE GET_TEST_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5995
 
5996
	PROCEDURE GET_DEPLOY_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5997
 
5998
	PROCEDURE GET_REJECT_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
1373 dpurdie 5999
	/*================================================================================================*/
3959 dpurdie 6000
 
6001
END PK_ENVIRONMENT;
4040 dpurdie 6002
 
1374 dpurdie 6003
/
4040 dpurdie 6004
--------------------------------------------------------
6005
--  DDL for Package PK_LICENCING
6006
--------------------------------------------------------
6007
 
5172 dpurdie 6008
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_LICENCING" IS
3959 dpurdie 6009
/*
6010
------------------------------
6011
||  Last Modified:  G.Huddy
6012
||  Modified Date:  19/Aug/2008
6013
||  Spec Version:   1.0
6014
------------------------------
6015
*/
6016
 
6017
   TYPE typeCur IS REF CURSOR;
6018
 
6019
    /*================================================================================================*/
6020
   PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER );
6021
   PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER );
6022
   PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER );
6023
   FUNCTION  IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER;
6024
   PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER );
6025
   /*================================================================================================*/
6026
 
6027
END PK_LICENCING;
4040 dpurdie 6028
 
3959 dpurdie 6029
/
4040 dpurdie 6030
--------------------------------------------------------
6031
--  DDL for Package PK_PACKAGE
6032
--------------------------------------------------------
6033
 
5172 dpurdie 6034
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PACKAGE" 
1373 dpurdie 6035
IS
6036
/*
6037
------------------------------
3959 dpurdie 6038
||  Last Modified:  Jeremy Tweddle
6039
||  Modified Date:  24/08/2007
1373 dpurdie 6040
||
6041
------------------------------
6042
*/
6043
   TYPE typecur IS REF CURSOR;
6031 dpurdie 6044
 
5502 dpurdie 6045
   /*
6046
    * Carriage-return line-feed character sequence.
6047
    */
6048
   CRLF CONSTANT VARCHAR2(2 CHAR) := unistr('\000D\000A');
1373 dpurdie 6049
 
6050
/*================================================================================================*/
6051
   PROCEDURE new_version (
6052
      nlastpvid                   IN       NUMBER,
6053
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
6054
      cbuildtype                  IN       CHAR,
4211 dpurdie 6055
      cchangetype                 IN       CHAR,
1373 dpurdie 6056
      nsettopvid                  IN       NUMBER DEFAULT NULL,
6057
      nrtagid                     IN       NUMBER,
6058
      nuserid                     IN       NUMBER,
6059
      enumissues_state_imported   IN       NUMBER,
6060
      returnpvid                  OUT      NUMBER
6061
   );
6062
 
6063
   PROCEDURE change_state (
6064
      pvid       IN   NUMBER,
6065
      newstate   IN   package_versions.dlocked%TYPE,
6066
      userid     IN   NUMBER
6067
   );
6068
 
6069
   PROCEDURE new_patch (
6070
      snewpatchversion   IN       package_versions.pkg_version%TYPE,
6071
      nparentpvid        IN       NUMBER,
6072
      spatchidlist       IN       VARCHAR2,
6073
      nuserid            IN       NUMBER,
6074
      returnpatchid      OUT      NUMBER
6075
   );
6076
 
6077
   PROCEDURE obsolete_patch (
6078
      patchid            IN   NUMBER,
6079
      isobsolete         IN   CHAR,
6080
      obsoletecomments   IN   VARCHAR2,
6081
      userid             IN   NUMBER
6082
   );
6083
 
6084
   PROCEDURE obsolete_patches (
6085
      spatchidlist       IN   VARCHAR2,
6086
      isobsolete         IN   CHAR,
6087
      obsoletecomments   IN   VARCHAR2,
6088
      userid             IN   NUMBER
6089
   );
6090
 
6091
   PROCEDURE destroy_package (
6092
      pvid               IN       NUMBER,
6093
      overridewarnings   IN       CHAR DEFAULT 'N',
6094
      problemstring      OUT      VARCHAR2
6095
   );
6031 dpurdie 6096
 
6097
   PROCEDURE destroy_package_extended (
6098
      pvid               IN       NUMBER,
6099
      rtagid             IN       NUMBER,
6100
      overridewarnings   IN       NUMBER DEFAULT 0,
6101
      RESULTS            OUT      SYS_REFCURSOR
6102
);
1373 dpurdie 6103
   PROCEDURE add_process (
6104
      nprocid         IN   processes.proc_id%TYPE,
6105
      shealthtag      IN   processes.proc_name%TYPE,
6106
      sprocdesc       IN   processes.proc_description%TYPE,
6107
      scmdinterface   IN   processes.run_as%TYPE,
6108
      spkgowner       IN   processes.pkg_owner%TYPE,
6109
      sisinterface    IN   processes.is_interface%TYPE,
6110
      npvid           IN   package_processes.pv_id%TYPE,
6111
      nuserid         IN   NUMBER
6112
   );
6113
 
6114
   PROCEDURE add_package_process (
6115
      nprocidlist   IN   VARCHAR2,
6116
      npvid         IN   package_processes.pv_id%TYPE,
6117
      nuserid       IN   NUMBER
6118
   );
6119
 
6031 dpurdie 6120
 
6121
 
1373 dpurdie 6122
   PROCEDURE remove_process (
6123
      nprocid   IN   package_processes.proc_id%TYPE,
6124
      npvid     IN   package_processes.pv_id%TYPE,
6125
      nuserid   IN   NUMBER
6126
   );
6031 dpurdie 6127
 
1373 dpurdie 6128
   PROCEDURE move_package (
6129
   	  npvid  			  IN package_versions.pv_id%TYPE,
6130
	  nrtagid 			  IN release_tags.rtag_id%TYPE,
6131
	  nnewrtagid 		  IN release_tags.rtag_id%TYPE,
6031 dpurdie 6132
	  nuserid			  IN NUMBER
6133
   );
6134
 
3959 dpurdie 6135
   PROCEDURE modify_product_state (
1373 dpurdie 6136
   	  npvid IN package_versions.pv_id%TYPE,
3959 dpurdie 6137
	  nrtagid IN release_tags.rtag_id%TYPE,
1373 dpurdie 6138
	  nstateid IN product_states.state_id%TYPE,
6139
	  nuserid IN NUMBER
6140
   );
6031 dpurdie 6141
 
3959 dpurdie 6142
   PROCEDURE add_code_review_url (
6143
        npvid           IN    NUMBER,
6144
        nprojid         IN    NUMBER,
6145
        surl            IN    VARCHAR2,
6146
        sreason         IN    VARCHAR2,
4553 dpurdie 6147
        ddateofreview   IN    VARCHAR2
3959 dpurdie 6148
   );
6031 dpurdie 6149
 
3959 dpurdie 6150
   PROCEDURE update_code_review_url (
6151
        ncrid           IN    NUMBER,
6152
        nprojid         IN    NUMBER,
6153
        surl            IN    VARCHAR2,
4553 dpurdie 6154
        sreason         IN    VARCHAR2,
6155
        ddateofreview   IN    VARCHAR2
3959 dpurdie 6156
   );
6031 dpurdie 6157
 
3959 dpurdie 6158
   PROCEDURE remove_code_review_url (
6159
        ncrid           IN    NUMBER
6160
   );
6600 dpurdie 6161
 
6162
   PROCEDURE SET_RIPPLE_STOP (
6163
    nPVID IN RELEASE_CONTENT.PV_ID%TYPE,
6164
    nRtagId IN RELEASE_CONTENT.RTAG_ID%TYPE,
6165
    nUserId IN NUMBER,
6166
    cMode IN CHAR
6167
);
1373 dpurdie 6168
/*================================================================================================*/
3959 dpurdie 6169
END pk_package;
4040 dpurdie 6170
 
1374 dpurdie 6171
/
5892 dpurdie 6172
 
6031 dpurdie 6173
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
6174
  GRANT DEBUG ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 6175
--------------------------------------------------------
6176
--  DDL for Package PK_PLANNED
6177
--------------------------------------------------------
6178
 
5172 dpurdie 6179
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PLANNED" IS
1373 dpurdie 6180
/*
6181
------------------------------
6182
||  Last Modified:  G.Huddy
6183
||  Modified Date:  28/May/2008
6184
||  Spec Version:   1.1
6185
------------------------------
6186
*/
6187
 
6188
	TYPE typeCur IS REF CURSOR;
6189
 
6190
    /*================================================================================================*/
5384 dpurdie 6191
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, OPR IN CHAR DEFAULT 'R'  );
1373 dpurdie 6192
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6193
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
6194
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
6195
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
6196
	PROCEDURE MERGE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, mergeOperation IN CHAR);
6197
	/*================================================================================================*/
6198
 
6199
END PK_PLANNED;
4040 dpurdie 6200
 
1374 dpurdie 6201
/
4040 dpurdie 6202
--------------------------------------------------------
6203
--  DDL for Package PK_PROJECT
6204
--------------------------------------------------------
6205
 
5172 dpurdie 6206
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PROJECT" IS
1373 dpurdie 6207
 
3959 dpurdie 6208
    TYPE typecur IS REF CURSOR;
1373 dpurdie 6209
 
3959 dpurdie 6210
    /*------------------------------------------------------------------------*/
6211
    PROCEDURE update_base_url (
6212
        nprojid   IN  projects.proj_id%TYPE,
6213
        sbaseurl  IN  VARCHAR2
6214
    );
6215
    /*------------------------------------------------------------------------*/
6216
    PROCEDURE update_project_config (
6217
    nprojid   IN  projects.proj_id%TYPE,
6218
    sbaseurl  IN  VARCHAR2,
6219
    sjirakey  IN  VARCHAR2
6220
    );
6221
    /*------------------------------------------------------------------------*/
1373 dpurdie 6222
 
3959 dpurdie 6223
    END pk_project;
4040 dpurdie 6224
 
1374 dpurdie 6225
/
4040 dpurdie 6226
--------------------------------------------------------
6227
--  DDL for Package PK_RELEASE
6228
--------------------------------------------------------
6229
 
5172 dpurdie 6230
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_RELEASE" IS
1373 dpurdie 6231
/*
6232
------------------------------
6233
||  Last Modified:  S.Vukovic
6234
||  Modified Date:  12/Sep/2005
6235
||  Body Version:   3.0
6236
------------------------------
6237
*/
6238
 
6239
	TYPE typeCur IS REF CURSOR;
6240
 
6241
    /*================================================================================================*/
5502 dpurdie 6242
	PROCEDURE New_Release ( sReleaseName IN VARCHAR2, sReleaseComments IN VARCHAR2, nProjId IN NUMBER, nSourceRtagId IN NUMBER, sIsBranched IN CHAR, nUserId IN NUMBER,cOfficial IN CHAR DEFAULT 'N' );
5384 dpurdie 6243
	PROCEDURE Update_Release ( nRtagId IN NUMBER, sReleaseName IN VARCHAR2, sReleaseComments IN VARCHAR2, nParentRtagId IN NUMBER, nMASSRtagId IN NUMBER, nConfigSpecBranch IN VARCHAR2, sOwnerEmail IN VARCHAR2, nUserId IN NUMBER, cState IN VARCHAR, nBuildAge in NUMBER,cLxr in CHAR );
1373 dpurdie 6244
	PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER  );
6245
	PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER );
5502 dpurdie 6246
	PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER,nMode IN NUMBER default 0 );
1373 dpurdie 6247
	PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER );
6248
	FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR ) RETURN NUMBER;
6249
	PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER );
5502 dpurdie 6250
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
1373 dpurdie 6251
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6252
	--PROCEDURE ADD_DEPRECATE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, nPkgId IN NUMBER );
6253
	PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6254
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6255
	PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6256
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
6257
	PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER );
6258
	PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER );
6259
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
6260
	PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 );
6261
	PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER );
6262
	PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR );
5172 dpurdie 6263
  PROCEDURE SET_RELEASE_MODIFIED (nRtagId IN NUMBER );
6264
  PROCEDURE ADD_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER, nUserId IN NUMBER, bDelete IN  NUMBER, nInsertCount OUT NUMBER, curReturn OUT typeCur );
6265
  PROCEDURE REMOVE_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER );
6266
  FUNCTION CAN_ADD_PKG_TO_RELEASE ( nRtagId IN NUMBER, nPvid in NUMBER ) RETURN NUMBER;
5502 dpurdie 6267
 
1373 dpurdie 6268
	/*================================================================================================*/
5384 dpurdie 6269
 
1373 dpurdie 6270
END PK_RELEASE;
4040 dpurdie 6271
 
1374 dpurdie 6272
/
4040 dpurdie 6273
--------------------------------------------------------
6274
--  DDL for Package PK_RMAPI
6275
--------------------------------------------------------
6276
 
5172 dpurdie 6277
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_RMAPI" 
3959 dpurdie 6278
IS
6279
   TYPE typecur IS REF CURSOR;
1373 dpurdie 6280
 
3959 dpurdie 6281
   FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)
6282
      RETURN typecur;
1373 dpurdie 6283
 
3959 dpurdie 6284
   FUNCTION wip_iteration_package (
6285
      projname        VARCHAR2,
6286
      iterationname   VARCHAR2,
6287
      pkgname         VARCHAR2
6288
   )
6289
      RETURN typecur;
1373 dpurdie 6290
 
3959 dpurdie 6291
   FUNCTION auto_make_vcsrelease (
6292
      rtagid                   IN   NUMBER,
6293
      pkgname                  IN   VARCHAR2,
6294
      vext                     IN   VARCHAR2,
6295
      newpkgversion            IN   VARCHAR2,
6296
      vcstag                   IN   VARCHAR2,
6297
      dependenciesimportlist   IN   VARCHAR2,
6298
      isrippled                IN   NUMBER,
6299
      username                 IN   VARCHAR2
6300
   )
6301
      RETURN NUMBER;
6600 dpurdie 6302
 
6303
FUNCTION auto_make_vcsrelease2 (
6304
      rtagid                   IN   NUMBER,
6305
      pkgname                  IN   VARCHAR2,
6306
      vext                     IN   VARCHAR2,
6307
      newpkgversion            IN   VARCHAR2,
6308
      vcstag                   IN   VARCHAR2,
6309
      dependenciesimportlist   IN   relmgr_varchar2_tab_t,
6310
      isrippled                IN   NUMBER,
6311
      username                 IN   VARCHAR2
6312
   )      
6313
      RETURN NUMBER;
1373 dpurdie 6314
 
3959 dpurdie 6315
   PROCEDURE import_dependencies (
6316
      pvid                     IN   NUMBER,
6317
      dependenciesimportlist   IN   VARCHAR2,
6318
      userid                   IN   NUMBER
6319
   );
6600 dpurdie 6320
 
6321
    PROCEDURE import_dependencies2 (
6322
    pvid                     IN   NUMBER,
6323
    dependenciesimportlist   IN   relmgr_varchar2_tab_t,
6324
    userid                   IN   NUMBER
6325
    );
1373 dpurdie 6326
 
3959 dpurdie 6327
   FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)
6328
      RETURN VARCHAR2;
1373 dpurdie 6329
 
3959 dpurdie 6330
   FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)
6331
      RETURN VARCHAR2;
1373 dpurdie 6332
 
3959 dpurdie 6333
   PROCEDURE update_dash_board (rtagid IN NUMBER);
1373 dpurdie 6334
 
3959 dpurdie 6335
   FUNCTION exclude_from_build (
6336
      pvid          IN   NUMBER,
6337
      spkgversion   IN   VARCHAR2,
6338
      rtagid        IN   NUMBER,
6339
      username      IN   VARCHAR2
6340
   )
6341
      RETURN NUMBER;
1373 dpurdie 6342
 
3959 dpurdie 6343
   FUNCTION exclude_indirect_from_build (
6344
      pvid          IN   NUMBER,
6345
      spkgversion   IN   VARCHAR2,
6346
      rtagid        IN   NUMBER,
6347
      username      IN   VARCHAR2,
6348
      rootpvid      IN   NUMBER,
6349
      rootcause     IN   VARCHAR2,
6350
      rootfile      IN   VARCHAR2
6351
   )
6352
      RETURN NUMBER;
1373 dpurdie 6353
 
3959 dpurdie 6354
   PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2);
1373 dpurdie 6355
 
3959 dpurdie 6356
   FUNCTION insert_package_metrics (
6357
      rtagid IN NUMBER,
6358
      pkgname IN VARCHAR2,
6359
      vext IN VARCHAR2,
6360
      metricstring IN VARCHAR2
6361
   )
6362
      RETURN NUMBER;
1373 dpurdie 6363
 
3959 dpurdie 6364
   PROCEDURE update_release_metrics (rtagid IN NUMBER);
1373 dpurdie 6365
 
3959 dpurdie 6366
   FUNCTION return_vcs_tag(pvid IN NUMBER) RETURN VARCHAR2;
6367
 
6368
   PROCEDURE update_vcs_details(ipv_id IN NUMBER, vcstag IN VARCHAR2, user_id IN NUMBER);
6031 dpurdie 6369
 
3959 dpurdie 6370
   FUNCTION isSVN( pkgid IN NUMBER ) RETURN NUMBER;
6031 dpurdie 6371
 
3959 dpurdie 6372
   FUNCTION isSVNbyName( pkgname IN VARCHAR2 ) RETURN NUMBER;
6373
 
5172 dpurdie 6374
   FUNCTION new_build_instance( rtag_id IN NUMBER, pv_id IN NUMBER, reason IN CHAR ) return NUMBER;
6031 dpurdie 6375
 
5172 dpurdie 6376
   FUNCTION update_build_instance( nbuild_id IN NUMBER, npv_id IN NUMBER default null, nstate IN CHAR default null ) return NUMBER;
6031 dpurdie 6377
 
5172 dpurdie 6378
   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;
6379
 
6380
 
3959 dpurdie 6381
END pk_rmapi;
4040 dpurdie 6382
 
1374 dpurdie 6383
/
5892 dpurdie 6384
 
6031 dpurdie 6385
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "RM_READONLY";
6386
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "MS_READONLY";
5892 dpurdie 6387
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "DM_READONLY";
4040 dpurdie 6388
--------------------------------------------------------
6389
--  DDL for Package PK_WORK_IN_PROGRESS
6390
--------------------------------------------------------
6391
 
5172 dpurdie 6392
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS
1373 dpurdie 6393
/*
6394
------------------------------
6395
||  Last Modified:  S.Vukovic
3959 dpurdie 6396
||  Modified Date:  2/May/2005
6397
||  Spec Version:   1.0
1373 dpurdie 6398
------------------------------
6399
*/
6400
 
6401
	TYPE typeCur IS REF CURSOR;
6402
 
6403
    /*================================================================================================*/
6404
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6405
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
3959 dpurdie 6406
	PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER );
6407
 
1373 dpurdie 6408
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
6031 dpurdie 6409
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
1373 dpurdie 6410
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
6411
	/*================================================================================================*/
3959 dpurdie 6412
 
6413
END PK_WORK_IN_PROGRESS;
4040 dpurdie 6414
 
1374 dpurdie 6415
/
4040 dpurdie 6416
--------------------------------------------------------
6417
--  DDL for Package RM_ISSUES
6418
--------------------------------------------------------
6419
 
5172 dpurdie 6420
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."RM_ISSUES" AS
1373 dpurdie 6421
 
3959 dpurdie 6422
	TYPE T_Cur IS REF CURSOR;
1373 dpurdie 6423
 
3959 dpurdie 6424
	FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;
6425
	FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBER;
6426
	FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;
6427
	FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBER;
1373 dpurdie 6428
 
3959 dpurdie 6429
	PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );
6430
	PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );
6431
	PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 );
1373 dpurdie 6432
 
3959 dpurdie 6433
END Rm_Issues;
4040 dpurdie 6434
 
3959 dpurdie 6435
/
4040 dpurdie 6436
--------------------------------------------------------
6437
--  DDL for Package Body PK_APP_UTILS
6438
--------------------------------------------------------
6439
 
5172 dpurdie 6440
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_APP_UTILS" IS
1373 dpurdie 6441
 
3959 dpurdie 6442
/*
6443
------------------------------
6444
||  Last Modified:  S.Vukovic
6445
||  Modified Date:  26/Apr/2005
6446
||  Body Version:   1.0
6447
------------------------------
6448
*/
1373 dpurdie 6449
 
6450
 
6451
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 6452
PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur)   IS
1373 dpurdie 6453
 
6454
 
6455
BEGIN
6456
 
6457
 
3959 dpurdie 6458
	IF (NOT RtagId IS NULL) THEN
6459
		-- Case with RTAG_ID present
6460
		OPEN records FOR
6461
		SELECT rt.PROJ_ID,
6462
			   rt.RTAG_ID AS RTAG_ID
6463
		  FROM RELEASE_TAGS rt
6464
		 WHERE rt.RTAG_ID = TO_NUMBER(RtagId);
1373 dpurdie 6465
 
3959 dpurdie 6466
	ELSIF (NOT ProjId IS NULL) THEN
6467
		-- Case with PROJ_ID present
6468
		OPEN records FOR
6469
		SELECT TO_NUMBER(ProjId) AS PROJ_ID,
6470
			   -1 AS RTAG_ID
6471
		  FROM DUAL;
1373 dpurdie 6472
 
3959 dpurdie 6473
	ELSE
6474
		-- Case with none present
6475
		OPEN records FOR
6476
		SELECT -1 AS PROJ_ID,
6477
			   -1 AS RTAG_ID
6478
		  FROM DUAL;
1373 dpurdie 6479
 
3959 dpurdie 6480
	END IF;
1373 dpurdie 6481
 
6482
 
6483
 
6484
 
3959 dpurdie 6485
   	--RETURN records;
1373 dpurdie 6486
 
6487
END;
6488
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 6489
END PK_APP_UTILS;
4040 dpurdie 6490
 
1374 dpurdie 6491
/
4040 dpurdie 6492
 
5892 dpurdie 6493
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_APP_UTILS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 6494
--------------------------------------------------------
6495
--  DDL for Package Body PK_BUILDAPI
6496
--------------------------------------------------------
6497
 
5172 dpurdie 6498
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_BUILDAPI" 
1373 dpurdie 6499
IS
6500
   /*-------------------------------------------------------------------------------------------------------*/
6501
   PROCEDURE add_product_component (
6502
      npvid           IN   NUMBER,
6503
      sosname         IN   VARCHAR2,
6504
      sorigfilepath   IN   VARCHAR2,
6505
      sfilename       IN   VARCHAR2,
6506
      sdestfilepath   IN   VARCHAR2,
6507
      nbytesize       IN   NUMBER,
6508
      scrccksum       IN   VARCHAR2
6509
   )
6510
   IS
6511
      nosid   NUMBER;
6512
   BEGIN
6513
      /*--------------- Business Rules Here -------------------*/
6514
      -- OS Name Requirements --
6515
      IF (sosname IS NULL)
6516
      THEN
6517
         raise_application_error (-20000, 'OsName cannot be NULL.');
6518
      END IF;
6519
 
6520
      -- File Requirements --
6521
      IF (NOT sfilename IS NULL)
6522
      THEN
6523
         IF (nbytesize IS NULL)
6524
         THEN
6525
            raise_application_error (-20000, 'Byte Size cannot be NULL.');
6526
         ELSIF (scrccksum IS NULL)
6527
         THEN
6528
            raise_application_error (-20000, 'CRC CKSUM cannot be NULL.');
6529
         END IF;
6530
      END IF;
6531
 
6532
      -- Folder Requirements --
6533
      -- No requirements for now.
6534
 
6535
      /*-------------------------------------------------------*/
6536
 
6537
      -- Get OsId
6538
      nosid := get_osid (sosname);
6539
 
6540
      -- Insert component entry
6541
      INSERT INTO product_components
6542
                  (pv_id, os_id, file_path, file_name, destination_path,
6543
                  byte_size, crc_cksum
6544
                  )
6545
         VALUES (npvid, nosid, sorigfilepath, sfilename, sdestfilepath,
6546
                  nbytesize, scrccksum
6547
                  );
6548
   EXCEPTION
6549
      WHEN DUP_VAL_ON_INDEX
6550
      THEN
6551
         raise_application_error (-20000,
6552
                                 'Cannot have duplicate product components.'
6553
                                 );
6554
   END;
6555
 
6556
/*-------------------------------------------------------------------------------------------------------*/
6557
   PROCEDURE remove_all_product_components (
6558
      npvid     IN   NUMBER,
6559
      sosname   IN   VARCHAR2
6560
   )
6561
   IS
6562
      nosid   NUMBER;
6563
   BEGIN
6564
/*--------------- Business Rules Here -------------------*/
6565
/*-------------------------------------------------------*/
6566
 
6567
      -- Get OsId
6568
      nosid := get_osid (sosname);
6569
 
6570
      -- Delete component entry
6571
      DELETE FROM product_components pc
6572
            WHERE pc.pv_id = npvid AND pc.os_id = nosid;
6573
   END;
6574
 
6575
/*-------------------------------------------------------------------------------------------------------*/
6576
   FUNCTION get_osid (sosname IN VARCHAR2)
6577
      RETURN NUMBER
6578
   IS
6579
      code   NUMBER;
6580
   BEGIN
6581
      -- Get Platform Code --
6582
      SELECT pf.code
6583
      INTO code
6584
      FROM platforms pf
6585
      WHERE UPPER (pf.NAME) = UPPER (sosname);
6586
 
6587
      RETURN code;
6588
   EXCEPTION
6589
      WHEN NO_DATA_FOUND
6590
      THEN
6591
         raise_application_error
6592
            (-20000,
6593
               'Platform '
6594
            || sosname
6595
            || ' is not valid. It needs to be added to PLATFORMS table in Release Manager.'
6596
            );
6597
         RAISE;
6598
   END;
6599
 
6600
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 6601
 PROCEDURE update_build_service_info (
1373 dpurdie 6602
      sdatabaseserver   IN   VARCHAR2,
6603
      sarchiveserver    IN   VARCHAR2,
6604
      smailserver       IN   VARCHAR2,
6605
      smailsender       IN   VARCHAR2,
4211 dpurdie 6606
      faultmlist        IN   VARCHAR2,
1373 dpurdie 6607
      sdiskspace        IN   VARCHAR2,
6600 dpurdie 6608
      ssbommanagement   IN   VARCHAR2,
6609
      lxrserver         IN   VARCHAR2
1373 dpurdie 6610
   )
6611
   IS
6612
   BEGIN
6613
      UPDATE build_service_config
6614
         SET config = sdatabaseserver
6615
      WHERE service = 'DATABASE SERVER';
6616
 
6617
      UPDATE build_service_config
6618
         SET config = sarchiveserver
6619
      WHERE service = 'ARCHIVE SERVER';
6620
 
6621
      UPDATE build_service_config
6622
         SET config = smailserver
6623
      WHERE service = 'MAIL SERVER';
6624
 
6625
      UPDATE build_service_config
6626
         SET config = smailsender
6627
      WHERE service = 'BUILD FAILURE MAIL SENDER';
6628
 
6629
      UPDATE build_service_config
4211 dpurdie 6630
         SET config = faultmlist
6631
      WHERE service = 'FAULT EMAIL ADDRESS LIST';
6031 dpurdie 6632
 
4211 dpurdie 6633
      UPDATE build_service_config
1373 dpurdie 6634
         SET config = sdiskspace
6635
      WHERE service = 'DPKG_ARCHIVE DISK SPACE USED';
6636
 
6637
      UPDATE build_service_config
6638
         SET config = ssbommanagement
6639
      WHERE service = 'SBOM MANAGEMENT';
6600 dpurdie 6640
 
6641
      UPDATE build_service_config
6642
         SET config = lxrserver
6643
      WHERE service = 'LXR SERVER';
1373 dpurdie 6644
   END;
6645
 
6646
 
6031 dpurdie 6647
 
1373 dpurdie 6648
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 6649
   PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2, sgbeclass IN NUMBER)
1373 dpurdie 6650
   IS
6651
      gbe_id   NUMBER;
6652
   BEGIN
6653
      -- Get GBE_ID
6654
      SELECT seq_gbe_id.NEXTVAL
6655
      INTO gbe_id
6656
      FROM DUAL;
6657
 
6658
      INSERT INTO gbe_machtype
4040 dpurdie 6659
                  (gbe_id, gbe_value, bm_id )
6660
         VALUES (gbe_id, sgbevalue, sgbeclass );
1373 dpurdie 6661
   END;
6662
 
6663
/*-------------------------------------------------------------------------------------------------------*/
6664
   PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER)
6665
   IS
6666
   BEGIN
6667
      DELETE FROM gbe_machtype
6668
            WHERE gbe_id = ngbe_id;
6669
   END;
6670
 
6671
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 6672
   PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2, sgbeclass IN NUMBER)
1373 dpurdie 6673
   IS
6674
   BEGIN
6675
      UPDATE gbe_machtype
4040 dpurdie 6676
         SET gbe_value = sgbevalue,
6677
             bm_id = sgbeclass
1373 dpurdie 6678
      WHERE gbe_id = ngbe_id;
6679
   END;
6680
 
6681
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 6682
PROCEDURE add_buildmachine (sbmvalue IN VARCHAR2)
6683
   IS
6684
      bm_id   NUMBER;
6685
   BEGIN
6686
      -- Get BM_ID
6687
      SELECT seq_bm_id.NEXTVAL
6688
      INTO bm_id
6689
      FROM DUAL;
6690
 
6691
      INSERT INTO build_machines
6692
                  (bm_id, bm_name)
6693
         VALUES (bm_id, sbmvalue );
6694
   END;
6695
 
6696
/*-------------------------------------------------------------------------------------------------------*/
6697
   PROCEDURE remove_buildmachine (nbm_id IN NUMBER)
6698
   IS
6699
   BEGIN
6700
      DELETE FROM build_machines
6701
            WHERE bm_id = nbm_id;
6702
   END;
6703
 
6704
/*-------------------------------------------------------------------------------------------------------*/
6031 dpurdie 6705
   PROCEDURE update_buildmachine (nbm_id IN NUMBER, sbmvalue IN VARCHAR2)
4040 dpurdie 6706
   IS
6707
   BEGIN
6708
      UPDATE build_machines
6709
         SET bm_name = sbmvalue
6710
         WHERE bm_id = nbm_id;
6711
   END;
6712
 
6713
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 6714
   PROCEDURE delete_daemon (srconidlist IN VARCHAR2)
6715
   IS
6716
   BEGIN
6717
      -- Entries in the daemon_action_log, run_level and abt_action_log tables must be deleted first.
6718
      DELETE FROM daemon_action_log
6719
            WHERE rcon_id IN (
6720
                     SELECT *
6721
                     FROM THE
6722
                              (SELECT CAST
6723
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6724
                                          )
6725
                                 FROM DUAL
6726
                              ));
6727
 
6728
      DELETE FROM run_level
6729
            WHERE rcon_id IN (
6730
                     SELECT *
6731
                     FROM THE
6732
                              (SELECT CAST
6733
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6734
                                          )
6735
                                 FROM DUAL
6736
                              ));
6737
 
6738
      DELETE FROM abt_action_log
6739
            WHERE rcon_id IN (
6740
                     SELECT *
6741
                     FROM THE
6742
                              (SELECT CAST
6743
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6744
                                          )
6745
                                 FROM DUAL
6746
                              ));
6747
 
6748
      -- Once entries in daemon_action_log, run_level and abt_action_log are removed, the daemon is deleted.
6749
      DELETE FROM release_config
6750
            WHERE rcon_id IN (
6751
                     SELECT *
6752
                     FROM THE
6753
                              (SELECT CAST
6754
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6755
                                          )
6756
                                 FROM DUAL
6757
                              ));
6758
   END;
6759
 
6760
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 6761
   PROCEDURE remove_daemon (srconidlist IN VARCHAR2)
1373 dpurdie 6762
   IS
4308 dpurdie 6763
   oRconIdList RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
6764
 
1373 dpurdie 6765
   BEGIN
6031 dpurdie 6766
 
4308 dpurdie 6767
   oRconIdList := IN_LIST_NUMBER ( srconidlist );
6768
 
6769
      -- Break the linkage between the release_config and the build_machine_config
6031 dpurdie 6770
 
4308 dpurdie 6771
      -- Delete the linkage between the two tables.
6772
       UPDATE release_config
6773
         SET daemon_hostname = NULL,
6031 dpurdie 6774
             bmcon_id = NULL
4308 dpurdie 6775
      WHERE rcon_id IN ( SELECT * FROM TABLE ( CAST ( oRconIdList AS RELMGR_NUMBER_TAB_t ) ) );
1373 dpurdie 6776
   END;
6777
 
6778
/*-------------------------------------------------------------------------------------------------------*/
6779
   PROCEDURE insert_schedule_info (
6780
      dschedulepause     IN   DATE,
6781
      dscheduleresume    IN   DATE,
6782
      crepeat            IN   VARCHAR2,
6783
      cindefinitepause   IN   VARCHAR2
6784
   )
6785
   IS
6786
      nscheduledid   NUMBER;
6787
   BEGIN
6788
      -- Get Next Available Scheduled Id
6789
      SELECT seq_scheduled_id.NEXTVAL
6790
      INTO nscheduledid
6791
      FROM DUAL;
6792
 
6793
      INSERT INTO run_level_schedule
6794
         VALUES (nscheduledid, dschedulepause, dscheduleresume, crepeat,
6795
                  cindefinitepause);
6796
   END;
6797
 
6798
/*-------------------------------------------------------------------------------------------------------*/
6799
   PROCEDURE delete_schedule (nscheduleid IN NUMBER)
6800
   IS
6801
   BEGIN
6802
      DELETE FROM run_level_schedule
6803
            WHERE scheduled_id = nscheduleid;
6804
   END;
6805
 
6806
/*-------------------------------------------------------------------------------------------------------*/
6807
   PROCEDURE set_infinite_pause
6808
   IS
6809
      nscheduledid   NUMBER;
6810
   BEGIN
6811
      -- Get Next Available Scheduled Id
6812
      SELECT seq_scheduled_id.NEXTVAL
6813
      INTO nscheduledid
6814
      FROM DUAL;
6815
 
6816
      INSERT INTO run_level_schedule
5172 dpurdie 6817
         VALUES (nscheduledid, ora_sysdatetime, NULL, NULL, 'P');
1373 dpurdie 6818
   END;
6031 dpurdie 6819
 
5172 dpurdie 6820
/*-------------------------------------------------------------------------------------------------------*/
6821
   PROCEDURE set_finite_pause (duration IN NUMBER)
6822
   IS
6823
      nscheduledid   NUMBER;
6824
      currentDate    DATE := ora_sysdatetime;
6825
   BEGIN
6031 dpurdie 6826
 
5172 dpurdie 6827
      -- Get Next Available Scheduled Id
6828
      SELECT seq_scheduled_id.NEXTVAL
6829
      INTO nscheduledid
6830
      FROM DUAL;
1373 dpurdie 6831
 
5172 dpurdie 6832
      INSERT INTO run_level_schedule
6833
         VALUES (nscheduledid, currentDate, currentDate + duration/(24*60), 0, 'F');
6031 dpurdie 6834
      COMMIT;
6835
 
5172 dpurdie 6836
      -- Ensure that we have only ONE finite pause by deleting all old ones
6837
      -- Under race conditions the last one wins
6031 dpurdie 6838
      DELETE FROM run_level_schedule
5172 dpurdie 6839
        WHERE SCHEDULED_ID < nscheduledid
6840
        AND INDEFINITE_PAUSE = 'F';
6031 dpurdie 6841
   END;
5172 dpurdie 6842
 
1373 dpurdie 6843
/*-------------------------------------------------------------------------------------------------------*/
6844
   PROCEDURE set_resume
6845
   IS
6846
   BEGIN
6847
      DELETE FROM run_level_schedule
5172 dpurdie 6848
            WHERE indefinite_pause in ('F', 'P' );
1373 dpurdie 6849
   END;
6850
 
6851
/*-------------------------------------------------------------------------------------------------------*/
6852
   PROCEDURE delete_out_of_date_schedule
6853
   IS
6854
   BEGIN
6855
      DELETE FROM run_level_schedule
6856
            WHERE scheduled_resume < ora_sysdatetime AND repeat = 0;
6857
   END;
6858
 
6859
/*-------------------------------------------------------------------------------------------------------*/
6860
   PROCEDURE set_daemon_resume (nrconid IN NUMBER)
6861
   IS
6862
   BEGIN
6863
      UPDATE run_level
6864
         SET PAUSE = NULL
6865
      WHERE rcon_id = nrconid;
6866
   END;
6867
 
6868
/*-------------------------------------------------------------------------------------------------------*/
6869
   PROCEDURE set_daemon_pause (nrconid IN NUMBER)
6870
   IS
6871
   BEGIN
6872
      UPDATE run_level
6873
         SET PAUSE = 1
6874
      WHERE rcon_id = nrconid;
6875
   END;
6876
/*-------------------------------------------------------------------------------------------------------*/
6877
   PROCEDURE set_daemon_disable (nrconid NUMBER)
6878
   IS
6879
   BEGIN
6880
      UPDATE run_level
6881
         SET PAUSE = 2
6882
      WHERE rcon_id = nrconid;
6883
   END;
6884
 
6885
/*-------------------------------------------------------------------------------------------------------*/
6886
   PROCEDURE set_daemon_states (nrtagid NUMBER, nstate NUMBER)
6887
   IS
6888
   BEGIN
6889
     UPDATE run_level
6890
     SET pause = nstate
6891
     WHERE rcon_id IN
6892
     (SELECT rc.rcon_id FROM release_config rc WHERE rc.rtag_id = nrtagid);
6893
   END;
6894
 
6895
/*-------------------------------------------------------------------------------------------------------*/
6896
   -- inserts a new daemon instruction
6897
   -- This is for use by the Release Manager Website code.
6898
   --
6899
   PROCEDURE insert_daemon_inst
6900
   ( nOp_code IN NUMBER
6901
   , nRtag_id IN NUMBER
6902
   , nPv_id IN NUMBER
6903
   , nSchedDate IN DATE
6904
   , nRepeatSecs IN NUMBER
6905
   , nAddedDate IN DATE
6906
   , nUser_id IN NUMBER
6907
   ) IS
6908
      nInstId   NUMBER;
6909
   BEGIN
6910
      -- Get Next Available Scheduled Id
6911
      SELECT seq_daemon_instruction_id.NEXTVAL
6912
      INTO nInstId
6913
      FROM DUAL;
6914
 
6915
      INSERT INTO Daemon_Instructions
6916
         VALUES (nInstId, nOp_code, nRtag_id,
6917
                  nPv_id, nSchedDate, nRepeatSecs,
6918
                  nAddedDate, nUser_id, '0');
6031 dpurdie 6919
 
6920
   -- Mark the Release as modified for build purposes
6921
   PK_RELEASE.SET_RELEASE_MODIFIED(nRtag_id);
6922
 
1373 dpurdie 6923
   EXCEPTION
6924
      WHEN DUP_VAL_ON_INDEX
6925
      THEN
6926
         raise_application_error (-20000,
6927
                                 'Table already contains a record with the specified OPERATION, RELEASE, and PACKAGE VERSION'
6928
                                 );
6929
      WHEN OTHERS
6930
      THEN
6931
         raise;
5172 dpurdie 6932
 
1373 dpurdie 6933
   END insert_daemon_inst;
6934
 
6935
/*-------------------------------------------------------------------------------------------------------*/
6936
   -- Deletes a daemon instruction matching the specified instruction ID
6937
   --
6938
   PROCEDURE del_daemon_inst
6939
   ( nInstId IN NUMBER
6940
   ) IS
6941
 
6942
   BEGIN
6943
      DELETE FROM Daemon_Instructions
6944
      WHERE DAEMON_INSTRUCTIONS_ID = nInstId;
6945
 
6946
   END del_daemon_inst;
6947
 
6948
/*-------------------------------------------------------------------------------------------------------*/
6949
   -- Deletes a daemon instruction matching the specified op-code, ratag, and pv_id
6950
   --
6951
   PROCEDURE del_daemon_inst_by_rtag_pvid(
6952
      nOp_code IN NUMBER,
6953
      nRtag_id IN NUMBER,
6954
      nPv_id IN NUMBER
6955
   ) IS
6956
   BEGIN
6957
      DELETE FROM Daemon_Instructions
6958
      WHERE OP_CODE = nOp_code
6959
      AND RTAG_ID = nRtag_id
6960
      AND PV_ID   = nPv_id;
6961
 
6962
   END del_daemon_inst_by_rtag_pvid;
6963
 
6964
/*-------------------------------------------------------------------------------------------------------*/
6965
   -- Updates a daemon instruction
6966
   -- This is for use by the Release Manager Website code.
6967
   --
6968
   PROCEDURE update_daemon_inst
6969
   ( nInstId IN NUMBER
6970
   , nOp_code IN NUMBER
6971
   , nRtag_id IN NUMBER
6972
   , nPv_id IN NUMBER
6973
   , nSchedDate IN DATE
6974
   , nRepeatSecs IN NUMBER
6975
   , nAddedDate IN DATE
6976
   , nUser_id IN NUMBER
6977
   ) IS
6978
      CURSOR daemon_inst_cur IS
6979
         SELECT *
6980
         FROM daemon_instructions di
6981
         WHERE di.DAEMON_INSTRUCTIONS_ID = nInstId;
6982
 
6983
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6984
 
6985
      exc_inst_removed EXCEPTION;
6986
   BEGIN
6987
      OPEN daemon_inst_cur;
6988
 
6989
      FETCH daemon_inst_cur
6990
      INTO daemon_inst_rec;
6991
 
6992
      IF daemon_inst_cur%FOUND THEN
6993
 
6994
         UPDATE Daemon_Instructions
6995
         SET op_code = nOp_code,
6996
            rtag_id = nRtag_id,
6997
            pv_id   = nPv_id,
6998
            scheduled_datetime = nSchedDate,
6999
            repeat_secs = nRepeatSecs,
7000
            added_datetime = nAddedDate,
7001
            user_id = nUser_id,
7002
            in_progress = '0'
7003
         WHERE daemon_instructions_id = nInstId;
7004
      ELSE
7005
         raise exc_inst_removed;
7006
      END IF;
7007
 
7008
      CLOSE daemon_inst_cur;
6031 dpurdie 7009
 
7010
      -- Mark the Release as modified for build purposes
7011
      PK_RELEASE.SET_RELEASE_MODIFIED(nRtag_id);
7012
 
1373 dpurdie 7013
   EXCEPTION
7014
      WHEN DUP_VAL_ON_INDEX
7015
      THEN
7016
         raise_application_error (-20000,
7017
                                 'Table already contains a record with the specified OPERATION, RELEASE, and PACKAGE VERSION'
7018
                                 );
7019
      WHEN exc_inst_removed
7020
      THEN
7021
         raise_application_error (-20000,
7022
                                 'Record was probably deleted by the Buildtool during your edit-form session. Please create a new Daemon Instruction.'
7023
                                 );
7024
      WHEN OTHERS
7025
      THEN
7026
         raise;
5172 dpurdie 7027
 
1373 dpurdie 7028
   END update_daemon_inst;
7029
 
7030
/*-------------------------------------------------------------------------------------------------------*/
7031
   -- Returns a comma-separated list of operation codes found for a given rtag and pv_id combination
7032
   -- This is for use by the Release Manager Website code.
7033
   --
7034
   FUNCTION daemon_ops_for_rtag_pvid(
7035
      nRtag_id IN NUMBER,
7036
      nPv_id IN NUMBER
7037
   ) RETURN VARCHAR2
7038
   IS
7039
      CURSOR daemon_inst_cur IS
7040
         SELECT di.OP_CODE
7041
         FROM daemon_instructions di
7042
         WHERE di.RTAG_ID = nRtag_id
7043
            AND di.PV_ID = nPv_id;
7044
 
7045
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
7046
 
7047
      sRetList VARCHAR2(4000) := '';
7048
 
7049
   BEGIN
7050
      OPEN daemon_inst_cur;
7051
 
7052
      FETCH daemon_inst_cur
7053
      INTO daemon_inst_rec;
7054
 
7055
      WHILE daemon_inst_cur%FOUND
7056
      LOOP
7057
         sRetList := sRetList || daemon_inst_rec.op_code || ',';
7058
 
7059
         FETCH daemon_inst_cur
7060
         INTO daemon_inst_rec;
7061
      END LOOP;
7062
 
7063
      CLOSE daemon_inst_cur;
7064
 
7065
      RETURN sRetList;
7066
   END daemon_ops_for_rtag_pvid;
7067
/*-------------------------------------------------------------------------------------------------------*/
7068
   -- Returns a comma-separated list of operation codes found for a given rtag
7069
   -- This is for use by the Release Manager Website code.
7070
   --
7071
   FUNCTION daemon_ops_for_rtag(
7072
      nRtag_id IN NUMBER
7073
   ) RETURN VARCHAR2
7074
   IS
7075
      CURSOR daemon_inst_cur IS
7076
         SELECT di.OP_CODE
7077
         FROM daemon_instructions di
7078
         WHERE di.RTAG_ID = nRtag_id;
7079
 
7080
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
7081
 
7082
      sRetList VARCHAR2(4000) := '';
7083
 
7084
   BEGIN
7085
      OPEN daemon_inst_cur;
7086
 
7087
      FETCH daemon_inst_cur
7088
      INTO daemon_inst_rec;
7089
 
7090
      WHILE daemon_inst_cur%FOUND
7091
      LOOP
7092
         sRetList := sRetList || daemon_inst_rec.op_code || ',';
7093
 
7094
         FETCH daemon_inst_cur
7095
         INTO daemon_inst_rec;
7096
      END LOOP;
7097
 
7098
      CLOSE daemon_inst_cur;
7099
 
7100
      RETURN sRetList;
7101
   END daemon_ops_for_rtag;
7102
/*-------------------------------------------------------------------------------------------------------*/
7103
   -- Gets a record from the daemon instruction table that can be carried out now and returns the fields
7104
   -- in the record a daemon will need
7105
   -- The Buildtool should use this to find a job to do for a particular release. It should then call
7106
   -- mark_daemon_inst_in_progress(inst_id) before carrying out the work, and then call
7107
   -- mark_daemon_inst_completed(inst_id) to signal its completion.
7108
   -- Can be called repeatedly to get a full list of all instructions for a release, by passing back in
7109
   -- the instruction ID obtained from the previous call (the 1st call should use 0)
7110
   -- Can be called repeatedly to get a full list of all instructions of a specific op-code value for a release,
7111
   -- by passing back in an op-code value of 0 or higher (use -1 if no op-code filtering is needed)
7112
   -- Returns 1 if a record was found, else 0.
7113
   --
7114
   FUNCTION get_daemon_inst(
7115
      nRtag_id IN NUMBER,
7116
      nInst_id IN OUT NUMBER,
7117
      nOp_code IN OUT NUMBER,
7118
      nPv_id OUT NUMBER,
7119
      nUser_id OUT NUMBER,
7120
      nInProgress OUT NUMBER
7121
   ) RETURN NUMBER
7122
   IS
7123
      CURSOR daemon_inst_cur IS
7124
         SELECT di.daemon_instructions_id, di.op_code, di.pv_id ,di.user_id, di.in_progress
7125
           FROM daemon_instructions di
7126
          WHERE di.rtag_id = nRtag_id
7127
            AND di.daemon_instructions_id > nInst_id
7128
            AND di.scheduled_datetime <= ora_sysdatetime
7129
            AND ((nOp_code = -1) OR (nOp_code = di.op_code))
7130
            AND rownum <= 1
7131
       ORDER BY di.daemon_instructions_id;
7132
 
7133
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
7134
   BEGIN
7135
      OPEN daemon_inst_cur;
7136
 
7137
      FETCH daemon_inst_cur
7138
      INTO daemon_inst_rec;
7139
 
7140
      -- If we found a record, return it.
7141
      IF daemon_inst_cur%FOUND THEN
7142
         nInst_id := daemon_inst_rec.daemon_instructions_id;
7143
         nOp_code := daemon_inst_rec.op_code;
7144
         nPv_id   := daemon_inst_rec.pv_id;
7145
         nUser_id := daemon_inst_rec.user_id;
7146
         IF daemon_inst_rec.in_progress = '1' THEN
7147
            nInProgress := 1;
7148
         ELSE
7149
            nInProgress := 0;
7150
         END IF;
7151
         CLOSE daemon_inst_cur;
7152
         RETURN 1;
7153
      END IF;
7154
 
7155
      CLOSE daemon_inst_cur;
7156
      RETURN 0;
7157
 
7158
   END get_daemon_inst;
7159
/*-------------------------------------------------------------------------------------------------------*/
7160
   -- Marks a daemon instruction as being processed by a daemon
7161
   -- The Buildtool should use this before it embarks on the work the instruction commands
7162
   --
7163
   PROCEDURE mark_daemon_inst_in_progress( nInstId IN NUMBER )
7164
   IS
7165
   BEGIN
7166
      UPDATE Daemon_Instructions
7167
      SET in_progress = '1'
7168
      WHERE daemon_instructions_id = nInstId;
7169
 
7170
   END mark_daemon_inst_in_progress;
7171
 
7172
/*-------------------------------------------------------------------------------------------------------*/
7173
   -- Once the Buildtool has finished carrying out the daemon instruction, it should call this stored
7174
   -- procedure in order to either delete the instruction or update it in the case where it is a repeating
7175
   -- instruction.
7176
   --
7177
   PROCEDURE mark_daemon_inst_completed( nInstId IN NUMBER )
7178
   IS
7179
      repSecs NUMBER;
7180
      schedDate  DATE;
7181
 
7182
      CURSOR daemon_inst_cur IS
7183
         SELECT di.REPEAT_SECS AS repSecs, di.SCHEDULED_DATETIME AS schedDate
7184
         FROM daemon_instructions di
7185
         WHERE di.daemon_instructions_id = nInstId;
7186
 
7187
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
7188
   BEGIN
7189
      OPEN daemon_inst_cur;
7190
 
7191
      FETCH daemon_inst_cur
7192
      INTO daemon_inst_rec;
7193
 
7194
      IF daemon_inst_cur%FOUND THEN
7195
 
7196
         -- if instruction repeats daily, add 1 day to the scheduled time and update the record
7197
         IF daemon_inst_rec.repSecs = 86400 THEN
7198
            UPDATE Daemon_Instructions
7199
               SET scheduled_datetime = daemon_inst_rec.schedDate + 1,
7200
                  in_progress = '0'
7201
            WHERE daemon_instructions_id = nInstId;
7202
         ELSE
7203
            -- Delete the daemon instruction, we are done with it
7204
            del_daemon_inst(nInstId);
7205
         END IF;
7206
      END IF;
7207
 
7208
      CLOSE daemon_inst_cur;
7209
 
7210
   EXCEPTION
7211
      WHEN OTHERS
7212
      THEN
7213
         raise;
7214
 
7215
   END mark_daemon_inst_completed;
7216
/*-------------------------------------------------------------------------------------------------------*/
7217
   -- This function deletes any old daemon instruction that appears stranded due to a problem that might
7218
   -- have occured during buildtool operation such as might occur if the buildtool or the machine it was
7219
   -- hosted on came down whilst it was processing a daemon instruction.
7220
   PROCEDURE cleanup_stranded_daemon_insts
7221
   IS
7222
   BEGIN
7223
      -- delete records at least two days old
7224
      DELETE FROM daemon_instructions di
7225
      WHERE  (di.scheduled_datetime + 5) <= ora_sysdatetime;
7226
 
7227
   END cleanup_stranded_daemon_insts;
7228
/*-------------------------------------------------------------------------------------------------------*/
7229
  --This function supersedes function, add_daemon. Done for DEVI-046806
7230
   PROCEDURE add_daemon_config (
7231
      nrtagid           IN   NUMBER,
7232
      nbmcon_id         IN   NUMBER,
7233
      sdaemon_mode      IN   VARCHAR2,
7234
      sgbebuildfilter   IN   VARCHAR2
7235
   )
7236
   IS
7237
      nrecordnumber   NUMBER;
7238
      nrconid         NUMBER;
7239
      sdaemonhostname VARCHAR2(50);
7240
      ngbeid         NUMBER;
7241
   BEGIN
7242
      -- Get RCON_ID
7243
      SELECT seq_rcon_id.NEXTVAL
7244
      INTO nrconid
7245
      FROM DUAL;
7246
 
7247
      SELECT COUNT (*)
7248
      INTO nrecordnumber
7249
      FROM release_config
7250
      WHERE rtag_id = nrtagid;
7251
 
7252
      SELECT machine_hostname,gbe_id INTO sdaemonhostname,ngbeid
7253
      FROM build_machine_config
7254
      WHERE bmcon_id = nbmcon_id;
7255
 
7256
      INSERT INTO release_config
7257
             (rcon_id, rtag_id, daemon_hostname, daemon_mode,
4308 dpurdie 7258
                gbe_id, gbe_buildfilter, bmcon_id)
1373 dpurdie 7259
      VALUES (nrconid, nrtagid, sdaemonhostname, sdaemon_mode,
4308 dpurdie 7260
                ngbeid, sgbebuildfilter, nbmcon_id);
1373 dpurdie 7261
 
7262
      -- A newly configured daemon should initially be paused (DEVI-047277)
7263
      INSERT INTO run_level
7264
                  (rcon_id, pause)
7265
           VALUES (nrconid, 2);
7266
 
7267
   END;
7268
 
7269
/*-------------------------------------------------------------------------------------------------------*/
7270
  --This function supersedes function, update_daemon. Done for DEVI-046806
7271
   PROCEDURE update_daemon_config (
7272
      nrconid           IN   NUMBER,
7273
      nbmcon_id         IN   NUMBER,
7274
      sdaemon_mode      IN   VARCHAR2,
7275
      sgbebuildfilter   IN   VARCHAR2
7276
   )
7277
   IS
7278
      sdaemonhostname VARCHAR2(50);
7279
      ngbeid         NUMBER;
7280
   BEGIN
7281
 
7282
      SELECT machine_hostname,gbe_id INTO sdaemonhostname,ngbeid
7283
      FROM build_machine_config
7284
      WHERE bmcon_id = nbmcon_id;
7285
 
7286
      UPDATE release_config
7287
         SET daemon_hostname = sdaemonhostname,
7288
            gbe_id = ngbeid,
7289
            daemon_mode = sdaemon_mode,
4308 dpurdie 7290
            gbe_buildfilter = sgbebuildfilter,
6031 dpurdie 7291
            bmcon_id = nbmcon_id
1373 dpurdie 7292
      WHERE rcon_id = nrconid;
7293
   END;
7294
 
7295
 
7296
/*-------------------------------------------------------------------------------------------------------*/
7297
   PROCEDURE add_build_machine (
7298
      sdisplay_name          IN   VARCHAR2,
7299
      smachine_hostname      IN   VARCHAR2,
7300
      ngbeid                 IN   NUMBER,
5172 dpurdie 7301
      sdescription           IN   VARCHAR2,
7302
      sactive                IN   CHAR
1373 dpurdie 7303
   )
7304
   IS
7305
      nrecordnumber   NUMBER;
7306
      nbmcon_id       NUMBER;
7307
   BEGIN
7308
      -- Get BMCON_ID
7309
      SELECT seq_bmcon_id.NEXTVAL INTO nbmcon_id FROM DUAL;
7310
 
5172 dpurdie 7311
      INSERT INTO build_machine_config(bmcon_id, display_name, machine_hostname,gbe_id,description,active)
7312
            VALUES (nbmcon_id,sdisplay_name,smachine_hostname,ngbeid,sdescription, NVL(sactive,'N'));
1373 dpurdie 7313
 
7314
   EXCEPTION
7315
      WHEN DUP_VAL_ON_INDEX
7316
      THEN
7317
         raise_application_error (-20000,
7318
                                 'Cannot have duplicate machines.'
7319
                                 );
7320
 
7321
   END;
7322
 
7323
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 7324
 PROCEDURE duplicate_daemon_config (
7325
      nrtagid           IN   NUMBER,
7326
      nbmcon_id         IN   NUMBER,
7327
      sdaemonhostname   IN   VARCHAR2,
7328
      ngbe_id           IN   NUMBER,
7329
      sdaemon_mode      IN   VARCHAR2,
7330
      sgbebuildfilter   IN   VARCHAR2
7331
   )
7332
   IS
7333
      nrecordnumber   NUMBER;
7334
      nrconid         NUMBER;
7335
    BEGIN
6031 dpurdie 7336
 
4308 dpurdie 7337
      -- Get RCON_ID
7338
      SELECT seq_rcon_id.NEXTVAL
7339
      INTO nrconid
7340
      FROM DUAL;
7341
 
7342
      INSERT INTO release_config
7343
             (rcon_id, rtag_id, daemon_hostname, daemon_mode,
7344
                gbe_id, gbe_buildfilter, bmcon_id)
7345
      VALUES (nrconid, nrtagid, sdaemonhostname, sdaemon_mode,
7346
                ngbe_id, sgbebuildfilter, nbmcon_id);
6031 dpurdie 7347
 
4308 dpurdie 7348
    -- A newly configured daemon should initially be disabled (DEVI-047277)
7349
      INSERT INTO run_level
7350
                  (rcon_id, pause)
7351
           VALUES (nrconid, 2);
7352
 
7353
   END;
7354
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 7355
   PROCEDURE delete_build_machine (sbmcon_id_list IN VARCHAR2)
7356
   IS
7357
   BEGIN
7358
      DELETE FROM build_machine_config
7359
            WHERE bmcon_id IN (
7360
                     SELECT * FROM THE
7361
                              (SELECT CAST
7362
                                          (in_list_number (sbmcon_id_list) AS relmgr_number_tab_t
7363
                                          )
7364
                                 FROM DUAL
7365
                              ));
7366
   END;
7367
 
7368
 
7369
/*-------------------------------------------------------------------------------------------------------*/
7370
   PROCEDURE update_build_machine (
7371
      nbmcon_id              IN   NUMBER,
7372
      sdisplay_name          IN   VARCHAR2,
7373
      smachine_hostname      IN   VARCHAR2,
7374
      ngbeid                 IN   NUMBER,
5172 dpurdie 7375
      sdescription           IN   VARCHAR2,
7376
      sactive                IN   CHAR
1373 dpurdie 7377
   )
7378
   IS
7379
   BEGIN
7380
      UPDATE build_machine_config
7381
         SET display_name = sdisplay_name,
7382
             machine_hostname = smachine_hostname,
7383
             gbe_id = ngbeid,
5172 dpurdie 7384
             description = sdescription,
7385
             active = NVL(sactive, 'N')
1373 dpurdie 7386
      WHERE bmcon_id = nbmcon_id;
7387
   EXCEPTION
7388
      WHEN DUP_VAL_ON_INDEX
7389
      THEN
7390
         raise_application_error (-20000,
7391
                                 'Cannot have duplicate machines.'
7392
                                 );
7393
   END;
6031 dpurdie 7394
 
4553 dpurdie 7395
/*-------------------------------------------------------------------------------------------------------*/
7396
PROCEDURE import_daemons ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER  ) IS
7397
 
7398
   sSourceLocation VARCHAR2(4000);
7399
   sTargetLocation VARCHAR2(4000);
7400
   ProjId NUMBER;
7401
   cReleaseMode CHAR(1);
7402
   RconId NUMBER;
7403
 
7404
   -- this cursor gets the source release daemon configurations, ensuring that the
7405
   -- first record will be the master daemon, and subsequent records will be the slaves.
7406
   CURSOR curSrcReleaseConfigs IS
7407
    SELECT daemon_hostname, gbe_id, gbe_buildfilter, bmcon_id, daemon_mode
7408
     FROM RELEASE_CONFIG rc
7409
    WHERE rc.RTAG_ID = nSourceRtagId
7410
    ORDER BY rc.daemon_mode;
7411
    recSrcReleaseConfigs curSrcReleaseConfigs%ROWTYPE;
7412
 
7413
    -- this cursor looks for target release daemons
7414
   CURSOR curTgtReleaseConfigs IS
7415
    SELECT rcon_id
7416
     FROM RELEASE_CONFIG rc
7417
    WHERE rc.RTAG_ID = nTargetRtagId;
7418
    recTgtReleaseConfigs curTgtReleaseConfigs%ROWTYPE;
7419
 
7420
    -- this cursor looks for target release daemon run level entries
7421
   CURSOR curTgtReleaseConfigRunLevel IS
7422
    SELECT current_run_level
7423
     FROM RUN_LEVEL rl
7424
    WHERE rl.RCON_ID = recTgtReleaseConfigs.rcon_id;
7425
    recTgtReleaseConfigRunLevel curTgtReleaseConfigRunLevel%ROWTYPE;
7426
 
7427
BEGIN
7428
   /*--------------- Business Rules Here -------------------*/
7429
   IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)
7430
   THEN
7431
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );
7432
   END IF;
7433
 
7434
   IF (nSourceRtagId = nTargetRtagId) THEN
7435
      RAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );
7436
   END IF;
7437
 
7438
   -- Check if Target release is in OPEN mode
7439
   SELECT rt.OFFICIAL  INTO  cReleaseMode
7440
     FROM RELEASE_TAGS rt
7441
    WHERE rt.RTAG_ID = nTargetRtagId;
7442
 
7443
   IF (cReleaseMode != 'N') THEN
7444
      RAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the contents.' );
7445
   END IF;
7446
 
7447
   -- check that the target release's daemons are all paused before we allow an import operation
7448
   OPEN curTgtReleaseConfigs;
7449
   FETCH curtgtReleaseConfigs INTO recTgtReleaseConfigs;
7450
 
7451
   WHILE curTgtReleaseConfigs%FOUND
7452
   LOOP
7453
      OPEN curTgtReleaseConfigRunLevel;
7454
      FETCH curTgtReleaseConfigRunLevel INTO recTgtReleaseConfigRunLevel;
7455
      IF curTgtReleaseConfigRunLevel%FOUND THEN
7456
         IF (recTgtReleaseConfigRunLevel.current_run_level IS NULL) OR
7457
            (recTgtReleaseConfigRunLevel.current_run_level <> 2) THEN
7458
            RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
7459
         END IF;
7460
      ELSE
7461
         -- we don't know what the daemon run level is so err on the side of caution
7462
         RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
7463
      END IF;
7464
      CLOSE curTgtReleaseConfigRunLevel;
7465
 
7466
      FETCH curTgtReleaseConfigs INTO recTgtReleaseConfigs;
7467
   END LOOP;
7468
 
7469
   CLOSE curTgtReleaseConfigs;
7470
 
7471
 
7472
   /*-------------------------------------------------------*/
7473
 
7474
   --Import Release Configuration Information
7475
   OPEN curSrcReleaseConfigs;
7476
   FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
7477
 
7478
     WHILE curSrcReleaseConfigs%FOUND
7479
   LOOP
7480
      -- add a daemon to the target release
6031 dpurdie 7481
      PK_BUILDAPI.duplicate_daemon_config( nTargetRtagId,
7482
                                     recSrcReleaseConfigs.bmcon_id,
7483
                                     recSrcReleaseConfigs.daemon_hostname,
7484
                                     recSrcReleaseConfigs.gbe_id,
4553 dpurdie 7485
                                     recSrcReleaseConfigs.daemon_mode ,
7486
                                     recSrcReleaseConfigs.gbe_buildfilter );
7487
 
7488
      FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
7489
   END LOOP;
7490
 
7491
   CLOSE curSrcReleaseConfigs;
7492
 
6031 dpurdie 7493
 
4553 dpurdie 7494
   /* Log Project Action */
7495
   -- Get Source Location
7496
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sSourceLocation
7497
     FROM RELEASE_TAGS rt,
7498
           PROJECTS pr
7499
    WHERE rt.PROJ_ID = pr.PROJ_ID
7500
      AND rt.RTAG_ID = nSourceRtagId;
7501
 
7502
   -- Get Target Location
7503
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sTargetLocation
7504
     FROM RELEASE_TAGS rt,
7505
           PROJECTS pr
7506
    WHERE rt.PROJ_ID = pr.PROJ_ID
7507
      AND rt.RTAG_ID = nTargetRtagId;
7508
 
7509
   -- Get project id
7510
   SELECT rt.PROJ_ID  INTO  ProjId
7511
     FROM RELEASE_TAGS rt
7512
    WHERE rt.RTAG_ID = nTargetRtagId;
7513
 
7514
   Log_Project_Action ( ProjId, 'import_daemon_configuration', nUserId, 'SOURCE: '|| sSourceLocation ||'   TARGET: '|| sTargetLocation, nTargetRtagId );
7515
END;
7516
 
5892 dpurdie 7517
/*-------------------------------------------------------------------------------------------------------*/
7518
PROCEDURE set_build_plan (rtagId IN NUMBER, nStartIndex IN NUMBER, pvList IN VARCHAR2)
7519
   IS
7520
    nPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
7521
    SeqNum NUMBER;
6031 dpurdie 7522
 
5892 dpurdie 7523
   BEGIN
6031 dpurdie 7524
 
5892 dpurdie 7525
   -- Remove all the old entries, on first usage
7526
   IF nStartIndex = 0 then
7527
    DELETE BUILD_PLAN WHERE RTAG_ID = rtagId;
7528
    SeqNum := 0;
7529
   ELSE
7530
    SELECT COUNT(*) into SeqNum from BUILD_PLAN WHERE RTAG_ID = rtagId;
7531
   END IF;
6031 dpurdie 7532
 
5892 dpurdie 7533
   -- Set start sequence number
7534
   nPvIdCollector := IN_LIST_NUMBER ( pvList );
7535
 
7536
   FOR i IN 1..nPvIdCollector.COUNT
7537
   LOOP
7538
      -- Update build plan with order
7539
      INSERT INTO BUILD_PLAN (RTAG_ID, BUILD_ORDER, PV_ID) VALUES (rtagId, SeqNum, nPvIdCollector(i));
7540
      SeqNum := SeqNum + 1;
7541
 
7542
   END LOOP;
7543
END;
7544
 
1373 dpurdie 7545
END pk_buildapi;
4040 dpurdie 7546
 
1374 dpurdie 7547
/
4040 dpurdie 7548
--------------------------------------------------------
7549
--  DDL for Package Body PK_ENVIRONMENT
7550
--------------------------------------------------------
7551
 
5172 dpurdie 7552
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_ENVIRONMENT" 
1373 dpurdie 7553
IS
7554
 
7555
   /*-------------------------------------------------------------------------------------------------------*/
7556
   FUNCTION select_environment_area (cdlock IN package_versions.dlocked%TYPE)
7557
     RETURN NUMBER
7558
   IS
7559
   BEGIN
7560
      /*
7561
     || N - unlocked
7562
     || Y - release and locked
7563
     || P - penging approval
7564
     || A - approved package ready for auto-build
7565
     */
7566
     IF cdlock = 'N' OR cdlock = 'R'
7567
     THEN
7568
       -- WORK IN PROGRESS --
7569
       RETURN 0;
7570
     ELSIF cdlock = 'P' OR cdlock = 'A'
7571
     THEN
7572
       -- PENDING --
7573
       RETURN 1;
7574
     ELSIF cdlock = 'Y'
7575
     THEN
7576
       -- RELEASED --
7577
       RETURN 2;
7578
     ELSE
7579
       -- NOT FOUND --
7580
       raise_application_error
7581
                   (-20000,
7582
                      'Cannot decide where to place package. [cDlock='
7583
                    || cdlock
7584
                    || ']'
7585
                   );
7586
     END IF;
7587
   END;
7588
 
7589
/*-------------------------------------------------------------------------------------------------------*/
7590
   FUNCTION get_package_area (pvid IN NUMBER, rtagid IN NUMBER)
7591
     RETURN NUMBER
7592
   IS
7593
     envtab   NUMBER         := -1;
7594
 
7595
     CURSOR curarea
7596
     IS
7597
       SELECT 2 AS envtab
7598
         FROM release_content rc
7599
        WHERE rc.rtag_id = rtagid AND rc.pv_id = pvid
7600
       UNION
7601
       SELECT 0 AS envtab
7602
         FROM work_in_progress wip
7603
        WHERE wip.rtag_id = rtagid AND wip.pv_id = pvid
7604
       UNION
7605
       SELECT 1 AS envtab
7606
         FROM planned pl
7607
        WHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;
7608
 
7609
     recarea   curarea%ROWTYPE;
7610
   BEGIN
7611
     OPEN curarea;
7612
 
7613
     FETCH curarea
7614
      INTO recarea;
7615
 
7616
     IF curarea%FOUND
7617
     THEN
7618
       envtab := recarea.envtab;
7619
     END IF;
7620
 
7621
     CLOSE curarea;
7622
 
7623
     RETURN envtab;
7624
   END;
7625
 
7626
/*-------------------------------------------------------------------------------------------------------*/
7627
   FUNCTION get_view_location (pvid IN NUMBER, rtagid IN NUMBER)
7628
     RETURN NUMBER
7629
   IS
7630
     ispatch   package_versions.dlocked%TYPE;
7631
     viewid   NUMBER                    := -1;
7632
 
7633
     CURSOR curview
7634
     IS
7635
       SELECT rc.base_view_id AS view_id
7636
         FROM release_content rc
7637
        WHERE rc.rtag_id = rtagid AND rc.pv_id = pvid
7638
       UNION
7639
       SELECT wip.view_id AS view_id
7640
         FROM work_in_progress wip
7641
        WHERE wip.rtag_id = rtagid AND wip.pv_id = pvid
7642
       UNION
7643
       SELECT pl.view_id AS view_id
7644
         FROM planned pl
7645
        WHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;
7646
 
7647
     recview   curview%ROWTYPE;
7648
   BEGIN
7649
     -- Get dlock state
7650
     SELECT pv.is_patch
7651
      INTO ispatch
7652
      FROM package_versions pv
7653
      WHERE pv.pv_id = pvid;
7654
 
7655
     -- Decide which view id should package go under.
7656
     IF (ispatch != 'Y') OR (ispatch IS NULL)
7657
     THEN
7658
       -- Get VIEW ID of Package
7659
       OPEN curview;
7660
 
7661
       FETCH curview
7662
        INTO recview;
7663
 
7664
       IF curview%FOUND
7665
       THEN
7666
         viewid := recview.view_id;
7667
       ELSE
7668
         raise_application_error
7669
            (-20000,
7670
               'Cannot find view_id to proceed. [PvId='
7671
            || pvid
7672
            || ']. The current version may not exist in the release anymore.'
7673
            );
7674
       END IF;
7675
 
7676
       CLOSE curview;
7677
     ELSE
7678
       -- Get VIEW ID of Patch (view id of parent package)
7679
       SELECT rc.base_view_id
7680
         INTO viewid
7681
         FROM release_content rc, package_patches ppv
7682
        WHERE rc.rtag_id = rtagid
7683
         AND rc.pv_id = ppv.pv_id
7684
         AND ppv.patch_id = pvid;
7685
     END IF;
7686
 
7687
     RETURN viewid;
7688
   END;
7689
 
7690
/*-------------------------------------------------------------------------------------------------------*/
5384 dpurdie 7691
--  Add a package to the specified release
7692
--  Default imode: Will determine the tab ( WIP, PENDING, RELEASE ) to add the package
7693
--  Otherwise will Add the package to the PENDING set
7694
--
1373 dpurdie 7695
   PROCEDURE add_package (
7696
     pvid    IN   NUMBER,
5384 dpurdie 7697
     viewid  IN   NUMBER,
7698
     rtagid  IN   NUMBER,
7699
     userid  IN   NUMBER,
7700
     imode   IN   CHAR default NULL
1373 dpurdie 7701
   )
7702
   IS
7703
     dlocked   package_versions.dlocked%TYPE;
7704
     envtab   NUMBER;
5384 dpurdie 7705
     pendOpr CHAR := 'R';
1373 dpurdie 7706
   BEGIN
7707
     IF can_edit_pkg_in_project (pvid, rtagid) = 1
7708
     THEN
5384 dpurdie 7709
       IF iMode IS NULL THEN
7710
         -- Determine the tab to use based on the package lock state
7711
         -- Get dlock state
7712
         SELECT pv.dlocked
7713
           INTO dlocked
7714
           FROM package_versions pv
7715
          WHERE pv.pv_id = pvid;
6031 dpurdie 7716
 
5384 dpurdie 7717
         -- Get which area should go under
7718
         envtab := select_environment_area (dlocked);
7719
       ELSE
7720
        -- Assume that the package is to be added to Pending
7721
        envtab := 1;
7722
        pendOpr := 'A';
7723
       END IF;
1373 dpurdie 7724
       -- Log
5172 dpurdie 7725
       --log_action (pvid, 'action', userid, 'Start of Package Add...');
1373 dpurdie 7726
 
5384 dpurdie 7727
       -- Add Package
1373 dpurdie 7728
       IF envtab = 0
7729
       THEN
7730
         -- WORK IN PROGRESS --
7731
         pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
7732
       ELSIF envtab = 1
7733
       THEN
7734
         -- PENDING --
5384 dpurdie 7735
         pk_planned.add_package (pvid, viewid, rtagid, userid, pendOpr);
1373 dpurdie 7736
       ELSIF envtab = 2
7737
       THEN
7738
         -- RELEASED --
7739
         -- NOTE: this package will be replaced with matching package
7740
         pk_release.add_package (pvid, viewid, rtagid, userid);
7741
         -- Now do post Release Actions
7742
         pk_release.run_post_actions (pvid, rtagid);
7743
       END IF;
7744
 
7745
       -- Log
5172 dpurdie 7746
       --log_action (pvid, 'action', userid, 'End of Package Add...');
1373 dpurdie 7747
     END IF;
7748
   END;
7749
 
7750
/*-------------------------------------------------------------------------------------------------------*/
7751
   PROCEDURE add_package_bulk (
7752
     pvidlist   IN   VARCHAR2,
7753
     viewid    IN   NUMBER,
7754
     rtagid    IN   NUMBER,
5384 dpurdie 7755
     userid    IN   NUMBER,
7756
     imode     IN   CHAR DEFAULT NULL
1373 dpurdie 7757
   )
7758
   IS
5384 dpurdie 7759
     nidcollector relmgr_number_tab_t         := relmgr_number_tab_t();
1373 dpurdie 7760
     dlocked      package_versions.dlocked%TYPE;
7761
     pvid         NUMBER;
7762
     envtab       NUMBER;
7763
   BEGIN
7764
     /*--------------- Business Rules Here -------------------*/
7765
     IF (pvidlist IS NULL)
7766
     THEN
7767
       raise_application_error (-20000,
7768
                          'Please select at least one package.'
7769
                         );
7770
     END IF;
7771
 
7772
/*-------------------------------------------------------*/
7773
     nidcollector := in_list_number (pvidlist);
7774
 
7775
     FOR i IN 1 .. nidcollector.COUNT
7776
     LOOP
7777
       pvid := nidcollector (i);
5384 dpurdie 7778
       add_package (pvid, viewid, rtagid, userid, imode);
1373 dpurdie 7779
     END LOOP;
7780
   END;
7781
 
7782
/*-------------------------------------------------------------------------------------------------------*/
7783
   PROCEDURE replace_package (
7784
     newpvid  IN   NUMBER,
7785
     oldpvid  IN   NUMBER,
7786
     rtagid   IN   NUMBER,
7787
     userid   IN   NUMBER
7788
   )
7789
   IS
7790
     dlocked      package_versions.dlocked%TYPE;
7791
     viewid       NUMBER;
7792
     envtab       NUMBER;
7793
     ROWCOUNT     NUMBER;
7794
     creleasemode CHAR (1);
7795
     npkgid       NUMBER;
7796
   BEGIN
7797
     /*--------------- Business Rules Here -------------------*/
7798
     -- Check if oldPvId exists. It could have been removed
7799
     SELECT COUNT (pv.pv_id)
7800
       INTO ROWCOUNT
7801
       FROM package_versions pv
7802
      WHERE pv.pv_id = oldpvid;
7803
 
7804
/*-------------------------------------------------------*/
7805
 
7806
     /* This procedure is usually used by "History" option in Release Manager */
7807
 
7808
     -- Get dlock state
7809
     SELECT pv.dlocked
7810
       INTO dlocked
7811
       FROM package_versions pv
7812
      WHERE pv.pv_id = newpvid;
7813
 
7814
     -- Get VIEW_ID ---
7815
     IF ROWCOUNT = 1
7816
     THEN
7817
       viewid := get_view_location (oldpvid, rtagid);
7818
     ELSE
7819
       -- Set ViewID to default
7820
       viewid := 7;
7821
     END IF;
7822
 
7823
     -- Get which area should go under
7824
     envtab := select_environment_area (dlocked);
7825
     -- Log
5172 dpurdie 7826
     --log_action (oldpvid, 'action', userid, 'Start of Package Replace...');
1373 dpurdie 7827
 
7828
     -- Replace package
7829
     IF envtab = 0
7830
     THEN
7831
       -- WORK IN PROGRESS --
7832
 
7833
       -- Delete old package
7834
       pk_work_in_progress.remove_package (oldpvid, rtagid, userid);
7835
 
7836
       -- Add new package
7837
       pk_work_in_progress.add_package (newpvid, viewid, rtagid, userid);
7838
     ELSIF envtab = 1
7839
     THEN
7840
       -- PENDING --
7841
 
7842
       -- Delete old package
7843
       pk_planned.remove_package (oldpvid, rtagid, userid);
7844
 
7845
       -- Add new package
7846
       pk_planned.add_package (newpvid, viewid, rtagid, userid);
7847
     ELSIF envtab = 2
7848
     THEN
7849
       -- RELEASED --
6031 dpurdie 7850
 
5172 dpurdie 7851
       -- Replace Package
7852
       pk_release.replace_package(newpvid, oldpvid, rtagid, userid);
6031 dpurdie 7853
 
1373 dpurdie 7854
       -- Now do post Release Actions
7855
       pk_release.run_post_actions (newpvid, rtagid);
7856
     END IF;
7857
 
7858
     -- Log
5172 dpurdie 7859
     --log_action (oldpvid, 'action', userid, 'End of Package Replace...');
1373 dpurdie 7860
   END;
7861
 
7862
/*-------------------------------------------------------------------------------------------------------*/
7863
   FUNCTION remove_package (
7864
     pvid        IN   NUMBER,
7865
     rtagid      IN   NUMBER,
7866
     userid      IN   NUMBER,
7867
     forceremove IN   CHAR
7868
   )
7869
     RETURN NUMBER
7870
   IS
7871
     envtab      NUMBER;
7872
     isused      BOOLEAN;
7873
     recordcount   NUMBER;
7874
   BEGIN
7875
/*--------------- Business Rules Here -------------------*/
7876
/*-------------------------------------------------------*/
7877
 
7878
     -- Find location of package
7879
     envtab := get_package_area (pvid, rtagid);
7880
 
7881
     -- Remove Package
7882
     IF envtab = 0
7883
     THEN
7884
       -- WORK IN PROGRESS --
7885
       -- Delete package
7886
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
7887
 
7888
       RETURN 0;
7889
     ELSIF envtab = 1
7890
     THEN
7891
       -- PENDING --
7892
       -- Delete package
7893
       pk_planned.remove_package (pvid, rtagid, userid);
7894
 
7895
       RETURN 0;
7896
     ELSIF envtab = 2
7897
     THEN
7898
       -- RELEASED --
7899
 
7900
       -- Check if is used by other packages
7901
       isused := TRUE;
7902
 
7903
       IF forceremove = 'N'
7904
       THEN
6031 dpurdie 7905
          select count(dpv.PKG_ID) INTO recordcount from
5172 dpurdie 7906
          (SELECT  rc.pv_id
7907
          FROM RELEASE_CONTENT rc, PEGGED_VERSIONS peg
7908
            WHERE rc.rtag_id = rtagid
7909
            AND peg.RTAG_ID(+) = rc.RTAG_ID
7910
            AND peg.PV_ID(+) = rc.PV_ID
7911
            AND peg.rtag_id is null
7912
            AND rc.SDKTAG_ID is null
7913
            ) arc,
7914
          PACKAGE_DEPENDENCIES dep,
7915
          PACKAGE_VERSIONS pv,
7916
          PACKAGE_VERSIONS dpv,
7917
          PACKAGE_VERSIONS bpv
7918
          where dep.PV_ID = arc.pv_id
7919
          AND dep.pv_id = pv.pv_id
7920
          AND dep.dpv_id = dpv.PV_ID
7921
          AND dpv.PKG_ID = bpv.PKG_ID
7922
          AND NVL(dpv.V_EXT, '.NULL') = NVL(bpv.V_EXT, '.NULL')
7923
          AND bpv.pv_id = pvid;
1373 dpurdie 7924
 
7925
         IF recordcount > 0
7926
         THEN
7927
            RETURN 1;               -- Return 1 as package being used
7928
         ELSE
7929
            isused := FALSE;
7930
         END IF;
7931
       END IF;
7932
 
7933
       IF forceremove = 'Y' OR NOT isused
7934
       THEN
7935
         -- Delete old package
7936
         pk_release.remove_package (pvid, rtagid, userid);
7937
 
7938
         -- Delete old package's pegging info
7939
         DELETE FROM PEGGED_VERSIONS pegv WHERE pegv.RTAG_ID = rtagid AND pegv.PV_ID = pvid;
7940
 
7941
         -- Delete old package's advisory ripple info
7942
         DELETE FROM ADVISORY_RIPPLE avr WHERE avr.RTAG_ID = rtagid AND avr.PV_ID = pvid;
7943
 
7944
         -- Now do post Release Actions
7945
         pk_release.run_post_actions (pvid, rtagid);
7946
         RETURN 0;
7947
       END IF;
7948
     END IF;
7949
   END;
7950
 
7951
/*-------------------------------------------------------------------------------------------------------*/
7952
   -- DEVI-45275 added the return of the new "operation" column in the recordset.
7953
 
7954
   PROCEDURE get_environment_items (
7955
     viewtype         IN      NUMBER,
7956
     userid           IN      NUMBER,
7957
     rtagid           IN      NUMBER,
7958
     sviewidshowlist  IN      VARCHAR2,
7959
     ntruerecordcount OUT     NUMBER,
7960
     recordset        OUT     typecur
7961
   )
7962
   IS
7963
   BEGIN
7964
     -- Get true record count because views can give false count
7965
     SELECT COUNT (pl.pv_id)
7966
      INTO ntruerecordcount
7967
      FROM environment_view pl
7968
      WHERE pl.rtag_id = rtagid;
7969
 
7970
     IF viewtype = 1
7971
     THEN
7972
       /*--- GUEST VIEW ---*/
7973
       OPEN recordset FOR
7974
         SELECT   *
7975
            FROM (
7976
                 /* Base Views collapsed */
7977
                 SELECT DISTINCT vi.view_id, vi.view_name,
7978
                             TO_NUMBER (NULL) AS pkg_state,
7979
                             TO_NUMBER (NULL) AS deprecated_state,
7980
                             TO_NUMBER (NULL) AS pv_id,
7981
                             NULL AS pkg_name, NULL AS pkg_version,
7982
                             NULL AS dlocked, NULL AS pv_description,
7983
                             rel.operation
7984
                         FROM environment_view rel, views vi
7985
                        WHERE rel.view_id = vi.view_id
7986
                          AND rtag_id = rtagid
7987
                          AND rel.view_id NOT IN (
7988
                               SELECT *
7989
                                 FROM THE
7990
                                       (SELECT CAST
7991
                                               (in_list_number
7992
                                                  (sviewidshowlist
7993
                                                  ) AS relmgr_number_tab_t
7994
                                               )
7995
                                         FROM DUAL
7996
                                       ))
7997
                 UNION
7998
                 /* Base Views expanded */
7999
                 SELECT vi.view_id, vi.view_name,
8000
                      DECODE (rel.pkg_state,
8001
                            NULL, 0,
8002
                            rel.pkg_state
8003
                           ) AS pkg_state,
8004
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8005
                      pv.pkg_version, pv.dlocked, pv.pv_description,
8006
                      rel.operation
8007
                  FROM environment_view rel,
8008
                      PACKAGES pkg,
8009
                      package_versions pv,
8010
                      views vi
8011
                  WHERE pv.pkg_id = pkg.pkg_id
8012
                   AND rel.pv_id = pv.pv_id
8013
                   AND rel.view_id = vi.view_id
8014
                   AND rel.view_id IN (
8015
                        SELECT *
8016
                          FROM THE
8017
                                (SELECT CAST
8018
                                        (in_list_number
8019
                                               (sviewidshowlist) AS relmgr_number_tab_t
8020
                                        )
8021
                                  FROM DUAL
8022
                                ))
8023
                   AND rtag_id = rtagid) ord
8024
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8025
     ELSIF viewtype = 2
8026
     THEN
8027
       /*--- PERSONAL VIEW ---*/
8028
       OPEN recordset FOR
8029
         SELECT   *
8030
            FROM (
8031
                 /* Base Views collapsed */
8032
                 SELECT DISTINCT vi.view_id, vi.view_name,
8033
                             TO_NUMBER (NULL) AS pkg_state,
8034
                             TO_NUMBER (NULL) AS deprecated_state,
8035
                             TO_NUMBER (NULL) AS pv_id,
8036
                             NULL AS pkg_name, NULL AS pkg_version,
8037
                             NULL AS dlocked, NULL AS pv_description,
8038
                             rel.operation
8039
                         FROM environment_view rel,
8040
                             view_settings vs,
8041
                             views vi
8042
                        WHERE rel.view_id = vi.view_id
8043
                          AND vs.view_id = rel.view_id
8044
                          AND vs.user_id = userid
8045
                          AND rtag_id = rtagid
8046
                          AND rel.view_id NOT IN (
8047
                               SELECT *
8048
                                 FROM THE
8049
                                       (SELECT CAST
8050
                                               (in_list_number
8051
                                                  (sviewidshowlist
8052
                                                  ) AS relmgr_number_tab_t
8053
                                               )
8054
                                         FROM DUAL
8055
                                       ))
8056
                 UNION
8057
                 /* Base Views expanded */
8058
                 SELECT vi.view_id, vi.view_name,
8059
                      DECODE (rel.pkg_state,
8060
                            NULL, 0,
8061
                            rel.pkg_state
8062
                           ) AS pkg_state,
8063
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8064
                      pv.pkg_version, pv.dlocked, pv.pv_description,
8065
                      rel.operation
8066
                  FROM environment_view rel,
8067
                      PACKAGES pkg,
8068
                      package_versions pv,
8069
                      views vi,
8070
                      view_settings vs
8071
                  WHERE pv.pkg_id = pkg.pkg_id
8072
                   AND rel.pv_id = pv.pv_id
8073
                   AND rel.view_id = vi.view_id
8074
                   AND vs.view_id = vi.view_id
8075
                   AND vs.user_id = userid
8076
                   AND rel.view_id IN (
8077
                        SELECT *
8078
                          FROM THE
8079
                                (SELECT CAST
8080
                                        (in_list_number
8081
                                               (sviewidshowlist) AS relmgr_number_tab_t
8082
                                        )
8083
                                  FROM DUAL
8084
                                ))
8085
                   AND rtag_id = rtagid
8086
                 UNION
8087
                 /* Private Views collapsed */
8088
                 SELECT vi.view_id, vi.view_name,
8089
                      TO_NUMBER (NULL) AS pkg_state,
8090
                      TO_NUMBER (NULL) AS deprecated_state,
8091
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
8092
                      NULL AS pkg_version, NULL AS dlocked,
8093
                      NULL AS pv_description,
8094
                      rel.operation
8095
                  FROM view_settings vs,
8096
                      view_def vd,
8097
                      views vi,
8098
                      environment_view rel,
8099
                      package_versions pv
8100
                  WHERE vs.view_id = vi.view_id
8101
                   AND rel.pv_id = pv.pv_id
8102
                   AND vd.pkg_id = pv.pkg_id
8103
                   AND vd.view_id = vi.view_id
8104
                   AND vi.base_view = 'N'
8105
                   AND rel.rtag_id = rtagid
8106
                   AND vs.user_id = userid
8107
                   AND vi.view_id NOT IN (
8108
                        SELECT *
8109
                          FROM THE
8110
                                (SELECT CAST
8111
                                        (in_list_number
8112
                                               (sviewidshowlist) AS relmgr_number_tab_t
8113
                                        )
8114
                                  FROM DUAL
8115
                                ))
8116
                 UNION
8117
                 /* Private Views expanded */
8118
                 SELECT vi.view_id, vi.view_name,
8119
                      DECODE (rel.pkg_state,
8120
                            NULL, 0,
8121
                            rel.pkg_state
8122
                           ) AS pkg_state,
8123
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8124
                      pv.pkg_version, pv.dlocked, pv.pv_description,
8125
                      rel.operation
8126
                  FROM users usr,
8127
                      view_settings vs,
8128
                      view_def vd,
8129
                      views vi,
8130
                      environment_view rel,
8131
                      PACKAGES pkg,
8132
                      package_versions pv
8133
                  WHERE vs.user_id = usr.user_id
8134
                   AND vs.view_id = vi.view_id
8135
                   AND vd.view_id = vi.view_id
8136
                   AND pv.pkg_id = pkg.pkg_id
8137
                   AND rel.pv_id = pv.pv_id
8138
                   AND rel.rtag_id = rtagid
8139
                   AND vd.pkg_id = pkg.pkg_id
8140
                   AND vi.base_view = 'N'
8141
                   AND vi.view_id IN (
8142
                        SELECT *
8143
                          FROM THE
8144
                                (SELECT CAST
8145
                                        (in_list_number
8146
                                               (sviewidshowlist) AS relmgr_number_tab_t
8147
                                        )
8148
                                  FROM DUAL
8149
                                ))
8150
                   AND usr.user_id = userid) ord
8151
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8152
     END IF;
8153
   END;
8154
 
8155
/*-------------------------------------------------------------------------------------------------------*/
8156
   PROCEDURE get_released_items (
8157
     viewtype         IN      NUMBER,
8158
     userid           IN      NUMBER,
8159
     rtagid           IN      NUMBER,
8160
     sviewidshowlist  IN      VARCHAR2,
8161
     ntruerecordcount OUT     NUMBER,
8162
     recordset        OUT     typecur
8163
   )
8164
   IS
8165
   BEGIN
8166
     -- Get true record count because views can give false count
8167
     SELECT COUNT (rc.pv_id)
8168
      INTO ntruerecordcount
8169
      FROM release_content rc
8170
      WHERE rc.rtag_id = rtagid;
8171
 
8172
     IF viewtype = 1
8173
     THEN
8174
       /*--- GUEST VIEW ---*/
8175
       OPEN recordset FOR
8176
         SELECT   *
8177
            FROM (
8178
                 /* Base Views collapsed */
8179
                 SELECT DISTINCT vi.view_id, vi.view_name,
8180
                             TO_NUMBER (NULL) AS pkg_state,
8181
                             TO_NUMBER (NULL) AS deprecated_state,
8182
                             TO_NUMBER (NULL) AS pv_id,
8183
                             NULL AS pkg_name, NULL AS pkg_version,
8184
                             NULL AS dlocked, NULL AS pv_description
8185
                         FROM release_content rel, views vi
8186
                        WHERE rel.base_view_id = vi.view_id
8187
                          AND rtag_id = rtagid
8188
                          AND rel.base_view_id NOT IN (
8189
                               SELECT *
8190
                                 FROM THE
8191
                                       (SELECT CAST
8192
                                               (in_list_number
8193
                                                  (sviewidshowlist
8194
                                                  ) AS relmgr_number_tab_t
8195
                                               )
8196
                                         FROM DUAL
8197
                                       ))
8198
                 UNION
8199
                 /* Base Views expanded */
8200
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
8201
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8202
                      pv.pkg_version, pv.dlocked, pv.pv_description
8203
                  FROM release_content rel,
8204
                      PACKAGES pkg,
8205
                      package_versions pv,
8206
                      views vi
8207
                  WHERE pv.pkg_id = pkg.pkg_id
8208
                   AND rel.pv_id = pv.pv_id
8209
                   AND rel.base_view_id = vi.view_id
8210
                   AND rel.base_view_id IN (
8211
                        SELECT *
8212
                          FROM THE
8213
                                (SELECT CAST
8214
                                        (in_list_number
8215
                                               (sviewidshowlist) AS relmgr_number_tab_t
8216
                                        )
8217
                                  FROM DUAL
8218
                                ))
8219
                   AND rtag_id = rtagid) ord
8220
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8221
     ELSIF viewtype = 2
8222
     THEN
8223
       /*--- PERSONAL VIEW ---*/
8224
       OPEN recordset FOR
8225
         SELECT   *
8226
            FROM (
8227
                 /* Base Views collapsed */
8228
                 SELECT DISTINCT vi.view_id, vi.view_name,
8229
                             TO_NUMBER (NULL) AS pkg_state,
8230
                             TO_NUMBER (NULL) AS deprecated_state,
8231
                             TO_NUMBER (NULL) AS pv_id,
8232
                             NULL AS pkg_name, NULL AS pkg_version,
8233
                             NULL AS dlocked, NULL AS pv_description
8234
                         FROM release_content rel,
8235
                             view_settings vs,
8236
                             views vi
8237
                        WHERE rel.base_view_id = vi.view_id
8238
                          AND vs.view_id = rel.base_view_id
8239
                          AND vs.user_id = userid
8240
                          AND rtag_id = rtagid
8241
                          AND rel.base_view_id NOT IN (
8242
                               SELECT *
8243
                                 FROM THE
8244
                                       (SELECT CAST
8245
                                               (in_list_number
8246
                                                  (sviewidshowlist
8247
                                                  ) AS relmgr_number_tab_t
8248
                                               )
8249
                                         FROM DUAL
8250
                                       ))
8251
                 UNION
8252
                 /* Base Views expanded */
8253
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
8254
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8255
                      pv.pkg_version, pv.dlocked, pv.pv_description
8256
                  FROM release_content rel,
8257
                      PACKAGES pkg,
8258
                      package_versions pv,
8259
                      views vi,
8260
                      view_settings vs
8261
                  WHERE pv.pkg_id = pkg.pkg_id
8262
                   AND rel.pv_id = pv.pv_id
8263
                   AND rel.base_view_id = vi.view_id
8264
                   AND vs.view_id = vi.view_id
8265
                   AND vs.user_id = userid
8266
                   AND rel.base_view_id IN (
8267
                        SELECT *
8268
                          FROM THE
8269
                                (SELECT CAST
8270
                                        (in_list_number
8271
                                               (sviewidshowlist) AS relmgr_number_tab_t
8272
                                        )
8273
                                  FROM DUAL
8274
                                ))
8275
                   AND rtag_id = rtagid
8276
                 UNION
8277
                 /* Private Views collapsed */
8278
                 SELECT vi.view_id, vi.view_name,
8279
                      TO_NUMBER (NULL) AS pkg_state,
8280
                      TO_NUMBER (NULL) AS deprecated_state,
8281
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
8282
                      NULL AS pkg_version, NULL AS dlocked,
8283
                      NULL AS pv_description
8284
                  FROM view_settings vs,
8285
                      view_def vd,
8286
                      views vi,
8287
                      release_content rel,
8288
                      package_versions pv
8289
                  WHERE vs.view_id = vi.view_id
8290
                   AND rel.pv_id = pv.pv_id
8291
                   AND vd.pkg_id = pv.pkg_id
8292
                   AND vd.view_id = vi.view_id
8293
                   AND vi.base_view = 'N'
8294
                   AND rel.rtag_id = rtagid
8295
                   AND vs.user_id = userid
8296
                   AND vi.view_id NOT IN (
8297
                        SELECT *
8298
                          FROM THE
8299
                                (SELECT CAST
8300
                                        (in_list_number
8301
                                               (sviewidshowlist) AS relmgr_number_tab_t
8302
                                        )
8303
                                  FROM DUAL
8304
                                ))
8305
                 UNION
8306
                 /* Private Views expanded */
8307
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
8308
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8309
                      pv.pkg_version, pv.dlocked, pv.pv_description
8310
                  FROM users usr,
8311
                      view_settings vs,
8312
                      view_def vd,
8313
                      views vi,
8314
                      release_content rel,
8315
                      PACKAGES pkg,
8316
                      package_versions pv
8317
                  WHERE vs.user_id = usr.user_id
8318
                   AND vs.view_id = vi.view_id
8319
                   AND vd.view_id = vi.view_id
8320
                   AND pv.pkg_id = pkg.pkg_id
8321
                   AND rel.pv_id = pv.pv_id
8322
                   AND rel.rtag_id = rtagid
8323
                   AND vd.pkg_id = pkg.pkg_id
8324
                   AND vi.base_view = 'N'
8325
                   AND vi.view_id IN (
8326
                        SELECT *
8327
                          FROM THE
8328
                                (SELECT CAST
8329
                                        (in_list_number
8330
                                               (sviewidshowlist) AS relmgr_number_tab_t
8331
                                        )
8332
                                  FROM DUAL
8333
                                ))
8334
                   AND usr.user_id = userid) ord
8335
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8336
     END IF;
8337
   END;
8338
 
8339
/*-------------------------------------------------------------------------------------------------------*/
8340
   PROCEDURE get_work_in_progress_items (
8341
     viewtype         IN      NUMBER,
8342
     userid           IN      NUMBER,
8343
     rtagid           IN      NUMBER,
8344
     sviewidshowlist  IN      VARCHAR2,
8345
     ntruerecordcount OUT     NUMBER,
8346
     recordset        OUT     typecur
8347
   )
8348
   IS
8349
   BEGIN
8350
     -- Get true record count because views can give false count
8351
     SELECT COUNT (wip.pv_id)
8352
      INTO ntruerecordcount
8353
      FROM work_in_progress wip
8354
      WHERE wip.rtag_id = rtagid;
8355
 
8356
     IF viewtype = 1
8357
     THEN
8358
       /*--- GUEST VIEW ---*/
8359
       OPEN recordset FOR
8360
         SELECT   *
8361
            FROM (
8362
                 /* Base Views collapsed */
8363
                 SELECT DISTINCT vi.view_id, vi.view_name,
8364
                             TO_NUMBER (NULL) AS pkg_state,
8365
                             TO_NUMBER (NULL) AS deprecated_state,
8366
                             TO_NUMBER (NULL) AS pv_id,
8367
                             NULL AS pkg_name, NULL AS pkg_version,
8368
                             NULL AS dlocked, NULL AS pv_description
8369
                         FROM work_in_progress rel, views vi
8370
                        WHERE rel.view_id = vi.view_id
8371
                          AND rtag_id = rtagid
8372
                          AND rel.view_id NOT IN (
8373
                               SELECT *
8374
                                 FROM THE
8375
                                       (SELECT CAST
8376
                                               (in_list_number
8377
                                                  (sviewidshowlist
8378
                                                  ) AS relmgr_number_tab_t
8379
                                               )
8380
                                         FROM DUAL
8381
                                       ))
8382
                 UNION
8383
                 /* Base Views expanded */
8384
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8385
 
8386
                      --rel.pkg_state,
8387
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8388
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8389
                      pv.pv_description
8390
                  FROM work_in_progress rel,
8391
                      PACKAGES pkg,
8392
                      package_versions pv,
8393
                      views vi
8394
                  WHERE pv.pkg_id = pkg.pkg_id
8395
                   AND rel.pv_id = pv.pv_id
8396
                   AND rel.view_id = vi.view_id
8397
                   AND rel.view_id IN (
8398
                        SELECT *
8399
                          FROM THE
8400
                                (SELECT CAST
8401
                                        (in_list_number
8402
                                               (sviewidshowlist) AS relmgr_number_tab_t
8403
                                        )
8404
                                  FROM DUAL
8405
                                ))
8406
                   AND rtag_id = rtagid) ord
8407
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8408
     ELSIF viewtype = 2
8409
     THEN
8410
       /*--- PERSONAL VIEW ---*/
8411
       OPEN recordset FOR
8412
         SELECT   *
8413
            FROM (
8414
                 /* Base Views collapsed */
8415
                 SELECT DISTINCT vi.view_id, vi.view_name,
8416
                             TO_NUMBER (NULL) AS pkg_state,
8417
                             TO_NUMBER (NULL) AS deprecated_state,
8418
                             TO_NUMBER (NULL) AS pv_id,
8419
                             NULL AS pkg_name, NULL AS pkg_version,
8420
                             NULL AS dlocked, NULL AS pv_description
8421
                         FROM work_in_progress rel,
8422
                             view_settings vs,
8423
                             views vi
8424
                        WHERE rel.view_id = vi.view_id
8425
                          AND vs.view_id = rel.view_id
8426
                          AND vs.user_id = userid
8427
                          AND rtag_id = rtagid
8428
                          AND rel.view_id NOT IN (
8429
                               SELECT *
8430
                                 FROM THE
8431
                                       (SELECT CAST
8432
                                               (in_list_number
8433
                                                  (sviewidshowlist
8434
                                                  ) AS relmgr_number_tab_t
8435
                                               )
8436
                                         FROM DUAL
8437
                                       ))
8438
                 UNION
8439
                 /* Base Views expanded */
8440
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8441
 
8442
                      --rel.pkg_state,
8443
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8444
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8445
                      pv.pv_description
8446
                  FROM work_in_progress rel,
8447
                      PACKAGES pkg,
8448
                      package_versions pv,
8449
                      views vi,
8450
                      view_settings vs
8451
                  WHERE pv.pkg_id = pkg.pkg_id
8452
                   AND rel.pv_id = pv.pv_id
8453
                   AND rel.view_id = vi.view_id
8454
                   AND vs.view_id = vi.view_id
8455
                   AND vs.user_id = userid
8456
                   AND rel.view_id IN (
8457
                        SELECT *
8458
                          FROM THE
8459
                                (SELECT CAST
8460
                                        (in_list_number
8461
                                               (sviewidshowlist) AS relmgr_number_tab_t
8462
                                        )
8463
                                  FROM DUAL
8464
                                ))
8465
                   AND rtag_id = rtagid
8466
                 UNION
8467
                 /* Private Views collapsed */
8468
                 SELECT vi.view_id, vi.view_name,
8469
                      TO_NUMBER (NULL) AS pkg_state,
8470
                      TO_NUMBER (NULL) AS deprecated_state,
8471
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
8472
                      NULL AS pkg_version, NULL AS dlocked,
8473
                      NULL AS pv_description
8474
                  FROM view_settings vs,
8475
                      view_def vd,
8476
                      views vi,
8477
                      work_in_progress rel,
8478
                      package_versions pv
8479
                  WHERE vs.view_id = vi.view_id
8480
                   AND rel.pv_id = pv.pv_id
8481
                   AND vd.pkg_id = pv.pkg_id
8482
                   AND vd.view_id = vi.view_id
8483
                   AND vi.base_view = 'N'
8484
                   AND rel.rtag_id = rtagid
8485
                   AND vs.user_id = userid
8486
                   AND vi.view_id NOT IN (
8487
                        SELECT *
8488
                          FROM THE
8489
                                (SELECT CAST
8490
                                        (in_list_number
8491
                                               (sviewidshowlist) AS relmgr_number_tab_t
8492
                                        )
8493
                                  FROM DUAL
8494
                                ))
8495
                 UNION
8496
                 /* Private Views expanded */
8497
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8498
 
8499
                      --rel.pkg_state,
8500
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8501
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8502
                      pv.pv_description
8503
                  FROM users usr,
8504
                      view_settings vs,
8505
                      view_def vd,
8506
                      views vi,
8507
                      work_in_progress rel,
8508
                      PACKAGES pkg,
8509
                      package_versions pv
8510
                  WHERE vs.user_id = usr.user_id
8511
                   AND vs.view_id = vi.view_id
8512
                   AND vd.view_id = vi.view_id
8513
                   AND pv.pkg_id = pkg.pkg_id
8514
                   AND rel.pv_id = pv.pv_id
8515
                   AND rel.rtag_id = rtagid
8516
                   AND vd.pkg_id = pkg.pkg_id
8517
                   AND vi.base_view = 'N'
8518
                   AND vi.view_id IN (
8519
                        SELECT *
8520
                          FROM THE
8521
                                (SELECT CAST
8522
                                        (in_list_number
8523
                                               (sviewidshowlist) AS relmgr_number_tab_t
8524
                                        )
8525
                                  FROM DUAL
8526
                                ))
8527
                   AND usr.user_id = userid) ord
8528
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8529
     END IF;
8530
   END;
8531
 
8532
/*-------------------------------------------------------------------------------------------------------*/
8533
   -- DEVI-45275 added the return of the new "operation" column in the recordset.
8534
 
8535
   PROCEDURE get_pending_items (
8536
     viewtype         IN      NUMBER,
8537
     userid           IN      NUMBER,
8538
     rtagid           IN      NUMBER,
8539
     sviewidshowlist  IN      VARCHAR2,
8540
     ntruerecordcount OUT     NUMBER,
8541
     recordset        OUT     typecur
8542
   )
8543
   IS
8544
   BEGIN
8545
     -- Get true record count because views can give false count
8546
     SELECT COUNT (pl.pv_id)
8547
      INTO ntruerecordcount
8548
      FROM planned pl
8549
      WHERE pl.rtag_id = rtagid;
8550
 
8551
     IF viewtype = 1
8552
     THEN
8553
       /*--- GUEST VIEW ---*/
8554
       OPEN recordset FOR
8555
         SELECT   *
8556
            FROM (
8557
                 /* Base Views collapsed */
8558
                 SELECT DISTINCT vi.view_id, vi.view_name,
8559
                             TO_NUMBER (NULL) AS pkg_state,
8560
                             TO_NUMBER (NULL) AS deprecated_state,
8561
                             TO_NUMBER (NULL) AS pv_id,
8562
                             NULL AS pkg_name, NULL AS pkg_version,
8563
                             NULL AS dlocked, NULL AS pv_description,
8564
                             rel.operation
8565
                         FROM planned rel, views vi
8566
                        WHERE rel.view_id = vi.view_id
8567
                          AND rtag_id = rtagid
8568
                          AND rel.view_id NOT IN (
8569
                               SELECT *
8570
                                 FROM THE
8571
                                       (SELECT CAST
8572
                                               (in_list_number
8573
                                                  (sviewidshowlist
8574
                                                  ) AS relmgr_number_tab_t
8575
                                               )
8576
                                         FROM DUAL
8577
                                       ))
8578
                 UNION
8579
                 /* Base Views expanded */
8580
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8581
 
8582
                      --rel.pkg_state,
8583
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8584
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8585
                      pv.pv_description,
8586
                      rel.operation
8587
                  FROM planned rel,
8588
                      PACKAGES pkg,
8589
                      package_versions pv,
8590
                      views vi
8591
                  WHERE pv.pkg_id = pkg.pkg_id
8592
                   AND rel.pv_id = pv.pv_id
8593
                   AND rel.view_id = vi.view_id
8594
                   AND rel.view_id IN (
8595
                        SELECT *
8596
                          FROM THE
8597
                                (SELECT CAST
8598
                                        (in_list_number
8599
                                               (sviewidshowlist) AS relmgr_number_tab_t
8600
                                        )
8601
                                  FROM DUAL
8602
                                ))
8603
                   AND rtag_id = rtagid) ord
8604
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8605
     ELSIF viewtype = 2
8606
     THEN
8607
       /*--- PERSONAL VIEW ---*/
8608
       OPEN recordset FOR
8609
         SELECT   *
8610
            FROM (
8611
                 /* Base Views collapsed */
8612
                 SELECT DISTINCT vi.view_id, vi.view_name,
8613
                             TO_NUMBER (NULL) AS pkg_state,
8614
                             TO_NUMBER (NULL) AS deprecated_state,
8615
                             TO_NUMBER (NULL) AS pv_id,
8616
                             NULL AS pkg_name, NULL AS pkg_version,
8617
                             NULL AS dlocked, NULL AS pv_description,
8618
                             rel.operation
8619
                         FROM planned rel, view_settings vs, views vi
8620
                        WHERE rel.view_id = vi.view_id
8621
                          AND vs.view_id = rel.view_id
8622
                          AND vs.user_id = userid
8623
                          AND rtag_id = rtagid
8624
                          AND rel.view_id NOT IN (
8625
                               SELECT *
8626
                                 FROM THE
8627
                                       (SELECT CAST
8628
                                               (in_list_number
8629
                                                  (sviewidshowlist
8630
                                                  ) AS relmgr_number_tab_t
8631
                                               )
8632
                                         FROM DUAL
8633
                                       ))
8634
                 UNION
8635
                 /* Base Views expanded */
8636
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8637
 
8638
                      --rel.pkg_state,
8639
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8640
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8641
                      pv.pv_description,
8642
                      rel.operation
8643
                  FROM planned rel,
8644
                      PACKAGES pkg,
8645
                      package_versions pv,
8646
                      views vi,
8647
                      view_settings vs
8648
                  WHERE pv.pkg_id = pkg.pkg_id
8649
                   AND rel.pv_id = pv.pv_id
8650
                   AND rel.view_id = vi.view_id
8651
                   AND vs.view_id = vi.view_id
8652
                   AND vs.user_id = userid
8653
                   AND rel.view_id IN (
8654
                        SELECT *
8655
                          FROM THE
8656
                                (SELECT CAST
8657
                                        (in_list_number
8658
                                               (sviewidshowlist) AS relmgr_number_tab_t
8659
                                        )
8660
                                  FROM DUAL
8661
                                ))
8662
                   AND rtag_id = rtagid
8663
                 UNION
8664
                 /* Private Views collapsed */
8665
                 SELECT vi.view_id, vi.view_name,
8666
                      TO_NUMBER (NULL) AS pkg_state,
8667
                      TO_NUMBER (NULL) AS deprecated_state,
8668
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
8669
                      NULL AS pkg_version, NULL AS dlocked,
8670
                      NULL AS pv_description,
8671
                      rel.operation
8672
                  FROM view_settings vs,
8673
                      view_def vd,
8674
                      views vi,
8675
                      planned rel,
8676
                      package_versions pv
8677
                  WHERE vs.view_id = vi.view_id
8678
                   AND rel.pv_id = pv.pv_id
8679
                   AND vd.pkg_id = pv.pkg_id
8680
                   AND vd.view_id = vi.view_id
8681
                   AND vi.base_view = 'N'
8682
                   AND rel.rtag_id = rtagid
8683
                   AND vs.user_id = userid
8684
                   AND vi.view_id NOT IN (
8685
                        SELECT *
8686
                          FROM THE
8687
                                (SELECT CAST
8688
                                        (in_list_number
8689
                                               (sviewidshowlist) AS relmgr_number_tab_t
8690
                                        )
8691
                                  FROM DUAL
8692
                                ))
8693
                 UNION
8694
                 /* Private Views expanded */
8695
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8696
 
8697
                      --rel.pkg_state,
8698
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8699
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8700
                      pv.pv_description,
8701
                      rel.operation
8702
                  FROM users usr,
8703
                      view_settings vs,
8704
                      view_def vd,
8705
                      views vi,
8706
                      planned rel,
8707
                      PACKAGES pkg,
8708
                      package_versions pv
8709
                  WHERE vs.user_id = usr.user_id
8710
                   AND vs.view_id = vi.view_id
8711
                   AND vd.view_id = vi.view_id
8712
                   AND pv.pkg_id = pkg.pkg_id
8713
                   AND rel.pv_id = pv.pv_id
8714
                   AND rel.rtag_id = rtagid
8715
                   AND vd.pkg_id = pkg.pkg_id
8716
                   AND vi.base_view = 'N'
8717
                   AND vi.view_id IN (
8718
                        SELECT *
8719
                          FROM THE
8720
                                (SELECT CAST
8721
                                        (in_list_number
8722
                                               (sviewidshowlist) AS relmgr_number_tab_t
8723
                                        )
8724
                                  FROM DUAL
8725
                                ))
8726
                   AND usr.user_id = userid) ord
8727
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8728
     END IF;
8729
   END;
8730
 
8731
/*-------------------------------------------------------------------------------------------------------*/
8732
   PROCEDURE get_view_content (
8733
     rtagid     IN      NUMBER,
8734
     viewid     IN      NUMBER,
8735
     recordset OUT     typecur
8736
   )
8737
   IS
8738
     isbaseview   CHAR (1);
8739
   BEGIN
8740
     -- Check if the view is BASE VIEW
8741
     SELECT vi.base_view
8742
      INTO isbaseview
8743
      FROM views vi
8744
      WHERE vi.view_id = viewid;
8745
 
5172 dpurdie 8746
     IF (IsBaseView IN ('Y', 'S'))
1373 dpurdie 8747
     THEN
8748
       -- Get Base view content
8749
       OPEN recordset FOR
8750
         SELECT   DECODE (rel.pkg_state,
8751
                      NULL, 0,
8752
                      rel.pkg_state
8753
                     ) AS pkg_state,
8754
                rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8755
                pv.pkg_version, pv.dlocked, pv.pv_description,
8756
                pv.build_type,
8757
                rel.operation
8758
            FROM environment_view rel, PACKAGES pkg, package_versions pv
8759
            WHERE pv.pkg_id = pkg.pkg_id
8760
             AND rel.pv_id = pv.pv_id
8761
             AND rel.view_id = viewid
8762
             AND rel.rtag_id = rtagid
8763
         ORDER BY UPPER (pkg.pkg_name);
8764
     ELSE
8765
       -- Get non base view content
8766
       OPEN recordset FOR
8767
         SELECT   DECODE (rel.pkg_state,
8768
                      NULL, 0,
8769
                      rel.pkg_state
8770
                     ) AS pkg_state,
8771
                rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8772
                pv.pkg_version, pv.dlocked, pv.pv_description,
8773
                pv.build_type,
8774
                rel.operation
8775
            FROM environment_view rel,
8776
                PACKAGES pkg,
8777
                package_versions pv,
8778
                view_def vd
8779
            WHERE pv.pkg_id = pkg.pkg_id
8780
             AND rel.pv_id = pv.pv_id
8781
             AND rel.rtag_id = rtagid
8782
             AND vd.view_id = viewid
8783
             AND vd.pkg_id = pv.pkg_id
8784
         ORDER BY UPPER (pkg.pkg_name);
8785
     END IF;
8786
   END;
8787
 
8788
/*-------------------------------------------------------------------------------------------------------*/
8789
   FUNCTION get_package_view (pvid IN NUMBER, rtagid IN NUMBER)
8790
     RETURN NUMBER
8791
   IS
8792
     envtab           NUMBER;
8793
     returnvalue      NUMBER;
8794
     return_not_found NUMBER := -1;
8795
   BEGIN
8796
     envtab := get_package_area (pvid, rtagid);
8797
 
8798
     IF envtab = 0
8799
     THEN
8800
       -- WORK IN PROGRESS --
8801
       returnvalue := pk_work_in_progress.get_package_view (pvid, rtagid);
8802
     ELSIF envtab = 1
8803
     THEN
8804
       -- PENDING --
8805
       returnvalue := pk_planned.get_package_view (pvid, rtagid);
8806
     ELSIF envtab = 2
8807
     THEN
8808
       -- RELEASED --
8809
       returnvalue := pk_release.get_package_view (pvid, rtagid);
8810
     ELSE
8811
       -- This may be a Patch not located anywhere but unlocked
8812
       returnvalue := return_not_found;
8813
     END IF;
8814
 
8815
     RETURN returnvalue;
8816
   END;
8817
 
8818
/*-------------------------------------------------------------------------------------------------------*/
5172 dpurdie 8819
  PROCEDURE make_release (
4585 dpurdie 8820
     pvid          IN   NUMBER,                         -- NEW  PKG pvid
8821
     rtagid        IN   NUMBER,                         -- Release Id
8822
     userid        IN   NUMBER                          -- User performing Release
8823
   )
1373 dpurdie 8824
   IS
8825
     viewid        NUMBER;
8826
     envtab        NUMBER;
8827
     ispatch       CHAR (1) := NULL;
8828
     buildtype     CHAR (1) := NULL;
8829
   BEGIN
8830
     -- Check if package is patch
8831
     SELECT pv.is_patch, pv.build_type
8832
      INTO ispatch, buildtype
8833
      FROM package_versions pv
8834
      WHERE pv.pv_id = pvid;
8835
 
8836
     -- Get ViewId
8837
     viewid := get_package_view (pvid, rtagid);
8838
     -- Remove from current area
8839
     envtab := pk_environment.get_package_area (pvid, rtagid);
8840
 
8841
     -- Make sure that package was in work-in-progress or pending before makeing it release
8842
     -- Exclude patches, ripple builds
8843
     IF (envtab < 0)
8844
     THEN
8845
       -- Not found in work-in-progress or pending
8846
       IF (ispatch IS NULL) AND (buildtype = 'M')
8847
       THEN
8848
         raise_application_error (-20000,
8849
                            'This package cannot be released here.'
8850
                           );
8851
       END IF;
8852
     END IF;
8853
 
8854
     -- Log
5172 dpurdie 8855
     --log_action (pvid, 'action', userid, 'Start of Make Package Release...');
1373 dpurdie 8856
 
8857
     IF envtab = 0
8858
     THEN
8859
       -- WORK IN PROGRESS --
8860
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
8861
     ELSIF envtab = 1
8862
     THEN
8863
       -- PENDING --
8864
       pk_planned.remove_package (pvid, rtagid, userid);
8865
     END IF;
8866
 
8867
     -- Change package state
4585 dpurdie 8868
     -- Set dlocked state to mark the package a 'Released and Locked'
1373 dpurdie 8869
     pk_package.change_state (pvid, 'Y', userid);
8870
 
8871
     -- Make sure it is valid BASE VIEW
8872
     IF viewid < 1
8873
     THEN
8874
       viewid := 7;                     -- This is default base view
8875
     END IF;
8876
 
8877
     IF (ispatch IS NULL)
8878
     THEN
4585 dpurdie 8879
       -- Add (Replace) package to new area
1373 dpurdie 8880
       pk_release.add_package (pvid, viewid, rtagid, userid);
8881
     END IF;
8882
 
8883
     -- Now do post Release Actions
8884
     pk_release.run_post_actions (pvid, rtagid);
8885
 
8886
     -- The release has changed and there may now be invalid rtag_id/pv_id combinations in
8887
     -- the DO_NOT_RIPPLE and ADVISORY_RIPPLE Tables so perform a clean-up operation upon them.
8888
     clean_do_not_ripple(rtagid);
8889
     clean_advisory_ripple(rtagid);
8890
 
8891
     -- Log
5172 dpurdie 8892
     --log_action (pvid, 'action', userid, 'End of Make Package Release...');
1373 dpurdie 8893
   END;
8894
 
8895
/*-------------------------------------------------------------------------------------------------------*/
4585 dpurdie 8896
  --  Release a specified package into a specified release
8897
  --
8898
  --  Similar to 'make_release', but it attempts to handle the case where a package-version
8899
  --  is being replaced with one with a different package-suffix, but it doesn't
6031 dpurdie 8900
  --  handle all the cases well.
4585 dpurdie 8901
  --
8902
  --  The current build system cannot do this automatically - yet
8903
  --
8904
  --
1373 dpurdie 8905
   PROCEDURE auto_make_release (
4585 dpurdie 8906
     pvid          IN   NUMBER,                         -- NEW  PKG pvid
8907
     rtagid        IN   NUMBER,                         -- Release Id
8908
     userid        IN   NUMBER,                         -- User performing Release
8909
     vext          IN   package_versions.v_ext%TYPE,    -- Package Extension for original pkg
8910
     ssv_ext       IN   package_versions.v_ext%TYPE,    -- Package Extension for new package
8911
     clonefrompvid IN   NUMBER                          -- PVID of Original
1373 dpurdie 8912
   )
8913
   IS
8914
     viewid        NUMBER;
8915
     envtab        NUMBER;
4585 dpurdie 8916
 
8917
     clone_removal NUMBER := 0;
8918
     clone_viewid  NUMBER := -1;
8919
     clone_envtab  NUMBER := -1;
8920
 
1373 dpurdie 8921
     ispatch       CHAR (1) := NULL;
4585 dpurdie 8922
     buildtype     CHAR (1) := NULL;
8923
 
1373 dpurdie 8924
   BEGIN
8925
     -- Check if package is patch
8926
     SELECT pv.is_patch, pv.build_type
8927
      INTO ispatch, buildtype
8928
      FROM package_versions pv
8929
      WHERE pv.pv_id = pvid;
8930
 
4585 dpurdie 8931
     --
8932
     -- Determine the viewid and environment for the new package
8933
     --
8934
     viewid := get_package_view (pvid, rtagid);
8935
     envtab := pk_environment.get_package_area (pvid, rtagid);
8936
 
8937
     --
8938
     -- If changing pkgExt, then we need to delete the orig package, not just replace it
8939
     --
8940
     IF (clonefrompvid is NOT NULL) AND (vext <> ssv_ext)
1373 dpurdie 8941
     THEN
4585 dpurdie 8942
        clone_removal := 1;
8943
        clone_viewid := get_package_view (clonefrompvid, rtagid);
8944
        clone_envtab := pk_environment.get_package_area (clonefrompvid, rtagid);
1373 dpurdie 8945
     END IF;
8946
 
4585 dpurdie 8947
     --
1373 dpurdie 8948
     -- Make sure that package was in work-in-progress or pending before makeing it release
8949
     -- Exclude patches, ripple builds
4585 dpurdie 8950
     --
1373 dpurdie 8951
     IF (envtab < 0)
8952
     THEN
8953
       -- Not found in work-in-progress or pending
8954
       IF (ispatch IS NULL) AND (buildtype = 'M')
8955
       THEN
8956
         raise_application_error (-20000,
8957
                            'This package cannot be released here.'
8958
                           );
8959
       END IF;
8960
     END IF;
8961
 
8962
     -- Log
5172 dpurdie 8963
     --log_action (pvid, 'action', userid, 'Start of Make Package Release...');
1373 dpurdie 8964
 
4585 dpurdie 8965
     --
8966
     -- Remove the package from the WIP or PENDING tab
6031 dpurdie 8967
     -- Do NOT remove from the release area.
4585 dpurdie 8968
     --     This will be handled later with a process that
8969
     --     will do a 'replace' so that meta data is not lost
8970
     --
8971
    IF envtab = 0
8972
    THEN
8973
        -- WORK IN PROGRESS --
8974
        pk_work_in_progress.remove_package (pvid, rtagid, userid);
8975
    ELSIF envtab = 1
8976
    THEN
8977
        -- PENDING --
8978
        pk_planned.remove_package (pvid, rtagid, userid);
8979
    END IF;
8980
 
8981
    --
8982
    --  If we are changing the pkgExt, then fully remove the base package
8983
    --  This includes removing it from the 'release' area.
8984
    --
8985
    IF clone_removal = 1
8986
    THEN
8987
        IF clone_envtab = 0
8988
        THEN
8989
            -- WORK IN PROGRESS --
8990
            pk_work_in_progress.remove_package (clonefrompvid, rtagid, userid);
8991
        ELSIF clone_envtab = 1
8992
        THEN
8993
            -- PENDING --
8994
            pk_planned.remove_package (clonefrompvid, rtagid, userid);
8995
        ELSIF clone_envtab = 2
8996
        THEN
8997
            -- RELEASED --
8998
            pk_release.remove_package (clonefrompvid, rtagid, userid);
1373 dpurdie 8999
       END IF;
4585 dpurdie 9000
    END IF;
1373 dpurdie 9001
 
9002
     -- Change package state
4585 dpurdie 9003
     -- Set dlocked state to mark the package a 'Released and Locked'
1373 dpurdie 9004
     pk_package.change_state (pvid, 'Y', userid);
9005
 
9006
     -- Make sure it is valid BASE VIEW
4585 dpurdie 9007
     -- If its not specified, give it a default (7) view
1373 dpurdie 9008
     IF viewid < 1
9009
     THEN
4585 dpurdie 9010
        IF clone_viewid >= 0
9011
        THEN
6031 dpurdie 9012
            viewid := clone_viewid;
4585 dpurdie 9013
        ELSE
9014
            viewid := 7;
9015
        END IF;
1373 dpurdie 9016
     END IF;
9017
 
9018
     IF (ispatch IS NULL)
9019
     THEN
4585 dpurdie 9020
       -- Add (Replace) package to new area
1373 dpurdie 9021
       pk_release.add_package (pvid, viewid, rtagid, userid);
9022
     END IF;
9023
 
9024
     -- Now do post Release Actions
9025
     pk_release.run_post_actions (pvid, rtagid);
9026
     -- Now update the Dash_Board Table (DEPRECATED)
9027
     pk_rmapi.update_dash_board (rtagid);
9028
 
9029
     -- The release has changed and there may now be invalid rtag_id/pv_id combinations in
9030
     -- the DO_NOT_RIPPLE and ADVISORY_RIPPLE Tables so perform a clean-up operation upon them.
9031
     clean_do_not_ripple(rtagid);
9032
     clean_advisory_ripple(rtagid);
9033
 
9034
     -- Log
5172 dpurdie 9035
     --log_action (pvid, 'action', userid, 'End of Make Package Release...');
1373 dpurdie 9036
   END;
9037
 
5172 dpurdie 9038
 
1373 dpurdie 9039
/*-------------------------------------------------------------------------------------------------------*/
9040
   PROCEDURE make_unrelease (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
9041
   IS
9042
     viewid   NUMBER;
9043
     envtab   NUMBER;
9044
   BEGIN
9045
     -- Get ViewId
9046
     --ViewId := PK_RELEASE.GET_PACKAGE_VIEW ( PvId, RtagId );
9047
     viewid := get_package_view (pvid, rtagid);
9048
     -- Remove from current area
9049
     envtab := pk_environment.get_package_area (pvid, rtagid);
9050
     -- Log
5172 dpurdie 9051
     -- log_action (pvid, 'action', userid, 'Start of Make Package UnRelease...' );
1373 dpurdie 9052
 
9053
     IF envtab = 2
9054
     THEN
9055
       -- RELEASE AREA --
9056
       pk_release.remove_package (pvid, rtagid, userid);
9057
     ELSIF envtab = 1
9058
     THEN
9059
       -- PENDING --
9060
       pk_planned.remove_package (pvid, rtagid, userid);
9061
     END IF;
9062
 
9063
     -- Change package state
9064
     pk_package.change_state (pvid, 'N', userid);
9065
 
9066
     -- Make sure it is valid BASE VIEW
9067
     IF viewid < 1
9068
     THEN
9069
       viewid := 7;                     -- This is default base view
9070
     END IF;
9071
 
9072
     -- Add package to new area
9073
     pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
9074
     -- Now do post Release Actions
9075
     pk_release.run_post_actions (pvid, rtagid);
6031 dpurdie 9076
 
1373 dpurdie 9077
     -- Log
5172 dpurdie 9078
     -- log_action (pvid, 'action', userid, 'End of Make Package UnRelease...');
1373 dpurdie 9079
   END;
9080
 
9081
/*-------------------------------------------------------------------------------------------------------*/
9082
   PROCEDURE make_pending (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
9083
   IS
9084
     viewid     NUMBER;
9085
     ispatch    CHAR (1) := NULL;
9086
     buildtype  CHAR (1) := NULL;
9087
   BEGIN
9088
     -- Check if package is patch
9089
     SELECT pv.is_patch, pv.build_type
9090
      INTO ispatch, buildtype
9091
      FROM package_versions pv
9092
      WHERE pv.pv_id = pvid;
9093
 
9094
     -- Get ViewId
9095
     viewid := get_package_view (pvid, rtagid);
9096
     --ViewId := PK_WORK_IN_PROGRESS.GET_PACKAGE_VIEW ( PvId, RtagId );
9097
 
9098
     -- Log
5172 dpurdie 9099
     --log_action (pvid, 'action', userid, 'Start of Make Package Pending...');
1373 dpurdie 9100
 
9101
     IF (ispatch IS NULL)
9102
     THEN
9103
       -- Remove from current area
9104
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
9105
       -- Change package state
9106
       pk_package.change_state (pvid, 'P', userid);
9107
       -- Add package to new area
9108
       pk_planned.add_package (pvid, viewid, rtagid, userid);
9109
     END IF;
9110
 
9111
     -- Log
5172 dpurdie 9112
     --log_action (pvid, 'action', userid, 'End of Make Package Pending...');
1373 dpurdie 9113
   END;
9114
 
9115
/*-------------------------------------------------------------------------------------------------------*/
9116
   PROCEDURE make_approved (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
9117
   IS
9118
   BEGIN
9119
     -- Log
5172 dpurdie 9120
     -- log_action (pvid, 'action', userid, 'Start of Package Pending Approval...' );
1373 dpurdie 9121
     -- Change package state
9122
     pk_package.change_state (pvid, 'A', userid);
6031 dpurdie 9123
 
5172 dpurdie 9124
     -- Flag Release has changed for the purposes of building
9125
     PK_RELEASE.SET_RELEASE_MODIFIED(rtagid);
6031 dpurdie 9126
 
1373 dpurdie 9127
     -- Log
5172 dpurdie 9128
     -- log_action (pvid, 'action', userid, 'End of Package Pending Approval...');
1373 dpurdie 9129
   END;
9130
 
9131
/*-------------------------------------------------------------------------------------------------------*/
9132
   PROCEDURE make_reject (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
9133
   IS
9134
     viewid   NUMBER;
9135
     operation CHAR;
9136
   BEGIN
9137
     -- Get ViewId
9138
     viewid := get_package_view (pvid, rtagid);
9139
     -- ViewId := PK_PLANNED.GET_PACKAGE_VIEW ( PvId, RtagId );
9140
 
9141
     -- DEVI-45275
9142
     -- If the package version is an official version that is to be rejected from a merge operation
9143
     -- then find out in order to prevent it being added back to work-in-progress table . This will
9144
     -- be denoted by the operation field in the planned table being A or S
9145
     operation := ' ';
9146
     SELECT
9147
     (CASE WHEN pl.operation IS NOT NULL THEN pl.operation ELSE ' ' END) INTO operation
9148
     FROM planned pl
9149
     WHERE pl.PV_ID = pvid
9150
     AND pl.RTAG_ID = rtagid;
9151
 
9152
     -- Log
5172 dpurdie 9153
     -- log_action (pvid, 'action', userid, 'Start of Reject Package...');
6031 dpurdie 9154
 
1373 dpurdie 9155
     -- Remove from current area
9156
     pk_planned.remove_package (pvid, rtagid, userid);
9157
 
9158
     -- DEVI-45275 - Prevent merge candidate from being added back to work-in-progress table .
9159
     IF operation <> 'A' AND operation <> 'S'
9160
     THEN
9161
     -- Change package state
9162
     pk_package.change_state (pvid, 'R', userid);
9163
     -- Add package to new area
9164
     pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
9165
     ELSE
9166
      log_action (pvid, 'action', userid, 'Rejected Package Merge');
9167
     END IF;
6031 dpurdie 9168
 
1373 dpurdie 9169
     -- Log
5172 dpurdie 9170
     -- log_action (pvid, 'action', userid, 'End of Reject Package...');
1373 dpurdie 9171
   END;
9172
 
9173
/*-------------------------------------------------------------------------------------------------------*/
9174
   PROCEDURE change_package_view (
9175
     pvid       IN   NUMBER,
9176
     rtagid     IN   NUMBER,
9177
     newviewid  IN   NUMBER
9178
   )
9179
   IS
9180
     envtab   NUMBER;
9181
   BEGIN
9182
     envtab := pk_environment.get_package_area (pvid, rtagid);
9183
 
9184
     IF envtab = 0
9185
     THEN
9186
       -- WORK IN PROGRESS --
9187
       pk_work_in_progress.change_package_view (pvid, rtagid, newviewid);
9188
     ELSIF envtab = 1
9189
     THEN
9190
       -- PENDING --
9191
       pk_planned.change_package_view (pvid, rtagid, newviewid);
9192
     ELSIF envtab = 2
9193
     THEN
9194
       -- RELEASED --
9195
       pk_release.change_package_view (pvid, rtagid, newviewid);
9196
     END IF;
9197
   END;
9198
 
9199
/*-------------------------------------------------------------------------------------------------------*/
9200
   PROCEDURE find_package (
9201
     skeyword     IN      VARCHAR2,
9202
     nrtagid      IN      NUMBER,
9203
     nsearcharea  IN      NUMBER,
9204
     recordset    OUT     typecur
9205
   )
9206
   IS
9207
   BEGIN
9208
     IF nsearcharea = 0
9209
     THEN
9210
       /* Search Work In Progress */
9211
       OPEN recordset FOR
9212
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
9213
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
9214
                pv.modified_stamp, usr.full_name, usr.user_email
9215
           FROM views vi,
9216
                work_in_progress rc,
9217
                PACKAGES pkg,
9218
                package_versions pv,
9219
                users usr
9220
          WHERE rc.view_id = vi.view_id
9221
            AND rc.pv_id = pv.pv_id
9222
            AND pkg.pkg_id = pv.pkg_id
9223
            AND pv.modifier_id = usr.user_id
9224
            AND rc.rtag_id = nrtagid
9225
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
9226
       ORDER BY UPPER (pkg.pkg_name);
9227
     ELSIF nsearcharea = 1
9228
     THEN
9229
       /* Search Pending */
9230
       OPEN recordset FOR
9231
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
9232
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
9233
                pv.modified_stamp, usr.full_name, usr.user_email
9234
           FROM views vi,
9235
                planned rc,
9236
                PACKAGES pkg,
9237
                package_versions pv,
9238
                users usr
9239
          WHERE rc.view_id = vi.view_id
9240
            AND rc.pv_id = pv.pv_id
9241
            AND pkg.pkg_id = pv.pkg_id
9242
            AND pv.modifier_id = usr.user_id
9243
            AND rc.rtag_id = nrtagid
9244
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
9245
       ORDER BY UPPER (pkg.pkg_name);
9246
     ELSIF nsearcharea = 2
9247
     THEN
9248
       /* Search Released */
9249
       OPEN recordset FOR
9250
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
9251
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
9252
                pv.modified_stamp, usr.full_name, usr.user_email
9253
           FROM views vi,
9254
                release_content rc,
9255
                PACKAGES pkg,
9256
                package_versions pv,
9257
                users usr
9258
          WHERE rc.base_view_id = vi.view_id
9259
            AND rc.pv_id = pv.pv_id
9260
            AND pkg.pkg_id = pv.pkg_id
9261
            AND pv.modifier_id = usr.user_id
9262
            AND rc.rtag_id = nrtagid
9263
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
9264
         ORDER BY UPPER (pkg.pkg_name);
9265
     ELSIF nsearcharea = 3
9266
     THEN
9267
       /* Search ALL */
9268
       OPEN recordset FOR
9269
         SELECT rc.env_area, vi.view_name, pv.dlocked, pkg.pkg_name,
9270
                pv.pv_id, pv.pkg_version, pv.comments,
9271
                pv.modified_stamp, usr.full_name, usr.user_email
9272
           FROM views vi,
9273
                environment_view rc,
9274
                PACKAGES pkg,
9275
                package_versions pv,
9276
                users usr
9277
          WHERE rc.view_id = vi.view_id
9278
            AND rc.pv_id = pv.pv_id
9279
            AND pkg.pkg_id = pv.pkg_id
9280
            AND pv.modifier_id = usr.user_id
9281
            AND rc.rtag_id = nrtagid
9282
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
9283
         ORDER BY UPPER (pkg.pkg_name);
9284
     END IF;
9285
   END;
9286
 
9287
/*-------------------------------------------------------------------------------------------------------*/
9288
   PROCEDURE find_file (
9289
     skeyword     IN      VARCHAR2,
9290
     nrtagid      IN      NUMBER,
9291
     nsearcharea  IN      NUMBER,
9292
     npagesize    IN      NUMBER,
9293
     recordset    OUT     typecur
9294
   )
9295
   IS
9296
   BEGIN
9297
     IF nsearcharea = 0
9298
     THEN
9299
       /* Search Work In Progress */
9300
       OPEN recordset FOR
9301
         SELECT   qry.*
9302
            FROM (
9303
                 /* File search on Packages */
9304
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9305
                        pv.pv_id, pv.pkg_version, art.crc_cksum
9306
                   FROM work_in_progress rc,
9307
                        PACKAGES pkg,
9308
                        package_versions pv,
9309
                        release_components art
9310
                  WHERE rc.pv_id = art.pv_id
9311
                    AND pv.pkg_id = pkg.pkg_id
9312
                    AND rc.pv_id = pv.pv_id
9313
                    AND rc.rtag_id = nrtagid
9314
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9315
                 UNION ALL
9316
                 /* File search on Products */
9317
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9318
                        pv.pv_id, pv.pkg_version, art.crc_cksum
9319
                   FROM work_in_progress rc,
9320
                        PACKAGES pkg,
9321
                        package_versions pv,
9322
                        product_components art
9323
                  WHERE rc.pv_id = art.pv_id
9324
                    AND pv.pkg_id = pkg.pkg_id
9325
                    AND rc.pv_id = pv.pv_id
9326
                    AND rc.rtag_id = nrtagid
9327
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
9328
            WHERE ROWNUM <= npagesize
9329
         ORDER BY UPPER (qry.pkg_name);
9330
     ELSIF nsearcharea = 1
9331
     THEN
9332
       /* Search Pending */
9333
       OPEN recordset FOR
9334
         SELECT   qry.*
9335
            FROM (
9336
                 /* File search on Packages */
9337
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9338
                        pv.pv_id, pv.pkg_version, art.crc_cksum
9339
                   FROM planned rc,
9340
                        PACKAGES pkg,
9341
                        package_versions pv,
9342
                        release_components art
9343
                  WHERE rc.pv_id = art.pv_id
9344
                    AND pv.pkg_id = pkg.pkg_id
9345
                    AND rc.pv_id = pv.pv_id
9346
                    AND rc.rtag_id = nrtagid
9347
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9348
                 UNION ALL
9349
                 /* File search on Products */
9350
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9351
                        pv.pv_id, pv.pkg_version, art.crc_cksum
9352
                   FROM planned rc,
9353
                        PACKAGES pkg,
9354
                        package_versions pv,
9355
                        product_components art
9356
                  WHERE rc.pv_id = art.pv_id
9357
                    AND pv.pkg_id = pkg.pkg_id
9358
                    AND rc.pv_id = pv.pv_id
9359
                    AND rc.rtag_id = nrtagid
9360
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
9361
            WHERE ROWNUM <= npagesize
9362
         ORDER BY UPPER (qry.pkg_name);
9363
     ELSIF nsearcharea = 2
9364
     THEN
9365
       /* Search Released */
9366
       OPEN recordset FOR
9367
         SELECT   qry.*
9368
            FROM (
9369
                 /* File search on Packages */
9370
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9371
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9372
                        NULL AS patch_id
9373
                   FROM release_content rc,
9374
                        PACKAGES pkg,
9375
                        package_versions pv,
9376
                        release_components art
9377
                  WHERE rc.pv_id = art.pv_id
9378
                    AND pv.pkg_id = pkg.pkg_id
9379
                    AND rc.pv_id = pv.pv_id
9380
                    AND rc.rtag_id = nrtagid
9381
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9382
                 UNION ALL
9383
                 /* File search on Products */
9384
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9385
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9386
                        NULL AS patch_id
9387
                   FROM release_content rc,
9388
                        PACKAGES pkg,
9389
                        package_versions pv,
9390
                        product_components art
9391
                  WHERE rc.pv_id = art.pv_id
9392
                    AND pv.pkg_id = pkg.pkg_id
9393
                    AND rc.pv_id = pv.pv_id
9394
                    AND rc.rtag_id = nrtagid
9395
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9396
                 UNION ALL
9397
                 /* File search on Patches */
9398
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9399
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9400
                        DECODE (art.file_path,
9401
                                NULL, pp.patch_id,
9402
                                NULL
9403
                                ) AS patch_id
9404
                   FROM release_content rc,
9405
                        PACKAGES pkg,
9406
                        package_versions pv,
9407
                        release_components art,
9408
                        package_patches pp
9409
                  WHERE pv.pv_id = pp.pv_id
9410
                    AND pv.pkg_id = pkg.pkg_id
9411
                    AND rc.rtag_id = nrtagid
9412
                    AND art.pv_id = pp.patch_id
9413
                    AND rc.pv_id = pp.pv_id
9414
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
9415
            WHERE ROWNUM <= npagesize
9416
         ORDER BY UPPER (qry.pkg_name);
9417
     ELSIF nsearcharea = 3
9418
     THEN
9419
       /* Search ALL */
9420
       OPEN recordset FOR
9421
         SELECT   qry.*
9422
            FROM (
9423
                 /* File search on Packages */
9424
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9425
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9426
                        NULL AS patch_id
9427
                   FROM environment_view rc,
9428
                        PACKAGES pkg,
9429
                        package_versions pv,
9430
                        release_components art
9431
                  WHERE rc.pv_id = art.pv_id
9432
                    AND pv.pkg_id = pkg.pkg_id
9433
                    AND rc.pv_id = pv.pv_id
9434
                    AND rc.rtag_id = nrtagid
9435
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9436
                 UNION ALL
9437
                 /* File search on Products */
9438
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9439
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9440
                        NULL AS patch_id
9441
                   FROM environment_view rc,
9442
                        PACKAGES pkg,
9443
                        package_versions pv,
9444
                        product_components art
9445
                  WHERE rc.pv_id = art.pv_id
9446
                    AND pv.pkg_id = pkg.pkg_id
9447
                    AND rc.pv_id = pv.pv_id
9448
                    AND rc.rtag_id = nrtagid
9449
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9450
                 UNION ALL
9451
                 /* File search on Patches */
9452
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9453
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9454
                        DECODE (art.file_path,
9455
                                NULL, pp.patch_id,
9456
                                NULL
9457
                               ) AS patch_id
9458
                   FROM release_content rc,
9459
                        PACKAGES pkg,
9460
                        package_versions pv,
9461
                        release_components art,
9462
                        package_patches pp
9463
                  WHERE pv.pv_id = pp.pv_id
9464
                    AND pv.pkg_id = pkg.pkg_id
9465
                    AND rc.rtag_id = nrtagid
9466
                    AND art.pv_id = pp.patch_id
9467
                    AND rc.pv_id = pp.pv_id
9468
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
9469
            WHERE ROWNUM <= npagesize
9470
         ORDER BY UPPER (qry.pkg_name);
9471
     END IF;
9472
   END;
9473
 
9474
/*-------------------------------------------------------------------------------------------------------*/
9475
   PROCEDURE get_prodrelease_items (
9476
     rtagid           IN      NUMBER,
9477
     ntruerecordcount OUT     NUMBER,
9478
     recordset        OUT     typecur
9479
   )
9480
   IS
9481
   BEGIN
9482
     -- Get true record count n the number of integration products
9483
     SELECT COUNT (rc.pv_id)
9484
      INTO ntruerecordcount
9485
      FROM release_content rc
9486
      WHERE rc.rtag_id = rtagid;
9487
 
9488
     OPEN recordset FOR
9489
       SELECT vi.view_id, vi.view_name, rel.pkg_state,   --rel.pkg_state,
9490
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9491
              pv.pkg_version, pv.dlocked, pv.pv_description
9492
         FROM release_content rel,
9493
              PACKAGES pkg,
9494
              package_versions pv,
9495
              views vi
9496
        WHERE pv.pkg_id = pkg.pkg_id
9497
          AND rel.pv_id = pv.pv_id
9498
          AND rel.base_view_id = vi.view_id
9499
          AND pv.is_deployable = 'Y'
9500
          AND rtag_id = rtagid
9501
          AND pv.pv_id NOT IN (SELECT DISTINCT prod_id
9502
                                 FROM deployment_manager.os_contents)
9503
          AND rel.product_state IS NULL
9504
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9505
   END;
9506
 
9507
/*-------------------------------------------------------------------------------------------------------*/
9508
   PROCEDURE get_integration_items (
9509
     rtagid           IN      NUMBER,
9510
     ntruerecordcount OUT     NUMBER,
9511
     recordset        OUT     typecur
9512
   )
9513
   IS
9514
   BEGIN
9515
     -- Get true record count n the number of integration products
9516
     SELECT COUNT (rc.pv_id)
9517
      INTO ntruerecordcount
9518
      FROM release_content rc
9519
      WHERE rc.rtag_id = rtagid AND rc.product_state = 1;
9520
 
9521
     OPEN recordset FOR
9522
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9523
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9524
              pv.pkg_version, pv.dlocked, pv.pv_description
9525
         FROM release_content rel,
9526
              PACKAGES pkg,
9527
              package_versions pv,
9528
              views vi
9529
        WHERE pv.pkg_id = pkg.pkg_id
9530
          AND rel.pv_id = pv.pv_id
9531
          AND rel.base_view_id = vi.view_id
9532
          AND pv.is_deployable = 'Y'
9533
          AND rtag_id = rtagid
9534
          AND rel.product_state IN (1, 5)
9535
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9536
   END;
9537
 
9538
/*-------------------------------------------------------------------------------------------------------*/
9539
   PROCEDURE get_test_items (
9540
     rtagid           IN      NUMBER,
9541
     ntruerecordcount OUT     NUMBER,
9542
     recordset        OUT     typecur
9543
   )
9544
   IS
9545
   BEGIN
9546
     -- Get true record count n the number of test products
9547
     SELECT COUNT (rc.pv_id)
9548
      INTO ntruerecordcount
9549
      FROM release_content rc
9550
      WHERE rc.rtag_id = rtagid AND rc.product_state = 2;
9551
 
9552
     OPEN recordset FOR
9553
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9554
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9555
              pv.pkg_version, pv.dlocked, pv.pv_description
9556
         FROM release_content rel,
9557
              PACKAGES pkg,
9558
              package_versions pv,
9559
              views vi
9560
        WHERE pv.pkg_id = pkg.pkg_id
9561
          AND rel.pv_id = pv.pv_id
9562
          AND rel.base_view_id = vi.view_id
9563
          AND pv.is_deployable = 'Y'
9564
          AND rtag_id = rtagid
9565
          AND rel.product_state = 2
9566
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9567
   END;
9568
 
9569
/*-------------------------------------------------------------------------------------------------------*/
9570
   PROCEDURE get_deploy_items (
9571
     rtagid           IN      NUMBER,
9572
     ntruerecordcount OUT     NUMBER,
9573
     recordset        OUT     typecur
9574
   )
9575
   IS
9576
   BEGIN
9577
     -- Get true record count n the number of deploy products
9578
     SELECT COUNT (rc.pv_id)
9579
      INTO ntruerecordcount
9580
      FROM release_content rc
9581
      WHERE rc.rtag_id = rtagid AND rc.product_state = 3;
9582
 
9583
     OPEN recordset FOR
9584
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9585
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9586
              pv.pkg_version, pv.dlocked, pv.pv_description
9587
         FROM release_content rel,
9588
              PACKAGES pkg,
9589
              package_versions pv,
9590
              views vi
9591
        WHERE pv.pkg_id = pkg.pkg_id
9592
          AND rel.pv_id = pv.pv_id
9593
          AND rel.base_view_id = vi.view_id
9594
          AND pv.is_deployable = 'Y'
9595
          AND rtag_id = rtagid
9596
          AND rel.product_state IN (3, 5)
9597
          AND pv.pv_id NOT IN (SELECT DISTINCT prod_id
9598
                                 FROM deployment_manager.os_contents)
9599
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9600
   END;
9601
 
9602
/*-------------------------------------------------------------------------------------------------------*/
9603
   PROCEDURE get_reject_items (
9604
     rtagid           IN      NUMBER,
9605
     ntruerecordcount OUT     NUMBER,
9606
     recordset        OUT     typecur
9607
   )
9608
   IS
9609
   BEGIN
9610
     -- Get true record count n the number of reject products
9611
     SELECT COUNT (rc.pv_id)
9612
       INTO ntruerecordcount
9613
       FROM release_content rc
9614
      WHERE rc.rtag_id = rtagid AND rc.product_state = 4;
9615
 
9616
     OPEN recordset FOR
9617
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9618
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9619
              pv.pkg_version, pv.dlocked, pv.pv_description
9620
         FROM release_content rel,
9621
              PACKAGES pkg,
9622
              package_versions pv,
9623
              views vi
9624
        WHERE pv.pkg_id = pkg.pkg_id
9625
          AND rel.pv_id = pv.pv_id
9626
          AND rel.base_view_id = vi.view_id
9627
          AND pv.is_deployable = 'Y'
9628
          AND rtag_id = rtagid
9629
          AND rel.product_state = 4
9630
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9631
   END;
9632
/*-------------------------------------------------------------------------------------------------------*/
9633
   -- DEVI-45275 - this procedure performs the merge of an existing package version in the planned table
9634
   -- to the release_content table.
9635
 
9636
  PROCEDURE approve_merge (
9637
   PvId    IN NUMBER,
9638
   RtagId  IN NUMBER,
9639
   UserId  IN NUMBER
9640
  )
9641
  IS
9642
   viewid        NUMBER;
9643
   envtab        NUMBER;
9644
   oper         CHAR;
9645
  BEGIN
9646
      -- Get ViewId
9647
     viewid := get_package_view (pvid, rtagid);
9648
 
9649
     -- Get the view tab
9650
     envtab := pk_environment.get_package_area (pvid, rtagid);
9651
 
9652
     -- Make sure that package was in pending before merging it to released
9653
     IF (envtab <> 1)
9654
     THEN
9655
       -- Not found in pending
9656
       raise_application_error (-20000,
9657
                          'This package cannot be released here.'
9658
                         );
9659
     END IF;
9660
 
9661
     -- Log
5172 dpurdie 9662
     --log_action (pvid, 'action', userid, 'Start of Package Merge...');
1373 dpurdie 9663
 
9664
     -- Get the planned operation type A=Add, S=Subtract
9665
     SELECT ev.operation INTO oper
9666
       FROM environment_view ev
9667
      WHERE ev.rtag_id = RtagId
9668
        AND ev.pv_id = PvId
9669
        AND (ev.operation = 'A' OR ev.operation = 'S');
9670
 
9671
     -- Remove from Pending
9672
     pk_planned.remove_package (PvId, RtagId, UserId);
9673
 
9674
     -- Either add to the release, or remove from the release as the operation commands
9675
     IF oper = 'A'
9676
     THEN
9677
       pk_release.add_package(PvId, viewId, RtagId, UserId);
9678
 
9679
     ELSIF oper = 'S'
9680
     THEN
9681
       pk_release.remove_package(PvId, RtagId, UserId);
9682
 
9683
       -- Delete old package's pegging info
9684
       DELETE FROM PEGGED_VERSIONS pegv WHERE pegv.RTAG_ID = RtagId AND pegv.PV_ID = PvId;
9685
 
9686
       -- Delete old package's advisory ripple info
9687
       DELETE FROM ADVISORY_RIPPLE avr WHERE avr.RTAG_ID = RtagId AND avr.PV_ID = PvId;
9688
     END IF;
9689
 
9690
     touch_release(RtagId);
9691
 
9692
     -- Log
5172 dpurdie 9693
     --log_action (pvid, 'action', userid, 'End of Package Merge...');
1373 dpurdie 9694
  END;
9695
/*-------------------------------------------------------------------------------------------------------*/
9696
END pk_environment;
4040 dpurdie 9697
 
1374 dpurdie 9698
/
4040 dpurdie 9699
--------------------------------------------------------
9700
--  DDL for Package Body PK_LICENCING
9701
--------------------------------------------------------
9702
 
5172 dpurdie 9703
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_LICENCING" IS
1373 dpurdie 9704
 
9705
/*
9706
------------------------------
3959 dpurdie 9707
||  Last Modified:  G.Huddy
9708
||  Modified Date:  19/Aug/2008
1373 dpurdie 9709
||  Body Version:   1.0
9710
------------------------------
9711
*/
9712
 
3959 dpurdie 9713
   PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) IS
9714
   BEGIN
9715
      IF IS_LICENCED(PvId, licenceId) = 0 THEN
9716
         -- Add entry to licencing table
9717
         INSERT INTO licencing (pv_id, licence)
9718
         VALUES (PvId, licenceId);
1373 dpurdie 9719
 
3959 dpurdie 9720
         -- log action
9721
         -- TODO
9722
      END IF;
1373 dpurdie 9723
 
3959 dpurdie 9724
   END;
1373 dpurdie 9725
 
9726
/*-------------------------------------------------------------------------------------------------------*/
9727
 
3959 dpurdie 9728
   PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) IS
9729
   BEGIN
9730
      IF NOT IS_LICENCED(PvId, licenceId) = 0 THEN
9731
         -- Delete entry from licencing table
9732
         DELETE FROM licencing
9733
         WHERE pv_id = PvId
9734
         AND licence = licenceId;
1373 dpurdie 9735
 
3959 dpurdie 9736
         -- log action
9737
         -- TODO
9738
      END IF;
9739
   END;
1373 dpurdie 9740
 
9741
/*-------------------------------------------------------------------------------------------------------*/
9742
 
3959 dpurdie 9743
   PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 9744
 
3959 dpurdie 9745
      CURSOR licencing_cur
9746
      IS
9747
         SELECT *
9748
         FROM licencing
9749
         WHERE pv_id = fromPvId;
1373 dpurdie 9750
 
3959 dpurdie 9751
      licencing_rec licencing_cur%ROWTYPE;
1373 dpurdie 9752
 
9753
   BEGIN
3959 dpurdie 9754
      -- For each licence association that the Last PV_ID had, create a similar
9755
      -- arrangement for the new PV_ID
9756
      -- NOTE that any additional licencing associations the new PV_ID has that the old one
9757
      -- does not have, are retained. The assumption is that the user has made those and so we do not
9758
      -- have any right to destroy them without asking them.
9759
      OPEN licencing_cur;
1373 dpurdie 9760
 
3959 dpurdie 9761
      FETCH licencing_cur
9762
      INTO licencing_rec;
1373 dpurdie 9763
 
3959 dpurdie 9764
      WHILE licencing_cur%FOUND
1373 dpurdie 9765
      LOOP
3959 dpurdie 9766
         ADD_LICENCE ( toPvId, licencing_rec.licence, UserId );
1373 dpurdie 9767
 
3959 dpurdie 9768
         FETCH licencing_cur
9769
         INTO licencing_rec;
1373 dpurdie 9770
      END LOOP;
9771
   END;
9772
 
9773
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 9774
 
9775
   FUNCTION IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER IS
9776
      found NUMBER;
1373 dpurdie 9777
   BEGIN
9778
 
3959 dpurdie 9779
      SELECT COUNT(*) INTO found
9780
      FROM licencing
9781
      WHERE pv_id = PvId
9782
      AND licence = LicenceId;
1373 dpurdie 9783
 
3959 dpurdie 9784
      RETURN found;
1373 dpurdie 9785
   END;
9786
 
9787
/*-------------------------------------------------------------------------------------------------------*/
9788
 
3959 dpurdie 9789
   PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 9790
 
3959 dpurdie 9791
      CURSOR licencing_cur
9792
      IS
1373 dpurdie 9793
         SELECT *
3959 dpurdie 9794
         FROM licencing
9795
         WHERE pv_id = PvId;
1373 dpurdie 9796
 
3959 dpurdie 9797
      licencing_rec licencing_cur%ROWTYPE;
9798
   BEGIN
9799
      -- For each licence association that the PV_ID had, remove it
9800
      OPEN licencing_cur;
1373 dpurdie 9801
 
3959 dpurdie 9802
      FETCH licencing_cur
9803
      INTO licencing_rec;
1373 dpurdie 9804
 
3959 dpurdie 9805
      WHILE licencing_cur%FOUND
9806
      LOOP
9807
         REMOVE_LICENCE ( PvId, licencing_rec.licence, UserId );
1373 dpurdie 9808
 
3959 dpurdie 9809
         FETCH licencing_cur
9810
         INTO licencing_rec;
9811
      END LOOP;
1373 dpurdie 9812
   END;
9813
 
9814
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 9815
END PK_LICENCING;
4040 dpurdie 9816
 
1374 dpurdie 9817
/
4040 dpurdie 9818
--------------------------------------------------------
9819
--  DDL for Package Body PK_PACKAGE
9820
--------------------------------------------------------
9821
 
5172 dpurdie 9822
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PACKAGE" 
1373 dpurdie 9823
IS
9824
   /*-------------------------------------------------------------------------------------------------------*/
9825
   PROCEDURE new_version (
9826
      nlastpvid                   IN       NUMBER,
9827
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
9828
      cbuildtype                  IN       CHAR,
4211 dpurdie 9829
      cchangetype                 IN       CHAR,
1373 dpurdie 9830
      nsettopvid                  IN       NUMBER DEFAULT NULL,
9831
      nrtagid                     IN       NUMBER,
9832
      nuserid                     IN       NUMBER,
9833
      enumissues_state_imported   IN       NUMBER,
9834
      returnpvid                  OUT      NUMBER
9835
   )
9836
   IS
3959 dpurdie 9837
      origpkg_id                  package_versions.pkg_id%TYPE;
9838
      origdlocked                 package_versions.dlocked%TYPE;
9839
      ssv_mm                      package_versions.v_mm%TYPE;
9840
      ssv_nmm                     package_versions.v_nmm%TYPE;
9841
      ssv_ext                     package_versions.v_ext%TYPE;
9842
      spackageversion             VARCHAR2 (4000);
9843
      nissuestypes                NUMBER;
9844
      nviewid                     NUMBER;
9845
      reccount                    NUMBER;
9846
      isreleased                  package_versions.dlocked%TYPE := 'N';
9847
      slabel                      VARCHAR2 (4000)               := NULL;
4211 dpurdie 9848
      uchangetype                 CHAR := cchangetype;
1373 dpurdie 9849
 
9850
      CURSOR package_versions_cur
9851
      IS
9852
         SELECT pv.pv_id, pv.is_patch, pv.dlocked
9853
           FROM package_versions pv
9854
          WHERE pv.pkg_version = snewpkgversion
9855
            AND pv.pkg_id IN (SELECT DISTINCT origpv.pkg_id
9856
                                         FROM package_versions origpv
9857
                                        WHERE origpv.pv_id = nlastpvid);
9858
 
3959 dpurdie 9859
      package_versions_rec package_versions_cur%ROWTYPE;
1373 dpurdie 9860
 
9861
      CURSOR clone_package_versions_cur
9862
      IS
9863
         SELECT DISTINCT pkg_id, dlocked
9864
                    FROM package_versions
9865
                   WHERE pv_id = nlastpvid;
9866
 
3959 dpurdie 9867
      clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
1373 dpurdie 9868
   BEGIN
9869
      spackageversion := snewpkgversion;
9870
 
9871
      IF nsettopvid IS NULL
9872
      THEN
9873
         -- SetToPv_id is not supplied, hence proceed.
9874
 
9875
         /* ---------------------------------------------------- */
3959 dpurdie 9876
         /* Find id package_version exists                       */
9877
         /* ---------------------------------------------------- */
1373 dpurdie 9878
         OPEN package_versions_cur;
9879
 
9880
         FETCH package_versions_cur
9881
          INTO package_versions_rec;
9882
 
9883
         IF package_versions_cur%NOTFOUND
9884
         THEN
9885
            ---  Create brand new package ---
9886
            SELECT seq_pv_id.NEXTVAL
9887
              INTO returnpvid
9888
              FROM DUAL;
9889
 
9890
            -- Split Version to get extention + other
9891
            split_version (spackageversion, ssv_mm, ssv_nmm, ssv_ext);
9892
 
9893
            -- Get previous package to clone from
9894
            OPEN clone_package_versions_cur;
9895
 
9896
            FETCH clone_package_versions_cur
9897
             INTO clone_package_versions_rec;
9898
 
9899
            origpkg_id := clone_package_versions_rec.pkg_id;
9900
            origdlocked := clone_package_versions_rec.dlocked;
9901
 
9902
            CLOSE clone_package_versions_cur;
9903
 
9904
            -- Automated built config
4211 dpurdie 9905
            IF ( cbuildtype = 'M' ) THEN
9906
              uchangetype := 'F';
6031 dpurdie 9907
            END IF;
9908
 
4211 dpurdie 9909
            -- Automated version numbering
9910
            -- Make sure that version is still unique
9911
            IF (uchangetype != 'F') THEN
9912
              spackageversion := '(' || returnpvid || ')' || ssv_ext;
1373 dpurdie 9913
            END IF;
9914
 
6031 dpurdie 9915
 
1373 dpurdie 9916
            -- Clone Package Version Details --
3959 dpurdie 9917
            INSERT INTO package_versions(pv_id, pkg_id, pkg_version, dlocked, created_stamp,
9918
                                         creator_id, modified_stamp, modifier_id, v_mm, v_nmm,
9919
                                         v_ext, src_path, pv_description, pv_overview,
9920
                                         last_pv_id, owner_id, is_deployable,
6031 dpurdie 9921
                                         is_build_env_required, build_type, change_type,
5892 dpurdie 9922
                                         bs_id, is_autobuildable, ripple_field, build_time)
3959 dpurdie 9923
                 SELECT returnpvid AS pv_id, origpkg_id AS pkg_id,
9924
                        spackageversion AS pkg_version, 'N' AS dlocked,
9925
                        ora_sysdate AS created_stamp, nuserid AS creator_id,
9926
                        ora_sysdatetime AS modified_stamp,
9927
                        nuserid AS modifier_id, ssv_mm AS v_mm,
9928
                        ssv_nmm AS v_nmm, ssv_ext AS v_ext, pv.src_path,
9929
                        pv.pv_description, pv.pv_overview,
9930
                        nlastpvid AS last_pv_id, pv.owner_id, pv.is_deployable,
6031 dpurdie 9931
                        pv.is_build_env_required, cbuildtype, uchangetype,
5892 dpurdie 9932
                        pv.bs_id, pv.is_autobuildable, pv.ripple_field, pv.build_time
3959 dpurdie 9933
                   FROM package_versions pv
9934
                  WHERE pv.pv_id = nlastpvid;
1373 dpurdie 9935
 
9936
            -- Set Issues Type for cloning ---
9937
            IF origdlocked = 'Y'
9938
            THEN
9939
               nissuestypes := enumissues_state_imported;
9940
            ELSE
9941
               nissuestypes := NULL;
9942
            END IF;
9943
 
9944
            basic_clone (nlastpvid,
9945
                         returnpvid,
9946
                         nrtagid,
9947
                         nuserid,
9948
                         origpkg_id,
9949
                         nissuestypes
9950
                        );
6031 dpurdie 9951
 
4211 dpurdie 9952
            -- Update Label for versioning purposes
9953
            slabel := get_automated_label (returnpvid);
9954
            UPDATE package_versions pv
9955
            SET pv.pkg_label = slabel
9956
            WHERE pv.pv_id = returnpvid;
6031 dpurdie 9957
 
1373 dpurdie 9958
         ELSE
9959
            --- Package already exists, hence reuse ---
9960
            returnpvid := package_versions_rec.pv_id;
9961
            isreleased := package_versions_rec.dlocked;
9962
         END IF;
9963
 
9964
         CLOSE package_versions_cur;
9965
      ELSE
9966
         returnpvid := nsettopvid;
9967
      END IF;
9968
   END new_version;
9969
 
9970
/*-------------------------------------------------------------------------------------------------------*/
9971
   PROCEDURE change_state (
9972
      pvid       IN   NUMBER,
9973
      newstate   IN   package_versions.dlocked%TYPE,
9974
      userid     IN   NUMBER
9975
   )
9976
   IS
9977
   BEGIN
9978
      -- Set package in Released mode
9979
      UPDATE package_versions pv
9980
         SET pv.dlocked = newstate,
9981
             pv.modified_stamp = ora_sysdatetime,
9982
             pv.modifier_id = userid
9983
       WHERE pv.pv_id = pvid;
9984
 
9985
      -- Log action --
9986
      IF newstate = 'Y'
9987
      THEN
9988
         -- RELEASED --
9989
         log_action (pvid,
9990
                     'makeofficial',
9991
                     userid,
9992
                     'Package state change to: Released'
9993
                    );
9994
      ELSIF newstate = 'N'
9995
      THEN
9996
         -- UNLOCKED --
9997
         log_action (pvid,
9998
                     'makeunofficial',
9999
                     userid,
10000
                     'Package state change to: Ulocked'
10001
                    );
10002
      ELSIF newstate = 'P'
10003
      THEN
10004
         -- PENDING APPROVAL --
10005
         log_action (pvid,
10006
                     'add_to_planned',
10007
                     userid,
10008
                     'Package state change to: Pending Approval'
10009
                    );
10010
      ELSIF newstate = 'R'
10011
      THEN
10012
         -- REJECTED --
10013
         log_action (pvid,
10014
                     'reject_package',
10015
                     userid,
10016
                     'Package state change to: Rejected'
10017
                    );
10018
      ELSIF newstate = 'A'
10019
      THEN
10020
         -- APPROVED --
10021
         log_action (pvid,
10022
                     'approve_package',
10023
                     userid,
10024
                     'Package state change to: Approved'
10025
                    );
10026
      END IF;
10027
   END;
10028
 
10029
/*-------------------------------------------------------------------------------------------------------*/
6031 dpurdie 10030
-- This function has been deprecated and can be deleted
10031
-- Replaced with destroy_package_extended
1373 dpurdie 10032
   PROCEDURE destroy_package (
10033
      pvid               IN       NUMBER,
10034
      overridewarnings   IN       CHAR DEFAULT 'N',
10035
      problemstring      OUT      VARCHAR2
10036
   )
10037
   IS
10038
      LOCKED     CHAR;
10039
      pkgid      NUMBER;
10040
      ROWCOUNT   NUMBER;
6031 dpurdie 10041
      lastPvid   NUMBER;
1373 dpurdie 10042
   BEGIN
10043
      /*
10044
      || This will destroy all package details from database.
10045
      || It will only be used to remove unwanted work in progress packages,
6031 dpurdie 10046
      || or mistaken versions
1373 dpurdie 10047
      */
10048
 
10049
      /*--------------- Business Rules Here -------------------*/
10050
      problemstring := NULL;
10051
 
10052
      IF overridewarnings = 'N'
10053
      THEN
10054
         -- Package must not be official
10055
         SELECT pv.dlocked
10056
           INTO LOCKED
10057
           FROM package_versions pv
10058
          WHERE pv.pv_id = pvid;
10059
 
10060
         IF LOCKED = 'Y'
10061
         THEN
10062
            problemstring :=
10063
                  problemstring
10064
               || '- Package is locked and released.'
5892 dpurdie 10065
               ||PK_PACKAGE.crlf;
1373 dpurdie 10066
         END IF;
10067
 
10068
         -- Cannot remove if used in BOMs
10069
         SELECT COUNT (osc.prod_id)
10070
           INTO ROWCOUNT
10071
           FROM deployment_manager.os_contents osc
10072
          WHERE osc.prod_id = pvid;
10073
 
10074
         IF ROWCOUNT > 0
10075
         THEN
10076
            problemstring :=
10077
                  problemstring
10078
               || '- Package is part of Bill-Of-Material (BOM) in Deployment Manager.'
5892 dpurdie 10079
               ||PK_PACKAGE.crlf;
1373 dpurdie 10080
         END IF;
6031 dpurdie 10081
 
10082
         -- Cannot remove if used in an SDK
10083
         SELECT COUNT (sc.pv_id)
10084
           INTO ROWCOUNT
10085
           FROM sdk_content sc
10086
          WHERE sc.pv_id = pvid;
1373 dpurdie 10087
 
6031 dpurdie 10088
         IF ROWCOUNT > 0
10089
         THEN
10090
            problemstring :=
10091
                  problemstring
10092
               || '- Package is part of an SDK.'
10093
               ||PK_PACKAGE.crlf;
10094
         END IF;
10095
 
1373 dpurdie 10096
         -- Cannot remove if Referenced as build dependency
10097
         SELECT COUNT (dep.pv_id)
10098
           INTO ROWCOUNT
10099
           FROM package_dependencies dep
10100
          WHERE dep.dpv_id = pvid;
10101
 
10102
         IF ROWCOUNT > 0
10103
         THEN
10104
            problemstring :=
10105
                  problemstring
10106
               || '- Package is referenced by other package as build dependency.'
5892 dpurdie 10107
               ||PK_PACKAGE.crlf;
1373 dpurdie 10108
         END IF;
10109
 
10110
         -- Cannot remove if Referenced as runtime dependency
10111
         SELECT COUNT (rd.pv_id)
10112
           INTO ROWCOUNT
10113
           FROM runtime_dependencies rd
10114
          WHERE rd.rtd_id = pvid;
10115
 
10116
         IF ROWCOUNT > 0
10117
         THEN
10118
            problemstring :=
10119
                  problemstring
10120
               || '- Package is referenced by other package as runtime dependency.'
5892 dpurdie 10121
               ||PK_PACKAGE.crlf;
1373 dpurdie 10122
         END IF;
10123
 
10124
         -- Cannot remove if Referenced as patch
10125
         SELECT COUNT (pp.pv_id)
10126
           INTO ROWCOUNT
10127
           FROM package_patches pp
10128
          WHERE pp.patch_id = pvid;
10129
 
10130
         IF ROWCOUNT > 0
10131
         THEN
10132
            problemstring :=
10133
                  problemstring
10134
               || '- Package is used as patch by other package.'
5892 dpurdie 10135
               ||PK_PACKAGE.crlf;
1373 dpurdie 10136
         END IF;
6031 dpurdie 10137
 
10138
         -- Cannot remove if a Daemon Instruction
10139
         SELECT COUNT (di.pv_id)
10140
           INTO ROWCOUNT
10141
           FROM DAEMON_INSTRUCTIONS di
10142
          WHERE di.pv_id = pvid;
1373 dpurdie 10143
 
6031 dpurdie 10144
         IF ROWCOUNT > 0
10145
         THEN
10146
            problemstring :=
10147
                  problemstring
10148
               || '- Package is in use for a Daemon Instruction.'
10149
               ||PK_PACKAGE.crlf;
10150
         END IF;
10151
 
10152
 
10153
      END IF;      
10154
 
1373 dpurdie 10155
/*-------------------------------------------------------*/
10156
      IF (problemstring IS NULL)
10157
      THEN
10158
         --- Remove From Work in Progress
10159
         DELETE FROM work_in_progress wip
10160
               WHERE wip.pv_id = pvid;
10161
 
10162
         --- Remove From Pending
10163
         DELETE FROM planned pl
10164
               WHERE pl.pv_id = pvid;
10165
 
10166
         --- Remove From Released area
10167
         DELETE FROM release_content rc
10168
               WHERE rc.pv_id = pvid;
10169
 
10170
         ---Remove From Package Processes
10171
         DELETE FROM package_processes pp
10172
               WHERE pp.pv_id = pvid;
10173
 
10174
         --- Remove Dependencies
10175
         DELETE FROM package_dependencies dep
10176
               WHERE dep.pv_id = pvid;
10177
 
10178
         DELETE FROM package_dependencies dep
10179
               WHERE dep.dpv_id = pvid;
10180
 
10181
         --- Remove Runtime dependencies
10182
         DELETE FROM runtime_dependencies rtd
10183
               WHERE rtd.pv_id = pvid;
10184
 
10185
         DELETE FROM runtime_dependencies rtd
10186
               WHERE rtd.rtd_id = pvid;
10187
 
10188
         --- Remove components
10189
         DELETE FROM product_components pc
10190
               WHERE pc.pv_id = pvid;
10191
 
10192
         DELETE FROM release_components rc
10193
               WHERE rc.pv_id = pvid;
10194
 
10195
         --- Remove From Notification History
10196
         DELETE FROM notification_history nh
10197
               WHERE nh.pv_id = pvid;
10198
 
10199
         --- Remove From Ignore Warnings
10200
         DELETE FROM ignore_warnings iw
10201
               WHERE iw.pv_id = pvid;
10202
 
10203
         --- Remove From Additional Notes
10204
         DELETE FROM additional_notes an
10205
               WHERE an.pv_id = pvid;
10206
 
10207
         --- Remove From CQ Issues
10208
         DELETE FROM cq_issues cq
10209
               WHERE cq.pv_id = pvid;
10210
 
10211
         --- Remove from Package Patches
10212
         DELETE FROM package_patches pp
10213
               WHERE pp.pv_id = pvid;
10214
 
10215
         DELETE FROM package_patches pp
10216
               WHERE pp.patch_id = pvid;
10217
 
10218
         --- Remove From Package Documents
10219
         DELETE FROM package_documents pd
10220
               WHERE pd.pv_id = pvid;
10221
 
10222
         --- Remove from Code Review
10223
         DELETE FROM code_reviews cr
10224
               WHERE cr.pv_id = pvid;
10225
 
3959 dpurdie 10226
         --- Remove from Code Review URL
10227
         DELETE FROM code_review_url cru
10228
               WHERE cru.pv_id = pvid;
10229
 
1373 dpurdie 10230
         --- Remove from Unit Tests
10231
         DELETE FROM unit_tests ut
10232
               WHERE ut.pv_id = pvid;
10233
 
10234
         --- Remove from Package BuildEnv
10235
         DELETE FROM package_build_env pbe
10236
               WHERE pbe.pv_id = pvid;
10237
 
3959 dpurdie 10238
         --- Remove from Package Build Info
10239
         DELETE FROM package_build_info pbi
10240
               WHERE pbi.pv_id = pvid;
6031 dpurdie 10241
 
10242
        --- Remove from Build Plan
10243
         DELETE FROM BUILD_PLAN bp
10244
               WHERE bp.pv_id = pvid;
10245
 
10246
         --- Remove from Build Instances
10247
         DELETE FROM BUILD_INSTANCES bi
10248
               WHERE bi.pv_id = pvid;
3959 dpurdie 10249
 
1373 dpurdie 10250
         --- Remove from Build Order
10251
         DELETE FROM build_order bo
10252
               WHERE bo.pv_id = pvid;
10253
 
3959 dpurdie 10254
         --- Remove from Licencing
10255
         PK_LICENCING.REMOVE_ALL_LICENCING( pvid, 0 );
10256
 
1373 dpurdie 10257
         --- Remove from Note Manager
10258
         DELETE FROM note_manager nm
10259
               WHERE nm.nid = pvid;
10260
 
10261
         --- Remove from Action log
10262
         DELETE FROM action_log al
10263
               WHERE al.pv_id = pvid;
3959 dpurdie 10264
 
10265
         --- Remove from Do Not Ripple
10266
         DELETE FROM DO_NOT_RIPPLE dnr
10267
               WHERE dnr.PV_ID = pvid;
6031 dpurdie 10268
 
10269
        --- Remove from SDK
10270
        DELETE FROM SDK_CONTENT sc
10271
            WHERE sc.PV_ID = pvid;
10272
 
10273
        -- Remove from daemon Instruction
10274
        DELETE FROM DAEMON_INSTRUCTIONS di
10275
          WHERE di.PV_ID = pvid;
3959 dpurdie 10276
 
10277
         --- Remove from Advisory Ripple
10278
         DELETE FROM ADVISORY_RIPPLE ar
10279
               WHERE ar.PV_ID = pvid;
10280
 
10281
         --- Remove from Jira Issues
10282
         DELETE FROM JIRA_ISSUES jira
10283
               WHERE jira.PV_ID = pvid;
10284
 
10285
         --- Remove from Package Metrics
10286
         DELETE FROM package_metrics pm
10287
              WHERE pm.pv_id = pvid;
10288
 
10289
         -- Delete from Pegged Versions
10290
         DELETE FROM pegged_versions pegv
10291
              WHERE pegv.pv_id = pvid;
10292
 
1373 dpurdie 10293
         --- Finally Remove From Package Versions
10294
         --- Get Package name
6031 dpurdie 10295
         SELECT pv.pkg_id, pv.LAST_PV_ID
10296
           INTO pkgid, lastPvid
1373 dpurdie 10297
           FROM package_versions pv
10298
          WHERE pv.pv_id = pvid;
6031 dpurdie 10299
 
10300
          --- Relink packages last_pv_id
10301
          IF lastPvid is NOT NULL AND pvid !=  lastPvid THEN
10302
            UPDATE package_versions pv
10303
               SET pv.LAST_PV_ID = lastPvid
10304
             WHERE pv.LAST_PV_ID = pvid;
10305
          END IF;
10306
 
10307
         --- Delete the version
1373 dpurdie 10308
         DELETE FROM package_versions pv
10309
               WHERE pv.pv_id = pvid;
10310
 
10311
         --- Remove package name if not used any more
10312
         SELECT COUNT (pv.pv_id)
10313
           INTO ROWCOUNT
10314
           FROM package_versions pv
10315
          WHERE pv.pkg_id = pkgid;
10316
 
10317
         IF ROWCOUNT < 1
10318
         THEN
10319
            DELETE FROM PACKAGES pkg
10320
                  WHERE pkg.pkg_id = pkgid;
10321
         END IF;
10322
      END IF;
10323
   END;
10324
 
10325
/*-------------------------------------------------------------------------------------------------------*/
6031 dpurdie 10326
    PROCEDURE destroy_package_extended (
10327
      pvid               IN       NUMBER,
10328
      rtagid             IN       NUMBER,
10329
      overridewarnings   IN       NUMBER DEFAULT 0,
10330
      RESULTS            OUT      SYS_REFCURSOR
10331
      -- pvid - The pvid of the package to delete
10332
 
10333
      -- rtagid - Package is allowed to exist in this release
10334
 
10335
      -- overridewarnings
10336
      --    0   - Do not delete, just test
10337
      --    1   - Delete package if there are only advisory warnings
10338
      --    2   - Delete package even if there are FoolHardy warnings
10339
 
10340
      -- Results [OUTPUT]
10341
      --    Message Text, Error Level
10342
      --    Where error Level is
10343
      --        'A' - Advisory.
10344
      --        'F' - Foolhardy. Will damage releases, SBOMs and other packages
10345
   )
10346
   IS
10347
      LOCKED     CHAR;
10348
      pkgid      NUMBER;
10349
      ROWCOUNT   NUMBER;
10350
      lastPvid   NUMBER;
10351
 
10352
      vartbl RELMGR_PKG_DESTROY_ERR_TAB_T := RELMGR_PKG_DESTROY_ERR_TAB_T();
10353
      ii NUMBER;
10354
 
10355
      -- Add message to table that will be returned
10356
      PROCEDURE ADD_MESSAGE( p1 IN VARCHAR2, p2 IN CHAR)
10357
      IS
10358
      BEGIN
10359
        ii := ii + 1;
10360
        vartbl.extend;
10361
        vartbl(ii) := RELMGR_PKG_DESTROY_ERR_T(p1,UPPER(p2));
10362
      END; 
10363
 
10364
   BEGIN
10365
      /*
10366
      || This will destroy all package details from database.
10367
      || It will only be used to remove unwanted work in progress packages,
10368
      || or mistaken versions
10369
      */
10370
 
10371
      /*--------------- Business Rules Here -------------------*/
10372
      ii := 0;
10373
 
10374
      IF overridewarnings < 1
10375
      THEN
10376
         -- Package must not be official
10377
         SELECT pv.dlocked
10378
           INTO LOCKED
10379
           FROM package_versions pv
10380
          WHERE pv.pv_id = pvid;
10381
 
10382
         IF LOCKED = 'Y'
10383
         THEN
10384
            ADD_MESSAGE ('Package Version is locked and released.', 'A');
10385
         END IF;
10386
 
10387
         -- Cannot remove if a WIP
10388
         SELECT COUNT (pv_id)
10389
           INTO ROWCOUNT
10390
           FROM work_in_progress wip
10391
          WHERE wip.pv_id = pvid AND wip.RTAG_ID != rtagid;
10392
 
10393
         IF ROWCOUNT > 0
10394
         THEN
10395
            ADD_MESSAGE ('Version is in use as a WIP.', 'A');
10396
         END IF;
10397
 
10398
         -- Cannot remove if a PENDING
10399
         SELECT COUNT (pv_id)
10400
           INTO ROWCOUNT
10401
           FROM planned pl
10402
          WHERE pl.pv_id = pvid AND pl.RTAG_ID != rtagid;
10403
 
10404
         IF ROWCOUNT > 0
10405
         THEN
10406
            ADD_MESSAGE ('Version is Pending in a release.', 'A');
10407
         END IF;
10408
 
10409
         -- Cannot remove if in a Release
10410
         SELECT COUNT (pv_id)
10411
           INTO ROWCOUNT
10412
           FROM release_content rc
10413
          WHERE pv_id = pvid AND rc.RTAG_ID != rtagid;
10414
 
10415
         IF ROWCOUNT > 1
10416
         THEN
10417
            ADD_MESSAGE ('Version is a part of another Releases.', 'A');
10418
         END IF;
10419
 
10420
 
10421
         -- Cannot remove if a Daemon Instruction
10422
         SELECT COUNT (di.pv_id)
10423
           INTO ROWCOUNT
10424
           FROM DAEMON_INSTRUCTIONS di
10425
          WHERE di.pv_id = pvid;
10426
 
10427
         IF ROWCOUNT > 0
10428
         THEN
10429
            ADD_MESSAGE ('Version has outstanding Daemon Instruction.', 'A');
10430
         END IF;
10431
 
10432
      END IF;
10433
 
10434
      IF overridewarnings < 2
10435
      THEN
10436
         -- Cannot remove if used in BOMs
10437
         SELECT COUNT (osc.prod_id)
10438
           INTO ROWCOUNT
10439
           FROM deployment_manager.os_contents osc
10440
          WHERE osc.prod_id = pvid;
10441
 
10442
         IF ROWCOUNT > 0
10443
         THEN
10444
            ADD_MESSAGE ('Version is part of Bill-Of-Material (BOM) in Deployment Manager.', 'F');
10445
         END IF;
10446
 
10447
         -- Cannot remove if used in BOMs - Base Env
10448
         SELECT COUNT (bec.prod_id)
10449
           INTO ROWCOUNT
10450
           FROM deployment_manager.base_env_contents bec
10451
          WHERE bec.prod_id = pvid;
10452
 
10453
         IF ROWCOUNT > 0
10454
         THEN
10455
            ADD_MESSAGE ('Version is part of Base Environment in Deployment Manager.', 'F');
10456
         END IF;
10457
 
10458
         -- Cannot remove if used in an SDK
10459
         SELECT COUNT (sc.pv_id)
10460
           INTO ROWCOUNT
10461
           FROM sdk_content sc
10462
          WHERE sc.pv_id = pvid;
10463
 
10464
         IF ROWCOUNT > 0
10465
         THEN
10466
            ADD_MESSAGE ('Version is part of an SDK', 'F');
10467
         END IF;
10468
 
10469
         -- Cannot remove if Referenced as build dependency
10470
         SELECT COUNT (dep.pv_id)
10471
           INTO ROWCOUNT
10472
           FROM package_dependencies dep
10473
          WHERE dep.dpv_id = pvid;
10474
 
10475
         IF ROWCOUNT > 0
10476
         THEN
10477
            ADD_MESSAGE ('Version is referenced by a package as build dependency.', 'F');
10478
         END IF;
10479
 
10480
         -- Cannot remove if Referenced as runtime dependency
10481
         SELECT COUNT (rd.pv_id)
10482
           INTO ROWCOUNT
10483
           FROM runtime_dependencies rd
10484
          WHERE rd.rtd_id = pvid;
10485
 
10486
         IF ROWCOUNT > 0
10487
         THEN
10488
            ADD_MESSAGE ('Version is referenced by other package as a runtime dependency.', 'F');
10489
         END IF;
10490
 
10491
         -- Cannot remove if Referenced as patch
10492
         SELECT COUNT (pp.pv_id)
10493
           INTO ROWCOUNT
10494
           FROM package_patches pp
10495
          WHERE pp.patch_id = pvid;
10496
 
10497
         IF ROWCOUNT > 0
10498
         THEN
10499
            ADD_MESSAGE ('Version is used as a patch by other package.', 'F');
10500
         END IF;
10501
 
10502
      END IF;
10503
 
10504
/*-------------------------------------------------------*/
10505
      IF (ii = 0 AND overridewarnings > 0)
10506
      THEN
10507
         --- Remove From Work in Progress
10508
         DELETE FROM work_in_progress wip
10509
               WHERE wip.pv_id = pvid;
10510
 
10511
         --- Remove From Pending
10512
         DELETE FROM planned pl
10513
               WHERE pl.pv_id = pvid;
10514
 
10515
         --- Remove From Released area
10516
         DELETE FROM release_content rc
10517
               WHERE rc.pv_id = pvid;
10518
 
10519
         ---Remove From Package Processes
10520
         DELETE FROM package_processes pp
10521
               WHERE pp.pv_id = pvid;
10522
 
10523
         --- Remove Dependencies
10524
         DELETE FROM package_dependencies dep
10525
               WHERE dep.pv_id = pvid;
10526
 
10527
         DELETE FROM package_dependencies dep
10528
               WHERE dep.dpv_id = pvid;
10529
 
10530
         --- Remove Runtime dependencies
10531
         DELETE FROM runtime_dependencies rtd
10532
               WHERE rtd.pv_id = pvid;
10533
 
10534
         DELETE FROM runtime_dependencies rtd
10535
               WHERE rtd.rtd_id = pvid;
10536
 
10537
         --- Remove components
10538
         DELETE FROM product_components pc
10539
               WHERE pc.pv_id = pvid;
10540
 
10541
         DELETE FROM release_components rc
10542
               WHERE rc.pv_id = pvid;
10543
 
10544
         --- Remove From Notification History
10545
         DELETE FROM notification_history nh
10546
               WHERE nh.pv_id = pvid;
10547
 
10548
         --- Remove From Ignore Warnings
10549
         DELETE FROM ignore_warnings iw
10550
               WHERE iw.pv_id = pvid;
10551
 
10552
         --- Remove From Additional Notes
10553
         DELETE FROM additional_notes an
10554
               WHERE an.pv_id = pvid;
10555
 
10556
         --- Remove From CQ Issues
10557
         DELETE FROM cq_issues cq
10558
               WHERE cq.pv_id = pvid;
10559
 
10560
         --- Remove from Package Patches
10561
         DELETE FROM package_patches pp
10562
               WHERE pp.pv_id = pvid;
10563
 
10564
         DELETE FROM package_patches pp
10565
               WHERE pp.patch_id = pvid;
10566
 
10567
         --- Remove From Package Documents
10568
         DELETE FROM package_documents pd
10569
               WHERE pd.pv_id = pvid;
10570
 
10571
         --- Remove from Code Review
10572
         DELETE FROM code_reviews cr
10573
               WHERE cr.pv_id = pvid;
10574
 
10575
         --- Remove from Code Review URL
10576
         DELETE FROM code_review_url cru
10577
               WHERE cru.pv_id = pvid;
10578
 
10579
         --- Remove from Unit Tests
10580
         DELETE FROM unit_tests ut
10581
               WHERE ut.pv_id = pvid;
10582
 
10583
         --- Remove from Package BuildEnv
10584
         DELETE FROM package_build_env pbe
10585
               WHERE pbe.pv_id = pvid;
10586
 
10587
         --- Remove from Package Build Info
10588
         DELETE FROM package_build_info pbi
10589
               WHERE pbi.pv_id = pvid;
10590
 
10591
        --- Remove from Build Plan
10592
         DELETE FROM BUILD_PLAN bp
10593
               WHERE bp.pv_id = pvid;
10594
 
10595
         --- Remove from Build Instances
10596
         DELETE FROM BUILD_INSTANCES bi
10597
               WHERE bi.pv_id = pvid;
10598
 
10599
         --- Remove from Build Order
10600
         DELETE FROM build_order bo
10601
               WHERE bo.pv_id = pvid;
10602
 
10603
         --- Remove from Licencing
10604
         PK_LICENCING.REMOVE_ALL_LICENCING( pvid, 0 );
10605
 
10606
         --- Remove from Note Manager
10607
         DELETE FROM note_manager nm
10608
               WHERE nm.nid = pvid;
10609
 
10610
         --- Remove from Action log
10611
         DELETE FROM action_log al
10612
               WHERE al.pv_id = pvid;
10613
 
10614
         --- Remove from Do Not Ripple
10615
         DELETE FROM DO_NOT_RIPPLE dnr
10616
               WHERE dnr.PV_ID = pvid;
10617
 
10618
        --- Remove from SDK
10619
        DELETE FROM SDK_CONTENT sc
10620
            WHERE sc.PV_ID = pvid;
10621
 
10622
        -- Remove from daemon Instruction
10623
        DELETE FROM DAEMON_INSTRUCTIONS di
10624
          WHERE di.PV_ID = pvid;
10625
 
10626
         --- Remove from Advisory Ripple
10627
         DELETE FROM ADVISORY_RIPPLE ar
10628
               WHERE ar.PV_ID = pvid;
10629
 
10630
         --- Remove from Jira Issues
10631
         DELETE FROM JIRA_ISSUES jira
10632
               WHERE jira.PV_ID = pvid;
10633
 
10634
         --- Remove from Package Metrics
10635
         DELETE FROM package_metrics pm
10636
              WHERE pm.pv_id = pvid;
10637
 
10638
         -- Delete from Pegged Versions
10639
         DELETE FROM pegged_versions pegv
10640
              WHERE pegv.pv_id = pvid;
10641
 
10642
         --- Finally Remove From Package Versions
10643
         --- Get Package name
10644
         SELECT pv.pkg_id, pv.LAST_PV_ID
10645
           INTO pkgid, lastPvid
10646
           FROM package_versions pv
10647
          WHERE pv.pv_id = pvid;
10648
 
10649
          --- Relink packages last_pv_id
10650
          IF lastPvid is NOT NULL AND pvid !=  lastPvid THEN
10651
            UPDATE package_versions pv
10652
               SET pv.LAST_PV_ID = lastPvid
10653
             WHERE pv.LAST_PV_ID = pvid;
10654
          END IF;
10655
 
10656
         --- Delete the version
10657
         DELETE FROM package_versions pv
10658
               WHERE pv.pv_id = pvid;
10659
 
10660
         --- Remove package name if not used any more
10661
         SELECT COUNT (pv.pv_id)
10662
           INTO ROWCOUNT
10663
           FROM package_versions pv
10664
          WHERE pv.pkg_id = pkgid;
10665
 
10666
         IF ROWCOUNT < 1
10667
         THEN
10668
            DELETE FROM PACKAGES pkg
10669
                  WHERE pkg.pkg_id = pkgid;
10670
         END IF;
10671
      END IF;
10672
 
10673
      --- Return table of reasons the package shouldn't be destroyed
10674
       open RESULTS for select * from table(vartbl);
10675
 
10676
   END;
10677
 
10678
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 10679
   PROCEDURE new_patch (
10680
      snewpatchversion   IN       package_versions.pkg_version%TYPE,
10681
      nparentpvid        IN       NUMBER,
10682
      spatchidlist       IN       VARCHAR2,
10683
      nuserid            IN       NUMBER,
10684
      returnpatchid      OUT      NUMBER
10685
   )
10686
   IS
10687
      patchpv_id           NUMBER;
10688
      parpkg_id            NUMBER;
10689
      lastinstallorder     NUMBER;
10690
      ispatchdlocked       package_versions.dlocked%TYPE;
10691
      ssv_mm               package_versions.v_mm%TYPE;
10692
      ssv_nmm              package_versions.v_nmm%TYPE;
10693
      ssv_ext              package_versions.v_ext%TYPE;
3959 dpurdie 10694
      opatchdepcollector   relmgr_number_tab_t  := relmgr_number_tab_t ();
1373 dpurdie 10695
 
10696
      CURSOR parent_cur
10697
      IS
10698
         SELECT pv.*, pkg.pkg_name
10699
           FROM package_versions pv, PACKAGES pkg
10700
          WHERE pv.pv_id = nparentpvid AND pv.pkg_id = pkg.pkg_id;
10701
 
3959 dpurdie 10702
      parent_rec parent_cur%ROWTYPE;
1373 dpurdie 10703
 
10704
      CURSOR patch_cur
10705
      IS
10706
         SELECT pv.*, pg.pkg_name
10707
           FROM package_versions pv, PACKAGES pg
10708
          WHERE pv.pkg_id = parpkg_id
10709
            AND pv.pkg_version = snewpatchversion
10710
            AND pv.pkg_id = pg.pkg_id;
10711
 
3959 dpurdie 10712
      patch_rec  patch_cur%ROWTYPE;
1373 dpurdie 10713
 
10714
      CURSOR releases_cur
10715
      IS
10716
         SELECT rc.pv_id
10717
           FROM release_content rc
10718
          WHERE rc.pv_id = patch_rec.pv_id;
10719
 
3959 dpurdie 10720
      releases_rec releases_cur%ROWTYPE;
1373 dpurdie 10721
   BEGIN
10722
      -- Get Last Install Order
10723
      SELECT COUNT (*)
10724
        INTO lastinstallorder
10725
        FROM package_patches pp
10726
       WHERE pp.pv_id = nparentpvid;
10727
 
10728
      -- Get parent details
10729
      OPEN parent_cur;
10730
 
10731
      FETCH parent_cur
10732
       INTO parent_rec;
10733
 
10734
      parpkg_id := parent_rec.pkg_id;
10735
 
10736
      -- Find if patch exists in database
10737
      OPEN patch_cur;
10738
 
10739
      FETCH patch_cur
10740
       INTO patch_rec;
10741
 
10742
      -- Parent must be official
10743
      IF parent_rec.dlocked = 'Y'
10744
      THEN
10745
         IF patch_cur%NOTFOUND
10746
         THEN
10747
            ispatchdlocked := 'N';
10748
 
10749
            -- Create new patch version --
10750
            SELECT seq_pv_id.NEXTVAL
10751
              INTO patchpv_id
10752
              FROM DUAL;
10753
 
10754
            split_version (snewpatchversion, ssv_mm, ssv_nmm, ssv_ext);
10755
 
10756
            INSERT INTO package_versions
10757
                        (pv_id, pkg_id, pkg_version,
10758
                         dlocked, created_stamp, creator_id,
10759
                         modified_stamp, modifier_id, v_mm, v_nmm, v_ext,
10760
                         src_path,
10761
                         pv_description,
10762
                         owner_id, is_patch, last_pv_id, build_type, is_build_env_required, bs_id,
3959 dpurdie 10763
                         is_autobuildable, ripple_field
1373 dpurdie 10764
                        )
10765
                 VALUES (patchpv_id, parpkg_id, snewpatchversion,
10766
                         ispatchdlocked, ora_sysdate, nuserid,
10767
                         ora_sysdatetime, nuserid, ssv_mm, ssv_nmm, ssv_ext,
10768
                         parent_rec.src_path,
10769
                            'This is a patch to '
10770
                         || parent_rec.pkg_name
10771
                         || ' '
10772
                         || parent_rec.pkg_version,
3959 dpurdie 10773
                         nuserid, 'Y', patchpv_id, 'M', 'N', 3, 'N', parent_rec.ripple_field
1373 dpurdie 10774
                        );
10775
 
10776
            INSERT INTO package_patches
10777
                        (pv_id, patch_id, install_order)
3959 dpurdie 10778
                (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
10779
                        lastinstallorder + 1 AS install_order
10780
                   FROM package_versions pv
10781
                  WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
1373 dpurdie 10782
 
10783
            /* LOG ACTION */
10784
            log_action (patchpv_id,
10785
                        'new_version',
10786
                        nuserid,
10787
                        'Patch version created: ' || snewpatchversion
10788
                       );
10789
            log_action (nparentpvid,
10790
                        'patch_add',
10791
                        nuserid,
10792
                        'New patch created and attached: ' || snewpatchversion
10793
                       );
10794
         ELSE
10795
            patchpv_id := patch_rec.pv_id;
10796
            ispatchdlocked := patch_rec.dlocked;
10797
 
10798
            -- Find if pv_id exists in release content (i.e. it cannot be a patch)
10799
            OPEN releases_cur;
10800
 
10801
            FETCH releases_cur
10802
             INTO releases_rec;
10803
 
10804
            IF releases_cur%NOTFOUND
10805
            THEN
10806
               -- This pv_id is trully a patch, hence add Y to column IS_PATCH
10807
               UPDATE package_versions
10808
                  SET is_patch = 'Y'
10809
                WHERE pv_id = patchpv_id;
10810
 
10811
               INSERT INTO package_patches
10812
                           (pv_id, patch_id, install_order)
3959 dpurdie 10813
                   (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
10814
                           lastinstallorder + 1 AS install_order
10815
                      FROM package_versions pv
10816
                     WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
1373 dpurdie 10817
            END IF;
10818
 
10819
            CLOSE releases_cur;
10820
 
10821
            /* LOG ACTION */
10822
            log_action (nparentpvid,
10823
                        'patch_add',
10824
                        nuserid,
10825
                           'Patch version was found and attached: '
10826
                        || snewpatchversion
10827
                       );
10828
         END IF;
10829
      END IF;
10830
 
10831
      /* Create Patch Dependencies */
10832
      opatchdepcollector := in_list_number (spatchidlist);
10833
 
10834
      -- Make sure patch is unofficial before altering its dependencies
10835
      IF (opatchdepcollector.COUNT > 0) AND (ispatchdlocked = 'N')
10836
      THEN
10837
         -- Delete Existing Dependencies
10838
         DELETE FROM package_dependencies dep
10839
               WHERE dep.pv_id = patchpv_id;
10840
 
10841
         -- Insert new dependencies
10842
         INSERT INTO package_dependencies
10843
                     (pv_id, dpv_id, pkg_id, dpkg_id, build_type)
3959 dpurdie 10844
              SELECT patchpv_id AS pv_id, pv.pv_id AS dpv_id,
10845
                     parpkg_id AS pkg_id, pv.pkg_id AS dpkg_id,
10846
                     'L' AS build_type
10847
                FROM package_versions pv
10848
               WHERE pv.pv_id IN (
1373 dpurdie 10849
                      SELECT *
10850
                        FROM TABLE
10851
                                (CAST
10852
                                    (opatchdepcollector AS relmgr_number_tab_t)
10853
                                ));
10854
      END IF;
10855
 
10856
      -- Return patch_id
10857
      returnpatchid := patchpv_id;
10858
 
10859
      CLOSE parent_cur;
10860
 
10861
      CLOSE patch_cur;
10862
   EXCEPTION
10863
      WHEN DUP_VAL_ON_INDEX
10864
      THEN
10865
         raise_application_error (-20000,
10866
                                     'Patch version '
10867
                                  || snewpatchversion
10868
                                  || ' already exist.'
10869
                                 );
10870
   END;
10871
 
10872
/*-------------------------------------------------------------------------------------------------------*/
10873
   PROCEDURE obsolete_patch (
10874
      patchid            IN   NUMBER,
10875
      isobsolete         IN   CHAR,
10876
      obsoletecomments   IN   VARCHAR2,
10877
      userid             IN   NUMBER
10878
   )
10879
   IS
10880
   BEGIN
10881
      -- Update patch
10882
      UPDATE package_versions pv
10883
         SET pv.is_obsolete = isobsolete,
10884
             pv.obsolete_comments = obsoletecomments
10885
       WHERE pv.pv_id = patchid;
10886
 
10887
      /*
10888
      -- Update patch children
10889
      UPDATE PACKAGE_VERSIONS pv SET
10890
      pv.IS_OBSOLETE = IsObsolete,
10891
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10892
      WHERE pv.PV_ID IN (
10893
                     SELECT DISTINCT dep.DPV_ID
10894
                       FROM PACKAGE_DEPENDENCIES dep
10895
                      WHERE dep.PV_ID = PatchId
10896
                     );
10897
 
10898
 
10899
      -- Update patch parent
10900
      UPDATE PACKAGE_VERSIONS pv SET
10901
      pv.IS_OBSOLETE = IsObsolete,
10902
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10903
      WHERE pv.PV_ID IN (
10904
                     SELECT DISTINCT dep.PV_ID
10905
                       FROM PACKAGE_DEPENDENCIES dep
10906
                      WHERE dep.DPV_ID = PatchId
10907
                     );
10908
 
3959 dpurdie 10909
      */
1373 dpurdie 10910
 
10911
      /* LOG ACTION */
10912
      IF isobsolete IS NOT NULL
10913
      THEN
10914
         log_action (patchid,
10915
                     'patch_obsolete',
10916
                     userid,
10917
                     'Obsolete patch. ' || obsoletecomments
10918
                    );
10919
      ELSE
10920
         log_action (patchid,
10921
                     'patch_obsolete',
10922
                     userid,
10923
                     'Undo patch obsolete.'
10924
                    );
10925
      END IF;
10926
   END;
10927
 
10928
/*-------------------------------------------------------------------------------------------------------*/
10929
   PROCEDURE obsolete_patches (
10930
      spatchidlist       IN   VARCHAR2,
10931
      isobsolete         IN   CHAR,
10932
      obsoletecomments   IN   VARCHAR2,
10933
      userid             IN   NUMBER
10934
   )
10935
   IS
10936
   BEGIN
10937
      /*--------------- Business Rules Here -------------------*/
10938
      IF spatchidlist IS NULL
10939
      THEN
10940
         raise_application_error (-20000,
10941
                                  'Please select one or more Patches.'
10942
                                 );
10943
      END IF;
10944
 
10945
/*-------------------------------------------------------*/
10946
 
10947
      -- Update patch
10948
      UPDATE package_versions pv
10949
         SET pv.is_obsolete = isobsolete,
10950
             pv.obsolete_comments = obsoletecomments
10951
       WHERE pv.pv_id IN (
10952
                SELECT *
10953
                  FROM THE
10954
                          (SELECT CAST
10955
                                     (in_list_number (spatchidlist) AS relmgr_number_tab_t
10956
                                     )
10957
                             FROM DUAL
10958
                          ));
3959 dpurdie 10959
      /*
10960
      -- Update patch children
10961
      UPDATE PACKAGE_VERSIONS pv SET
10962
      pv.IS_OBSOLETE = IsObsolete,
10963
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10964
      WHERE pv.PV_ID IN (
10965
                     SELECT DISTINCT dep.DPV_ID
10966
                       FROM PACKAGE_DEPENDENCIES dep
10967
                      WHERE dep.PV_ID = PatchId
10968
                     );
1373 dpurdie 10969
 
10970
 
3959 dpurdie 10971
      -- Update patch parent
10972
      UPDATE PACKAGE_VERSIONS pv SET
10973
      pv.IS_OBSOLETE = IsObsolete,
10974
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10975
      WHERE pv.PV_ID IN (
10976
                     SELECT DISTINCT dep.PV_ID
10977
                       FROM PACKAGE_DEPENDENCIES dep
10978
                      WHERE dep.DPV_ID = PatchId
10979
                     );
1373 dpurdie 10980
 
10981
      */
10982
 
3959 dpurdie 10983
      /* LOG ACTION
10984
      IF IsObsolete IS NOT NULL THEN
1373 dpurdie 10985
         Log_Action ( PatchId, 'patch_obsolete', UserId,
3959 dpurdie 10986
                     'Obsolete patch. '|| ObsoleteComments );
10987
      ELSE
10988
         Log_Action ( PatchId, 'patch_obsolete', UserId,
10989
                     'Undo patch obsolete.' );
10990
      END IF;  */
1373 dpurdie 10991
   END;
10992
 
10993
/*-------------------------------------------------------------------------------------------------------*/
10994
   PROCEDURE add_process (
10995
      nprocid         IN   processes.proc_id%TYPE,
10996
      shealthtag      IN   processes.proc_name%TYPE,
10997
      sprocdesc       IN   processes.proc_description%TYPE,
10998
      scmdinterface   IN   processes.run_as%TYPE,
10999
      spkgowner       IN   processes.pkg_owner%TYPE,
11000
      sisinterface    IN   processes.is_interface%TYPE,
11001
      npvid           IN   package_processes.pv_id%TYPE,
11002
      nuserid         IN   NUMBER
11003
   )
11004
   IS
11005
      pkgname   VARCHAR2 (100);
3959 dpurdie 11006
 
1373 dpurdie 11007
   BEGIN
11008
      INSERT INTO processes
11009
                  (proc_id, proc_name, proc_description, run_as, pkg_owner,
11010
                   is_interface
11011
                  )
11012
           VALUES (nprocid, shealthtag, sprocdesc, scmdinterface, spkgowner,
11013
                   sisinterface
11014
                  );
11015
 
11016
      pk_package.add_package_process (nprocid, npvid, nuserid);
11017
   END;
11018
 
11019
/*-------------------------------------------------------------------------------------------------------*/
11020
   PROCEDURE add_package_process (
11021
      nprocidlist   IN   VARCHAR2,
11022
      npvid         IN   package_processes.pv_id%TYPE,
11023
      nuserid       IN   NUMBER
11024
   )
11025
   IS
11026
      processname   VARCHAR2 (4000);
11027
 
11028
      CURSOR proc_cur
11029
      IS
11030
         SELECT prc.proc_id
11031
           FROM processes prc
11032
          WHERE prc.proc_id IN (
11033
                   SELECT *
11034
                     FROM THE
11035
                             (SELECT CAST
11036
                                        (in_list_number (nprocidlist) AS relmgr_number_tab_t
11037
                                        )
11038
                                FROM DUAL
11039
                             ));
11040
 
3959 dpurdie 11041
      proc_rec  proc_cur%ROWTYPE;
1373 dpurdie 11042
   BEGIN
11043
      OPEN proc_cur;
11044
 
11045
      FETCH proc_cur
11046
       INTO proc_rec;
11047
 
11048
      WHILE proc_cur%FOUND
11049
      LOOP
3959 dpurdie 11050
         INSERT INTO package_processes (proc_id, pv_id)
11051
              VALUES (proc_rec.proc_id, npvid);
1373 dpurdie 11052
 
11053
         SELECT prc.proc_name
11054
           INTO processname
11055
           FROM processes prc
11056
          WHERE prc.proc_id = proc_rec.proc_id;
11057
 
11058
         -- Log Action --
11059
         log_action (npvid,
11060
                     'process_add',
11061
                     nuserid,
11062
                     'Added process with health tag ' || processname
11063
                    );
11064
 
11065
         FETCH proc_cur
11066
          INTO proc_rec;
11067
      END LOOP;
3959 dpurdie 11068
 
11069
      CLOSE proc_cur;
1373 dpurdie 11070
   END;
11071
 
11072
/*-------------------------------------------------------------------------------------------------------*/
11073
   PROCEDURE remove_process (
11074
      nprocid   IN   package_processes.proc_id%TYPE,
11075
      npvid     IN   package_processes.pv_id%TYPE,
11076
      nuserid   IN   NUMBER
11077
   )
11078
   IS
11079
      processname   VARCHAR2 (4000);
11080
   BEGIN
11081
      SELECT prc.proc_name
11082
        INTO processname
11083
        FROM processes prc
11084
       WHERE prc.proc_id = nprocid;
11085
 
11086
      DELETE FROM package_processes
11087
            WHERE proc_id = nprocid AND pv_id = npvid;
11088
 
11089
      -- Log Action --
11090
      log_action (npvid,
11091
                  'process_remove',
11092
                  nuserid,
11093
                  'Removed process with health tag ' || processname
11094
                 );
11095
   END;
11096
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11097
   /*
11098
   ** Author: Rupesh Solanki
11099
   ** Purpose: To move package versions from one release to another
11100
   ** Release: 4th September 2006
11101
   */
11102
   PROCEDURE move_package (
11103
      npvid        IN package_versions.pv_id%TYPE,
11104
      nrtagid      IN release_tags.rtag_id%TYPE,
11105
      nnewrtagid   IN release_tags.rtag_id%TYPE,
11106
      nuserid      IN NUMBER
11107
   )
11108
   IS
1373 dpurdie 11109
 
3959 dpurdie 11110
      oldrtag_name VARCHAR2(4000);newrtag_name VARCHAR2(4000);
11111
 
11112
   BEGIN
11113
      SELECT rtag_name into oldrtag_name
11114
      FROM RELEASE_TAGS
11115
      WHERE rtag_id = nrtagid;
11116
 
11117
      SELECT rtag_name into newrtag_name
11118
      FROM RELEASE_TAGS
11119
      WHERE rtag_id = nnewrtagid;
11120
 
11121
      /* Table Work In Progress*/
11122
      UPDATE WORK_IN_PROGRESS
11123
      SET RTAG_ID = nnewrtagid
11124
      WHERE RTAG_ID = nrtagid
11125
      AND PV_ID = npvid;
11126
 
11127
      /* Table PLANNED*/
11128
      UPDATE PLANNED
11129
      SET RTAG_ID = nnewrtagid
11130
      WHERE RTAG_ID = nrtagid
11131
      AND PV_ID = npvid;
11132
 
11133
      /* Table PEGGED_VERSIONS */
11134
      DELETE FROM PEGGED_VERSIONS pegv
11135
      WHERE pegv.RTAG_ID = nrtagid
11136
      AND pegv.PV_ID = npvid;
11137
 
11138
      /* Table ADVISORY_RIPPLE*/
11139
      DELETE FROM ADVISORY_RIPPLE
11140
      WHERE RTAG_ID = nrtagid
11141
      AND PV_ID = npvid;
11142
 
11143
 
1373 dpurdie 11144
      -- Log Action --
11145
      log_action (npvid,
11146
                  'move_package_version',
11147
                  nuserid,
11148
                  'Moved package version from ' || oldrtag_name || ' to ' || newrtag_name
3959 dpurdie 11149
                 );
11150
   END;
11151
 
1373 dpurdie 11152
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11153
   /*
11154
   ** Author: Rupesh Solanki
11155
   ** Purpose: To modify the product state from integration to test to deployment
11156
   ** Release: 25th January 2006
11157
   */
11158
   PROCEDURE modify_product_state (
11159
      npvid    IN package_versions.pv_id%TYPE,
11160
      nrtagid  IN release_tags.rtag_id%TYPE,
11161
      nstateid IN product_states.state_id%TYPE,
11162
      nuserid  IN NUMBER
1373 dpurdie 11163
   ) IS
3959 dpurdie 11164
 
11165
      sStateName VARCHAR2(4000);
11166
      sRtagName VARCHAR2(4000);
11167
 
11168
   BEGIN
11169
 
11170
      UPDATE RELEASE_CONTENT
11171
      SET PRODUCT_STATE = nstateid
11172
      WHERE PV_ID = npvid
11173
      AND RTAG_ID = nrtagid;
11174
 
11175
 
11176
      SELECT STATE INTO sStateName
11177
      FROM PRODUCT_STATES
11178
      WHERE STATE_ID = nstateid;
11179
 
11180
      SELECT RTAG_NAME into sRtagName
11181
      FROM RELEASE_TAGS
11182
      WHERE RTAG_ID = nrtagid;
11183
 
11184
 
11185
      -- Log Action --
11186
      log_action (npvid,
11187
                  'modify_product_state',
11188
                     nuserid,
11189
                     sStateName || ' in '|| sRtagName
11190
                  );
11191
   END;
11192
/*-------------------------------------------------------------------------------------------------------*/
11193
   /*
11194
   ** Author: Jeremy Tweddle
11195
   ** Date: 24/Aug/2007
11196
   */
11197
   PROCEDURE add_code_review_url (
11198
      npvid           IN    NUMBER,
11199
      nprojid         IN    NUMBER,
11200
      surl            IN    VARCHAR2,
11201
      sreason         IN    VARCHAR2,
4553 dpurdie 11202
      ddateofreview   IN    VARCHAR2
3959 dpurdie 11203
   ) IS
11204
 
11205
      ncrid NUMBER;
11206
 
11207
   BEGIN
11208
 
11209
      SELECT seq_cr_id.NEXTVAL INTO ncrid FROM DUAL;
11210
 
4553 dpurdie 11211
      INSERT INTO code_review_url ( cr_id, pv_id, proj_id, url, reason, date_of_review, last_modified )
11212
      VALUES ( ncrid, npvid, nprojid, surl, sreason, TO_DATE( ddateofreview,'DD/MM/YYYY' ), ora_sysdate );
3959 dpurdie 11213
 
11214
   END;
11215
/*-------------------------------------------------------------------------------------------------------*/
11216
   /*
11217
   ** Author: Jeremy Tweddle
11218
   ** Date: 22/Aug/2007
11219
   */
11220
   PROCEDURE update_code_review_url (
11221
      ncrid           IN    NUMBER,
11222
      nprojid         IN    NUMBER,
11223
      surl            IN    VARCHAR2,
4553 dpurdie 11224
      sreason         IN    VARCHAR2,
11225
      ddateofreview   IN    VARCHAR2
3959 dpurdie 11226
   ) IS
11227
 
11228
   BEGIN
11229
 
11230
      UPDATE code_review_url
11231
      SET url = surl,
11232
          proj_id = nprojid,
11233
          reason = sreason,
6031 dpurdie 11234
          date_of_review = TO_DATE( ddateofreview,'DD/MM/YYYY' ),
3959 dpurdie 11235
          last_modified = ora_sysdate
11236
      WHERE cr_id = ncrid;
11237
 
11238
   END;
4553 dpurdie 11239
 
3959 dpurdie 11240
/*-------------------------------------------------------------------------------------------------------*/
11241
   /*
11242
   ** Author: Jeremy Tweddle
11243
   ** Date: 22/Aug/2007
11244
   */
11245
   PROCEDURE remove_code_review_url (
11246
      ncrid  IN    NUMBER
11247
   ) IS
11248
 
11249
   BEGIN
11250
      DELETE FROM code_review_url
11251
      WHERE cr_id = ncrid;
11252
   END;
11253
/*-------------------------------------------------------------------------------------------------------*/
6600 dpurdie 11254
 
11255
PROCEDURE
11256
        SET_RIPPLE_STOP (
11257
        nPVID IN RELEASE_CONTENT.PV_ID%TYPE,
11258
        nRtagId IN RELEASE_CONTENT.RTAG_ID%TYPE,
11259
        nUserId IN NUMBER,
11260
        cMode IN CHAR
11261
    ) IS
11262
    ReleaseLocation VARCHAR2(4000);
11263
    sMode VARCHAR(100);
11264
    cData CHAR;
11265
 
11266
 
11267
BEGIN
11268
 
11269
    IF (nPVID IS NULL) THEN
11270
        RAISE_APPLICATION_ERROR (-20000, 'PvId not set' );
11271
    END IF;
11272
 
11273
    IF (nRtagId IS NULL) THEN
11274
        RAISE_APPLICATION_ERROR (-20001, 'rTagId not set' );
11275
    END IF;
11276
 
11277
    cData := cMode;
11278
    If cMode = 's' THEN
11279
        sMode := 'ripple_stop';
11280
 
11281
    ELSIF cMode = 'w' THEN
11282
        sMode := 'ripple_wait';
11283
 
11284
    ELSIF cMode = 'r' THEN
11285
        sMode := 'ripple_removed';
11286
        cData := NULL;
11287
 
11288
    ELSIF cMode = 'g' THEN
11289
        sMode := 'ripple_resume';
11290
 
11291
    ELSE
11292
       RAISE_APPLICATION_ERROR (-20002, 'Unknown mode:' || cMode );
11293
 
11294
    END IF;
11295
 
11296
    -- Update the value
11297
    UPDATE RELEASE_CONTENT 
11298
    SET RIPPLE_STOP = cData
11299
    WHERE RTAG_ID = nRtagId
11300
    AND PV_ID = nPVID;
11301
 
11302
    -- Mark Release Changed for build
11303
    PK_RELEASE.SET_RELEASE_MODIFIED(nRtagId);
11304
 
11305
    /* LOG ACTION */
11306
    SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11307
    FROM PROJECTS proj,RELEASE_TAGS rt
11308
    WHERE rt.PROJ_ID = proj.PROJ_ID
11309
    AND rt.RTAG_ID = nRtagId;
11310
 
11311
    Log_Action ( nPVID, sMode, nUserId, 'Location: '|| ReleaseLocation);
11312
 
11313
END SET_RIPPLE_STOP;
11314
 
3959 dpurdie 11315
END pk_package;
4040 dpurdie 11316
 
1374 dpurdie 11317
/
5892 dpurdie 11318
 
6031 dpurdie 11319
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
11320
  GRANT DEBUG ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 11321
--------------------------------------------------------
11322
--  DDL for Package Body PK_PLANNED
11323
--------------------------------------------------------
11324
 
5172 dpurdie 11325
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PLANNED" IS
3959 dpurdie 11326
 
1373 dpurdie 11327
/*
11328
------------------------------
3959 dpurdie 11329
||  Last Modified:  G.Huddy
11330
||  Modified Date:  05/Aug/2008
11331
||  Body Version:   1.2
1373 dpurdie 11332
------------------------------
11333
*/
11334
 
11335
 
11336
/*-------------------------------------------------------------------------------------------------------*/
5384 dpurdie 11337
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, OPR IN CHAR DEFAULT 'R' ) IS
1373 dpurdie 11338
 
3959 dpurdie 11339
    oldPvId NUMBER;
11340
    ReleaseLocation VARCHAR2(4000);
11341
    IsPatch CHAR(1) := NULL;
11342
    sLocation VARCHAR2(4000) := NULL;
11343
    nRtagIdLocation NUMBER;
1373 dpurdie 11344
 
11345
 
11346
 
3959 dpurdie 11347
BEGIN
11348
    /*--------------- Business Rules Here -------------------*/
11349
    /*-------------------------------------------------------*/
6031 dpurdie 11350
 
5384 dpurdie 11351
    IF OPR = 'R' THEN
11352
      BEGIN
11353
          -- Check if Exists in "Work in progress" anywhere in the world, except "Closed mode" releases
11354
          SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME, rt.RTAG_ID  INTO sLocation, nRtagIdLocation
11355
            FROM PLANNED pl,
11356
                 RELEASE_TAGS rt,
11357
                 PROJECTS proj
11358
           WHERE pl.PV_ID = newPvId
11359
             AND pl.RTAG_ID = rt.RTAG_ID
11360
             AND rt.OFFICIAL != 'Y'
11361
             AND rt.PROJ_ID = proj.PROJ_ID;
6031 dpurdie 11362
 
5384 dpurdie 11363
          EXCEPTION
11364
              WHEN NO_DATA_FOUND THEN
11365
                  sLocation := NULL;
11366
      END;
6031 dpurdie 11367
 
5384 dpurdie 11368
      IF (sLocation IS NULL) OR (nRtagIdLocation = RtagId) THEN
6031 dpurdie 11369
 
5384 dpurdie 11370
          -- Add to "Pending" area
11371
          INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )
11372
          VALUES( RtagId, newPvId, ViewId, OPR );
6031 dpurdie 11373
 
5384 dpurdie 11374
          /* LOG ACTION */
11375
          SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11376
            FROM PROJECTS proj,
11377
                 RELEASE_TAGS rt
11378
           WHERE rt.PROJ_ID = proj.PROJ_ID
11379
             AND rt.RTAG_ID = RtagId;
6031 dpurdie 11380
 
5384 dpurdie 11381
          Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
6031 dpurdie 11382
 
5384 dpurdie 11383
      ELSE
11384
            RAISE_APPLICATION_ERROR (-20000, 'This version is already in Pending Area at '|| sLocation ||'.' );
11385
        END IF;
6031 dpurdie 11386
 
3959 dpurdie 11387
    ELSE
6031 dpurdie 11388
      -- Not adding a WIP. Merging a package version
5384 dpurdie 11389
      MERGE_PACKAGE ( newPvId, ViewId, RtagId, UserId, OPR );
3959 dpurdie 11390
    END IF;
11391
 
11392
END;
1373 dpurdie 11393
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11394
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 11395
 
3959 dpurdie 11396
    ReleaseLocation VARCHAR2(4000);
1373 dpurdie 11397
 
3959 dpurdie 11398
BEGIN
1373 dpurdie 11399
 
3959 dpurdie 11400
    /*--------------- Business Rules Here -------------------*/
11401
    /*-------------------------------------------------------*/
1373 dpurdie 11402
 
11403
 
3959 dpurdie 11404
    -- Get release location for logging pusposes
11405
    SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11406
      FROM PROJECTS proj,
11407
           RELEASE_TAGS rt
11408
     WHERE rt.PROJ_ID = proj.PROJ_ID
11409
       AND rt.RTAG_ID = RtagId;
1373 dpurdie 11410
 
6031 dpurdie 11411
    -- Ensure that package is not marked as Pending any more
11412
    UPDATE package_versions
11413
       SET DLOCKED  = 'N'
11414
     WHERE PV_ID  = PvId
11415
       AND DLOCKED != 'Y';
1373 dpurdie 11416
 
3959 dpurdie 11417
    -- Delete from Work In Progress
11418
    DELETE
11419
      FROM PLANNED pl
11420
     WHERE pl.RTAG_ID = RtagId
11421
       AND pl.PV_ID = PvId;
1373 dpurdie 11422
 
3959 dpurdie 11423
    Log_Action ( PvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
11424
 
11425
 
11426
 
11427
 
11428
END;
1373 dpurdie 11429
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11430
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
1373 dpurdie 11431
 
3959 dpurdie 11432
    ReturnValue NUMBER;
1373 dpurdie 11433
 
3959 dpurdie 11434
BEGIN
11435
    SELECT pl.VIEW_ID INTO ReturnValue
11436
      FROM PLANNED pl
11437
     WHERE pl.RTAG_ID = RtagId
11438
       AND pl.PV_ID = PvId;
11439
 
11440
    RETURN ReturnValue;
11441
END;
11442
/*-------------------------------------------------------------------------------------------------------*/
11443
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
11444
 
11445
    IsBaseView CHAR(1);
11446
 
11447
BEGIN
11448
 
11449
    -- Check if the view is BASE VIEW
11450
    SELECT vi.BASE_VIEW INTO IsBaseView
11451
      FROM VIEWS vi
11452
     WHERE vi.VIEW_ID = ViewId;
11453
 
11454
 
5172 dpurdie 11455
    IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 11456
        -- Get Base view content
11457
        OPEN RecordSet FOR
11458
        SELECT 0 AS PKG_STATE,
11459
               NULL AS DEPRECATED_STATE,
11460
               pv.pv_id,
11461
               pkg.pkg_name,
11462
               pv.pkg_version,
11463
               pv.dlocked,
11464
               pv.pv_description,
11465
               pv.BUILD_TYPE,
11466
               rel.operation
11467
          FROM PLANNED rel,
11468
               packages pkg,
11469
               package_versions pv
11470
         WHERE pv.pkg_id = pkg.pkg_id
11471
           AND rel.pv_id = pv.pv_id
11472
           AND rel.VIEW_ID = ViewId
11473
           AND rel.RTAG_ID = RtagId
11474
         ORDER BY UPPER(pkg.PKG_NAME);
11475
 
11476
    ELSE
11477
 
11478
        -- Get non base view content
11479
        OPEN RecordSet FOR
11480
        SELECT 0 AS PKG_STATE,
11481
               NULL AS DEPRECATED_STATE,
11482
               pv.pv_id,
11483
               pkg.pkg_name,
11484
               pv.pkg_version,
11485
               pv.dlocked,
11486
               pv.pv_description,
11487
               pv.BUILD_TYPE,
11488
               rel.operation
11489
          FROM PLANNED rel,
11490
               packages pkg,
11491
               package_versions pv,
11492
               VIEW_DEF vd
11493
         WHERE pv.pkg_id = pkg.pkg_id
11494
           AND rel.pv_id = pv.pv_id
11495
           AND rel.RTAG_ID = RtagId
11496
           AND vd.VIEW_ID = ViewId
11497
           AND vd.PKG_ID = pv.PKG_ID
11498
         ORDER BY UPPER(pkg.PKG_NAME);
11499
 
11500
    END IF;
11501
 
11502
 
11503
END;
11504
/*-------------------------------------------------------------------------------------------------------*/
11505
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
11506
 
11507
BEGIN
11508
 
11509
    UPDATE PLANNED pl SET
11510
    pl.VIEW_ID = NewViewId
11511
    WHERE pl.PV_ID = PvId
11512
      AND pl.RTAG_ID = RtagId;
11513
 
11514
END;
11515
/*-------------------------------------------------------------------------------------------------------*/
11516
-- DEVI-45275 This new function supports the ability to insert into the planned table, and existing
11517
-- version of a package as part of a release-to-release merge operation carried out within release manager.
11518
-- DEVI-49594 This function has subsequently been changed to allow a merge operation to cancel its
11519
-- opposite operation, if the opposite already exists in the planned table. This supports user activity
11520
-- via the Release Manager merge manager display
11521
 
11522
PROCEDURE MERGE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, mergeOperation IN CHAR ) IS
11523
 
11524
    ReleaseLocation VARCHAR2(4000);
11525
 
11526
        entryExists NUMBER;
11527
        existingOperation CHAR;
11528
BEGIN
11529
    /*--------------- Business Rules Here -------------------*/
11530
    /*-------------------------------------------------------*/
11531
 
11532
      -- Determine if the specified PV_ID already exists in the planned table....
11533
      SELECT COUNT (pl.pv_id) INTO entryExists
11534
      FROM PLANNED pl
11535
      WHERE pl.pv_id = newPvId
11536
      AND pl.rtag_id = RtagId
11537
      AND pl.view_id = ViewId;
11538
 
11539
      -- If the specified PV_ID already exists in the planned table....
11540
      IF entryExists = 1 THEN
11541
 
11542
         -- Get the operation for the existing entry
11543
         SELECT pl.operation INTO existingOperation
11544
         FROM PLANNED pl
11545
         WHERE pl.pv_id = newPvId
11546
         AND pl.rtag_id = RtagId
11547
         AND pl.view_id = ViewId;
11548
 
11549
         -- Is the specified merge operation the opposite of the existing entry?
11550
         -- If it is not, then there is nothing to do, otherwise...
11551
         -- NOTE: A = Add, S = Subtract
11552
         IF (mergeOperation = 'S' AND existingOperation = 'A')
11553
            OR (mergeOperation = 'A' AND existingOperation = 'S') THEN
11554
 
11555
           -- It is the opposite, so effectively it cancels the existing entry
11556
           -- Remove the entry from the planned table
11557
           DELETE
11558
            FROM PLANNED pl
11559
           WHERE pl.pv_id = newPvId
11560
             AND pl.rtag_id = RtagId
11561
             AND pl.view_id = ViewId;
11562
 
11563
           -- Log action
11564
           SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11565
             FROM PROJECTS proj,
11566
                  RELEASE_TAGS rt
11567
            WHERE rt.PROJ_ID = proj.PROJ_ID
11568
              AND rt.RTAG_ID = RtagId;
11569
 
11570
           Log_Action ( newPvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 11571
         END IF;
3959 dpurdie 11572
      ELSE
11573
         -- Add to Planned tabled
11574
         INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )
11575
         VALUES( RtagId, newPvId, ViewId, mergeOperation );
1373 dpurdie 11576
 
3959 dpurdie 11577
         -- Log Action
11578
         SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11579
          FROM PROJECTS proj,
11580
               RELEASE_TAGS rt
11581
         WHERE rt.PROJ_ID = proj.PROJ_ID
11582
         AND   rt.RTAG_ID = RtagId;
11583
 
11584
         Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 11585
      END IF;
11586
 
3959 dpurdie 11587
END;
1373 dpurdie 11588
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11589
END PK_PLANNED;
4040 dpurdie 11590
 
3959 dpurdie 11591
/
4040 dpurdie 11592
--------------------------------------------------------
11593
--  DDL for Package Body PK_PROJECT
11594
--------------------------------------------------------
11595
 
5172 dpurdie 11596
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PROJECT" IS
1373 dpurdie 11597
 
3959 dpurdie 11598
    /*------------------------------------------------------------------------*/
11599
    PROCEDURE update_base_url (
11600
    nprojid   IN  projects.proj_id%TYPE,
11601
    sbaseurl  IN  VARCHAR2
11602
    ) IS
11603
    BEGIN
1373 dpurdie 11604
 
3959 dpurdie 11605
    UPDATE projects
11606
    SET base_url = sbaseurl
11607
    WHERE proj_id = nprojid;
11608
 
11609
    END update_base_url;
11610
 
11611
/*------------------------------------------------------------------------*/
11612
    PROCEDURE update_project_config (
11613
    nprojid   IN  projects.proj_id%TYPE,
11614
    sbaseurl  IN  VARCHAR2,
11615
    sjirakey  IN  VARCHAR2
11616
    ) IS
11617
    BEGIN
11618
 
11619
    UPDATE projects
11620
    SET base_url = sbaseurl,
11621
        jira_key = sjirakey
11622
    WHERE proj_id = nprojid;
11623
 
11624
    END update_project_config;
11625
    /*------------------------------------------------------------------------*/
11626
 
11627
    END pk_project;
4040 dpurdie 11628
 
3959 dpurdie 11629
/
4040 dpurdie 11630
--------------------------------------------------------
11631
--  DDL for Package Body PK_RELEASE
11632
--------------------------------------------------------
11633
 
5172 dpurdie 11634
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_RELEASE" IS
3959 dpurdie 11635
 
1373 dpurdie 11636
/*-------------------------------------------------------------------------------------------------------*/
6031 dpurdie 11637
PROCEDURE New_Release ( sReleaseName IN VARCHAR2,
11638
                        sReleaseComments IN VARCHAR2,
11639
                        nProjId IN NUMBER,
11640
                        nSourceRtagId IN NUMBER,
11641
                        sIsBranched IN CHAR,
5502 dpurdie 11642
                        nUserId IN NUMBER,
11643
                        cOfficial IN CHAR DEFAULT 'N'
11644
                        ) IS
1373 dpurdie 11645
 
3959 dpurdie 11646
RtagId NUMBER;
11647
ParentRtagId NUMBER;
11648
RecCount NUMBER := 0;
11649
VtreeId NUMBER;
1373 dpurdie 11650
 
3959 dpurdie 11651
BEGIN
11652
   /*--------------- Business Rules Here -------------------*/
11653
   -- Check for missing parameters
11654
   IF (sReleaseName IS NULL) OR (nUserId IS NULL)
11655
   THEN
11656
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId );
1373 dpurdie 11657
 
3959 dpurdie 11658
   END IF;
1373 dpurdie 11659
 
3959 dpurdie 11660
 
11661
   -- Check for duplicate Release Names
11662
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
11663
     FROM RELEASE_TAGS rt
11664
    WHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )
11665
      AND rt.PROJ_ID = nProjId;
11666
 
11667
   IF (RecCount > 0) THEN
11668
      RAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');
11669
   END IF;
11670
   /*-------------------------------------------------------*/
11671
 
11672
 
11673
   -- Get rtag_id
11674
   SELECT SEQ_RTAG_ID.NEXTVAL INTO RtagId FROM DUAL;
11675
 
11676
   SELECT SEQ_VTREE_ID.NEXTVAL INTO VtreeId FROM DUAL;
11677
 
11678
 
11679
 
11680
   -- Get Parent RtagId
11681
   ParentRtagId := GET_PARENT_RTAG ( RtagId, nSourceRtagId, sIsBranched );
11682
 
11683
   -- If the parent RTAG is NOT in this project then we cannot use it.
11684
   -- We must re-assign the parent to be the new release's RTAG_ID instead
11685
   -- else it will not show up in the projects release tree (DEVI-55480)
11686
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
11687
     FROM RELEASE_TAGS rt
11688
    WHERE rt.RTAG_ID = ParentRtagId
11689
      AND rt.PROJ_ID = nProjId;
11690
 
11691
   IF (RecCount = 0) THEN
11692
     ParentRtagId := RtagId;
11693
   END IF;
11694
 
11695
   -- Create new release
11696
   INSERT INTO RELEASE_TAGS ( RTAG_ID, RTAG_NAME, DESCRIPTION, CREATED_STAMP, CREATOR_ID,
11697
                        OFFICIAL, REBUILD_ENV, REBUILD_STAMP,
11698
                        PARENT_RTAG_ID, PROJ_ID, VTREE_ID )
11699
   VALUES ( RtagId,
11700
          sReleaseName,
11701
          sReleaseComments,
11702
          ORA_SYSDATE,
11703
          nUserId,
5502 dpurdie 11704
          cOfficial,
3959 dpurdie 11705
          'N',
11706
          0,
11707
          ParentRtagId,
11708
          nProjId,
11709
          VtreeId );
11710
 
11711
   -- If a source release is provided, clone its config spec branch information into the new release (DEVI-56650)
11712
   IF (NOT nSourceRtagId IS NULL)
11713
   THEN
11714
      UPDATE RELEASE_TAGS rtd
11715
      SET rtd.config_spec_branch = (SELECT rts.CONFIG_SPEC_BRANCH FROM RELEASE_TAGS rts WHERE rts.RTAG_ID = nSourceRtagId)
11716
      WHERE rtd.RTAG_ID = RtagId;
11717
   END IF;
11718
 
11719
   -- Update display Order
11720
   UPDATE_DISPLAY_ORDER ( nProjId );
11721
 
11722
   /* Log Project Action */
11723
   Log_Project_Action ( nProjId, 'new_release', nUserId, sReleaseName, RtagId );
11724
 
11725
 
11726
   -- Import Release Contents
11727
   IF (NOT nSourceRtagId IS NULL) THEN
5502 dpurdie 11728
      Import_Release_Contents ( nSourceRtagId, RtagId, nUserId, 1 );
3959 dpurdie 11729
   END IF;
11730
 
11731
END;
11732
/*-------------------------------------------------------------------------------------------------------*/
11733
PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER ) IS
11734
 
11735
 
11736
BEGIN
11737
 
11738
 
11739
   /*--------------- Business Rules Here -------------------*/
11740
   /*-------------------------------------------------------*/
11741
 
11742
   UPDATE RELEASE_TAGS urt SET
11743
   urt.DISPLAY_ORDER = (
11744
                  SELECT qry.REC_NUM
11745
                    FROM (
11746
                        SELECT rel.*, ROWNUM AS REC_NUM
11747
                          FROM (
11748
 
11749
                                SELECT rt.RTAG_ID,
11750
                                    rt.DISPLAY_ORDER,
11751
                                     DECODE( rt.PARENT_RTAG_ID,
11752
                                             rt.RTAG_ID, 0, rt.PARENT_RTAG_ID ) AS PARENT_RTAG_ID
11753
                                FROM RELEASE_TAGS rt
11754
                               WHERE rt.PROJ_ID = nProjId
11755
 
11756
                                ) rel
11757
                        START WITH rel.PARENT_RTAG_ID = 0
11758
                        CONNECT BY PRIOR rel.RTAG_ID = rel.PARENT_RTAG_ID
11759
                        ORDER SIBLINGS BY rel.DISPLAY_ORDER
11760
                        ) qry
11761
                     WHERE qry.RTAG_ID = urt.RTAG_ID
11762
                  )
11763
   WHERE urt.PROJ_ID = nProjId;
11764
 
11765
END;
11766
/*-------------------------------------------------------------------------------------------------------*/
11767
PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER  ) IS
11768
 
11769
   nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
11770
   SeqNum NUMBER;
11771
 
11772
BEGIN
11773
 
11774
 
11775
   /*--------------- Business Rules Here -------------------*/
11776
   /*-------------------------------------------------------*/
11777
 
11778
   nIdCollector := IN_LIST_NUMBER ( sRtagIdList );
11779
 
11780
   -- Set start sequence number
11781
   SeqNum := 1;
11782
 
11783
   FOR i IN 1..nIdCollector.COUNT
11784
   LOOP
11785
 
11786
      -- Update new display order
11787
      UPDATE RELEASE_TAGS rt SET
11788
         rt.DISPLAY_ORDER = SeqNum
11789
       WHERE rt.PROJ_ID = nProjId
11790
         AND rt.RTAG_ID = nIdCollector(i);
11791
 
11792
      SeqNum := SeqNum + 1;
11793
 
11794
   END LOOP;
11795
 
11796
END;
11797
/*-------------------------------------------------------------------------------------------------------*/
5502 dpurdie 11798
PROCEDURE Update_Release ( nRtagId IN NUMBER,
11799
                           sReleaseName IN VARCHAR2,
11800
                           sReleaseComments IN VARCHAR2,
11801
                           nParentRtagId IN NUMBER,
11802
                           nMASSRtagId IN NUMBER,
11803
                           nConfigSpecBranch IN VARCHAR2,
11804
                           sOwnerEmail IN VARCHAR2,
11805
                           nUserId IN NUMBER,
11806
                           cState IN VARCHAR,
5384 dpurdie 11807
                           nBuildAge in NUMBER,
11808
                           cLxr in CHAR) IS
3959 dpurdie 11809
 
11810
RecCount NUMBER := 0;
11811
ProjId NUMBER;
11812
 
11813
BEGIN
11814
 
11815
 
11816
   /*--------------- Business Rules Here -------------------*/
11817
   -- Check for missing parameters
11818
   IF (sReleaseName IS NULL) OR (nUserId IS NULL) OR (nRtagId IS NULL)
11819
   THEN
11820
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId ||', nRtagId='|| nRtagId);
11821
 
11822
   END IF;
11823
 
11824
 
11825
   -- Check for duplicate Release Names
11826
   SELECT rt.PROJ_ID INTO ProjId
11827
     FROM RELEASE_TAGS rt
11828
    WHERE rt.RTAG_ID = nRtagId;
11829
 
11830
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
11831
     FROM RELEASE_TAGS rt
11832
    WHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )
11833
      AND rt.RTAG_ID != nRtagId
11834
      AND rt.PROJ_ID = ProjId;
11835
 
11836
 
11837
   IF (RecCount > 0) THEN
11838
      RAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');
11839
   END IF;
11840
   /*-------------------------------------------------------*/
11841
 
11842
 
11843
 
11844
   -- Update release details
11845
   UPDATE RELEASE_TAGS rt SET
11846
   rt.RTAG_NAME = sReleaseName,
11847
   rt.DESCRIPTION = sReleaseComments,
11848
   rt.PARENT_RTAG_ID = nParentRtagId,
11849
   rt.ASSOC_MASS_REF = nMASSRtagId,
11850
   rt.CONFIG_SPEC_BRANCH = nConfigSpecBranch,
11851
   rt.OWNER_EMAIL = sOwnerEmail,
5172 dpurdie 11852
   rt.PRODUCT_STATE_USED = cState,
5384 dpurdie 11853
   rt.BUILD_AGE = nBuildAge,
11854
   rt.LXR = cLxr
3959 dpurdie 11855
   WHERE rt.RTAG_ID = nRtagId;
11856
 
11857
   -- Update display Order
11858
   UPDATE_DISPLAY_ORDER ( ProjId );
11859
 
11860
   /* Log Project Action */
11861
   Log_Project_Action ( ProjId, 'update_release', nUserId, 'Release Name: <br>Release Comments:', nRtagId );
11862
 
11863
 
11864
 
11865
 
11866
END;
11867
/*-------------------------------------------------------------------------------------------------------*/
11868
PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER ) IS
11869
 
11870
   RecCount NUMBER := 0;
11871
   sReleaseId VARCHAR2(4000);
11872
   ProjId NUMBER;
11873
 
11874
BEGIN
11875
   /*--------------- Business Rules Here -------------------*/
11876
   IF (nRtagId IS NULL)
11877
   THEN
11878
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId  );
11879
   END IF;
11880
 
11881
 
11882
 
11883
   -- Check for any kids
11884
   SELECT COUNT( rt.RTAG_ID ) INTO RecCount
11885
     FROM RELEASE_TAGS rt
11886
    WHERE rt.PARENT_RTAG_ID = nRtagId
11887
      AND rt.RTAG_ID != rt.PARENT_RTAG_ID;
11888
 
11889
   IF (RecCount > 0) THEN
11890
      RAISE_APPLICATION_ERROR (-20000, 'Cannot destroy this release. You need to destroy its children releases first.'  );
11891
   END IF;
11892
   /*-------------------------------------------------------*/
11893
 
11894
   -- Clear the release contents
11895
   Clean_Release_Contents ( nRtagId, nUserId );
11896
 
11897
   /* Log Project Action */
11898
   SELECT rt.PROJ_ID, rt.RTAG_NAME ||'['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']' INTO ProjId, sReleaseId
11899
     FROM RELEASE_TAGS rt
11900
    WHERE rt.RTAG_ID = nRtagId;
11901
 
11902
   Log_Project_Action ( ProjId, 'destroy_release', nUserId, sReleaseId, nRtagId );
11903
 
11904
 
11905
   -- Remove Release
11906
   DELETE
11907
     FROM RELEASE_TAGS rt
11908
    WHERE rt.RTAG_ID = nRtagId;
11909
 
11910
 
11911
 
11912
END;
11913
/*-------------------------------------------------------------------------------------------------------*/
5502 dpurdie 11914
PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER, nMode IN NUMBER default 0 ) IS
3959 dpurdie 11915
 
11916
   sSourceLocation VARCHAR2(4000);
11917
   sTargetLocation VARCHAR2(4000);
11918
   ProjId NUMBER;
11919
   cReleaseMode CHAR(1);
11920
   RconId NUMBER;
11921
 
11922
   -- this cursor gets the source release daemon configurations, ensuring that the
11923
   -- first record will be the master daemon, and subsequent records will be the slaves.
11924
   CURSOR curSrcReleaseConfigs IS
4308 dpurdie 11925
    SELECT daemon_hostname, gbe_id, gbe_buildfilter, bmcon_id, daemon_mode
3959 dpurdie 11926
     FROM RELEASE_CONFIG rc
11927
    WHERE rc.RTAG_ID = nSourceRtagId
11928
    ORDER BY rc.daemon_mode;
11929
    recSrcReleaseConfigs curSrcReleaseConfigs%ROWTYPE;
11930
 
11931
    -- this cursor looks for target release daemons
11932
   CURSOR curTgtReleaseConfigs IS
11933
    SELECT rcon_id
11934
     FROM RELEASE_CONFIG rc
11935
    WHERE rc.RTAG_ID = nTargetRtagId;
11936
    recTgtReleaseConfigs curTgtReleaseConfigs%ROWTYPE;
11937
 
11938
    -- this cursor looks for target release daemon run level entries
11939
   CURSOR curTgtReleaseConfigRunLevel IS
11940
    SELECT current_run_level
11941
     FROM RUN_LEVEL rl
11942
    WHERE rl.RCON_ID = recTgtReleaseConfigs.rcon_id;
11943
    recTgtReleaseConfigRunLevel curTgtReleaseConfigRunLevel%ROWTYPE;
11944
 
11945
BEGIN
11946
   /*--------------- Business Rules Here -------------------*/
11947
   IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)
11948
   THEN
11949
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );
11950
   END IF;
11951
 
11952
   IF (nSourceRtagId = nTargetRtagId) THEN
11953
      RAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );
11954
   END IF;
11955
 
11956
 
11957
   -- Check if Target release is in OPEN mode
5502 dpurdie 11958
   IF nMode = 0 THEN
11959
     SELECT rt.OFFICIAL  INTO  cReleaseMode
11960
       FROM RELEASE_TAGS rt
11961
      WHERE rt.RTAG_ID = nTargetRtagId;
6031 dpurdie 11962
 
5502 dpurdie 11963
     IF (cReleaseMode != 'N') THEN
11964
        RAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the contents.' );
11965
     END IF;
11966
  END IF;
3959 dpurdie 11967
 
11968
   -- check that the target release's daemons are all paused before we allow an import operation
11969
   OPEN curTgtReleaseConfigs;
11970
   FETCH curtgtReleaseConfigs INTO recTgtReleaseConfigs;
11971
 
11972
   WHILE curTgtReleaseConfigs%FOUND
11973
   LOOP
11974
      OPEN curTgtReleaseConfigRunLevel;
11975
      FETCH curTgtReleaseConfigRunLevel INTO recTgtReleaseConfigRunLevel;
11976
      IF curTgtReleaseConfigRunLevel%FOUND THEN
11977
         IF (recTgtReleaseConfigRunLevel.current_run_level IS NULL) OR
11978
            (recTgtReleaseConfigRunLevel.current_run_level <> 2) THEN
11979
            RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
11980
         END IF;
1373 dpurdie 11981
      ELSE
3959 dpurdie 11982
         -- we don't know what the daemon run level is so err on the side of caution
11983
         RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
1373 dpurdie 11984
      END IF;
3959 dpurdie 11985
      CLOSE curTgtReleaseConfigRunLevel;
1373 dpurdie 11986
 
3959 dpurdie 11987
      FETCH curTgtReleaseConfigs INTO recTgtReleaseConfigs;
11988
   END LOOP;
1373 dpurdie 11989
 
3959 dpurdie 11990
   CLOSE curTgtReleaseConfigs;
1373 dpurdie 11991
 
11992
 
3959 dpurdie 11993
   /*-------------------------------------------------------*/
1373 dpurdie 11994
 
3959 dpurdie 11995
   -- Clean target contents
11996
   Clean_Release_Contents ( nTargetRtagId, nUserId );
1373 dpurdie 11997
 
11998
 
3959 dpurdie 11999
   -- Import Released Area Contents
5502 dpurdie 12000
   INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE, PKG_ID, DEPRECATED_STATE,PRODUCT_STATE,SDKTAG_ID )
3959 dpurdie 12001
   SELECT nTargetRtagId AS RTAG_ID,
12002
         rc.PV_ID,
12003
         rc.BASE_VIEW_ID,
12004
         rc.INSERT_STAMP,
12005
         rc.INSERTOR_ID,
12006
         rc.PKG_STATE,
12007
         rc.PKG_ID,
5384 dpurdie 12008
         rc.DEPRECATED_STATE,
12009
         rc.PRODUCT_STATE,
12010
         rc.SDKTAG_ID
3959 dpurdie 12011
     FROM RELEASE_CONTENT rc
12012
    WHERE rc.RTAG_ID = nSourceRtagId;
12013
 
12014
 
12015
   -- Import any Pegged Version settings from the source release
12016
   INSERT INTO PEGGED_VERSIONS ( RTAG_ID, PV_ID )
12017
   SELECT nTargetRtagId AS RTAG_ID,
12018
          pegv.PV_ID
12019
     FROM PEGGED_VERSIONS pegv
12020
    WHERE pegv.RTAG_ID = nSourceRtagId;
12021
 
12022
   -- Import any Advisory Ripple settings from the source release
12023
   INSERT INTO ADVISORY_RIPPLE ( RTAG_ID, PV_ID )
12024
   SELECT nTargetRtagId AS RTAG_ID,
12025
          avr.PV_ID
12026
     FROM ADVISORY_RIPPLE avr
12027
    WHERE avr.RTAG_ID = nSourceRtagId;
12028
 
12029
 
12030
   --Import Release Configuration Information
12031
   OPEN curSrcReleaseConfigs;
12032
   FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
12033
 
4308 dpurdie 12034
     WHILE curSrcReleaseConfigs%FOUND
3959 dpurdie 12035
   LOOP
12036
      -- add a daemon to the target release
5502 dpurdie 12037
      PK_BUILDAPI.duplicate_daemon_config( nTargetRtagId,
12038
                                     recSrcReleaseConfigs.bmcon_id,
12039
                                     recSrcReleaseConfigs.daemon_hostname,
12040
                                     recSrcReleaseConfigs.gbe_id,
4308 dpurdie 12041
                                     recSrcReleaseConfigs.daemon_mode ,
12042
                                     recSrcReleaseConfigs.gbe_buildfilter );
3959 dpurdie 12043
 
12044
      FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
12045
   END LOOP;
12046
 
12047
   CLOSE curSrcReleaseConfigs;
12048
 
12049
 
12050
 
12051
   -- Import Ignore Warning states
12052
   INSERT INTO IGNORE_WARNINGS ( RTAG_ID, PV_ID, DPV_ID )
12053
   SELECT nTargetRtagId AS RTAG_ID,
12054
          igw.PV_ID,
12055
          igw.DPV_ID
12056
     FROM IGNORE_WARNINGS igw
12057
    WHERE igw.rtag_id = nSourceRtagId;
12058
 
12059
 
12060
   /* Log Project Action */
12061
   -- Get Source Location
12062
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sSourceLocation
12063
     FROM RELEASE_TAGS rt,
12064
           PROJECTS pr
12065
    WHERE rt.PROJ_ID = pr.PROJ_ID
12066
      AND rt.RTAG_ID = nSourceRtagId;
12067
 
12068
   -- Get Target Location
12069
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sTargetLocation
12070
     FROM RELEASE_TAGS rt,
12071
           PROJECTS pr
12072
    WHERE rt.PROJ_ID = pr.PROJ_ID
12073
      AND rt.RTAG_ID = nTargetRtagId;
12074
 
12075
   -- Get project id
12076
   SELECT rt.PROJ_ID  INTO  ProjId
12077
     FROM RELEASE_TAGS rt
12078
    WHERE rt.RTAG_ID = nTargetRtagId;
12079
 
12080
   Log_Project_Action ( ProjId, 'import_release_contents', nUserId, 'SOURCE: '|| sSourceLocation ||'   TARGET: '|| sTargetLocation, nTargetRtagId );
12081
END;
12082
 
12083
 
12084
 
1373 dpurdie 12085
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12086
PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER ) IS
1373 dpurdie 12087
 
3959 dpurdie 12088
   RecCount NUMBER;
12089
        rconIdList VARCHAR2(4000);
1373 dpurdie 12090
 
3959 dpurdie 12091
BEGIN
12092
   /*--------------- Business Rules Here -------------------*/
12093
   IF (nRtagId IS NULL)
12094
   THEN
12095
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId  );
12096
   END IF;
1373 dpurdie 12097
 
12098
 
3959 dpurdie 12099
   -- Check if other release references this release
12100
   SELECT COUNT( rl.RTAG_ID ) INTO RecCount
12101
     FROM RELEASE_LINKS rl
12102
    WHERE rl.REF_RTAG_ID = nRtagId;
1373 dpurdie 12103
 
3959 dpurdie 12104
   IF (RecCount > 0) THEN
12105
      RAISE_APPLICATION_ERROR (-20000, 'This release is referenced by other release and cannot be destroyed.'  );
12106
   END IF;
12107
   /*-------------------------------------------------------*/
1373 dpurdie 12108
 
3959 dpurdie 12109
   -- Delete Release links
12110
   DELETE
12111
     FROM RELEASE_LINKS rl
12112
    WHERE rl.RTAG_ID = nRtagId;
12113
 
12114
   -- Delete ignore warning
12115
   DELETE
12116
     FROM IGNORE_WARNINGS iw
12117
    WHERE iw.RTAG_ID = nRtagId;
12118
 
12119
 
12120
   -- Delete Build Order cached calculations
12121
   DELETE
12122
     FROM BUILD_ORDER bo
12123
    WHERE bo.RTAG_ID = nRtagId;
12124
 
12125
 
12126
   -- Delete Notification History
12127
   DELETE
12128
     FROM NOTIFICATION_HISTORY nh
12129
    WHERE nh.RTAG_ID = nRtagId;
12130
 
12131
 
12132
   -- Delete Released Area Contents
12133
   DELETE
12134
     FROM RELEASE_CONTENT rc
12135
    WHERE rc.RTAG_ID = nRtagId;
12136
 
12137
 
12138
   -- Delete Work In Progress Area Contents
12139
   DELETE
12140
     FROM WORK_IN_PROGRESS wip
12141
    WHERE wip.RTAG_ID = nRtagId;
12142
 
12143
 
12144
   -- Delete Pending Area Contents
12145
   DELETE
12146
     FROM PLANNED pl
12147
    WHERE pl.RTAG_ID = nRtagId;
12148
 
12149
   -- Delete Deprecated Packages
12150
   DELETE
12151
     FROM DEPRECATED_PACKAGES dp
12152
    WHERE dp.RTAG_ID = nRtagId;
12153
 
12154
   -- Delete Project Action Log
12155
   DELETE
12156
     FROM PROJECT_ACTION_LOG pal
12157
    WHERE pal.RTAG_ID = nRtagId;
12158
 
12159
   -- Delete Do Not Ripple Contents
12160
   DELETE
12161
     FROM DO_NOT_RIPPLE dnr
12162
    WHERE dnr.RTAG_ID = nRtagId;
12163
 
12164
   -- Delete Dash Board Contents
12165
   DELETE
12166
     FROM DASH_BOARD db
12167
    WHERE db.RTAG_ID = nRtagId;
12168
 
12169
   -- Delete Advisory Ripple Contents
12170
   DELETE
12171
     FROM ADVISORY_RIPPLE adr
12172
    WHERE adr.RTAG_ID = nRtagId;
12173
 
12174
   -- Delete Archive Action Log
12175
   DELETE
12176
     FROM ARCHIVE_ACTION_LOG aal
12177
    WHERE aal.RTAG_ID = nRtagId;
12178
 
12179
   -- Delete Daemons For This Release
12180
   FOR rcon IN (SELECT rc.RCON_ID FROM RELEASE_CONFIG rc WHERE rc.RTAG_ID = nRtagId )
12181
   LOOP
12182
      rconIdList := rconIdList || rcon.RCON_ID || ',';
12183
   END LOOP;
12184
 
12185
   pk_buildapi.DELETE_DAEMON(rconIdList);
12186
 
12187
   -- Delete Release Metrics Contents
12188
   DELETE
12189
     FROM RELEASE_METRICS rm
12190
    WHERE rm.RTAG_ID = nRtagId;
12191
 
12192
   -- Delete Release Configuration Contents
12193
   DELETE
12194
     FROM RELEASE_CONFIG rc
12195
    WHERE rc.RTAG_ID = nRtagId;
12196
 
12197
   -- Delete Pegged Version Contents
12198
   DELETE
12199
     FROM PEGGED_VERSIONS pegv
12200
    WHERE pegv.RTAG_ID = nRtagId;
12201
 
12202
END;
12203
/*-------------------------------------------------------------------------------------------------------*/
12204
FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR )  RETURN NUMBER IS
12205
 
12206
   nSourceParentRtagId NUMBER;
12207
 
12208
BEGIN
12209
   /*--------------- Business Rules Here -------------------*/
12210
   IF (nRtagId IS NULL) OR (cIsBranch IS NULL)
12211
   THEN
12212
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId ||', cIsBranch= '|| cIsBranch );
12213
   END IF;
12214
   /*-------------------------------------------------------*/
12215
 
12216
 
12217
   IF ( nSourceRtagId IS NULL ) THEN
12218
      -- Create new on main branch
12219
      RETURN nRtagId;
12220
 
12221
   ELSE
12222
      -- Create from source rtag_id
12223
 
12224
      -- Find parent of Source RtagId
12225
      SELECT rt.PARENT_RTAG_ID INTO nSourceParentRtagId
12226
        FROM RELEASE_TAGS rt
12227
       WHERE rt.RTAG_ID = nSourceRtagId;
12228
 
12229
      IF (UPPER(cIsBranch) = 'Y') THEN
12230
         RETURN nSourceRtagId;
12231
      ELSE
12232
         IF (nSourceRtagId = nSourceParentRtagId) THEN
12233
            RETURN nRtagId;
12234
         ELSE
12235
            RETURN nSourceParentRtagId;
1373 dpurdie 12236
         END IF;
12237
      END IF;
12238
 
3959 dpurdie 12239
 
12240
   END IF;
12241
 
12242
 
12243
END;
1373 dpurdie 12244
/*-------------------------------------------------------------------------------------------------------*/
12245
 
3959 dpurdie 12246
-- PROCEDURE Get_Next_Version ( nSourceRtagId IN NUMBER,
12247
--                       sNextVersion OUT VARCHAR2,
12248
--                       nNextLifeCycle OUT NUMBER,
12249
--                       nParentRtagId OUT NUMBER,
12250
--                       nProjId IN NUMBER ) IS
12251
--
12252
-- SourceBranchCount NUMBER;
12253
-- ProjRootVersion VARCHAR2(4000);
12254
-- LastLifeCycle NUMBER;
12255
-- ROOT_VERSION_NOT_FOUND NUMBER := -1;
12256
-- SET_PARENT_AS_YOURSELF NUMBER := -1;
12257
--
12258
-- SourceProjId NUMBER;
12259
-- SourceVersion RELEASE_TAGS.RTAG_VERSION%TYPE;
12260
-- SourceLifeCycle RELEASE_TAGS.RTAG_LIFE_CYCLE%TYPE;
12261
--
12262
-- BEGIN
12263
--    /*--------------- Business Rules Here -------------------*/
12264
--    /*-------------------------------------------------------*/
12265
--
12266
--
12267
--    BEGIN
12268
--       -- Get Project root version
12269
--       SELECT rt.RTAG_VERSION INTO ProjRootVersion
12270
--         FROM RELEASE_TAGS rt
12271
--        WHERE rt.PROJ_ID = nProjId
12272
--          AND rt.RTAG_ID = rt.PARENT_RTAG_ID;
12273
--
12274
--       EXCEPTION
12275
--       WHEN NO_DATA_FOUND THEN
12276
--       ProjRootVersion := ROOT_VERSION_NOT_FOUND;
12277
--    END;
12278
--
12279
--
12280
--
12281
--
12282
--    BEGIN
12283
--       -- Get info for source rtagid
12284
--       SELECT rt.PROJ_ID, rt.RTAG_VERSION, rt.RTAG_LIFE_CYCLE  INTO  SourceProjId, SourceVersion, SourceLifeCycle
12285
--         FROM RELEASE_TAGS rt
12286
--        WHERE rt.RTAG_ID = nSourceRtagId;
12287
--
12288
--       EXCEPTION
12289
--       WHEN NO_DATA_FOUND THEN
12290
--       SourceProjId := NULL;
12291
--       SourceVersion := NULL;
12292
--       SourceLifeCycle := NULL;
12293
--    END;
12294
--
12295
--
12296
--    IF (nSourceRtagId IS NULL)  OR  ( SourceProjId != nProjId ) THEN
12297
--
12298
--       /* Blank Release Required  OR  Release imported from other project */
12299
--
12300
--       IF (ProjRootVersion = ROOT_VERSION_NOT_FOUND) THEN
12301
--          /* No Releases found in the project, hence calculate next version available.  */
12302
--
12303
--          -- Set parent rtag
12304
--          nParentRtagId := SET_PARENT_AS_YOURSELF;
12305
--
12306
--
12307
--          BEGIN
12308
--             -- Get Next Available Global Root Version
12309
--             SELECT MAX( TO_NUMBER( rt.RTAG_VERSION ) )  INTO  ProjRootVersion
12310
--               FROM RELEASE_TAGS rt
12311
--              WHERE rt.RTAG_ID = rt.PARENT_RTAG_ID;
12312
--
12313
--             -- Set Next Rtag Version
12314
--             sNextVersion := CAST( ProjRootVersion + 1 AS VARCHAR2 );
12315
--
12316
--             -- Restart Lifecycle
12317
--             nNextLifeCycle := 0;
12318
--
12319
--
12320
--             EXCEPTION
12321
--             WHEN NO_DATA_FOUND THEN
12322
--             -- Release Manager has no releases, hence start from 1
12323
--             sNextVersion := '1';
12324
--             nNextLifeCycle := 0;
12325
--
12326
--          END;
12327
--
12328
--
12329
--
12330
--       ELSE
12331
--          /* Releases found in this project. */
12332
--
12333
--          SELECT qry.RTAG_ID, qry.RTAG_LIFE_CYCLE  INTO nParentRtagId, LastLifeCycle
12334
--            FROM (
12335
--                SELECT rt.RTAG_ID, rt.RTAG_LIFE_CYCLE
12336
--                  FROM RELEASE_TAGS rt
12337
--                 WHERE rt.PROJ_ID = nProjId
12338
--                   AND rt.RTAG_VERSION = ProjRootVersion
12339
--                 ORDER BY rt.RTAG_LIFE_CYCLE DESC
12340
--                  ) qry
12341
--           WHERE ROWNUM = 1;
12342
--
12343
--
12344
--          -- Set same Rtag Version
12345
--          sNextVersion := ProjRootVersion;
12346
--
12347
--          -- Increase Lifecycle
12348
--          nNextLifeCycle := LastLifeCycle + 1;
12349
--
12350
--       END IF;
12351
--
12352
--
12353
--
12354
--    ELSE
12355
--       /* Create Release From other release within this project */
12356
--
12357
--       -- Set parent id
12358
--       nParentRtagId := nSourceRtagId;
12359
--
12360
--
12361
--       -- Get number of source branches
12362
--       SELECT COUNT(rt.RTAG_ID) INTO SourceBranchCount
12363
--         FROM RELEASE_TAGS rt
12364
--        WHERE rt.PROJ_ID = nProjId
12365
--          AND rt.PARENT_RTAG_ID = nSourceRtagId;
12366
--
12367
--
12368
--       IF SourceBranchCount = 0 THEN
12369
--          /* Release is Head (i.e. Tip on its branch ) */
12370
--
12371
--          -- Set Next Rtag Version
12372
--          sNextVersion := SourceVersion;
12373
--
12374
--          -- Increase Lifecycle
12375
--          nNextLifeCycle := SourceLifeCycle + 1;
12376
--
12377
--
12378
--       ELSIF SourceBranchCount = 1 THEN
12379
--          /* Release IS NOT Head, but can be branched */
12380
--
12381
--          -- Set Next Rtag Version
12382
--          sNextVersion := SourceVersion ||'.'|| SourceLifeCycle;
12383
--
12384
--          -- Reset Lifecycle to 1
12385
--          nNextLifeCycle := 1;
12386
--
12387
--
12388
--       ELSE
12389
--          -- Limit of two branches is reached
12390
--          RAISE_APPLICATION_ERROR (-20000, 'This release is already branched and cannot be branched again. ');
12391
--
12392
--       END IF;
12393
--
12394
--
12395
--
12396
--
12397
--
12398
--
12399
--    END IF;
12400
--
12401
--
12402
-- END;
12403
 
12404
/*-------------------------------------------------------------------------------------------------------*/
12405
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
12406
 
12407
   IsBaseView CHAR(1);
12408
 
12409
BEGIN
12410
 
12411
   -- Check if the view is BASE VIEW
12412
   SELECT vi.BASE_VIEW INTO IsBaseView
12413
     FROM VIEWS vi
12414
    WHERE vi.VIEW_ID = ViewId;
12415
 
5172 dpurdie 12416
   IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 12417
      -- Get Base view content
12418
      OPEN RecordSet FOR
12419
      SELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,
12420
            rel.deprecated_state,
12421
            pv.pv_id,
12422
            pkg.pkg_name,
12423
            pv.pkg_version,
12424
            pv.dlocked,
12425
            pv.pv_description,
12426
            pv.BUILD_TYPE
12427
        FROM release_content rel,
12428
             packages pkg,
12429
             package_versions pv
12430
       WHERE pv.pkg_id = pkg.pkg_id
12431
         AND rel.pv_id = pv.pv_id
12432
         AND rel.BASE_VIEW_ID = ViewId
12433
         AND rel.RTAG_ID = RtagId
12434
       ORDER BY UPPER(pkg.PKG_NAME);
12435
 
12436
   ELSE
12437
 
12438
       -- Get non base view content
12439
      OPEN RecordSet FOR
12440
      SELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,
12441
            rel.deprecated_state,
12442
            pv.pv_id,
12443
            pkg.pkg_name,
12444
            pv.pkg_version,
12445
            pv.dlocked,
12446
            pv.pv_description,
12447
            pv.BUILD_TYPE
12448
        FROM release_content rel,
12449
             packages pkg,
12450
             package_versions pv,
12451
            VIEW_DEF vd
12452
       WHERE pv.pkg_id = pkg.pkg_id
12453
         AND rel.pv_id = pv.pv_id
12454
         AND vd.VIEW_ID = ViewId
12455
         AND vd.PKG_ID = pv.PKG_ID
12456
         AND rel.RTAG_ID = RtagId
12457
       ORDER BY UPPER(pkg.PKG_NAME);
12458
 
12459
   END IF;
12460
 
12461
 
12462
 
12463
 
12464
END;
12465
/*-------------------------------------------------------------------------------------------------------*/
4585 dpurdie 12466
  -- Add or Replace a package to the specified release
3959 dpurdie 12467
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
12468
   ReleaseLocation VARCHAR2(4000);
12469
   nPkgId NUMBER;
12470
   sVExt VARCHAR2(4000);
12471
   IsPatch PACKAGE_VERSIONS.IS_PATCH%TYPE := 'N';
5172 dpurdie 12472
   default_pegged CHAR := 'N';
12473
   default_advisory_ripple CHAR := 'N';
3959 dpurdie 12474
 
12475
   -- Find package for replacement
12476
   CURSOR curReplacePkg IS
12477
    SELECT pv.PV_ID
12478
     FROM RELEASE_CONTENT rc,
12479
           PACKAGE_VERSIONS pv
12480
    WHERE rc.PV_ID = pv.PV_ID
12481
      AND rc.RTAG_ID = RtagId
12482
      AND pv.PKG_ID = nPkgId
12483
      AND NVL( pv.V_EXT, 'LINK_A_NULL' ) = NVL( sVExt, 'LINK_A_NULL' );
12484
    recReplacePkg curReplacePkg%ROWTYPE;
12485
 
12486
BEGIN
12487
   -- Get is_patch, pkg_id and v_ext
5502 dpurdie 12488
   SELECT pv.IS_PATCH, pv.PKG_ID, pv.V_EXT
5172 dpurdie 12489
     INTO IsPatch, nPkgId, sVExt
3959 dpurdie 12490
     FROM PACKAGE_VERSIONS pv
12491
    WHERE pv.PV_ID = newPvId;
12492
 
12493
   -- Never put patch in relesed area
12494
   IF (IsPatch != 'Y') OR (IsPatch IS NULL) THEN
12495
 
12496
      -- Try to get a package to be replaced with this new one.
12497
      -- Use unique constraint of PKG_ID and V_EXT
12498
      OPEN curReplacePkg;
12499
       FETCH curReplacePkg INTO recReplacePkg;
12500
 
12501
       IF curReplacePkg%FOUND THEN
12502
         -- Replace package
12503
         REPLACE_PACKAGE ( newPvId, recReplacePkg.PV_ID, RtagId, UserId );
12504
 
12505
      ELSE
12506
         -- Add new package
12507
         INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )
12508
         VALUES( RtagId, newPvId, ViewId, Ora_Sysdate, UserId, 0);
5502 dpurdie 12509
 
5172 dpurdie 12510
        -- Insert default package flags
12511
        -- Get Package Level defaults
5502 dpurdie 12512
 
12513
        SELECT pkg.default_pegged, pkg.DEFAULT_ADVISORY_RIPPLE
5172 dpurdie 12514
         INTO  default_pegged, default_advisory_ripple
12515
         FROM  PACKAGES pkg
5502 dpurdie 12516
        WHERE  pkg.PKG_ID = nPkgId;
3959 dpurdie 12517
 
5172 dpurdie 12518
        -- Apply to the newly inserted package
12519
        IF default_pegged = 'Y' THEN
12520
          INSERT INTO PEGGED_VERSIONS ( RTAG_ID, PV_ID ) VALUES (RtagId, newPvId);
12521
          -- Log_Action ( newPvId, 'action', UserId, 'Set default package peg' );
12522
        END IF;
5502 dpurdie 12523
 
5172 dpurdie 12524
        IF default_advisory_ripple = 'Y' THEN
12525
          INSERT INTO ADVISORY_RIPPLE ( RTAG_ID, PV_ID ) VALUES (RtagId, newPvId);
12526
          -- Log_Action ( newPvId, 'action', UserId, 'Set default advisory ripple' );
12527
        END IF;
3959 dpurdie 12528
 
6600 dpurdie 12529
        -- Mark Release as changed
5172 dpurdie 12530
        SET_RELEASE_MODIFIED(RtagId);
12531
        RUN_POST_ACTIONS(newPvId, RtagId);
5502 dpurdie 12532
 
3959 dpurdie 12533
          /* LOG ACTION */
12534
         SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
12535
           FROM PROJECTS proj,
12536
                 RELEASE_TAGS rt
12537
          WHERE rt.PROJ_ID = proj.PROJ_ID
12538
            AND rt.RTAG_ID = RtagId;
12539
 
12540
         Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );
12541
 
1373 dpurdie 12542
      END IF;
3959 dpurdie 12543
      CLOSE curReplacePkg;
12544
   END IF;
5172 dpurdie 12545
END;
3959 dpurdie 12546
 
1373 dpurdie 12547
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12548
PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 12549
 
3959 dpurdie 12550
   ReleaseLocation VARCHAR2(4000);
12551
   sPkgVersion VARCHAR2(4000);
5172 dpurdie 12552
   nSdkTag NUMBER;
6600 dpurdie 12553
   cPersistRippleStop CHAR;
12554
   cRippleStop CHAR;
3959 dpurdie 12555
BEGIN
6600 dpurdie 12556
   -- Extract essential information
12557
      SELECT SDKTAG_ID, PERSIST_RIPPLE_STOP INTO nSdkTag, cPersistRippleStop FROM RELEASE_CONTENT
5172 dpurdie 12558
      WHERE rtag_id = RtagId
12559
       AND pv_id = oldPvId;
5502 dpurdie 12560
 
6600 dpurdie 12561
   -- Trap SDK Replacement
12562
   -- This is a last ditch check. The application should not allow this condition to happen
5172 dpurdie 12563
     If nSdkTag IS NOT NULL  THEN
12564
       raise_application_error (-20000, 'Attempt to replace a package provided by an SDK.');
12565
     END IF;
6600 dpurdie 12566
 
12567
   -- Determine new value for ripple_stop
12568
   cRippleStop := NULL;
12569
   IF cPersistRippleStop is NOT NULL THEN
12570
      cRippleStop := 's';
12571
   END IF;
3959 dpurdie 12572
 
12573
   -- Replace Package
12574
    UPDATE RELEASE_CONTENT
12575
       SET pv_id = newPvId,
12576
           insert_stamp = Ora_Sysdate,
12577
           insertor_id = UserId,
6600 dpurdie 12578
           product_state = NULL,
12579
           ripple_stop = cRippleStop
3959 dpurdie 12580
     WHERE rtag_id = RtagId
12581
       AND pv_id = oldPvId;
12582
 
12583
   -- update the pegging table
12584
   UPDATE PEGGED_VERSIONS
12585
      SET pv_id = newPvId
12586
     WHERE rtag_id = RtagId
12587
       AND pv_id = oldPvId;
12588
 
12589
   -- update the advisory_ripple table
12590
   UPDATE ADVISORY_RIPPLE
12591
      SET pv_id = newPvId
12592
     WHERE rtag_id = RtagId
12593
       AND pv_id = oldPvId;
12594
 
12595
    /* LOG ACTION */
12596
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
12597
     FROM PROJECTS proj,
12598
           RELEASE_TAGS rt
12599
    WHERE rt.PROJ_ID = proj.PROJ_ID
12600
      AND rt.RTAG_ID = RtagId;
12601
 
12602
   SELECT pv.PKG_VERSION INTO sPkgVersion
12603
     FROM PACKAGE_VERSIONS pv
12604
    WHERE pv.PV_ID = newPvId;
12605
 
5172 dpurdie 12606
   SET_RELEASE_MODIFIED(RtagId);
3959 dpurdie 12607
   Log_Action ( oldPvId, 'replaced_with', UserId, 'Replacing with: '|| sPkgVersion ||' at '|| ReleaseLocation );
12608
   Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );
12609
 
12610
END;
12611
/*-------------------------------------------------------------------------------------------------------*/
12612
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
12613
   ReleaseLocation VARCHAR2(4000);
5172 dpurdie 12614
   nSdkTag NUMBER;
3959 dpurdie 12615
BEGIN
5172 dpurdie 12616
   -- Trap SDK Package Deletion
12617
   -- This is a last ditch check. The application should not allow this condition to happen
12618
      SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
12619
      WHERE rtag_id = RtagId
12620
       AND pv_id = PvId;
5502 dpurdie 12621
 
5172 dpurdie 12622
     If nSdkTag IS NOT NULL  THEN
12623
       raise_application_error (-20000, 'Attempt to delete a package provided by an SDK.');
12624
     END IF;
3959 dpurdie 12625
 
12626
   -- Delete old package
12627
   DELETE
12628
     FROM RELEASE_CONTENT rc
12629
    WHERE rc.PV_ID = PvId
12630
      AND rc.RTAG_ID = RtagId;
12631
 
12632
 
12633
   /* LOG ACTION */
12634
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
12635
     FROM PROJECTS proj,
12636
          RELEASE_TAGS rt
12637
    WHERE rt.PROJ_ID = proj.PROJ_ID
12638
      AND rt.RTAG_ID = RtagId;
12639
 
12640
   Log_Action ( PvId, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );
12641
 
12642
 
12643
END;
12644
/*-------------------------------------------------------------------------------------------------------*/
12645
PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
12646
   ReleaseLocation VARCHAR2(4000);
12647
 
12648
   CURSOR curMatchingPackage IS
12649
    SELECT mpv.PV_ID
12650
     FROM RELEASE_CONTENT rc,
12651
           PACKAGE_VERSIONS mpv,
12652
         PACKAGE_VERSIONS pv
12653
    WHERE rc.PV_ID = mpv.PV_ID
12654
      AND rc.RTAG_ID = RtagId
12655
      AND pv.PV_ID = PvId
12656
      AND pv.PKG_ID = mpv.PKG_ID
12657
      AND NVL( pv.V_EXT, '|LINK_A_NULL|' ) = NVL( mpv.V_EXT, '|LINK_A_NULL|' );
12658
    recMatchingPackage curMatchingPackage%ROWTYPE;
12659
 
12660
BEGIN
12661
 
12662
   OPEN curMatchingPackage;
12663
    FETCH curMatchingPackage INTO recMatchingPackage;
12664
 
12665
    IF curMatchingPackage%FOUND THEN
12666
      -- Delete old package
12667
      DELETE
12668
        FROM RELEASE_CONTENT rc
12669
       WHERE rc.PV_ID = recMatchingPackage.PV_ID
12670
         AND rc.RTAG_ID = RtagId;
12671
 
12672
 
12673
      /* LOG ACTION */
12674
      SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
12675
        FROM PROJECTS proj,
12676
              RELEASE_TAGS rt
12677
       WHERE rt.PROJ_ID = proj.PROJ_ID
12678
         AND rt.RTAG_ID = RtagId;
12679
 
12680
      Log_Action ( recMatchingPackage.PV_ID, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );
12681
 
12682
   END IF;
12683
 
12684
 
12685
   CLOSE curMatchingPackage;
12686
 
12687
 
12688
 
12689
 
12690
END;
12691
/*-------------------------------------------------------------------------------------------------------*/
12692
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
12693
 
12694
   ReturnValue NUMBER;
12695
 
12696
BEGIN
12697
   SELECT rc.BASE_VIEW_ID INTO ReturnValue
12698
     FROM RELEASE_CONTENT rc
12699
    WHERE rc.RTAG_ID = RtagId
12700
      AND rc.PV_ID = PvId;
12701
 
12702
   RETURN ReturnValue;
12703
END;
12704
/*-------------------------------------------------------------------------------------------------------*/
12705
PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER ) IS
12706
 
12707
BEGIN
12708
   -- Reset Ignore warnings up-the-tree
12709
   RESET_IGNORE_WARNINGS ( TO_CHAR(PvId), RtagId );
12710
 
12711
   -- Refresh Package states
12712
   TOUCH_RELEASE ( RtagId );
12713
 
12714
END;
12715
/*-------------------------------------------------------------------------------------------------------*/
12716
PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER ) IS
12717
   CURSOR curReleases IS
12718
    SELECT rc.RTAG_ID
12719
     FROM RELEASE_CONTENT rc
12720
    WHERE rc.PV_ID = PvId;
12721
    recReleases curReleases%ROWTYPE;
12722
 
12723
BEGIN
12724
 
12725
   OPEN curReleases;
12726
    FETCH curReleases INTO recReleases;
12727
 
12728
   WHILE curReleases%FOUND
12729
   LOOP
12730
 
12731
      RUN_POST_ACTIONS ( PvId, recReleases.RTAG_ID );
12732
 
12733
      FETCH curReleases INTO recReleases;
12734
   END LOOP;
12735
 
12736
   CLOSE curReleases;
12737
 
12738
END;
12739
/*-------------------------------------------------------------------------------------------------------*/
12740
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
12741
 
12742
BEGIN
12743
 
12744
   UPDATE RELEASE_CONTENT rc SET
12745
   rc.BASE_VIEW_ID = NewViewId
12746
   WHERE rc.PV_ID = PvId
12747
     AND rc.RTAG_ID = RtagId;
12748
 
12749
END;
12750
/*-------------------------------------------------------------------------------------------------------*/
12751
PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 ) IS
12752
 
12753
   RowCount NUMBER;
12754
 
12755
 
12756
   CURSOR curPackageClash IS
12757
   SELECT pkg.PKG_NAME,
12758
         er.*
12759
     FROM (
12760
 
12761
           /* Get existing referenced packages */
12762
         SELECT pv.PKG_ID,
12763
                pv.V_EXT
12764
           FROM RELEASE_LINKS rl,
12765
                 RELEASE_CONTENT rc,
12766
                 PACKAGE_VERSIONS pv
12767
          WHERE rl.RTAG_ID = nRtagId
12768
            AND rl.REF_RTAG_ID = rc.RTAG_ID
12769
            AND rc.PV_ID = pv.PV_ID
12770
 
12771
            ) er,
12772
         (
12773
 
12774
         /* Get current reference packages */
12775
         SELECT pv.PKG_ID,
12776
                pv.V_EXT
12777
           FROM RELEASE_CONTENT rc,
12778
                 PACKAGE_VERSIONS pv
12779
          WHERE rc.RTAG_ID = nRefRtagId
12780
            AND rc.PV_ID = pv.PV_ID
12781
 
12782
         ) cr,
12783
         PACKAGES PKG
12784
    WHERE er.PKG_ID = cr.PKG_ID
12785
      AND NVL(er.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
12786
      AND er.PKG_ID = pkg.PKG_ID;
12787
 
12788
   recPackageClash curPackageClash%ROWTYPE;
12789
 
12790
BEGIN
12791
   /*--------------- Business Rules Here -------------------*/
12792
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
12793
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
12794
   END IF;
12795
 
12796
   IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THEN
12797
      RAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );
12798
   END IF;
12799
   /*-------------------------------------------------------*/
12800
   ProblemString := NULL;
12801
 
12802
 
12803
   -- Check if release already has references
12804
   SELECT COUNT(rl.RTAG_ID)  INTO  RowCount
12805
     FROM RELEASE_LINKS rl
12806
    WHERE rl.RTAG_ID = nRtagId;
12807
 
12808
 
12809
   IF RowCount > 0 THEN
12810
      -- Found existing references
12811
 
12812
      -- Make sure there is no package clashes
12813
      OPEN curPackageClash;
12814
       FETCH curPackageClash INTO recPackageClash;
12815
 
12816
      IF curPackageClash%FOUND THEN
12817
 
5502 dpurdie 12818
         ProblemString := ProblemString ||'Following is partial list of package already referenced from other release:'|| PK_PACKAGE.CRLF;
3959 dpurdie 12819
 
12820
         WHILE curPackageClash%FOUND
12821
         LOOP
5502 dpurdie 12822
            EXIT WHEN LENGTH( ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT  || PK_PACKAGE.CRLF ) > 200;   -- Do not allow variable overflow
3959 dpurdie 12823
 
5502 dpurdie 12824
            ProblemString := ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT  || PK_PACKAGE.CRLF;
3959 dpurdie 12825
 
12826
            FETCH curPackageClash INTO recPackageClash;
12827
         END LOOP;
12828
 
1373 dpurdie 12829
      END IF;
12830
 
3959 dpurdie 12831
      CLOSE curPackageClash;
12832
 
12833
 
12834
   ELSE
12835
      -- No references found, hence reference a release
12836
 
12837
 
12838
      -- Remove exising package from this release to be referenced
12839
      REMOVE_RELEASE_REFERENCE ( nRtagId, nRefRtagId);
12840
 
12841
 
12842
      -- Add new linked packages to release
12843
      INSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE)
12844
      SELECT nRtagId,
12845
            rc.PV_ID,
12846
            rc.BASE_VIEW_ID,
12847
            rc.INSERT_STAMP,
12848
            rc.INSERTOR_ID,
12849
            rc.PKG_STATE
12850
        FROM RELEASE_CONTENT rc
12851
       WHERE rc.RTAG_ID = nRefRtagId;
12852
 
12853
 
12854
 
12855
      -- Copy ignore warnings for referenced packages
12856
      INSERT INTO IGNORE_WARNINGS iw (RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE)
12857
      SELECT nRtagId,
12858
            iw.PV_ID,
12859
            iw.DPV_ID,
12860
            iw.IS_PATCH_IGNORE
12861
        FROM IGNORE_WARNINGS iw,
12862
              RELEASE_CONTENT rc
12863
       WHERE iw.RTAG_ID = rc.RTAG_ID
12864
         AND iw.PV_ID = rc.PV_ID
12865
         AND rc.RTAG_ID = nRefRtagId;
12866
 
12867
 
12868
 
12869
      -- Reference release
12870
      INSERT INTO RELEASE_LINKS (RTAG_ID, REF_RTAG_ID)
12871
      VALUES ( nRtagId, nRefRtagId );
12872
 
12873
 
12874
      -- Refresh Package states
12875
      TOUCH_RELEASE ( nRtagId );
12876
 
12877
   END IF;
12878
 
12879
 
12880
END;
1373 dpurdie 12881
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12882
PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER ) IS
1373 dpurdie 12883
 
3959 dpurdie 12884
 
12885
BEGIN
12886
   /*--------------- Business Rules Here -------------------*/
12887
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
12888
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
12889
   END IF;
12890
 
12891
   IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THEN
12892
      RAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );
12893
   END IF;
12894
 
12895
   /*-------------------------------------------------------*/
12896
 
12897
 
12898
   -- Remove ignore warnings for those packages who use referenced packages
12899
   DELETE FROM IGNORE_WARNINGS iw
12900
    WHERE iw.RTAG_ID = nRtagId
12901
      AND iw.DPV_ID IN (
12902
                        SELECT dep.DPV_ID
12903
                       FROM (
12904
 
12905
                           /* Get referenced packages */
12906
                           SELECT pv.PKG_ID,
12907
                                  pv.V_EXT
12908
                             FROM RELEASE_CONTENT rc,
12909
                                   PACKAGE_VERSIONS pv
12910
                            WHERE rc.RTAG_ID = nRefRtagId
12911
                              AND rc.PV_ID = pv.PV_ID
12912
 
12913
                           ) cr,
12914
                           (
12915
 
12916
                           /* Get all dependencies for current release */
12917
                           SELECT DISTINCT
12918
                                 pv.PKG_ID,
12919
                                 pv.V_EXT,
12920
                                 dep.DPV_ID
12921
                             FROM RELEASE_CONTENT rc,
12922
                                 PACKAGE_DEPENDENCIES dep,
12923
                                 PACKAGE_VERSIONS pv
12924
                            WHERE rc.RTAG_ID = nRtagId
12925
                              AND rc.PV_ID = dep.PV_ID
12926
                              AND dep.PV_ID = pv.PV_ID
12927
 
12928
                           ) dep
12929
                      WHERE dep.PKG_ID = cr.PKG_ID
12930
                        AND NVL(dep.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
12931
                     );
12932
 
12933
 
12934
 
12935
 
12936
   -- Remove ignore warnings for those package which are going to be replaced with the reference
12937
   DELETE FROM IGNORE_WARNINGS iw
12938
    WHERE iw.RTAG_ID = nRtagId
12939
      AND iw.PV_ID IN (
12940
                  SELECT pv.PV_ID
12941
                    FROM (
12942
 
12943
                        /* Get referenced packages */
12944
                        SELECT pv.PKG_ID,
12945
                               pv.V_EXT
12946
                          FROM RELEASE_CONTENT rc,
12947
                                PACKAGE_VERSIONS pv
12948
                         WHERE rc.RTAG_ID = nRefRtagId
12949
                           AND rc.PV_ID = pv.PV_ID
12950
 
12951
                        ) cr,
12952
                        RELEASE_CONTENT rc,
12953
                        PACKAGE_VERSIONS pv
12954
                   WHERE pv.PKG_ID = cr.PKG_ID
12955
                     AND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
12956
                     AND rc.RTAG_ID = nRtagId
12957
                     AND rc.PV_ID = pv.PV_ID
12958
                  );
12959
 
12960
 
12961
 
12962
 
12963
 
12964
   -- Remove matching packages from release
12965
   DELETE FROM RELEASE_CONTENT rc
12966
    WHERE rc.RTAG_ID = nRtagId
12967
      AND rc.PV_ID IN (
12968
                  SELECT pv.PV_ID
12969
                    FROM (
12970
 
12971
                        /* Get referenced packages */
12972
                        SELECT pv.PKG_ID,
12973
                               pv.V_EXT
12974
                          FROM RELEASE_CONTENT rc,
12975
                                PACKAGE_VERSIONS pv
12976
                         WHERE rc.RTAG_ID = nRefRtagId
12977
                           AND rc.PV_ID = pv.PV_ID
12978
 
12979
                        ) cr,
12980
                        RELEASE_CONTENT rc,
12981
                        PACKAGE_VERSIONS pv
12982
                   WHERE pv.PKG_ID = cr.PKG_ID
12983
                     AND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
12984
                     AND rc.RTAG_ID = nRtagId
12985
                     AND rc.PV_ID = pv.PV_ID
12986
                  );
12987
 
12988
 
12989
 
12990
 
12991
 
12992
   -- Remove Reference release
12993
   DELETE
12994
     FROM RELEASE_LINKS rl
12995
    WHERE rl.RTAG_ID = nRtagId
12996
      AND rl.REF_RTAG_ID = nRefRtagId;
12997
 
12998
 
12999
   -- Refresh Package states
13000
   TOUCH_RELEASE ( nRtagId );
13001
 
13002
 
13003
END;
13004
/*-------------------------------------------------------------------------------------------------------*/
13005
PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR ) IS
13006
 
13007
   cReleaseMode CHAR(1);
13008
   cPvMode CHAR(1);
13009
 
13010
BEGIN
13011
 
13012
   -- Get Release Mode
13013
   SELECT rt.OFFICIAL INTO cReleaseMode
13014
     FROM RELEASE_TAGS rt
13015
    WHERE rt.RTAG_ID = RtagId;
13016
 
13017
 
13018
   -- Get Package Mode
13019
   SELECT pv.DLOCKED INTO cPvMode
13020
     FROM PACKAGE_VERSIONS pv
13021
    WHERE pv.PV_ID = PvId;
13022
 
13023
   -- Only check if package is locked
13024
   IF (cPvMode = 'Y') THEN
13025
 
13026
      IF (cReleaseMode != 'N') AND (Permission != 'Y')
1373 dpurdie 13027
      THEN
3959 dpurdie 13028
         RAISE_APPLICATION_ERROR (-20000, 'Cannot add package to this release. Release needs to be in Open Mode.' );
13029
 
1373 dpurdie 13030
      END IF;
13031
 
3959 dpurdie 13032
   END IF;
5172 dpurdie 13033
END;
3959 dpurdie 13034
 
5172 dpurdie 13035
/*-----------------------------------------------------------------------------*/
13036
PROCEDURE SET_RELEASE_MODIFIED (nRtagId IN NUMBER ) IS
13037
--
13038
--  Set flags to indicate that the specified release has changed for the
13039
--  purposes of building. (Not every single change)
13040
--
13041
--  Used by Build System to streamline build decisions
13042
--    Bump a sequence number
13043
--    Set a TimeStamp
13044
--
13045
--  Care must be taken to avoid concuency issues
13046
--  Must Insert or Update in a safe manner
13047
--
13048
--  This should be called whenever the package_versions in the release have changed in such
13049
--  a manner that the build daemons should examine the release. This includes:
13050
--   - Packages added, removed and version updated
13051
--   - Packages build status changed (re-included in the release)
13052
--   - Packages made Pending Build
13053
--   - Daemon instruction add/updated (Test Build)
13054
--
13055
--  Note: Not yet used (10-Oct-2014)
13056
--        Uses SEQ_RELEASE_MOD and Table: RELEASE_MODIFIED
13057
BEGIN
13058
 LOOP
13059
  BEGIN
13060
    MERGE INTO RELEASE_MODIFIED USING dual ON ( RTAG_ID=nRtagId )
5502 dpurdie 13061
      WHEN MATCHED THEN UPDATE SET SEQNUM=SEQ_RELEASE_MOD.NEXTVAL,TIMESTAMP=CURRENT_TIMESTAMP
13062
      WHEN NOT MATCHED THEN INSERT (RTAG_ID,TIMESTAMP,SEQNUM)
5172 dpurdie 13063
        VALUES (nRtagId, CURRENT_TIMESTAMP,SEQ_RELEASE_MOD.NEXTVAL );
13064
    EXIT; -- success? -> exit loop
13065
  EXCEPTION
13066
    WHEN NO_DATA_FOUND THEN -- the entry was concurrently deleted
13067
      NULL; -- exception? -> no op, i.e. continue looping
13068
    WHEN DUP_VAL_ON_INDEX THEN -- an entry was concurrently inserted
13069
      NULL; -- exception? -> no op, i.e. continue looping
13070
  END;
13071
 END LOOP;
13072
END;
3959 dpurdie 13073
 
5172 dpurdie 13074
/*-------------------------------------------------------------------------------------------------------*/
13075
--  ADD_RELEASE_SDK
13076
--  ADD an SDK Reference to a Release
13077
--  Args: nRtagId           - RTAG_ID of Release to Process
13078
--        nSdktagId         - SDKTAG_ID of SDK to add to Release
13079
--        nUserId           - User IF of user performing the action
13080
--        bDelete           - Delete conflicting (non sdk) packages from the release 0:False
13081
--        nInsertCount      - Returns: Number of Packages inserted: -1 is an error
13082
--        curReturn         - Returns: On error a table of PV_IDs of packages causing the conflict
13083
--
13084
PROCEDURE ADD_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER, nUserId IN NUMBER, bDelete IN NUMBER, nInsertCount OUT NUMBER, curReturn OUT typeCur )IS
13085
 
13086
  vartbl RELMGR_NUMBER_TAB_T := RELMGR_NUMBER_TAB_T();
13087
  ii NUMBER;
13088
  view_id NUMBER;
13089
 
13090
    -- Detect clashing packages
13091
    -- Packages provided by the SDK that are present in the Release
13092
    CURSOR curPackageClash
13093
    IS
13094
      SELECT release.pvid
13095
      FROM
13096
        -- Alias and pvid from SDK
13097
        (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
13098
          pv.PV_ID                  AS pvid
13099
        FROM SDK_CONTENT sc, PACKAGE_VERSIONS pv
13100
        WHERE sc.SDKTAG_ID  = nSdktagId
13101
        AND sc.SDKPKG_STATE = 'E'
13102
        AND pv.PV_ID        = sc.PV_ID
13103
        ) sdk,
13104
      -- Alias and pvid from Release
13105
      (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
13106
        pv.PV_ID                  AS pvid
13107
      FROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pv
13108
      WHERE rc.rtag_id = nRtagId
13109
      AND rc.PV_ID    = pv.PV_ID
13110
      ) RELEASE
13111
    WHERE sdk.pkgAlias = release.pkgAlias;
5502 dpurdie 13112
 
5172 dpurdie 13113
   -- Detect packages in the release that are provided by the SDK
13114
   -- Do not include packages provided by an SDK - these cannot be replaced
13115
       CURSOR curPackageReplacable
13116
    IS
13117
      SELECT release.pvid
13118
      FROM
13119
        -- Alias and pvid from SDK
13120
        (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
13121
                pv.PV_ID                            AS pvid
13122
        FROM SDK_CONTENT sc, PACKAGE_VERSIONS pv
13123
        WHERE sc.SDKTAG_ID    = nSdktagId
13124
          AND sc.SDKPKG_STATE = 'E'
13125
          AND pv.PV_ID        = sc.PV_ID
13126
        ) sdk,
13127
      -- Alias and pvid from Release
13128
      --  Excluding those import by any SDK
13129
      (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
13130
              pv.PV_ID                            AS pvid
13131
       FROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pv
13132
       WHERE rc.rtag_id = nRtagId
13133
         AND rc.PV_ID   = pv.PV_ID
13134
         AND rc.SDKTAG_ID is NULL
13135
      ) RELEASE
13136
    WHERE sdk.pkgAlias = release.pkgAlias;
13137
 
13138
BEGIN
13139
   /*--------------- Business Rules Here -------------------*/
13140
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
13141
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
13142
   END IF;
13143
 
13144
   IF (nSdktagId = 0) OR ( nSdktagId IS NULL ) THEN
13145
      RAISE_APPLICATION_ERROR (-20000, 'nSdktagId is not supplied. [nSdktagId='|| nSdktagId ||']' );
13146
   END IF;
13147
   /*-------------------------------------------------------*/
5502 dpurdie 13148
 
5172 dpurdie 13149
   -- Delete packages from the release if they are provided by the SDK
5502 dpurdie 13150
   -- provided they are not provided by another SDK
5172 dpurdie 13151
    IF bDelete != 0 THEN
13152
      FOR rdata IN curPackageClash LOOP
13153
        DELETE FROM RELEASE_CONTENT rc
13154
          WHERE rc.RTAG_ID = nRtagId
13155
          AND rc.PV_ID = rdata.pvid;
13156
      END LOOP;
13157
 
13158
      -- Remove exising package from this release to be referenced
13159
      REMOVE_RELEASE_SDK ( nRtagId, nSdktagId);
13160
    END IF;
13161
 
13162
    -- Detect and report package clashes
13163
    -- Packages provided by the SDK that are (still) in the release
13164
    ii := 1;
13165
    FOR rdata IN curPackageClash LOOP
13166
      vartbl.extend;
13167
      --vartbl(ii) := TABLE_PVID(rdata.pvid);
13168
      vartbl(ii) := rdata.pvid;
13169
      ii := ii + 1;
13170
    END LOOP;
13171
    -- Make sure there is no package clashes
5502 dpurdie 13172
 
5172 dpurdie 13173
    IF ii != 1 THEN
13174
      nInsertCount := -1;
13175
      open curReturn for select * from table(vartbl);
13176
      --curReturn := vartbl;
13177
      RETURN;
13178
    END IF;
13179
 
13180
    -- Determine the target view_id
13181
    SELECT sn.VIEW_ID into view_id FROM SDK_TAGS st,  SDK_NAMES sn WHERE sn.SDK_ID = st.SDK_ID AND st.SDKTAG_ID = nSdktagId;
5502 dpurdie 13182
 
5172 dpurdie 13183
    -- Add SDK exported packages to release
13184
    INSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE, SDKTAG_ID)
5502 dpurdie 13185
    SELECT nRtagId, sc.PV_ID, view_id, sysdate, nUserId, 11, nSdktagId
5172 dpurdie 13186
        FROM SDK_CONTENT sc
13187
        WHERE sc.SDKTAG_ID = nSdktagId
13188
        AND sc.SDKPKG_STATE = 'E';
13189
    nInsertCount := sql%ROWCOUNT;
13190
 
13191
    -- Refresh Package states
13192
    TOUCH_RELEASE ( nRtagId );
13193
    SET_RELEASE_MODIFIED(nRtagId);
13194
 
3959 dpurdie 13195
END;
13196
 
1373 dpurdie 13197
/*-------------------------------------------------------------------------------------------------------*/
5172 dpurdie 13198
--  Name:   REMOVE_RELEASE_SDK
13199
--  Desc:   Remove an SDK from the specified Release
13200
--          It is not an error to remove an SDK that is not attached to the release
13201
--  Args:   nRtagId         - RTAG_ID of the Release to Process
13202
--          nSdktagId       - SDKTAG_ID to remove
13203
--
13204
PROCEDURE REMOVE_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER ) IS
13205
 
13206
BEGIN
13207
   /*--------------- Business Rules Here -------------------*/
13208
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
13209
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
13210
   END IF;
13211
 
13212
   IF (nSdktagId = 0) OR ( nSdktagId IS NULL ) THEN
13213
      RAISE_APPLICATION_ERROR (-20000, 'nSdktagId is not supplied. [nSdktagId='|| nSdktagId ||']' );
13214
   END IF;
13215
 
13216
   /*-------------------------------------------------------*/
13217
 
13218
   -- Remove matching packages from release
13219
   DELETE FROM RELEASE_CONTENT rc
13220
    WHERE rc.RTAG_ID = nRtagId
13221
      AND rc.SDKTAG_ID = nSdktagId;
13222
 
13223
   -- Refresh Package states
13224
   TOUCH_RELEASE ( nRtagId );
13225
   SET_RELEASE_MODIFIED(nRtagId);
13226
END;
13227
 
13228
--------------------------------------------------------------------------------
13229
--  CAN_ADD_PKG_TO_RELEASE
13230
--  Test if a Package (pvid) can be added to a given release
13231
--  The test will not allwo an exiting package to be replaced IF it is imported via an
13232
--  SDK
13233
--
13234
--  Returns:  0 - Package cannot be replaced
13235
--            1 - Package can be replaced
13236
--            2 - Package will be added
5502 dpurdie 13237
--
5172 dpurdie 13238
FUNCTION CAN_ADD_PKG_TO_RELEASE ( nRtagId IN NUMBER, nPvid in NUMBER ) RETURN NUMBER IS
13239
 
13240
   sAlias VARCHAR2(4000);
5502 dpurdie 13241
 
5172 dpurdie 13242
    -- Find package for proccessing
13243
    -- Use unique constraint of PKG_ID and V_EXT
13244
   CURSOR curReplacePkg IS
13245
    SELECT pv.PV_ID
13246
     FROM RELEASE_CONTENT rc,
13247
           PACKAGE_VERSIONS pv
13248
    WHERE rc.PV_ID = pv.PV_ID
13249
      AND rc.RTAG_ID = nRtagId
13250
      AND pv.PKG_ID || NVL( pv.V_EXT, 'LINK_A_NULL' ) = sAlias;
5502 dpurdie 13251
 
5172 dpurdie 13252
    recReplacePkg curReplacePkg%ROWTYPE;
13253
    nSdkTag NUMBER;
5502 dpurdie 13254
 
5172 dpurdie 13255
BEGIN
13256
   /*--------------- Business Rules Here -------------------*/
13257
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
13258
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
13259
   END IF;
13260
 
13261
   IF (nPvid = 0) OR ( nPvid IS NULL ) THEN
13262
      RAISE_APPLICATION_ERROR (-20000, 'nPvid is not supplied. [nPvid='|| nPvid ||']' );
13263
   END IF;
13264
 
13265
    -- Find pkg Alias for provided package
5502 dpurdie 13266
   SELECT pv.PKG_ID || NVL( pv.V_EXT, 'LINK_A_NULL' )
5172 dpurdie 13267
     INTO sAlias
13268
     FROM PACKAGE_VERSIONS pv
13269
    WHERE pv.PV_ID = nPvid;
13270
 
13271
      -- Find Package that may be replaced
13272
      OPEN curReplacePkg;
13273
       FETCH curReplacePkg INTO recReplacePkg;
13274
 
13275
       IF curReplacePkg%FOUND THEN
13276
        SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
13277
         WHERE rtag_id = nRtagId
13278
         AND pv_id = recReplacePkg.PV_ID;
5502 dpurdie 13279
 
5172 dpurdie 13280
        If nSdkTag IS NOT NULL  THEN
13281
          RETURN 0;
13282
        ELSE
13283
          RETURN 1;
13284
        END IF;
13285
      END IF;
13286
 
13287
  -- No package found, so it can be added
13288
  RETURN 2;
5502 dpurdie 13289
 
5172 dpurdie 13290
  EXCEPTION
13291
  WHEN NO_DATA_FOUND THEN
13292
    RAISE_APPLICATION_ERROR (-20000, 'nPvid is not valid. [nPvid='|| nPvid ||']' );
13293
END;
13294
 
13295
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13296
END PK_RELEASE;
4040 dpurdie 13297
 
3959 dpurdie 13298
/
4040 dpurdie 13299
--------------------------------------------------------
13300
--  DDL for Package Body PK_RMAPI
13301
--------------------------------------------------------
13302
 
5172 dpurdie 13303
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_RMAPI" 
3959 dpurdie 13304
IS
13305
 
13306
   /*-------------------------------------------------------------------------------------------------------*/
13307
   FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)
13308
      RETURN typecur
1373 dpurdie 13309
   IS
3959 dpurdie 13310
      npvid     NUMBER  := 0;
13311
      RECORDS   typecur;
1373 dpurdie 13312
   BEGIN
3959 dpurdie 13313
      BEGIN
13314
         -- Get PV_ID --
13315
         SELECT pv.pv_id
13316
           INTO npvid
13317
           FROM PACKAGES pkg, package_versions pv
13318
          WHERE pv.pkg_id = pkg.pkg_id
13319
            AND pkg.pkg_name = pkgname
13320
            AND pv.pkg_version = pkgversion;
13321
      EXCEPTION
13322
         WHEN NO_DATA_FOUND
13323
         THEN
13324
            raise_application_error (-20000, 'Package Not Found!');
13325
            --WHEN OTHERS THEN
13326
                  -- Consider logging the error and then re-raise
13327
            RAISE;
13328
      END;
1373 dpurdie 13329
 
3959 dpurdie 13330
      -- Finally get package dependencies --
13331
      OPEN RECORDS FOR
13332
         SELECT dpv.pv_id, dpkg.pkg_name, dpv.pkg_version
13333
           FROM package_dependencies dep, PACKAGES dpkg, package_versions dpv
13334
          WHERE dep.pv_id = npvid
13335
            AND dpv.pkg_id = dpkg.pkg_id
13336
            AND dpv.pv_id = dep.dpv_id;
13337
 
13338
      RETURN RECORDS;
1373 dpurdie 13339
   END;
13340
 
13341
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13342
   FUNCTION wip_iteration_package (
13343
      projname        VARCHAR2,
13344
      iterationname   VARCHAR2,
13345
      pkgname         VARCHAR2
1373 dpurdie 13346
   )
3959 dpurdie 13347
      RETURN typecur
1373 dpurdie 13348
   IS
3959 dpurdie 13349
      nrtagid   NUMBER  := 0;
13350
      RECORDS   typecur;
1373 dpurdie 13351
   BEGIN
3959 dpurdie 13352
      BEGIN
13353
         -- Get latest rtag_id --
13354
         SELECT rt.rtag_id
13355
           INTO nrtagid
13356
           FROM projects proj, release_tags rt
13357
          WHERE rt.proj_id = proj.proj_id
13358
            AND UPPER (proj.proj_name) = UPPER (projname)
13359
            AND UPPER (rt.rtag_name) = UPPER (iterationname);
1373 dpurdie 13360
 
3959 dpurdie 13361
         IF (nrtagid IS NULL)
13362
         THEN
13363
            raise_application_error (-20000,
13364
                                     'Work In Progress is Not Found!');
13365
         END IF;
13366
      EXCEPTION
13367
         WHEN NO_DATA_FOUND
13368
         THEN
13369
            raise_application_error (-20000,
13370
                                     'Work In Progress is Not Found!');
13371
            RAISE;
13372
      END;
13373
 
13374
      -- Finally get package dependencies --
13375
      OPEN RECORDS FOR
13376
         SELECT pv.pkg_version, pv.dlocked AS is_official, pv.pkg_label,
13377
                pv.src_path
13378
           FROM PACKAGES pkg, package_versions pv, work_in_progress wip
13379
          WHERE pv.pkg_id = pkg.pkg_id
13380
            AND wip.pv_id = pv.pv_id
13381
            AND wip.rtag_id = nrtagid
13382
            AND pkg.pkg_name = pkgname;
13383
 
13384
      RETURN RECORDS;
1373 dpurdie 13385
   END;
13386
 
13387
/*-------------------------------------------------------------------------------------------------------*/
4553 dpurdie 13388
-- Use:
13389
--   Used by the Automated Build System to release a new package
13390
-- Returns:
13391
--    Use application errors to indicate programming errors
13392
--    Use negative return codes to indicate correctable user problems
13393
--    Positive return code is the new PVID of the package
6600 dpurdie 13394
--
13395
-- Note: Being deprecated in favor of auto_make_vcsrelease2
4553 dpurdie 13396
  FUNCTION auto_make_vcsrelease (
3959 dpurdie 13397
      rtagid                   IN   NUMBER,
13398
      pkgname                  IN   VARCHAR2,
13399
      vext                     IN   VARCHAR2,
13400
      newpkgversion            IN   VARCHAR2,
13401
      vcstag                   IN   VARCHAR2,
13402
      dependenciesimportlist   IN   VARCHAR2,
13403
      isrippled                IN   NUMBER,
13404
      username                 IN   VARCHAR2
13405
   )
1373 dpurdie 13406
      RETURN NUMBER
13407
   IS
3959 dpurdie 13408
      pkgid                           NUMBER;
13409
      pvid                            NUMBER                        := 0;
13410
      userid                          NUMBER;
13411
      dlocked                         VARCHAR2 (20)                 := NULL;
13412
      clonefrompvid                   NUMBER;
13413
      ssv_mm                          package_versions.v_mm%TYPE;
13414
      ssv_nmm                         package_versions.v_nmm%TYPE;
13415
      ssv_ext                         package_versions.v_ext%TYPE;
13416
      return_package_not_found        NUMBER                        := -1;
13417
      return_package_already_exists   NUMBER                        := -2;
13418
      return_not_approved             NUMBER                        := -3;
13419
      return_migrated_pkg             NUMBER                        := -4;
4553 dpurdie 13420
      return_svn_path_changed         NUMBER                        := -5;
1373 dpurdie 13421
 
13422
 
3959 dpurdie 13423
      x_vcstypeid                     NUMBER;
13424
      x_tag                           VARCHAR2(32);
13425
      x_label                         VARCHAR2(60);
13426
      x_srcpath                       VARCHAR2(2000);
13427
      p_srcpath                       VARCHAR2(2000);
1373 dpurdie 13428
 
3959 dpurdie 13429
      -- Regular expression constituents
13430
      Token         VARCHAR2(16) := '([^:]+)';  -- a token is anything except a ':' character
13431
      Seperator     VARCHAR2(4)  := '::';       -- tokens will be seperated by '::'
13432
      BOL           VARCHAR2(4)  := '^';
13433
      Anything      VARCHAR2(4)  := '.*';
13434
      ReplaceToken1 VARCHAR2(4)  := '\1';
13435
      ReplaceToken2 VARCHAR2(4)  := '\2';
13436
      ReplaceToken3 VARCHAR2(4)  := '\3';
13437
      iprev_modifier_id               NUMBER;
13438
 
1373 dpurdie 13439
   BEGIN
3959 dpurdie 13440
      /*--------------- Business Rules Here -------------------*/
13441
      IF (rtagid IS NULL)
13442
      THEN
13443
         raise_application_error (-20000, 'RtagId must be supplied.');
13444
      END IF;
1373 dpurdie 13445
 
3959 dpurdie 13446
      IF (pkgname IS NULL)
13447
      THEN
13448
         raise_application_error (-20000, 'PkgName must be supplied.');
13449
      END IF;
1373 dpurdie 13450
 
3959 dpurdie 13451
      IF (newpkgversion IS NULL)
1373 dpurdie 13452
      THEN
3959 dpurdie 13453
         raise_application_error (-20000, 'PkgVersion must be supplied.');
1373 dpurdie 13454
      END IF;
13455
 
3959 dpurdie 13456
      IF (vcstag IS NULL)
1373 dpurdie 13457
      THEN
3959 dpurdie 13458
         raise_application_error (-20000, 'PkgVcsTag must be supplied.');
1373 dpurdie 13459
      END IF;
13460
 
3959 dpurdie 13461
      IF (isrippled IS NULL) OR (isrippled < 0) OR (isrippled > 1)
1373 dpurdie 13462
      THEN
4553 dpurdie 13463
         raise_application_error (-20000, 'IsRippled must be set to 1 (Is rippled build) or 0 (Is planned build).');
1373 dpurdie 13464
      END IF;
13465
 
3959 dpurdie 13466
      IF (username IS NULL)
1373 dpurdie 13467
      THEN
3959 dpurdie 13468
         raise_application_error (-20000, 'UserName must be supplied.');
1373 dpurdie 13469
      END IF;
13470
 
3959 dpurdie 13471
      -- Parse the PkgVcsTag
13472
      -- Sets up
13473
      --   x_tag, x_label, x_srcpath
1373 dpurdie 13474
 
3959 dpurdie 13475
       BEGIN
13476
          -- Extract the first token - this will be the short tag name for the VCS (eg. 'CC', 'SVN', etc)
13477
          x_tag := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Anything, ReplaceToken1);
1373 dpurdie 13478
 
3959 dpurdie 13479
          -- Decode the short tag
13480
          CASE x_tag
13481
             WHEN 'CC' THEN
13482
                -- extract the 2nd and 3rd tokens, those being the source path and label respectively
13483
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
13484
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
1373 dpurdie 13485
 
3959 dpurdie 13486
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
13487
                -- check for that error as well as the obvious zero-length string conditions.
13488
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
13489
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
13490
                END IF;
6031 dpurdie 13491
 
3959 dpurdie 13492
                IF isSVNbyName(pkgname) > 0 THEN
13493
                    -- Don't allow migrated packages to be released from a CC label
13494
                    return return_migrated_pkg;
13495
                END IF;
1373 dpurdie 13496
 
13497
 
3959 dpurdie 13498
             WHEN 'SVN' THEN
13499
                -- extract the 2nd token, that being the subversion tag
13500
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
13501
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
1373 dpurdie 13502
 
3959 dpurdie 13503
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
13504
                -- check for that error as well as the obvious zero-length string conditions.
13505
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
13506
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
13507
                END IF;
13508
 
13509
             WHEN 'UC' THEN
13510
                -- nothing to extract, just assign defaults
13511
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
13512
                x_label   := 'N/A';
13513
             ELSE
13514
                raise_application_error (-20000, 'Unrecognised VCS Tag!');
13515
          END CASE;
13516
       END;
13517
 
13518
      -- Get the VCS_TYPE_ID for the version control system.
13519
      BEGIN
13520
         SELECT vt.vcs_type_id
13521
         INTO x_vcstypeid
13522
         FROM VCS_TYPE vt
13523
         WHERE vt.tag = x_tag;
13524
         EXCEPTION
13525
            WHEN NO_DATA_FOUND THEN
13526
               raise_application_error (-20000, 'Database is missing a version control system tag (' || x_tag || ')!' );
13527
      END;
13528
 
13529
 
13530
      -- Get user_id
13531
      BEGIN
13532
         SELECT usr.user_id
13533
           INTO userid
13534
           FROM users usr
13535
          WHERE UPPER (usr.user_name) = UPPER (username)
13536
            AND usr.is_disabled IS NULL;
13537
      EXCEPTION
13538
         WHEN NO_DATA_FOUND
1373 dpurdie 13539
         THEN
4585 dpurdie 13540
            raise_application_error (-20000, 'UserName: ' || username || ' is not valid or disabled.' );
3959 dpurdie 13541
      END;
1373 dpurdie 13542
 
3959 dpurdie 13543
/*-------------------------------------------------------*/
1373 dpurdie 13544
 
3959 dpurdie 13545
      -- Create package if necessary
13546
      IF isrippled = 1
1373 dpurdie 13547
      THEN
3959 dpurdie 13548
         /* Ripple Build */
13549
         BEGIN
13550
            -- Make sure that package does not exist
13551
            SELECT pv.pv_id
13552
              INTO pvid
13553
              FROM package_versions pv, PACKAGES pkg
13554
             WHERE pv.pkg_id = pkg.pkg_id
13555
               AND pkg.pkg_name = pkgname
13556
               AND pv.pkg_version = newpkgversion;
13557
         EXCEPTION
13558
            WHEN NO_DATA_FOUND
13559
            THEN
13560
               pvid := 0;
13561
         END;
13562
 
13563
         IF (pvid = 0)
1373 dpurdie 13564
         THEN
3959 dpurdie 13565
            -- Split current version in parts
13566
            split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
13567
 
13568
            BEGIN
13569
               -- Find package to be replaced with the ripple package
13570
               IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
13571
               THEN
13572
                  SELECT pv.pv_id, pv.src_path
13573
                    INTO clonefrompvid, p_srcpath
13574
                    FROM PACKAGES pkg, package_versions pv,
13575
                         release_content rc
13576
                   WHERE rc.pv_id = pv.pv_id
13577
                     AND pv.pkg_id = pkg.pkg_id
13578
                     AND rc.rtag_id = rtagid
13579
                     AND pkg.pkg_name = pkgname
13580
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|');
13581
               ELSE
13582
                  SELECT pv.pv_id, pv.src_path
13583
                    INTO clonefrompvid, p_srcpath
13584
                    FROM PACKAGES pkg, package_versions pv,
13585
                         release_content rc
13586
                   WHERE rc.pv_id = pv.pv_id
13587
                     AND pv.pkg_id = pkg.pkg_id
13588
                     AND rc.rtag_id = rtagid
13589
                     AND pkg.pkg_name = pkgname
13590
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
13591
               END IF;
13592
            EXCEPTION
13593
               WHEN NO_DATA_FOUND
13594
               THEN
13595
                  raise_application_error
13596
                                        (-20000,
13597
                                            'Cannot get CloneFromPvId. VExt='
13598
                                         || vext
13599
                                         || ', RtagId='
13600
                                         || rtagid
13601
                                         || ', PkgName='
13602
                                         || pkgname
13603
                                         || ', SSV_EXT='
13604
                                         || ssv_ext
13605
                                        );
13606
            END;
13607
 
13608
            IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
13609
            THEN
13610
               -- Create package
13611
               seed_package_names_versions (pkgname,
13612
                                            newpkgversion,
13613
                                            userid,
13614
                                            pvid,
13615
                                            clonefrompvid
13616
                                           );
13617
            ELSE
4585 dpurdie 13618
               -- Create package (now both the same)
13619
               seed_package_names_versions (pkgname,
3959 dpurdie 13620
                                             newpkgversion,
13621
                                             userid,
13622
                                             pvid,
13623
                                             clonefrompvid
13624
                                            );
13625
            END IF;
13626
 
13627
            -- Update Package reason for release
13628
            UPDATE package_versions pv
13629
               SET pv.comments = 'Rippled Build.',
13630
                   pv.build_type = 'Y'
13631
             WHERE pv.pv_id = pvid;
13632
         ELSE
13633
            -- Package already exists, it was built previously, and has just been re-built again probably due to the
13634
            -- fact that the archive was cleaned of the original build artifacts at some point, and those artifacts
13635
            -- are now needed once more. As such, we need to ensure that a new release note generation occurs so
13636
            -- reset the package_versions[pvid].release_notes_info field to enable that to happen.
13637
            UPDATE package_versions pv
13638
               SET pv.release_notes_info = null,
13639
                   pv.modified_stamp = ora_sysdatetime
13640
             WHERE pv.pv_id = pvid;
13641
 
13642
            --DEVI-066151
13643
            log_action (pvid, 'package_rebuilt', userid, 'Package Re-built...');
13644
 
13645
            RETURN return_package_already_exists;
1373 dpurdie 13646
         END IF;
13647
      ELSE
3959 dpurdie 13648
         /* Auto build from Pending area */
13649
 
13650
         -- Find package in pending area
13651
         BEGIN
13652
            SELECT pv.pv_id, pv.dlocked, pv.src_path
13653
              INTO pvid, dlocked, p_srcpath
13654
              FROM planned pl, package_versions pv, PACKAGES pkg
13655
             WHERE pl.pv_id = pv.pv_id
13656
               AND pv.pkg_id = pkg.pkg_id
13657
               AND pl.rtag_id = rtagid
13658
               AND pkg.pkg_name = pkgname
13659
               AND pv.dlocked = 'A'
13660
               AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|')
13661
               AND rownum = 1
13662
             ORDER BY pv.modified_stamp;
13663
         EXCEPTION
13664
            WHEN NO_DATA_FOUND
13665
            THEN
13666
               pvid := 0;
13667
         END;
13668
 
13669
         IF (pvid = 0)
1373 dpurdie 13670
         THEN
3959 dpurdie 13671
            -- Package does not exist in pending area, hence report it
13672
            RETURN return_package_not_found;
13673
         ELSIF (dlocked != 'A')
1373 dpurdie 13674
         THEN
3959 dpurdie 13675
            -- Package is not approved for autobuild
13676
            RETURN return_not_approved;
1373 dpurdie 13677
         END IF;
13678
 
13679
      END IF;
13680
 
3959 dpurdie 13681
      -- Ensure Source Path does not change
13682
      -- Do not expect the SVN development branch to change
13683
      -- From the previous package
13684
      IF ( x_tag = 'SVN' AND p_srcpath != x_srcpath )
1373 dpurdie 13685
      THEN
4553 dpurdie 13686
        return return_svn_path_changed;
1373 dpurdie 13687
      END IF;
13688
 
3959 dpurdie 13689
      BEGIN
13690
         -- Import Dependencies
13691
         import_dependencies (pvid, dependenciesimportlist, userid);
13692
      END;
1373 dpurdie 13693
 
13694
 
3959 dpurdie 13695
      BEGIN
13696
         -- Split current version in parts
13697
         split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
1373 dpurdie 13698
 
3959 dpurdie 13699
         -- Update Package Details
13700
         UPDATE package_versions pv
13701
            SET pv.pkg_version = newpkgversion,
13702
                pv.v_ext = ssv_ext,
13703
                pv.v_mm = ssv_mm,
13704
                pv.v_nmm = ssv_nmm,
13705
                pv.src_path = x_srcpath,
13706
                pv.pkg_label = x_label,
13707
                pv.vcs_type_id = x_vcstypeid
13708
          WHERE pv.pv_id = pvid;
13709
      EXCEPTION
13710
         WHEN DUP_VAL_ON_INDEX
13711
         THEN
13712
            -- Package already exists, hence cannot be used for ripple build
13713
            RETURN return_package_already_exists;
13714
      END;
13715
 
13716
      -- Update the is_autobuildable
13717
      UPDATE package_versions
13718
         SET is_autobuildable = 'Y'
13719
       WHERE pv_id = pvid;
13720
 
13721
      -- DEVI-063601
13722
      -- For planned builds the modifier_id shouldn't be set to buildadm.
13723
      -- To ensure this the modifier_id is obtained so it can be restored after
13724
      -- the function pk_environment.auto_make_release is called.
13725
      -- This function calls, change_state, which sets the modifier_id to the
13726
      -- specified userid, which for auto builds is buildadm.
13727
      SELECT pv.modifier_id INTO iprev_modifier_id
13728
      FROM package_versions pv WHERE pv.pv_id = pvid;
13729
 
13730
      -- Now release package
13731
      pk_environment.auto_make_release (pvid,
13732
                                        rtagid,
13733
                                        userid,
13734
                                        vext,
13735
                                        ssv_ext,
13736
                                        clonefrompvid
13737
                                       );
13738
 
13739
      -- DEVI-063601
13740
      -- if it is a planned build then restore the modifier_id to the previous modifier
13741
      UPDATE package_versions pv SET pv.modifier_id = iprev_modifier_id
13742
      WHERE pv.pv_id = pvid;
13743
 
13744
      --Now clean the PLANNED_VERSIONS table
13745
      SELECT pkg_id
13746
        INTO pkgid
13747
        FROM PACKAGES
13748
       WHERE pkg_name = pkgname;
13749
 
13750
      DELETE FROM planned_versions
13751
            WHERE pkg_id = pkgid AND pkg_version = newpkgversion;
13752
 
13753
      RETURN pvid;
1373 dpurdie 13754
   END;
13755
 
13756
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13757
   PROCEDURE import_dependencies (
13758
      pvid                     IN   NUMBER,
13759
      dependenciesimportlist   IN   VARCHAR2,
13760
      userid                   IN   NUMBER
13761
   )
1373 dpurdie 13762
   IS
3959 dpurdie 13763
/*
13764
|| DependenciesImportList Format:
13765
|| "pkgA","1.0.0";"pkgB","2.0.0";
13766
||  OR 'pkgA','1.0.0';'pkgB','2.0.0';
13767
*/
13768
      TYPE tdictionary IS TABLE OF VARCHAR2 (4000)
13769
         INDEX BY VARCHAR2 (4000);
13770
 
13771
      seperator         VARCHAR2 (2)           := '||';
13772
      pkgname           VARCHAR2 (4000);
13773
      pkgversion        VARCHAR2 (4000);
13774
      buildtype         VARCHAR2 (50);
13775
      pkgid             NUMBER;
13776
      vext              VARCHAR2 (4000);
13777
      dpvid             NUMBER;
13778
      slist             VARCHAR2 (4000);
13779
      cbuildtypes       tdictionary;
13780
      dependencyrow     NUMBER;
13781
      sdependency       VARCHAR2 (4000);
13782
      first_pos         VARCHAR2 (4000);
13783
      second_pos        VARCHAR2 (4000);
13784
      third_pos         VARCHAR2 (4000);
13785
      forth_pos         VARCHAR2 (4000);
13786
      citemcollection   relmgr_varchar2_tab_t  := relmgr_varchar2_tab_t ();
13787
 
13788
      CURSOR curbuildtype
13789
      IS
13790
         SELECT dpv.pkg_id || seperator || dpv.v_ext AS pkgid_ext,
13791
                dep.build_type
13792
           FROM package_dependencies dep, package_versions dpv
13793
          WHERE dep.pv_id = pvid AND dep.dpv_id = dpv.pv_id;
13794
 
13795
      recbuildtype      curbuildtype%ROWTYPE;
1373 dpurdie 13796
   BEGIN
3959 dpurdie 13797
      slist := dependenciesimportlist;
1373 dpurdie 13798
 
3959 dpurdie 13799
      -- Preformat String
13800
      IF NOT slist IS NULL
1373 dpurdie 13801
      THEN
3959 dpurdie 13802
         slist := REPLACE (slist, ' ');                      -- Remove spaces
13803
         slist := REPLACE (slist, UTL_TCP.crlf);
13804
         -- Remove new line and carriage-return characters
13805
         slist := REPLACE (slist, '''', '"');             -- Replace ' with "
1373 dpurdie 13806
      END IF;
13807
 
3959 dpurdie 13808
      -- Get Current Dependencies
13809
      OPEN curbuildtype;
1373 dpurdie 13810
 
3959 dpurdie 13811
      FETCH curbuildtype
13812
       INTO recbuildtype;
1373 dpurdie 13813
 
3959 dpurdie 13814
      WHILE curbuildtype%FOUND
13815
      LOOP
13816
         cbuildtypes (recbuildtype.pkgid_ext) := recbuildtype.build_type;
1373 dpurdie 13817
 
3959 dpurdie 13818
         FETCH curbuildtype
13819
          INTO recbuildtype;
13820
      END LOOP;
1373 dpurdie 13821
 
3959 dpurdie 13822
      CLOSE curbuildtype;
1373 dpurdie 13823
 
3959 dpurdie 13824
      -- Separate dependencies with ; separator
13825
      citemcollection := in_list_varchar2 (slist, ';');
1373 dpurdie 13826
 
3959 dpurdie 13827
      BEGIN
13828
         -- Remove old dependencies
13829
         DELETE FROM package_dependencies dep
13830
               WHERE dep.pv_id = pvid;
1373 dpurdie 13831
 
3959 dpurdie 13832
         -- Loop through dependencies
13833
         FOR dependencyrow IN 1 .. citemcollection.COUNT
13834
         LOOP
13835
            -- Extract pkg_name and pkg_version
13836
            sdependency := citemcollection (dependencyrow);
13837
            first_pos := INSTR (sdependency, '"', 1, 1);
13838
            second_pos := INSTR (sdependency, '"', 1, 2);
13839
            third_pos := INSTR (sdependency, '"', 1, 3);
13840
            forth_pos := INSTR (sdependency, '"', 1, 4);
13841
            pkgname :=
13842
               SUBSTR (sdependency,
13843
                       (first_pos + 1),
13844
                       (second_pos - first_pos - 1)
13845
                      );
13846
            pkgversion :=
13847
               SUBSTR (sdependency,
13848
                       (third_pos + 1),
13849
                       (forth_pos - third_pos - 1)
13850
                      );
13851
 
13852
            -- Dependency must exits to be linked against
13853
            BEGIN
13854
               SELECT pv.pv_id, pv.pkg_id, pv.v_ext
13855
                 INTO dpvid, pkgid, vext
13856
                 FROM package_versions pv, PACKAGES pkg
13857
                WHERE pv.pkg_id = pkg.pkg_id
13858
                  AND pkg.pkg_name = pkgname
13859
                  AND pv.pkg_version = pkgversion;
13860
            EXCEPTION
13861
               WHEN NO_DATA_FOUND
13862
               THEN
13863
                  raise_application_error
13864
                                  (-20000,
13865
                                      'Dependency ['
13866
                                   || pkgname
13867
                                   || ' '
13868
                                   || pkgversion
13869
                                   || '] does not exist yet and cannot be used!'
13870
                                  );
13871
            END;
13872
 
13873
            -- Get Build Type (i.e. BuildPackageArchive or LinkPackageArchive)
13874
            BEGIN
13875
               buildtype := cbuildtypes (pkgid || seperator || vext);
13876
 
13877
               IF buildtype IS NULL
13878
               THEN
13879
                  -- Set build type to LinkPackageArchive by default
13880
                  buildtype := 'L';
13881
               END IF;
13882
            EXCEPTION
13883
               WHEN NO_DATA_FOUND
13884
               THEN
13885
                  buildtype := 'L';
13886
            END;
13887
 
13888
            -- Insert Dependencies
13889
            update_package_dependency (pvid,
13890
                                       pkgname,
13891
                                       pkgversion,
13892
                                       buildtype,
13893
                                       userid,
13894
 
13895
                                      );
13896
         END LOOP;
13897
      END;
1373 dpurdie 13898
   END;
13899
 
13900
/*-------------------------------------------------------------------------------------------------------*/
6600 dpurdie 13901
-- Use:
13902
--   Used by the Automated Build System to release a new package
13903
-- Returns:
13904
--    Use application errors to indicate programming errors
13905
--    Use negative return codes to indicate correctable user problems
13906
--    Positive return code is the new PVID of the package
13907
  FUNCTION auto_make_vcsrelease2 (
13908
      rtagid                   IN   NUMBER,
13909
      pkgname                  IN   VARCHAR2,
13910
      vext                     IN   VARCHAR2,
13911
      newpkgversion            IN   VARCHAR2,
13912
      vcstag                   IN   VARCHAR2,
13913
      dependenciesimportlist   IN   relmgr_varchar2_tab_t,
13914
      isrippled                IN   NUMBER,
13915
      username                 IN   VARCHAR2
13916
   )
13917
      RETURN NUMBER
13918
   IS
13919
      pkgid                           NUMBER;
13920
      pvid                            NUMBER                        := 0;
13921
      userid                          NUMBER;
13922
      dlocked                         VARCHAR2 (20)                 := NULL;
13923
      clonefrompvid                   NUMBER;
13924
      ssv_mm                          package_versions.v_mm%TYPE;
13925
      ssv_nmm                         package_versions.v_nmm%TYPE;
13926
      ssv_ext                         package_versions.v_ext%TYPE;
13927
      return_package_not_found        NUMBER                        := -1;
13928
      return_package_already_exists   NUMBER                        := -2;
13929
      return_not_approved             NUMBER                        := -3;
13930
      return_migrated_pkg             NUMBER                        := -4;
13931
      return_svn_path_changed         NUMBER                        := -5;
13932
 
13933
 
13934
      x_vcstypeid                     NUMBER;
13935
      x_tag                           VARCHAR2(32);
13936
      x_label                         VARCHAR2(60);
13937
      x_srcpath                       VARCHAR2(2000);
13938
      p_srcpath                       VARCHAR2(2000);
13939
 
13940
      -- Regular expression constituents
13941
      Token         VARCHAR2(16) := '([^:]+)';  -- a token is anything except a ':' character
13942
      Seperator     VARCHAR2(4)  := '::';       -- tokens will be seperated by '::'
13943
      BOL           VARCHAR2(4)  := '^';
13944
      Anything      VARCHAR2(4)  := '.*';
13945
      ReplaceToken1 VARCHAR2(4)  := '\1';
13946
      ReplaceToken2 VARCHAR2(4)  := '\2';
13947
      ReplaceToken3 VARCHAR2(4)  := '\3';
13948
      iprev_modifier_id               NUMBER;
13949
 
13950
   BEGIN
13951
      /*--------------- Business Rules Here -------------------*/
13952
      IF (rtagid IS NULL)
13953
      THEN
13954
         raise_application_error (-20000, 'RtagId must be supplied.');
13955
      END IF;
13956
 
13957
      IF (pkgname IS NULL)
13958
      THEN
13959
         raise_application_error (-20000, 'PkgName must be supplied.');
13960
      END IF;
13961
 
13962
      IF (newpkgversion IS NULL)
13963
      THEN
13964
         raise_application_error (-20000, 'PkgVersion must be supplied.');
13965
      END IF;
13966
 
13967
      IF (vcstag IS NULL)
13968
      THEN
13969
         raise_application_error (-20000, 'PkgVcsTag must be supplied.');
13970
      END IF;
13971
 
13972
      IF (isrippled IS NULL) OR (isrippled < 0) OR (isrippled > 1)
13973
      THEN
13974
         raise_application_error (-20000, 'IsRippled must be set to 1 (Is rippled build) or 0 (Is planned build).');
13975
      END IF;
13976
 
13977
      IF (username IS NULL)
13978
      THEN
13979
         raise_application_error (-20000, 'UserName must be supplied.');
13980
      END IF;
13981
 
13982
      -- Parse the PkgVcsTag
13983
      -- Sets up
13984
      --   x_tag, x_label, x_srcpath
13985
 
13986
       BEGIN
13987
          -- Extract the first token - this will be the short tag name for the VCS (eg. 'CC', 'SVN', etc)
13988
          x_tag := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Anything, ReplaceToken1);
13989
 
13990
          -- Decode the short tag
13991
          CASE x_tag
13992
             WHEN 'CC' THEN
13993
                -- extract the 2nd and 3rd tokens, those being the source path and label respectively
13994
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
13995
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
13996
 
13997
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
13998
                -- check for that error as well as the obvious zero-length string conditions.
13999
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
14000
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
14001
                END IF;
14002
 
14003
                IF isSVNbyName(pkgname) > 0 THEN
14004
                    -- Don't allow migrated packages to be released from a CC label
14005
                    return return_migrated_pkg;
14006
                END IF;
14007
 
14008
 
14009
             WHEN 'SVN' THEN
14010
                -- extract the 2nd token, that being the subversion tag
14011
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
14012
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
14013
 
14014
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
14015
                -- check for that error as well as the obvious zero-length string conditions.
14016
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
14017
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
14018
                END IF;
14019
 
14020
             WHEN 'UC' THEN
14021
                -- nothing to extract, just assign defaults
14022
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
14023
                x_label   := 'N/A';
14024
             ELSE
14025
                raise_application_error (-20000, 'Unrecognised VCS Tag!');
14026
          END CASE;
14027
       END;
14028
 
14029
      -- Get the VCS_TYPE_ID for the version control system.
14030
      BEGIN
14031
         SELECT vt.vcs_type_id
14032
         INTO x_vcstypeid
14033
         FROM VCS_TYPE vt
14034
         WHERE vt.tag = x_tag;
14035
         EXCEPTION
14036
            WHEN NO_DATA_FOUND THEN
14037
               raise_application_error (-20000, 'Database is missing a version control system tag (' || x_tag || ')!' );
14038
      END;
14039
 
14040
 
14041
      -- Get user_id
14042
      BEGIN
14043
         SELECT usr.user_id
14044
           INTO userid
14045
           FROM users usr
14046
          WHERE UPPER (usr.user_name) = UPPER (username)
14047
            AND usr.is_disabled IS NULL;
14048
      EXCEPTION
14049
         WHEN NO_DATA_FOUND
14050
         THEN
14051
            raise_application_error (-20000, 'UserName: ' || username || ' is not valid or disabled.' );
14052
      END;
14053
 
14054
/*-------------------------------------------------------*/
14055
 
14056
      -- Create package if necessary
14057
      IF isrippled = 1
14058
      THEN
14059
         /* Ripple Build */
14060
         BEGIN
14061
            -- Make sure that package does not exist
14062
            SELECT pv.pv_id
14063
              INTO pvid
14064
              FROM package_versions pv, PACKAGES pkg
14065
             WHERE pv.pkg_id = pkg.pkg_id
14066
               AND pkg.pkg_name = pkgname
14067
               AND pv.pkg_version = newpkgversion;
14068
         EXCEPTION
14069
            WHEN NO_DATA_FOUND
14070
            THEN
14071
               pvid := 0;
14072
         END;
14073
 
14074
         IF (pvid = 0)
14075
         THEN
14076
            -- Split current version in parts
14077
            split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
14078
 
14079
            BEGIN
14080
               -- Find package to be replaced with the ripple package
14081
               IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
14082
               THEN
14083
                  SELECT pv.pv_id, pv.src_path
14084
                    INTO clonefrompvid, p_srcpath
14085
                    FROM PACKAGES pkg, package_versions pv,
14086
                         release_content rc
14087
                   WHERE rc.pv_id = pv.pv_id
14088
                     AND pv.pkg_id = pkg.pkg_id
14089
                     AND rc.rtag_id = rtagid
14090
                     AND pkg.pkg_name = pkgname
14091
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|');
14092
               ELSE
14093
                  SELECT pv.pv_id, pv.src_path
14094
                    INTO clonefrompvid, p_srcpath
14095
                    FROM PACKAGES pkg, package_versions pv,
14096
                         release_content rc
14097
                   WHERE rc.pv_id = pv.pv_id
14098
                     AND pv.pkg_id = pkg.pkg_id
14099
                     AND rc.rtag_id = rtagid
14100
                     AND pkg.pkg_name = pkgname
14101
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
14102
               END IF;
14103
            EXCEPTION
14104
               WHEN NO_DATA_FOUND
14105
               THEN
14106
                  raise_application_error
14107
                                        (-20000,
14108
                                            'Cannot get CloneFromPvId. VExt='
14109
                                         || vext
14110
                                         || ', RtagId='
14111
                                         || rtagid
14112
                                         || ', PkgName='
14113
                                         || pkgname
14114
                                         || ', SSV_EXT='
14115
                                         || ssv_ext
14116
                                        );
14117
            END;
14118
 
14119
            IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
14120
            THEN
14121
               -- Create package
14122
               seed_package_names_versions (pkgname,
14123
                                            newpkgversion,
14124
                                            userid,
14125
                                            pvid,
14126
                                            clonefrompvid
14127
                                           );
14128
            ELSE
14129
               -- Create package (now both the same)
14130
               seed_package_names_versions (pkgname,
14131
                                             newpkgversion,
14132
                                             userid,
14133
                                             pvid,
14134
                                             clonefrompvid
14135
                                            );
14136
            END IF;
14137
 
14138
            -- Update Package reason for release
14139
            UPDATE package_versions pv
14140
               SET pv.comments = 'Rippled Build.',
14141
                   pv.build_type = 'Y'
14142
             WHERE pv.pv_id = pvid;
14143
         ELSE
14144
            -- Package already exists, it was built previously, and has just been re-built again probably due to the
14145
            -- fact that the archive was cleaned of the original build artifacts at some point, and those artifacts
14146
            -- are now needed once more. As such, we need to ensure that a new release note generation occurs so
14147
            -- reset the package_versions[pvid].release_notes_info field to enable that to happen.
14148
            UPDATE package_versions pv
14149
               SET pv.release_notes_info = null,
14150
                   pv.modified_stamp = ora_sysdatetime
14151
             WHERE pv.pv_id = pvid;
14152
 
14153
            --DEVI-066151
14154
            log_action (pvid, 'package_rebuilt', userid, 'Package Re-built...');
14155
 
14156
            RETURN return_package_already_exists;
14157
         END IF;
14158
      ELSE
14159
         /* Auto build from Pending area */
14160
 
14161
         -- Find package in pending area
14162
         BEGIN
14163
            SELECT pv.pv_id, pv.dlocked, pv.src_path
14164
              INTO pvid, dlocked, p_srcpath
14165
              FROM planned pl, package_versions pv, PACKAGES pkg
14166
             WHERE pl.pv_id = pv.pv_id
14167
               AND pv.pkg_id = pkg.pkg_id
14168
               AND pl.rtag_id = rtagid
14169
               AND pkg.pkg_name = pkgname
14170
               AND pv.dlocked = 'A'
14171
               AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|')
14172
               AND rownum = 1
14173
             ORDER BY pv.modified_stamp;
14174
         EXCEPTION
14175
            WHEN NO_DATA_FOUND
14176
            THEN
14177
               pvid := 0;
14178
         END;
14179
 
14180
         IF (pvid = 0)
14181
         THEN
14182
            -- Package does not exist in pending area, hence report it
14183
            RETURN return_package_not_found;
14184
         ELSIF (dlocked != 'A')
14185
         THEN
14186
            -- Package is not approved for autobuild
14187
            RETURN return_not_approved;
14188
         END IF;
14189
 
14190
      END IF;
14191
 
14192
      -- Ensure Source Path does not change
14193
      -- Do not expect the SVN development branch to change
14194
      -- From the previous package
14195
      IF ( x_tag = 'SVN' AND p_srcpath != x_srcpath )
14196
      THEN
14197
        return return_svn_path_changed;
14198
      END IF;
14199
 
14200
      BEGIN
14201
         -- Import Dependencies
14202
         import_dependencies2 (pvid, dependenciesimportlist, userid);
14203
      END;
14204
 
14205
 
14206
      BEGIN
14207
         -- Split current version in parts
14208
         split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
14209
 
14210
         -- Update Package Details
14211
         UPDATE package_versions pv
14212
            SET pv.pkg_version = newpkgversion,
14213
                pv.v_ext = ssv_ext,
14214
                pv.v_mm = ssv_mm,
14215
                pv.v_nmm = ssv_nmm,
14216
                pv.src_path = x_srcpath,
14217
                pv.pkg_label = x_label,
14218
                pv.vcs_type_id = x_vcstypeid
14219
          WHERE pv.pv_id = pvid;
14220
      EXCEPTION
14221
         WHEN DUP_VAL_ON_INDEX
14222
         THEN
14223
            -- Package already exists, hence cannot be used for ripple build
14224
            RETURN return_package_already_exists;
14225
      END;
14226
 
14227
      -- Update the is_autobuildable
14228
      UPDATE package_versions
14229
         SET is_autobuildable = 'Y'
14230
       WHERE pv_id = pvid;
14231
 
14232
      -- DEVI-063601
14233
      -- For planned builds the modifier_id shouldn't be set to buildadm.
14234
      -- To ensure this the modifier_id is obtained so it can be restored after
14235
      -- the function pk_environment.auto_make_release is called.
14236
      -- This function calls, change_state, which sets the modifier_id to the
14237
      -- specified userid, which for auto builds is buildadm.
14238
      SELECT pv.modifier_id INTO iprev_modifier_id
14239
      FROM package_versions pv WHERE pv.pv_id = pvid;
14240
 
14241
      -- Now release package
14242
      pk_environment.auto_make_release (pvid,
14243
                                        rtagid,
14244
                                        userid,
14245
                                        vext,
14246
                                        ssv_ext,
14247
                                        clonefrompvid
14248
                                       );
14249
 
14250
      -- DEVI-063601
14251
      -- if it is a planned build then restore the modifier_id to the previous modifier
14252
      UPDATE package_versions pv SET pv.modifier_id = iprev_modifier_id
14253
      WHERE pv.pv_id = pvid;
14254
 
14255
      --Now clean the PLANNED_VERSIONS table
14256
      SELECT pkg_id
14257
        INTO pkgid
14258
        FROM PACKAGES
14259
       WHERE pkg_name = pkgname;
14260
 
14261
      DELETE FROM planned_versions
14262
            WHERE pkg_id = pkgid AND pkg_version = newpkgversion;
14263
 
14264
      RETURN pvid;
14265
   END;
14266
 
14267
/*-------------------------------------------------------------------------------------------------------*/
14268
--  import package dependencies (2nd attenpt)
14269
--  Package dependencies are an array of strings. Each string is of the form
14270
--    'PkgName','PkgVersion','PkgType'
14271
--  The use of an array of package dependencies allows packages with very long
14272
--  list of dependencies. More than can be put in to a VARCHAR2
14273
--
14274
   PROCEDURE import_dependencies2 (
14275
      pvid                     IN   NUMBER,
14276
      dependenciesimportlist   IN   relmgr_varchar2_tab_t,
14277
      userid                   IN   NUMBER
14278
   )
14279
   IS
14280
 
14281
      TYPE tdictionary IS TABLE OF VARCHAR2 (4000) INDEX BY VARCHAR2 (4000);
14282
 
14283
      seperator         VARCHAR2 (2)           := '||';
14284
      pkgname           VARCHAR2 (4000);
14285
      pkgversion        VARCHAR2 (4000);
14286
      pkgtype           VARCHAR2  (50);
14287
      pkgid             NUMBER;
14288
      vext              VARCHAR2 (4000);
14289
      dpvid             NUMBER;
14290
      cbuildtypes       tdictionary;
14291
      dependencyrow     NUMBER;
14292
      sdependency       VARCHAR2 (4000);
14293
      citemcollection   relmgr_varchar2_tab_t;
14294
 
14295
      CURSOR curbuildtype
14296
      IS
14297
         SELECT dpv.pkg_id || seperator || dpv.v_ext AS pkgid_ext,
14298
                dep.build_type
14299
           FROM package_dependencies dep, package_versions dpv
14300
          WHERE dep.pv_id = pvid AND dep.dpv_id = dpv.pv_id;
14301
 
14302
      recbuildtype      curbuildtype%ROWTYPE;
14303
   BEGIN
14304
      -- Get Current Dependencies
14305
      OPEN curbuildtype;
14306
 
14307
      FETCH curbuildtype
14308
       INTO recbuildtype;
14309
 
14310
      WHILE curbuildtype%FOUND
14311
      LOOP
14312
         cbuildtypes (recbuildtype.pkgid_ext) := recbuildtype.build_type;
14313
         FETCH curbuildtype INTO recbuildtype;
14314
      END LOOP;
14315
 
14316
      CLOSE curbuildtype;
14317
 
14318
      BEGIN
14319
         -- Remove old dependencies
14320
         DELETE FROM package_dependencies dep
14321
               WHERE dep.pv_id = pvid;
14322
 
14323
         -- Loop through dependencies
14324
         FOR dependencyrow IN 1 .. dependenciesimportlist.COUNT
14325
         LOOP
14326
            -- Extract pkg_name and pkg_version and type(optional)
14327
            sdependency := dependenciesimportlist (dependencyrow);
14328
            sdependency := REPLACE(sdependency, '''');
14329
            sdependency := REPLACE(sdependency, '"');
14330
            -- Remove empty dependency
14331
            IF LENGTH(sdependency) > 0 THEN
14332
              citemcollection := in_list_varchar2 (sdependency, ',');
14333
              IF citemcollection.COUNT  < 2
14334
              THEN
14335
                raise_application_error
14336
                  (-20000,
14337
                      'Dependency ['
14338
                   || sdependency
14339
                   || '] must have at least two ; separated fields!'
14340
                  );
14341
              END IF;
14342
              pkgname := citemcollection(1);
14343
              pkgversion := citemcollection(2);
14344
              IF citemcollection.COUNT >= 3
14345
              THEN
14346
                pkgtype := citemcollection(3);
14347
              ELSE
14348
                pkgtype := NULL;
14349
              END IF;
14350
              -- Dependency must exits to be linked against
14351
              BEGIN
14352
                 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
14353
                   INTO dpvid, pkgid, vext
14354
                   FROM package_versions pv, PACKAGES pkg
14355
                  WHERE pv.pkg_id = pkg.pkg_id
14356
                    AND pkg.pkg_name = pkgname
14357
                    AND pv.pkg_version = pkgversion;
14358
              EXCEPTION
14359
                 WHEN NO_DATA_FOUND
14360
                 THEN
14361
                    raise_application_error
14362
                                    (-20000,
14363
                                        'Dependency ['
14364
                                     || pkgname
14365
                                     || ' '
14366
                                     || pkgversion
14367
                                     || '] does not exist yet and cannot be used!'
14368
                                    );
14369
              END;
14370
 
14371
              -- Get Build Type (i.e. BuildPackageArchive or LinkPackageArchive)
14372
              IF pkgtype IS NULL
14373
              THEN
14374
                BEGIN
14375
                   pkgtype := cbuildtypes (pkgid || seperator || vext);
14376
 
14377
                   IF pkgtype IS NULL
14378
                   THEN
14379
                      -- Set build type to LinkPackageArchive by default
14380
                      pkgtype := 'L';
14381
                   END IF;
14382
                EXCEPTION
14383
                   WHEN NO_DATA_FOUND
14384
                   THEN
14385
                      pkgtype := 'L';
14386
                END;
14387
              END IF;
14388
 
14389
              -- Limit to known types
14390
              IF UPPER(pkgtype) like('B%') THEN
14391
                pkgtype := 'B';
14392
              ELSE
14393
                pkgtype := 'L';
14394
              END IF;  
14395
 
14396
              -- Insert Dependencies
14397
              update_package_dependency (pvid,
14398
                                         pkgname,
14399
                                         pkgversion,
14400
                                         pkgtype,
14401
                                         userid,
14402
 
14403
                                        );
14404
            END IF;
14405
         END LOOP;
14406
      END;
14407
   END;
14408
 
14409
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14410
   FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)
14411
      RETURN VARCHAR2
1373 dpurdie 14412
   IS
3959 dpurdie 14413
      pkgversion   VARCHAR2 (4000);
1373 dpurdie 14414
   BEGIN
3959 dpurdie 14415
      BEGIN
14416
         SELECT pv.pkg_version
14417
           INTO pkgversion
14418
           FROM PACKAGES pkg, release_content rc, package_versions pv
14419
          WHERE pv.pv_id = rc.pv_id
14420
            AND pkg.pkg_id = pv.pkg_id
14421
            AND pkg.pkg_name = pkgname
14422
            AND rc.rtag_id = rtagid;
14423
 
14424
         RETURN pkgversion;
14425
      END;
1373 dpurdie 14426
   END;
14427
 
14428
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14429
   FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)
14430
      RETURN VARCHAR2
1373 dpurdie 14431
   IS
3959 dpurdie 14432
      pkgversion   VARCHAR2 (4000);
1373 dpurdie 14433
   BEGIN
3959 dpurdie 14434
      BEGIN
14435
         SELECT pv.pkg_version
14436
           INTO pkgversion
14437
           FROM PACKAGES pkg, work_in_progress wip, package_versions pv
14438
          WHERE pv.pv_id = wip.pv_id
14439
            AND pkg.pkg_id = pv.pkg_id
14440
            AND pkg.pkg_name = pkgname
14441
            AND wip.rtag_id = rtagid;
1373 dpurdie 14442
 
3959 dpurdie 14443
         IF pkgversion IS NULL
14444
         THEN
14445
            SELECT pv.pkg_version
14446
              INTO pkgversion
14447
              FROM PACKAGES pkg, planned pl, package_versions pv
14448
             WHERE pv.pv_id = pl.pv_id
14449
               AND pkg.pkg_id = pv.pkg_id
14450
               AND pkg.pkg_name = pkgname
14451
               AND pl.rtag_id = rtagid;
14452
         END IF;
14453
 
14454
         RETURN pkgversion;
14455
      END;
1373 dpurdie 14456
   END;
14457
 
14458
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14459
   PROCEDURE update_dash_board (rtagid IN NUMBER)
1373 dpurdie 14460
   IS
3959 dpurdie 14461
      projid       NUMBER;
14462
      projiddb     NUMBER;
14463
      total        NUMBER;
14464
      auto_total   NUMBER;
14465
      rtagiddb     NUMBER;
1373 dpurdie 14466
   BEGIN
3959 dpurdie 14467
      SELECT COUNT (*)
14468
        INTO total
14469
        FROM release_content rc, package_versions pv
14470
       WHERE pv.pv_id = rc.pv_id AND rc.rtag_id = rtagid;
1373 dpurdie 14471
 
3959 dpurdie 14472
      SELECT COUNT (*)
14473
        INTO auto_total
14474
        FROM release_content rc, package_versions pv
14475
       WHERE pv.pv_id = rc.pv_id
14476
         AND pv.is_autobuildable = 'Y'
14477
         AND rc.rtag_id = rtagid;
14478
 
14479
      BEGIN
14480
         SELECT rtag_id
14481
           INTO rtagiddb
14482
           FROM dash_board
14483
          WHERE rtag_id = rtagid;
14484
 
14485
         SELECT proj_id
14486
           INTO projiddb
14487
           FROM dash_board
14488
          WHERE rtag_id = rtagid;
14489
      EXCEPTION
14490
         WHEN NO_DATA_FOUND
14491
         THEN
14492
            rtagiddb := '';
14493
      END;
14494
 
14495
      IF rtagiddb IS NULL
1373 dpurdie 14496
      THEN
3959 dpurdie 14497
         SELECT proj_id
14498
           INTO projid
14499
           FROM release_tags
14500
          WHERE rtag_id = rtagid;
14501
 
14502
         INSERT INTO dash_board
14503
                     (proj_id, rtag_id, last_build_time, automated_packages,
14504
                      total_packages
14505
                     )
14506
              VALUES (projid, rtagid, ora_sysdatetime, auto_total,
14507
                      total
14508
                     );
14509
      ELSE
14510
         UPDATE dash_board
14511
            SET last_build_time = ora_sysdatetime,
14512
                automated_packages = auto_total,
14513
                total_packages = total
14514
          WHERE proj_id = projiddb AND rtag_id = rtagiddb;
1373 dpurdie 14515
      END IF;
14516
   END;
14517
 
14518
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14519
   FUNCTION exclude_from_build (
14520
      pvid          IN   NUMBER,
14521
      spkgversion   IN   VARCHAR2,
14522
      rtagid        IN   NUMBER,
14523
      username      IN   VARCHAR2
1373 dpurdie 14524
   )
3959 dpurdie 14525
      RETURN NUMBER
1373 dpurdie 14526
   IS
3959 dpurdie 14527
      userid              NUMBER;
14528
      outerrcode          NUMBER;
14529
      pkgid               NUMBER;
14530
 
14531
      CURSOR dnr_duplicate_cur
14532
      IS
14533
         SELECT *
14534
           FROM do_not_ripple
14535
          WHERE pv_id = pvid AND rtag_id = rtagid;
14536
 
14537
      dnr_duplicate_rec   dnr_duplicate_cur%ROWTYPE;
1373 dpurdie 14538
   BEGIN
3959 dpurdie 14539
      outerrcode := -1;       -- Set default return error code to ERROR state
14540
 
14541
      /*--------------- Business Rules Here -------------------*/
14542
      IF (rtagid IS NULL)
1373 dpurdie 14543
      THEN
3959 dpurdie 14544
         RETURN outerrcode;
14545
--         raise_application_error (-20000, 'RtagId must be supplied.');
14546
      END IF;
14547
 
14548
      IF (pvid IS NULL)
1373 dpurdie 14549
      THEN
3959 dpurdie 14550
         RETURN outerrcode;
14551
--         raise_application_error (-20000, 'PvId must be supplied.');
14552
      END IF;
14553
 
14554
      IF (username IS NULL)
1373 dpurdie 14555
      THEN
3959 dpurdie 14556
         RETURN outerrcode;
14557
--         raise_application_error (-20000, 'UserName must be supplied.');
14558
      END IF;
14559
 
14560
      -- Get user_id
14561
      BEGIN
14562
         SELECT usr.user_id
14563
           INTO userid
14564
           FROM users usr
14565
          WHERE UPPER (usr.user_name) = UPPER (username)
14566
            AND usr.is_disabled IS NULL;
14567
      EXCEPTION
14568
         WHEN NO_DATA_FOUND
14569
         THEN
14570
            RETURN outerrcode;
14571
--            raise_application_error (-20000,
14572
--                                        'UserName '
14573
--                                     || username
14574
--                                     || ' is not valid or disabled.'
14575
--                                    );
14576
      END;
14577
 
14578
      OPEN dnr_duplicate_cur;
14579
 
14580
      FETCH dnr_duplicate_cur
14581
       INTO dnr_duplicate_rec;
14582
 
14583
      IF dnr_duplicate_cur%FOUND
1373 dpurdie 14584
      THEN
3959 dpurdie 14585
         outerrcode := 0;
1373 dpurdie 14586
      END IF;
3959 dpurdie 14587
 
14588
      IF dnr_duplicate_cur%NOTFOUND
14589
      THEN
14590
         /* No duplicate recordset */
14591
         unripple_package (pvid, rtagid, userid);
14592
         outerrcode := 0;                            -- Set return to SUCCESS
14593
      END IF;
14594
 
14595
      CLOSE dnr_duplicate_cur;
14596
 
14597
      SELECT pkg_id
14598
        INTO pkgid
14599
        FROM package_versions
14600
       WHERE pv_id = pvid;
14601
 
14602
      DELETE FROM planned_versions
14603
            WHERE pkg_id = pkgid AND pkg_version = spkgversion;
14604
 
14605
      RETURN outerrcode;
1373 dpurdie 14606
   END;
14607
 
14608
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14609
   FUNCTION exclude_indirect_from_build (
14610
      pvid          IN   NUMBER,
14611
      spkgversion   IN   VARCHAR2,
14612
      rtagid        IN   NUMBER,
14613
      username      IN   VARCHAR2,
14614
      rootpvid      IN   NUMBER,
14615
      rootcause     IN   VARCHAR2,
14616
      rootfile      IN   VARCHAR2
1373 dpurdie 14617
   )
3959 dpurdie 14618
      RETURN NUMBER
1373 dpurdie 14619
   IS
3959 dpurdie 14620
      userid              NUMBER;
14621
      outerrcode          NUMBER;
14622
      pkgid               NUMBER;
14623
 
14624
      CURSOR dnr_duplicate_cur
14625
      IS
14626
         SELECT *
14627
           FROM do_not_ripple
14628
          WHERE pv_id = pvid AND rtag_id = rtagid;
14629
 
14630
      dnr_duplicate_rec   dnr_duplicate_cur%ROWTYPE;
1373 dpurdie 14631
   BEGIN
3959 dpurdie 14632
      outerrcode := -1;       -- Set default return error code to ERROR state
14633
 
14634
      /*--------------- Business Rules Here -------------------*/
14635
      IF (rtagid IS NULL)
1373 dpurdie 14636
      THEN
3959 dpurdie 14637
         RETURN outerrcode;
14638
--         raise_application_error (-20000, 'RtagId must be supplied.');
14639
      END IF;
14640
 
14641
      IF (pvid IS NULL)
1373 dpurdie 14642
      THEN
3959 dpurdie 14643
         RETURN outerrcode;
14644
--         raise_application_error (-20000, 'PvId must be supplied.');
14645
      END IF;
14646
 
14647
      IF (username IS NULL)
1373 dpurdie 14648
      THEN
3959 dpurdie 14649
         RETURN outerrcode;
14650
--         raise_application_error (-20000, 'UserName must be supplied.');
1373 dpurdie 14651
      END IF;
3959 dpurdie 14652
 
14653
      -- Get user_id
14654
      BEGIN
14655
         SELECT usr.user_id
14656
           INTO userid
14657
           FROM users usr
14658
          WHERE UPPER (usr.user_name) = UPPER (username)
14659
            AND usr.is_disabled IS NULL;
14660
      EXCEPTION
14661
         WHEN NO_DATA_FOUND
14662
         THEN
14663
            RETURN outerrcode;
14664
--            raise_application_error (-20000,
14665
--                                        'UserName '
14666
--                                     || username
14667
--                                     || ' is not valid or disabled.'
14668
--                                    );
14669
      END;
14670
 
14671
     /* No duplicate recordset */
14672
     unripple_package_indirect (pvid, rtagid, userid, rootpvid, rootcause, rootfile);
14673
     outerrcode := 0;                            -- Set return to SUCCESS
14674
 
14675
      SELECT pkg_id
14676
        INTO pkgid
14677
        FROM package_versions
14678
       WHERE pv_id = pvid;
14679
 
14680
      DELETE FROM planned_versions
14681
            WHERE pkg_id = pkgid AND pkg_version = spkgversion;
14682
 
14683
      RETURN outerrcode;
1373 dpurdie 14684
   END;
14685
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14686
   PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2)
1373 dpurdie 14687
   IS
14688
   BEGIN
3959 dpurdie 14689
      INSERT INTO abt_action_log
14690
                  (rcon_id, action_datetime, action
14691
                  )
14692
           VALUES (rconid, ora_sysdatetime, action
14693
                  );
1373 dpurdie 14694
   END;
14695
 
14696
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14697
   FUNCTION insert_package_metrics (
14698
      rtagid                   IN   NUMBER,
14699
      pkgname                  IN   VARCHAR2,
14700
      vext                     IN   VARCHAR2,
14701
      metricstring             IN   VARCHAR2
1373 dpurdie 14702
   )
3959 dpurdie 14703
      RETURN NUMBER
1373 dpurdie 14704
   IS
3959 dpurdie 14705
      citemcollection          relmgr_varchar2_tab_t  := relmgr_varchar2_tab_t ();
14706
      lv_pvid                  NUMBER                 := 0;
14707
      rownumber                NUMBER;
14708
      rowcontent               VARCHAR2(4000);
14709
      metricname               VARCHAR2(1000);
14710
      metricvalue              VARCHAR2(4000);
14711
      return_insert_error      NUMBER                 := -1;
14712
      return_insert_success    NUMBER                 := 0;
14713
 
14714
      /* Metrics */
14715
      lv_branches                 NUMBER;
14716
      lv_branchlist               VARCHAR2(4000);
14717
      lv_codefiles                NUMBER;
14718
      lv_ignoredfiles             NUMBER;
14719
      lv_directories              NUMBER;
14720
      lv_directorydepth           NUMBER;
14721
      lv_totalfiles               NUMBER;
14722
      lv_makefiles                NUMBER;
14723
      lv_blanklines               NUMBER;
14724
      lv_codelines                NUMBER;
14725
      lv_commentlines             NUMBER;
14726
 
1373 dpurdie 14727
   BEGIN
3959 dpurdie 14728
      /*--------------- Business Rules Here -------------------*/
14729
      IF (rtagid IS NULL)
14730
      THEN
14731
         RETURN return_insert_error;
14732
      END IF;
1373 dpurdie 14733
 
3959 dpurdie 14734
      IF (pkgname IS NULL)
14735
      THEN
14736
         RETURN return_insert_error;
14737
      END IF;
14738
 
14739
      IF (metricstring IS NULL)
14740
      THEN
14741
         RETURN return_insert_error;
14742
      END IF;
14743
 
14744
      BEGIN
14745
         SELECT pv.pv_id
14746
           INTO lv_pvid
14747
           FROM package_versions pv, packages pkg, release_content rc
14748
          WHERE pv.pkg_id = pkg.pkg_id
14749
            AND rc.rtag_id = rtagid
14750
            AND pv.pv_id = rc.pv_id
14751
            AND pkg.pkg_name = pkgname
14752
            AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
14753
      EXCEPTION
14754
           WHEN NO_DATA_FOUND
14755
           THEN
14756
                lv_pvid := 0;
14757
      END;
14758
 
14759
      citemcollection := in_list_varchar2 (metricstring, ';');
14760
 
14761
      FOR rownumber IN 1 .. citemcollection.COUNT
14762
      LOOP
14763
         rowcontent := citemcollection(rownumber);
14764
         metricvalue := SUBSTR(rowcontent, (INSTR(rowcontent, '=') + 1));
14765
         metricname := REGEXP_REPLACE(rowcontent, '=.*$', '');
14766
 
14767
         IF    metricname = 'ccbranch.count' THEN lv_branches := metricvalue;
14768
         ELSIF metricname = 'ccbranch.list' THEN lv_branchlist := metricvalue;
14769
         ELSIF metricname = 'code.files' THEN lv_codefiles := metricvalue;
14770
         ELSIF metricname = 'code.ignored' THEN lv_ignoredfiles := metricvalue;
14771
         ELSIF metricname = 'count.dir' THEN lv_directories := metricvalue;
14772
         ELSIF metricname = 'count.dirdepth' THEN lv_directorydepth := metricvalue;
14773
         ELSIF metricname = 'count.file' THEN lv_totalfiles := metricvalue;
14774
         ELSIF metricname = 'count.makefile' THEN lv_makefiles := metricvalue;
14775
         ELSIF metricname = 'lines.blank' THEN lv_blanklines := metricvalue;
14776
         ELSIF metricname = 'lines.code' THEN lv_codelines := metricvalue;
14777
         ELSIF metricname = 'lines.comment' THEN lv_commentlines := metricvalue;
14778
         END IF;
14779
      END LOOP;
14780
 
14781
      IF (lv_pvid > 0)
14782
      THEN
14783
         -- Delete any existing entries for this package version to makes sure our data is untainted
14784
         DELETE FROM package_metrics pm
14785
         WHERE pm.pv_id = lv_pvid;
14786
 
14787
         -- Insert the new data into the metrics table
14788
         INSERT INTO package_metrics
14789
                     (pv_id, branches, branch_list, code_files, ignored_files, directories, directory_depth,
14790
                      total_files, makefiles, blank_lines, code_lines, comment_lines, created_stamp
14791
                     )
14792
              VALUES (lv_pvid, lv_branches, lv_branchlist, lv_codefiles, lv_ignoredfiles, lv_directories, lv_directorydepth,
14793
                      lv_totalfiles, lv_makefiles, lv_blanklines, lv_codelines, lv_commentlines, ora_sysdatetime
14794
                     );
14795
 
14796
         -- Now update the Release_Metrics Table
14797
         update_release_metrics(rtagid);
14798
 
14799
         RETURN return_insert_success;
14800
      ELSE
14801
         RETURN return_insert_error;
14802
      END IF;
1373 dpurdie 14803
   END;
14804
 
14805
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14806
   PROCEDURE update_release_metrics (rtagid IN NUMBER)
1373 dpurdie 14807
   IS
3959 dpurdie 14808
      lv_totalpackages       NUMBER;
14809
      lv_autobuilt           NUMBER;
14810
      lv_linesofcode         NUMBER;
14811
      lv_unittested          NUMBER;
14812
      lv_autotested          NUMBER;
14813
      lv_numOfbranches       NUMBER;
14814
      lv_lastbuildtime       DATE;
1373 dpurdie 14815
   BEGIN
3959 dpurdie 14816
      IF (rtagid > 0)
14817
      THEN
14818
         -- Get the total number of packages in this release and the number of
14819
         -- those that are autobuilt
14820
         SELECT COUNT (DISTINCT rc.pv_id),
14821
                COUNT (DISTINCT autobuilt_qry.pv_id)
14822
           INTO lv_totalpackages, lv_autobuilt
14823
           FROM release_content rc,
14824
                package_versions pv,
14825
                (
14826
                 SELECT rc.pv_id
14827
                   FROM release_content rc,
14828
                        package_versions pv
14829
                  WHERE pv.is_autobuildable = 'Y'
14830
                    AND pv.pv_id = rc.pv_id
14831
                    AND rc.rtag_id = rtagid
14832
                ) autobuilt_qry
14833
          WHERE pv.pv_id = rc.pv_id
14834
            AND rc.rtag_id = rtagid
14835
            AND autobuilt_qry.pv_id (+) = rc.pv_id;
1373 dpurdie 14836
 
3959 dpurdie 14837
         -- Get the build time of the last package built in this release and the
14838
         -- total number of lines of code
14839
         SELECT MAX(pm.created_stamp),
14840
                SUM(pm.code_lines)
14841
           INTO lv_lastbuildtime, lv_linesofcode
14842
           FROM package_metrics pm, release_content rc
14843
          WHERE pm.pv_id = rc.pv_id
14844
            AND rc.rtag_id = rtagid;
14845
 
14846
         -- Get the number of packages with unit tests in this release and the
14847
         -- number of those that are autotested
14848
         SELECT COUNT(DISTINCT ut.pv_id) INTO lv_unittested
14849
           FROM unit_tests ut,
14850
                release_content rc
14851
          WHERE ut.pv_id = rc.pv_id
14852
            AND rc.rtag_id = rtagid
14853
        AND ut.test_types_fk != 1;
14854
 
14855
        SELECT COUNT(DISTINCT ut.pv_id) INTO lv_autotested
14856
          FROM unit_tests ut,
14857
               release_content rc
14858
         WHERE ut.pv_id = rc.pv_id
14859
           AND rc.rtag_id = rtagid
14860
           AND ut.test_types_fk = 7;
14861
 
14862
 
14863
         -- Count the number of unique branches in the packages in this release.
14864
--         SELECT COUNT(DISTINCT branch) INTO lv_numOfbranches
14865
--           FROM (
14866
--                SELECT pv_id,
14867
--                       regexp_substr(str, '[^,]+', 1, level) branch,
14868
--                       level lv,
14869
--                       lag(level, 1, 0) over (partition by pv_id order by level) lg
14870
--                  FROM (
14871
--                       SELECT pm.pv_id,
14872
--                              ','||pm.branch_list str
14873
--                         FROM package_metrics pm,
14874
--                              release_content rc
14875
--                        WHERE pm.pv_id = rc.pv_id
14876
--                          AND rc.rtag_id = rtagid
14877
--                       )
14878
--                CONNECT BY regexp_substr(str, '[^,]+', 1, LEVEL) IS NOT NULL
14879
--                )
14880
--          WHERE lv != lg;
14881
 
14882
         UPDATE release_metrics rm
14883
            SET rm.total_packages = lv_totalpackages,
14884
                rm.autobuilt = lv_autobuilt,
14885
                rm.lines_of_code = lv_linesofcode,
14886
                rm.unit_tested = lv_unittested,
14887
                rm.autotested = lv_autotested,
14888
--                rm.branches = lv_numOfbranches,
14889
                rm.last_build_time = lv_lastbuildtime
14890
          WHERE rtag_id = rtagid;
14891
 
14892
         IF (SQL%ROWCOUNT = 0)
14893
         THEN
14894
            INSERT INTO release_metrics
14895
                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
14896
                         autotested, last_build_time
14897
                        )
14898
                 VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,
14899
                         lv_autotested, lv_lastbuildtime
14900
                        );
14901
         END IF;
14902
--         IF (SQL%ROWCOUNT = 0)
14903
--         THEN
14904
--            INSERT INTO release_metrics
14905
--                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
14906
--                         autotested, branches, last_build_time
14907
--                        )
14908
--                 VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,
14909
--                         lv_autotested, lv_numOfbranches, lv_lastbuildtime
14910
--                        );
14911
--         END IF;
14912
--      ELSE
14913
--         raise_application_error (-20000, 'RtagId must be supplied.');
14914
      END IF;
1373 dpurdie 14915
   END;
14916
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14917
   FUNCTION return_vcs_tag(pvid IN NUMBER) RETURN VARCHAR2
1373 dpurdie 14918
   IS
3959 dpurdie 14919
      vcstypeid    NUMBER;
14920
      vcstag       VARCHAR2(32);
14921
      label        VARCHAR2(60);
14922
      srcpath      VARCHAR2(2000);
14923
      vcstypeid_cc NUMBER;
14924
      vcstypeid_uc NUMBER;
1373 dpurdie 14925
   BEGIN
3959 dpurdie 14926
      -- Get the VCS_TYPE_ID for the ClearCase version control system. We do this so that we make no assumptions about
14927
      -- what the primary key value is for the ClearCase VCS entry.
14928
      BEGIN
14929
         SELECT vt.vcs_type_id
14930
         INTO vcstypeid_cc
14931
         FROM VCS_TYPE vt
14932
         WHERE vt.tag = 'CC';
14933
         EXCEPTION
14934
            WHEN NO_DATA_FOUND THEN
14935
               raise_application_error (-20000, 'Database is missing compulsory CC version control system tag!');
14936
      END;
1373 dpurdie 14937
 
3959 dpurdie 14938
      -- Get the VCS_TYPE_ID for the Uncontrolled version control system. We do this so that we make no assumptions about
14939
      -- what the primary key value is for the Uncontrolled VCS entry.
14940
      BEGIN
14941
         SELECT vt.vcs_type_id
14942
         INTO vcstypeid_uc
14943
         FROM VCS_TYPE vt
14944
         WHERE vt.tag = 'UC';
14945
         EXCEPTION
14946
            WHEN NO_DATA_FOUND THEN
14947
               raise_application_error (-20000, 'Database is missing compulsory UC version control system tag!');
14948
      END;
14949
 
14950
      -- Get the PKG_LABEL, SRC_PATH, VCS_TYPE_ID for the package version
14951
      -- As additional VCS types are introduced, we may have to extend what this SELECT statement returns
14952
      BEGIN
14953
         SELECT pv.pkg_label, pv.src_path,
14954
           (CASE WHEN pv.pkg_label = 'N/A' AND pv.vcs_type_id IS NULL THEN vcstypeid_uc
14955
                 WHEN pv.vcs_type_id IS NULL THEN vcstypeid_cc
14956
                 ELSE pv.vcs_type_id END) AS vcs_type_id
14957
         INTO label, srcpath, vcstypeid
14958
         FROM PACKAGE_VERSIONS pv
14959
         WHERE pv.pv_id = pvid;
14960
         EXCEPTION
14961
            WHEN NO_DATA_FOUND THEN
14962
               raise_application_error (-20000, 'Package Version Not Found!');
14963
      END;
14964
 
14965
      -- Get the VCS TAG for the VCS_TYPE_ID.
14966
      BEGIN
14967
         SELECT vt.tag
14968
         INTO vcstag
14969
         FROM VCS_TYPE vt
14970
         WHERE vt.vcs_type_id = vcstypeid;
14971
         EXCEPTION
14972
            WHEN NO_DATA_FOUND THEN
14973
               raise_application_error (-20000, 'Could not get VCS Tag for the package version!');
14974
      END;
14975
 
14976
      -- Return value depending upon which VCS Tag is being used.
14977
      -- As additional VCS types are introduced, we have to add additional WHEN clauses
14978
      CASE vcstag
14979
         WHEN 'CC' THEN
14980
            RETURN vcstag || '::' || srcpath || '::' || label;
14981
         WHEN 'SVN' THEN
14982
            RETURN vcstag || '::' || srcpath || '::' || label;
14983
         ELSE
14984
            RETURN vcstag || '::';
14985
      END CASE;
14986
 
1373 dpurdie 14987
   END;
3959 dpurdie 14988
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 14989
 
3959 dpurdie 14990
/*-------------------------------------------------------------------------------------------------------
14991
Name:        update_vcs_details
14992
Description: Updates the Version Control System (vcs) details specified in the vcstag
14993
             parameter for the specified package version.
14994
             The specified package vcstag is parsed and split into 3 fields:
14995
                vcs type, src path, label
14996
             These fields are then stored for the specified pv_id in the package_versions, table.
14997
             An action is recorded in the action log and provides information for tracking and
14998
             for restoring the previous vcs settings if a recovery is required.
14999
Paramters:
15000
             ipv_id:     Package version identifier
15001
             vcstag:     Full version control tag.
15002
                         Examples:
15003
                             "SVN::AUPERASVN01/DPG_SWBase/tools/trunk::daf_tools_25.1.7027.cr@1234"
15004
                            "CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr"
15005
             user_id:    Identifier of the user that is performing this function.
15006
*/
15007
PROCEDURE update_vcs_details(ipv_id IN NUMBER, vcstag IN VARCHAR2, user_id IN NUMBER)
1373 dpurdie 15008
   IS
3959 dpurdie 15009
      ivcs_type_id   NUMBER;
15010
      svcs_type      VARCHAR2(128);
15011
      ssrc_path      VARCHAR2(512);
15012
      spkg_label     VARCHAR2(512);
15013
      spattern       VARCHAR2(64);
15014
      saction_desc   VARCHAR2(2048);
15015
      old_vcs_type   VARCHAR2(128);
15016
      old_src_path   VARCHAR2(512);
15017
      old_pkg_label  VARCHAR2(512);
15018
      old_pkg_vcstag VARCHAR2(1024);
15019
      i              NUMBER;
15020
      vcount         NUMBER;
1373 dpurdie 15021
   BEGIN
3959 dpurdie 15022
     -- Split vcs tag into fields: vcs type, src path, label
15023
     -- Fields are separated by '::'
15024
     -- e.g "CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr"
15025
     -- The below regular expression pattern has groups to achieve this.
1373 dpurdie 15026
 
3959 dpurdie 15027
     spattern:= '^([^:]*)::([^:]*)(::(.*))?$';
15028
 
15029
     --As Oracle 10g does not allow REGEXP_SUBSTR to return a group,
15030
     --REGEXP_REPLACE is used instead (Note: Oracle 11g has this enhancement).
15031
     SELECT REGEXP_REPLACE(vcstag,spattern, '\1') INTO svcs_type  FROM DUAL;
15032
     SELECT REGEXP_REPLACE(vcstag,spattern, '\2') INTO ssrc_path  FROM DUAL;
15033
     SELECT REGEXP_REPLACE(vcstag,spattern, '\4') INTO spkg_label FROM DUAL;
15034
 
15035
     -- Validate vcs type
15036
     BEGIN
15037
       SELECT vc.vcs_type_id INTO ivcs_type_id FROM vcs_type vc WHERE UPPER(svcs_type) = UPPER(vc.tag);
15038
     EXCEPTION
15039
       WHEN NO_DATA_FOUND THEN
15040
         raise_application_error (-20000, 'Invalid vcs type: ' || '"' || svcs_type || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
15041
       --RAISE;
15042
     END;
15043
 
15044
     -- If Clearcase
15045
     IF (ivcs_type_id = 2) THEN
15046
       -- Validate source path
15047
       IF NOT REGEXP_LIKE(ssrc_path,'^(\\|\/)[a-z]+[0-9a-z_\.\-\\\/ -]*$','i') THEN
15048
         raise_application_error (-20000, 'Invalid CC src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
15049
       END IF;
15050
 
15051
       -- Validate label
15052
       -- For clearcase the label must be specified. For subversion it is not required.
15053
       IF NOT REGEXP_LIKE(spkg_label,'^[0-9a-z_\.\-]+$','i') THEN
15054
         raise_application_error (-20000, 'Invalid CC label:' || '"' || spkg_label || '"' || ' for package version:' || ipv_id || ', vcstag:' || '"' || vcstag || '"');
15055
       END IF;
15056
 
15057
     -- if Subversion
15058
     ELSIF (ivcs_type_id = 23) THEN
15059
       -- general validity
15060
       -- Not as picky as the RM Data entry
15061
       IF NOT REGEXP_LIKE(ssrc_path,'^([0-9a-z_\.\-]+)(\/([0-9a-z_\.\-]+))+$','i') THEN
15062
         raise_application_error (-20000, 'Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
15063
       END IF;
15064
 
15065
       -- Validate Tag
15066
       -- May be a Peg or a Label
15067
       IF NOT REGEXP_LIKE(spkg_label,'^@?[0-9]+$','i') THEN
15068
           IF NOT REGEXP_LIKE(spkg_label,'^[0-9a-z_\.\-]+($|@[0-9]+)','i') THEN
15069
             raise_application_error (-20000, 'Invalid SVN tag:' || '"' || spkg_label || '"' || ' for package version:' || ipv_id || ', vcstag:' || '"' || vcstag || '"');
15070
           END IF;
15071
       END IF;
15072
 
15073
        -- Check for suitable ending
15074
        IF NOT REGEXP_LIKE(ssrc_path,'(\/tags$)|(\/branches\/)|(\/trunk$)','i') THEN
15075
            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 || '"');
15076
        END IF;
15077
 
15078
       -- Check for combined use of tags, branches, trunk or repeats of each
15079
       -- Count occurrences of /tags or /branches/ or /trunk
15080
       vcount:=0;
15081
       i:=1;
15082
       WHILE i > 0 LOOP
15083
         i:=REGEXP_INSTR(ssrc_path,'(\/tags(\/|$))|(\/branches(\/|$))|(\/trunk(\/|$))',i,1,1,'i');
15084
         IF i > 0 THEN
15085
           -- if found then increment count
15086
           vcount:=vcount+1;
15087
           i:=i-1;  -- move index back to "/"
15088
         END IF;
15089
       END LOOP;
15090
 
15091
       IF vcount = 0  THEN
15092
         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 || '"');
15093
       END IF;
15094
 
15095
       IF vcount > 1  THEN
15096
         raise_application_error (-20000, 'Combined use of /trunk, /tags, or /branches/. Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
15097
       END IF;
15098
 
15099
 
15100
     END IF;
15101
 
15102
     BEGIN
15103
       -- Get current vcs tag for specified package version
15104
       SELECT pv.src_path, pv.pkg_label, vc.tag as vcs_type
15105
       INTO old_src_path, old_pkg_label, old_vcs_type
15106
       FROM package_versions pv, vcs_type vc
15107
       WHERE pv.pv_id = ipv_id
15108
       AND pv.vcs_type_id = vc.vcs_type_id (+);
15109
 
15110
     EXCEPTION
15111
       WHEN NO_DATA_FOUND THEN
15112
         raise_application_error (-20000, 'Package version not found: ' || ipv_id);
15113
     END;
15114
 
15115
     old_pkg_vcstag:= old_vcs_type || '::' || old_src_path;
15116
     IF (old_pkg_label IS NOT NULL) THEN
15117
       old_pkg_vcstag:=old_pkg_vcstag || '::' || old_pkg_label;
15118
     END IF;
15119
 
15120
     -- Create action description
15121
     -- This description will contain the old and new tags.
15122
     -- Its purpose is to provide information for tracking and for restoring previous vcs settings if a recovery is required.
15123
     -- An example of the action description is below:
15124
     --   OldTag:CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr NewTag:SVN::DPG_SWBase/tools/tags/daf_tools_25.1.7027.cr
15125
     saction_desc:='OldTag:' || old_pkg_vcstag || ' ' || 'NewTag:' || vcstag;
15126
 
15127
     -- Store new vcs details
15128
     UPDATE package_versions SET
15129
       src_path = ssrc_path,
15130
       pkg_label = spkg_label,
15131
       vcs_type_id = ivcs_type_id
15132
     WHERE
15133
       pv_id = ipv_id;
15134
 
15135
     -- Store action in action log so that we can back track and also restore vcs settings if required.
15136
     log_action (ipv_id,'VcsConversion',user_id,saction_desc);
15137
 
15138
   END update_vcs_details;
15139
 
15140
/*-------------------------------------------------------------------------------------------------------
15141
Name:        isSVN
15142
Description: Determine if any of the packages versions are controlled under SVN
15143
			 Intended to be used to prevent users from releasing a package
15144
			 that has been migrated to SVN
15145
 
15146
Paramters:	pkgid:     Package ID
15147
 
15148
Returns:	Number of versions under SVN version control
15149
*/
6031 dpurdie 15150
 
3959 dpurdie 15151
FUNCTION isSVN( pkgid IN NUMBER )
15152
    RETURN NUMBER
15153
    IS
15154
    svncount   NUMBER  := 0;
15155
   BEGIN
15156
        SELECT COUNT(*) INTO svncount FROM PACKAGE_VERSIONS pv WHERE pv.PKG_ID = pkgid AND pv.VCS_TYPE_ID = 23;
15157
        RETURN (svncount);
1373 dpurdie 15158
   END;
6031 dpurdie 15159
 
3959 dpurdie 15160
/*-------------------------------------------------------------------------------------------------------
15161
Name:        isSVNbyName
15162
Description: Determine if any of the packages versions are controlled under SVN
15163
			 Intended to be used to prevent users from releasing a package
15164
			 that has been migrated to SVN
15165
 
15166
Paramters:	pkgname:	Package Name
15167
 
15168
Returns:	Number of versions under SVN version control
15169
*/
15170
 
6031 dpurdie 15171
FUNCTION isSVNbyName( pkgname IN VARCHAR2 )
3959 dpurdie 15172
    RETURN NUMBER
15173
IS
15174
   svncount   NUMBER  := 0;
15175
   BEGIN
15176
        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;
15177
        RETURN (svncount);
15178
   END;
5172 dpurdie 15179
/*-------------------------------------------------------------------------------------------------------
15180
Name:        new_build_instance
15181
Description: Create a new entry in the BUILD_INSTANCE table
15182
             The BUILD_ID will be allocated.
15183
             The timestamp will be created
15184
 
15185
Paramters:	rtag_id:	Release ID - must exist
15186
            pv_id:    Package ID - must exist
15187
            reason:   Reason code for the build
15188
 
15189
Returns:	BUILD_ID for the new entry
15190
          Returns -1 on error, PV_ID or RTAG_ID do not exist
6031 dpurdie 15191
*/
15192
FUNCTION new_build_instance( rtag_id IN NUMBER, pv_id IN NUMBER , reason IN CHAR)
15193
  RETURN NUMBER
5172 dpurdie 15194
  IS
15195
    build_id NUMBER := 0;
15196
  BEGIN
15197
    INSERT into BUILD_INSTANCES (RTAG_ID, PV_ID, REASON)
15198
    values( rtag_id, pv_id, reason)
15199
    returning BUILD_ID into build_id;
15200
    return build_id;
15201
  EXCEPTION
15202
    WHEN OTHERS THEN
15203
      return -1;
15204
  END;
6031 dpurdie 15205
 
5172 dpurdie 15206
/*-------------------------------------------------------------------------------------------------------
15207
Name: update_build_instance
15208
Description: Update fields in an existing build instance
15209
Returns: -1 on error
15210
*/
15211
FUNCTION update_build_instance(
15212
    nbuild_id IN NUMBER,
15213
    npv_id    IN NUMBER DEFAULT NULL,
15214
    nstate    IN CHAR DEFAULT NULL )
15215
  RETURN NUMBER
15216
IS
15217
BEGIN
15218
  IF ( npv_id IS NOT NULL AND npv_id > 0 ) THEN
15219
    UPDATE BUILD_INSTANCES SET PV_ID = npv_id WHERE BUILD_ID = nbuild_id;
15220
    IF SQL%NOTFOUND THEN
15221
      RETURN -2;
15222
    END IF;
15223
  END IF;
6031 dpurdie 15224
 
5172 dpurdie 15225
  IF ( nstate        IS NOT NULL ) THEN
15226
    IF (LENGTH(nstate) = 1 ) THEN
15227
      UPDATE BUILD_INSTANCES SET STATE = nstate WHERE BUILD_ID = nbuild_id;
15228
        IF SQL%NOTFOUND THEN
15229
          RETURN -3;
15230
        END IF;
15231
    ELSE
15232
      RETURN -4;
15233
    END IF;
15234
  END IF;
6031 dpurdie 15235
 
5172 dpurdie 15236
  RETURN 1;
15237
  EXCEPTION
15238
    WHEN OTHERS THEN
15239
      RETURN -1;
15240
  END;
15241
 
15242
/*-------------------------------------------------------------------------------------------------------
15243
Name:        insert_test_run
15244
Description: Insert data into the test_run table
15245
 
6031 dpurdie 15246
 
5172 dpurdie 15247
Paramters:	See below
15248
 
15249
Returns:	1 on success
15250
          Returns -1 on error
6031 dpurdie 15251
*/
15252
  FUNCTION insert_test_run(
15253
      build_id  IN NUMBER,
15254
      name      IN VARCHAR2,
15255
      outcome   IN VARCHAR2,
15256
      platform  IN VARCHAR2,
15257
      stype     IN VARCHAR2,
15258
      duration  IN NUMBER default null,
5172 dpurdie 15259
      message   IN CLOB default null
15260
      ) return NUMBER
15261
IS
15262
  sName VARCHAR2(1000) := name;
15263
  sNameLen NUMBER;
6031 dpurdie 15264
 
5172 dpurdie 15265
BEGIN
15266
  sNameLen := LENGTH(sName);
5384 dpurdie 15267
  IF sNameLen >= 199 Then
6031 dpurdie 15268
    sName := '...' || SUBSTR(sName, sNameLen - 196);
5172 dpurdie 15269
  END IF;
15270
 
15271
  INSERT into TEST_RUN
15272
    (BUILD_ID, TEST_NAME, TEST_OUTCOME, TIME_TAKEN,FAIL_MESSAGE,PLATFORM, TYPE)
15273
    VALUES(build_id,sName,outcome, duration, message, platform, stype);
15274
    return 1;
15275
  EXCEPTION
15276
    WHEN OTHERS THEN
15277
      return -1;
15278
 
15279
END;
6031 dpurdie 15280
 
3959 dpurdie 15281
   END;
4040 dpurdie 15282
 
1374 dpurdie 15283
/
5892 dpurdie 15284
 
6031 dpurdie 15285
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "RM_READONLY";
15286
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "MS_READONLY";
5892 dpurdie 15287
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "DM_READONLY";
4040 dpurdie 15288
--------------------------------------------------------
15289
--  DDL for Package Body PK_WORK_IN_PROGRESS
15290
--------------------------------------------------------
15291
 
5172 dpurdie 15292
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS
1373 dpurdie 15293
 
15294
/*
15295
------------------------------
15296
||  Last Modified:  S.Vukovic
3959 dpurdie 15297
||  Modified Date:  2/May/2005
1373 dpurdie 15298
||  Body Version:   1.0
15299
------------------------------
15300
*/
15301
 
15302
 
15303
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 15304
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 15305
 
3959 dpurdie 15306
	oldPvId NUMBER;
15307
	ReleaseLocation VARCHAR2(4000);
15308
	sLocation VARCHAR2(4000) := NULL;
1373 dpurdie 15309
 
3959 dpurdie 15310
 
1373 dpurdie 15311
BEGIN
15312
	/*--------------- Business Rules Here -------------------*/
3959 dpurdie 15313
	/*-------------------------------------------------------*/
1373 dpurdie 15314
 
3959 dpurdie 15315
	BEGIN
5384 dpurdie 15316
		-- Check if Exists in "Work in progress" anywhere in the world in a non-closed Release
3959 dpurdie 15317
		SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME  INTO sLocation
15318
		  FROM WORK_IN_PROGRESS wip,
15319
		  	   RELEASE_TAGS rt,
15320
			   PROJECTS proj
15321
		 WHERE wip.PV_ID = newPvId
15322
		   AND wip.RTAG_ID = rt.RTAG_ID
5384 dpurdie 15323
		   AND rt.OFFICIAL in ('N','R','C')
3959 dpurdie 15324
		   AND rt.PROJ_ID = proj.PROJ_ID;
1373 dpurdie 15325
 
3959 dpurdie 15326
		EXCEPTION
15327
	    	WHEN NO_DATA_FOUND THEN
15328
	       		sLocation := NULL;
1373 dpurdie 15329
 
6031 dpurdie 15330
	END;
1373 dpurdie 15331
 
15332
 
6031 dpurdie 15333
 
3959 dpurdie 15334
	IF (sLocation IS NULL)  THEN
1373 dpurdie 15335
 
3959 dpurdie 15336
		-- Add to "Work in progress"
15337
		INSERT INTO WORK_IN_PROGRESS ( RTAG_ID, PV_ID, VIEW_ID )
15338
		VALUES( RtagId, newPvId, ViewId );
15339
 
15340
 
15341
	    /* LOG ACTION */
15342
		SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
15343
		  FROM PROJECTS proj,
15344
		  	   RELEASE_TAGS rt
15345
		 WHERE rt.PROJ_ID = proj.PROJ_ID
15346
		   AND rt.RTAG_ID = RtagId;
15347
 
15348
		Log_Action ( newPvId, 'work_in_progress', UserId, 'Location: '|| ReleaseLocation );
15349
 
15350
	ELSE
6031 dpurdie 15351
 
3959 dpurdie 15352
		RAISE_APPLICATION_ERROR (-20000, 'This version is already in Work-In-Progress Area at '|| sLocation ||'.' );
6031 dpurdie 15353
 
1373 dpurdie 15354
	END IF;
15355
 
3959 dpurdie 15356
END;
15357
/*-------------------------------------------------------------------------------------------------------*/
15358
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 15359
 
3959 dpurdie 15360
	ReleaseLocation VARCHAR2(4000);
1373 dpurdie 15361
 
3959 dpurdie 15362
BEGIN
15363
 
15364
	/*--------------- Business Rules Here -------------------*/
1373 dpurdie 15365
	/*-------------------------------------------------------*/
15366
 
15367
 
3959 dpurdie 15368
	-- Get release location for logging pusposes
15369
	SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
15370
	  FROM PROJECTS proj,
15371
	  	   RELEASE_TAGS rt
15372
	 WHERE rt.PROJ_ID = proj.PROJ_ID
15373
	   AND rt.RTAG_ID = RtagId;
1373 dpurdie 15374
 
6031 dpurdie 15375
    -- Ensure that package is not marked as Pending/Rejected any more
15376
    UPDATE package_versions
15377
       SET DLOCKED  = 'N'
15378
     WHERE PV_ID  = PvId
15379
       AND DLOCKED != 'Y';
1373 dpurdie 15380
 
3959 dpurdie 15381
	-- Delete from Work In Progress
15382
	DELETE
15383
	  FROM WORK_IN_PROGRESS wip
15384
	 WHERE wip.RTAG_ID = RtagId
15385
	   AND wip.PV_ID = PvId;
1373 dpurdie 15386
 
3959 dpurdie 15387
	Log_Action ( PvId, 'delete_from_wip', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 15388
 
3959 dpurdie 15389
 
15390
 
15391
 
1373 dpurdie 15392
END;
15393
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 15394
PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 15395
 
3959 dpurdie 15396
	nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
15397
	ReleaseLocation VARCHAR2(4000);
15398
	PvId NUMBER;
1373 dpurdie 15399
 
15400
BEGIN
3959 dpurdie 15401
 
1373 dpurdie 15402
	/*--------------- Business Rules Here -------------------*/
3959 dpurdie 15403
	IF (PvIdList IS NULL)
15404
	THEN
15405
		RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
15406
	END IF;
1373 dpurdie 15407
	/*-------------------------------------------------------*/
15408
 
15409
 
3959 dpurdie 15410
	nIdCollector := IN_LIST_NUMBER ( PvIdList );
1373 dpurdie 15411
 
15412
 
3959 dpurdie 15413
	-- Get release location for logging pusposes
15414
	SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
15415
	  FROM PROJECTS proj,
15416
	  	   RELEASE_TAGS rt
15417
	 WHERE rt.PROJ_ID = proj.PROJ_ID
15418
	   AND rt.RTAG_ID = RtagId;
1373 dpurdie 15419
 
3959 dpurdie 15420
 
15421
	FOR i IN 1..nIdCollector.COUNT
15422
	LOOP
15423
		PvId := nIdCollector(i);
15424
 
15425
		-- Delete from Work In Progress
15426
		DELETE
15427
		  FROM WORK_IN_PROGRESS wip
15428
		 WHERE wip.RTAG_ID = RtagId
15429
		   AND wip.PV_ID = PvId;
15430
 
15431
		Log_Action ( PvId, 'remove_from_work_in_progress', UserId, 'Location: '|| ReleaseLocation );
15432
 
15433
	END LOOP;
15434
 
15435
 
1373 dpurdie 15436
END;
15437
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 15438
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
15439
 
15440
	ReturnValue NUMBER;
15441
 
1373 dpurdie 15442
BEGIN
3959 dpurdie 15443
	SELECT wip.VIEW_ID INTO ReturnValue
15444
	  FROM WORK_IN_PROGRESS wip
15445
	 WHERE wip.RTAG_ID = RtagId
15446
	   AND wip.PV_ID = PvId;
1373 dpurdie 15447
 
3959 dpurdie 15448
	RETURN ReturnValue;
1373 dpurdie 15449
END;
15450
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 15451
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
15452
 
15453
	IsBaseView CHAR(1);
6031 dpurdie 15454
 
1373 dpurdie 15455
BEGIN
15456
 
3959 dpurdie 15457
	-- Check if the view is BASE VIEW
15458
	SELECT vi.BASE_VIEW INTO IsBaseView
15459
	  FROM VIEWS vi
15460
	 WHERE vi.VIEW_ID = ViewId;
6031 dpurdie 15461
 
15462
	IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 15463
		-- Get Base view content
15464
		OPEN RecordSet FOR
15465
		SELECT 0 AS PKG_STATE,
15466
			   NULL AS DEPRECATED_STATE,
6031 dpurdie 15467
			   pv.pv_id,
15468
			   pkg.pkg_name,
15469
			   pv.pkg_version,
15470
			   pv.dlocked,
3959 dpurdie 15471
			   pv.pv_description,
15472
			   pv.BUILD_TYPE
15473
		  FROM WORK_IN_PROGRESS rel,
15474
		       packages pkg,
15475
		       package_versions pv
15476
		 WHERE pv.pkg_id = pkg.pkg_id
15477
		   AND rel.pv_id = pv.pv_id
15478
		   AND rel.VIEW_ID = ViewId
15479
		   AND rel.RTAG_ID = RtagId
15480
		 ORDER BY UPPER(pkg.PKG_NAME);
1373 dpurdie 15481
 
6031 dpurdie 15482
 
15483
	ELSE
15484
 
3959 dpurdie 15485
	 	-- Get non base view content
15486
		OPEN RecordSet FOR
15487
		SELECT 0 AS PKG_STATE,
15488
			   NULL AS DEPRECATED_STATE,
6031 dpurdie 15489
			   pv.pv_id,
15490
			   pkg.pkg_name,
15491
			   pv.pkg_version,
15492
			   pv.dlocked,
3959 dpurdie 15493
			   pv.pv_description,
15494
			   pv.BUILD_TYPE
15495
		  FROM WORK_IN_PROGRESS rel,
15496
		       packages pkg,
15497
		       package_versions pv,
15498
			   VIEW_DEF vd
15499
		 WHERE pv.pkg_id = pkg.pkg_id
15500
		   AND rel.pv_id = pv.pv_id
15501
		   AND vd.VIEW_ID = ViewId
15502
		   AND vd.PKG_ID = pv.PKG_ID
15503
		   AND rel.RTAG_ID = RtagId
15504
		 ORDER BY UPPER(pkg.PKG_NAME);
15505
 
6031 dpurdie 15506
 
15507
	END IF;
15508
 
15509
 
1373 dpurdie 15510
END;
15511
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 15512
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
6031 dpurdie 15513
 
1373 dpurdie 15514
BEGIN
6031 dpurdie 15515
 
3959 dpurdie 15516
	UPDATE WORK_IN_PROGRESS wip SET
15517
	wip.VIEW_ID = NewViewId
15518
	WHERE wip.PV_ID = PvId
15519
	  AND wip.RTAG_ID = RtagId;
6031 dpurdie 15520
 
1373 dpurdie 15521
END;
15522
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 15523
END PK_WORK_IN_PROGRESS;
4040 dpurdie 15524
 
3959 dpurdie 15525
/
4040 dpurdie 15526
--------------------------------------------------------
15527
--  DDL for Package Body RM_ISSUES
15528
--------------------------------------------------------
15529
 
5172 dpurdie 15530
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."RM_ISSUES" AS
1373 dpurdie 15531
 
3959 dpurdie 15532
-- Private Implementation -----------------------------------------------------
1373 dpurdie 15533
 
15534
 
3959 dpurdie 15535
	FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER
15536
	AS
1373 dpurdie 15537
 
3959 dpurdie 15538
	BEGIN
15539
		-- start boundary case
15540
		IF ( XXstart < XX ) THEN
15541
			RETURN 1;
1373 dpurdie 15542
 
3959 dpurdie 15543
		ELSIF ( XXstart = XX ) THEN
1373 dpurdie 15544
 
3959 dpurdie 15545
			-- need to consider YY
15546
			IF ( YYstart < YY ) THEN
15547
				RETURN 1;
1373 dpurdie 15548
 
3959 dpurdie 15549
			ELSIF ( YYstart = YY ) THEN
1373 dpurdie 15550
 
3959 dpurdie 15551
					-- need to consider ZZ
15552
					IF ( ZZstart <= ZZ ) THEN
15553
						RETURN 1;
15554
 
15555
					ELSE
15556
						RETURN 0;
15557
					END IF;
15558
 
15559
			ELSE
15560
				RETURN 0;
15561
			END IF;
15562
		ELSE
15563
			RETURN 0;
15564
		END IF;
15565
	EXCEPTION
15566
		WHEN OTHERS THEN
15567
			RETURN -1;
15568
	END;
15569
 
15570
 
15571
	FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER
15572
	AS
15573
 
15574
	BEGIN
15575
		-- end boundary case
15576
		IF ( XX < XXend ) THEN
15577
			RETURN 1;
15578
 
15579
		ELSIF ( XX = XXend ) THEN
15580
 
15581
			-- need to consider YY
15582
			IF ( YY < YYend ) THEN
15583
				RETURN 1;
15584
 
15585
			ELSIF ( YY = YYend ) THEN
15586
 
15587
					-- need to consider ZZ
15588
					IF ( ZZ <= ZZend ) THEN
15589
						RETURN 1;
15590
 
15591
					ELSE
15592
						RETURN 0;
15593
					END IF;
15594
			ELSE
15595
 
15596
				RETURN 0;
15597
			END IF;
15598
		ELSE
15599
			RETURN 0;
15600
		END IF;
15601
	EXCEPTION
15602
		WHEN OTHERS THEN
15603
			RETURN -1;
15604
	END;
15605
 
15606
	/*
15607
	-	version format:		XX.YY.ZZ.abc
15608
	*/
15609
	FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBER
15610
	AS
15611
		XXstart		NUMBER	:=	0;
15612
		XXend		NUMBER	:=	0;
15613
		XX			NUMBER	:=	0;
15614
		YYstart		NUMBER	:=	0;
15615
		YYend		NUMBER	:=	0;
15616
		YY			NUMBER	:=	0;
15617
		ZZstart		NUMBER	:=	0;
15618
		ZZend		NUMBER	:=	0;
15619
		ZZ			NUMBER	:=	0;
15620
		first_dot	NUMBER	:=	0;
15621
		second_dot	NUMBER	:=	0;
15622
		third_dot	NUMBER	:=	0;
15623
 
15624
		ProjExtstart	VARCHAR2(10);
15625
		ProjExtend		VARCHAR2(10);
15626
		ProjExt			VARCHAR2(10);
15627
 
15628
	BEGIN
15629
		-- strip the version number
15630
		first_dot :=  INSTR(version_start, '.', 1, 1);
15631
		second_dot :=  INSTR(version_start, '.', 1, 2);
15632
		third_dot :=  INSTR(version_start, '.', 1, 3);
15633
 
15634
		XXstart := TO_NUMBER( SUBSTR( version_start, 1, first_dot - 1 ) );
15635
		YYstart := TO_NUMBER( SUBSTR( version_start, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
15636
		ZZstart := TO_NUMBER( SUBSTR( version_start, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
15637
		ProjExtstart := SUBSTR( version_start, third_dot + 1, LENGTH(version_start) - third_dot );
15638
 
15639
		first_dot :=  INSTR(version_end, '.', 1, 1);
15640
		second_dot :=  INSTR(version_end, '.', 1, 2);
15641
		third_dot :=  INSTR(version_end, '.', 1, 3);
15642
 
15643
		XXend := TO_NUMBER( SUBSTR( version_end, 1, first_dot - 1 ) );
15644
		YYend := TO_NUMBER( SUBSTR( version_end, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
15645
		ZZend := TO_NUMBER( SUBSTR( version_end, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
15646
		ProjExtend := SUBSTR( version_end, third_dot + 1, LENGTH(version_end) - third_dot );
15647
 
15648
		first_dot :=  INSTR(version, '.', 1, 1);
15649
		second_dot :=  INSTR(version, '.', 1, 2);
15650
		third_dot :=  INSTR(version, '.', 1, 3);
15651
 
15652
		XX := TO_NUMBER( SUBSTR( version, 1, first_dot - 1 ) );
15653
		YY := TO_NUMBER( SUBSTR( version, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
15654
		ZZ := TO_NUMBER( SUBSTR( version, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
15655
		ProjExt := SUBSTR( version, third_dot + 1, LENGTH(version) - third_dot );
15656
 
15657
		-- only include versions if all project extensions are the same
15658
		IF ( ProjExtstart = ProjExt AND ProjExt = ProjExtend ) THEN
15659
 
15660
			IF ( VerIsGrtrThanOrEqlToStart( XXstart, XX, YYstart, YY, ZZstart, ZZ ) = 1 AND VerIsLessThanOrEqlToEnd( XXend, XX, YYend, YY, ZZend, ZZ ) = 1 ) THEN
15661
				RETURN 1;
15662
			ELSE
15663
				RETURN 0;
15664
			END IF;
15665
		ELSE
15666
			RETURN 0;
15667
		END IF;
15668
 
15669
	EXCEPTION
15670
		WHEN OTHERS THEN
15671
			RETURN -1;
15672
	END;
15673
 
15674
	FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBER
15675
	AS
15676
	    pkg_id NUMBER;
15677
	BEGIN
15678
		SELECT
15679
			p.PKG_ID
15680
		INTO
15681
			pkg_id
15682
		FROM
15683
			PACKAGES p
15684
		WHERE
15685
			p.PKG_NAME = pkgName;
15686
 
15687
		RETURN pkg_id;
15688
	EXCEPTION
15689
	    WHEN OTHERS THEN
15690
			dbms_output.put_line('GetPkgId exception: ' || SQLERRM );
15691
			RETURN -1;
15692
	END;
15693
 
15694
 
15695
-- Public Implementation ------------------------------------------------------
15696
 
15697
	/*
15698
	-- Proc: AllIssues - Gets all issues for a package from dependent packages one level deep
15699
	--
15700
	-- INPUT PARAMETERS:
15701
	--
15702
	--		pkg_name  	-  	The name of the top level package to get issues for
15703
	--		version_start	-	The start version for the comparison
15704
	--		version_end	-	The end version for the comparison
15705
	*/
15706
	PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )
15707
	AS
15708
		pkgId	NUMBER;
15709
	BEGIN
15710
		-- get pkg_id of the input package:
15711
		pkgId := GetPkgId( pkg_name );
15712
 
15713
		OPEN vCursor FOR
15714
		SELECT
15715
			  pv.PKG_ID,
15716
			  pv.PKG_VERSION,
15717
			  pv.PV_ID,
15718
			  i_pkg.ISS_ID,
15719
			  ( SELECT pkg_name FROM PACKAGES WHERE pkg_id = pd.DPKG_ID ) AS DPV_NAME,
15720
			  pd.DPKG_ID,
15721
			  ( SELECT pkg_version FROM PACKAGE_VERSIONS WHERE pv_id = pd.DPV_ID ) AS DPV_VER,
15722
			  pd.DPV_ID,
15723
			  i_dpkg.ISS_ID AS ISSUE_ID
15724
		FROM
15725
			 PACKAGE_VERSIONS pv
15726
							  LEFT OUTER JOIN CQ_ISSUES i_pkg ON pv.PV_ID = i_pkg.PV_ID
15727
							  LEFT OUTER JOIN PACKAGE_DEPENDENCIES pd ON pv.PV_ID = pd.PV_ID
15728
							  LEFT OUTER JOIN CQ_ISSUES i_dpkg ON pd.DPV_ID = i_dpkg.PV_ID
15729
		WHERE
15730
   			 pv.PKG_ID = pkgId
15731
		AND
15732
			VersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1
15733
		AND
15734
			 ( i_dpkg.ISS_ID IS NOT NULL OR i_pkg.ISS_ID IS NOT NULL )
15735
		ORDER BY
15736
			 pv.PKG_ID,
15737
			 pv.PV_ID,
15738
			 pd.DPKG_ID,
15739
			 pd.DPV_ID;
15740
	EXCEPTION
15741
		WHEN OTHERS THEN
15742
			dbms_output.put_line('AllIssues exception: ' || SQLERRM );
15743
	END;
15744
 
15745
 
15746
	-- NOTE: make RM_PACKAGE_ISSUES a temporary table when tested ok
15747
 
15748
	/*
15749
	-- Proc: LoadIssuesTable
15750
	--
15751
	-- Populates Package_Issues table with details of issues from all dependent packages.
15752
	-- This will be for all package versions of the input pkg_name between the
15753
	-- version_start and version_end.
15754
	--
15755
	-- INPUT PARAMETERS:
15756
	--
15757
	--		pkg_name  	-  	The name of the top level package to get issues for
15758
	--		version_start	-	The start version for the comparison
15759
	--		version_end	-	The end version for the comparison
15760
	*/
15761
	PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )
15762
	AS
15763
		pkgId	NUMBER;
15764
 
15765
		CURSOR pack_vers_cur IS
15766
			SELECT
15767
				pv.PV_ID,
15768
				pv.PKG_VERSION,
15769
				pv.PKG_ID,
15770
				p.PKG_NAME
15771
			FROM
15772
				PACKAGE_VERSIONS pv
15773
					JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
15774
			WHERE
15775
   				 pv.PKG_ID = pkgId
15776
			AND
15777
				VersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1;
15778
 
15779
	BEGIN
15780
		DELETE FROM RELEASE_MANAGER.RM_PKG_ISSUES; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
15781
 
15782
		-- get the pkg_id we are finding issues for
15783
		pkgId := GetPkgId( pkg_name );
15784
 
15785
		-- find all the top level packages we are dealing with and recursively process their issues and their dependent package issues.
15786
		FOR pack_ver_rec IN  pack_vers_cur
15787
		LOOP
15788
			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 );
15789
			COMMIT;
15790
		END LOOP;
15791
 
15792
		-- The output cursor - shows the individual versions of the top level package then were reported on
15793
		OPEN vCursor FOR
15794
		SELECT DISTINCT ISS_ID, PKG_VERSION FROM RM_PKG_ISSUES WHERE ISS_ID IS NOT NULL; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
15795
/*removed
15796
		SELECT
15797
			PKG_VERSION
15798
		FROM
15799
			RELEASE_MANAGER.RM_PACKAGE_ISSUES;
15800
*/
15801
 
15802
 
15803
	EXCEPTION
15804
		WHEN OTHERS THEN
15805
			dbms_output.put_line('LoadIssuesTable exception: ' || SQLERRM );
15806
	END;
15807
 
15808
 
15809
	/*
15810
	-- Proc: InsertIssuesForDepends
15811
	--
15812
	-- Used by LoadIssuesTable to recursively find issues for all dependent packages
15813
	--
15814
	-- INPUT PARAMETERS:
15815
	--
15816
	--		pvID  		-  	The package version id of the package to get issues for
15817
	--		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)
15818
	--		top_pkgName -  	The package name of the top level package
15819
	--		top_pvID  	-  	The package version id of the top level package
15820
	--		top_pkgVer  -  	The package version description of the top level package
15821
	*/
15822
	PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 )
15823
	AS
15824
		pkgId		NUMBER;
15825
		issCnt		NUMBER := 0;
15826
		pkgCheck	NUMBER := 0;
15827
		depCheck	NUMBER := 0;
15828
 
15829
		dpkgName	VARCHAR(50);
15830
		dpkgVersion	VARCHAR(50);
15831
 
15832
		CURSOR dep_packs_cur IS
15833
			SELECT
15834
				DPV_ID
15835
			FROM
15836
				PACKAGE_DEPENDENCIES
15837
			WHERE
15838
				PV_ID = pvID;
15839
 
15840
	BEGIN
15841
 
15842
		-- check to see if the package has been processed previously
15843
		SELECT
15844
			COUNT(*)
15845
		INTO
15846
			pkgCheck
15847
		FROM
15848
			RM_PKG_ISSUES /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
15849
		WHERE
15850
			DPV_ID = pvID;
15851
 
15852
		dbms_output.put_line('pkgCheck: ' || pkgCheck );
15853
 
15854
		-- Package not already processed (no cyclic dependency) - process it
15855
		IF ( pkgCheck = 0 ) THEN
15856
 
15857
			-- check to see if this package version has any issues assigned to it
15858
			SELECT
15859
				COUNT(*)
15860
			INTO
15861
				issCnt
15862
			FROM
15863
				CQ_ISSUES i
15864
			WHERE
15865
				i.PV_ID = pvID;
15866
 
15867
			dbms_output.put_line('issCnt: ' || issCnt );
15868
 
15869
			-- Always enter a marker row into the table even if there are no issues for the package.
15870
			-- This allows us to pick up any cyclic dependencies.
15871
			IF ( issCnt > 0 ) THEN
15872
				-- get issues and insert into RM_PACKAGE_ISSUES
15873
				/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
15874
 
15875
				INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )
15876
					SELECT DISTINCT
15877
						top_pkgID		AS PKG_ID,
15878
						top_pkgName		AS PKG_NAME,
15879
						top_pvID		AS PV_ID,
15880
						top_pkgVer		AS PKG_VERSION,
15881
						pv.PV_ID		AS DPV_ID,
15882
						p.PKG_NAME		AS DPKG_NAME,
15883
						pv.PKG_VERSION	AS DPKG_VERSION,
15884
						ci.ISS_DB,
15885
						ci.ISS_ID
15886
					FROM
15887
						PACKAGE_VERSIONS pv
15888
							JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
15889
							JOIN CQ_ISSUES ci ON pv.PV_ID = ci.PV_ID
15890
					WHERE
15891
						pv.PV_ID = pvID;
15892
 
15893
			ELSE
15894
				-- get the dpkg details - there will always be a row returned here
15895
				SELECT
15896
					p.PKG_NAME
15897
				INTO
15898
					dpkgName
15899
				FROM
15900
					PACKAGE_VERSIONS pv
15901
						JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
15902
				WHERE
15903
	   				 pv.PV_ID = pvID;
15904
 
15905
				SELECT
15906
					pv.PKG_VERSION
15907
				INTO
15908
					dpkgVersion
15909
				FROM
15910
					PACKAGE_VERSIONS pv
15911
				WHERE
15912
	   				 pv.PV_ID = pvID;
15913
 
15914
				-- enter a marker row
15915
				/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
15916
				INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )
15917
				VALUES (
15918
					top_pkgID,
15919
					top_pkgName,
15920
					top_pvID,
15921
					top_pkgVer,
15922
					pvID,
15923
					dpkgName,
15924
					dpkgVersion,
15925
					NULL,
15926
					NULL );
15927
 
15928
			END IF;
15929
 
15930
			-- If this package version has dependencies then recurse
15931
			SELECT
15932
				COUNT(*)
15933
			INTO
15934
				depCheck
15935
			FROM
15936
				PACKAGE_DEPENDENCIES
15937
			WHERE
15938
				PV_ID = pvID;
15939
 
15940
			IF ( depCheck > 0 ) THEN
15941
				-- get dependencies and call this function recursively for each one
15942
				FOR dep_rec IN  dep_packs_cur
15943
				LOOP
15944
					InsertIssuesForDepends( dep_rec.DPV_ID, top_pkgID, top_pkgName, top_pvID, top_pkgVer );
15945
				END LOOP;
15946
 
15947
			END IF;
15948
 
15949
		END IF;
15950
 
15951
	/*EXCEPTION
15952
		WHEN OTHERS THEN
15953
			no exception handling required
15954
	*/
15955
	END;
15956
 
15957
END Rm_Issues;
4040 dpurdie 15958
 
1374 dpurdie 15959
/
4040 dpurdie 15960
--------------------------------------------------------
15961
--  DDL for Procedure ADD_AUTOBUILD_FAILURE_INFO
15962
--------------------------------------------------------
15963
set define off;
15964
 
5172 dpurdie 15965
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_AUTOBUILD_FAILURE_INFO" (
1373 dpurdie 15966
   nprojid     IN   NUMBER,
15967
   nviewid     IN   NUMBER,
15968
   suserlist   IN   VARCHAR2
15969
)
15970
IS
15971
   groupid   NUMBER;
15972
/******************************************************************************
15973
   NAME:       ADD_AUTOBUILD_FAILURE
15974
   PURPOSE:
15975
 
15976
   REVISIONS:
15977
   Ver        Date        Author           Description
15978
   ---------  ----------  ---------------  ------------------------------------
15979
   1.0        11/04/2006   Rupesh Solanki Created this procedure.
15980
 
15981
   NOTES:
15982
 
15983
   Automatically available Auto Replace Keywords:
15984
      Object Name:     ADD_AUTOBUILD_FAILURE
15985
      Sysdate:         11/04/2006
15986
      Date and Time:   11/04/2006, 9:28:28 AM, and 11/04/2006 9:28:28 AM
15987
      Username:         (set in TOAD Options, Procedure Editor)
15988
      Table Name:       (set in the "New PL/SQL Object" dialog)
15989
 
15990
******************************************************************************/
15991
BEGIN
15992
   BEGIN
15993
      SELECT group_email_id
15994
        INTO groupid
15995
        FROM autobuild_failure
15996
       WHERE proj_id = nprojid AND view_id = nviewid;
15997
   EXCEPTION
15998
      WHEN NO_DATA_FOUND
15999
      THEN
16000
         --  Create Next Sequence Id ---
16001
         SELECT seq_group_email_id.NEXTVAL
16002
           INTO groupid
16003
           FROM DUAL;
16004
 
16005
         INSERT INTO autobuild_failure
16006
                     (group_email_id, proj_id, view_id
16007
                     )
16008
              VALUES (groupid, nprojid, nviewid
16009
                     );
16010
   END;
16011
 
16012
   add_view_members (groupid, suserlist);
16013
END add_autobuild_failure_info;
4040 dpurdie 16014
 
1374 dpurdie 16015
/
4040 dpurdie 16016
--------------------------------------------------------
16017
--  DDL for Procedure ADD_COMPONENT
16018
--------------------------------------------------------
16019
set define off;
16020
 
5172 dpurdie 16021
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_COMPONENT" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE,
3959 dpurdie 16022
	   	  		  						  	sFileName IN RELEASE_COMPONENTS.FILE_NAME%TYPE,
16023
											sFilePath IN RELEASE_COMPONENTS.FILE_PATH%TYPE DEFAULT NULL,
16024
											nByteSize IN RELEASE_COMPONENTS.BYTE_SIZE%TYPE,
16025
											sCRCcksum IN RELEASE_COMPONENTS.CRC_CKSUM%TYPE DEFAULT NULL,
16026
											sCRCmodcrc IN RELEASE_COMPONENTS.CRC_MODCRC%TYPE DEFAULT NULL
16027
                                           ) IS
16028
/* ---------------------------------------------------------------------------
16029
    Version: 3.0.0
16030
   --------------------------------------------------------------------------- */
1373 dpurdie 16031
 
16032
 
16033
BEGIN
16034
 
3959 dpurdie 16035
	 --- Insert into RELEASE_COMPONENTS
16036
	 INSERT INTO RELEASE_COMPONENTS ( PV_ID, FILE_NAME, FILE_PATH, BYTE_SIZE, CRC_CKSUM, CRC_MODCRC )
16037
	 VALUES ( nPvId, sFileName, sFilePath, nByteSize, sCRCcksum, sCRCmodcrc  );
1373 dpurdie 16038
 
16039
 
3959 dpurdie 16040
 
16041
 
16042
END Add_Component;
4040 dpurdie 16043
 
1374 dpurdie 16044
/
4040 dpurdie 16045
--------------------------------------------------------
16046
--  DDL for Procedure ADD_PACKAGE_INTEREST
16047
--------------------------------------------------------
16048
set define off;
16049
 
5384 dpurdie 16050
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_PACKAGE_INTEREST" (
16051
    nProjId    IN PROJECTS.PROJ_ID%TYPE,
16052
    nPkgIdList IN VARCHAR2,
16053
    nUserId    IN NUMBER )
16054
IS
16055
  npkgidcollector relmgr_number_tab_t := relmgr_number_tab_t ();
16056
  nPkgId        NUMBER;
16057
  alreadyExists NUMBER;
1373 dpurdie 16058
BEGIN
5384 dpurdie 16059
  npkgidcollector := in_list_number2 (nPkgIdList);
16060
  FOR i IN 1..npkgidcollector.COUNT
16061
  LOOP
16062
    nPkgId := npkgidcollector(i);
16063
    --- Ensure it doesn't already exist
16064
    SELECT COUNT(*)
16065
    INTO alreadyExists
16066
    FROM PACKAGE_INTEREST
16067
    WHERE USER_ID      = nUserId
16068
    AND PKG_ID         = nPkgId
16069
    AND PROJ_ID        = nProjId;
6031 dpurdie 16070
 
5384 dpurdie 16071
    IF ( alreadyExists = 0 ) THEN
16072
      --- Insert into PACKAGE_INTEREST TABLE
16073
      INSERT
16074
        INTO PACKAGE_INTEREST (PROJ_ID, PKG_ID, USER_ID )
16075
        VALUES (nProjId, nPkgId, nUserId );
16076
    END IF;
16077
  END LOOP;
3959 dpurdie 16078
END ADD_PACKAGE_INTEREST;
4040 dpurdie 16079
 
3959 dpurdie 16080
/
4040 dpurdie 16081
--------------------------------------------------------
16082
--  DDL for Procedure ADD_RUNTIME_DEPENDENCY
16083
--------------------------------------------------------
16084
set define off;
16085
 
5172 dpurdie 16086
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_RUNTIME_DEPENDENCY" ( NNpv_id IN NUMBER,
3959 dpurdie 16087
                                                     SSrtd_name IN PACKAGES.pkg_name%TYPE,
16088
                                                     SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
16089
                                                     NNuser_id IN NUMBER
16090
                                                    ) IS
1373 dpurdie 16091
/* ---------------------------------------------------------------------------
3959 dpurdie 16092
    Version: 3.1
1373 dpurdie 16093
   --------------------------------------------------------------------------- */
16094
 
3959 dpurdie 16095
    retRTD_ID NUMBER;
16096
 
16097
	CURSOR rtd_cur IS
16098
        SELECT rtd_id FROM runtime_dependencies WHERE pv_id = NNpv_id AND rtd_id = retRTD_ID;
16099
    rtd_rec rtd_cur%ROWTYPE;
16100
 
1373 dpurdie 16101
BEGIN
3959 dpurdie 16102
    --- Seed database with package_name and version if required ---
16103
    Seed_Package_Names_Versions ( SSrtd_name, SSrtd_version, NNuser_id, retRTD_ID );
1373 dpurdie 16104
 
3959 dpurdie 16105
	OPEN rtd_cur;
16106
    FETCH rtd_cur INTO rtd_rec;
1373 dpurdie 16107
 
3959 dpurdie 16108
    IF rtd_cur%NOTFOUND
16109
    THEN
16110
		/* Make sure it does not exists already as runtime dependency */
1373 dpurdie 16111
 
3959 dpurdie 16112
		--- Add new Runtime Dependency ---
16113
	    INSERT INTO runtime_dependencies ( pv_id, rtd_id, mod_date, mod_user )
16114
	    VALUES (  NNpv_id, retRTD_ID, ORA_SYSDATE , NNuser_id );
1373 dpurdie 16115
 
3959 dpurdie 16116
    	/* LOG ACTION */
16117
        Log_Action ( NNpv_id, 'runtime_add', NNuser_id,
16118
    			     'Runtime package: '|| SSrtd_name ||' '|| SSrtd_version );
16119
 
16120
	END IF;
16121
 
16122
 
16123
END Add_Runtime_Dependency;
4040 dpurdie 16124
 
1374 dpurdie 16125
/
4040 dpurdie 16126
--------------------------------------------------------
16127
--  DDL for Procedure ADD_VIEW_MEMBERS
16128
--------------------------------------------------------
16129
set define off;
16130
 
5172 dpurdie 16131
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_VIEW_MEMBERS" (nGroupId IN NUMBER, sUserList IN VARCHAR2) IS
3959 dpurdie 16132
 
16133
/******************************************************************************
16134
   NAME:       ADD_VIEW_MEMBERS
6031 dpurdie 16135
   PURPOSE:
3959 dpurdie 16136
 
16137
   REVISIONS:
16138
   Ver        Date        Author           Description
16139
   ---------  ----------  ---------------  ------------------------------------
16140
   1.0        11/04/2006          1. Created this procedure.
16141
 
16142
   NOTES:
16143
 
16144
   Automatically available Auto Replace Keywords:
16145
      Object Name:     ADD_VIEW_MEMBERS
16146
      Sysdate:         11/04/2006
16147
      Date and Time:   11/04/2006, 9:52:58 AM, and 11/04/2006 9:52:58 AM
16148
      Username:         (set in TOAD Options, Procedure Editor)
16149
      Table Name:       (set in the "New PL/SQL Object" dialog)
16150
 
16151
******************************************************************************/
16152
CURSOR user_cur IS
16153
	SELECT u.USER_ID
16154
	  FROM USERS u
16155
	 WHERE u.USER_ID IN (
6031 dpurdie 16156
	 	   			   	SELECT *
16157
						  FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
3959 dpurdie 16158
						);
16159
user_rec user_cur%ROWTYPE;
16160
 
16161
 
16162
BEGIN
16163
 
16164
	 OPEN user_cur;
16165
	 FETCH user_cur INTO user_rec;
6031 dpurdie 16166
 
3959 dpurdie 16167
	 WHILE user_cur%FOUND
16168
	 LOOP
16169
	 	 INSERT INTO MEMBERS_GROUP (GROUP_EMAIL_ID, USER_ID)
16170
	 	 VALUES ( nGroupId, user_rec.USER_ID);
6031 dpurdie 16171
 
16172
	 	 FETCH user_cur INTO user_rec;
16173
	 END LOOP;
16174
 
16175
 
16176
 
3959 dpurdie 16177
END ADD_VIEW_MEMBERS;
4040 dpurdie 16178
 
1374 dpurdie 16179
/
4040 dpurdie 16180
--------------------------------------------------------
16181
--  DDL for Procedure BASIC_CLONE
16182
--------------------------------------------------------
16183
set define off;
16184
 
6031 dpurdie 16185
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."BASIC_CLONE" (
5502 dpurdie 16186
        nFROMpv_id IN NUMBER,
16187
        nTOpv_id IN NUMBER,
16188
        nRtag_id IN NUMBER,
16189
        nUser_id IN NUMBER,
16190
        nTOpkg_id IN NUMBER DEFAULT NULL,
16191
        enumISSUES_STATE_IMPORTED IN NUMBER DEFAULT NULL ) IS
1373 dpurdie 16192
 
16193
   FromVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
16194
   major NUMBER;
16195
   minor NUMBER;
16196
   patch NUMBER;
16197
   buildn NUMBER;
16198
   from_vcs_type_id NUMBER;
16199
BEGIN
16200
------------------------------ Version Control System ------------------------------------------
16201
   SELECT vcs_type_id
16202
      INTO from_vcs_type_id
16203
      FROM package_versions WHERE pv_id = nFROMpv_id;
16204
 
16205
   UPDATE package_versions
16206
      SET vcs_type_id = from_vcs_type_id
16207
      WHERE pv_id = nTOpv_id;
16208
------------------------------------- Limits ---------------------------------------------------
16209
   select major_limit, minor_limit, patch_limit, build_number_limit
16210
   into major, minor, patch, buildn
16211
   from package_versions where pv_id=nFROMpv_id;
16212
    UPDATE package_versions SET
16213
           major_limit = major,
16214
           minor_limit = minor,
16215
           patch_limit = patch,
16216
           build_number_limit = buildn
16217
     WHERE PV_ID = nTOpv_id;
16218
------------------------------------- Clone Dependencies ---------------------------------------------------
16219
   IF NOT nRtag_id IS NULL
16220
   THEN
16221
      -- Auto Update Dependencies --
16222
      INSERT INTO PACKAGE_DEPENDENCIES
16223
           SELECT nTOpv_id AS pv_id,
16224
                  DECODE(nUser_id,
16225
                         frc.modifier_id,
16226
                         frc.pv_id,
16227
                         DECODE(frc.dlocked,
16228
                                'Y',
16229
                                frc.pv_id,
16230
                                dep.dpv_id)
16231
                         ) AS dpv_id,
16232
                  nTOpkg_id AS pkg_id,
16233
                  dep.dpkg_id,
16234
                  dep.build_type,
16235
                  dep.display_order
16236
             FROM PACKAGE_DEPENDENCIES dep,
16237
                  PACKAGE_VERSIONS pv,
16238
                  (
16239
                  /* Full Release Contents used for reference*/
16240
                  SELECT rpv.pv_id, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext, rpv.modifier_id, rpv.dlocked
16241
                  FROM RELEASE_CONTENT rel, PACKAGE_VERSIONS rpv
16242
                  WHERE rel.pv_id = rpv.pv_id AND rtag_id = nRtag_id
16243
                  ) frc
16244
            WHERE dep.pv_id = nFROMpv_id
16245
              AND dep.dpv_id = pv.pv_id
16246
              AND pv.pkg_id = frc.pkg_id(+)
16247
              AND NVL(pv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+);
16248
   ELSE
16249
      -- Clone Dependencies --
16250
      INSERT INTO PACKAGE_DEPENDENCIES
16251
           SELECT nTOpv_id         AS pv_id,
16252
                  dep.dpv_id,
16253
                  nTOpkg_id        AS pkg_id,
16254
                  dep.dpkg_id,
16255
                  dep.build_type,
16256
                  dep.display_order
16257
             FROM PACKAGE_DEPENDENCIES dep
16258
            WHERE dep.pv_id = nFROMpv_id;
16259
 
16260
   END IF;
16261
 
16262
----------------------------------------- Clone Issues -------------------------------------------------------
16263
   IF enumISSUES_STATE_IMPORTED IS NULL
16264
   THEN
16265
        /* All Issues */
16266
       INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
16267
            SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
16268
              FROM CQ_ISSUES
16269
             WHERE pv_id = nFROMpv_id;
16270
   ELSE
16271
       /* Outstanding Issues Only */
16272
       INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
16273
            SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
16274
              FROM CQ_ISSUES
16275
             WHERE pv_id = nFROMpv_id
16276
               AND iss_state = enumISSUES_STATE_IMPORTED;
16277
   END IF;
16278
 
16279
------------------------------------ Clone Runtime Dependencies -----------------------------------------------
16280
   INSERT INTO RUNTIME_DEPENDENCIES (pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user)
16281
       SELECT nTOpv_id AS pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user
16282
       FROM RUNTIME_DEPENDENCIES WHERE pv_id = nFROMpv_id;
16283
 
16284
--------------------------------------- Clone Additional Notes ------------------------------------------------
16285
   INSERT INTO ADDITIONAL_NOTES ( NOTE_ID, PV_ID, NOTE_TITLE, NOTE_BODY, MOD_DATE, MOD_USER )
16286
        SELECT an.NOTE_ID,
16287
               nTOpv_id AS PV_ID,
16288
               an.NOTE_TITLE,
16289
               an.NOTE_BODY,
16290
               an.MOD_DATE,
16291
               an.MOD_USER
16292
          FROM ADDITIONAL_NOTES an
16293
         WHERE an.PV_ID = nFROMpv_id;
16294
 
16295
-------------------------------------------- Clone Unit Tests -------------------------------------------------
5502 dpurdie 16296
-- Only clone 'Auto Unit Test', 'Interactive Unit Test' and 'Autobuild UTF'
16297
-- Only clone the basic information: TEST_SUMMARY
1373 dpurdie 16298
 
16299
    INSERT INTO UNIT_TESTS (
16300
                            TEST_ID,
16301
                            PV_ID,
16302
                            TEST_TYPES_FK,
16303
                            TEST_SUMMARY
16304
                           )
16305
       SELECT ut.TEST_ID,
16306
              nTOpv_id AS PV_ID,
16307
              ut.TEST_TYPES_FK,
16308
              ut.TEST_SUMMARY
16309
         FROM UNIT_TESTS ut
16310
        WHERE ut.PV_ID = nFROMpv_id
5502 dpurdie 16311
          AND ut.TEST_TYPES_FK IN (5,6,7);
1373 dpurdie 16312
 
16313
-------------------------------------------- Clone Package Documents ------------------------------------------
16314
   INSERT INTO PACKAGE_DOCUMENTS ( PV_ID, TEST_ID, DOC_NUM, DOC_ID, IS_LATEST )
16315
        SELECT nTOpv_id AS PV_ID,
16316
               pd.test_id,
16317
               pd.doc_num,
16318
               pd.doc_id,
16319
               pd.IS_LATEST
16320
          FROM PACKAGE_DOCUMENTS pd
16321
         WHERE pd.PV_ID = nFROMpv_id;
16322
 
16323
-------------------------------------------- Clone Build Environments -----------------------------------------
16324
    INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID, BUILD_TYPE )
16325
    SELECT nTOpv_id AS PV_ID,
16326
           pkgbe.BE_ID,
16327
           pkgbe.BUILD_TYPE
16328
      FROM PACKAGE_BUILD_ENV pkgbe
16329
     WHERE pkgbe.PV_ID = nFROMpv_id;
6031 dpurdie 16330
 
1373 dpurdie 16331
---------------------------------------------Clone Package Build Info------------------------------------------
16332
    INSERT INTO PACKAGE_BUILD_INFO (PV_ID, BM_ID, BSA_ID)
16333
    SELECT nTOpv_id AS PV_ID,
16334
           pkgbinfo.BM_ID,
16335
           pkgbinfo.BSA_ID
16336
      FROM PACKAGE_BUILD_INFO pkgbinfo
16337
     WHERE pkgbinfo.PV_ID = nFROMpv_id;
6031 dpurdie 16338
 
1373 dpurdie 16339
---------------------------------------------Clone Package Version Processes-----------------------------------
16340
    INSERT INTO PACKAGE_PROCESSES ( PV_ID, PROC_ID )
16341
    SELECT nTOpv_id AS PV_ID,
16342
           pp.PROC_ID
16343
      FROM PACKAGE_PROCESSES pp
16344
     WHERE pp.PV_ID = nFROMpv_id;
6031 dpurdie 16345
 
1373 dpurdie 16346
---------------------------------------------Clone Licencing Associations-----------------------------------
16347
    PK_LICENCING.CLONE_LICENCING(nFROMpv_id, nTOpv_id, nUser_id);
16348
---------------------------------------------------------------------------------------------------------------
16349
 
16350
    /* LOG ACTION */
16351
    SELECT pv.PKG_VERSION INTO FromVersion
16352
      FROM PACKAGE_VERSIONS pv
16353
     WHERE pv.PV_ID = nFROMpv_id;
16354
 
16355
    Log_Action ( nTOpv_id, 'clone_from', nUser_id,
16356
                 'Details cloned from: '|| FromVersion );
16357
 
16358
---------------------------------------------------------------------------------------------------------------
16359
 
16360
END Basic_Clone;
4040 dpurdie 16361
 
1374 dpurdie 16362
/
4040 dpurdie 16363
--------------------------------------------------------
16364
--  DDL for Procedure BUILD_TREE
16365
--------------------------------------------------------
16366
set define off;
16367
 
5172 dpurdie 16368
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."BUILD_TREE" ( nRtag_id IN NUMBER,
3959 dpurdie 16369
	   	  		  					     retSessionNum OUT NUMBER ) IS
16370
 
1373 dpurdie 16371
/* ---------------------------------------------------------------------------
3959 dpurdie 16372
    Version: 3.0.0
1373 dpurdie 16373
   --------------------------------------------------------------------------- */
3959 dpurdie 16374
    rowCnt 			NUMBER := 0;						-- Iterations counter
16375
    iteration 		NUMBER := 1;                  -- Maximum number of iterations allowed.
16376
    maxIterations 	NUMBER := 50;      	  	-- This will prevent infinite loops if cyrcular dependencies are found
16377
	UP_THE_TREE 	CONSTANT NUMBER DEFAULT 1;
16378
	DOWN_THE_TREE 	CONSTANT NUMBER DEFAULT -1;
16379
    sessionNum 		NUMBER;
16380
	levelNum		NUMBER;
6031 dpurdie 16381
 
3959 dpurdie 16382
BEGIN
16383
    SELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;
6031 dpurdie 16384
 
3959 dpurdie 16385
	/*
16386
	||	   Start UP THE TREE
16387
	*/
6031 dpurdie 16388
 
16389
 
16390
	/* Packages with no dependencies */
3959 dpurdie 16391
    INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
16392
		SELECT sessionNum AS SESSION_NUM,
16393
			   iteration AS LEVEL_NUM,
16394
			   UP_THE_TREE AS DIRECTION,
16395
			   rc.pv_id, pv.pkg_id, pv.v_ext
16396
		  FROM release_content rc,
16397
		  	   package_versions pv
16398
		 WHERE rc.rtag_id = nRtag_id
16399
		   AND rc.pv_id = pv.pv_id
16400
		 MINUS
6031 dpurdie 16401
		SELECT sessionNum AS SESSION_NUM,
3959 dpurdie 16402
			   iteration AS LEVEL_NUM,
16403
			   UP_THE_TREE AS DIRECTION,
16404
			   dep.pv_id, pv.pkg_id, pv.v_ext
16405
		  FROM package_dependencies dep,
16406
		  	   package_versions pv
16407
		 WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtag_id )
16408
		   AND dep.pv_id = pv.pv_id;
6031 dpurdie 16409
 
16410
 
16411
	/* Browse UP the build tree */
3959 dpurdie 16412
	iteration := iteration + 1;
16413
    LOOP
6031 dpurdie 16414
 
3959 dpurdie 16415
		INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
6031 dpurdie 16416
			SELECT DISTINCT
3959 dpurdie 16417
			       sessionNum AS SESSION_NUM,
16418
			       iteration AS LEVEL_NUM,
6031 dpurdie 16419
				   UP_THE_TREE AS DIRECTION,
3959 dpurdie 16420
				   rdep.pv_id, rdep.pkg_id, rdep.v_ext
6031 dpurdie 16421
			  FROM (
3959 dpurdie 16422
			        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
16423
			          FROM package_dependencies dep,
16424
			               release_content rc,
16425
						   package_versions pv,
16426
						   package_versions dpv
16427
			         WHERE dep.pv_id = rc.pv_id
16428
			           AND rc.rtag_id = nRtag_id
16429
					   AND dep.pv_id = pv.pv_id
16430
					   AND dep.dpv_id = dpv.pv_id
16431
					) rdep,
16432
					temp_tree_browse ttb
16433
			 WHERE rdep.dpkg_id  = ttb.pkg_id
16434
			   AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext,'|LINK_A_NULL|')
16435
			   AND ttb.SESSION_NUM = sessionNum
6031 dpurdie 16436
			   AND ttb.LEVEL_NUM = iteration - 1
3959 dpurdie 16437
			MINUS
6031 dpurdie 16438
			/* Packages with all depencencies NOT matched */
16439
			SELECT DISTINCT
3959 dpurdie 16440
			       sessionNum AS SESSION_NUM,
6031 dpurdie 16441
			       iteration AS LEVEL_NUM,
3959 dpurdie 16442
				   UP_THE_TREE AS DIRECTION,
16443
				   rdep.pv_id, rdep.pkg_id, rdep.v_ext
6031 dpurdie 16444
			  FROM (
3959 dpurdie 16445
			        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
16446
			          FROM package_dependencies dep,
16447
			               release_content rc,
16448
						   package_versions pv,
16449
						   package_versions dpv
16450
			         WHERE dep.pv_id = rc.pv_id
16451
			           AND rc.rtag_id = nRtag_id
16452
					   AND dep.pv_id = pv.pv_id
16453
					   AND dep.dpv_id = dpv.pv_id
16454
					) rdep,
16455
					(
16456
					 SELECT tb.*
16457
					   FROM temp_tree_browse tb
16458
					  WHERE tb.SESSION_NUM = sessionNum
16459
					) ttb
16460
			 WHERE rdep.dpkg_id  = ttb.pkg_id (+)
16461
			   AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext (+),'|LINK_A_NULL|')
16462
			   AND ttb.SESSION_NUM IS NULL;
6031 dpurdie 16463
 
3959 dpurdie 16464
		rowCnt := SQL%ROWCOUNT;
16465
		IF rowCnt > 0 THEN
16466
           iteration := iteration + 1;
16467
		END IF;
16468
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
16469
    END LOOP;
6031 dpurdie 16470
 
3959 dpurdie 16471
	/*---------------------------------------------------------------------------------------------------------------------*/
6031 dpurdie 16472
 
3959 dpurdie 16473
	/*     Check for unresolved dependencies
6031 dpurdie 16474
	||
3959 dpurdie 16475
	*/
16476
	/* UNRESOLVED */
16477
	 SELECT COUNT(*) INTO rowCnt
16478
	   FROM (
16479
			 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
16480
			  FROM release_content rc,
16481
			  	   package_versions pv
16482
			 WHERE rc.rtag_id = nRtag_id
6031 dpurdie 16483
			   AND rc.pv_id = pv.pv_id
3959 dpurdie 16484
			MINUS
16485
			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
16486
			  FROM temp_tree_browse ttb
16487
			 WHERE ttb.session_num = sessionNum
16488
			);
6031 dpurdie 16489
 
16490
 
16491
 
16492
	 IF rowCnt > 0
3959 dpurdie 16493
	 THEN
16494
	 	 /*     Circular dependencies detected.
16495
		 ||     Try to resolve build order from the top now.
16496
		 ||		Start DOWN THE TREE
16497
		 */
6031 dpurdie 16498
 
16499
		iteration := 0;
16500
		 /* Top Level packages */
16501
		INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
3959 dpurdie 16502
			SELECT sessionNum AS SESSION_NUM,
16503
			       iteration AS LEVEL_NUM,
16504
				   DOWN_THE_TREE AS DIRECTION,
16505
				   pv.pv_id, pv.pkg_id, pv.v_ext
6031 dpurdie 16506
			  FROM (
3959 dpurdie 16507
					/* Packages no one depends on ( Top level packages )*/
6031 dpurdie 16508
					(
16509
					/* All parents*/
3959 dpurdie 16510
					SELECT pv.pkg_id, pv.v_ext
16511
			          FROM package_dependencies dep,
16512
			               release_content rc,
16513
						   package_versions pv
16514
			         WHERE dep.pv_id = rc.pv_id
16515
			           AND rc.rtag_id = nRtag_id
16516
					   AND dep.pv_id = pv.pv_id
16517
					 MINUS
16518
					 /* All children */
16519
					SELECT dpv.pkg_id, dpv.v_ext
16520
			          FROM package_dependencies dep,
16521
			               release_content rc,
16522
						   package_versions dpv
16523
			         WHERE dep.pv_id = rc.pv_id
16524
			           AND rc.rtag_id = nRtag_id
16525
					   AND dep.dpv_id = dpv.pv_id
6031 dpurdie 16526
					 )
3959 dpurdie 16527
					 MINUS
6031 dpurdie 16528
					/* Packages with resolved dependencies from UP THE TREE */
3959 dpurdie 16529
					SELECT ttb.pkg_id, ttb.v_ext
16530
					  FROM temp_tree_browse ttb
16531
					 WHERE ttb.session_num = sessionNum
16532
				  ) tpkg,
16533
				  package_versions pv,
16534
				  release_content rc
16535
			WHERE rc.rtag_id = nRtag_id
16536
			  AND rc.pv_id = pv.pv_id
16537
			  AND tpkg.pkg_id = pv.pkg_id
16538
			  AND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');
6031 dpurdie 16539
 
16540
 
16541
		 /* Keep taking packages which no one depende on */
16542
		 iteration := iteration - 1;
16543
		 LOOP
3959 dpurdie 16544
			   INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
16545
					SELECT sessionNum AS SESSION_NUM,
16546
					       iteration AS LEVEL_NUM,
16547
					       DOWN_THE_TREE AS DIRECTION,
16548
					       pv.pv_id, pv.pkg_id, pv.v_ext
6031 dpurdie 16549
					  FROM (
3959 dpurdie 16550
					 	/* All Unresolved */
16551
					 	(
16552
					 	SELECT pv.pkg_id, pv.v_ext
16553
					 	  FROM release_content rc,
16554
					 	  	   package_versions pv
16555
					 	 WHERE rc.rtag_id = nRtag_id
6031 dpurdie 16556
					 	   AND rc.pv_id = pv.pv_id
3959 dpurdie 16557
					 	MINUS
16558
					 	SELECT ttb.pkg_id, ttb.v_ext
16559
					 	  FROM temp_tree_browse ttb
16560
					 	 WHERE ttb.session_num = sessionNum
16561
					 	)
16562
					 	 MINUS
6031 dpurdie 16563
					 	(
16564
					 	 /* Children of Unresolved */
3959 dpurdie 16565
					 	SELECT dpv.pkg_id, dpv.V_EXT
16566
					 	  FROM (
16567
					 			SELECT pv.pv_id, pv.pkg_id, pv.v_ext
16568
					 			  FROM release_content rc,
16569
					 			  	   package_versions pv
16570
					 			 WHERE rc.rtag_id = nRtag_id
6031 dpurdie 16571
					 			   AND rc.pv_id = pv.pv_id
3959 dpurdie 16572
					 			MINUS
16573
					 			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
16574
					 			  FROM temp_tree_browse ttb
16575
					 			 WHERE ttb.session_num = sessionNum
16576
					 		   ) unr,
16577
					 		   package_dependencies dep,
16578
					 		   package_versions dpv
16579
					 	 WHERE unr.pv_id = dep.pv_id
16580
					 	   AND dep.dpv_id = dpv.pv_id
6031 dpurdie 16581
					 	 )
3959 dpurdie 16582
					   ) tpkg,
16583
					   package_versions pv,
16584
					   release_content rc
16585
					WHERE rc.rtag_id = nRtag_id
16586
					  AND rc.pv_id = pv.pv_id
16587
					  AND tpkg.pkg_id = pv.pkg_id
16588
					  AND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');
6031 dpurdie 16589
 
3959 dpurdie 16590
            rowCnt := SQL%ROWCOUNT;
16591
        	IF rowCnt > 0 THEN
16592
	           iteration := iteration - 1;
16593
			END IF;
16594
            EXIT WHEN (rowCnt < 1);
16595
     	END LOOP;
6031 dpurdie 16596
 
3959 dpurdie 16597
	 END IF;
6031 dpurdie 16598
 
16599
 
3959 dpurdie 16600
	/*---------------------------------------------------------------------------------------------------------------------*/
6031 dpurdie 16601
 
16602
	/*
3959 dpurdie 16603
	|| 	 Save results from temp table
6031 dpurdie 16604
	*/
3959 dpurdie 16605
	/* Clean up build_order table */
16606
	DELETE FROM BUILD_ORDER WHERE rtag_id = nRtag_id;
6031 dpurdie 16607
 
3959 dpurdie 16608
	/* Save UP THE TREE */
16609
	INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )
16610
		SELECT nRtag_id AS rtag_id,
6031 dpurdie 16611
			   ttb.level_num AS step_num,
3959 dpurdie 16612
			   ttb.PV_ID
16613
		  FROM temp_tree_browse ttb
16614
		 WHERE ttb.session_num = sessionNum
6031 dpurdie 16615
		   AND ttb.direction = UP_THE_TREE;
16616
 
3959 dpurdie 16617
	/*Get last step_num */
16618
	SELECT MAX(ttb.level_num) + 1 INTO levelNum
16619
	FROM temp_tree_browse ttb WHERE ttb.session_num = sessionNum AND ttb.DIRECTION = UP_THE_TREE;
6031 dpurdie 16620
 
3959 dpurdie 16621
	/* UNRESOLVED */
16622
	 SELECT COUNT(*) INTO rowCnt
16623
	   FROM (
16624
			 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
16625
			  FROM release_content rc,
16626
			  	   package_versions pv
16627
			 WHERE rc.rtag_id = nRtag_id
6031 dpurdie 16628
			   AND rc.pv_id = pv.pv_id
3959 dpurdie 16629
			MINUS
16630
			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
16631
			  FROM temp_tree_browse ttb
16632
			 WHERE ttb.session_num = sessionNum
16633
			);
6031 dpurdie 16634
 
16635
 
3959 dpurdie 16636
	IF rowCnt > 0
16637
	THEN
16638
		/* Save unresolved packages */
16639
 		INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID, UNRESOLVED )
16640
		    SELECT  nRtag_id AS rtag_id,
6031 dpurdie 16641
				    levelNum AS step_num,
3959 dpurdie 16642
				    upv.PV_ID,
16643
					'Y' AS UNRESOLVED
16644
			   FROM (
16645
					 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
16646
					  FROM release_content rc,
16647
					  	   package_versions pv
16648
					 WHERE rc.rtag_id = nRtag_id
6031 dpurdie 16649
					   AND rc.pv_id = pv.pv_id
3959 dpurdie 16650
					MINUS
16651
					SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
16652
					  FROM temp_tree_browse ttb
16653
					 WHERE ttb.session_num = sessionNum
16654
					) upv;
6031 dpurdie 16655
	END IF;
16656
 
3959 dpurdie 16657
	/* Save DOWN THE TREE */
16658
	levelNum := 1000;
16659
	INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )
16660
		SELECT nRtag_id AS rtag_id,
6031 dpurdie 16661
			   levelNum + ttb.level_num  AS step_num,
3959 dpurdie 16662
			   ttb.PV_ID
16663
		  FROM temp_tree_browse ttb
16664
		 WHERE ttb.session_num = sessionNum
16665
		   AND ttb.direction = DOWN_THE_TREE;
6031 dpurdie 16666
 
16667
 
3959 dpurdie 16668
	/*---------------------------------------------------------------------------------------------------------------------*/
6031 dpurdie 16669
 
3959 dpurdie 16670
	/* Clean up temp table */
16671
	DELETE FROM TEMP_TREE_BROWSE WHERE session_num = sessionNum;
6031 dpurdie 16672
 
3959 dpurdie 16673
	retSessionNum := sessionNum;
16674
END Build_Tree;
4040 dpurdie 16675
 
3959 dpurdie 16676
/
4040 dpurdie 16677
--------------------------------------------------------
16678
--  DDL for Procedure CHANGE_PACKAGE_STATE
16679
--------------------------------------------------------
16680
set define off;
16681
 
5172 dpurdie 16682
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHANGE_PACKAGE_STATE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 16683
											 nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS
16684
/* ---------------------------------------------------------------------------
16685
    Version: 4.0
16686
   --------------------------------------------------------------------------- */
1373 dpurdie 16687
 
16688
BEGIN
16689
 
3959 dpurdie 16690
    -- Unlock Package
16691
    UPDATE RELEASE_CONTENT rc SET
16692
    	rc.PKG_STATE = 0
16693
    WHERE rc.PV_ID = nPvId
16694
	AND rc.RTAG_ID = nRtagId;
1373 dpurdie 16695
 
3959 dpurdie 16696
    /* LOG ACTION */
16697
   /*	Log_Action ( nPvId, 'unlock_package', nUserId );*/
1373 dpurdie 16698
 
3959 dpurdie 16699
END Change_Package_State;
4040 dpurdie 16700
 
1374 dpurdie 16701
/
4040 dpurdie 16702
--------------------------------------------------------
16703
--  DDL for Procedure CHANGE_RELEASE_MODE
16704
--------------------------------------------------------
16705
set define off;
16706
 
5172 dpurdie 16707
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHANGE_RELEASE_MODE" ( nModeCode IN NUMBER, nRtagId IN NUMBER, UserId IN NUMBER ) IS
3959 dpurdie 16708
/* ---------------------------------------------------------------------------
16709
    Version: 3.0.0
16710
   --------------------------------------------------------------------------- */
1373 dpurdie 16711
 
6031 dpurdie 16712
	cMode CHAR(1) := NULL;
16713
	nProjId NUMBER;
1373 dpurdie 16714
 
16715
BEGIN
16716
 
6031 dpurdie 16717
 
3959 dpurdie 16718
	/*
16719
	Author: Rupesh Solanki
16720
	Modified: 24th October 2006
6031 dpurdie 16721
	Reason: Added the archive mode state into Release Manager
3959 dpurdie 16722
	||	1 - Open Mode
16723
	||	2 - Restrictive Mode
16724
	||	3 - Closed Mode
16725
	||	4 - CCB Mode
16726
	||	5 - Archive Mode
5384 dpurdie 16727
  ||  6 - Preserve Mode
6031 dpurdie 16728
	*/
3959 dpurdie 16729
	-- Get project Id
16730
	SELECT rt.PROJ_ID INTO nProjId
16731
	  FROM RELEASE_TAGS rt
6031 dpurdie 16732
	 WHERE rt.RTAG_ID = nRtagId;
16733
 
3959 dpurdie 16734
	IF nModeCode = 1 THEN
16735
		-- Open Mode
16736
		cMode := 'N';
6031 dpurdie 16737
 
3959 dpurdie 16738
		/* LOG ACTION */
16739
   		Log_Project_Action ( nProjId, 'set_to_open_mode', UserId, 'Release is set to Open Mode', nRtagId );
6031 dpurdie 16740
 
3959 dpurdie 16741
	ELSIF nModeCode = 2 THEN
16742
		-- Restrictive Mode
16743
		cMode := 'R';
6031 dpurdie 16744
 
3959 dpurdie 16745
		/* LOG ACTION */
16746
   		Log_Project_Action ( nProjId, 'set_to_restrictive_mode', UserId, 'Release is set to Restrictive Mode', nRtagId );
6031 dpurdie 16747
 
3959 dpurdie 16748
	ELSIF nModeCode = 3 THEN
16749
		-- Closed Mode
16750
		cMode := 'Y';
6031 dpurdie 16751
 
3959 dpurdie 16752
		/* LOG ACTION */
16753
   		Log_Project_Action ( nProjId, 'set_to_closed_mode', UserId, 'Release is set to Closed Mode', nRtagId  );
1373 dpurdie 16754
 
3959 dpurdie 16755
	ELSIF nModeCode = 4 THEN
16756
		-- CCB Mode
16757
		cMode := 'C';
6031 dpurdie 16758
 
3959 dpurdie 16759
		/* LOG ACTION */
16760
   		Log_Project_Action ( nProjId, 'set_to_ccb_mode', UserId, 'Release is set to CCB Mode', nRtagId  );
6031 dpurdie 16761
 
3959 dpurdie 16762
	ELSIF nModeCode = 5 THEN
16763
		-- Archive Mode
16764
		cMode := 'A';
6031 dpurdie 16765
 
3959 dpurdie 16766
		/* LOG ACTION */
6031 dpurdie 16767
   		Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Archive Mode', nRtagId  );
16768
 
5384 dpurdie 16769
  ELSIF nModeCode = 6 THEN
16770
		-- Archive Mode
16771
		cMode := 'P';
6031 dpurdie 16772
 
5384 dpurdie 16773
		/* LOG ACTION */
6031 dpurdie 16774
   		Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Preserve Mode', nRtagId  );
3959 dpurdie 16775
	END IF;
6031 dpurdie 16776
 
16777
 
16778
 
3959 dpurdie 16779
	-- Now update table
16780
	IF NOT cMode IS NULL THEN
16781
		UPDATE RELEASE_TAGS rt SET
4211 dpurdie 16782
		rt.OFFICIAL = cMode,
16783
    rt.OFFICIAL_STAMP = ORA_SYSDATETIME,
16784
    rt.OFFICIAL_ID = UserId
3959 dpurdie 16785
		WHERE rt.RTAG_ID = nRtagId;
6031 dpurdie 16786
 
3959 dpurdie 16787
	END IF;
1373 dpurdie 16788
 
16789
 
3959 dpurdie 16790
END CHANGE_RELEASE_MODE;
4040 dpurdie 16791
 
1374 dpurdie 16792
/
4040 dpurdie 16793
--------------------------------------------------------
16794
--  DDL for Procedure CHECK_NEW_PATCHES
16795
--------------------------------------------------------
16796
set define off;
16797
 
5172 dpurdie 16798
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHECK_NEW_PATCHES" (
3959 dpurdie 16799
   nrtagid   IN   release_content.rtag_id%TYPE
1373 dpurdie 16800
)
16801
IS
16802
/* ---------------------------------------------------------------------------
3959 dpurdie 16803
    Version: 3.0
1373 dpurdie 16804
   --------------------------------------------------------------------------- */
16805
BEGIN
3959 dpurdie 16806
   /*--------------- Business Rules Here -------------------*/
16807
   /*IF nRtagId NOT IN (SELECT RTAG_ID FROM RELEASE_TAGS ) THEN
16808
      RAISE_APPLICATION_ERROR (-20000, 'Please contact the person in charge of Release Manager now.' );
16809
   END IF
16810
 
16811
   /*-------------------------------------------------------*/
16812
   UPDATE release_content rc
16813
      SET rc.pkg_state = 5                          -- enumPKG_STATE_NEW_PATCH
16814
    WHERE rc.pv_id IN (
16815
             SELECT prod.pv_id
16816
               FROM (SELECT   pp.pv_id AS orig_parent_id,
16817
                              COUNT (*) AS num_of_patches
16818
                         FROM release_content rc, package_patches pp
16819
                        WHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagid
16820
                     GROUP BY pp.pv_id) orig,
16821
                    (SELECT   prodpp.pv_id, pp.pv_id AS parent_id,
16822
                              COUNT (*) AS num_of_patches
16823
                         FROM release_content rc,
16824
                              package_patches pp,
16825
                              package_dependencies dep,
16826
                              package_versions pv,
16827
                              package_patches prodpp
16828
                        WHERE rc.pv_id = pp.pv_id
16829
                          AND rc.rtag_id = nrtagid
16830
                          AND pp.patch_id = dep.dpv_id
16831
                          AND dep.pv_id = pv.pv_id
16832
                          AND pv.is_patch = 'Y'
16833
                          AND pv.dlocked = 'Y'
16834
                          AND prodpp.patch_id = dep.pv_id
16835
                     GROUP BY prodpp.pv_id, pp.pv_id) prod,
16836
                    release_content rc
16837
              WHERE orig.orig_parent_id = prod.pv_id
16838
                AND orig.num_of_patches != prod.num_of_patches
16839
                AND rc.rtag_id = nrtagid
16840
                AND rc.pv_id = prod.pv_id
16841
                AND rc.pkg_state = 0
16842
             UNION
16843
             SELECT   prodpp.pv_id
16844
                 FROM release_content rc,
16845
                      package_patches pp,
16846
                      package_dependencies dep,
1373 dpurdie 16847
                      package_versions pv,
3959 dpurdie 16848
                      package_patches prodpp
16849
                WHERE rc.pv_id = pp.pv_id
16850
                  AND rc.rtag_id = nrtagid
16851
                  AND pp.patch_id = dep.dpv_id
1373 dpurdie 16852
                  AND dep.pv_id = pv.pv_id
3959 dpurdie 16853
                  AND pv.is_patch = 'Y'
16854
                  AND pv.dlocked = 'Y'
16855
                  AND prodpp.patch_id = dep.pv_id
16856
             GROUP BY prodpp.pv_id, pp.pv_id
16857
             MINUS
16858
             SELECT   pp.pv_id
16859
                 FROM release_content rc, package_patches pp
16860
                WHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagid
16861
             GROUP BY pp.pv_id);
16862
END check_new_patches;
4040 dpurdie 16863
 
1374 dpurdie 16864
/
4040 dpurdie 16865
--------------------------------------------------------
16866
--  DDL for Procedure CLEAN_ADVISORY_RIPPLE
16867
--------------------------------------------------------
16868
set define off;
16869
 
5172 dpurdie 16870
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAN_ADVISORY_RIPPLE" (nrtagid IN NUMBER)
3959 dpurdie 16871
IS
16872
/******************************************************************************
16873
   NAME:       clean_advisory_ripple
1373 dpurdie 16874
 
3959 dpurdie 16875
   PURPOSE:    To delete entries from the advisory_ripple table based upon
16876
               an RTAG_ID only
1373 dpurdie 16877
 
3959 dpurdie 16878
               This is a tidy-up operation performed against the advisory_ripple
16879
               table, ensuring that the table does not have rtag_id/pv_id
16880
               combinations that cannot be found in the release's wip/pending/release
16881
               tabs.
16882
 
16883
******************************************************************************/
1373 dpurdie 16884
BEGIN
3959 dpurdie 16885
   -- Delete any invalid rtag_id/pv_id combination from the advisory_ripple table.
16886
   -- An invalid rtag_id/pv_id combination is one that cannot be found in the
16887
   -- work_in_progress, planned, or release_content table.
16888
   -- NOTE: Planned operations that represent pending additive/subtractive merge
16889
   -- operations are ignored because they have not been approved yet and so
16890
   -- cannot be said to be "in the release".
16891
   DELETE FROM advisory_ripple
16892
         WHERE rtag_id = nrtagid
16893
           AND pv_id not in
16894
               ((SELECT pv_id FROM release_content WHERE rtag_id = nrtagid)
16895
                 UNION
16896
                (SELECT pv_id FROM work_in_progress WHERE rtag_id = nrtagid)
16897
                 UNION
16898
                (SELECT pv_id FROM planned WHERE rtag_id = nrtagid AND (operation is null OR operation = 'R'))
16899
               );
16900
END clean_advisory_ripple;
4040 dpurdie 16901
 
3959 dpurdie 16902
/
4040 dpurdie 16903
--------------------------------------------------------
16904
--  DDL for Procedure CLEAN_DO_NOT_RIPPLE
16905
--------------------------------------------------------
16906
set define off;
16907
 
5172 dpurdie 16908
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAN_DO_NOT_RIPPLE" (nrtagid IN NUMBER)
3959 dpurdie 16909
IS
16910
/******************************************************************************
16911
   NAME:       clean_do_not_ripple
1373 dpurdie 16912
 
3959 dpurdie 16913
   PURPOSE:    To delete entries from the do_not_ripple table based upon
16914
               an RTAG_ID only
16915
 
16916
               This is a tidy-up operation performed against the do_not_ripple
16917
               table, ensuring that the table does not have rtag_id/pv_id
16918
               combinations that cannot be found in the release's wip/pending/release
16919
               tabs.
16920
 
16921
******************************************************************************/
16922
BEGIN
16923
   -- Delete any invalid rtag_id/pv_id combination from the do_not_ripple table.
16924
   -- An invalid rtag_id/pv_id combination is one that cannot be found in the
16925
   -- work_in_progress, planned, or release_content table.
16926
   -- NOTE: Planned operations that represent pending additive/subtractive merge
16927
   -- operations are ignored because they have not been approved yet and so
16928
   -- cannot be said to be "in the release".
16929
   DELETE FROM do_not_ripple
16930
         WHERE rtag_id = nrtagid
16931
           AND pv_id not in
16932
               ((SELECT pv_id FROM release_content WHERE rtag_id = nrtagid)
16933
                 UNION
16934
                (SELECT pv_id FROM work_in_progress WHERE rtag_id = nrtagid)
16935
                 UNION
16936
                (SELECT pv_id FROM planned WHERE rtag_id = nrtagid AND (operation is null OR operation = 'R'))
16937
               );
16938
END clean_do_not_ripple;
4040 dpurdie 16939
 
1374 dpurdie 16940
/
4040 dpurdie 16941
--------------------------------------------------------
16942
--  DDL for Procedure CLEAR_ADVISORY_RIPPLE
16943
--------------------------------------------------------
16944
set define off;
16945
 
5172 dpurdie 16946
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAR_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 16947
	   	  		  							   nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
16948
											 nUserId IN NUMBER ) IS
1373 dpurdie 16949
/* ---------------------------------------------------------------------------
3959 dpurdie 16950
    Version: 4.0
1373 dpurdie 16951
   --------------------------------------------------------------------------- */
16952
 
16953
BEGIN
16954
 
3959 dpurdie 16955
    -- Clear Advisory Ripple Package
16956
    DELETE FROM ADVISORY_RIPPLE
16957
	WHERE PV_ID = nPvId
16958
	AND RTAG_ID = nRtagId;
1373 dpurdie 16959
 
3959 dpurdie 16960
    /* LOG ACTION */
16961
   	Log_Action ( nPvId, 'clear_advisory_ripple', nUserId );
6031 dpurdie 16962
 
3959 dpurdie 16963
	/*Rebuild_Environment(nRtagId);*/
1373 dpurdie 16964
 
3959 dpurdie 16965
END Clear_Advisory_Ripple;
4040 dpurdie 16966
 
1374 dpurdie 16967
/
4040 dpurdie 16968
--------------------------------------------------------
16969
--  DDL for Procedure CLONED_PACKAGE_PROCESSES
16970
--------------------------------------------------------
16971
set define off;
16972
 
5172 dpurdie 16973
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLONED_PACKAGE_PROCESSES" 
3959 dpurdie 16974
IS
1373 dpurdie 16975
 
3959 dpurdie 16976
proc_id NUMBER;
1373 dpurdie 16977
/******************************************************************************
3959 dpurdie 16978
   NAME:       DELETE_DO_NOT_RIPPLE
16979
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
16980
               IS RELEASED
1373 dpurdie 16981
 
16982
   REVISIONS:
16983
   Ver        Date        Author           Description
16984
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 16985
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
1373 dpurdie 16986
 
16987
   NOTES:
16988
 
16989
   Automatically available Auto Replace Keywords:
3959 dpurdie 16990
      Object Name:     DELETE_DO_NOT_RIPPLE
16991
      Sysdate:         21/04/2006
16992
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
1373 dpurdie 16993
      Username:         (set in TOAD Options, Procedure Editor)
16994
      Table Name:       (set in the "New PL/SQL Object" dialog)
16995
 
16996
******************************************************************************/
3959 dpurdie 16997
   CURSOR ripple_cur
16998
   IS
16999
      select distinct proc_id, prod_id from deployment_manager.processes_config;
17000
 
17001
   ripple_rec   ripple_cur%ROWTYPE;
1373 dpurdie 17002
BEGIN
3959 dpurdie 17003
   OPEN ripple_cur;
1373 dpurdie 17004
 
3959 dpurdie 17005
   FETCH ripple_cur
17006
    INTO ripple_rec;
1373 dpurdie 17007
 
3959 dpurdie 17008
   WHILE ripple_cur%FOUND
17009
   LOOP
1373 dpurdie 17010
 
6031 dpurdie 17011
 
17012
 
17013
insert into package_processes (PROC_ID, PV_ID)
3959 dpurdie 17014
values( ripple_rec.proc_id, ripple_rec.prod_id);
17015
 
17016
      FETCH ripple_cur
17017
       INTO ripple_rec;
17018
   END LOOP;
17019
END CLONED_PACKAGE_PROCESSES;
4040 dpurdie 17020
 
1374 dpurdie 17021
/
4040 dpurdie 17022
--------------------------------------------------------
17023
--  DDL for Procedure CLONED_PROCESSES
17024
--------------------------------------------------------
17025
set define off;
17026
 
5172 dpurdie 17027
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLONED_PROCESSES" 
3959 dpurdie 17028
IS
17029
 
17030
proc_id NUMBER;
17031
/******************************************************************************
17032
   NAME:       DELETE_DO_NOT_RIPPLE
17033
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
17034
               IS RELEASED
17035
 
17036
   REVISIONS:
17037
   Ver        Date        Author           Description
17038
   ---------  ----------  ---------------  ------------------------------------
17039
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
17040
 
17041
   NOTES:
17042
 
17043
   Automatically available Auto Replace Keywords:
17044
      Object Name:     DELETE_DO_NOT_RIPPLE
17045
      Sysdate:         21/04/2006
17046
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
17047
      Username:         (set in TOAD Options, Procedure Editor)
17048
      Table Name:       (set in the "New PL/SQL Object" dialog)
17049
 
17050
******************************************************************************/
17051
   CURSOR ripple_cur
17052
   IS
17053
      select distinct pkg_health_tag, cmd_interface, pkg_owner, is_interface from deployment_manager.processes_config;
17054
 
17055
   ripple_rec   ripple_cur%ROWTYPE;
1373 dpurdie 17056
BEGIN
3959 dpurdie 17057
   OPEN ripple_cur;
1373 dpurdie 17058
 
3959 dpurdie 17059
   FETCH ripple_cur
17060
    INTO ripple_rec;
1373 dpurdie 17061
 
3959 dpurdie 17062
   WHILE ripple_cur%FOUND
17063
   LOOP
6031 dpurdie 17064
 
3959 dpurdie 17065
   select deployment_manager.seq_proc_id.nextval into proc_id from dual;
6031 dpurdie 17066
 
17067
insert into processes (PROC_ID, PROC_NAME, RUN_AS, PKG_OWNER, IS_INTERFACE)
3959 dpurdie 17068
values(proc_id, ripple_rec.pkg_health_tag, ripple_rec.cmd_interface, ripple_rec.pkg_owner, ripple_rec.is_interface);
1373 dpurdie 17069
 
3959 dpurdie 17070
      FETCH ripple_cur
17071
       INTO ripple_rec;
17072
   END LOOP;
17073
END CLONED_PROCESSES;
4040 dpurdie 17074
 
1374 dpurdie 17075
/
4040 dpurdie 17076
--------------------------------------------------------
17077
--  DDL for Procedure DELETE_AUTOBUILD_FAILURE_INFO
17078
--------------------------------------------------------
17079
set define off;
17080
 
5172 dpurdie 17081
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DELETE_AUTOBUILD_FAILURE_INFO" 
3959 dpurdie 17082
IS
1373 dpurdie 17083
/******************************************************************************
3959 dpurdie 17084
   NAME:       DELETE_AUTOBUILD_FAILURE_INFO
17085
   PURPOSE:
1373 dpurdie 17086
 
17087
   REVISIONS:
3959 dpurdie 17088
   Ver        Date        Author           Description
1373 dpurdie 17089
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 17090
   1.0        2/06/2006    Rupesh Solanki      1. Created this procedure.
1373 dpurdie 17091
 
17092
   NOTES:
17093
 
17094
   Automatically available Auto Replace Keywords:
3959 dpurdie 17095
      Object Name:     DELETE_AUTOBUILD_FAILURE_INFO
17096
      Sysdate:         2/06/2006
17097
      Date and Time:   2/06/2006, 8:44:25 AM, and 2/06/2006 8:44:25 AM
1373 dpurdie 17098
      Username:         (set in TOAD Options, Procedure Editor)
17099
      Table Name:       (set in the "New PL/SQL Object" dialog)
17100
 
17101
******************************************************************************/
17102
BEGIN
3959 dpurdie 17103
   DELETE FROM autobuild_failure
17104
         WHERE group_email_id NOT IN (SELECT group_email_id
17105
                                        FROM members_group);
17106
END delete_autobuild_failure_info;
4040 dpurdie 17107
 
1374 dpurdie 17108
/
4040 dpurdie 17109
--------------------------------------------------------
17110
--  DDL for Procedure DEPRECATE_PACKAGE
17111
--------------------------------------------------------
17112
set define off;
17113
 
5384 dpurdie 17114
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DEPRECATE_PACKAGE" (
17115
    nPvId     IN PACKAGE_VERSIONS.PV_ID%TYPE,
17116
    nRtagId   IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,
17117
    nPkgId    IN DEPRECATED_PACKAGES.PKG_ID%TYPE,
17118
    sComments IN DEPRECATED_PACKAGES.COMMENTS%TYPE,
17119
    nUserId   IN NUMBER)
17120
IS
17121
  ext VARCHAR2(50);
1373 dpurdie 17122
BEGIN
5384 dpurdie 17123
  --Extract the package version extension
17124
  SELECT V_EXT INTO ext
17125
  FROM PACKAGE_VERSIONS
17126
  WHERE PV_ID = nPvId;
6031 dpurdie 17127
 
5384 dpurdie 17128
  -- Deprecate Package
17129
  INSERT INTO DEPRECATED_PACKAGES
17130
    ( RTAG_ID, PKG_ID, COMMENTS, V_EXT )
17131
    VALUES ( nRtagId, nPkgId, sComments, ext );
6031 dpurdie 17132
 
5384 dpurdie 17133
  -- Update Release Contents entry
17134
  -- Process PackageName.ext for the package. ie: Allow multiple
17135
  -- versions of the package to be in the release.
17136
    UPDATE RELEASE_CONTENT
6031 dpurdie 17137
    SET
5384 dpurdie 17138
      DEPRECATED_STATE = 6
17139
    WHERE RTAG_ID      = nRtagId
17140
    AND PV_ID IN (
17141
      SELECT PV.PV_ID
17142
      FROM PACKAGE_VERSIONS PV
17143
      WHERE PV.PKG_ID   = nPkgId
17144
      AND NVL(PV.V_EXT, '.NULL') = NVL(ext,'.NULL')
17145
      );
1373 dpurdie 17146
 
5384 dpurdie 17147
  -- Update consumers of the package
17148
  --  Update ALL packages in the Release
6031 dpurdie 17149
 
5384 dpurdie 17150
  REBUILD_DEPRECATE_STATE(nRtagId);
1373 dpurdie 17151
 
5384 dpurdie 17152
  /* LOG ACTION */
17153
  /*Log_Action ( nPkgId, 'deprecated_package', nUserId );*/
3959 dpurdie 17154
END Deprecate_Package;
4040 dpurdie 17155
 
1374 dpurdie 17156
/
4040 dpurdie 17157
--------------------------------------------------------
17158
--  DDL for Procedure DT_DROPUSEROBJECTBYID
17159
--------------------------------------------------------
17160
set define off;
17161
 
5172 dpurdie 17162
  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 17163
 
1374 dpurdie 17164
/
4040 dpurdie 17165
--------------------------------------------------------
17166
--  DDL for Procedure DT_SETPROPERTYBYID
17167
--------------------------------------------------------
17168
set define off;
17169
 
5384 dpurdie 17170
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DT_SETPROPERTYBYID" (
17171
    PARAM_ID       IN NUMBER,
17172
    PARAM_PROPERTY IN VARCHAR2,
17173
    PARAM_VALUE    IN VARCHAR2,
17174
    PARAM_LVALUE   IN LONG RAW )
17175
AS
17176
BEGIN
17177
  DECLARE
17178
    X NUMBER(38);
17179
  BEGIN
17180
    SELECT COUNT(*)
17181
    INTO X
17182
    FROM MICROSOFTDTPROPERTIES
17183
    WHERE OBJECTID=PARAM_ID
17184
    AND PROPERTY  =PARAM_PROPERTY;
17185
    IF X          = 0 THEN
17186
      INSERT
17187
      INTO MICROSOFTDTPROPERTIES
17188
        (
17189
          ID,
17190
          PROPERTY,
17191
          OBJECTID,
17192
          VALUE,
17193
          LVALUE,
17194
          VERSION
17195
        )
17196
        VALUES
17197
        (
17198
          MICROSOFTSEQDTPROPERTIES.NEXTVAL,
17199
          PARAM_PROPERTY,
17200
          PARAM_ID,
17201
          PARAM_VALUE,
17202
          PARAM_LVALUE,
17203
 
17204
        );
17205
    ELSE
17206
      UPDATE MICROSOFTDTPROPERTIES
17207
      SET VALUE     =PARAM_VALUE,
17208
        LVALUE      =PARAM_LVALUE,
17209
        VERSION     =VERSION+1
17210
      WHERE OBJECTID=PARAM_ID
17211
      AND PROPERTY  =PARAM_PROPERTY;
17212
    END IF;
17213
  END;
17214
END DT_SETPROPERTYBYID;
4040 dpurdie 17215
 
3959 dpurdie 17216
/
4040 dpurdie 17217
--------------------------------------------------------
17218
--  DDL for Procedure IGNORE_DEPENDENCY_WARNINGS
17219
--------------------------------------------------------
17220
set define off;
17221
 
5172 dpurdie 17222
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."IGNORE_DEPENDENCY_WARNINGS" ( nRtagId IN IGNORE_WARNINGS.RTAG_ID%TYPE,
3959 dpurdie 17223
                                                         nPvId IN IGNORE_WARNINGS.PV_ID%TYPE,
17224
                                                         sIgnoreIdList IN VARCHAR2,
17225
                                                         bDoPatchIgnore IN BOOLEAN DEFAULT FALSE,
17226
                                                         nUserId IN NUMBER DEFAULT NULL ) IS
17227
/* ---------------------------------------------------------------------------
17228
    Updates the ignore warnings table - this is really two functions in one.
17229
 
17230
    1) One function updates the table based on a list of dependent PV_IDs and a parent PV_ID
17231
       and is called from the RM website's SetIgnoreWarnings() function after a user changes
17232
       the ignore warnings checkboxes and submits the form.
17233
       This can (at time of writing this) only be done within releases that are not build
17234
       daemon enabled. The ignore warnings feature is a feature we would like to see the end
17235
       of in an ideal world.
17236
       The SetIgnoreWarnings() website function now calls Touch_Release so there is no need to
17237
       do so in this stored procedure, thereby making this stored procedure much more precise in
17238
       that it only updates the ignore_warnings table (action log table too although that is just
17239
       a log and doesn't affect any subsequent business rules behaviour) and it cares nothing
17240
       about website presentation layer states, etc.
17241
 
17242
    2) The other function updates the table for out of sync dependencies that have in fact
17243
       been satisfied by patches made to some other product in the release.
17244
       This seems to be a seldom used feature in current projects.
17245
       It is probably the most often taken path through this function given that it occurs when
17246
       this function is called from Rebuild_Environment, and that is called in many circumstances
17247
       from the RM website whenever the seems to be a possibility that the state of a package
17248
       in a release might have changed and therefore affects the state of other packages in
17249
       that same release.
17250
 
17251
    Parameter Usage:
17252
                        when called from    | when called from
17253
                        Rebuild_Environment | SetIgnoreWarnings()
17254
                        stored procedure.   | in the Website
17255
      --------------------------------------+----------------------------
17256
      nRtagId           RTAG_ID             | RTAG_ID
17257
      nPvId             NULL                | PV_ID
17258
      sIgnoreIdList     NULL                | list of dependent PV_ID's
17259
      bDoPatchIgnore    TRUE                | FALSE
17260
      nUserId           NULL                | current user ID
17261
   --------------------------------------------------------------------------- */
17262
 
17263
oIgnoreIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
17264
ReleaseLocation VARCHAR2(4000);
17265
ActionTypeId NUMBER;
17266
 
1373 dpurdie 17267
BEGIN
17268
 
3959 dpurdie 17269
   IF (NOT bDoPatchIgnore) THEN
17270
      /* Manual Ignore Warnings - this execution path is the one taken when called from SetIgnoreWarnings() in the Website
17271
      */
17272
      oIgnoreIdCollector := IN_LIST_NUMBER ( sIgnoreIdList );
1373 dpurdie 17273
 
17274
 
3959 dpurdie 17275
      /* Log Action */
17276
      -- Get Release Location
17277
      SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
17278
        FROM PROJECTS proj,
17279
             RELEASE_TAGS rt
17280
       WHERE rt.PROJ_ID = proj.PROJ_ID
17281
         AND rt.RTAG_ID = nRtagId;
1373 dpurdie 17282
 
3959 dpurdie 17283
      -- Get Action Type Id for IGNORE_ON
17284
      SELECT act.ACTTYPE_ID INTO ActionTypeId
17285
        FROM ACTION_TYPE act
17286
       WHERE act.NAME = 'ignore_on';
17287
 
17288
      -- Get Ignored (Current MINUS Old)
5172 dpurdie 17289
      INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
17290
      SELECT nUserId, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeId
3959 dpurdie 17291
        FROM (
17292
              SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_ID
17293
                FROM PACKAGE_VERSIONS pv
17294
               WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
17295
              MINUS
17296
              SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_ID
17297
                FROM IGNORE_WARNINGS igw
17298
               WHERE igw.RTAG_ID = nRtagId
17299
                 AND igw.PV_ID = nPvId
17300
             ) qry,
17301
             PACKAGE_VERSIONS pv,
17302
             PACKAGES pkg,
17303
             RELEASE_CONTENT rc,
17304
             PACKAGE_VERSIONS rpv
17305
       WHERE pv.PKG_ID = pkg.PKG_ID
17306
         AND rc.RTAG_ID = nRtagId
17307
         AND rc.PV_ID = rpv.PV_ID
17308
         AND rpv.PKG_ID = pv.PKG_ID
17309
         AND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )
17310
         AND qry.DPV_ID = pv.PV_ID;
17311
 
17312
 
17313
      -- Get Action Type Id for IGNORE_OFF
17314
      SELECT act.ACTTYPE_ID INTO ActionTypeId
17315
        FROM ACTION_TYPE act
17316
       WHERE act.NAME = 'ignore_off';
17317
 
17318
      -- Get UnIgnored (Old MINUS Current)
5172 dpurdie 17319
      INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
17320
      SELECT nUserId, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeId
3959 dpurdie 17321
        FROM (
17322
              SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_ID
17323
                FROM IGNORE_WARNINGS igw
17324
               WHERE igw.RTAG_ID = nRtagId
17325
                 AND igw.PV_ID = nPvId
17326
              MINUS
17327
              SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_ID
17328
                FROM PACKAGE_VERSIONS pv
17329
               WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
17330
             ) qry,
17331
             PACKAGE_VERSIONS pv,
17332
             PACKAGES pkg,
17333
             RELEASE_CONTENT rc,
17334
             PACKAGE_VERSIONS rpv
17335
       WHERE pv.PKG_ID = pkg.PKG_ID
17336
         AND rc.RTAG_ID = nRtagId
17337
         AND rc.PV_ID = rpv.PV_ID
17338
         AND rpv.PKG_ID = pv.PKG_ID
17339
         AND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )
17340
         AND qry.DPV_ID = pv.PV_ID;
17341
 
17342
 
17343
      -- Delete Current Ignore Warnings
17344
      DELETE
17345
        FROM IGNORE_WARNINGS igw
17346
       WHERE igw.RTAG_ID = nRtagId
17347
         AND igw.PV_ID = nPvId
17348
         AND igw.IS_PATCH_IGNORE IS NULL;
17349
 
17350
 
17351
      IF (oIgnoreIdCollector.COUNT > 0) THEN
17352
         -- Insert Ignore Warnings
17353
         INSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID )
17354
         SELECT nRtagId,
17355
                nPvId,
17356
                pv.PV_ID AS DPV_ID
17357
           FROM PACKAGE_VERSIONS pv
17358
          WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
17359
      END IF;
17360
 
17361
   ELSE
17362
      /* Patch Ignore Warnings - this execution path is the one taken when called from the Rebuild_Environment stored procedure */
17363
 
17364
      -- Delete Current Patch Ignore Warnings
17365
      DELETE
17366
        FROM IGNORE_WARNINGS igw
17367
       WHERE igw.RTAG_ID = nRtagId
17368
         AND igw.IS_PATCH_IGNORE = 'Y';
17369
 
17370
 
17371
      -- Delete Manual Ignores that need to be Patch Ignores
17372
      DELETE
17373
        FROM IGNORE_WARNINGS igw
17374
       WHERE ( RTAG_ID, PV_ID, DPV_ID ) IN
17375
             (
17376
              SELECT DISTINCT
17377
                     nRtagId,
17378
                     err.PV_ID,
17379
                     err.ERR_DPV AS DPV_ID
17380
               FROM  (
17381
                      /* Full Release Contents used for reference*/
17382
                      SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext
17383
                        FROM release_content rel, package_versions rpv
17384
                       WHERE rel.pv_id = rpv.pv_id
17385
                         AND rtag_id = nRtagId
17386
                     ) frc,
17387
                     (
17388
                      /* DPV_IDs not fount in release*/
17389
                      SELECT dep.pv_id, dep.dpv_id AS err_dpv
17390
                        FROM package_dependencies dep
17391
                       WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
17392
                         AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
17393
                     ) err,
17394
                     (
17395
                      SELECT DISTINCT pp.PV_ID, dep.DPV_ID
17396
                        FROM PACKAGE_PATCHES pp,
17397
                             PACKAGE_DEPENDENCIES dep,
17398
                             RELEASE_CONTENT rc
17399
                       WHERE rc.RTAG_ID = nRtagId
17400
                         AND rc.PV_ID = pp.PV_ID
17401
                         AND dep.PV_ID = pp.PATCH_ID
17402
                     ) pp,
17403
                     package_versions errpkg,
17404
                     package_versions errpv
17405
               WHERE err.err_dpv = errpv.pv_id
17406
                 AND errpv.pkg_id = frc.pkg_id(+)
17407
                 AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
17408
                 AND err.pv_id = errpkg.pv_id
17409
                 AND err.PV_ID = pp.PV_ID
17410
                 AND frc.PV_ID = pp.DPV_ID
17411
             );
17412
 
17413
      /*
17414
      ---------------------------------------------------
17415
      --  Make sure that select statement above and below are same
17416
      ---------------------------------------------------
17417
      */
17418
 
17419
      -- Insert Patch Ignores
17420
      INSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE )
17421
      SELECT DISTINCT
17422
             nRtagId,
17423
             err.PV_ID,
17424
             err.ERR_DPV AS DPV_ID,
17425
             'Y'
17426
        FROM (
17427
              /* Full Release Contents used for reference*/
17428
              SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext
17429
                FROM release_content rel, package_versions rpv
17430
               WHERE rel.pv_id = rpv.pv_id
17431
                 AND rtag_id = nRtagId
17432
             ) frc,
17433
             (
17434
               /* DPV_IDs not fount in release*/
17435
               SELECT dep.pv_id, dep.dpv_id AS err_dpv
17436
                 FROM package_dependencies dep
17437
                WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
17438
                  AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
17439
             ) err,
17440
             (
17441
              SELECT DISTINCT pp.PV_ID, dep.DPV_ID
17442
                FROM PACKAGE_PATCHES pp,
17443
                     PACKAGE_DEPENDENCIES dep,
17444
                     RELEASE_CONTENT rc
17445
               WHERE rc.RTAG_ID = nRtagId
17446
                 AND rc.PV_ID = pp.PV_ID
17447
                 AND dep.PV_ID = pp.PATCH_ID
17448
             ) pp,
17449
             package_versions errpkg,
17450
             package_versions errpv
17451
       WHERE err.err_dpv = errpv.pv_id
17452
         AND errpv.pkg_id = frc.pkg_id(+)
17453
         AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
17454
         AND err.pv_id = errpkg.pv_id
17455
         AND err.PV_ID = pp.PV_ID
17456
         AND frc.PV_ID = pp.DPV_ID;
17457
 
17458
    END IF;
17459
 
17460
END Ignore_Dependency_Warnings;
4040 dpurdie 17461
 
1374 dpurdie 17462
/
4040 dpurdie 17463
--------------------------------------------------------
17464
--  DDL for Procedure INSERT_INTO_PACKAGE_BUILD_INFO
17465
--------------------------------------------------------
17466
set define off;
17467
 
5172 dpurdie 17468
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."INSERT_INTO_PACKAGE_BUILD_INFO" IS
1373 dpurdie 17469
 
17470
/******************************************************************************
3959 dpurdie 17471
   NAME:       INSERT_INTO_PACKAGE_BUILD_INFO
6031 dpurdie 17472
   PURPOSE:
1373 dpurdie 17473
 
17474
   REVISIONS:
17475
   Ver        Date        Author           Description
17476
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 17477
   1.0        6/12/2006          1. Created this procedure.
1373 dpurdie 17478
 
17479
   NOTES:
17480
 
17481
   Automatically available Auto Replace Keywords:
3959 dpurdie 17482
      Object Name:     INSERT_INTO_PACKAGE_BUILD_INFO
17483
      Sysdate:         6/12/2006
17484
      Date and Time:   6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PM
1373 dpurdie 17485
      Username:         (set in TOAD Options, Procedure Editor)
17486
      Table Name:       (set in the "New PL/SQL Object" dialog)
17487
 
17488
******************************************************************************/
17489
 
17490
	CURSOR curInfo IS
3959 dpurdie 17491
    SELECT PV_ID
17492
	FROM PACKAGE_BUILD_ENV
17493
	WHERE BE_ID IN (11, 12);
1373 dpurdie 17494
    recInfo curInfo%ROWTYPE;
6031 dpurdie 17495
 
17496
 
1373 dpurdie 17497
BEGIN
17498
 
17499
	OPEN curInfo;
17500
    FETCH curInfo INTO recInfo;
6031 dpurdie 17501
 
1373 dpurdie 17502
	WHILE curInfo%FOUND
17503
	LOOP
17504
 
3959 dpurdie 17505
		INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID, BSA_ID )
17506
		VALUES( recInfo.PV_ID, 2, 5);
6031 dpurdie 17507
 
3959 dpurdie 17508
		UPDATE PACKAGE_VERSIONS SET BS_ID = 2 WHERE PV_ID = recInfo.PV_ID;
6031 dpurdie 17509
 
1373 dpurdie 17510
		FETCH curInfo INTO recInfo;
6031 dpurdie 17511
 
1373 dpurdie 17512
	END LOOP;
17513
 
17514
	CLOSE curInfo;
17515
 
17516
 
17517
 
17518
 
3959 dpurdie 17519
END INSERT_INTO_PACKAGE_BUILD_INFO;
4040 dpurdie 17520
 
1374 dpurdie 17521
/
4040 dpurdie 17522
--------------------------------------------------------
17523
--  DDL for Procedure INSERT_MULTIPLE_STICKY_NOTES
17524
--------------------------------------------------------
17525
set define off;
17526
 
5172 dpurdie 17527
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."INSERT_MULTIPLE_STICKY_NOTES" IS
1373 dpurdie 17528
 
3959 dpurdie 17529
/******************************************************************************
17530
   NAME:       INSERT_MULTIPLE_STICKY_NOTES
6031 dpurdie 17531
   PURPOSE:
1373 dpurdie 17532
 
3959 dpurdie 17533
   REVISIONS:
17534
   Ver        Date        Author           Description
17535
   ---------  ----------  ---------------  ------------------------------------
17536
   1.0        6/12/2006          1. Created this procedure.
1373 dpurdie 17537
 
3959 dpurdie 17538
   NOTES:
1373 dpurdie 17539
 
3959 dpurdie 17540
   Automatically available Auto Replace Keywords:
17541
      Object Name:     INSERT_MULTIPLE_STICKY_NOTES
17542
      Sysdate:         6/12/2006
17543
      Date and Time:   6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PM
17544
      Username:         (set in TOAD Options, Procedure Editor)
17545
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 17546
 
3959 dpurdie 17547
******************************************************************************/
1373 dpurdie 17548
 
3959 dpurdie 17549
	CURSOR curInfo IS
17550
    SELECT PV_ID
17551
	FROM PACKAGE_BUILD_ENV
17552
	WHERE BE_ID IN (11, 12);
17553
    recInfo curInfo%ROWTYPE;
6031 dpurdie 17554
 
17555
 
1373 dpurdie 17556
BEGIN
17557
 
3959 dpurdie 17558
	OPEN curInfo;
17559
    FETCH curInfo INTO recInfo;
6031 dpurdie 17560
 
3959 dpurdie 17561
	WHILE curInfo%FOUND
17562
	LOOP
1373 dpurdie 17563
 
3959 dpurdie 17564
		INSERT INTO NOTE_MANAGER ( NID, LAST_USER, LAST_DATE, DESCRIPTION )
17565
		VALUES( recInfo.PV_ID, 'awehalle', ORA_SYSDATETIME, '' );
6031 dpurdie 17566
 
3959 dpurdie 17567
		FETCH curInfo INTO recInfo;
6031 dpurdie 17568
 
3959 dpurdie 17569
	END LOOP;
1373 dpurdie 17570
 
3959 dpurdie 17571
	CLOSE curInfo;
1373 dpurdie 17572
 
17573
 
17574
 
17575
 
3959 dpurdie 17576
END INSERT_MULTIPLE_STICKY_NOTES;
4040 dpurdie 17577
 
1374 dpurdie 17578
/
4040 dpurdie 17579
--------------------------------------------------------
17580
--  DDL for Procedure LEVEL_N_CONFLICTS
17581
--------------------------------------------------------
17582
set define off;
17583
 
5172 dpurdie 17584
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LEVEL_N_CONFLICTS" (
3959 dpurdie 17585
   nnrtag_id       IN       NUMBER,
17586
   nnsession_num   IN       NUMBER,
17587
   nnrowcnt        OUT      NUMBER,
17588
   nniteration     IN       NUMBER
17589
)
17590
IS
1373 dpurdie 17591
/* ---------------------------------------------------------------------------
3959 dpurdie 17592
    Version: 3.0.1
1373 dpurdie 17593
   --------------------------------------------------------------------------- */
3959 dpurdie 17594
   previteration   NUMBER := nniteration - 1;
1373 dpurdie 17595
BEGIN
5384 dpurdie 17596
  -- Map broken dependency information from a package into a consumer
17597
  -- package. ie: Ripple need-to-build info up the dependency tree.
17598
 
3959 dpurdie 17599
   /* ---------  LEVEL 1 CONFILCTS -----------
17600
   || Following states are used:
17601
   || 0 -> NOT FOUND
17602
   || 1 -> MAJOR
17603
   || 2 -> MINOR MINOR
17604
   */
17605
   INSERT INTO temp_env_states
5384 dpurdie 17606
               SELECT DISTINCT nnsession_num AS session_num, nniteration AS level_num,
17607
                      dpv.pv_id, dpv.pkg_id, dpv.v_ext,
6031 dpurdie 17608
                      DECODE (tes.tes_state, 2, 2, 1) AS MESSAGE,
17609
                      'X'
5384 dpurdie 17610
                 FROM TEMP_ENV_DEPS dpv,
3959 dpurdie 17611
                      temp_env_states tes
5384 dpurdie 17612
                WHERE dpv.SESSION_NUM = nnsession_num
17613
                  AND dpv.dpkg_id = tes.pkg_id
17614
                  AND NVL (dpv.dv_ext, '|LINK_A_NULL|') = NVL (tes.v_ext, '|LINK_A_NULL|')
3959 dpurdie 17615
                  AND tes.session_num = nnsession_num
5384 dpurdie 17616
                  AND tes.level_num = previteration;
1373 dpurdie 17617
 
3959 dpurdie 17618
   nnrowcnt := SQL%ROWCOUNT;
17619
END level_n_conflicts;
4040 dpurdie 17620
 
1374 dpurdie 17621
/
4040 dpurdie 17622
--------------------------------------------------------
17623
--  DDL for Procedure LEVEL_ONE_CONFLICTS
17624
--------------------------------------------------------
17625
set define off;
17626
 
5172 dpurdie 17627
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LEVEL_ONE_CONFLICTS" (
1373 dpurdie 17628
   nnrtag_id       IN   NUMBER,
17629
   nnsession_num   IN   NUMBER
17630
)
17631
IS
17632
BEGIN
5384 dpurdie 17633
  --  Prepare the TEMP_ENV_DEPS table
17634
  --  This table maps package-versions to their dependencies and is
17635
  --  used to walk up the dependency tree.
17636
  --  This table consists of PV_ID -> DPV_ID in the release in which we are interested
17637
  --  ie: Those that ARE NOT a part of:
17638
  --    Pegged Package
17639
  --    SDK imported package
17640
  --    Marked with an ignore warnings
17641
  --    Marked as an advisory ripple
17642
  --
17643
  --  This table speeds up the process by a huge (really huge) amount
17644
  --
17645
      INSERT into TEMP_ENV_DEPS
17646
      (
17647
      SELECT DISTINCT nnsession_num AS session_num,
17648
                      pv.pv_id, pv.pkg_id, pv.v_ext,
17649
                      dpv.pv_id as dpv_id, dpv.pkg_id as dpkg_id, dpv.v_ext as dv_ext
6031 dpurdie 17650
 
5384 dpurdie 17651
                 FROM release_content rel,
17652
                      package_dependencies dep,
17653
                      package_versions dpv,
17654
                      package_versions pv
6031 dpurdie 17655
 
5384 dpurdie 17656
                WHERE rel.pv_id = dep.pv_id
17657
                  AND rel.rtag_id = nnrtag_id
17658
                  AND dep.pv_id = pv.pv_id
17659
                  AND dep.dpv_id = dpv.pv_id
17660
                  --AND rel.SDKTAG_ID is null
17661
                  --AND NOT dep.pv_id IN (SELECT pegv.pv_id FROM PEGGED_VERSIONS pegv WHERE pegv.rtag_id = nnrtag_id)
17662
                  AND NOT (dep.pv_id, dep.dpv_id) in (SELECT igw.pv_id, igw.DPV_ID from ignore_warnings igw where igw.rtag_id = nnrtag_id)
17663
                  );
17664
 
1373 dpurdie 17665
   /* ---------  LEVEL 1 CONFILCTS -----------
17666
   || Following states are used:
17667
   || 0 -> NOT FOUND
17668
   || 1 -> MAJOR
17669
   || 2 -> MINOR MINOR
17670
   */
17671
   INSERT INTO temp_env_states
6600 dpurdie 17672
   (
17673
      SELECT nnsession_num AS session_num, 
17674
        1 AS level_num,
17675
        rd.pv_id, 
17676
        rd.pkg_id, 
17677
        rd.v_ext,
17678
        DECODE (rd.v_nmm,
17679
                    NULL, 0,
17680
                    pv2.v_nmm, DECODE (rd.v_mm,
17681
                                       pv2.v_mm, 0,
17682
                                                 2
17683
                                       ),
17684
                    1
17685
              ) AS MESSAGE,
17686
        rd.build_type
17687
from (
17688
      SELECT DISTINCT err.pv_id, errpkg.pkg_id, errpkg.v_ext,
17689
                      frc.build_type,
17690
                      frc.v_nmm,
17691
                      frc.v_mm,
17692
                      errpv.pv_id as errpv_id
1373 dpurdie 17693
                 FROM (
17694
                       /* Full Release Contents used for reference*/
17695
                        SELECT rel.rtag_id, rpv.pv_id, rpv.pkg_id,
17696
                                NVL (rpv.v_ext, '|LINK_A_NULL|') AS v_ext,
17697
                                rpv.pkg_version, rpv.v_nmm, rpv.v_mm,
6031 dpurdie 17698
                                (SELECT COUNT(*) FROM ADVISORY_RIPPLE avr WHERE avr.rtag_id = rel.rtag_id AND avr.pv_id = rel.pv_id ) AS IsAvr,
17699
                                rpv.build_type
1373 dpurdie 17700
                          FROM release_content rel,
17701
                                package_versions rpv
17702
                          WHERE rel.pv_id = rpv.pv_id
17703
                             AND rtag_id = nnrtag_id
17704
                      ) frc,
17705
 
17706
                      (
5384 dpurdie 17707
                       /* DPV_IDs not found in release. Excluding:
17708
                              Those from pegged versions
17709
                              Those from packages imported via an SDK
17710
                              */
1373 dpurdie 17711
                       SELECT dep.pv_id, dep.dpv_id AS err_dpv
5384 dpurdie 17712
                         FROM package_dependencies dep
17713
                        WHERE dep.pv_id IN (SELECT pv_id FROM release_content WHERE rtag_id = nnrtag_id AND release_content.SDKTAG_ID is NULL)
1373 dpurdie 17714
                          AND NOT dep.pv_id IN (SELECT pegv.pv_id FROM PEGGED_VERSIONS pegv WHERE pegv.rtag_id = nnrtag_id)
17715
                          AND NOT dep.dpv_id IN (SELECT pv_id FROM release_content WHERE rtag_id = nnrtag_id)
5384 dpurdie 17716
 
6031 dpurdie 17717
                       /* INCLUDE Unbuildable packages to force missing */
17718
                       UNION
17719
                       SELECT bpv.pv_id, bpv.pv_id as err_dpv
17720
                        FROM package_versions bpv, release_content brc
17721
                        WHERE bpv.build_type = 'U' AND brc.rtag_id = nnrtag_id AND bpv.pv_id = brc.pv_id
17722
 
1373 dpurdie 17723
                       MINUS
17724
                       /* MINUS Dependencies to be ignored */
17725
                       SELECT igw.pv_id, igw.dpv_id AS err_dpv
5384 dpurdie 17726
                         FROM ignore_warnings igw
17727
                        WHERE igw.rtag_id = nnrtag_id
6031 dpurdie 17728
 
1373 dpurdie 17729
                      ) err,
17730
                      package_versions errpkg,
17731
                      package_versions errpv
17732
                WHERE err.err_dpv = errpv.pv_id
17733
                  AND errpv.pkg_id = frc.pkg_id(+)
17734
                  AND NVL (errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
17735
                  AND err.pv_id = errpkg.pv_id
6600 dpurdie 17736
                  AND NVL(frc.IsAvr,0) = 0
17737
                  ) rd,
17738
                  package_versions pv2
17739
                  where rd.errpv_id = pv2.PV_ID
17740
                  );
1373 dpurdie 17741
END level_one_conflicts;
4040 dpurdie 17742
 
1374 dpurdie 17743
/
4040 dpurdie 17744
--------------------------------------------------------
17745
--  DDL for Procedure LOCK_PACKAGE
17746
--------------------------------------------------------
17747
set define off;
17748
 
5172 dpurdie 17749
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
1373 dpurdie 17750
											 nUserId IN NUMBER ) IS
17751
/* ---------------------------------------------------------------------------
17752
    Version: 4.0
17753
   --------------------------------------------------------------------------- */
17754
 
17755
BEGIN
17756
 
17757
    -- Lock Package
17758
    UPDATE PACKAGE_VERSIONS pv SET
17759
    	pv.DLOCKED = 'Y'
17760
    WHERE pv.PV_ID = nPvId;
17761
 
17762
    /* LOG ACTION */
17763
   	Log_Action ( nPvId, 'lock_package', nUserId );
17764
 
17765
END Lock_Package;
4040 dpurdie 17766
 
1374 dpurdie 17767
/
4040 dpurdie 17768
--------------------------------------------------------
17769
--  DDL for Procedure LOG_ACTION
17770
--------------------------------------------------------
17771
set define off;
17772
 
5172 dpurdie 17773
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 17774
										 enumActionTypeName IN ACTION_TYPE.NAME%TYPE,
17775
                                         nUserId IN ACTION_LOG.USER_ID%TYPE,
17776
										 sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL  ) IS
1373 dpurdie 17777
/* ---------------------------------------------------------------------------
17778
    Version: 3.0
17779
   --------------------------------------------------------------------------- */
17780
 
3959 dpurdie 17781
    ActionTypeId NUMBER;
1373 dpurdie 17782
 
17783
BEGIN
17784
 
3959 dpurdie 17785
    -- Get Action Type FK
17786
    SELECT act.ACTTYPE_ID INTO ActionTypeId
17787
      FROM ACTION_TYPE act
17788
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 17789
 
17790
 
5172 dpurdie 17791
    INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
17792
    VALUES ( nUserId, nPvId, sAdditionalComments, ActionTypeId );
1373 dpurdie 17793
 
17794
 
3959 dpurdie 17795
END Log_Action;
4040 dpurdie 17796
 
1374 dpurdie 17797
/
4040 dpurdie 17798
--------------------------------------------------------
17799
--  DDL for Procedure LOG_ACTION_BULK
17800
--------------------------------------------------------
17801
set define off;
17802
 
5172 dpurdie 17803
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION_BULK" ( nPvIdList IN VARCHAR2,
3959 dpurdie 17804
										 	  enumActionTypeName IN ACTION_TYPE.NAME%TYPE,
17805
                                         	  nUserId IN ACTION_LOG.USER_ID%TYPE,
17806
										 	  sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL  ) IS
1373 dpurdie 17807
/* ---------------------------------------------------------------------------
3959 dpurdie 17808
    Version: 3.0
1373 dpurdie 17809
   --------------------------------------------------------------------------- */
17810
 
3959 dpurdie 17811
    ActionTypeId NUMBER;
17812
    oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
1373 dpurdie 17813
 
17814
BEGIN
17815
 
3959 dpurdie 17816
    oPvIdCollector := IN_LIST_NUMBER ( nPvIdList );
1373 dpurdie 17817
 
3959 dpurdie 17818
    -- Get Action Type FK
17819
    SELECT act.ACTTYPE_ID INTO ActionTypeId
17820
      FROM ACTION_TYPE act
17821
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 17822
 
3959 dpurdie 17823
    -- Log Action
5172 dpurdie 17824
    INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
3959 dpurdie 17825
    SELECT nUserId,
5172 dpurdie 17826
    	     pv.PV_ID,
3959 dpurdie 17827
           sAdditionalComments,
17828
           ActionTypeId
17829
      FROM PACKAGE_VERSIONS pv
17830
     WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
1373 dpurdie 17831
 
17832
 
3959 dpurdie 17833
END Log_Action_Bulk;
4040 dpurdie 17834
 
1374 dpurdie 17835
/
4040 dpurdie 17836
--------------------------------------------------------
17837
--  DDL for Procedure LOG_DAEMON_ACTION
17838
--------------------------------------------------------
17839
set define off;
17840
 
5172 dpurdie 17841
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_DAEMON_ACTION" ( nRconId IN NUMBER,
3959 dpurdie 17842
												 enumActionTypeName IN VARCHAR2,
17843
		                                         nUserId IN NUMBER,
17844
												 sAdditionalComments IN VARCHAR2 DEFAULT NULL  ) IS
17845
/* ---------------------------------------------------------------------------
17846
    Version: 3.0
17847
   --------------------------------------------------------------------------- */
1373 dpurdie 17848
 
3959 dpurdie 17849
    ActionTypeId NUMBER;
1373 dpurdie 17850
 
17851
BEGIN
17852
 
3959 dpurdie 17853
    -- Get Action Type FK
17854
    SELECT act.ACTTYPE_ID INTO ActionTypeId
17855
      FROM ACTION_TYPE act
17856
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 17857
 
17858
 
3959 dpurdie 17859
    INSERT INTO DAEMON_ACTION_LOG
17860
    VALUES ( nUserId, ORA_SYSDATETIME, nRconId, sAdditionalComments, ActionTypeId );
1373 dpurdie 17861
 
17862
 
3959 dpurdie 17863
END Log_Daemon_Action;
4040 dpurdie 17864
 
1374 dpurdie 17865
/
4040 dpurdie 17866
--------------------------------------------------------
17867
--  DDL for Procedure LOG_PROJECT_ACTION
17868
--------------------------------------------------------
17869
set define off;
17870
 
5172 dpurdie 17871
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_PROJECT_ACTION" ( nProjId IN NUMBER,
3959 dpurdie 17872
												 enumActionTypeName IN VARCHAR2,
17873
		                                         nUserId IN NUMBER,
17874
												 sAdditionalComments IN VARCHAR2 DEFAULT NULL,
17875
												 nRtagId IN NUMBER  ) IS
1373 dpurdie 17876
/* ---------------------------------------------------------------------------
3959 dpurdie 17877
    Version: 3.0
1373 dpurdie 17878
   --------------------------------------------------------------------------- */
17879
 
3959 dpurdie 17880
    ActionTypeId NUMBER;
1373 dpurdie 17881
 
17882
BEGIN
17883
 
3959 dpurdie 17884
    -- Get Action Type FK
17885
    SELECT act.ACTTYPE_ID INTO ActionTypeId
17886
      FROM ACTION_TYPE act
17887
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 17888
 
17889
 
3959 dpurdie 17890
    INSERT INTO PROJECT_ACTION_LOG ( USER_ID, ACTION_DATETIME, PROJ_ID, DESCRIPTION, ACTTYPE_ID, RTAG_ID)
17891
    VALUES ( nUserId, ORA_SYSDATETIME, nProjId, sAdditionalComments, ActionTypeId, nRtagId);
1373 dpurdie 17892
 
17893
 
3959 dpurdie 17894
END Log_Project_Action;
4040 dpurdie 17895
 
1374 dpurdie 17896
/
4040 dpurdie 17897
--------------------------------------------------------
17898
--  DDL for Procedure NEW_ADDITIONAL_NOTE
17899
--------------------------------------------------------
17900
set define off;
17901
 
5172 dpurdie 17902
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_ADDITIONAL_NOTE" ( pnPv_id IN NUMBER,
3959 dpurdie 17903
                                                  psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,
17904
                                                  psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,
17905
                                                  pnUser_id IN NUMBER,
17906
                                                  outErrCode OUT NUMBER
17907
                                                 ) IS
1373 dpurdie 17908
/* ---------------------------------------------------------------------------
3959 dpurdie 17909
    Version: 3.0.0
1373 dpurdie 17910
   --------------------------------------------------------------------------- */
17911
 
17912
    newID NUMBER;
17913
 
17914
	CURSOR an_duplicate_cur IS
3959 dpurdie 17915
        SELECT note_id
1373 dpurdie 17916
          FROM ADDITIONAL_NOTES
17917
         WHERE pv_id = pnPv_id
17918
           AND note_title = psNote_title;
17919
    an_duplicate_rec an_duplicate_cur%ROWTYPE;
17920
 
17921
BEGIN
17922
	outErrCode := -1;		-- Set default return error code to ERROR state
17923
 
17924
	OPEN an_duplicate_cur;
17925
    FETCH an_duplicate_cur INTO an_duplicate_rec;
17926
 
3959 dpurdie 17927
    IF an_duplicate_cur%NOTFOUND
1373 dpurdie 17928
    THEN
3959 dpurdie 17929
		/* No duplicate titles */
17930
		-- Get new ID --
17931
    	SELECT SEQ_ADDITIONAL_NOTES.NEXTVAL INTO newID FROM DUAL;
17932
 
17933
		--- Add Additional Note ---
17934
	    INSERT INTO ADDITIONAL_NOTES ( note_id, pv_id, note_title, note_body, mod_date, mod_user  )
17935
	    VALUES (  newID, pnPv_id, psNote_title, psNote_body, Ora_Sysdate, pnUser_id );
1373 dpurdie 17936
		outErrCode := 0;		-- Set return to SUCCESS
17937
	END IF;
17938
 
17939
	CLOSE an_duplicate_cur;
3959 dpurdie 17940
END New_Additional_Note;
4040 dpurdie 17941
 
1374 dpurdie 17942
/
4040 dpurdie 17943
--------------------------------------------------------
17944
--  DDL for Procedure NEW_PACKAGE_NAME
17945
--------------------------------------------------------
17946
set define off;
17947
 
5172 dpurdie 17948
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_PACKAGE_NAME" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
3959 dpurdie 17949
                                               retPKG_ID OUT NUMBER ) IS
1373 dpurdie 17950
/* ---------------------------------------------------------------------------
3959 dpurdie 17951
    Version: 3.0.0
1373 dpurdie 17952
   --------------------------------------------------------------------------- */
17953
 
3959 dpurdie 17954
    CURSOR packages_cur IS
17955
        SELECT pkg.pkg_id
17956
          FROM packages pkg
17957
         WHERE pkg.pkg_name = SSpkg_name;
17958
    packages_rec packages_cur%ROWTYPE;
1373 dpurdie 17959
 
17960
 
17961
BEGIN
17962
 
3959 dpurdie 17963
    /* ---------------------------------------------------- */
17964
    /* Find if package name exists                          */
17965
    /* ---------------------------------------------------- */
1373 dpurdie 17966
 
3959 dpurdie 17967
    OPEN packages_cur;
17968
    FETCH packages_cur INTO packages_rec;
1373 dpurdie 17969
 
3959 dpurdie 17970
    IF packages_cur%NOTFOUND
17971
    THEN
17972
        -- Create new pkg_name --
17973
        SELECT SEQ_PKG_ID.nextval INTO retPKG_ID FROM DUAL;
1373 dpurdie 17974
 
3959 dpurdie 17975
        INSERT INTO packages ( pkg_id, pkg_name )
17976
        VALUES ( retPKG_ID, SSpkg_name );
1373 dpurdie 17977
 
3959 dpurdie 17978
    ELSE
17979
        retPKG_ID := packages_rec.pkg_id;
1373 dpurdie 17980
 
3959 dpurdie 17981
    END IF;
1373 dpurdie 17982
 
17983
 
3959 dpurdie 17984
    CLOSE packages_cur;
1373 dpurdie 17985
 
3959 dpurdie 17986
END New_Package_Name;
4040 dpurdie 17987
 
1374 dpurdie 17988
/
4040 dpurdie 17989
--------------------------------------------------------
17990
--  DDL for Procedure NEW_PATCH
17991
--------------------------------------------------------
17992
set define off;
17993
 
5172 dpurdie 17994
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_PATCH" ( SSpatch_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
1373 dpurdie 17995
 	   	  		  					  	NNparent_id IN NUMBER,
17996
                                        sPatchIdList IN VARCHAR2,
17997
										NNuser_id IN NUMBER ) IS
17998
/* ---------------------------------------------------------------------------
17999
    Version: 3.5
18000
   --------------------------------------------------------------------------- */
18001
 
18002
    patchPv_id    NUMBER;
18003
	parPkg_id	  NUMBER;
18004
    LastInstallOrder NUMBER;
18005
    isPatchDlocked PACKAGE_VERSIONS.DLOCKED%TYPE;
18006
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
18007
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
18008
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
18009
	oPatchDepCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
18010
 
18011
	CURSOR parent_cur IS
18012
        SELECT pv.*, pkg.pkg_name
18013
          FROM package_versions pv,
18014
		       packages pkg
18015
         WHERE pv.pv_id = NNparent_id
18016
		   AND pv.pkg_id = pkg.pkg_id;
18017
    parent_rec parent_cur%ROWTYPE;
18018
 
18019
    CURSOR patch_cur IS
18020
        SELECT pv.*, pg.pkg_name
18021
          FROM package_versions pv,
18022
		       packages pg
18023
         WHERE pv.pkg_id = parPkg_id
18024
		   AND pv.pkg_version = SSpatch_version
18025
		   AND pv.pkg_id = pg.pkg_id;
18026
    patch_rec patch_cur%ROWTYPE;
18027
 
18028
	CURSOR releases_cur IS
18029
        SELECT rc.pv_id
18030
		  FROM release_content rc
18031
		 WHERE rc.pv_id = patch_rec.pv_id;
18032
    releases_rec releases_cur%ROWTYPE;
18033
 
18034
 
18035
BEGIN
18036
 
18037
	-- Get Last Install Order
18038
    SELECT Count(*) INTO LastInstallOrder
18039
	  FROM PACKAGE_PATCHES pp
18040
	 WHERE pp.PV_ID = NNparent_id;
18041
 
18042
 
18043
    -- Get parent details
18044
	OPEN parent_cur;
18045
    FETCH parent_cur INTO parent_rec;
18046
	parPkg_id := parent_rec.pkg_id;
18047
 
18048
 
18049
	-- Find if patch exists in database
18050
    OPEN patch_cur;
18051
    FETCH patch_cur INTO patch_rec;
18052
 
18053
 
18054
    -- Parent must be official
18055
    IF parent_rec.dlocked = 'Y' THEN
18056
 
18057
	    IF patch_cur%NOTFOUND
18058
	    THEN
18059
        	isPatchDlocked := 'N';
18060
 
18061
	        -- Create new patch version --
18062
	        SELECT SEQ_PV_ID.nextval INTO patchPv_id FROM DUAL;
18063
 
18064
 
18065
	        Split_version ( SSpatch_version, SSV_MM, SSV_NMM, SSV_EXT );
18066
 
18067
	        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 )
18068
				   VALUES (
18069
						   patchPv_id,
18070
	                       parPkg_id,
18071
	                       SSpatch_version,
18072
	                       isPatchDlocked,
18073
	                       ORA_SYSDATE,
18074
	                       NNuser_id,
18075
	                       ORA_SYSDATETIME,
18076
	                       NNuser_id,
18077
	                       SSV_MM,
18078
	                       SSV_NMM,
18079
	                       SSV_EXT,
18080
	                       parent_rec.src_path,
18081
	                       'This is a patch to ' || parent_rec.pkg_name || ' ' || parent_rec.pkg_version,
18082
	                       NNuser_id,
18083
						   'Y',
18084
                           patchPv_id,
18085
						   parent_rec.bs_id,
18086
						   parent_rec.is_autobuildable,
18087
						   parent_rec.ripple_field
6031 dpurdie 18088
 
1373 dpurdie 18089
						   );
18090
 
18091
			INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )
18092
		    	   ( SELECT NNparent_id AS pv_id,
18093
				            pv.pv_id AS patch_id,
18094
	                        LastInstallOrder + 1 AS INSTALL_ORDER
18095
				       FROM package_versions pv
18096
					  WHERE pv.pv_id = patchPv_id
18097
					    AND pv.is_patch = 'Y' );
18098
 
18099
	        /* LOG ACTION */
18100
            Log_Action ( patchPv_id, 'new_version', NNuser_id,
18101
        			     'Patch version created: '|| SSpatch_version );
18102
 
18103
        	Log_Action ( NNparent_id, 'patch_add', NNuser_id,
18104
        			     'New patch created and attached: '|| SSpatch_version );
18105
 
18106
 
18107
	    ELSE
18108
 
18109
		    patchPv_id := patch_rec.pv_id;
18110
	    	isPatchDlocked := patch_rec.dlocked;
18111
 
18112
			-- Find if pv_id exists in release content (i.e. it cannot be a patch)
18113
		    OPEN releases_cur;
18114
		    FETCH releases_cur INTO releases_rec;
18115
 
18116
			IF releases_cur%NOTFOUND
18117
	   		THEN
18118
				-- This pv_id is trully a patch, hence add Y to column IS_PATCH
18119
				UPDATE package_versions SET
18120
					   is_patch = 'Y'
18121
					   WHERE pv_id = patchPv_id;
18122
 
18123
				INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )
18124
			    	   ( SELECT NNparent_id AS pv_id,
18125
					            pv.pv_id AS patch_id,
18126
	                            LastInstallOrder + 1 AS INSTALL_ORDER
18127
					       FROM package_versions pv
18128
						  WHERE pv.pv_id = patchPv_id
18129
						    AND pv.is_patch = 'Y' );
18130
 
18131
			END IF;
18132
 
18133
			CLOSE releases_cur;
18134
 
18135
            /* LOG ACTION */
18136
        	Log_Action ( NNparent_id, 'patch_add', NNuser_id,
18137
        			     'Patch version was found and attached: '|| SSpatch_version );
18138
 
18139
	    END IF;
18140
 
18141
 
18142
 
18143
 
18144
    END IF;
18145
 
18146
 
18147
 
18148
    /* Create Patch Dependencies */
18149
    oPatchDepCollector := IN_LIST_NUMBER ( sPatchIdList );
18150
 
18151
 
18152
    -- Make sure patch is unofficial before altering its dependencies
18153
    IF (oPatchDepCollector.COUNT > 0) AND (isPatchDlocked = 'N') THEN
18154
    	-- Delete Existing Dependencies
18155
        DELETE
18156
          FROM PACKAGE_DEPENDENCIES dep
18157
         WHERE dep.PV_ID = patchPv_id;
18158
 
18159
 
18160
        -- Insert new dependencies
18161
        INSERT INTO PACKAGE_DEPENDENCIES ( PV_ID, DPV_ID, PKG_ID, DPKG_ID, BUILD_TYPE )
18162
        SELECT patchPv_id AS PV_ID,
18163
        	   pv.PV_ID AS DPV_ID,
18164
               parPkg_id AS PKG_ID,
18165
               pv.PKG_ID AS DPKG_ID,
18166
               'L' AS BUILD_TYPE
18167
          FROM PACKAGE_VERSIONS pv
18168
         WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPatchDepCollector AS RELMGR_NUMBER_TAB_t ) ) );
18169
 
18170
 
18171
    END IF;
18172
 
18173
 
18174
    CLOSE parent_cur;
18175
    CLOSE patch_cur;
18176
END New_Patch;
4040 dpurdie 18177
 
1374 dpurdie 18178
/
4040 dpurdie 18179
--------------------------------------------------------
18180
--  DDL for Procedure NEW_UNIT_TEST
18181
--------------------------------------------------------
18182
set define off;
18183
 
5172 dpurdie 18184
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_UNIT_TEST" ( nPv_id IN NUMBER,
3959 dpurdie 18185
                                            nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,
18186
                                            sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
18187
                                            sNumOfTest IN UNIT_TESTS.NUMOF_TEST%TYPE,
18188
                                            sDpkg_path IN VARCHAR2,
18189
                                            sResults IN VARCHAR2,
18190
                                            sCompletion_date IN VARCHAR2,
18191
                                            nCompleted_by IN NUMBER,
18192
											enumTEST_TYPE_AUTOMATIC IN NUMBER,
18193
											enumTEST_TYPE_NOT_DONE IN NUMBER,
18194
											outFileName OUT VARCHAR2
18195
                                           ) IS
18196
/* ---------------------------------------------------------------------------
18197
    Version: 3.2.0
18198
   --------------------------------------------------------------------------- */
1373 dpurdie 18199
 
3959 dpurdie 18200
   	FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
1373 dpurdie 18201
 
3959 dpurdie 18202
    newID NUMBER;
18203
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
18204
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
1373 dpurdie 18205
 
3959 dpurdie 18206
BEGIN
1373 dpurdie 18207
 
3959 dpurdie 18208
	-- Get new ID --
18209
   	SELECT SEQ_UNIT_TESTS.NEXTVAL INTO newID FROM DUAL;
1373 dpurdie 18210
 
3959 dpurdie 18211
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
18212
       	ResultsURL := sResults;
18213
       ELSE
18214
       	IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
18215
        	outFileName := FILENAME_PREFIX || newID ||'_'|| sResults;
18216
    		ResultsAttachment := sDpkg_path || '/' || outFileName;
18217
           END IF;
18218
       END IF;
1373 dpurdie 18219
 
3959 dpurdie 18220
	-- Remove NOT_DONE entry if exists
18221
	DELETE FROM UNIT_TESTS
18222
	 WHERE pv_id = nPv_id
18223
	   AND test_types_fk = enumTEST_TYPE_NOT_DONE;
1373 dpurdie 18224
 
3959 dpurdie 18225
	--- Add Additional Note ---
18226
    INSERT INTO UNIT_TESTS ( TEST_ID,
18227
								PV_ID,
18228
								TEST_TYPES_FK,
18229
								TEST_SUMMARY,
18230
								COMPLETION_DATE,
18231
								COMPLETED_BY,
18232
								RESULTS_URL,
18233
								RESULTS_ATTACHMENT_NAME,
18234
								NUMOF_TEST )
18235
    VALUES (
18236
       	newID,
18237
           nPv_id,
18238
           nTestTypeId,
18239
           sTest_summary,
18240
           TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
18241
           nCompleted_by,
18242
           ResultsURL,
18243
           ResultsAttachment,
18244
		   sNumOfTest );
1373 dpurdie 18245
 
3959 dpurdie 18246
END New_Unit_Test;
4040 dpurdie 18247
 
1374 dpurdie 18248
/
4040 dpurdie 18249
--------------------------------------------------------
18250
--  DDL for Procedure PAOLO_BUILD_TREE
18251
--------------------------------------------------------
18252
set define off;
18253
 
5172 dpurdie 18254
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."PAOLO_BUILD_TREE" ( nRtag_id IN NUMBER ) IS
1373 dpurdie 18255
 
3959 dpurdie 18256
    sessionNumber NUMBER := 0;
6031 dpurdie 18257
    iteration NUMBER := 1;
3959 dpurdie 18258
    rowCnt NUMBER := 0;
18259
    maxIterations 	NUMBER := 50;
6031 dpurdie 18260
 
1373 dpurdie 18261
BEGIN
6031 dpurdie 18262
 
18263
 
3959 dpurdie 18264
    INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
18265
    SELECT sessionNumber, iteration, rc.PV_ID
18266
      FROM RELEASE_CONTENT rc
18267
     WHERE rc.RTAG_ID = nRtag_id;
6031 dpurdie 18268
 
3959 dpurdie 18269
    iteration := iteration + 1;
18270
    LOOP
6031 dpurdie 18271
 
3959 dpurdie 18272
        INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
6031 dpurdie 18273
		SELECT sessionNumber,
3959 dpurdie 18274
               iteration,
18275
               dep.DPV_ID
18276
          FROM TEMP_TREE_BROWSE ttb,
18277
               PACKAGE_DEPENDENCIES dep
6031 dpurdie 18278
         WHERE dep.PV_ID = ttb.PV_ID
18279
           AND ttb.LEVEL_NUM = iteration - 1
18280
 
18281
         MINUS
18282
 
3959 dpurdie 18283
        SELECT sessionNumber, iteration, ttb.PV_ID
6031 dpurdie 18284
          FROM TEMP_TREE_BROWSE ttb;
18285
 
18286
 
18287
 
18288
 
3959 dpurdie 18289
		rowCnt := SQL%ROWCOUNT;
18290
		IF rowCnt > 0 THEN
18291
           iteration := iteration + 1;
18292
		END IF;
18293
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
6031 dpurdie 18294
    END LOOP;
18295
 
3959 dpurdie 18296
END PAOLO_Build_Tree;
4040 dpurdie 18297
 
1374 dpurdie 18298
/
4040 dpurdie 18299
--------------------------------------------------------
5384 dpurdie 18300
--  DDL for Procedure REBUILD_DEPRECATE_STATE
18301
--------------------------------------------------------
18302
set define off;
18303
 
6031 dpurdie 18304
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REBUILD_DEPRECATE_STATE" ( nRtagId IN INT ) AS
5384 dpurdie 18305
BEGIN
6031 dpurdie 18306
 
5384 dpurdie 18307
  --  Clear the 'calculated' values from the Release Conetnts
18308
  --
18309
  UPDATE RELEASE_CONTENT
18310
      SET DEPRECATED_STATE = NULL
18311
  WHERE RTAG_ID =  nRtagId
6031 dpurdie 18312
  AND DEPRECATED_STATE != 6
5384 dpurdie 18313
  AND DEPRECATED_STATE is NOT NULL;
6031 dpurdie 18314
 
5384 dpurdie 18315
  --
18316
  --  Insert new calculated values into the table
18317
  --  Use of 'AAA' speeds up the CONNECT BY PRIOR query (lots)
18318
  UPDATE RELEASE_CONTENT
18319
      SET DEPRECATED_STATE = 7
18320
  WHERE RTAG_ID =  nRtagId
18321
  AND DEPRECATED_STATE is null
18322
  AND PV_ID in (
18323
        WITH AAA AS
18324
          (SELECT pd.*
18325
          FROM PACKAGE_DEPENDENCIES pd,
18326
            RELEASE_CONTENT RC1
18327
          WHERE rc1.rtag_id = nRtagId
18328
          AND RC1.PV_ID     = pd.PV_ID
18329
          )
18330
      SELECT DISTINCT qry.PV_ID
18331
      FROM
18332
        (SELECT dep.*,
18333
          LEVEL AS LEVEL_NUM
18334
        FROM AAA dep
6031 dpurdie 18335
          START WITH dep.DPV_ID IN (
5384 dpurdie 18336
                SELECT rc.pv_id as pv_id
18337
                FROM RELEASE_CONTENT rc
18338
                WHERE rc.rtag_id  = nRtagId
18339
                AND rc.DEPRECATED_STATE = 6 )
18340
          CONNECT BY PRIOR dep.PV_ID = dep.DPV_ID
18341
        ) qry,
18342
        PACKAGES pkg,
18343
        PACKAGE_VERSIONS pv,
18344
        RELEASE_CONTENT rc
18345
      WHERE qry.PV_ID          = pv.PV_ID
18346
      AND pv.PKG_ID            = pkg.PKG_ID
18347
      AND rc.RTAG_ID           = nRtagId
18348
      AND rc.PV_ID             = qry.PV_ID
18349
      );
18350
END REBUILD_DEPRECATE_STATE;
18351
 
18352
/
18353
--------------------------------------------------------
4040 dpurdie 18354
--  DDL for Procedure REBUILD_ENVIRONMENT
18355
--------------------------------------------------------
18356
set define off;
18357
 
5172 dpurdie 18358
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REBUILD_ENVIRONMENT" ( NNrtag_id IN NUMBER ) IS
5384 dpurdie 18359
  --
18360
  --  Recalculate the package_state
18361
  --  Triggered by the Web Interface
18362
  --
1373 dpurdie 18363
    rowCnt NUMBER := 0;
18364
    iteration NUMBER := 2;          -- Iterations counter
5384 dpurdie 18365
    maxIterations NUMBER := 30;     -- Maximum number of iterations allowed.
1373 dpurdie 18366
                                    -- This will prevent infinite loops if cyrcular dependencies are found
18367
    sessionNum NUMBER;
18368
BEGIN
18369
    SELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;
18370
 
18371
 
18372
    -- Redo Patch Ignore warnings
18373
    Ignore_Dependency_Warnings ( NNrtag_id, NULL, NULL, TRUE );
18374
 
5384 dpurdie 18375
    Level_One_Conflicts ( NNrtag_id, sessionNum );
18376
    --commit;
1373 dpurdie 18377
 
18378
    LOOP
18379
        Level_N_Conflicts ( NNrtag_id, sessionNum, rowCnt, iteration );
5384 dpurdie 18380
        --commit;
1373 dpurdie 18381
        iteration := iteration + 1;
18382
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
18383
    END LOOP;
6031 dpurdie 18384
 
1373 dpurdie 18385
    Update_Package_States ( NNrtag_id, sessionNum );
18386
 
5384 dpurdie 18387
    DELETE FROM temp_env_states WHERE session_num = sessionNum;
18388
    DELETE FROM TEMP_ENV_DEPS WHERE session_num = sessionNum;
1373 dpurdie 18389
 
18390
    -- Flag Packages with New Patches Available
6600 dpurdie 18391
        -- Temp deleted 28-Mar-2017
18392
    -- Reason: It takes a very long time and we dont use patches any more
18393
    -- Check_New_Patches ( NNrtag_id );
6031 dpurdie 18394
 
1373 dpurdie 18395
	Clean_Do_Not_Ripple( NNrtag_id );
18396
 
18397
 
18398
	/* Circular Dependency Flag */
18399
    /*
18400
	IF iteration > maxIterations
18401
	THEN
18402
		UPDATE release_tags SET
18403
		   	   circular_dependency = 'Y'
18404
		 WHERE rtag_id = NNrtag_id;
18405
	ELSE
18406
		UPDATE release_tags SET
18407
		   	   circular_dependency = NULL
18408
		 WHERE rtag_id = NNrtag_id;
18409
	END IF;
18410
    */
18411
END Rebuild_Environment;
4040 dpurdie 18412
 
1374 dpurdie 18413
/
4040 dpurdie 18414
--------------------------------------------------------
18415
--  DDL for Procedure REMOVE_COMPONENTS
18416
--------------------------------------------------------
18417
set define off;
18418
 
5172 dpurdie 18419
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_COMPONENTS" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE ) IS
3959 dpurdie 18420
/* ---------------------------------------------------------------------------
18421
    Version: 3.0.0
18422
   --------------------------------------------------------------------------- */
18423
 
18424
 
18425
BEGIN
18426
 
18427
	 --- Delete From RELEASE_COMPONENTS
18428
	 DELETE FROM RELEASE_COMPONENTS
18429
	 WHERE PV_ID = nPvId;
18430
 
18431
END Remove_Components;
4040 dpurdie 18432
 
3959 dpurdie 18433
/
4040 dpurdie 18434
--------------------------------------------------------
18435
--  DDL for Procedure REMOVE_DOCUMENT
18436
--------------------------------------------------------
18437
set define off;
18438
 
5172 dpurdie 18439
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_DOCUMENT" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 18440
											  nDocId IN PACKAGE_DOCUMENTS.DOC_ID%TYPE,
18441
                                              nUserId IN NUMBER ) IS
18442
/* ---------------------------------------------------------------------------
18443
    Version: 3.0
18444
   --------------------------------------------------------------------------- */
18445
 
18446
   DocNumber PACKAGE_DOCUMENTS.DOC_NUM%TYPE;
18447
 
18448
BEGIN
18449
 
18450
	-- Get Doc Num
18451
    SELECT pd.DOC_NUM INTO DocNumber
18452
      FROM PACKAGE_DOCUMENTS pd
18453
     WHERE pd.PV_ID = nPvId
18454
       AND pd.DOC_ID = nDocId;
18455
 
18456
 
18457
	-- Delete Document
18458
    DELETE
18459
      FROM PACKAGE_DOCUMENTS pd
18460
     WHERE pd.PV_ID = nPvId
18461
       AND pd.DOC_ID = nDocId;
18462
 
18463
 
18464
    /* LOG ACTION */
18465
   	Log_Action ( nPvId, 'document_remove', nUserId,
18466
   			     'Document number: '|| DocNumber );
18467
 
18468
 
18469
END Remove_Document;
4040 dpurdie 18470
 
3959 dpurdie 18471
/
4040 dpurdie 18472
--------------------------------------------------------
18473
--  DDL for Procedure REMOVE_PACKAGE_INTEREST
18474
--------------------------------------------------------
18475
set define off;
18476
 
5172 dpurdie 18477
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PACKAGE_INTEREST" (nProjId IN PROJECTS.PROJ_ID%TYPE,
3959 dpurdie 18478
	   	  		  								  	nPkgId IN PACKAGES.PKG_ID%TYPE,
18479
												  	nUserId IN NUMBER
18480
	   	  		  									) IS
18481
 
1373 dpurdie 18482
/******************************************************************************
3959 dpurdie 18483
   NAME:       REMOVE_PACKAGE_INTEREST
18484
   PURPOSE:    To remove interest in a given package per project
1373 dpurdie 18485
 
18486
   REVISIONS:
18487
   Ver        Date        Author           Description
18488
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 18489
   1.0        12/05/2006  Rupesh Solanki      1. Created this procedure.
1373 dpurdie 18490
 
18491
   NOTES:
18492
 
18493
   Automatically available Auto Replace Keywords:
3959 dpurdie 18494
      Object Name:     REMOVE_PACKAGE_INTEREST
18495
      Sysdate:         12/05/2006
18496
      Date and Time:   12/05/2006, 11:28:50 AM, and 12/05/2006 11:28:50 AM
1373 dpurdie 18497
      Username:         (set in TOAD Options, Procedure Editor)
18498
      Table Name:       (set in the "New PL/SQL Object" dialog)
18499
 
18500
******************************************************************************/
18501
BEGIN
18502
 
3959 dpurdie 18503
	 --Delete from PACKAGE_INTEREST
18504
	 DELETE FROM PACKAGE_INTEREST
18505
	 WHERE PROJ_ID = nProjId
18506
	 AND PKG_ID = nPkgId
18507
	 AND USER_ID = nUserId;
6031 dpurdie 18508
 
3959 dpurdie 18509
END REMOVE_PACKAGE_INTEREST;
4040 dpurdie 18510
 
1374 dpurdie 18511
/
4040 dpurdie 18512
--------------------------------------------------------
18513
--  DDL for Procedure REMOVE_PATCH
18514
--------------------------------------------------------
18515
set define off;
18516
 
5172 dpurdie 18517
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PATCH" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
3959 dpurdie 18518
										   nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
18519
                                           nUserId IN NUMBER ) IS
1373 dpurdie 18520
/* ---------------------------------------------------------------------------
3959 dpurdie 18521
    Version: 4.0
1373 dpurdie 18522
   --------------------------------------------------------------------------- */
18523
 
3959 dpurdie 18524
PatchVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
1373 dpurdie 18525
 
3959 dpurdie 18526
CURSOR curPatch IS
18527
	SELECT pp.PV_ID,
18528
		   pp.PATCH_ID,
18529
	       ROWNUM AS NEW_INSTALL_ORDER
18530
	  FROM PACKAGE_PATCHES pp
18531
	 WHERE pp.PV_ID = nPvId
18532
	ORDER BY pp.INSTALL_ORDER;
18533
recPatch curPatch%ROWTYPE;
18534
 
1373 dpurdie 18535
BEGIN
18536
 
3959 dpurdie 18537
	 -- Delete Patch
18538
     DELETE
18539
       FROM PACKAGE_PATCHES pp
18540
      WHERE pp.PV_ID = nPvId
18541
        AND pp.PATCH_ID = nPatchId;
1373 dpurdie 18542
 
18543
 
3959 dpurdie 18544
	-- Redo Install Order
18545
    OPEN curPatch;
18546
	FETCH curPatch INTO recPatch;
18547
 
18548
	WHILE curPatch%FOUND
18549
	LOOP
18550
 
18551
		UPDATE PACKAGE_PATCHES pp SET
18552
			pp.INSTALL_ORDER = recPatch.NEW_INSTALL_ORDER
18553
		WHERE pp.PV_ID = nPvId
18554
		  AND pp.PATCH_ID = recPatch.PATCH_ID;
18555
 
18556
		FETCH curPatch INTO recPatch;
18557
	END LOOP;
18558
 
18559
	CLOSE curPatch;
18560
 
18561
 
18562
 
18563
 
18564
    /* LOG ACTION */
18565
    SELECT pv.PKG_VERSION INTO PatchVersion
1373 dpurdie 18566
      FROM PACKAGE_VERSIONS pv
3959 dpurdie 18567
     WHERE pv.PV_ID = nPatchId;
1373 dpurdie 18568
 
3959 dpurdie 18569
   	Log_Action ( nPvId, 'patch_remove', nUserId,
18570
   			     'Version: '|| PatchVersion );
1373 dpurdie 18571
 
3959 dpurdie 18572
END Remove_Patch;
4040 dpurdie 18573
 
1374 dpurdie 18574
/
4040 dpurdie 18575
--------------------------------------------------------
18576
--  DDL for Procedure REMOVE_PROJECT_VIEW_OWNER
18577
--------------------------------------------------------
18578
set define off;
18579
 
5172 dpurdie 18580
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PROJECT_VIEW_OWNER" (nProjId IN NUMBER,
3959 dpurdie 18581
	   	  		  						 			  nViewId IN NUMBER,
18582
										 			  sUserIdList IN VARCHAR2,
18583
										 			  nUserId IN NUMBER ) IS
1373 dpurdie 18584
 
6031 dpurdie 18585
GroupId NUMBER;
3959 dpurdie 18586
 
6031 dpurdie 18587
 
18588
 
1373 dpurdie 18589
/******************************************************************************
3959 dpurdie 18590
   NAME:       UPDATE_VIEW
6031 dpurdie 18591
   PURPOSE:
1373 dpurdie 18592
 
18593
   REVISIONS:
3959 dpurdie 18594
   Ver        Date        Author           		Description
1373 dpurdie 18595
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 18596
   1.0        10/04/2006     Rupesh Solanki     1. Created this procedure.
1373 dpurdie 18597
 
18598
   NOTES:
18599
 
18600
   Automatically available Auto Replace Keywords:
3959 dpurdie 18601
      Object Name:     UPDATE_VIEW
18602
      Sysdate:         10/04/2006
18603
      Date and Time:   10/04/2006, 1:55:19 PM, and 10/04/2006 1:55:19 PM
1373 dpurdie 18604
      Username:         (set in TOAD Options, Procedure Editor)
18605
      Table Name:       (set in the "New PL/SQL Object" dialog)
18606
 
18607
******************************************************************************/
18608
 
18609
BEGIN
3959 dpurdie 18610
	 SELECT GROUP_EMAIL_ID into GroupId
18611
	 FROM AUTOBUILD_FAILURE
18612
	 WHERE PROJ_ID = nProjId
18613
	 AND VIEW_ID = nViewId;
6031 dpurdie 18614
 
3959 dpurdie 18615
	 DELETE FROM MEMBERS_GROUP
18616
	 WHERE GROUP_EMAIL_ID = GroupId
18617
	 AND USER_ID IN (
6031 dpurdie 18618
	 SELECT * FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
3959 dpurdie 18619
	 );
1373 dpurdie 18620
 
6031 dpurdie 18621
 
18622
 
3959 dpurdie 18623
END REMOVE_PROJECT_VIEW_OWNER;
4040 dpurdie 18624
 
3959 dpurdie 18625
/
4040 dpurdie 18626
--------------------------------------------------------
18627
--  DDL for Procedure REMOVE_RELEASE_CONTENT
18628
--------------------------------------------------------
18629
set define off;
18630
 
5172 dpurdie 18631
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_RELEASE_CONTENT" ( sPvIdList IN VARCHAR2,
3959 dpurdie 18632
													 sNotPvIdList IN VARCHAR2,
18633
                                                     nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS
18634
/* ---------------------------------------------------------------------------
18635
    Version: 3.0
18636
   --------------------------------------------------------------------------- */
1373 dpurdie 18637
 
3959 dpurdie 18638
oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
18639
oNotPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
1373 dpurdie 18640
 
3959 dpurdie 18641
BEGIN
18642
	oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
18643
    oNotPvIdCollector := IN_LIST_NUMBER ( sNotPvIdList );
18644
 
18645
    -- Delete From Release Content
18646
    DELETE
18647
      FROM RELEASE_CONTENT
18648
	 WHERE rtag_id = nRTagId
18649
	   AND pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
18650
	   AND NOT pv_id IN ( SELECT * FROM TABLE ( CAST ( oNotPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
18651
 
18652
 
18653
 
18654
END Remove_Release_Content;
4040 dpurdie 18655
 
1374 dpurdie 18656
/
4040 dpurdie 18657
--------------------------------------------------------
18658
--  DDL for Procedure REMOVE_RUNTIME
18659
--------------------------------------------------------
18660
set define off;
18661
 
5172 dpurdie 18662
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_RUNTIME" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 18663
											 nRuntimeId IN RUNTIME_DEPENDENCIES.RTD_ID%TYPE,
18664
                                             nUserId IN NUMBER ) IS
18665
/* ---------------------------------------------------------------------------
18666
    Version: 3.0
18667
   --------------------------------------------------------------------------- */
18668
 
18669
   RuntimeDependency VARCHAR2(4000);
18670
 
18671
BEGIN
18672
 
18673
	-- Get Runtime dependency
18674
    SELECT pkg.PKG_NAME ||' '|| pv.PKG_VERSION  INTO RuntimeDependency
18675
	  FROM RUNTIME_DEPENDENCIES rtd,
18676
	  	   PACKAGES pkg,
18677
	       PACKAGE_VERSIONS pv
18678
	 WHERE rtd.PV_ID = nPvId
18679
	   AND pv.PKG_ID = pkg.PKG_ID
18680
	   AND rtd.RTD_ID = pv.PV_ID
18681
	   AND rtd.RTD_ID = nRuntimeId;
18682
 
18683
 
18684
	-- Delete Document
18685
    DELETE
18686
      FROM RUNTIME_DEPENDENCIES rtd
18687
     WHERE rtd.PV_ID = nPvId
18688
       AND rtd.RTD_ID = nRuntimeId;
18689
 
18690
 
18691
    /* LOG ACTION */
18692
   	Log_Action ( nPvId, 'runtime_remove', nUserId,
18693
   			     'Runtime package: '|| RuntimeDependency );
18694
 
18695
 
18696
END Remove_Runtime;
4040 dpurdie 18697
 
3959 dpurdie 18698
/
4040 dpurdie 18699
--------------------------------------------------------
18700
--  DDL for Procedure RENAME_PACKAGE_VERSION
18701
--------------------------------------------------------
18702
set define off;
18703
 
5172 dpurdie 18704
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RENAME_PACKAGE_VERSION" ( NNpv_id IN NUMBER,
4211 dpurdie 18705
                                  SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
18706
                                  cBuildType IN CHAR,
18707
                                  cChangeType IN CHAR,
18708
                                  NNuser_id IN NUMBER,
18709
                                  errMessage OUT VARCHAR2 ) IS
3959 dpurdie 18710
/* ---------------------------------------------------------------------------
18711
    Version: 3.2
18712
   --------------------------------------------------------------------------- */
18713
 
18714
    sPackageVersion VARCHAR2(4000);
4211 dpurdie 18715
    sLabel VARCHAR2(4000) := NULL;
18716
    sChangeType VARCHAR2(100) := NULL;
18717
    uChangeType CHAR := cChangeType;
3959 dpurdie 18718
    OldPkgVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
18719
 
18720
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
18721
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
18722
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
18723
 
18724
    CURSOR package_versions_cur IS
18725
        SELECT pv_id
4211 dpurdie 18726
          FROM package_versions
18727
         WHERE pkg_id IN ( SELECT pkg_id FROM package_versions WHERE pv_id = NNpv_id )
18728
           AND pkg_version = SSpkg_version;
3959 dpurdie 18729
    package_versions_rec package_versions_cur%ROWTYPE;
18730
 
18731
 
18732
BEGIN
18733
 
18734
    /* ---------------------------------------------------- */
18735
    /* Find if package_version exists                       */
18736
    /* ---------------------------------------------------- */
18737
 
4211 dpurdie 18738
    errMessage := NULL;
3959 dpurdie 18739
 
4211 dpurdie 18740
    -- Get previous version
18741
    SELECT pv.PKG_VERSION INTO OldPkgVersion
3959 dpurdie 18742
      FROM PACKAGE_VERSIONS pv
18743
     WHERE pv.PV_ID = NNpv_id;
18744
 
4211 dpurdie 18745
    sPackageVersion := SSpkg_version;
3959 dpurdie 18746
 
4211 dpurdie 18747
    IF OldPkgVersion != sPackageVersion THEN
3959 dpurdie 18748
 
4211 dpurdie 18749
        OPEN package_versions_cur;
18750
        FETCH package_versions_cur INTO package_versions_rec;
3959 dpurdie 18751
 
4211 dpurdie 18752
        IF package_versions_cur%NOTFOUND
18753
        THEN
3959 dpurdie 18754
 
4211 dpurdie 18755
            -- Split current version in parts
18756
            Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
3959 dpurdie 18757
 
18758
 
4211 dpurdie 18759
                -- Automated built config
18760
                IF ( cBuildType = 'M' ) THEN
18761
                    uChangeType := 'F';
6031 dpurdie 18762
                END IF;
18763
 
4211 dpurdie 18764
                -- Automated version numbering
18765
                -- Make sure that version is still unique
18766
                IF (uChangeType != 'F') THEN
18767
                    sPackageVersion := '('|| NNpv_id ||')'|| SSV_EXT;
18768
                END IF;
3959 dpurdie 18769
 
4211 dpurdie 18770
                -- Packge version not found, hence rename it.
18771
                UPDATE package_versions
18772
                   SET pkg_version = sPackageVersion,
18773
                       v_mm = SSV_MM,
18774
                       v_nmm = SSV_NMM,
18775
                       v_ext = SSV_EXT,
18776
                       modified_stamp = ORA_SYSDATETIME,
18777
                       modifier_id = NNuser_id,
18778
                       build_type = cBuildType,
18779
                       change_type = uChangeType,
18780
                       pkg_label = NULL
18781
                 WHERE pv_id = NNpv_id;
6031 dpurdie 18782
 
4211 dpurdie 18783
                sLabel := GET_AUTOMATED_LABEL( NNpv_id );
18784
                UPDATE PACKAGE_VERSIONS pv SET
18785
                    pv.PKG_LABEL = sLabel
18786
                WHERE pv_id = NNpv_id;
3959 dpurdie 18787
 
18788
 
4211 dpurdie 18789
              /* LOG ACTION */
18790
              IF (cChangeType = 'F') THEN
18791
                  Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| sPackageVersion );
6031 dpurdie 18792
              ELSE
18793
 
4211 dpurdie 18794
                  IF cChangeType = 'M' THEN
18795
                    sChangeType := 'Major Change';
6031 dpurdie 18796
                  ELSIF cChangeType = 'N' THEN
4211 dpurdie 18797
                    sChangeType := 'Minor Change';
6031 dpurdie 18798
                  ELSIF cChangeType = 'P' THEN
4211 dpurdie 18799
                    sChangeType := 'Patch Change';
18800
                  ELSE
18801
                    sChangeType := 'Unknown Change';
18802
                  END IF;
3959 dpurdie 18803
 
4211 dpurdie 18804
                  Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| sPackageVersion || ',' || sChangeType );
18805
              END IF;
3959 dpurdie 18806
 
4211 dpurdie 18807
        ELSE
18808
            -- Package version exists. Cannot proceed.
18809
            errMessage := 'enum_MSG_VERSION_EXISTS';
3959 dpurdie 18810
 
4211 dpurdie 18811
        END IF;
3959 dpurdie 18812
 
4211 dpurdie 18813
        CLOSE package_versions_cur;
3959 dpurdie 18814
 
4211 dpurdie 18815
    END IF;
3959 dpurdie 18816
 
18817
END Rename_Package_Version;
4040 dpurdie 18818
 
3959 dpurdie 18819
/
4040 dpurdie 18820
--------------------------------------------------------
18821
--  DDL for Procedure RESET_IGNORE_WARNINGS
18822
--------------------------------------------------------
18823
set define off;
18824
 
5172 dpurdie 18825
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RESET_IGNORE_WARNINGS" ( sPvIdList IN VARCHAR2,
3959 dpurdie 18826
                                                    nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS
18827
/* ---------------------------------------------------------------------------
18828
    Version: 5.0
18829
   --------------------------------------------------------------------------- */
18830
 
18831
oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
18832
 
18833
BEGIN
18834
	oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
18835
 
18836
    -- Remove Ignore Warnings
18837
     DELETE
18838
       FROM ignore_warnings
18839
	  WHERE (rtag_id, pv_id, dpv_id) IN
18840
	     (
18841
	      SELECT igw.rtag_id, igw.pv_id, igw.dpv_id
18842
	        FROM ignore_warnings igw,
18843
	             package_versions dpv,
18844
	             package_versions pv
18845
	       WHERE igw.dpv_id = dpv.pv_id
18846
	         AND igw.rtag_id = nRTagId
18847
	         AND dpv.pkg_id = pv.pkg_id
18848
	         AND NVL(dpv.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|')
18849
	         AND pv.pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
18850
         );
18851
 
18852
END Reset_Ignore_Warnings;
4040 dpurdie 18853
 
3959 dpurdie 18854
/
4040 dpurdie 18855
--------------------------------------------------------
18856
--  DDL for Procedure RIPPLE_PACKAGE
18857
--------------------------------------------------------
18858
set define off;
18859
 
5172 dpurdie 18860
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RIPPLE_PACKAGE" (
3959 dpurdie 18861
        sPvIdList IN VARCHAR2,
18862
        nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
18863
        nUserId IN NUMBER
18864
    ) IS
18865
/* ---------------------------------------------------------------------------
18866
    Version: 4.1
18867
   --------------------------------------------------------------------------- */
18868
 
18869
BEGIN
18870
 
18871
    IF (sPvIdList IS NULL) THEN
18872
        RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
18873
    END IF;
18874
 
18875
    -- Ripple Package
18876
    DELETE FROM DO_NOT_RIPPLE
18877
    WHERE RTAG_ID = nRtagId
18878
    AND PV_ID IN (
18879
        SELECT *
18880
        FROM THE (
18881
            SELECT CAST( IN_LIST_NUMBER( sPvIdList )
18882
            AS RELMGR_NUMBER_TAB_t )
18883
            FROM DUAL
18884
        )
18885
    );
18886
 
5172 dpurdie 18887
    -- Mark Release Changed for build
18888
    PK_RELEASE.SET_RELEASE_MODIFIED(nRtagId);
6031 dpurdie 18889
 
3959 dpurdie 18890
    /* LOG ACTION */
18891
    Log_Action_Bulk ( sPvIdList, 'ripple_package', nUserId );
18892
 
18893
END Ripple_Package;
4040 dpurdie 18894
 
3959 dpurdie 18895
/
4040 dpurdie 18896
--------------------------------------------------------
18897
--  DDL for Procedure SEED_PACKAGE_NAMES_VERSIONS
18898
--------------------------------------------------------
18899
set define off;
18900
 
5172 dpurdie 18901
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
4585 dpurdie 18902
                                          SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
18903
                                          NNuser_id IN NUMBER,
18904
                                          retPV_ID OUT NUMBER,
18905
                                          nCloneFromPvId IN NUMBER DEFAULT NULL,
6031 dpurdie 18906
                                          nBuildType IN CHAR DEFAULT 'U',
4585 dpurdie 18907
                                          nChangeType IN CHAR DEFAULT 'F') IS
3959 dpurdie 18908
/* ---------------------------------------------------------------------------
5172 dpurdie 18909
    Version: 5.0
3959 dpurdie 18910
   --------------------------------------------------------------------------- */
18911
 
18912
    parPkg_id   NUMBER;
18913
    parPv_id    NUMBER;
18914
    cloneFrom_pv_id NUMBER;
18915
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
18916
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
18917
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
18918
    spackageversion VARCHAR2 (4000);
4211 dpurdie 18919
    slabel VARCHAR2 (4000) := NULL;
6031 dpurdie 18920
 
3959 dpurdie 18921
    CURSOR packages_cur IS
18922
        SELECT pkg_id FROM PACKAGES
18923
        WHERE pkg_name = SSpkg_name;
18924
    packages_rec packages_cur%ROWTYPE;
18925
 
18926
    CURSOR package_versions_cur IS
18927
        SELECT pv_id FROM PACKAGE_VERSIONS
18928
        WHERE pkg_id = parPkg_id
18929
        AND pkg_version = SSpkg_version;
18930
    package_versions_rec package_versions_cur%ROWTYPE;
18931
 
18932
    CURSOR clone_package_versions_cur IS
18933
        SELECT MAX(pv_id) AS pv_id
18934
          FROM PACKAGE_VERSIONS
18935
         WHERE pkg_id = parPkg_id
18936
           AND NVL(v_ext,'LINK_A_NULL') = NVL(SSV_EXT,'LINK_A_NULL');
18937
    clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
18938
 
18939
BEGIN
18940
    /* -------------------------------------------- */
18941
    /* Find if pkg_name exists and seed if required */
18942
    /* -------------------------------------------- */
18943
    OPEN packages_cur;
18944
    FETCH packages_cur INTO packages_rec;
18945
 
18946
    IF packages_cur%NOTFOUND
18947
    THEN
18948
        /* INSERT into packages table */
18949
        SELECT SEQ_PKG_ID.NEXTVAL INTO parPkg_id FROM DUAL;
18950
        INSERT INTO PACKAGES ( pkg_id, pkg_name ) VALUES ( parPkg_id, SSpkg_name );
18951
 
18952
    ELSE
18953
        parPkg_id := packages_rec.pkg_id;
18954
 
18955
    END IF;
18956
 
18957
    CLOSE packages_cur;
18958
 
18959
 
18960
    /* ---------------------------------------------------- */
18961
    /* Find if package_version exists and seed if required  */
18962
    /* ---------------------------------------------------- */
18963
    OPEN package_versions_cur;
18964
    FETCH package_versions_cur INTO package_versions_rec;
18965
 
18966
    IF package_versions_cur%NOTFOUND
18967
    THEN
18968
        SELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;
18969
 
18970
        /* Generate automated version Number */
18971
        Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
18972
        spackageversion := SSpkg_version;
6031 dpurdie 18973
 
4211 dpurdie 18974
        IF ( nChangeType <> 'F' )
3959 dpurdie 18975
        THEN
18976
            spackageversion := '(' || parPv_id || ')' || SSV_EXT;
18977
        END If;
18978
 
4585 dpurdie 18979
        /*  Determine clone source for new package-version
18980
            Use nCloneFromPvId - iff provided
18981
            Use most recently created pkgName/pkgExtension - if it exists
18982
            Else create a brand new package-version
18983
        */
3959 dpurdie 18984
 
4585 dpurdie 18985
        IF ( NOT nCloneFromPvId IS NULL) THEN
18986
            cloneFrom_pv_id := nCloneFromPvId;
18987
        ELSE
18988
            /* Find similar pkg_name + ext to clone from */
18989
            OPEN clone_package_versions_cur;
18990
            FETCH clone_package_versions_cur INTO clone_package_versions_rec;
18991
            CLOSE clone_package_versions_cur;
3959 dpurdie 18992
 
4585 dpurdie 18993
            IF ( NOT clone_package_versions_rec.pv_id IS NULL) THEN
18994
                cloneFrom_pv_id := clone_package_versions_rec.pv_id;
3959 dpurdie 18995
            ELSE
4585 dpurdie 18996
                cloneFrom_pv_id := NULL;
3959 dpurdie 18997
            END IF;
18998
 
4585 dpurdie 18999
        END IF;
19000
 
19001
        IF NOT cloneFrom_pv_id IS NULL
19002
        THEN
3959 dpurdie 19003
            -- Clone Package Version Details --
19004
            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,
19005
                                           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  )
19006
                SELECT parPv_id         AS pv_id,
19007
                       parPkg_id        AS pkg_id,
19008
                       spackageversion  AS pkg_version,
19009
                       'N'              AS dlocked,
19010
                       Ora_Sysdate      AS created_stamp,
19011
                       NNuser_id        AS creator_id,
19012
                       Ora_Sysdatetime  AS modified_stamp,
19013
                       NNuser_id        AS modifier_id,
19014
                       SSV_MM           AS V_MM,
19015
                       SSV_NMM          AS V_NMM,
19016
                       SSV_EXT          AS V_EXT,
19017
                       pv.src_path,
19018
                       pv.pv_description,
19019
                       pv.PV_OVERVIEW,
19020
                       cloneFrom_pv_id  AS LAST_PV_ID,
19021
                       pv.owner_id,
19022
                       nBuildType       AS BUILD_TYPE,
19023
                       pv.IS_BUILD_ENV_REQUIRED,
19024
                       pv.BS_ID,
19025
                       pv.is_autobuildable,
6031 dpurdie 19026
                       pv.IS_DEPLOYABLE,
3959 dpurdie 19027
                       pv.ripple_field,
19028
                       nChangeType       AS change_type
19029
                  FROM PACKAGE_VERSIONS pv
19030
                 WHERE pv.pv_id = cloneFrom_pv_id;
19031
 
19032
            Basic_Clone ( cloneFrom_pv_id, parPv_id, NULL, NNuser_id, parPkg_id, 0 );
19033
 
19034
        ELSE
19035
            /* BRAND NEW version + ext */
19036
            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 )
19037
            VALUES (
19038
                    parPv_id,
19039
                    parPkg_id,
19040
                    spackageversion,
19041
                    'N',
19042
                    Ora_Sysdate,
19043
                    NNuser_id,
19044
                    Ora_Sysdatetime,
19045
                    NNuser_id,
19046
                    SSV_MM,
19047
                    SSV_NMM,
19048
                    SSV_EXT,
19049
                    NNuser_id,
19050
                    parPv_id,
19051
                    nBuildType,
19052
                    'b',
19053
                    nChangeType
19054
                   );
19055
        END IF;
19056
 
4211 dpurdie 19057
        /* Insert initial package label */
19058
        slabel := get_automated_label (parPv_id);
19059
        UPDATE package_versions pv
19060
        SET pv.pkg_label = slabel
19061
        WHERE pv.pv_id = parPv_id;
19062
 
3959 dpurdie 19063
        retPV_ID := parPv_id;
6031 dpurdie 19064
 
19065
        /* LOG ACTION */
19066
        Log_Action ( parPv_id, 'new_version', NNuser_id,
19067
                     'New package version: '|| spackageversion );
3959 dpurdie 19068
 
19069
    ELSE
19070
        retPV_ID := package_versions_rec.pv_id;
19071
 
19072
    END IF;
19073
 
19074
    CLOSE package_versions_cur;
19075
 
19076
END Seed_Package_Names_Versions;
4040 dpurdie 19077
 
3959 dpurdie 19078
/
5892 dpurdie 19079
 
19080
  GRANT EXECUTE ON "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 19081
--------------------------------------------------------
19082
--  DDL for Procedure SET_ADVISORY_RIPPLE
19083
--------------------------------------------------------
19084
set define off;
19085
 
5172 dpurdie 19086
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
1373 dpurdie 19087
	   	  		  							   nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
19088
											 nUserId IN NUMBER ) IS
19089
/* ---------------------------------------------------------------------------
19090
    Version: 4.0
19091
   --------------------------------------------------------------------------- */
19092
 
19093
BEGIN
19094
 
3959 dpurdie 19095
    -- Set Advisory Ripple Package
19096
    INSERT INTO ADVISORY_RIPPLE (RTAG_ID, PV_ID)
19097
	VALUES (nRtagId, nPvId);
1373 dpurdie 19098
 
19099
    /* LOG ACTION */
3959 dpurdie 19100
   	Log_Action ( nPvId, 'set_advisory_ripple', nUserId );
6031 dpurdie 19101
 
1373 dpurdie 19102
	/*Rebuild_Environment(nRtagId);*/
19103
 
3959 dpurdie 19104
END Set_Advisory_Ripple;
4040 dpurdie 19105
 
1374 dpurdie 19106
/
4040 dpurdie 19107
--------------------------------------------------------
19108
--  DDL for Procedure SET_PACKAGE_BUILD_ENV
19109
--------------------------------------------------------
19110
set define off;
19111
 
5172 dpurdie 19112
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,
3959 dpurdie 19113
	   	  		  								  	sBuildEnvIdList IN VARCHAR2 ) IS
1373 dpurdie 19114
/* ---------------------------------------------------------------------------
3959 dpurdie 19115
    Last Modified: Rupesh Solanki
19116
	Version: 3.0.1
1373 dpurdie 19117
   --------------------------------------------------------------------------- */
19118
 
19119
 
19120
BEGIN
19121
 
3959 dpurdie 19122
   -- Delete Current Build Env settings
19123
   DELETE FROM PACKAGE_BUILD_ENV
19124
   WHERE pv_id = nPvId;
6031 dpurdie 19125
 
3959 dpurdie 19126
   -- Delet Current Package Build Info Settings
19127
   DELETE FROM PACKAGE_BUILD_INFO
19128
   WHERE pv_id = nPvId;
1373 dpurdie 19129
 
3959 dpurdie 19130
   -- Reset flag to N
19131
   UPDATE PACKAGE_VERSIONS SET
19132
	   IS_BUILD_ENV_REQUIRED = 'N'
19133
   WHERE PV_ID = nPvId;
1373 dpurdie 19134
 
19135
 
3959 dpurdie 19136
   -- Set new Build Env
19137
   IF NOT sBuildEnvIdList IS NULL THEN
19138
   	  -- Insert into PACKAGE_BUILD_ENV
19139
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
19140
	  SELECT nPvId AS PV_ID,
19141
	  		 be.BE_ID
19142
	    FROM BUILD_ENVIRONMENTS be
19143
	   WHERE be.BE_ID IN (
19144
	   		 		  	   SELECT *
19145
					   	     FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
19146
	   		 		  	 );
6031 dpurdie 19147
 
3959 dpurdie 19148
   	  -- Insert into PACKAGE_BUILD_INFO
19149
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
19150
	  SELECT nPvId AS PV_ID,
19151
	  		 be.BM_ID
19152
	    FROM BUILD_MACHINES be
19153
	   WHERE be.BM_ID IN (
19154
	   		 		  	   SELECT *
19155
					   	     FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
6031 dpurdie 19156
	   		 		  	 );
1373 dpurdie 19157
 
3959 dpurdie 19158
	   -- Set flag to Y
19159
	   UPDATE PACKAGE_VERSIONS SET
19160
		   IS_BUILD_ENV_REQUIRED = 'Y'
19161
	   WHERE PV_ID = nPvId;
1373 dpurdie 19162
 
3959 dpurdie 19163
   END IF;
1373 dpurdie 19164
 
19165
 
3959 dpurdie 19166
END Set_Package_Build_Env;
4040 dpurdie 19167
 
1374 dpurdie 19168
/
4040 dpurdie 19169
--------------------------------------------------------
19170
--  DDL for Procedure SET_PACKAGE_BUILD_ENV_TEMP
19171
--------------------------------------------------------
19172
set define off;
19173
 
5172 dpurdie 19174
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV_TEMP" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,
1373 dpurdie 19175
	   	  		  								  	   	 sBuildEnvIdList IN VARCHAR2,
6031 dpurdie 19176
														 nBuildStandard IN PACKAGE_VERSIONS.BS_ID%TYPE
1373 dpurdie 19177
														 ) IS
19178
/* ---------------------------------------------------------------------------
19179
    Last Modified: Rupesh Solanki
19180
	Version: 3.0.1
19181
   --------------------------------------------------------------------------- */
6031 dpurdie 19182
 
19183
   nBsCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
1373 dpurdie 19184
   BsId NUMBER;
19185
   HackBsId NUMBER;
19186
 
19187
 
19188
BEGIN
19189
 
19190
   nBsCollector := IN_LIST_NUMBER ( sBuildEnvIdList );
19191
 
19192
   -- Delete Current Build Env settings
19193
   DELETE FROM PACKAGE_BUILD_ENV
19194
   WHERE pv_id = nPvId;
6031 dpurdie 19195
 
1373 dpurdie 19196
   -- Delet Current Package Build Info Settings
19197
   DELETE FROM PACKAGE_BUILD_INFO
19198
   WHERE pv_id = nPvId;
19199
 
19200
   -- Reset flag to N
19201
   UPDATE PACKAGE_VERSIONS SET
19202
	   IS_BUILD_ENV_REQUIRED = 'N'
19203
   WHERE PV_ID = nPvId;
19204
 
19205
 
19206
   -- Set new Build Env
19207
   IF NOT sBuildEnvIdList IS NULL THEN
19208
	FOR i IN 1..nBsCollector.COUNT
6031 dpurdie 19209
	LOOP
19210
 
1373 dpurdie 19211
	BsId := nBsCollector(i);
6031 dpurdie 19212
 
1373 dpurdie 19213
	IF nBuildStandard = 2 THEN
19214
	   IF BsId = 1 THEN
19215
	   	  HackBsId := 11;
19216
	   ELSE
19217
	   	  HackBsId := 12;
19218
	   END IF;
6031 dpurdie 19219
 
1373 dpurdie 19220
   	  -- Insert into PACKAGE_BUILD_ENV
19221
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
19222
	  SELECT nPvId AS PV_ID,
19223
	  		 be.BE_ID
19224
	    FROM BUILD_ENVIRONMENTS be
19225
	   WHERE be.BE_ID IN ( HackBsId );
6031 dpurdie 19226
 
1373 dpurdie 19227
   	  -- Insert into PACKAGE_BUILD_INFO
19228
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
19229
	  SELECT nPvId AS PV_ID,
19230
	  		 be.BM_ID
19231
	    FROM BUILD_MACHINES be
6031 dpurdie 19232
	   WHERE be.BM_ID IN ( BsId );
1373 dpurdie 19233
 
19234
	   -- Set flag to Y
19235
	   UPDATE PACKAGE_VERSIONS SET
19236
		   IS_BUILD_ENV_REQUIRED = 'Y'
6031 dpurdie 19237
	   WHERE PV_ID = nPvId;
19238
 
19239
 
1373 dpurdie 19240
	ELSE
6031 dpurdie 19241
 
1373 dpurdie 19242
   	  -- Insert into PACKAGE_BUILD_ENV
19243
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
19244
	  SELECT nPvId AS PV_ID,
19245
	  		 be.BE_ID
19246
	    FROM BUILD_ENVIRONMENTS be
19247
	   WHERE be.BE_ID IN ( BsId );
6031 dpurdie 19248
 
1373 dpurdie 19249
   	  -- Insert into PACKAGE_BUILD_INFO
19250
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
19251
	  SELECT nPvId AS PV_ID,
19252
	  		 be.BM_ID
19253
	    FROM BUILD_MACHINES be
6031 dpurdie 19254
	   WHERE be.BM_ID IN ( BsId );
1373 dpurdie 19255
 
19256
	   -- Set flag to Y
19257
	   UPDATE PACKAGE_VERSIONS SET
19258
		   IS_BUILD_ENV_REQUIRED = 'Y'
19259
	   WHERE PV_ID = nPvId;
19260
 
6031 dpurdie 19261
	END IF;
19262
 
19263
 
19264
	END LOOP;
19265
 
1373 dpurdie 19266
   END IF;
19267
 
19268
 
19269
END Set_Package_Build_Env_Temp;
4040 dpurdie 19270
 
1374 dpurdie 19271
/
4040 dpurdie 19272
--------------------------------------------------------
19273
--  DDL for Procedure SET_TO_AUTOBUILDABLE
19274
--------------------------------------------------------
19275
set define off;
19276
 
5172 dpurdie 19277
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_TO_AUTOBUILDABLE" (
3959 dpurdie 19278
   nrtagid     IN   NUMBER,
19279
   spvidlist   IN   VARCHAR2
19280
)
19281
IS
19282
/******************************************************************************
19283
   NAME:       SET_TO_AUTOBUILDABLE
19284
   PURPOSE:
1373 dpurdie 19285
 
3959 dpurdie 19286
   REVISIONS:
19287
   Ver        Date        Author           Description
19288
   ---------  ----------  ---------------  ------------------------------------
19289
   1.0        15/12/2006   Rupesh Solanki       1. Created this procedure.
1373 dpurdie 19290
 
3959 dpurdie 19291
   NOTES:
1373 dpurdie 19292
 
3959 dpurdie 19293
   Automatically available Auto Replace Keywords:
19294
      Object Name:     SET_TO_AUTOBUILDABLE
19295
      Sysdate:         15/12/2006
19296
      Date and Time:   15/12/2006, 11:42:29 AM, and 15/12/2006 11:42:29 AM
19297
      Username:         (set in TOAD Options, Procedure Editor)
19298
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 19299
 
3959 dpurdie 19300
******************************************************************************/
19301
   npvidcollector   relmgr_number_tab_t := relmgr_number_tab_t ();
19302
   PvId NUMBER;
1373 dpurdie 19303
BEGIN
19304
 
3959 dpurdie 19305
   npvidcollector := in_list_number2 (spvidlist);
6031 dpurdie 19306
 
3959 dpurdie 19307
   UPDATE package_versions
19308
      SET is_autobuildable = 'N'
19309
    WHERE pv_id IN (SELECT pv_id
19310
                      FROM release_content
19311
                     WHERE rtag_id = nrtagid);
1373 dpurdie 19312
 
6031 dpurdie 19313
 
19314
 
3959 dpurdie 19315
   	FOR i IN 1..npvidcollector.COUNT
19316
	LOOP
19317
		PvId := npvidcollector(i);
1373 dpurdie 19318
 
3959 dpurdie 19319
		UPDATE package_versions
19320
		set is_autobuildable = 'Y'
19321
		where pv_id = PvId;
1373 dpurdie 19322
 
3959 dpurdie 19323
	END LOOP;
6031 dpurdie 19324
 
19325
 
3959 dpurdie 19326
END set_to_autobuildable;
4040 dpurdie 19327
 
3959 dpurdie 19328
/
4040 dpurdie 19329
--------------------------------------------------------
19330
--  DDL for Procedure SHIFT_INSTALL_ORDER
19331
--------------------------------------------------------
19332
set define off;
19333
 
5172 dpurdie 19334
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SHIFT_INSTALL_ORDER" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
3959 dpurdie 19335
												  nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
19336
                                                  nToInstallOrder IN PACKAGE_PATCHES.INSTALL_ORDER%TYPE ) IS
19337
/* ---------------------------------------------------------------------------
19338
    Version: 3.0
19339
   --------------------------------------------------------------------------- */
1373 dpurdie 19340
 
3959 dpurdie 19341
currInstallOrder NUMBER;
19342
FromInstallOrder NUMBER;
1373 dpurdie 19343
 
3959 dpurdie 19344
BEGIN
1373 dpurdie 19345
 
3959 dpurdie 19346
	 -- Get Current Install Order
19347
     SELECT pp.INSTALL_ORDER INTO currInstallOrder
19348
       FROM PACKAGE_PATCHES pp
19349
      WHERE pp.PV_ID = nPvId
19350
        AND pp.PATCH_ID = nPatchId;
1373 dpurdie 19351
 
19352
 
3959 dpurdie 19353
	 IF currInstallOrder > nToInstallOrder
19354
	 THEN
1373 dpurdie 19355
 
3959 dpurdie 19356
		FromInstallOrder := nToInstallOrder;
1373 dpurdie 19357
 
3959 dpurdie 19358
	    -- Shift others Up
19359
		UPDATE PACKAGE_PATCHES pp SET
19360
			   pp.INSTALL_ORDER = pp.INSTALL_ORDER + 1
19361
		 WHERE pp.PV_ID = nPvId
19362
           AND pp.PATCH_ID != nPatchId
19363
		   AND pp.INSTALL_ORDER BETWEEN  FromInstallOrder  AND  currInstallOrder - 1;
1373 dpurdie 19364
 
19365
 
3959 dpurdie 19366
	 ELSIF currInstallOrder < nToInstallOrder
19367
	 THEN
1373 dpurdie 19368
 
3959 dpurdie 19369
		FromInstallOrder := currInstallOrder + 1;
1373 dpurdie 19370
 
3959 dpurdie 19371
		-- Shift others Down
19372
        UPDATE PACKAGE_PATCHES pp SET
19373
			   pp.INSTALL_ORDER = pp.INSTALL_ORDER - 1
19374
		 WHERE pp.PV_ID = nPvId
19375
           AND pp.PATCH_ID != nPatchId
19376
		   AND pp.INSTALL_ORDER BETWEEN  FromInstallOrder  AND  nToInstallOrder;
1373 dpurdie 19377
 
3959 dpurdie 19378
	 END IF;
1373 dpurdie 19379
 
19380
 
3959 dpurdie 19381
	 -- Move Patch to new install order
19382
     UPDATE PACKAGE_PATCHES pp SET
19383
		    pp.INSTALL_ORDER = nToInstallOrder
19384
	  WHERE pp.PV_ID = nPvId
19385
	    AND pp.PATCH_ID = nPatchId;
1373 dpurdie 19386
 
19387
 
3959 dpurdie 19388
END Shift_Install_Order;
4040 dpurdie 19389
 
1374 dpurdie 19390
/
4040 dpurdie 19391
--------------------------------------------------------
19392
--  DDL for Procedure SPLIT_VERSION
19393
--------------------------------------------------------
19394
set define off;
19395
 
5172 dpurdie 19396
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SPLIT_VERSION" ( SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
3959 dpurdie 19397
                                            SSV_MM OUT PACKAGE_VERSIONS.V_MM%TYPE,
19398
                                            SSV_NMM OUT PACKAGE_VERSIONS.V_NMM%TYPE,
19399
                                            SSV_EXT OUT PACKAGE_VERSIONS.V_EXT%TYPE  ) IS
1373 dpurdie 19400
/* ---------------------------------------------------------------------------
3959 dpurdie 19401
    Version: 3.0.0
1373 dpurdie 19402
   --------------------------------------------------------------------------- */
19403
 
3959 dpurdie 19404
    TYPE VERSION_COMPONENTS_TYPE IS TABLE OF VARCHAR2(50)
19405
        INDEX BY BINARY_INTEGER;
1373 dpurdie 19406
 
3959 dpurdie 19407
    version_components VERSION_COMPONENTS_TYPE;
19408
    lastDot NUMBER := 0;
19409
    currDot NUMBER := 0;
1373 dpurdie 19410
 
19411
BEGIN
3959 dpurdie 19412
    currDot := INSTR ( SSpkg_version, '.', -1 );      -- Find 1st dot from the right
1373 dpurdie 19413
 
3959 dpurdie 19414
    IF ( currDot > 0 )
1373 dpurdie 19415
    THEN
3959 dpurdie 19416
        -- YES dot separator found --
19417
        SSV_EXT := GET_V_EXT( SSpkg_version );
1373 dpurdie 19418
 
3959 dpurdie 19419
        IF NOT SSV_EXT IS NULL
1373 dpurdie 19420
        THEN
3959 dpurdie 19421
            lastDot := currDot;
19422
            currDot := INSTR ( SSpkg_version, '.', -1, 2 );   -- Find 2nd dot from the right
1373 dpurdie 19423
 
3959 dpurdie 19424
            IF ( currDot > 0 )
19425
            THEN
19426
                -- XXXX.M.E
19427
                SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, lastDot - currDot - 1);
19428
                SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot ) || SSV_EXT;
19429
            ELSE
19430
                -- XXXX.E
19431
                SSV_MM := NULL;
19432
                SSV_NMM := SSpkg_version;
19433
            END IF;
1373 dpurdie 19434
 
19435
        ELSE
3959 dpurdie 19436
            -- XXXX.M
19437
            SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, LENGTH(SSpkg_version) - currDot );
19438
            SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot );
1373 dpurdie 19439
 
19440
        END IF;
19441
 
19442
    ELSE
3959 dpurdie 19443
        -- NO dot separator found --
19444
        -- XXXXXX
19445
        SSV_MM  := NULL;
19446
        SSV_NMM := SSpkg_version;
19447
        SSV_EXT := NULL;
1373 dpurdie 19448
 
19449
    END IF;
19450
 
3959 dpurdie 19451
END Split_Version;
4040 dpurdie 19452
 
1374 dpurdie 19453
/
4040 dpurdie 19454
--------------------------------------------------------
19455
--  DDL for Procedure SWITCH_REPRODUCIBLE_PACKAGE
19456
--------------------------------------------------------
19457
set define off;
19458
 
5172 dpurdie 19459
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SWITCH_REPRODUCIBLE_PACKAGE" (nPvId IN NUMBER, nUserId IN NUMBER)IS
3959 dpurdie 19460
Auto CHAR;
19461
/******************************************************************************
19462
   NAME:       SWITCH_REPRODUCIBLE_PACKAGE
6031 dpurdie 19463
   PURPOSE:
1373 dpurdie 19464
 
3959 dpurdie 19465
   REVISIONS:
19466
   Ver        Date        Author           Description
19467
   ---------  ----------  ---------------  ------------------------------------
19468
   1.0        14/12/2006   Rupesh Solanki       1. Created this procedure.
1373 dpurdie 19469
 
3959 dpurdie 19470
   NOTES:
1373 dpurdie 19471
 
3959 dpurdie 19472
   Automatically available Auto Replace Keywords:
19473
      Object Name:     SWITCH_REPRODUCIBLE_PACKAGE
19474
      Sysdate:         14/12/2006
19475
      Date and Time:   14/12/2006, 11:35:15 AM, and 14/12/2006 11:35:15 AM
19476
      Username:         (set in TOAD Options, Procedure Editor)
19477
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 19478
 
3959 dpurdie 19479
******************************************************************************/
1373 dpurdie 19480
BEGIN
19481
 
3959 dpurdie 19482
	 SELECT IS_AUTOBUILDABLE into Auto
6031 dpurdie 19483
	 FROM PACKAGE_VERSIONS
3959 dpurdie 19484
	 WHERE PV_ID = nPvId;
1373 dpurdie 19485
 
3959 dpurdie 19486
	 IF Auto = 'N' Then
6031 dpurdie 19487
 
3959 dpurdie 19488
	 	UPDATE PACKAGE_VERSIONS
19489
	 	SET IS_AUTOBUILDABLE = 'Y'
19490
	 	WHERE PV_ID = nPvId;
6031 dpurdie 19491
 
19492
 
3959 dpurdie 19493
	 	/* LOG ACTION */
6031 dpurdie 19494
   		Log_Action ( nPvId, 'reproducible_package', nUserId );
19495
 
3959 dpurdie 19496
	 Else
6031 dpurdie 19497
 
3959 dpurdie 19498
		 UPDATE PACKAGE_VERSIONS
19499
		 SET IS_AUTOBUILDABLE = 'N'
19500
		 WHERE PV_ID = nPvId;
6031 dpurdie 19501
 
19502
 
3959 dpurdie 19503
	 	 /* LOG ACTION */
6031 dpurdie 19504
   	 	 Log_Action ( nPvId, 'unreproducible_package', nUserId );
19505
 
3959 dpurdie 19506
	 End If;
1373 dpurdie 19507
 
19508
 
19509
 
19510
 
19511
 
6031 dpurdie 19512
 
19513
 
19514
 
3959 dpurdie 19515
END SWITCH_REPRODUCIBLE_PACKAGE;
4040 dpurdie 19516
 
1374 dpurdie 19517
/
4040 dpurdie 19518
--------------------------------------------------------
19519
--  DDL for Procedure SYNC_PROJECTS_NEW_VERSION
19520
--------------------------------------------------------
19521
set define off;
19522
 
5172 dpurdie 19523
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SYNC_PROJECTS_NEW_VERSION" ( nPv_id 				IN NUMBER,
3959 dpurdie 19524
														  sSyncRtagsInList		IN VARCHAR2,
19525
				                                          nUser_id 				IN NUMBER ) IS
1373 dpurdie 19526
/* ---------------------------------------------------------------------------
19527
    Version: 3.0.0
19528
   --------------------------------------------------------------------------- */
19529
 
3959 dpurdie 19530
	CURSOR sync_rtags_cur IS
19531
        SELECT rc.RTAG_ID, rc.BASE_VIEW_ID, pv.pv_id
19532
		  FROM release_content rc,
19533
		  	   package_versions pv,
19534
		       package_versions opv
19535
		 WHERE rc.pv_id = pv.pv_id
19536
		   AND opv.pkg_id = pv.pkg_id
19537
		   AND NVL(opv.v_ext, '|LINK_A_NULL|') = NVL(pv.v_ext, '|LINK_A_NULL|')
19538
		   AND opv.pv_id = nPv_id
19539
		   AND rtag_id IN ( SELECT *
19540
		   	   		   	      FROM THE (
19541
					   	   		   	    SELECT CAST( IN_LIST_NUMBER( sSyncRtagsInList ) AS RELMGR_NUMBER_TAB_t )
19542
					       		   	    FROM dual
19543
									   )
19544
						  );
19545
    sync_rtags_rec sync_rtags_cur%ROWTYPE;
1373 dpurdie 19546
 
19547
BEGIN
19548
 
3959 dpurdie 19549
	OPEN sync_rtags_cur;
19550
	FETCH sync_rtags_cur INTO sync_rtags_rec;
1373 dpurdie 19551
 
3959 dpurdie 19552
	WHILE sync_rtags_cur%FOUND
19553
	LOOP
19554
		DELETE FROM RELEASE_CONTENT
19555
		 WHERE rtag_id = sync_rtags_rec.rtag_id
19556
	       AND pv_id = sync_rtags_rec.pv_id;
1373 dpurdie 19557
 
3959 dpurdie 19558
		INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )
19559
	   		   VALUES ( sync_rtags_rec.rtag_id,
19560
		       		  	nPv_id,
19561
						sync_rtags_rec.BASE_VIEW_ID,
19562
	           			Ora_Sysdate,
19563
	           			nUser_id,
19564
 
19565
	      	   		   );
1373 dpurdie 19566
 
3959 dpurdie 19567
-- 		UPDATE RELEASE_CONTENT
19568
-- 	       SET pv_id = nPv_id,
19569
-- 	           insert_stamp = Ora_Sysdate,
19570
-- 	           insertor_id = nUser_id
19571
-- 	     WHERE rtag_id = sync_rtags_rec.rtag_id
19572
-- 	       AND pv_id = sync_rtags_rec.pv_id;
1373 dpurdie 19573
 
3959 dpurdie 19574
		FETCH sync_rtags_cur INTO sync_rtags_rec;
19575
	END LOOP;
1373 dpurdie 19576
 
3959 dpurdie 19577
	CLOSE sync_rtags_cur;
19578
 
19579
END Sync_Projects_New_Version;
4040 dpurdie 19580
 
1374 dpurdie 19581
/
4040 dpurdie 19582
--------------------------------------------------------
19583
--  DDL for Procedure TOUCH_RELEASE
19584
--------------------------------------------------------
19585
set define off;
19586
 
5172 dpurdie 19587
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE" ( nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS
3959 dpurdie 19588
/* ---------------------------------------------------------------------------
19589
    The purpose of this procedure is to flag in the database that the specified
19590
    release has changed to an extent that the procedure Rebuild_Environment
19591
    should be called at the next opportunity in order that the package state
19592
    icons are all re-evaluated.
19593
    The package state icons are controlled using the pkg_state column in the
19594
    release_content table, and Rebuild_Environment updates that column.
19595
    It will be through user action in the website that Rebuild_Environment will
19596
    be called, for example:
19597
      a) when setting/clearing ignore warnings checkboxes
19598
      b) when someone opens a page upon a rtag/pvid and rebuild_en flag is set
19599
      c) when someone opens the build order report form
19600
      d) when someone modifies dependencies of a package
19601
      + other scenarios (?)
19602
   --------------------------------------------------------------------------- */
19603
BEGIN
19604
   -- Touch Release for Rebuild
19605
   UPDATE RELEASE_TAGS rt SET
19606
          rt.REBUILD_ENV = 'Y',
19607
          rt.REBUILD_STAMP = 0
19608
    WHERE rt.RTAG_ID = nRtagId;
1373 dpurdie 19609
 
3959 dpurdie 19610
END Touch_Release;
4040 dpurdie 19611
 
1374 dpurdie 19612
/
4040 dpurdie 19613
--------------------------------------------------------
19614
--  DDL for Procedure TOUCH_RELEASE_BULK
19615
--------------------------------------------------------
19616
set define off;
19617
 
5172 dpurdie 19618
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE_BULK" ( nRtagIdList IN VARCHAR2 ) IS
1373 dpurdie 19619
/* ---------------------------------------------------------------------------
19620
    Version: 3.0
19621
   --------------------------------------------------------------------------- */
19622
 
19623
oRTagIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
19624
 
19625
BEGIN
19626
	 oRTagIdCollector := IN_LIST_NUMBER ( nRtagIdList );
19627
 
19628
	 -- Touch Release for Rebuild
19629
     UPDATE RELEASE_TAGS rt SET
19630
     	rt.REBUILD_ENV = 'Y',
19631
        rt.REBUILD_STAMP = 0
19632
      WHERE rt.RTAG_ID IN ( SELECT * FROM TABLE ( CAST ( oRTagIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
19633
 
19634
 
19635
END Touch_Release_Bulk;
4040 dpurdie 19636
 
1374 dpurdie 19637
/
4040 dpurdie 19638
--------------------------------------------------------
19639
--  DDL for Procedure TO_INSERT_VTREE_ID
19640
--------------------------------------------------------
19641
set define off;
19642
 
5172 dpurdie 19643
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TO_INSERT_VTREE_ID" IS
1373 dpurdie 19644
 
3959 dpurdie 19645
/******************************************************************************
19646
   NAME:       TO_INSERT_VTREE_ID
6031 dpurdie 19647
   PURPOSE:
1373 dpurdie 19648
 
3959 dpurdie 19649
   REVISIONS:
19650
   Ver        Date        Author           Description
19651
   ---------  ----------  ---------------  ------------------------------------
19652
   1.0        2/02/2007          1. Created this procedure.
1373 dpurdie 19653
 
3959 dpurdie 19654
   NOTES:
1373 dpurdie 19655
 
3959 dpurdie 19656
   Automatically available Auto Replace Keywords:
19657
      Object Name:     TO_INSERT_VTREE_ID
19658
      Sysdate:         2/02/2007
19659
      Date and Time:   2/02/2007, 8:42:56 AM, and 2/02/2007 8:42:56 AM
19660
      Username:         (set in TOAD Options, Procedure Editor)
19661
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 19662
 
3959 dpurdie 19663
******************************************************************************/
6031 dpurdie 19664
VTreeId NUMBER;
1373 dpurdie 19665
 
19666
 
3959 dpurdie 19667
	CURSOR curInfo IS
19668
    SELECT RTAG_ID
19669
	FROM RELEASE_TAGS
19670
	WHERE VTREE_ID IS NULL;
19671
    recInfo curInfo%ROWTYPE;
6031 dpurdie 19672
 
19673
 
1373 dpurdie 19674
BEGIN
19675
 
3959 dpurdie 19676
	OPEN curInfo;
19677
    FETCH curInfo INTO recInfo;
6031 dpurdie 19678
 
3959 dpurdie 19679
	WHILE curInfo%FOUND
19680
	LOOP
19681
		SELECT SEQ_VTREE_ID.nextval INTO VTreeId FROM DUAL;
1373 dpurdie 19682
 
3959 dpurdie 19683
		UPDATE RELEASE_TAGS
19684
		SET VTREE_ID = VTreeId
19685
		WHERE RTAG_ID = recInfo.RTAG_ID;
1373 dpurdie 19686
 
3959 dpurdie 19687
		FETCH curInfo INTO recInfo;
19688
	END LOOP;
1373 dpurdie 19689
 
3959 dpurdie 19690
	CLOSE curInfo;
1373 dpurdie 19691
 
3959 dpurdie 19692
END TO_INSERT_VTREE_ID;
4040 dpurdie 19693
 
1374 dpurdie 19694
/
4040 dpurdie 19695
--------------------------------------------------------
19696
--  DDL for Procedure UNDEPRECATE_PACKAGE
19697
--------------------------------------------------------
19698
set define off;
19699
 
5384 dpurdie 19700
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNDEPRECATE_PACKAGE" (
19701
    nPvId   IN PACKAGE_VERSIONS.PV_ID%TYPE,
19702
    nRtagId IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,
19703
    nPkgId  IN DEPRECATED_PACKAGES.PKG_ID%TYPE,
19704
    nUserId IN NUMBER)
19705
IS
19706
  ext      VARCHAR2(50);
19707
 
1373 dpurdie 19708
BEGIN
5384 dpurdie 19709
  --Extract the package extension
6031 dpurdie 19710
  SELECT V_EXT INTO ext
5384 dpurdie 19711
  FROM PACKAGE_VERSIONS
19712
  WHERE PV_ID = nPvId;
1373 dpurdie 19713
 
5384 dpurdie 19714
    -- Undeprecate Package
19715
    DELETE
19716
    FROM DEPRECATED_PACKAGES
19717
    WHERE RTAG_ID = nRtagId
19718
    AND PKG_ID    = nPkgId
19719
    AND NVL(V_EXT,'.NULL') = NVL(ext,'.NULL');
6031 dpurdie 19720
 
5384 dpurdie 19721
    -- Update Release Contents entry
19722
    -- Process PackageName.ext for the package. ie: Allow multiple
19723
    -- versions of the package to be in the release.
6031 dpurdie 19724
 
5384 dpurdie 19725
    UPDATE RELEASE_CONTENT
6031 dpurdie 19726
    SET
5384 dpurdie 19727
      DEPRECATED_STATE = NULL
19728
    WHERE RTAG_ID      = nRtagId
19729
    AND PV_ID IN (
19730
      SELECT PV.PV_ID
19731
      FROM PACKAGE_VERSIONS PV
19732
      WHERE PV.PKG_ID   = nPkgId
19733
      AND NVL(PV.V_EXT, '.NULL') = NVL(ext,'.NULL')
19734
      );
1373 dpurdie 19735
 
5384 dpurdie 19736
  -- Update consumers of the package
19737
  --  Update ALL packages in the Release
1373 dpurdie 19738
 
6031 dpurdie 19739
  REBUILD_DEPRECATE_STATE(nRtagId);
1373 dpurdie 19740
 
19741
END Undeprecate_Package;
4040 dpurdie 19742
 
1374 dpurdie 19743
/
4040 dpurdie 19744
--------------------------------------------------------
19745
--  DDL for Procedure UNLOCK_PACKAGE
19746
--------------------------------------------------------
19747
set define off;
19748
 
5172 dpurdie 19749
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNLOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 19750
											 nUserId IN NUMBER ) IS
19751
/* ---------------------------------------------------------------------------
19752
    Author: Rupesh Solanki
6031 dpurdie 19753
 
3959 dpurdie 19754
	Version: 4.0
19755
   --------------------------------------------------------------------------- */
19756
   STATE CHAR;
6031 dpurdie 19757
 
3959 dpurdie 19758
BEGIN
6031 dpurdie 19759
 
3959 dpurdie 19760
	SELECT DLOCKED INTO STATE
19761
	FROM PACKAGE_VERSIONS
6031 dpurdie 19762
	WHERE PV_ID = nPvId;
1373 dpurdie 19763
 
3959 dpurdie 19764
	IF STATE = 'A' THEN --It was made official for autobuilds
19765
		-- Unlock Package
19766
		UPDATE PACKAGE_VERSIONS pv SET
19767
		pv.DLOCKED = 'P'
6031 dpurdie 19768
		WHERE pv.PV_ID = nPvId;
3959 dpurdie 19769
	ELSE
19770
		-- Unlock Package
19771
		UPDATE PACKAGE_VERSIONS pv SET
19772
		pv.DLOCKED = 'N'
6031 dpurdie 19773
		WHERE pv.PV_ID = nPvId;
3959 dpurdie 19774
 
6031 dpurdie 19775
	END IF;
19776
 
3959 dpurdie 19777
    /* LOG ACTION */
19778
   	Log_Action ( nPvId, 'unlock_package', nUserId );
19779
 
19780
END Unlock_Package;
4040 dpurdie 19781
 
3959 dpurdie 19782
/
4040 dpurdie 19783
--------------------------------------------------------
19784
--  DDL for Procedure UNRIPPLE_PACKAGE
19785
--------------------------------------------------------
19786
set define off;
19787
 
5172 dpurdie 19788
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE" (
3959 dpurdie 19789
        sPvIdList IN VARCHAR2,
19790
        nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
19791
        nUserId IN NUMBER
19792
    ) IS
19793
/* ---------------------------------------------------------------------------
19794
    Version: 4.1
19795
   --------------------------------------------------------------------------- */
19796
 
19797
    oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
19798
 
19799
BEGIN
19800
 
19801
    IF (sPvIdList IS NULL) THEN
19802
        RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
19803
    END IF;
19804
 
19805
    oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
19806
 
19807
    -- UnRipple Package
19808
    INSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID )
19809
    SELECT nRtagId, pv.PV_ID
19810
    FROM PACKAGE_VERSIONS pv
19811
    WHERE pv.PV_ID IN (
19812
        SELECT *
19813
        FROM TABLE (
19814
            CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t )
19815
        )
19816
    );
6031 dpurdie 19817
 
3959 dpurdie 19818
    /* LOG ACTION */
19819
    Log_Action_Bulk ( sPvIdList, 'unripple_package', nUserId );
19820
 
19821
END UnRipple_Package;
4040 dpurdie 19822
 
3959 dpurdie 19823
/
4040 dpurdie 19824
--------------------------------------------------------
19825
--  DDL for Procedure UNRIPPLE_PACKAGE_INDIRECT
19826
--------------------------------------------------------
19827
set define off;
19828
 
5172 dpurdie 19829
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE_INDIRECT" (
3959 dpurdie 19830
        nPvId IN NUMBER,
19831
        nRtagId IN NUMBER,
19832
        nUserId IN NUMBER,
19833
        nrootCausePvId IN NUMBER,
19834
        srootCause IN VARCHAR2,
19835
        srootFile IN VARCHAR2
19836
    ) IS
19837
    ReleaseLocation VARCHAR2(4000);
19838
BEGIN
19839
 
19840
    -- UnRipple Package
19841
    delete from do_not_ripple where rtag_id=nRtagId and pv_id=nPvId;
19842
    INSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID, ROOT_PV_ID, ROOT_CAUSE, ROOT_FILE ) values (nRtagId, nPvId, nrootCausePvId, srootCause, srootFile);
19843
 
6600 dpurdie 19844
    -- Do not log if RootCause is -2
19845
    IF nrootCausePvId IS NOT NULL AND nrootCausePvId = -2 THEN
19846
      RETURN;
19847
    END IF;
19848
 
3959 dpurdie 19849
    /* LOG ACTION */
19850
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
19851
              FROM PROJECTS proj,
19852
                   RELEASE_TAGS rt
19853
             WHERE rt.RTAG_ID = nRtagId
19854
               AND rt.PROJ_ID = proj.PROJ_ID;
19855
 
19856
    /* LOG ACTION */
19857
    Log_Action ( nPvId, 'unripple_package', nUserId, 'Location: '|| ReleaseLocation );
19858
 
19859
END UnRipple_Package_Indirect;
4040 dpurdie 19860
 
3959 dpurdie 19861
/
4040 dpurdie 19862
--------------------------------------------------------
19863
--  DDL for Procedure UPDATE_ADDITIONAL_NOTE
19864
--------------------------------------------------------
19865
set define off;
19866
 
5172 dpurdie 19867
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_ADDITIONAL_NOTE" ( pnNote_id IN NUMBER,
3959 dpurdie 19868
													 pnPv_id IN NUMBER,
19869
                                                     psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,
19870
                                                     psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,
19871
                                                     pnUser_id IN NUMBER,
19872
                                                     outErrCode OUT NUMBER
19873
                                                    ) IS
19874
/* ---------------------------------------------------------------------------
19875
    Version: 3.0.1
19876
   --------------------------------------------------------------------------- */
19877
 
19878
    newID NUMBER;
19879
 
19880
    /* Disallow duplicate Note Titles */
19881
	CURSOR an_duplicate_cur IS
19882
        SELECT COUNT(*) AS cnt_note
19883
          FROM ADDITIONAL_NOTES
19884
         WHERE pv_id = pnPv_id
19885
           AND note_id != pnNote_id
19886
           AND note_title = psNote_title;
19887
    an_duplicate_rec an_duplicate_cur%ROWTYPE;
19888
 
19889
BEGIN
19890
	outErrCode := -1;		-- Set default return error code to ERROR state
19891
 
19892
	OPEN an_duplicate_cur;
19893
    FETCH an_duplicate_cur INTO an_duplicate_rec;
19894
 
19895
    IF an_duplicate_rec.cnt_note < 1
19896
    THEN
19897
		--- Update Additional Note ---
19898
	    UPDATE ADDITIONAL_NOTES SET
19899
		       note_title = psNote_title,
19900
		       note_body = psNote_body,
19901
		       mod_date = Ora_Sysdate,
19902
		       mod_user = pnUser_id
19903
         WHERE note_id = pnNote_id
19904
           AND pv_id = pnPv_id;
19905
		outErrCode := 0;		-- Set return to SUCCESS
19906
	END IF;
19907
 
19908
	CLOSE an_duplicate_cur;
19909
END Update_Additional_Note;
4040 dpurdie 19910
 
3959 dpurdie 19911
/
4040 dpurdie 19912
--------------------------------------------------------
19913
--  DDL for Procedure UPDATE_DEPRECATION_STATE
19914
--------------------------------------------------------
19915
set define off;
19916
 
5172 dpurdie 19917
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_DEPRECATION_STATE" (nnrtag_id IN NUMBER) AS
3959 dpurdie 19918
 
19919
recno NUMBER;
19920
 
19921
CURSOR deprecate_cur IS
19922
 
19923
SELECT rc.pv_id
19924
FROM release_content rc
19925
WHERE rtag_id = nnrtag_id
19926
 AND deprecated_state IN(7);
19927
 
19928
deprecate_rec deprecate_cur % rowtype;
19929
 
19930
BEGIN
19931
 
19932
  OPEN deprecate_cur;
19933
 
19934
  FETCH deprecate_cur
19935
  INTO deprecate_rec;
19936
 
19937
  WHILE deprecate_cur % FOUND
19938
  LOOP
19939
 
19940
    SELECT COUNT(*)
19941
    INTO recno
19942
    FROM package_dependencies pd,
19943
      release_content rc
19944
    WHERE pd.pv_id = deprecate_rec.pv_id
19945
     AND rc.pv_id = pd.dpv_id
19946
     AND rc.rtag_id = nnrtag_id
19947
     AND rc.deprecated_state IN(6,   7);
19948
 
19949
    IF recno = 0 THEN
19950
 
19951
      UPDATE release_content
19952
      SET pkg_id = NULL, deprecated_state = NULL
19953
      WHERE pv_id = deprecate_rec.pv_id
19954
       AND rtag_id = nnrtag_id;
19955
 
19956
    END IF;
19957
 
19958
    FETCH deprecate_cur
19959
    INTO deprecate_rec;
19960
  END LOOP;
19961
 
19962
END;
4040 dpurdie 19963
 
3959 dpurdie 19964
/
4040 dpurdie 19965
--------------------------------------------------------
19966
--  DDL for Procedure UPDATE_MISC_VIEW
19967
--------------------------------------------------------
19968
set define off;
19969
 
5172 dpurdie 19970
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_MISC_VIEW" IS
1373 dpurdie 19971
/******************************************************************************
3959 dpurdie 19972
   NAME:       UPDATE_MISC_VIEW
6031 dpurdie 19973
   PURPOSE:
1373 dpurdie 19974
 
19975
   REVISIONS:
19976
   Ver        Date        Author           Description
19977
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 19978
   1.0        16/03/2007          1. Created this procedure.
1373 dpurdie 19979
 
19980
   NOTES:
19981
 
19982
   Automatically available Auto Replace Keywords:
3959 dpurdie 19983
      Object Name:     UPDATE_MISC_VIEW
19984
      Sysdate:         16/03/2007
19985
      Date and Time:   16/03/2007, 8:56:29 AM, and 16/03/2007 8:56:29 AM
1373 dpurdie 19986
      Username:         (set in TOAD Options, Procedure Editor)
19987
      Table Name:       (set in the "New PL/SQL Object" dialog)
19988
 
19989
******************************************************************************/
3959 dpurdie 19990
   CURSOR view_cur /*Create a record set to store the ripple data*/
19991
   IS
6031 dpurdie 19992
   	 SELECT pkg.pkg_id, rc.base_view_id
3959 dpurdie 19993
	 FROM package_versions pv, packages pkg, release_content rc
19994
	 where rc.rtag_id = 2362
19995
	 and rc.pv_id = pv.pv_id
19996
	 and pv.pkg_id = pkg.pkg_id;
19997
   view_rec   view_cur%ROWTYPE;
19998
 
19999
 
20000
 
1373 dpurdie 20001
BEGIN
3959 dpurdie 20002
   OPEN view_cur;
1373 dpurdie 20003
 
3959 dpurdie 20004
   FETCH view_cur
20005
    INTO view_rec;
1373 dpurdie 20006
 
3959 dpurdie 20007
   WHILE view_cur%FOUND
20008
   LOOP
1373 dpurdie 20009
 
6031 dpurdie 20010
 
3959 dpurdie 20011
	   update release_content
20012
	   set base_view_id = view_rec.base_view_id
20013
	   where rtag_id = 8027
6031 dpurdie 20014
	   and pv_id IN
3959 dpurdie 20015
	   (
20016
	   	select pv.pv_id from release_content rc, package_versions pv
20017
		where rc.rtag_id = 8027
20018
		and pv.pv_id = rc.pv_id
6031 dpurdie 20019
		and pv.pkg_id = view_rec.pkg_id
20020
 
3959 dpurdie 20021
	   );
1373 dpurdie 20022
 
20023
 
6031 dpurdie 20024
 
20025
 
20026
 
20027
 
20028
 
20029
 
20030
 
3959 dpurdie 20031
   FETCH view_cur
20032
   		 INTO view_rec;
6031 dpurdie 20033
   END LOOP;
1373 dpurdie 20034
 
20035
 
20036
 
20037
 
3959 dpurdie 20038
 
6031 dpurdie 20039
END UPDATE_MISC_VIEW;
4040 dpurdie 20040
 
1374 dpurdie 20041
/
4040 dpurdie 20042
--------------------------------------------------------
20043
--  DDL for Procedure UPDATE_PACKAGE_DEPENDENCY
20044
--------------------------------------------------------
20045
set define off;
20046
 
5172 dpurdie 20047
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_DEPENDENCY" ( NNpv_id IN NUMBER,
3959 dpurdie 20048
                                                        SSdep_name IN PACKAGES.pkg_name%TYPE,
20049
                                                        SSdep_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
20050
                                                        CCbuild_type IN PACKAGE_DEPENDENCIES.build_type%TYPE,
20051
                                                        NNuser_id IN NUMBER,
20052
                                                        NNdelete_old_dependency IN NUMBER
20053
                                                       ) IS
1373 dpurdie 20054
/* ---------------------------------------------------------------------------
3959 dpurdie 20055
    Version: 3.3
1373 dpurdie 20056
   --------------------------------------------------------------------------- */
20057
 
3959 dpurdie 20058
    retPV_ID NUMBER;
20059
    SSV_EXT PACKAGE_VERSIONS.v_ext%TYPE;
20060
	DepIsPatch	PACKAGE_VERSIONS.is_patch%TYPE;
20061
    PvIsPatch	PACKAGE_VERSIONS.is_patch%TYPE;
20062
    NNpkg_id NUMBER;
20063
    NNdpkg_id NUMBER;
1373 dpurdie 20064
 
20065
BEGIN
3959 dpurdie 20066
    --- Seed database with package_name and version if required ---
20067
    Seed_Package_Names_Versions ( SSdep_name, SSdep_version, NNuser_id, retPV_ID );
1373 dpurdie 20068
 
3959 dpurdie 20069
    -- get v_ext,pkg_id of current dependency
20070
    SELECT v_ext, pkg_id, is_patch INTO SSV_EXT, NNdpkg_id, DepIsPatch
20071
      FROM PACKAGE_VERSIONS
20072
     WHERE pv_id = retPV_ID;
1373 dpurdie 20073
 
3959 dpurdie 20074
    -- get pkg_id of parent package
20075
    SELECT pkg_id, is_patch INTO NNpkg_id, PvIsPatch
20076
      FROM PACKAGE_VERSIONS
20077
     WHERE pv_id = NNpv_id;
1373 dpurdie 20078
 
20079
 
3959 dpurdie 20080
	IF ( (PvIsPatch IS NULL) AND (DepIsPatch IS NULL) ) OR
20081
    	( (PvIsPatch IS NOT NULL) )THEN
1373 dpurdie 20082
 
3959 dpurdie 20083
	    IF NNdelete_old_dependency = 1 THEN
20084
	        /* Used for CUSTOM dependency add/edit */
1373 dpurdie 20085
 
3959 dpurdie 20086
	        --- Remove old dependency ---
20087
            IF (PvIsPatch IS NULL) THEN
20088
            	-- Do it for Packages
20089
		        DELETE FROM PACKAGE_DEPENDENCIES
20090
		         WHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN
20091
		            (
20092
		            SELECT dep.*
20093
		              FROM PACKAGE_DEPENDENCIES dep,
20094
		                   PACKAGE_VERSIONS dpv,
20095
		                   PACKAGE_VERSIONS pv
20096
		             WHERE dep.dpv_id = dpv.pv_id
20097
		               AND dep.pv_id = NNpv_id
20098
		               AND pv.pv_id = retPV_ID
20099
		               AND dpv.pkg_id = pv.pkg_id
20100
		               AND NVL(dpv.v_ext, '|LINK_A_NULL|') = NVL(SSV_EXT, '|LINK_A_NULL|')
20101
		            );
20102
            ELSE
20103
            	-- Do it for Patches
20104
                DELETE FROM PACKAGE_DEPENDENCIES
20105
		         WHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN
20106
		            (
20107
		            SELECT dep.*
20108
		              FROM PACKAGE_DEPENDENCIES dep
20109
		             WHERE dep.dpv_id = retPV_ID
20110
		               AND dep.pv_id = NNpv_id
20111
		            );
20112
			END IF;
1373 dpurdie 20113
 
3959 dpurdie 20114
	    END IF;
1373 dpurdie 20115
 
3959 dpurdie 20116
	    /* NOTE: for JATS, ANTS dependency update, it is expected that all dependencies are removed. */
20117
 
20118
	    --- Add new dependency ---
20119
	    INSERT INTO PACKAGE_DEPENDENCIES ( pv_id, dpv_id, pkg_id, dpkg_id, build_type )
20120
	    VALUES ( NNpv_id, retPV_ID, NNpkg_id, NNdpkg_id, CCbuild_type );
20121
 
20122
	END IF;
20123
 
20124
END Update_Package_Dependency;
4040 dpurdie 20125
 
1374 dpurdie 20126
/
4040 dpurdie 20127
--------------------------------------------------------
20128
--  DDL for Procedure UPDATE_PACKAGE_STATES
20129
--------------------------------------------------------
20130
set define off;
20131
 
5172 dpurdie 20132
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_STATES" ( NNrtag_id IN NUMBER,
3959 dpurdie 20133
                                                    NNsession_num IN NUMBER ) IS
20134
/* =============  STATE RULES =================== */
20135
/*
20136
   MNR   MRR   MN   MR    |   pkg_state
20137
   ------------------------------------
20138
 
20139
 
20140
 
20141
 
20142
   ------------------------------------
20143
 
20144
 
20145
 
20146
 
20147
   ------------------------------------
20148
    1     0     0     0   |      MINOR_READY
20149
    1     0     0     1   |      MAJOR
20150
    1     0     1     0   |      MINOR
20151
    1     0     1     1   |      MAJOR
20152
   ------------------------------------
20153
    1     1     0     0   |      MAJOR_READY
20154
    1     1     0     1   |      MAJOR
20155
    1     1     1     0   |      MAJOR
20156
    1     1     1     1   |      MAJOR
20157
   ------------------------------------
20158
*/
20159
BEGIN
20160
    /*----------------------------------------------
20161
    ||              MINOR READY
20162
    */----------------------------------------------
1373 dpurdie 20163
 
3959 dpurdie 20164
    UPDATE release_content
20165
       SET pkg_state = 4
20166
     WHERE rtag_id = NNrtag_id
20167
       AND pv_id IN
20168
           (
20169
           SELECT DISTINCT pv_id
20170
           FROM temp_env_states
20171
           WHERE session_num = NNsession_num
20172
             AND level_num = 1
20173
             AND tes_state = 2
20174
           );
1373 dpurdie 20175
 
3959 dpurdie 20176
    /*----------------------------------------------
20177
    ||              MAJOR READY
20178
    */----------------------------------------------
20179
    UPDATE release_content
20180
       SET pkg_state = 3
20181
     WHERE rtag_id = NNrtag_id
20182
       AND pv_id IN
20183
           (
20184
           SELECT DISTINCT pv_id
20185
           FROM temp_env_states
20186
           WHERE session_num = NNsession_num
20187
             AND level_num = 1
20188
             AND tes_state IN (0,1)
20189
           );
1373 dpurdie 20190
 
3959 dpurdie 20191
    /*----------------------------------------------
20192
    ||                MINOR
20193
    */----------------------------------------------
20194
    UPDATE release_content
20195
       SET pkg_state = 2
20196
     WHERE rtag_id = NNrtag_id
20197
       AND pv_id IN
20198
           (
20199
           SELECT DISTINCT pv_id
20200
            FROM temp_env_states
20201
            WHERE session_num = NNsession_num
20202
              AND level_num >= 2
20203
              AND tes_state = 2
20204
            MINUS
20205
           SELECT pv_id
20206
             FROM release_content
20207
            WHERE rtag_id = NNrtag_id
20208
              AND pkg_state = 3
20209
           );
1373 dpurdie 20210
 
3959 dpurdie 20211
    /*----------------------------------------------
20212
    ||                MAJOR
20213
    */----------------------------------------------
20214
    UPDATE release_content
20215
       SET pkg_state = 1
20216
     WHERE rtag_id = NNrtag_id
20217
       AND pv_id IN
20218
           (
20219
           SELECT DISTINCT pv_id
20220
           FROM temp_env_states
20221
           WHERE session_num = NNsession_num
20222
             AND level_num >= 2
20223
             AND tes_state IN (0,1)
20224
           /* MAJOR EXCEPTION - When package has Major Ready and Minor */
20225
           UNION
20226
           SELECT DISTINCT tes.pv_id
20227
           FROM temp_env_states tes,
20228
                release_content rc
20229
           WHERE tes.session_num = NNsession_num
20230
             AND tes.level_num >= 2
20231
             AND tes.tes_state = 2
20232
             AND rtag_id = NNrtag_id
20233
             AND rc.pv_id = tes.pv_id
20234
             AND rc.pkg_state = 3
20235
           );
1373 dpurdie 20236
 
3959 dpurdie 20237
    /*----------------------------------------------
20238
    ||                 OK
20239
    */----------------------------------------------
20240
    UPDATE release_content
20241
       SET pkg_state = 0
20242
     WHERE rtag_id = NNrtag_id
20243
       AND pv_id IN
20244
           (
20245
           SELECT rc.pv_id
20246
             FROM release_content rc
20247
            WHERE rc.rtag_id = NNrtag_id
20248
              AND NOT rc.pv_id IN
20249
                    (
20250
                     SELECT DISTINCT pv_id
20251
                     FROM temp_env_states WHERE session_num = NNsession_num
20252
                    )
20253
           );
1373 dpurdie 20254
 
3959 dpurdie 20255
      Update_Deprecation_State (NNrtag_id);
1373 dpurdie 20256
 
3959 dpurdie 20257
    /*----------------------------------------------
20258
    ||              PEGGED VERSIONS DEPENDENT
20259
    */----------------------------------------------
20260
    UPDATE release_content
20261
       SET pkg_state = 10
20262
     WHERE rtag_id = NNrtag_id
20263
       AND pv_id IN
20264
           (
20265
           SELECT DISTINCT pv_id
20266
           FROM pegged_versions pegv
20267
           WHERE pegv.rtag_id = NNrtag_id
20268
           );
1373 dpurdie 20269
 
3959 dpurdie 20270
    /*----------------------------------------------
20271
    ||              ADVISORY RIPPLE
20272
    */----------------------------------------------
20273
    UPDATE release_content
20274
       SET pkg_state = 8
20275
     WHERE rtag_id = NNrtag_id
20276
       AND pv_id IN
20277
           (
20278
           SELECT DISTINCT pv_id
20279
           FROM advisory_ripple ar
20280
           WHERE ar.rtag_id = NNrtag_id
20281
           )
20282
       AND pv_id IN
20283
           (
20284
           SELECT DISTINCT pv_id
20285
           FROM release_content rc
20286
           WHERE rc.rtag_id = NNrtag_id
20287
           );
6031 dpurdie 20288
 
5172 dpurdie 20289
    /*----------------------------------------------
20290
    ||              SDK Imported
20291
    */----------------------------------------------
20292
    UPDATE release_content
20293
       SET pkg_state = 11
20294
     WHERE rtag_id = NNrtag_id
6031 dpurdie 20295
       AND sdktag_id is not null;
1373 dpurdie 20296
 
6031 dpurdie 20297
   /*----------------------------------------------
20298
    ||              UnBuildable
20299
    */----------------------------------------------
20300
    UPDATE release_content
20301
       SET pkg_state = 13
20302
     WHERE rtag_id = NNrtag_id
20303
       AND pv_id in (select pv_id from temp_env_states WHERE session_num = NNsession_num AND build_type = 'U');
20304
 
3959 dpurdie 20305
END Update_Package_States;
4040 dpurdie 20306
 
3959 dpurdie 20307
/
4040 dpurdie 20308
--------------------------------------------------------
20309
--  DDL for Procedure UPDATE_PROCESSES
20310
--------------------------------------------------------
20311
set define off;
20312
 
5172 dpurdie 20313
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PROCESSES" 
3959 dpurdie 20314
IS
1373 dpurdie 20315
 
3959 dpurdie 20316
proc_id NUMBER;
20317
/******************************************************************************
20318
   NAME:       DELETE_DO_NOT_RIPPLE
20319
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
20320
               IS RELEASED
1373 dpurdie 20321
 
3959 dpurdie 20322
   REVISIONS:
20323
   Ver        Date        Author           Description
20324
   ---------  ----------  ---------------  ------------------------------------
20325
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
1373 dpurdie 20326
 
3959 dpurdie 20327
   NOTES:
1373 dpurdie 20328
 
3959 dpurdie 20329
   Automatically available Auto Replace Keywords:
20330
      Object Name:     DELETE_DO_NOT_RIPPLE
20331
      Sysdate:         21/04/2006
20332
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
20333
      Username:         (set in TOAD Options, Procedure Editor)
20334
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 20335
 
3959 dpurdie 20336
******************************************************************************/
20337
   CURSOR ripple_cur
20338
   IS
20339
      select proc_id,  proc_name, run_as, pkg_owner, is_interface from processes;
1373 dpurdie 20340
 
3959 dpurdie 20341
   ripple_rec   ripple_cur%ROWTYPE;
20342
BEGIN
20343
   OPEN ripple_cur;
20344
 
20345
   FETCH ripple_cur
20346
    INTO ripple_rec;
20347
 
20348
   WHILE ripple_cur%FOUND
20349
   LOOP
20350
 
6031 dpurdie 20351
 
20352
update deployment_manager.processes_config
3959 dpurdie 20353
set proc_id = ripple_rec.proc_id
20354
where pkg_health_tag = ripple_rec.proc_name
20355
and cmd_interface IS NULL
20356
and pkg_owner IS NULL
6031 dpurdie 20357
and is_interface IS NULL;
3959 dpurdie 20358
 
6031 dpurdie 20359
 
3959 dpurdie 20360
      FETCH ripple_cur
20361
       INTO ripple_rec;
20362
   END LOOP;
20363
END UPDATE_PROCESSES;
4040 dpurdie 20364
 
1374 dpurdie 20365
/
4040 dpurdie 20366
--------------------------------------------------------
20367
--  DDL for Procedure UPDATE_RUNTIME_DEPENDENCY
20368
--------------------------------------------------------
20369
set define off;
20370
 
5172 dpurdie 20371
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_RUNTIME_DEPENDENCY" ( NNpv_id IN RUNTIME_DEPENDENCIES.pv_id%TYPE,
3959 dpurdie 20372
				   	  		  						    NNrtd_id IN RUNTIME_DEPENDENCIES.rtd_id%TYPE,
20373
				   	  		  						    SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
20374
													    SSrtd_url IN RUNTIME_DEPENDENCIES.rtd_url%TYPE,
20375
													    SSrtd_comments IN RUNTIME_DEPENDENCIES.rtd_comments%TYPE,
20376
													    NNuser_id IN NUMBER ) IS
1373 dpurdie 20377
/* ---------------------------------------------------------------------------
3959 dpurdie 20378
    Version: 3.0.1
1373 dpurdie 20379
   --------------------------------------------------------------------------- */
20380
 
3959 dpurdie 20381
    retRTD_ID	NUMBER;
20382
	CURSOR rtd_cur IS
20383
	    SELECT pv.pkg_version, pkg.pkg_name
20384
		  FROM runtime_dependencies rtd,
20385
		       package_versions pv,
20386
			   packages pkg
20387
		 WHERE rtd.rtd_id = pv.pv_id
20388
		   AND pv.pkg_id = pkg.pkg_id
20389
		   AND rtd.pv_id = NNpv_id
20390
		   AND rtd.rtd_id = NNrtd_id;
20391
	   rtd_rec rtd_cur%ROWTYPE;
1373 dpurdie 20392
 
3959 dpurdie 20393
	CURSOR old_rtd_cur IS
20394
	    SELECT pv.pv_id
20395
		  FROM package_versions pv
20396
		 WHERE pv.pkg_id IN ( SELECT rtdpv.pkg_id
20397
		 	   			 	    FROM package_versions rtdpv
20398
							   WHERE rtdpv.pv_id = NNrtd_id )
20399
		   AND pv.pkg_version = SSrtd_version;
20400
	old_rtd_rec old_rtd_cur%ROWTYPE;
1373 dpurdie 20401
 
3959 dpurdie 20402
 
1373 dpurdie 20403
BEGIN
20404
 
3959 dpurdie 20405
    -- Get current runtime dependency details
20406
	OPEN rtd_cur;
20407
    FETCH rtd_cur INTO rtd_rec;
1373 dpurdie 20408
 
20409
 
20410
 
20411
 
3959 dpurdie 20412
	IF rtd_rec.pkg_version != SSrtd_version THEN
20413
           -- Version has changed, hence create new runtime dependency --
20414
	    /* NOTE: You must create new version as updating just a version will affect
20415
		        all packages using this runtime dependency and user does not expect that.
20416
		        It is safer to create new version */
20417
		OPEN old_rtd_cur;
20418
		FETCH old_rtd_cur INTO old_rtd_rec;
1373 dpurdie 20419
 
20420
 
3959 dpurdie 20421
		IF old_rtd_cur%NOTFOUND
20422
		THEN
20423
			-- Version not found, hence Create New version --
20424
    		Seed_Package_Names_Versions ( rtd_rec.pkg_name, SSrtd_version, NNuser_id, retRTD_ID );
1373 dpurdie 20425
 
3959 dpurdie 20426
			-- Update runtime dependency table --
20427
			UPDATE runtime_dependencies SET
20428
				   rtd_id = retRTD_ID,
20429
				   rtd_url = SSrtd_url,
20430
				   rtd_comments = SSrtd_comments
20431
			 WHERE pv_id = NNpv_id
20432
			   AND rtd_id = NNrtd_id;
1373 dpurdie 20433
 
3959 dpurdie 20434
		ELSE
20435
			-- Update runtime dependency table --
20436
			UPDATE runtime_dependencies SET
20437
				   rtd_id = old_rtd_rec.pv_id,
20438
				   rtd_url = SSrtd_url,
20439
				   rtd_comments = SSrtd_comments
20440
			 WHERE pv_id = NNpv_id
20441
			   AND rtd_id = NNrtd_id;
20442
 
20443
		END IF;
20444
 
20445
 
20446
		CLOSE old_rtd_cur;
20447
 
20448
	ELSE
20449
		--  Version has not changed, hence update everithing except	version --
20450
		UPDATE runtime_dependencies SET
20451
			   rtd_url = SSrtd_url,
20452
			   rtd_comments = SSrtd_comments
20453
		 WHERE pv_id = NNpv_id
20454
		   AND rtd_id = NNrtd_id;
20455
 
20456
 
20457
 
20458
	END IF;
20459
 
20460
 
20461
	CLOSE rtd_cur;
20462
 
20463
END Update_Runtime_Dependency;
4040 dpurdie 20464
 
1374 dpurdie 20465
/
4040 dpurdie 20466
--------------------------------------------------------
20467
--  DDL for Procedure UPDATE_UNIT_TEST
20468
--------------------------------------------------------
20469
set define off;
20470
 
5172 dpurdie 20471
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST" ( nTest_id IN NUMBER,
6031 dpurdie 20472
	   	  		  							   nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,
3959 dpurdie 20473
											   nPv_id IN NUMBER,
20474
											   nUserId IN NUMBER,
20475
	                                           sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
20476
											   sNumof_test IN UNIT_TESTS.NUMOF_TEST%TYPE,
20477
	                                           sCompletion_date IN VARCHAR2,
20478
											   sDpkg_path IN VARCHAR2,
20479
											   enumTEST_TYPE_AUTOMATIC IN NUMBER,
20480
											   sResults IN VARCHAR2,
20481
											   outFileName OUT VARCHAR2
20482
                                              ) IS
1373 dpurdie 20483
/* ---------------------------------------------------------------------------
3959 dpurdie 20484
    Version: 3.1.0
1373 dpurdie 20485
   --------------------------------------------------------------------------- */
6031 dpurdie 20486
 
3959 dpurdie 20487
   	FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
1373 dpurdie 20488
 
3959 dpurdie 20489
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
20490
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
1373 dpurdie 20491
 
3959 dpurdie 20492
 
1373 dpurdie 20493
BEGIN
20494
 
3959 dpurdie 20495
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
20496
       	ResultsURL := sResults;
20497
       ELSE
20498
       	IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
20499
        	outFileName := FILENAME_PREFIX || nTest_id ||'_'|| sResults;
20500
    		ResultsAttachment := sDpkg_path || '/' || outFileName;
20501
           END IF;
20502
       END IF;
1373 dpurdie 20503
 
3959 dpurdie 20504
	--- Update Unit Test ---
20505
    UPDATE UNIT_TESTS SET
20506
           TEST_SUMMARY = sTest_summary,
20507
		   NUMOF_TEST = sNumof_test,
20508
           COMPLETION_DATE = TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
20509
		   COMPLETED_BY = nUserId,
20510
		   RESULTS_URL = ResultsURL,
20511
		   RESULTS_ATTACHMENT_NAME = ResultsAttachment
20512
     WHERE TEST_ID = nTest_id
20513
       AND PV_ID = nPv_id;
1373 dpurdie 20514
 
3959 dpurdie 20515
END Update_Unit_Test;
4040 dpurdie 20516
 
3959 dpurdie 20517
/
4040 dpurdie 20518
--------------------------------------------------------
20519
--  DDL for Procedure UPDATE_UNIT_TEST_ACCEPTANCE
20520
--------------------------------------------------------
20521
set define off;
20522
 
5172 dpurdie 20523
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST_ACCEPTANCE" ( pnTest_id IN NUMBER,
3959 dpurdie 20524
														  pnPv_id IN NUMBER,
20525
					                                      sAccepted IN UNIT_TESTS.TEST_ACCEPTED%TYPE,
20526
														  sAcceptanceDate IN VARCHAR2,
20527
														  sAcceptedBy IN NUMBER,
20528
					                                      sReviewComments IN UNIT_TESTS.REVIEW_COMMENTS%TYPE,
20529
														  cUpdateAcceptedStateOnly IN CHAR
20530
					                                     ) IS
20531
/* ---------------------------------------------------------------------------
20532
    Version: 3.0.0
20533
   --------------------------------------------------------------------------- */
1373 dpurdie 20534
 
20535
 
20536
 
3959 dpurdie 20537
BEGIN
20538
	IF cUpdateAcceptedStateOnly = 'Y'
20539
	THEN
20540
		--- Update Accepted State Only ---
20541
		IF ( sAccepted IS NULL )
20542
		THEN
20543
			-- Clear alleptance
20544
			UPDATE UNIT_TESTS SET
20545
		           TEST_ACCEPTED = NULL,
20546
		           ACCEPTANCE_DATE = NULL,
20547
				   ACCEPTED_BY = NULL,
20548
				   REVIEW_COMMENTS = NULL
20549
		     WHERE TEST_ID = pnTest_id
20550
		       AND PV_ID = pnPv_id;
20551
 
20552
	    ELSE
20553
			UPDATE UNIT_TESTS SET
20554
		           TEST_ACCEPTED = sAccepted,
20555
		           ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),
20556
				   ACCEPTED_BY = sAcceptedBy
20557
		     WHERE TEST_ID = pnTest_id
20558
		       AND PV_ID = pnPv_id;
20559
 
20560
		END IF;
20561
 
20562
 
20563
	ELSE
20564
		--- Update Unit Test Acceptance ---
20565
	    UPDATE UNIT_TESTS SET
20566
	           TEST_ACCEPTED = sAccepted,
20567
			   REVIEW_COMMENTS = sReviewComments,
20568
	           ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),
20569
			   ACCEPTED_BY = sAcceptedBy
20570
	     WHERE TEST_ID = pnTest_id
20571
	       AND PV_ID = pnPv_id;
20572
 
20573
	END IF;
20574
 
20575
END Update_Unit_Test_Acceptance;
4040 dpurdie 20576
 
1374 dpurdie 20577
/
4040 dpurdie 20578
--------------------------------------------------------
20579
--  DDL for Synonymn APPLICATIONS
20580
--------------------------------------------------------
20581
 
5172 dpurdie 20582
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."APPLICATIONS" FOR "ACCESS_MANAGER"."APPLICATIONS";
4040 dpurdie 20583
--------------------------------------------------------
20584
--  DDL for Synonymn APPLICATION_PAGES
20585
--------------------------------------------------------
20586
 
5172 dpurdie 20587
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."APPLICATION_PAGES" FOR "ACCESS_MANAGER"."APPLICATION_PAGES";
4040 dpurdie 20588
--------------------------------------------------------
20589
--  DDL for Synonymn CONTROL_OBJECTS
20590
--------------------------------------------------------
20591
 
5172 dpurdie 20592
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."CONTROL_OBJECTS";
4040 dpurdie 20593
--------------------------------------------------------
20594
--  DDL for Synonymn DATA_PERMISSIONS
20595
--------------------------------------------------------
20596
 
5172 dpurdie 20597
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."DATA_PERMISSIONS" FOR "ACCESS_MANAGER"."DATA_PERMISSIONS";
4040 dpurdie 20598
--------------------------------------------------------
20599
--  DDL for Synonymn DATA_TABLES
20600
--------------------------------------------------------
20601
 
5172 dpurdie 20602
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."DATA_TABLES" FOR "ACCESS_MANAGER"."DATA_TABLES";
4040 dpurdie 20603
--------------------------------------------------------
20604
--  DDL for Synonymn PAGE_CONTROL_OBJECTS
20605
--------------------------------------------------------
20606
 
5172 dpurdie 20607
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PAGE_CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."PAGE_CONTROL_OBJECTS";
4040 dpurdie 20608
--------------------------------------------------------
20609
--  DDL for Synonymn PERMISSION_TYPES
20610
--------------------------------------------------------
20611
 
5172 dpurdie 20612
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PERMISSION_TYPES" FOR "ACCESS_MANAGER"."PERMISSION_TYPES";
4040 dpurdie 20613
--------------------------------------------------------
20614
--  DDL for Synonymn PK_AMUTILS
20615
--------------------------------------------------------
20616
 
5172 dpurdie 20617
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PK_AMUTILS" FOR "ACCESS_MANAGER"."PK_AMUTILS";
4040 dpurdie 20618
--------------------------------------------------------
20619
--  DDL for Synonymn PK_SECURITY
20620
--------------------------------------------------------
20621
 
5172 dpurdie 20622
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PK_SECURITY" FOR "ACCESS_MANAGER"."PK_SECURITY";
4040 dpurdie 20623
--------------------------------------------------------
20624
--  DDL for Synonymn ROLES
20625
--------------------------------------------------------
20626
 
5172 dpurdie 20627
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."ROLES" FOR "ACCESS_MANAGER"."ROLES";
4040 dpurdie 20628
--------------------------------------------------------
20629
--  DDL for Synonymn ROLE_PRIVILEGES
20630
--------------------------------------------------------
20631
 
5172 dpurdie 20632
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."ROLE_PRIVILEGES" FOR "ACCESS_MANAGER"."ROLE_PRIVILEGES";
4040 dpurdie 20633
--------------------------------------------------------
20634
--  DDL for Synonymn USERS
20635
--------------------------------------------------------
20636
 
5172 dpurdie 20637
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USERS" FOR "ACCESS_MANAGER"."USERS";
4040 dpurdie 20638
--------------------------------------------------------
20639
--  DDL for Synonymn USER_APPLICATIONS
20640
--------------------------------------------------------
20641
 
5172 dpurdie 20642
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USER_APPLICATIONS" FOR "ACCESS_MANAGER"."USER_APPLICATIONS";
4040 dpurdie 20643
--------------------------------------------------------
20644
--  DDL for Synonymn USER_ROLES
20645
--------------------------------------------------------
20646
 
5172 dpurdie 20647
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USER_ROLES" FOR "ACCESS_MANAGER"."USER_ROLES";