Subversion Repositories DevTools

Rev

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

Rev Author Line No. Line
1374 dpurdie 1
--------------------------------------------------------
6031 dpurdie 2
--  File created - Friday-September-23-2016   
1374 dpurdie 3
--------------------------------------------------------
4040 dpurdie 4
--------------------------------------------------------
5
--  DDL for Type RELMGR_NUMBER_TAB_T
6
--------------------------------------------------------
1373 dpurdie 7
 
5172 dpurdie 8
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_NUMBER_TAB_T" as TABLE of NUMBER
1373 dpurdie 9
 
4040 dpurdie 10
/
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
 
6031 dpurdie 54
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_ADDITIONAL_NOTES"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 37013 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 55
--------------------------------------------------------
56
--  DDL for Sequence SEQ_BMCON_ID
57
--------------------------------------------------------
58
 
6031 dpurdie 59
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BMCON_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 261 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
 
6031 dpurdie 74
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BUILD_INSTANCE"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 131745 CACHE 20 ORDER  NOCYCLE ;
5172 dpurdie 75
--------------------------------------------------------
4040 dpurdie 76
--  DDL for Sequence SEQ_CR_ID
77
--------------------------------------------------------
78
 
6031 dpurdie 79
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_CR_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 93290 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 80
--------------------------------------------------------
81
--  DDL for Sequence SEQ_DAEMON_INSTRUCTION_ID
82
--------------------------------------------------------
83
 
6031 dpurdie 84
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_DAEMON_INSTRUCTION_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 164895 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 85
--------------------------------------------------------
86
--  DDL for Sequence SEQ_GBE_ID
87
--------------------------------------------------------
88
 
6031 dpurdie 89
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_GBE_ID"  MINVALUE 40 MAXVALUE 9999999999999999999999990 INCREMENT BY 1 START WITH 1243 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
 
6031 dpurdie 104
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PKG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 64249 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 105
--------------------------------------------------------
106
--  DDL for Sequence SEQ_PROJ_ID
107
--------------------------------------------------------
108
 
6031 dpurdie 109
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PROJ_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 881 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 110
--------------------------------------------------------
111
--  DDL for Sequence SEQ_PV_ID
112
--------------------------------------------------------
113
 
6031 dpurdie 114
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PV_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1145669 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 115
--------------------------------------------------------
116
--  DDL for Sequence SEQ_RCON_ID
117
--------------------------------------------------------
118
 
6031 dpurdie 119
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RCON_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 30842 CACHE 20 ORDER  NOCYCLE ;
5172 dpurdie 120
--------------------------------------------------------
121
--  DDL for Sequence SEQ_RELEASE_MOD
122
--------------------------------------------------------
123
 
6031 dpurdie 124
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RELEASE_MOD"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 160140 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 125
--------------------------------------------------------
126
--  DDL for Sequence SEQ_RTAG_ID
127
--------------------------------------------------------
128
 
6031 dpurdie 129
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RTAG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 34669 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 130
--------------------------------------------------------
131
--  DDL for Sequence SEQ_SCHEDULED_ID
132
--------------------------------------------------------
133
 
6031 dpurdie 134
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SCHEDULED_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 29212 CACHE 20 ORDER  NOCYCLE ;
5172 dpurdie 135
--------------------------------------------------------
136
--  DDL for Sequence SEQ_SDKTAG_ID
137
--------------------------------------------------------
138
 
6031 dpurdie 139
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SDKTAG_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 723 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 140
--------------------------------------------------------
5172 dpurdie 141
--  DDL for Sequence SEQ_SDK_ID
142
--------------------------------------------------------
143
 
6031 dpurdie 144
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SDK_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 143 CACHE 20 NOORDER  NOCYCLE ;
5172 dpurdie 145
--------------------------------------------------------
4040 dpurdie 146
--  DDL for Sequence SEQ_SESSION_NUM
147
--------------------------------------------------------
148
 
6031 dpurdie 149
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SESSION_NUM"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1069914 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 150
--------------------------------------------------------
5892 dpurdie 151
--  DDL for Sequence SEQ_TESTRUN_ID
152
--------------------------------------------------------
153
 
6031 dpurdie 154
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_TESTRUN_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 762168 CACHE 20 NOORDER  NOCYCLE ;
5892 dpurdie 155
--------------------------------------------------------
4040 dpurdie 156
--  DDL for Sequence SEQ_UNIT_TESTS
157
--------------------------------------------------------
158
 
6031 dpurdie 159
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_UNIT_TESTS"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 363114 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
 
6031 dpurdie 174
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VIEW_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 10001 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 175
--------------------------------------------------------
176
--  DDL for Sequence SEQ_VTREE_ID
177
--------------------------------------------------------
178
 
6031 dpurdie 179
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VTREE_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 31488 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, 
1855
	"SDKTAG_ID" NUMBER
1856
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1857
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1858
 NOCOMPRESS LOGGING
5172 dpurdie 1859
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1860
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1861
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1862
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 1863
 
5384 dpurdie 1864
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."PKG_ID" IS 'NotUsed any more. Was:Package that has been deprecated';
5172 dpurdie 1865
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."DEPRECATED_STATE" IS '6: Deprecated Package, 7: Deprecated Dependent';
1866
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."SDKTAG_ID" IS 'Pkg imported via SDK';
6031 dpurdie 1867
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "RM_READONLY";
1868
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "MS_READONLY";
5892 dpurdie 1869
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "DM_READONLY";
1870
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "RELEASE_MANAGER_READ";
1871
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1872
--------------------------------------------------------
1873
--  DDL for Table RELEASE_LINKS
1874
--------------------------------------------------------
1875
 
5172 dpurdie 1876
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_LINKS" 
4040 dpurdie 1877
   (	"RTAG_ID" NUMBER, 
1878
	"REF_RTAG_ID" NUMBER
5172 dpurdie 1879
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1880
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1881
 NOCOMPRESS LOGGING
5172 dpurdie 1882
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1883
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1884
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1885
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1886
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "RM_READONLY";
1887
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "MS_READONLY";
5892 dpurdie 1888
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "DM_READONLY";
1889
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1890
--------------------------------------------------------
1891
--  DDL for Table RELEASE_METRICS
1892
--------------------------------------------------------
1893
 
5172 dpurdie 1894
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_METRICS" 
4040 dpurdie 1895
   (	"RTAG_ID" NUMBER, 
1896
	"TOTAL_PACKAGES" NUMBER, 
1897
	"AUTOBUILT" NUMBER, 
1898
	"LINES_OF_CODE" NUMBER, 
1899
	"UNIT_TESTED" NUMBER, 
1900
	"AUTOTESTED" NUMBER, 
1901
	"BRANCHES" NUMBER, 
1902
	"LAST_BUILD_TIME" DATE
5172 dpurdie 1903
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1904
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1905
 NOCOMPRESS LOGGING
5172 dpurdie 1906
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1907
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1908
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1909
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1910
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "RM_READONLY";
1911
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "MS_READONLY";
5892 dpurdie 1912
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "DM_READONLY";
5172 dpurdie 1913
--------------------------------------------------------
1914
--  DDL for Table RELEASE_MODIFIED
1915
--------------------------------------------------------
1916
 
1917
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" 
1918
   (	"RTAG_ID" NUMBER, 
1919
	"TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP, 
1920
	"SEQNUM" NUMBER
1921
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1922
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1923
 NOCOMPRESS LOGGING
5172 dpurdie 1924
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1925
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1926
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1927
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 1928
 
1929
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."RTAG_ID" IS 'Link to Release';
1930
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."TIMESTAMP" IS 'Time of the modification';
1931
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."SEQNUM" IS 'Unique number indicating change';
1932
   COMMENT ON TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED"  IS 'This table conatins a single entry for each RELEASE_TAG.
1933
It is used by the build system to help detect changes to the content of a Release.
1934
A stored proceedure simplifies the use of this table: PK_RELEASE.SET_RELEASE_MODIFIED
1935
 
1936
This should be called whenever the package_versions in the release have changed in such
1937
a manner that the build daemons should examine the release. This includes:
1938
 - Packages added and removed
1939
 - Packages build status changed (re-included in the release )
1940
 - Packages made Pending Build';
4040 dpurdie 1941
--------------------------------------------------------
1942
--  DDL for Table RELEASE_TAGS
1943
--------------------------------------------------------
1944
 
5172 dpurdie 1945
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_TAGS" 
4040 dpurdie 1946
   (	"RTAG_ID" NUMBER, 
1947
	"VTREE_ID" NUMBER, 
5172 dpurdie 1948
	"RTAG_NAME" VARCHAR2(50 BYTE), 
1949
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1950
	"CREATED_STAMP" DATE, 
1951
	"CREATOR_ID" NUMBER, 
1952
	"OFFICIAL_STAMP" DATE, 
1953
	"RELEASOR_ID" NUMBER, 
5172 dpurdie 1954
	"OFFICIAL" CHAR(1 BYTE), 
1955
	"REBUILD_ENV" CHAR(1 BYTE), 
4040 dpurdie 1956
	"REBUILD_STAMP" NUMBER, 
5172 dpurdie 1957
	"RTAG_VERSION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1958
	"RTAG_LIFE_CYCLE" NUMBER, 
1959
	"PARENT_RTAG_ID" NUMBER, 
1960
	"PROJ_ID" NUMBER, 
1961
	"DISPLAY_ORDER" NUMBER, 
5172 dpurdie 1962
	"OWNER_EMAIL" VARCHAR2(1000 BYTE), 
4040 dpurdie 1963
	"ASSOC_MASS_REF" NUMBER, 
5172 dpurdie 1964
	"OWNER_PERSONAL_EMAIL" VARCHAR2(1000 BYTE), 
1965
	"CONFIG_SPEC_BRANCH" VARCHAR2(4000 BYTE), 
1966
	"PRODUCT_STATE_USED" CHAR(1 BYTE), 
1967
	"OFFICIAL_ID" NUMBER, 
5384 dpurdie 1968
	"BUILD_AGE" NUMBER DEFAULT 31, 
1969
	"LXR" CHAR(1 BYTE) DEFAULT 'N'
5172 dpurdie 1970
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1971
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1972
 NOCOMPRESS LOGGING
5172 dpurdie 1973
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1974
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1975
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1976
  TABLESPACE "RELEASE_MANAGER_DATA" ;
4040 dpurdie 1977
 
5384 dpurdie 1978
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."CREATED_STAMP" IS 'Date Release was created';
1979
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."CREATOR_ID" IS 'User who created the release';
1980
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL_STAMP" IS 'Date OFFICIAL state was changed';
1981
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."RELEASOR_ID" IS 'Not Used';
1982
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL" IS 'State of release. A:Archived, Y:Closed, C:CCB Mode, R:Restricted, N: Open';
1983
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."REBUILD_ENV" IS 'Y: Rebuild Package State';
1984
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."REBUILD_STAMP" IS 'Not used ?';
1985
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL_ID" IS 'User last changed OFFICIAL state';
5172 dpurdie 1986
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."BUILD_AGE" IS 'Days without building before warning is shown';
5384 dpurdie 1987
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."LXR" IS 'Y:Enable LXR';
6031 dpurdie 1988
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "RM_READONLY";
5892 dpurdie 1989
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "MS_READONLY";
6031 dpurdie 1990
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "DM_READONLY";
5892 dpurdie 1991
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "RELEASE_MANAGER_READ";
1992
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1993
--------------------------------------------------------
6031 dpurdie 1994
--  DDL for Table RM_PACKAGE_ISSUES_DELETE_ME
4040 dpurdie 1995
--------------------------------------------------------
1996
 
6031 dpurdie 1997
  CREATE TABLE "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" 
4040 dpurdie 1998
   (	"PKG_ID" NUMBER, 
5172 dpurdie 1999
	"PKG_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 2000
	"PV_ID" NUMBER, 
5172 dpurdie 2001
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 2002
	"DPV_ID" NUMBER, 
5172 dpurdie 2003
	"DPKG_NAME" VARCHAR2(50 BYTE), 
2004
	"DPKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 2005
	"ISS_DB" NUMBER, 
2006
	"ISS_ID" NUMBER
5172 dpurdie 2007
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2008
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2009
 NOCOMPRESS LOGGING
5172 dpurdie 2010
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2011
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2012
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2013
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2014
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "RM_READONLY";
2015
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "MS_READONLY";
2016
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "DM_READONLY";
2017
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2018
--------------------------------------------------------
2019
--  DDL for Table RM_PKG_ISSUES
2020
--------------------------------------------------------
2021
 
5172 dpurdie 2022
  CREATE GLOBAL TEMPORARY TABLE "RELEASE_MANAGER"."RM_PKG_ISSUES" 
4040 dpurdie 2023
   (	"PKG_ID" NUMBER, 
5172 dpurdie 2024
	"PKG_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 2025
	"PV_ID" NUMBER, 
5172 dpurdie 2026
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 2027
	"DPV_ID" NUMBER, 
5172 dpurdie 2028
	"DPKG_NAME" VARCHAR2(50 BYTE), 
2029
	"DPKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 2030
	"ISS_DB" NUMBER, 
2031
	"ISS_ID" NUMBER
2032
   ) ON COMMIT PRESERVE ROWS ;
6031 dpurdie 2033
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "RM_READONLY";
2034
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "MS_READONLY";
5892 dpurdie 2035
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "DM_READONLY";
2036
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2037
--------------------------------------------------------
2038
--  DDL for Table RUNTIME_DEPENDENCIES
2039
--------------------------------------------------------
2040
 
5172 dpurdie 2041
  CREATE TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" 
4040 dpurdie 2042
   (	"PV_ID" NUMBER, 
2043
	"RTD_ID" NUMBER, 
5172 dpurdie 2044
	"RTD_COMMENTS" VARCHAR2(2000 BYTE), 
2045
	"RTD_URL" VARCHAR2(2000 BYTE), 
4040 dpurdie 2046
	"MOD_DATE" DATE, 
2047
	"MOD_USER" NUMBER
5172 dpurdie 2048
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2049
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2050
 NOCOMPRESS LOGGING
5172 dpurdie 2051
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2052
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2053
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2054
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2055
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "RM_READONLY";
2056
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "MS_READONLY";
5892 dpurdie 2057
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "DM_READONLY";
2058
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2059
--------------------------------------------------------
2060
--  DDL for Table RUN_LEVEL
2061
--------------------------------------------------------
2062
 
5172 dpurdie 2063
  CREATE TABLE "RELEASE_MANAGER"."RUN_LEVEL" 
4040 dpurdie 2064
   (	"RCON_ID" NUMBER, 
2065
	"CURRENT_BUILD_FILES" CLOB, 
2066
	"CURRENT_RUN_LEVEL" NUMBER, 
2067
	"PAUSE" NUMBER, 
2068
	"CURRENT_PKG_ID_BEING_BUILT" NUMBER, 
4553 dpurdie 2069
	"KEEP_ALIVE" DATE, 
2070
	"CURRENT_PV_ID" NUMBER, 
2071
	"LAST_BUILD" DATE DEFAULT sysdate
5172 dpurdie 2072
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2073
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2074
 NOCOMPRESS LOGGING
5172 dpurdie 2075
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2076
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2077
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2078
  TABLESPACE "RELEASE_MANAGER_DATA" 
5172 dpurdie 2079
 LOB ("CURRENT_BUILD_FILES") STORE AS BASICFILE (
6031 dpurdie 2080
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
5172 dpurdie 2081
  NOCACHE LOGGING 
2082
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2083
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2084
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
4553 dpurdie 2085
 
5172 dpurdie 2086
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."RCON_ID" IS 'Link to the Release_config table';
2087
   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 2088
   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 2089
   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';
2090
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_PKG_ID_BEING_BUILT" IS 'pkg_id of the package currently being built';
2091
   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.';
2092
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_PV_ID" IS 'The PV_ID of the package currently being built.';
2093
   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 2094
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "RM_READONLY";
2095
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "MS_READONLY";
5892 dpurdie 2096
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "DM_READONLY";
4040 dpurdie 2097
--------------------------------------------------------
2098
--  DDL for Table RUN_LEVEL_SCHEDULE
2099
--------------------------------------------------------
2100
 
5172 dpurdie 2101
  CREATE TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" 
4040 dpurdie 2102
   (	"SCHEDULED_ID" NUMBER, 
2103
	"SCHEDULED_PAUSE" DATE, 
2104
	"SCHEDULED_RESUME" DATE, 
5172 dpurdie 2105
	"REPEAT" CHAR(1 BYTE), 
2106
	"INDEFINITE_PAUSE" CHAR(1 BYTE)
2107
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2108
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2109
 NOCOMPRESS LOGGING
5172 dpurdie 2110
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2111
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2112
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2113
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2114
 
2115
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_ID" IS 'Unique entry identifier';
2116
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_PAUSE" IS 'Start DateTime of the outage';
2117
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_RESUME" IS 'End DateTime of the outage';
2118
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."REPEAT" IS '0:Once, 1:Daily, 7:Weekly';
2119
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."INDEFINITE_PAUSE" IS 'Non Null indicates indefinite pause';
6031 dpurdie 2120
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "RM_READONLY";
2121
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "MS_READONLY";
5892 dpurdie 2122
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "DM_READONLY";
5172 dpurdie 2123
--------------------------------------------------------
2124
--  DDL for Table SDK_CONTENT
2125
--------------------------------------------------------
2126
 
2127
  CREATE TABLE "RELEASE_MANAGER"."SDK_CONTENT" 
2128
   (	"SDKTAG_ID" NUMBER, 
2129
	"PV_ID" NUMBER, 
2130
	"SDKPKG_STATE" CHAR(1 BYTE) DEFAULT '-'
2131
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2132
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2133
 NOCOMPRESS LOGGING
5172 dpurdie 2134
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2135
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2136
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2137
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2138
 
2139
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."SDKTAG_ID" IS 'Ref to SDK TAG';
2140
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."PV_ID" IS 'Ref to Package Versions';
2141
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."SDKPKG_STATE" IS 'Package State: -:Not exposed, E:Exposed';
2142
--------------------------------------------------------
2143
--  DDL for Table SDK_NAMES
2144
--------------------------------------------------------
2145
 
2146
  CREATE TABLE "RELEASE_MANAGER"."SDK_NAMES" 
2147
   (	"SDK_ID" NUMBER, 
2148
	"SDK_NAME" VARCHAR2(50 BYTE), 
2149
	"SDK_COMMENT" VARCHAR2(4000 BYTE), 
2150
	"VIEW_ID" NUMBER, 
2151
	"PROJ_ID" NUMBER
2152
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2153
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2154
 NOCOMPRESS LOGGING
5172 dpurdie 2155
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2156
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2157
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2158
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2159
 
2160
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_ID" IS 'Auto Created when row is created';
2161
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_NAME" IS 'Name of the SDK';
2162
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_COMMENT" IS 'User comment';
2163
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."VIEW_ID" IS 'Base View for display';
2164
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."PROJ_ID" IS 'Project ID for Security context';
2165
--------------------------------------------------------
2166
--  DDL for Table SDK_TAGS
2167
--------------------------------------------------------
2168
 
2169
  CREATE TABLE "RELEASE_MANAGER"."SDK_TAGS" 
2170
   (	"SDKTAG_ID" NUMBER, 
2171
	"SDKTAG_NAME" VARCHAR2(50 BYTE), 
2172
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
2173
	"SDK_ID" NUMBER, 
2174
	"RTAG_ID" NUMBER, 
2175
	"CREATED_STAMP" TIMESTAMP (6) DEFAULT SYSTIMESTAMP, 
2176
	"CREATOR_ID" NUMBER, 
2177
	"STATE_STAMP" TIMESTAMP (6) DEFAULT SYSTIMESTAMP, 
2178
	"STATE_ID" NUMBER, 
2179
	"SDK_STATE" CHAR(1 BYTE) DEFAULT 'U'
2180
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2181
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2182
 NOCOMPRESS LOGGING
5172 dpurdie 2183
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2184
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2185
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2186
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2187
 
2188
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDKTAG_ID" IS 'Unique ID. Created automatically';
2189
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDKTAG_NAME" IS 'Name of the SDK Version';
2190
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."DESCRIPTION" IS 'General description';
2191
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDK_ID" IS 'Parent SDK';
2192
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."RTAG_ID" IS 'Release within which this SDK is maintained';
2193
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."CREATED_STAMP" IS 'When created';
2194
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."CREATOR_ID" IS 'Who Created the version';
2195
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."STATE_STAMP" IS 'Time of last change to this version';
2196
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."STATE_ID" IS 'User id who made the last state change';
2197
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDK_STATE" IS 'State: U-Under Development; R-Released; D-Deprecated';
4040 dpurdie 2198
--------------------------------------------------------
5384 dpurdie 2199
--  DDL for Table TEMP_ENV_DEPS
2200
--------------------------------------------------------
2201
 
2202
  CREATE TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" 
2203
   (	"SESSION_NUM" NUMBER, 
2204
	"PV_ID" NUMBER, 
2205
	"PKG_ID" NUMBER, 
2206
	"V_EXT" VARCHAR2(50 BYTE), 
2207
	"DPV_ID" NUMBER, 
2208
	"DPKG_ID" NUMBER, 
2209
	"DV_EXT" VARCHAR2(50 BYTE)
2210
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2211
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2212
 NOCOMPRESS LOGGING
5384 dpurdie 2213
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2214
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2215
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2216
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5384 dpurdie 2217
 
2218
   COMMENT ON TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS"  IS 'This table is used in the creation of the package_state information
2219
Data in the table is temporary. It should be cleared out after its been used.
2220
Data will only be used for a few seconds.
2221
 
2222
The table is used to map DPV_IDs to PV_IDs, but only for DPV_IDs that are of interest';
2223
--------------------------------------------------------
4040 dpurdie 2224
--  DDL for Table TEMP_ENV_STATES
2225
--------------------------------------------------------
2226
 
5172 dpurdie 2227
  CREATE TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" 
4040 dpurdie 2228
   (	"SESSION_NUM" NUMBER, 
2229
	"LEVEL_NUM" NUMBER, 
2230
	"PV_ID" NUMBER, 
2231
	"PKG_ID" NUMBER, 
5172 dpurdie 2232
	"V_EXT" VARCHAR2(50 BYTE), 
6031 dpurdie 2233
	"TES_STATE" NUMBER, 
2234
	"BUILD_TYPE" CHAR(1 BYTE)
5172 dpurdie 2235
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2236
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2237
 NOCOMPRESS LOGGING
5172 dpurdie 2238
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2239
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2240
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2241
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2242
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "RM_READONLY";
2243
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "MS_READONLY";
5892 dpurdie 2244
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "DM_READONLY";
2245
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2246
--------------------------------------------------------
2247
--  DDL for Table TEMP_SASH
2248
--------------------------------------------------------
2249
 
5172 dpurdie 2250
  CREATE TABLE "RELEASE_MANAGER"."TEMP_SASH" 
4040 dpurdie 2251
   (	"RTAG_ID" NUMBER, 
2252
	"PROJ_ID" NUMBER
5172 dpurdie 2253
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2254
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2255
 NOCOMPRESS LOGGING
5172 dpurdie 2256
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2257
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2258
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2259
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2260
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "RM_READONLY";
2261
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "MS_READONLY";
5892 dpurdie 2262
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "DM_READONLY";
2263
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2264
--------------------------------------------------------
2265
--  DDL for Table TEMP_TREE_BROWSE
2266
--------------------------------------------------------
2267
 
5172 dpurdie 2268
  CREATE TABLE "RELEASE_MANAGER"."TEMP_TREE_BROWSE" 
4040 dpurdie 2269
   (	"SESSION_NUM" NUMBER, 
2270
	"LEVEL_NUM" NUMBER, 
2271
	"PV_ID" NUMBER, 
2272
	"PKG_ID" NUMBER, 
5172 dpurdie 2273
	"V_EXT" VARCHAR2(50 BYTE), 
4040 dpurdie 2274
	"DIRECTION" NUMBER
5172 dpurdie 2275
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2276
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2277
 NOCOMPRESS LOGGING
5172 dpurdie 2278
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2279
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2280
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2281
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2282
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "RM_READONLY";
2283
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "MS_READONLY";
5892 dpurdie 2284
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "DM_READONLY";
2285
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "RELEASE_MANAGER_READ";
5172 dpurdie 2286
--------------------------------------------------------
2287
--  DDL for Table TEST_RUN
2288
--------------------------------------------------------
2289
 
2290
  CREATE TABLE "RELEASE_MANAGER"."TEST_RUN" 
6031 dpurdie 2291
   (	"TESTRUN_ID" NUMBER, 
2292
	"BUILD_ID" NUMBER, 
5172 dpurdie 2293
	"PLATFORM" VARCHAR2(50 BYTE), 
2294
	"TYPE" VARCHAR2(1 BYTE), 
5384 dpurdie 2295
	"TEST_NAME" VARCHAR2(200 BYTE), 
5172 dpurdie 2296
	"TEST_OUTCOME" VARCHAR2(20 BYTE), 
2297
	"TIME_TAKEN" NUMBER, 
6031 dpurdie 2298
	"FAIL_MESSAGE" CLOB
5172 dpurdie 2299
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2300
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2301
 NOCOMPRESS LOGGING
5172 dpurdie 2302
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2303
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2304
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2305
  TABLESPACE "RELEASE_MANAGER_DATA" 
5172 dpurdie 2306
 LOB ("FAIL_MESSAGE") STORE AS BASICFILE (
6031 dpurdie 2307
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 2308
  NOCACHE LOGGING 
2309
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2310
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2311
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
5172 dpurdie 2312
 
6031 dpurdie 2313
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TESTRUN_ID" IS 'Unique Id. Used to generate a primary key.';
5172 dpurdie 2314
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."PLATFORM" IS 'Target Platform';
2315
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TYPE" IS 'P or D';
2316
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TEST_OUTCOME" IS 'PASS/FAIL/SKIP';
2317
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TIME_TAKEN" IS 'Test Duration in milliseconds';
2318
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."FAIL_MESSAGE" IS 'Failure Message';
4040 dpurdie 2319
--------------------------------------------------------
2320
--  DDL for Table TEST_TYPES
2321
--------------------------------------------------------
2322
 
5172 dpurdie 2323
  CREATE TABLE "RELEASE_MANAGER"."TEST_TYPES" 
4040 dpurdie 2324
   (	"TEST_TYPE_ID" NUMBER, 
5172 dpurdie 2325
	"TEST_TYPE_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 2326
	"DISPLAY_ORDER" NUMBER
5172 dpurdie 2327
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2328
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2329
 NOCOMPRESS LOGGING
5172 dpurdie 2330
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2331
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2332
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2333
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2334
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "RM_READONLY";
2335
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "MS_READONLY";
5892 dpurdie 2336
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "DM_READONLY";
2337
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "RELEASE_MANAGER_READ";
2338
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2339
--------------------------------------------------------
2340
--  DDL for Table UNIT_TESTS
2341
--------------------------------------------------------
2342
 
5172 dpurdie 2343
  CREATE TABLE "RELEASE_MANAGER"."UNIT_TESTS" 
4040 dpurdie 2344
   (	"TEST_ID" NUMBER, 
2345
	"PV_ID" NUMBER, 
2346
	"TEST_TYPES_FK" NUMBER, 
5172 dpurdie 2347
	"TEST_SUMMARY" VARCHAR2(4000 BYTE), 
4040 dpurdie 2348
	"COMPLETION_DATE" DATE, 
2349
	"COMPLETED_BY" NUMBER, 
5172 dpurdie 2350
	"RESULTS_URL" VARCHAR2(2000 BYTE), 
2351
	"RESULTS_ATTACHMENT_NAME" VARCHAR2(2000 BYTE), 
2352
	"TEST_ACCEPTED" CHAR(1 BYTE), 
4040 dpurdie 2353
	"ACCEPTANCE_DATE" DATE, 
2354
	"ACCEPTED_BY" NUMBER, 
5172 dpurdie 2355
	"REVIEW_COMMENTS" VARCHAR2(4000 BYTE), 
2356
	"NUMOF_TEST" VARCHAR2(50 BYTE)
2357
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2358
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2359
 NOCOMPRESS LOGGING
5172 dpurdie 2360
  STORAGE(INITIAL 31457280 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2361
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2362
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2363
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2364
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "RM_READONLY";
2365
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "MS_READONLY";
5892 dpurdie 2366
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "DM_READONLY";
2367
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "RELEASE_MANAGER_READ";
2368
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2369
--------------------------------------------------------
6031 dpurdie 2370
--  DDL for Table VALIDATION_RULES_DELETE_ME
4040 dpurdie 2371
--------------------------------------------------------
2372
 
6031 dpurdie 2373
  CREATE TABLE "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" 
5172 dpurdie 2374
   (	"FIELD_NAME" VARCHAR2(1000 BYTE), 
2375
	"IS_REQUIRED" CHAR(1 BYTE), 
2376
	"IS_NUMERIC" CHAR(1 BYTE), 
4040 dpurdie 2377
	"MIN_NUMERIC_VALUE" NUMBER, 
2378
	"MAX_NUMERIC_VALUE" NUMBER, 
5172 dpurdie 2379
	"IS_DATE" CHAR(1 BYTE), 
4040 dpurdie 2380
	"START_DATE" DATE, 
2381
	"END_DATE" DATE, 
2382
	"MIN_STRING_LENGTH" NUMBER, 
2383
	"MAX_STRING_LENGTH" NUMBER, 
5172 dpurdie 2384
	"REGEXP" VARCHAR2(4000 BYTE), 
2385
	"REGEXP_DESCRIPTION" VARCHAR2(50 BYTE)
2386
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2387
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2388
 NOCOMPRESS LOGGING
5172 dpurdie 2389
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2390
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2391
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2392
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2393
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "RM_READONLY";
2394
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "MS_READONLY";
2395
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "DM_READONLY";
2396
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2397
--------------------------------------------------------
2398
--  DDL for Table VCS_TYPE
2399
--------------------------------------------------------
2400
 
5172 dpurdie 2401
  CREATE TABLE "RELEASE_MANAGER"."VCS_TYPE" 
4040 dpurdie 2402
   (	"VCS_TYPE_ID" NUMBER, 
5172 dpurdie 2403
	"NAME" VARCHAR2(128 BYTE), 
2404
	"TAG" VARCHAR2(32 BYTE)
2405
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2406
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2407
 NOCOMPRESS LOGGING
5172 dpurdie 2408
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2409
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2410
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2411
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2412
  GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "RM_READONLY";
2413
  GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "MS_READONLY";
5892 dpurdie 2414
  GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "DM_READONLY";
4040 dpurdie 2415
--------------------------------------------------------
2416
--  DDL for Table VIEWS
2417
--------------------------------------------------------
2418
 
5172 dpurdie 2419
  CREATE TABLE "RELEASE_MANAGER"."VIEWS" 
4040 dpurdie 2420
   (	"VIEW_ID" NUMBER, 
5172 dpurdie 2421
	"VIEW_NAME" VARCHAR2(30 BYTE), 
4040 dpurdie 2422
	"OWNER_ID" NUMBER, 
5172 dpurdie 2423
	"BASE_VIEW" CHAR(1 BYTE), 
2424
	"PUBLIC_READ" CHAR(1 BYTE)
2425
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2426
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2427
 NOCOMPRESS LOGGING
5172 dpurdie 2428
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2429
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2430
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2431
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2432
 
2433
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEWS"."OWNER_ID" IS '0:Public';
2434
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEWS"."BASE_VIEW" IS 'Y:Base View';
6031 dpurdie 2435
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "RM_READONLY";
2436
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "MS_READONLY";
5892 dpurdie 2437
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "DM_READONLY";
2438
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2439
--------------------------------------------------------
2440
--  DDL for Table VIEW_DEF
2441
--------------------------------------------------------
2442
 
5172 dpurdie 2443
  CREATE TABLE "RELEASE_MANAGER"."VIEW_DEF" 
4040 dpurdie 2444
   (	"VIEW_ID" NUMBER, 
2445
	"PKG_ID" NUMBER
5172 dpurdie 2446
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2447
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2448
 NOCOMPRESS LOGGING
5172 dpurdie 2449
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2450
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2451
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2452
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2453
 
2454
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEW_DEF"."VIEW_ID" IS 'Non Base View ID';
2455
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEW_DEF"."PKG_ID" IS 'Package ID';
2456
   COMMENT ON TABLE "RELEASE_MANAGER"."VIEW_DEF"  IS 'Packages in a non-baseview';
6031 dpurdie 2457
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "RM_READONLY";
2458
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "MS_READONLY";
5892 dpurdie 2459
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "DM_READONLY";
2460
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2461
--------------------------------------------------------
2462
--  DDL for Table VIEW_SETTINGS
2463
--------------------------------------------------------
2464
 
5172 dpurdie 2465
  CREATE TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" 
4040 dpurdie 2466
   (	"USER_ID" NUMBER, 
2467
	"VIEW_ID" NUMBER
5172 dpurdie 2468
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2469
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2470
 NOCOMPRESS LOGGING
5172 dpurdie 2471
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2472
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2473
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2474
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2475
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "RM_READONLY";
2476
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "MS_READONLY";
5892 dpurdie 2477
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "DM_READONLY";
2478
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2479
--------------------------------------------------------
2480
--  DDL for Table VTREES
2481
--------------------------------------------------------
2482
 
5172 dpurdie 2483
  CREATE TABLE "RELEASE_MANAGER"."VTREES" 
4040 dpurdie 2484
   (	"VTREE_ID" NUMBER, 
2485
	"PROJ_ID" NUMBER, 
5172 dpurdie 2486
	"VTREE_NAME" VARCHAR2(50 BYTE), 
2487
	"HIDE" CHAR(1 BYTE)
2488
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2489
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2490
 NOCOMPRESS LOGGING
5172 dpurdie 2491
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2492
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2493
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2494
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2495
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "RM_READONLY";
2496
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "MS_READONLY";
5892 dpurdie 2497
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "DM_READONLY";
2498
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "RELEASE_MANAGER_READ";
2499
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2500
--------------------------------------------------------
2501
--  DDL for Table VTREES_WORLD
2502
--------------------------------------------------------
2503
 
5172 dpurdie 2504
  CREATE TABLE "RELEASE_MANAGER"."VTREES_WORLD" 
4040 dpurdie 2505
   (	"WORLD_ID" NUMBER, 
2506
	"VTREE_ID" NUMBER
5172 dpurdie 2507
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2508
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2509
 NOCOMPRESS LOGGING
5172 dpurdie 2510
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2511
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2512
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2513
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2514
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "RM_READONLY";
2515
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "MS_READONLY";
5892 dpurdie 2516
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "DM_READONLY";
2517
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "RELEASE_MANAGER_READ";
2518
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2519
--------------------------------------------------------
2520
--  DDL for Table WORK_IN_PROGRESS
2521
--------------------------------------------------------
2522
 
5172 dpurdie 2523
  CREATE TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" 
4040 dpurdie 2524
   (	"RTAG_ID" NUMBER, 
2525
	"PV_ID" NUMBER, 
2526
	"VIEW_ID" NUMBER
5172 dpurdie 2527
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2528
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2529
 NOCOMPRESS LOGGING
5172 dpurdie 2530
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2531
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2532
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2533
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2534
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "RM_READONLY";
2535
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "MS_READONLY";
5892 dpurdie 2536
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "DM_READONLY";
2537
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2538
--------------------------------------------------------
2539
--  DDL for Table WORLDS
2540
--------------------------------------------------------
2541
 
5172 dpurdie 2542
  CREATE TABLE "RELEASE_MANAGER"."WORLDS" 
4040 dpurdie 2543
   (	"WORLD_ID" NUMBER, 
5172 dpurdie 2544
	"WORLD_NAME" VARCHAR2(30 BYTE), 
2545
	"WORLD_DESC" VARCHAR2(255 BYTE)
2546
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2547
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2548
 NOCOMPRESS LOGGING
5172 dpurdie 2549
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2550
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2551
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2552
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2553
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "RM_READONLY";
2554
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "MS_READONLY";
5892 dpurdie 2555
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "DM_READONLY";
2556
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2557
--------------------------------------------------------
2558
--  DDL for View ENVIRONMENT_VIEW
2559
--------------------------------------------------------
2560
 
5172 dpurdie 2561
  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 2562
  SELECT 2 AS ENV_AREA,
2563
    rc.PV_ID,
2564
    rc.RTAG_ID,
2565
    rc.BASE_VIEW_ID AS VIEW_ID,
2566
    rc.PKG_STATE,
2567
 rc.DEPRECATED_STATE,
2568
    rc.INSERTOR_ID,
2569
    rc.INSERT_STAMP,
2570
    ' ' AS OPERATION
2571
  FROM RELEASE_CONTENT rc
2572
UNION
2573
SELECT 0 AS ENV_AREA,
2574
    wip.PV_ID,
2575
    wip.RTAG_ID,
2576
    wip.VIEW_ID,
2577
    NULL AS PKG_STATE,
2578
 NULL AS DEPRECATED_STATE,
2579
    NULL AS INSERTOR_ID,
2580
    NULL AS INSERT_STAMP,
2581
    ' ' AS OPERATION
2582
  FROM WORK_IN_PROGRESS wip
2583
UNION
2584
SELECT 1 AS ENV_AREA,
2585
    pl.PV_ID,
2586
    pl.RTAG_ID,
2587
    pl.VIEW_ID,
2588
    NULL AS PKG_STATE,
2589
 NULL AS DEPRECATED_STATE,
2590
    NULL AS INSERTOR_ID,
2591
    NULL AS INSERT_STAMP,
2592
    pl.operation
2593
FROM PLANNED pl;
6031 dpurdie 2594
  GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "RM_READONLY";
5892 dpurdie 2595
  GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "MS_READONLY";
2596
  GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2597
--------------------------------------------------------
2598
--  DDL for View RM_PKG_ISSUES_ID
2599
--------------------------------------------------------
2600
 
5172 dpurdie 2601
  CREATE OR REPLACE FORCE VIEW "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" ("ISS_ID", "PKG_VERSION") AS 
4040 dpurdie 2602
  SELECT DISTINCT ISS_ID, PKG_VERSION FROM RM_PACKAGE_ISSUES WHERE ISS_ID IS NOT NULL
2603
 
2604
;
6031 dpurdie 2605
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" TO "RM_READONLY";
5892 dpurdie 2606
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" TO "MS_READONLY";
2607
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2608
--------------------------------------------------------
4211 dpurdie 2609
--  DDL for Index PK_LICENCES
4040 dpurdie 2610
--------------------------------------------------------
2611
 
5172 dpurdie 2612
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_LICENCES" ON "RELEASE_MANAGER"."LICENCES" ("LICENCE") 
2613
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2614
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2615
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2616
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2617
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2618
--------------------------------------------------------
4211 dpurdie 2619
--  DDL for Index UNQ_PKG_BUILD_ENV
4040 dpurdie 2620
--------------------------------------------------------
2621
 
5172 dpurdie 2622
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PKG_BUILD_ENV" ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ("PV_ID", "BE_ID") 
2623
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2624
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2625
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2626
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2627
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 2628
--------------------------------------------------------
2629
--  DDL for Index SDK_NAMES_UK1
2630
--------------------------------------------------------
2631
 
2632
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_NAMES_UK1" ON "RELEASE_MANAGER"."SDK_NAMES" ("SDK_NAME") 
2633
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2634
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2635
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2636
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2637
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2638
--------------------------------------------------------
4211 dpurdie 2639
--  DDL for Index UNQ_PACKAGES
4040 dpurdie 2640
--------------------------------------------------------
2641
 
5172 dpurdie 2642
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGES" ON "RELEASE_MANAGER"."PACKAGES" ("PKG_NAME") 
2643
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2644
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2646
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2647
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 2648
--------------------------------------------------------
2649
--  DDL for Index INX_PACKAGES_ALIAS
2650
--------------------------------------------------------
2651
 
5384 dpurdie 2652
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_PACKAGES_ALIAS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID", "PKG_ID", "V_EXT") 
5172 dpurdie 2653
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2654
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2655
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2656
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2657
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2658
--------------------------------------------------------
2659
--  DDL for Index CODE_REVIEW_URL_PK
2660
--------------------------------------------------------
2661
 
5172 dpurdie 2662
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CODE_REVIEW_URL_PK" ON "RELEASE_MANAGER"."CODE_REVIEW_URL" ("CR_ID") 
2663
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2664
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2665
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2666
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2667
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 2668
--------------------------------------------------------
2669
--  DDL for Index SDK_NAMES_PK
2670
--------------------------------------------------------
2671
 
2672
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_NAMES_PK" ON "RELEASE_MANAGER"."SDK_NAMES" ("SDK_ID") 
2673
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2674
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2675
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2676
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2677
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 2678
--------------------------------------------------------
2679
--  DDL for Index INX_ACTION_TIMESTAMP
2680
--------------------------------------------------------
2681
 
2682
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_TIMESTAMP" ON "RELEASE_MANAGER"."ACTION_LOG" ("ACTION_TIMESTAMP") 
2683
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2684
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2685
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2686
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2687
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2688
--------------------------------------------------------
4211 dpurdie 2689
--  DDL for Index INX_UT_COMPLETED
4040 dpurdie 2690
--------------------------------------------------------
2691
 
5172 dpurdie 2692
  CREATE INDEX "RELEASE_MANAGER"."INX_UT_COMPLETED" ON "RELEASE_MANAGER"."UNIT_TESTS" ("COMPLETION_DATE", "COMPLETED_BY") 
2693
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2694
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2695
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2696
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2697
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2698
--------------------------------------------------------
4308 dpurdie 2699
--  DDL for Index INX_PV_ID_PKGDOC
2700
--------------------------------------------------------
4040 dpurdie 2701
 
5172 dpurdie 2702
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_ID_PKGDOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID") 
2703
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2704
  STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2705
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2706
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2707
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2708
--------------------------------------------------------
2709
--  DDL for Index UNQ_VIEW_SETTINGS
2710
--------------------------------------------------------
4040 dpurdie 2711
 
5172 dpurdie 2712
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEW_SETTINGS" ON "RELEASE_MANAGER"."VIEW_SETTINGS" ("USER_ID", "VIEW_ID") 
2713
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2714
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2715
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2716
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2717
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2718
--------------------------------------------------------
2719
--  DDL for Index INX_PP_PV_ID
2720
--------------------------------------------------------
4040 dpurdie 2721
 
5172 dpurdie 2722
  CREATE INDEX "RELEASE_MANAGER"."INX_PP_PV_ID" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PV_ID") 
2723
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2724
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2725
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2726
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2727
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2728
--------------------------------------------------------
2729
--  DDL for Index PK_VIEWS
2730
--------------------------------------------------------
4040 dpurdie 2731
 
5172 dpurdie 2732
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_VIEWS" ON "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") 
2733
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2734
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2735
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2736
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2737
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 2738
--------------------------------------------------------
2739
--  DDL for Index CQ_USERS_PK
2740
--------------------------------------------------------
2741
 
2742
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_USERS_PK" ON "RELEASE_MANAGER"."CQ_USERS" ("DBID") 
2743
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2744
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2745
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2746
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2747
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2748
--------------------------------------------------------
2749
--  DDL for Index PK_PACKAGES
2750
--------------------------------------------------------
4040 dpurdie 2751
 
5172 dpurdie 2752
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PACKAGES" ON "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") 
2753
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2754
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2755
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2756
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2757
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2758
--------------------------------------------------------
2759
--  DDL for Index PK_TEST_TYPES
2760
--------------------------------------------------------
4040 dpurdie 2761
 
5172 dpurdie 2762
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_TEST_TYPES" ON "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_ID") 
2763
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2764
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2765
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2766
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2767
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2768
--------------------------------------------------------
2769
--  DDL for Index UNQ_ACTTYPE_ID
2770
--------------------------------------------------------
4040 dpurdie 2771
 
5172 dpurdie 2772
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_ACTTYPE_ID" ON "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") 
2773
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2774
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2775
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2776
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2777
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2778
--------------------------------------------------------
2779
--  DDL for Index INX_PROJ_ACTION_DATE_TIME
2780
--------------------------------------------------------
4040 dpurdie 2781
 
5172 dpurdie 2782
  CREATE INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_DATE_TIME" ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ("ACTION_DATETIME") 
2783
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2784
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2785
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2786
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2787
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2788
--------------------------------------------------------
2789
--  DDL for Index INX_RC_PKG_STATE
2790
--------------------------------------------------------
4040 dpurdie 2791
 
5172 dpurdie 2792
  CREATE INDEX "RELEASE_MANAGER"."INX_RC_PKG_STATE" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("PKG_STATE") 
2793
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2794
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2795
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2796
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2797
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2798
--------------------------------------------------------
2799
--  DDL for Index PROCESSES_PK
2800
--------------------------------------------------------
4040 dpurdie 2801
 
5172 dpurdie 2802
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PROCESSES_PK" ON "RELEASE_MANAGER"."PROCESSES" ("PROC_ID") 
2803
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2804
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2805
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2806
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2807
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2808
--------------------------------------------------------
2809
--  DDL for Index INX_PACKAGE_DEPS_DPV_ID
2810
--------------------------------------------------------
4040 dpurdie 2811
 
5172 dpurdie 2812
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPV_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPV_ID") 
2813
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2814
  STORAGE(INITIAL 75497472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2815
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2816
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2817
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2818
--------------------------------------------------------
6031 dpurdie 2819
--  DDL for Index PACKAGE_VERSIONS_RNOTE
2820
--------------------------------------------------------
2821
 
2822
  CREATE INDEX "RELEASE_MANAGER"."PACKAGE_VERSIONS_RNOTE" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("RELEASE_NOTES_INFO") 
2823
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2824
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2825
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2826
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2827
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2828
--------------------------------------------------------
4308 dpurdie 2829
--  DDL for Index INX_PACKAGES_PKG_VERSION
2830
--------------------------------------------------------
4040 dpurdie 2831
 
5172 dpurdie 2832
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_VERSION" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_VERSION") 
2833
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2834
  STORAGE(INITIAL 10485760 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2835
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2836
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2837
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2838
--------------------------------------------------------
2839
--  DDL for Index UNQ_PACKAGE_METRICS
2840
--------------------------------------------------------
4040 dpurdie 2841
 
5172 dpurdie 2842
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_METRICS" ON "RELEASE_MANAGER"."PACKAGE_METRICS" ("PV_ID") 
2843
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2844
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2845
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2846
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2847
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2848
--------------------------------------------------------
2849
--  DDL for Index UNQ_PLATFORM
2850
--------------------------------------------------------
4040 dpurdie 2851
 
5172 dpurdie 2852
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PLATFORM" ON "RELEASE_MANAGER"."PLATFORMS" ("NAME") 
2853
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2854
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2855
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2856
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2857
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2858
--------------------------------------------------------
2859
--  DDL for Index UNQ_VIEWS
2860
--------------------------------------------------------
4040 dpurdie 2861
 
5172 dpurdie 2862
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEWS" ON "RELEASE_MANAGER"."VIEWS" ("VIEW_NAME", "OWNER_ID") 
2863
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2864
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2865
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2866
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2867
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2868
--------------------------------------------------------
4211 dpurdie 2869
--  DDL for Index PRODUCT_STATES_PK
4040 dpurdie 2870
--------------------------------------------------------
2871
 
5172 dpurdie 2872
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PRODUCT_STATES_PK" ON "RELEASE_MANAGER"."PRODUCT_STATES" ("STATE_ID") 
2873
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2874
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2875
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2876
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2877
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2878
--------------------------------------------------------
4211 dpurdie 2879
--  DDL for Index PK_MESSAGE_BOARD
4040 dpurdie 2880
--------------------------------------------------------
2881
 
5172 dpurdie 2882
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_MESSAGE_BOARD" ON "RELEASE_MANAGER"."MESSAGE_BOARD" ("MSG_ID") 
2883
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2884
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2885
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2886
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2887
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2888
--------------------------------------------------------
2889
--  DDL for Index PK_BUILD_MACHINE_CONFIG
2890
--------------------------------------------------------
4040 dpurdie 2891
 
5172 dpurdie 2892
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_BUILD_MACHINE_CONFIG" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ("BMCON_ID") 
2893
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2894
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2895
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2896
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2897
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2898
--------------------------------------------------------
2899
--  DDL for Index INX_MSGBOARD
2900
--------------------------------------------------------
4040 dpurdie 2901
 
5172 dpurdie 2902
  CREATE INDEX "RELEASE_MANAGER"."INX_MSGBOARD" ON "RELEASE_MANAGER"."MESSAGE_BOARD" ("EXPIRY_DATE", "DUE_DATE") 
2903
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2904
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2905
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2906
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2907
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2908
--------------------------------------------------------
2909
--  DDL for Index PK_VTREES
2910
--------------------------------------------------------
4040 dpurdie 2911
 
5172 dpurdie 2912
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_VTREES" ON "RELEASE_MANAGER"."VTREES" ("VTREE_ID") 
2913
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2914
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2915
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2916
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2917
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2918
--------------------------------------------------------
2919
--  DDL for Index UNQ_UT_PART1
2920
--------------------------------------------------------
4040 dpurdie 2921
 
5172 dpurdie 2922
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_UT_PART1" ON "RELEASE_MANAGER"."UNIT_TESTS" ("PV_ID", "TEST_ID") 
2923
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2924
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2925
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2926
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2927
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2928
--------------------------------------------------------
2929
--  DDL for Index UNQ_BUILD_ENV
2930
--------------------------------------------------------
4040 dpurdie 2931
 
5172 dpurdie 2932
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV" ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_NAME") 
2933
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2934
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2935
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2936
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2937
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2938
--------------------------------------------------------
6031 dpurdie 2939
--  DDL for Index PK_RUN_LEVEL
2940
--------------------------------------------------------
2941
 
2942
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_RUN_LEVEL" ON "RELEASE_MANAGER"."RUN_LEVEL" ("RCON_ID") 
2943
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2944
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2945
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2946
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2947
  TABLESPACE "RELEASE_MANAGER_INDX" ;
2948
--------------------------------------------------------
4211 dpurdie 2949
--  DDL for Index INX_ACTION_DATE_TIME
4040 dpurdie 2950
--------------------------------------------------------
2951
 
5172 dpurdie 2952
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_DATE_TIME" ON "RELEASE_MANAGER"."ACTION_LOG" ("ACTION_DATETIME") 
2953
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2954
  STORAGE(INITIAL 92274688 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2955
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2956
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2957
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2958
--------------------------------------------------------
4308 dpurdie 2959
--  DDL for Index UNQ_BUILD_MACHINE_CONFIG02
2960
--------------------------------------------------------
4040 dpurdie 2961
 
5172 dpurdie 2962
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_MACHINE_CONFIG02" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ("MACHINE_HOSTNAME") 
2963
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2964
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2965
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2966
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2967
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2968
--------------------------------------------------------
5384 dpurdie 2969
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX6
2970
--------------------------------------------------------
2971
 
2972
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX6" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("NEW_NUM") 
2973
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2974
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2975
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2976
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2977
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 2978
--------------------------------------------------------
4308 dpurdie 2979
--  DDL for Index BUILD_MACHINES_PK
2980
--------------------------------------------------------
4040 dpurdie 2981
 
5172 dpurdie 2982
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_MACHINES_PK" ON "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") 
2983
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2984
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2985
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2986
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2987
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2988
--------------------------------------------------------
2989
--  DDL for Index INX_TTB_SESSION
2990
--------------------------------------------------------
4040 dpurdie 2991
 
5172 dpurdie 2992
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_SESSION" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("SESSION_NUM") 
2993
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2994
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2995
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2996
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2997
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2998
--------------------------------------------------------
2999
--  DDL for Index UNQ_RTD
3000
--------------------------------------------------------
4040 dpurdie 3001
 
5172 dpurdie 3002
  CREATE INDEX "RELEASE_MANAGER"."UNQ_RTD" ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ("PV_ID", "RTD_ID") 
3003
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3004
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3005
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3006
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3007
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 3008
--------------------------------------------------------
5892 dpurdie 3009
--  DDL for Index BUILD_PLAN_PK
3010
--------------------------------------------------------
3011
 
3012
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_PLAN_PK" ON "RELEASE_MANAGER"."BUILD_PLAN" ("RTAG_ID", "BUILD_ORDER", "PV_ID") 
3013
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3014
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3015
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3016
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3017
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5892 dpurdie 3018
--------------------------------------------------------
5172 dpurdie 3019
--  DDL for Index SDK_CONTENT_INDEX1
3020
--------------------------------------------------------
3021
 
3022
  CREATE INDEX "RELEASE_MANAGER"."SDK_CONTENT_INDEX1" ON "RELEASE_MANAGER"."SDK_CONTENT" ("SDKTAG_ID") 
3023
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3024
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3025
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3026
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3027
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3028
--------------------------------------------------------
3029
--  DDL for Index CQ_STATEDEF_PK
3030
--------------------------------------------------------
3031
 
3032
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_STATEDEF_PK" ON "RELEASE_MANAGER"."CQ_STATEDEF" ("ID") 
3033
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3034
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3035
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3036
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3037
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3038
--------------------------------------------------------
4211 dpurdie 3039
--  DDL for Index INX_RL_RTAG_ID
4040 dpurdie 3040
--------------------------------------------------------
3041
 
5172 dpurdie 3042
  CREATE INDEX "RELEASE_MANAGER"."INX_RL_RTAG_ID" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("RTAG_ID") 
3043
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3044
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3045
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3046
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3047
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3048
--------------------------------------------------------
4211 dpurdie 3049
--  DDL for Index UNQ_VIEW_DEF
4040 dpurdie 3050
--------------------------------------------------------
3051
 
5172 dpurdie 3052
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEW_DEF" ON "RELEASE_MANAGER"."VIEW_DEF" ("VIEW_ID", "PKG_ID") 
3053
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3054
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3055
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3056
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3057
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3058
--------------------------------------------------------
4211 dpurdie 3059
--  DDL for Index INX_PACKAGES_PKG_NAME
4040 dpurdie 3060
--------------------------------------------------------
3061
 
5172 dpurdie 3062
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_NAME" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID") 
3063
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3064
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3065
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3066
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3067
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3068
--------------------------------------------------------
4211 dpurdie 3069
--  DDL for Index INX_PCOMP_FK_PV_ID
4040 dpurdie 3070
--------------------------------------------------------
3071
 
5172 dpurdie 3072
  CREATE INDEX "RELEASE_MANAGER"."INX_PCOMP_FK_PV_ID" ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" ("PV_ID") 
3073
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3074
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3075
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3076
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3077
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3078
--------------------------------------------------------
4211 dpurdie 3079
--  DDL for Index DAEMON_INSTRUCTIONS_UK1
4040 dpurdie 3080
--------------------------------------------------------
3081
 
5172 dpurdie 3082
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS_UK1" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("OP_CODE", "RTAG_ID", "PV_ID") 
3083
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3084
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3085
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3086
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3087
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3088
--------------------------------------------------------
4211 dpurdie 3089
--  DDL for Index INX_FILE_NAME
4040 dpurdie 3090
--------------------------------------------------------
3091
 
5172 dpurdie 3092
  CREATE INDEX "RELEASE_MANAGER"."INX_FILE_NAME" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" (UPPER("FILE_NAME")) 
3093
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3094
  STORAGE(INITIAL 1147142144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3095
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3096
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3097
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3098
--------------------------------------------------------
4211 dpurdie 3099
--  DDL for Index INX_IS_PATCH_IGNORE
4040 dpurdie 3100
--------------------------------------------------------
3101
 
5172 dpurdie 3102
  CREATE INDEX "RELEASE_MANAGER"."INX_IS_PATCH_IGNORE" ON "RELEASE_MANAGER"."IGNORE_WARNINGS" ("IS_PATCH_IGNORE") 
3103
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3104
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3105
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3106
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3107
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3108
--------------------------------------------------------
6031 dpurdie 3109
--  DDL for Index PK_TEST_RUN
3110
--------------------------------------------------------
3111
 
3112
  CREATE INDEX "RELEASE_MANAGER"."PK_TEST_RUN" ON "RELEASE_MANAGER"."TEST_RUN" ("TESTRUN_ID") 
3113
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3114
  STORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3115
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3116
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3117
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3118
--------------------------------------------------------
4211 dpurdie 3119
--  DDL for Index UNQ_BUILD_ENV_DOCS
4040 dpurdie 3120
--------------------------------------------------------
3121
 
5172 dpurdie 3122
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV_DOCS" ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" ("BE_ID", "DOC_NUM") 
3123
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3124
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3125
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3126
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3127
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3128
--------------------------------------------------------
4211 dpurdie 3129
--  DDL for Index INX_PROJ_ACTION_LOG_PROJ
4040 dpurdie 3130
--------------------------------------------------------
3131
 
5172 dpurdie 3132
  CREATE INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_LOG_PROJ" ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ("PROJ_ID") 
3133
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3134
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3135
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3136
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3137
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 3138
--------------------------------------------------------
5384 dpurdie 3139
--  DDL for Index LICENCING_PK
3140
--------------------------------------------------------
3141
 
3142
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."LICENCING_PK" ON "RELEASE_MANAGER"."LICENCING" ("PV_ID", "LICENCE") 
3143
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3144
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3145
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3146
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3147
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3148
--------------------------------------------------------
5172 dpurdie 3149
--  DDL for Index BUILD_SERVICE_CONFIG_INDEX1
3150
--------------------------------------------------------
3151
 
3152
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG_INDEX1" ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" ("SERVICE") 
3153
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3154
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3155
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3156
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3157
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 3158
--------------------------------------------------------
3159
--  DDL for Index RELEASE_MODIFIED_PK
3160
--------------------------------------------------------
3161
 
3162
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."RELEASE_MODIFIED_PK" ON "RELEASE_MANAGER"."RELEASE_MODIFIED" ("RTAG_ID") 
3163
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3164
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3165
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3166
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3167
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3168
--------------------------------------------------------
3169
--  DDL for Index CQ_HISTORY_INDEX2
3170
--------------------------------------------------------
3171
 
3172
  CREATE INDEX "RELEASE_MANAGER"."CQ_HISTORY_INDEX2" ON "RELEASE_MANAGER"."CQ_HISTORY" ("ENTITYDEF_ID") 
3173
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3174
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3175
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3176
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3177
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3178
--------------------------------------------------------
3179
--  DDL for Index INX_TTB_LEVEL_NUM
3180
--------------------------------------------------------
3181
 
5172 dpurdie 3182
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_LEVEL_NUM" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("LEVEL_NUM") 
3183
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3184
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3185
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3186
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3187
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3188
--------------------------------------------------------
4211 dpurdie 3189
--  DDL for Index UNQ_WORK_IN_PROGRESS
4040 dpurdie 3190
--------------------------------------------------------
3191
 
5172 dpurdie 3192
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_WORK_IN_PROGRESS" ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" ("RTAG_ID", "PV_ID") 
3193
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3194
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3195
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3196
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3197
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3198
--------------------------------------------------------
4211 dpurdie 3199
--  DDL for Index INX_PACKAGES_V_NMM
4040 dpurdie 3200
--------------------------------------------------------
3201
 
5172 dpurdie 3202
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_NMM" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_NMM") 
3203
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3204
  STORAGE(INITIAL 9437184 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3205
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3206
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3207
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3208
--------------------------------------------------------
6031 dpurdie 3209
--  DDL for Index TEST_RUN_IDX_BUILD_ID
3210
--------------------------------------------------------
3211
 
3212
  CREATE INDEX "RELEASE_MANAGER"."TEST_RUN_IDX_BUILD_ID" ON "RELEASE_MANAGER"."TEST_RUN" ("BUILD_ID") 
3213
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3214
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3215
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3216
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3217
  TABLESPACE "RELEASE_MANAGER_DATA" ;
3218
--------------------------------------------------------
4211 dpurdie 3219
--  DDL for Index UNQ_PLANNED
4040 dpurdie 3220
--------------------------------------------------------
3221
 
5172 dpurdie 3222
  CREATE INDEX "RELEASE_MANAGER"."UNQ_PLANNED" ON "RELEASE_MANAGER"."PLANNED" ("RTAG_ID", "PV_ID") 
3223
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3224
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3225
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3226
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3227
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3228
--------------------------------------------------------
4211 dpurdie 3229
--  DDL for Index INX_TES_PKGEXT
4040 dpurdie 3230
--------------------------------------------------------
3231
 
5172 dpurdie 3232
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_PKGEXT" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("PKG_ID", "V_EXT") 
3233
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3234
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3235
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3236
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3237
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3238
--------------------------------------------------------
3239
--  DDL for Index UNQ_BUILD_MACHINE_CONFIG01
3240
--------------------------------------------------------
4040 dpurdie 3241
 
5172 dpurdie 3242
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_MACHINE_CONFIG01" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" (LOWER("DISPLAY_NAME")) 
3243
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3244
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3245
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3246
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3247
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3248
--------------------------------------------------------
5384 dpurdie 3249
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX2
3250
--------------------------------------------------------
3251
 
3252
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX2" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("STATE") 
3253
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3254
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3255
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3256
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3257
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3258
--------------------------------------------------------
3259
--  DDL for Index TEMP_ENV_DEPS_PK
3260
--------------------------------------------------------
3261
 
3262
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."TEMP_ENV_DEPS_PK" ON "RELEASE_MANAGER"."TEMP_ENV_DEPS" ("PV_ID", "SESSION_NUM", "DPV_ID") 
3263
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3264
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3265
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3266
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3267
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3268
--------------------------------------------------------
4211 dpurdie 3269
--  DDL for Index UNQ_RELEASE_LINKS
4040 dpurdie 3270
--------------------------------------------------------
3271
 
5172 dpurdie 3272
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_LINKS" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("RTAG_ID", "REF_RTAG_ID") 
3273
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3274
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3275
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3276
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3277
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3278
--------------------------------------------------------
3279
--  DDL for Index UNQ_PKG_DOC
3280
--------------------------------------------------------
4040 dpurdie 3281
 
5172 dpurdie 3282
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PKG_DOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID", "DOC_NUM") 
3283
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3284
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3285
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3286
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3287
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3288
--------------------------------------------------------
3289
--  DDL for Index LXR_STATE_PK
3290
--------------------------------------------------------
3291
 
3292
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."LXR_STATE_PK" ON "RELEASE_MANAGER"."LXR_STATE" ("RTAG_ID") 
3293
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3294
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3295
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3296
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3297
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3298
--------------------------------------------------------
4211 dpurdie 3299
--  DDL for Index DAEMON_INSTRUCTIONS_PK
4040 dpurdie 3300
--------------------------------------------------------
3301
 
5172 dpurdie 3302
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS_PK" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("DAEMON_INSTRUCTIONS_ID") 
3303
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3304
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3305
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3306
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3307
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3308
--------------------------------------------------------
3309
--  DDL for Index INX_DAEMON_INST_SCHED_DATETIME
3310
--------------------------------------------------------
4040 dpurdie 3311
 
5172 dpurdie 3312
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_SCHED_DATETIME" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("SCHEDULED_DATETIME") 
3313
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3314
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3315
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3316
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3317
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3318
--------------------------------------------------------
4211 dpurdie 3319
--  DDL for Index INX_TTB_PKG
4040 dpurdie 3320
--------------------------------------------------------
3321
 
5172 dpurdie 3322
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_PKG" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("PKG_ID", "V_EXT") 
3323
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3324
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3325
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3326
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3327
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3328
--------------------------------------------------------
3329
--  DDL for Index PACKAGE_VERSIONS_MODIFER_ID
3330
--------------------------------------------------------
3331
 
3332
  CREATE INDEX "RELEASE_MANAGER"."PACKAGE_VERSIONS_MODIFER_ID" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("MODIFIER_ID") 
3333
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3334
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3335
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3336
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3337
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3338
--------------------------------------------------------
4211 dpurdie 3339
--  DDL for Index UNQ_VALIDATION_RULES
4040 dpurdie 3340
--------------------------------------------------------
3341
 
6031 dpurdie 3342
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VALIDATION_RULES" ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" ("FIELD_NAME") 
5172 dpurdie 3343
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3344
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3345
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3346
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3347
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3348
--------------------------------------------------------
3349
--  DDL for Index BUILD_STANDARDS_ADDENDUM_PK
3350
--------------------------------------------------------
4040 dpurdie 3351
 
5172 dpurdie 3352
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM_PK" ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ("BSA_ID") 
3353
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3354
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3355
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3356
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3357
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3358
--------------------------------------------------------
4211 dpurdie 3359
--  DDL for Index INX_PV_OWNER_ID
4040 dpurdie 3360
--------------------------------------------------------
3361
 
5172 dpurdie 3362
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_OWNER_ID" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("OWNER_ID") 
3363
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3364
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3365
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3366
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3367
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3368
--------------------------------------------------------
4211 dpurdie 3369
--  DDL for Index INX_TES_TES_STATE
4040 dpurdie 3370
--------------------------------------------------------
3371
 
5172 dpurdie 3372
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_TES_STATE" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("TES_STATE") 
3373
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3374
  STORAGE(INITIAL 458752 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3375
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3376
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3377
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3378
--------------------------------------------------------
4308 dpurdie 3379
--  DDL for Index UNQ_AN_PART1
3380
--------------------------------------------------------
4040 dpurdie 3381
 
5172 dpurdie 3382
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_AN_PART1" ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" ("PV_ID", "NOTE_ID") 
3383
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3384
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3385
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3386
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3387
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3388
--------------------------------------------------------
4211 dpurdie 3389
--  DDL for Index UNQ_RELEASE_CONTENTS
4040 dpurdie 3390
--------------------------------------------------------
3391
 
5172 dpurdie 3392
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_CONTENTS" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("RTAG_ID", "PV_ID") 
3393
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3394
  STORAGE(INITIAL 10485760 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3395
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3396
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3397
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3398
--------------------------------------------------------
3399
--  DDL for Index INX_ACTION_LOG_PV_ID
3400
--------------------------------------------------------
4040 dpurdie 3401
 
5172 dpurdie 3402
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_LOG_PV_ID" ON "RELEASE_MANAGER"."ACTION_LOG" ("PV_ID") 
3403
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3404
  STORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3405
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3406
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3407
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3408
--------------------------------------------------------
4211 dpurdie 3409
--  DDL for Index UNQ_TEST_TYPE_NAME
4040 dpurdie 3410
--------------------------------------------------------
3411
 
5172 dpurdie 3412
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_TEST_TYPE_NAME" ON "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_NAME") 
3413
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3414
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3415
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3416
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3417
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 3418
--------------------------------------------------------
3419
--  DDL for Index PEGGED_VERSIONS_INDEX1
3420
--------------------------------------------------------
3421
 
3422
  CREATE INDEX "RELEASE_MANAGER"."PEGGED_VERSIONS_INDEX1" ON "RELEASE_MANAGER"."PEGGED_VERSIONS" ("RTAG_ID", "PV_ID") 
3423
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3424
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3425
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3426
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3427
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3428
--------------------------------------------------------
4308 dpurdie 3429
--  DDL for Index PKNOTE_MANAGER1
3430
--------------------------------------------------------
4040 dpurdie 3431
 
5172 dpurdie 3432
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PKNOTE_MANAGER1" ON "RELEASE_MANAGER"."NOTE_MANAGER" ("NID") 
3433
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3434
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3435
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3436
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3437
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3438
--------------------------------------------------------
3439
--  DDL for Index INX_PACKAGES_V_MM
3440
--------------------------------------------------------
4040 dpurdie 3441
 
5172 dpurdie 3442
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_MM" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_MM") 
3443
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3444
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3445
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3446
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3447
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3448
--------------------------------------------------------
3449
--  DDL for Index INX_CODE_REVIEW
3450
--------------------------------------------------------
4040 dpurdie 3451
 
5172 dpurdie 3452
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_CODE_REVIEW" ON "RELEASE_MANAGER"."CODE_REVIEWS" ("PV_ID") 
3453
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3454
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3455
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3456
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3457
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3458
--------------------------------------------------------
4211 dpurdie 3459
--  DDL for Index UNQ_VTREES
4040 dpurdie 3460
--------------------------------------------------------
3461
 
5172 dpurdie 3462
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VTREES" ON "RELEASE_MANAGER"."VTREES" ("PROJ_ID", "VTREE_NAME") 
3463
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3464
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3465
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3466
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3467
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3468
--------------------------------------------------------
3469
--  DDL for Index INX_PACKAGE_DEPS_PKG_ID
3470
--------------------------------------------------------
4040 dpurdie 3471
 
5172 dpurdie 3472
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PKG_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PKG_ID") 
3473
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3474
  STORAGE(INITIAL 83886080 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3475
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3476
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3477
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3478
--------------------------------------------------------
4211 dpurdie 3479
--  DDL for Index UNQ_PROJECTS
4040 dpurdie 3480
--------------------------------------------------------
3481
 
5172 dpurdie 3482
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PROJECTS" ON "RELEASE_MANAGER"."PROJECTS" ("PROJ_NAME") 
3483
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3484
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3485
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3486
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3487
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3488
--------------------------------------------------------
3489
--  DDL for Index INX_PACKAGES_V_EXT
3490
--------------------------------------------------------
4040 dpurdie 3491
 
5172 dpurdie 3492
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_EXT" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_EXT") 
3493
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3494
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3495
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3496
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3497
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3498
--------------------------------------------------------
4211 dpurdie 3499
--  DDL for Index PK_PROJECTS
4040 dpurdie 3500
--------------------------------------------------------
3501
 
5172 dpurdie 3502
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PROJECTS" ON "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") 
3503
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3504
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3505
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3506
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3507
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3508
--------------------------------------------------------
3509
--  DDL for Index INX_TES_PV
3510
--------------------------------------------------------
4040 dpurdie 3511
 
5172 dpurdie 3512
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_PV" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("PV_ID") 
3513
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3514
  STORAGE(INITIAL 851968 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3515
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3516
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3517
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3518
--------------------------------------------------------
5384 dpurdie 3519
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX5
3520
--------------------------------------------------------
3521
 
3522
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX5" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PRODUCT") 
3523
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3524
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3525
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3526
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3527
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3528
--------------------------------------------------------
4211 dpurdie 3529
--  DDL for Index UNQ_VTREE_WORLD
4040 dpurdie 3530
--------------------------------------------------------
3531
 
5172 dpurdie 3532
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VTREE_WORLD" ON "RELEASE_MANAGER"."VTREES_WORLD" ("WORLD_ID", "VTREE_ID") 
3533
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3534
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3535
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3536
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3537
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3538
--------------------------------------------------------
4308 dpurdie 3539
--  DDL for Index UNQ_IGW
3540
--------------------------------------------------------
4040 dpurdie 3541
 
5172 dpurdie 3542
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_IGW" ON "RELEASE_MANAGER"."IGNORE_WARNINGS" ("RTAG_ID", "PV_ID", "DPV_ID") 
3543
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3544
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3545
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3546
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3547
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3548
--------------------------------------------------------
3549
--  DDL for Index INX_DAEMON_INST_RTAG_ID
3550
--------------------------------------------------------
4040 dpurdie 3551
 
5172 dpurdie 3552
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_RTAG_ID" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("RTAG_ID") 
3553
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3554
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3555
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3556
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3557
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 3558
--------------------------------------------------------
3559
--  DDL for Index SDK_TAGS_PK
3560
--------------------------------------------------------
3561
 
3562
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_TAGS_PK" ON "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") 
3563
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3564
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3565
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3566
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3567
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3568
--------------------------------------------------------
3569
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX7
3570
--------------------------------------------------------
3571
 
3572
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX7" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("DEPENDANT_DEVIS") 
3573
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3574
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3575
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3576
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3577
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3578
--------------------------------------------------------
3579
--  DDL for Index PK_NOTIFICATION_HISTORY
3580
--------------------------------------------------------
4040 dpurdie 3581
 
5172 dpurdie 3582
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_NOTIFICATION_HISTORY" ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ("RTAG_ID", "PV_ID", "USER_ID") 
3583
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3584
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3585
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3586
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3587
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3588
--------------------------------------------------------
3589
--  DDL for Index UNQ_PACKAGE_DEPENDENCIES
3590
--------------------------------------------------------
4040 dpurdie 3591
 
5172 dpurdie 3592
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_DEPENDENCIES" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PV_ID", "DPV_ID") 
3593
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3594
  STORAGE(INITIAL 100663296 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3595
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3596
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3597
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3598
--------------------------------------------------------
3599
--  DDL for Index INX_PACKAGE_DEPS_PV_ID
3600
--------------------------------------------------------
4040 dpurdie 3601
 
5172 dpurdie 3602
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PV_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PV_ID") 
3603
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3604
  STORAGE(INITIAL 75497472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3605
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3606
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3607
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3608
--------------------------------------------------------
4211 dpurdie 3609
--  DDL for Index BUILD_STANDARDS_PK
4040 dpurdie 3610
--------------------------------------------------------
3611
 
5172 dpurdie 3612
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_PK" ON "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") 
3613
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3614
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3615
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3616
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3617
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3618
--------------------------------------------------------
3619
--  DDL for Index UNQ_CQ
3620
--------------------------------------------------------
4040 dpurdie 3621
 
5172 dpurdie 3622
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_CQ" ON "RELEASE_MANAGER"."CQ_ISSUES" ("PV_ID", "ISS_ID", "ISS_DB") 
3623
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3624
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3625
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3626
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3627
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3628
--------------------------------------------------------
4211 dpurdie 3629
--  DDL for Index UNQ_PACKAGE_VERSIONS
4040 dpurdie 3630
--------------------------------------------------------
3631
 
5172 dpurdie 3632
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_VERSIONS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID", "PKG_VERSION") 
3633
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3634
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3635
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3636
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3637
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3638
--------------------------------------------------------
3639
--  DDL for Index INX_PV_ID_TEST_ID_PKGDOC
3640
--------------------------------------------------------
4040 dpurdie 3641
 
5172 dpurdie 3642
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_ID_TEST_ID_PKGDOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID", "TEST_ID") 
3643
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3644
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3646
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3647
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3648
--------------------------------------------------------
4211 dpurdie 3649
--  DDL for Index UNQ_PACKAGE_PATCHES
4040 dpurdie 3650
--------------------------------------------------------
3651
 
5172 dpurdie 3652
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_PATCHES" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PATCH_ID") 
3653
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3654
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3655
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3656
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3657
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3658
--------------------------------------------------------
5384 dpurdie 3659
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX3
3660
--------------------------------------------------------
3661
 
3662
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX3" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PACKAGE_REF") 
3663
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3664
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3665
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3666
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3667
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3668
--------------------------------------------------------
3669
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX4
3670
--------------------------------------------------------
3671
 
3672
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX4" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PROJECT") 
3673
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3674
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3675
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3676
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3677
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3678
--------------------------------------------------------
4308 dpurdie 3679
--  DDL for Index UNQ_REL_COMPONENTS
3680
--------------------------------------------------------
4040 dpurdie 3681
 
5172 dpurdie 3682
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_REL_COMPONENTS" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" ("PV_ID", "FILE_NAME", "FILE_PATH") 
3683
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3684
  STORAGE(INITIAL 3489660928 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3685
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3686
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3687
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3688
--------------------------------------------------------
3689
--  DDL for Index PK_PACKAGE_VERSIONS
3690
--------------------------------------------------------
4040 dpurdie 3691
 
5172 dpurdie 3692
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PACKAGE_VERSIONS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") 
3693
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3694
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3695
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3696
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3697
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3698
--------------------------------------------------------
3699
--  DDL for Index UNQ_RELEASE_METRICS
3700
--------------------------------------------------------
4040 dpurdie 3701
 
5172 dpurdie 3702
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_METRICS" ON "RELEASE_MANAGER"."RELEASE_METRICS" ("RTAG_ID") 
3703
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3704
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3705
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3706
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3707
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3708
--------------------------------------------------------
3709
--  DDL for Index UNQ_BUILD_ORDER
3710
--------------------------------------------------------
4040 dpurdie 3711
 
5172 dpurdie 3712
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ORDER" ON "RELEASE_MANAGER"."BUILD_ORDER" ("RTAG_ID", "PV_ID", "STEP_NUM") 
3713
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3714
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3715
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3716
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3717
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3718
--------------------------------------------------------
3719
--  DDL for Index PK_BUILD_ENVIRONMENTS
3720
--------------------------------------------------------
4040 dpurdie 3721
 
5172 dpurdie 3722
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_BUILD_ENVIRONMENTS" ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") 
3723
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3724
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3725
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3726
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3727
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3728
--------------------------------------------------------
3729
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX1
3730
--------------------------------------------------------
3731
 
3732
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX1" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("DBID") 
3733
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3734
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3735
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3736
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3737
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3738
--------------------------------------------------------
3739
--  DDL for Index INX_PACKAGE_DEPS_DPKG_ID
3740
--------------------------------------------------------
4040 dpurdie 3741
 
5172 dpurdie 3742
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPKG_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPKG_ID") 
3743
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3744
  STORAGE(INITIAL 83886080 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3745
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3746
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3747
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3748
--------------------------------------------------------
3749
--  DDL for Index INX_RL_REFRTAG_ID
3750
--------------------------------------------------------
4040 dpurdie 3751
 
5172 dpurdie 3752
  CREATE INDEX "RELEASE_MANAGER"."INX_RL_REFRTAG_ID" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("REF_RTAG_ID") 
3753
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3754
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3755
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3756
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3757
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3758
--------------------------------------------------------
3759
--  DDL for Index INX_RC_BASE_VIEW_ID
3760
--------------------------------------------------------
4040 dpurdie 3761
 
5172 dpurdie 3762
  CREATE INDEX "RELEASE_MANAGER"."INX_RC_BASE_VIEW_ID" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("BASE_VIEW_ID") 
3763
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3764
  STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3765
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3766
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3767
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3768
--------------------------------------------------------
3769
--  DDL for Index INX_DAEMON_INST_PV_ID
3770
--------------------------------------------------------
4211 dpurdie 3771
 
5172 dpurdie 3772
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_PV_ID" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("PV_ID") 
3773
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3774
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3775
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3776
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3777
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3778
--------------------------------------------------------
4040 dpurdie 3779
--  DDL for Index UNQ_PROJECT_EXT
3780
--------------------------------------------------------
3781
 
5172 dpurdie 3782
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PROJECT_EXT" ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" ("PROJ_ID", "EXT_NAME") 
3783
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3784
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3785
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3786
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3787
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3788
--------------------------------------------------------
3789
--  DDL for Index VCS_TYPE_PK
3790
--------------------------------------------------------
4040 dpurdie 3791
 
5172 dpurdie 3792
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."VCS_TYPE_PK" ON "RELEASE_MANAGER"."VCS_TYPE" ("VCS_TYPE_ID") 
3793
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3794
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3795
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3796
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3797
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3798
--------------------------------------------------------
4211 dpurdie 3799
--  DDL for Index INX_PC_FILE_NAME
4040 dpurdie 3800
--------------------------------------------------------
3801
 
5172 dpurdie 3802
  CREATE INDEX "RELEASE_MANAGER"."INX_PC_FILE_NAME" ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" (UPPER("FILE_NAME")) 
3803
  PCTFREE 10 INITRANS 2 MAXTRANS 167 COMPUTE STATISTICS 
3804
  STORAGE(INITIAL 18874368 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3805
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3806
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3807
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3808
--------------------------------------------------------
3809
--  DDL for Index PK_RELEASE_TAGS
3810
--------------------------------------------------------
4040 dpurdie 3811
 
5172 dpurdie 3812
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_RELEASE_TAGS" ON "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") 
3813
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3814
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3815
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3816
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3817
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3818
--------------------------------------------------------
4211 dpurdie 3819
--  DDL for Index FK_PROJ_ID_RELEASE_TAGS
4040 dpurdie 3820
--------------------------------------------------------
3821
 
5172 dpurdie 3822
  CREATE INDEX "RELEASE_MANAGER"."FK_PROJ_ID_RELEASE_TAGS" ON "RELEASE_MANAGER"."RELEASE_TAGS" ("PROJ_ID") 
3823
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3824
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3825
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3826
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3827
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3828
--------------------------------------------------------
4211 dpurdie 3829
--  DDL for Index INX_RCOMP_PV_ID
4040 dpurdie 3830
--------------------------------------------------------
3831
 
5172 dpurdie 3832
  CREATE INDEX "RELEASE_MANAGER"."INX_RCOMP_PV_ID" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" ("PV_ID") 
3833
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3834
  STORAGE(INITIAL 724566016 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3835
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3836
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3837
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3838
--------------------------------------------------------
3839
--  DDL for Index MICROSOFT_PK_DTPROPERTIES
3840
--------------------------------------------------------
4040 dpurdie 3841
 
5172 dpurdie 3842
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."MICROSOFT_PK_DTPROPERTIES" ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ("ID", "PROPERTY") 
3843
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3844
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3845
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3846
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3847
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 3848
--------------------------------------------------------
3849
--  DDL for Index BUILD_ID
3850
--------------------------------------------------------
3851
 
3852
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_ID" ON "RELEASE_MANAGER"."BUILD_INSTANCES" ("BUILD_ID") 
3853
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3854
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3855
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3856
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3857
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3858
--------------------------------------------------------
4308 dpurdie 3859
--  DDL for Index INX_UT_PV_TEST_TYPE
3860
--------------------------------------------------------
4040 dpurdie 3861
 
5172 dpurdie 3862
  CREATE INDEX "RELEASE_MANAGER"."INX_UT_PV_TEST_TYPE" ON "RELEASE_MANAGER"."UNIT_TESTS" ("PV_ID", "TEST_TYPES_FK") 
3863
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3864
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3865
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3866
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3867
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3868
--------------------------------------------------------
3869
--  DDL for Index PK_WORLDS
3870
--------------------------------------------------------
4040 dpurdie 3871
 
5172 dpurdie 3872
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_WORLDS" ON "RELEASE_MANAGER"."WORLDS" ("WORLD_ID") 
3873
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3874
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3875
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3876
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3877
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5892 dpurdie 3878
--------------------------------------------------------
5384 dpurdie 3879
--  DDL for Index CQ_HISTORY_INDEX1
3880
--------------------------------------------------------
3881
 
3882
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_HISTORY_INDEX1" ON "RELEASE_MANAGER"."CQ_HISTORY" ("DBID") 
3883
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3884
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3885
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3886
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3887
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3888
--------------------------------------------------------
4308 dpurdie 3889
--  DDL for Index UNQ_AN_PART2
3890
--------------------------------------------------------
4040 dpurdie 3891
 
5172 dpurdie 3892
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_AN_PART2" ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" ("PV_ID", "NOTE_TITLE") 
3893
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3894
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3895
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3896
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3897
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3898
--------------------------------------------------------
4211 dpurdie 3899
--  Constraints for Table RELEASE_TAGS
4040 dpurdie 3900
--------------------------------------------------------
3901
 
5172 dpurdie 3902
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" ADD CONSTRAINT "PK_RELEASE_TAGS" PRIMARY KEY ("RTAG_ID")
3903
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3904
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3905
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3906
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3907
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 3908
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("PROJ_ID" NOT NULL ENABLE);
3909
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("PARENT_RTAG_ID" NOT NULL ENABLE);
3910
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("REBUILD_STAMP" NOT NULL ENABLE);
3911
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("REBUILD_ENV" NOT NULL ENABLE);
3912
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("OFFICIAL" NOT NULL ENABLE);
3913
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("RTAG_NAME" NOT NULL ENABLE);
3914
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3915
--------------------------------------------------------
6031 dpurdie 3916
--  Constraints for Table PACKAGE_DOCUMENTS
5172 dpurdie 3917
--------------------------------------------------------
3918
 
6031 dpurdie 3919
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("DOC_NUM" NOT NULL ENABLE);
3920
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("DOC_ID" NOT NULL ENABLE);
3921
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3922
--------------------------------------------------------
6031 dpurdie 3923
--  Constraints for Table AUTOBUILD_FAILURE
5172 dpurdie 3924
--------------------------------------------------------
3925
 
6031 dpurdie 3926
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD PRIMARY KEY ("GROUP_EMAIL_ID")
5172 dpurdie 3927
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3928
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3929
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3930
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3931
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
3932
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" MODIFY ("GROUP_EMAIL_ID" NOT NULL ENABLE);
5172 dpurdie 3933
--------------------------------------------------------
6031 dpurdie 3934
--  Constraints for Table RELEASE_METRICS
5384 dpurdie 3935
--------------------------------------------------------
3936
 
6031 dpurdie 3937
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" ADD CONSTRAINT "UNQ_RELEASE_METRICS" UNIQUE ("RTAG_ID")
5384 dpurdie 3938
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3939
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3940
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3941
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3942
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
3943
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 3944
--------------------------------------------------------
6031 dpurdie 3945
--  Constraints for Table RELEASE_COMPONENTS
4308 dpurdie 3946
--------------------------------------------------------
4040 dpurdie 3947
 
6031 dpurdie 3948
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3949
--------------------------------------------------------
6031 dpurdie 3950
--  Constraints for Table SDK_CONTENT
4040 dpurdie 3951
--------------------------------------------------------
3952
 
6031 dpurdie 3953
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("SDKPKG_STATE" NOT NULL ENABLE);
3954
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("PV_ID" NOT NULL ENABLE);
3955
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("SDKTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3956
--------------------------------------------------------
6031 dpurdie 3957
--  Constraints for Table ACTION_TYPE
4040 dpurdie 3958
--------------------------------------------------------
3959
 
6031 dpurdie 3960
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" ADD CONSTRAINT "UNQ_ACTTYPE_ID" PRIMARY KEY ("ACTTYPE_ID")
3961
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3962
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3963
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3964
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3965
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
3966
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" MODIFY ("NAME" NOT NULL ENABLE);
3967
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
4308 dpurdie 3968
--------------------------------------------------------
6031 dpurdie 3969
--  Constraints for Table PLANNED
4308 dpurdie 3970
--------------------------------------------------------
4211 dpurdie 3971
 
6031 dpurdie 3972
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "UNIQUE_PV_RTAG" UNIQUE ("PV_ID", "RTAG_ID")
5172 dpurdie 3973
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3974
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3975
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3976
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3977
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
3978
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("VIEW_ID" NOT NULL ENABLE);
3979
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("PV_ID" NOT NULL ENABLE);
3980
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3981
--------------------------------------------------------
6031 dpurdie 3982
--  Constraints for Table SDK_TAGS
4040 dpurdie 3983
--------------------------------------------------------
3984
 
6031 dpurdie 3985
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_PK" PRIMARY KEY ("SDKTAG_ID")
3986
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3987
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3988
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3989
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3990
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
3991
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDK_STATE" NOT NULL ENABLE);
3992
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3993
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDK_ID" NOT NULL ENABLE);
3994
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDKTAG_NAME" NOT NULL ENABLE);
3995
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDKTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3996
--------------------------------------------------------
6031 dpurdie 3997
--  Constraints for Table RELEASE_MODIFIED
4040 dpurdie 3998
--------------------------------------------------------
3999
 
6031 dpurdie 4000
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" ADD CONSTRAINT "RELEASE_MODIFIED_PK" PRIMARY KEY ("RTAG_ID")
4001
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4002
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4003
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4004
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4005
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4006
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4007
--------------------------------------------------------
6031 dpurdie 4008
--  Constraints for Table PACKAGE_METRICS
4040 dpurdie 4009
--------------------------------------------------------
4010
 
6031 dpurdie 4011
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" ADD CONSTRAINT "UNQ_PACKAGE_METRICS" UNIQUE ("PV_ID")
4012
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4013
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4014
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4015
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4016
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4017
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 4018
--------------------------------------------------------
6031 dpurdie 4019
--  Constraints for Table PACKAGE_BUILD_ENV
4040 dpurdie 4020
--------------------------------------------------------
4021
 
6031 dpurdie 4022
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" MODIFY ("BE_ID" NOT NULL ENABLE);
4023
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 4024
--------------------------------------------------------
6031 dpurdie 4025
--  Constraints for Table PROCESSES
4040 dpurdie 4026
--------------------------------------------------------
4027
 
6031 dpurdie 4028
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" ADD CONSTRAINT "PROCESSES_PK" PRIMARY KEY ("PROC_ID")
5172 dpurdie 4029
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4030
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4031
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4032
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4033
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4034
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" MODIFY ("PROC_NAME" NOT NULL ENABLE);
4035
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" MODIFY ("PROC_ID" NOT NULL ENABLE);
4308 dpurdie 4036
--------------------------------------------------------
6031 dpurdie 4037
--  Constraints for Table BUILD_SERVICE_CONFIG
4308 dpurdie 4038
--------------------------------------------------------
4040 dpurdie 4039
 
6031 dpurdie 4040
  ALTER TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" MODIFY ("CONFIG" NOT NULL ENABLE);
4041
  ALTER TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" MODIFY ("SERVICE" NOT NULL ENABLE);
4308 dpurdie 4042
--------------------------------------------------------
6031 dpurdie 4043
--  Constraints for Table PROJECT_ACTION_LOG
4308 dpurdie 4044
--------------------------------------------------------
4040 dpurdie 4045
 
6031 dpurdie 4046
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
4047
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4048
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("ACTION_DATETIME" NOT NULL ENABLE);
4049
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4308 dpurdie 4050
--------------------------------------------------------
6031 dpurdie 4051
--  Constraints for Table ARCHIVE_ACTION_LOG
4308 dpurdie 4052
--------------------------------------------------------
4040 dpurdie 4053
 
6031 dpurdie 4054
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("DESCRIPTION" NOT NULL ENABLE);
4055
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4056
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("DATE_TIME_STAMP" NOT NULL ENABLE);
4057
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 4058
--------------------------------------------------------
6031 dpurdie 4059
--  Constraints for Table VTREES
4040 dpurdie 4060
--------------------------------------------------------
4061
 
6031 dpurdie 4062
  ALTER TABLE "RELEASE_MANAGER"."VTREES" ADD CONSTRAINT "PK_VTREES" PRIMARY KEY ("VTREE_ID")
5172 dpurdie 4063
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4064
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4065
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4066
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4067
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4068
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("HIDE" NOT NULL ENABLE);
4069
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("VTREE_NAME" NOT NULL ENABLE);
4070
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4071
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("VTREE_ID" NOT NULL ENABLE);
4040 dpurdie 4072
--------------------------------------------------------
4308 dpurdie 4073
--  Constraints for Table GBE_MACHTYPE
4074
--------------------------------------------------------
4040 dpurdie 4075
 
5172 dpurdie 4076
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" ADD PRIMARY KEY ("GBE_ID")
4077
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4078
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4079
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4080
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4081
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4082
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("BM_ID" NOT NULL ENABLE);
5172 dpurdie 4083
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("GBE_VALUE" NOT NULL ENABLE);
4084
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("GBE_ID" NOT NULL ENABLE);
4308 dpurdie 4085
--------------------------------------------------------
6031 dpurdie 4086
--  Constraints for Table PACKAGE_INTEREST
4040 dpurdie 4087
--------------------------------------------------------
4088
 
6031 dpurdie 4089
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("USER_ID" NOT NULL ENABLE);
4090
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4091
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("PKG_ID" NOT NULL ENABLE);
5172 dpurdie 4092
--------------------------------------------------------
6031 dpurdie 4093
--  Constraints for Table PACKAGES
5172 dpurdie 4094
--------------------------------------------------------
4095
 
6031 dpurdie 4096
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" ADD CONSTRAINT "PK_PACKAGES" PRIMARY KEY ("PKG_ID")
4097
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4098
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4099
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4100
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4101
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4102
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" MODIFY ("PKG_NAME" NOT NULL ENABLE);
4103
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" MODIFY ("PKG_ID" NOT NULL ENABLE);
4308 dpurdie 4104
--------------------------------------------------------
6031 dpurdie 4105
--  Constraints for Table IGNORE_WARNINGS
4308 dpurdie 4106
--------------------------------------------------------
4040 dpurdie 4107
 
6031 dpurdie 4108
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("DPV_ID" NOT NULL ENABLE);
4109
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("PV_ID" NOT NULL ENABLE);
4110
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4111
--------------------------------------------------------
6031 dpurdie 4112
--  Constraints for Table PRODUCT_COMPONENTS
4308 dpurdie 4113
--------------------------------------------------------
4040 dpurdie 4114
 
6031 dpurdie 4115
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" MODIFY ("OS_ID" NOT NULL ENABLE);
4116
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 4117
--------------------------------------------------------
4211 dpurdie 4118
--  Constraints for Table TEST_TYPES
4040 dpurdie 4119
--------------------------------------------------------
4120
 
5172 dpurdie 4121
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" ADD CONSTRAINT "PK_TEST_TYPES" PRIMARY KEY ("TEST_TYPE_ID")
4122
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4123
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4124
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4125
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4126
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 4127
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" MODIFY ("TEST_TYPE_NAME" NOT NULL ENABLE);
4128
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" MODIFY ("TEST_TYPE_ID" NOT NULL ENABLE);
4129
--------------------------------------------------------
6031 dpurdie 4130
--  Constraints for Table MICROSOFTDTPROPERTIES
5172 dpurdie 4131
--------------------------------------------------------
4132
 
6031 dpurdie 4133
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ADD CONSTRAINT "MICROSOFT_PK_DTPROPERTIES" PRIMARY KEY ("ID", "PROPERTY")
5172 dpurdie 4134
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4135
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4136
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4137
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4138
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4139
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("VERSION" CONSTRAINT "MICROSOFT_NN_VERSION" NOT NULL ENABLE);
4140
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("PROPERTY" CONSTRAINT "MICROSOFT_NN_PROPERTY" NOT NULL ENABLE);
4141
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("ID" CONSTRAINT "MICROSOFT_NN_ID" NOT NULL ENABLE);
4040 dpurdie 4142
--------------------------------------------------------
6031 dpurdie 4143
--  Constraints for Table PRODUCT_STATES
4040 dpurdie 4144
--------------------------------------------------------
4145
 
6031 dpurdie 4146
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" ADD CONSTRAINT "PRODUCT_STATES_PK" PRIMARY KEY ("STATE_ID")
4147
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4148
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4149
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4150
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4151
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4152
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" MODIFY ("STATE" NOT NULL ENABLE);
4153
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" MODIFY ("STATE_ID" NOT NULL ENABLE);
4040 dpurdie 4154
--------------------------------------------------------
6031 dpurdie 4155
--  Constraints for Table CODE_REVIEWS
4040 dpurdie 4156
--------------------------------------------------------
4157
 
6031 dpurdie 4158
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEWS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 4159
--------------------------------------------------------
6031 dpurdie 4160
--  Constraints for Table RELEASE_CONTENT
4040 dpurdie 4161
--------------------------------------------------------
4162
 
6031 dpurdie 4163
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("PKG_STATE" NOT NULL ENABLE);
4164
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("INSERTOR_ID" NOT NULL ENABLE);
4165
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("INSERT_STAMP" NOT NULL ENABLE);
4166
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("BASE_VIEW_ID" NOT NULL ENABLE);
4167
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("PV_ID" NOT NULL ENABLE);
4168
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4169
--------------------------------------------------------
6031 dpurdie 4170
--  Constraints for Table WORLDS
4040 dpurdie 4171
--------------------------------------------------------
4172
 
6031 dpurdie 4173
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" ADD CONSTRAINT "PK_WORLDS" PRIMARY KEY ("WORLD_ID")
5172 dpurdie 4174
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4175
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4176
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4177
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4178
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4179
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" MODIFY ("WORLD_NAME" NOT NULL ENABLE);
4180
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" MODIFY ("WORLD_ID" NOT NULL ENABLE);
4040 dpurdie 4181
--------------------------------------------------------
6031 dpurdie 4182
--  Constraints for Table PEGGED_VERSIONS
4040 dpurdie 4183
--------------------------------------------------------
4184
 
6031 dpurdie 4185
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" MODIFY ("PV_ID" NOT NULL ENABLE);
4186
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 4187
--------------------------------------------------------
6031 dpurdie 4188
--  Constraints for Table ABT_ACTION_LOG
4308 dpurdie 4189
--------------------------------------------------------
4040 dpurdie 4190
 
6031 dpurdie 4191
  ALTER TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" MODIFY ("RCON_ID" NOT NULL ENABLE);
4040 dpurdie 4192
--------------------------------------------------------
6031 dpurdie 4193
--  Constraints for Table LICENCING
4040 dpurdie 4194
--------------------------------------------------------
4195
 
6031 dpurdie 4196
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD CONSTRAINT "LICENCING_PK" PRIMARY KEY ("PV_ID", "LICENCE")
4197
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4198
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4199
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4200
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4201
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4202
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" MODIFY ("LICENCE" NOT NULL ENABLE);
4203
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 4204
--------------------------------------------------------
4211 dpurdie 4205
--  Constraints for Table DASH_BOARD
4040 dpurdie 4206
--------------------------------------------------------
4207
 
5172 dpurdie 4208
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("TOTAL_PACKAGES" NOT NULL ENABLE);
4209
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("AUTOMATED_PACKAGES" NOT NULL ENABLE);
4210
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("LAST_BUILD_TIME" NOT NULL ENABLE);
4211
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4212
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4040 dpurdie 4213
--------------------------------------------------------
6031 dpurdie 4214
--  Constraints for Table BUILD_INSTANCES
4040 dpurdie 4215
--------------------------------------------------------
4216
 
6031 dpurdie 4217
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_ID" PRIMARY KEY ("BUILD_ID")
5172 dpurdie 4218
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4219
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4220
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4221
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4222
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4223
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("STATE" NOT NULL ENABLE);
4224
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("TIMESTAMP" NOT NULL ENABLE);
4225
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("PV_ID" NOT NULL ENABLE);
4226
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4227
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("BUILD_ID" NOT NULL ENABLE);
4040 dpurdie 4228
--------------------------------------------------------
6031 dpurdie 4229
--  Constraints for Table NOTE_MANAGER
4040 dpurdie 4230
--------------------------------------------------------
4231
 
6031 dpurdie 4232
  ALTER TABLE "RELEASE_MANAGER"."NOTE_MANAGER" ADD CONSTRAINT "PKNOTE_MANAGER1" PRIMARY KEY ("NID")
5172 dpurdie 4233
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4234
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4235
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4236
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4237
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4238
  ALTER TABLE "RELEASE_MANAGER"."NOTE_MANAGER" MODIFY ("NID" NOT NULL ENABLE);
4239
--------------------------------------------------------
4240
--  Constraints for Table NOTIFICATION_HISTORY
4040 dpurdie 4241
--------------------------------------------------------
5384 dpurdie 4242
 
6031 dpurdie 4243
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "PK_NOTIFICATION_HISTORY" PRIMARY KEY ("RTAG_ID", "PV_ID", "USER_ID")
5384 dpurdie 4244
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4245
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4246
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4247
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4248
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4249
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("DATE_TIME_STAMP" NOT NULL ENABLE);
4250
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("USER_ID" NOT NULL ENABLE);
4251
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("PV_ID" NOT NULL ENABLE);
4252
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4253
--------------------------------------------------------
6031 dpurdie 4254
--  Constraints for Table ACTION_LOG
4255
--------------------------------------------------------
4040 dpurdie 4256
 
6031 dpurdie 4257
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTION_TIMESTAMP" NOT NULL ENABLE);
4258
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
4259
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("PV_ID" NOT NULL ENABLE);
4260
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTION_DATETIME" NOT NULL ENABLE);
4261
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 4262
--------------------------------------------------------
6031 dpurdie 4263
--  Constraints for Table RELEASE_LINKS
4040 dpurdie 4264
--------------------------------------------------------
4265
 
6031 dpurdie 4266
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" MODIFY ("REF_RTAG_ID" NOT NULL ENABLE);
4267
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4268
--------------------------------------------------------
6031 dpurdie 4269
--  Constraints for Table VTREES_WORLD
4040 dpurdie 4270
--------------------------------------------------------
4271
 
6031 dpurdie 4272
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" MODIFY ("VTREE_ID" NOT NULL ENABLE);
4273
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" MODIFY ("WORLD_ID" NOT NULL ENABLE);
4040 dpurdie 4274
--------------------------------------------------------
6031 dpurdie 4275
--  Constraints for Table DAEMON_ACTION_LOG
4040 dpurdie 4276
--------------------------------------------------------
4277
 
6031 dpurdie 4278
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" MODIFY ("RCON_ID" NOT NULL ENABLE);
4279
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 4280
--------------------------------------------------------
6031 dpurdie 4281
--  Constraints for Table BUILD_STANDARDS_ADDENDUM
4282
--------------------------------------------------------
4283
 
4284
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ADD CONSTRAINT "BUILD_STANDARDS_ADDENDUM_PK" PRIMARY KEY ("BSA_ID")
4285
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4286
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4287
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4288
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4289
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4290
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BS_ID" NOT NULL ENABLE);
4291
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BSA_NAME" NOT NULL ENABLE);
4292
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BSA_ID" NOT NULL ENABLE);
4293
--------------------------------------------------------
4294
--  Constraints for Table BUILD_MACHINES
5892 dpurdie 4295
--------------------------------------------------------
4296
 
6031 dpurdie 4297
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" ADD CONSTRAINT "BUILD_MACHINES_PK" PRIMARY KEY ("BM_ID")
5892 dpurdie 4298
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4299
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4300
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4301
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4302
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4303
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" MODIFY ("BM_NAME" NOT NULL ENABLE);
4304
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" MODIFY ("BM_ID" NOT NULL ENABLE);
4040 dpurdie 4305
--------------------------------------------------------
6031 dpurdie 4306
--  Constraints for Table PLATFORMS
4307
--------------------------------------------------------
4040 dpurdie 4308
 
6031 dpurdie 4309
  ALTER TABLE "RELEASE_MANAGER"."PLATFORMS" MODIFY ("NAME" NOT NULL ENABLE);
4310
  ALTER TABLE "RELEASE_MANAGER"."PLATFORMS" MODIFY ("CODE" NOT NULL ENABLE);
4040 dpurdie 4311
--------------------------------------------------------
6031 dpurdie 4312
--  Constraints for Table WORK_IN_PROGRESS
4040 dpurdie 4313
--------------------------------------------------------
4314
 
6031 dpurdie 4315
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4316
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("PV_ID" NOT NULL ENABLE);
4317
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4318
--------------------------------------------------------
6031 dpurdie 4319
--  Constraints for Table CQ_ISSUES
4040 dpurdie 4320
--------------------------------------------------------
4321
 
6031 dpurdie 4322
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
4323
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_STATE" NOT NULL ENABLE);
4324
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_ID" NOT NULL ENABLE);
4325
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_DB" NOT NULL ENABLE);
4326
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 4327
--------------------------------------------------------
6031 dpurdie 4328
--  Constraints for Table BUILD_ORDER
4329
--------------------------------------------------------
5384 dpurdie 4330
 
6031 dpurdie 4331
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("PV_ID" NOT NULL ENABLE);
4332
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("STEP_NUM" NOT NULL ENABLE);
4333
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4334
--------------------------------------------------------
4335
--  Constraints for Table VALIDATION_RULES_DELETE_ME
4336
--------------------------------------------------------
4337
 
4338
  ALTER TABLE "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" MODIFY ("IS_REQUIRED" NOT NULL ENABLE);
4339
  ALTER TABLE "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" MODIFY ("FIELD_NAME" NOT NULL ENABLE);
4340
--------------------------------------------------------
4211 dpurdie 4341
--  Constraints for Table CODE_REVIEW_URL
4040 dpurdie 4342
--------------------------------------------------------
4343
 
5172 dpurdie 4344
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PK" PRIMARY KEY ("CR_ID")
4345
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4346
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4347
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4348
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4349
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 4350
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("DATE_OF_REVIEW" NOT NULL ENABLE);
4351
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("URL" NOT NULL ENABLE);
4352
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4353
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("PV_ID" NOT NULL ENABLE);
4354
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("CR_ID" NOT NULL ENABLE);
5384 dpurdie 4355
--------------------------------------------------------
6031 dpurdie 4356
--  Constraints for Table RELEASE_CONFIG
5384 dpurdie 4357
--------------------------------------------------------
4358
 
6031 dpurdie 4359
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD PRIMARY KEY ("RCON_ID")
5384 dpurdie 4360
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4361
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4362
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4363
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4364
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4365
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4366
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" MODIFY ("RCON_ID" NOT NULL ENABLE);
4367
--------------------------------------------------------
4368
--  Constraints for Table PACKAGE_PROCESSES
4369
--------------------------------------------------------
4040 dpurdie 4370
 
6031 dpurdie 4371
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" MODIFY ("PROC_ID" NOT NULL ENABLE);
4372
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" MODIFY ("PV_ID" NOT NULL ENABLE);
4373
--------------------------------------------------------
4374
--  Constraints for Table PACKAGE_BUILD_INFO
4375
--------------------------------------------------------
4040 dpurdie 4376
 
6031 dpurdie 4377
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" MODIFY ("BM_ID" NOT NULL ENABLE);
4378
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" MODIFY ("PV_ID" NOT NULL ENABLE);
4379
--------------------------------------------------------
4380
--  Constraints for Table VIEW_SETTINGS
4381
--------------------------------------------------------
4382
 
4383
  ALTER TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4384
  ALTER TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" MODIFY ("USER_ID" NOT NULL ENABLE);
4385
--------------------------------------------------------
4386
--  Constraints for Table DEPRECATED_PACKAGES
4387
--------------------------------------------------------
4388
 
4389
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("COMMENTS" NOT NULL ENABLE);
4390
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("PKG_ID" NOT NULL ENABLE);
4391
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4392
--------------------------------------------------------
4393
--  Constraints for Table BUILD_PLAN
4394
--------------------------------------------------------
4395
 
4396
  ALTER TABLE "RELEASE_MANAGER"."BUILD_PLAN" ADD CONSTRAINT "BUILD_PLAN_PK" PRIMARY KEY ("RTAG_ID", "BUILD_ORDER", "PV_ID")
5172 dpurdie 4397
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4398
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4399
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4400
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4401
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 4402
--------------------------------------------------------
6031 dpurdie 4403
--  Constraints for Table MESSAGE_BOARD
5172 dpurdie 4404
--------------------------------------------------------
4405
 
6031 dpurdie 4406
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" ADD CONSTRAINT "PK_MESSAGE_BOARD" PRIMARY KEY ("MSG_ID")
5892 dpurdie 4407
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4408
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4409
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4410
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4411
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4412
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("SUBMITION_DATE" NOT NULL ENABLE);
4413
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("MSG_DETAILS" NOT NULL ENABLE);
4414
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("MSG_ID" NOT NULL ENABLE);
4040 dpurdie 4415
--------------------------------------------------------
6031 dpurdie 4416
--  Constraints for Table VCS_TYPE
4040 dpurdie 4417
--------------------------------------------------------
4418
 
6031 dpurdie 4419
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" ADD CONSTRAINT "VCS_TYPE_PK" PRIMARY KEY ("VCS_TYPE_ID")
5172 dpurdie 4420
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4421
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4422
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4423
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4424
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4425
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("TAG" NOT NULL ENABLE);
4426
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("NAME" NOT NULL ENABLE);
4427
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("VCS_TYPE_ID" NOT NULL ENABLE);
4308 dpurdie 4428
--------------------------------------------------------
6031 dpurdie 4429
--  Constraints for Table RUN_LEVEL
5172 dpurdie 4430
--------------------------------------------------------
4431
 
6031 dpurdie 4432
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD CONSTRAINT "PK_RUN_LEVEL" PRIMARY KEY ("RCON_ID")
5172 dpurdie 4433
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4434
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4435
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4436
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4437
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4438
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" MODIFY ("RCON_ID" NOT NULL ENABLE);
5384 dpurdie 4439
--------------------------------------------------------
6031 dpurdie 4440
--  Constraints for Table DO_NOT_RIPPLE
4441
--------------------------------------------------------
5384 dpurdie 4442
 
6031 dpurdie 4443
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" MODIFY ("PV_ID" NOT NULL ENABLE);
4444
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4445
--------------------------------------------------------
4446
--  Constraints for Table CQ_SOFTWARE_ISSUE
4447
--------------------------------------------------------
4448
 
4449
  ALTER TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ADD CONSTRAINT "CQ_SOFTWARE_ISSUE_PK" PRIMARY KEY ("DBID")
5384 dpurdie 4450
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4451
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4452
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4453
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4454
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4455
  ALTER TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" MODIFY ("DBID" NOT NULL ENABLE);
5384 dpurdie 4456
--------------------------------------------------------
6031 dpurdie 4457
--  Constraints for Table LICENCES
4040 dpurdie 4458
--------------------------------------------------------
4459
 
6031 dpurdie 4460
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" ADD CONSTRAINT "PK_LICENCES" PRIMARY KEY ("LICENCE")
5172 dpurdie 4461
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4462
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4463
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4464
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4465
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4466
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" MODIFY ("NAME" NOT NULL ENABLE);
4467
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" MODIFY ("LICENCE" NOT NULL ENABLE);
4468
--------------------------------------------------------
4469
--  Constraints for Table UNIT_TESTS
4470
--------------------------------------------------------
4040 dpurdie 4471
 
6031 dpurdie 4472
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("TEST_TYPES_FK" NOT NULL ENABLE);
4473
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4474
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("TEST_ID" NOT NULL ENABLE);
4475
--------------------------------------------------------
4476
--  Constraints for Table CQ_STATEDEF
4477
--------------------------------------------------------
4040 dpurdie 4478
 
6031 dpurdie 4479
  ALTER TABLE "RELEASE_MANAGER"."CQ_STATEDEF" ADD CONSTRAINT "CQ_STATEDEF_PK" PRIMARY KEY ("ID")
5172 dpurdie 4480
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4481
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4482
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4483
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4484
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4485
  ALTER TABLE "RELEASE_MANAGER"."CQ_STATEDEF" MODIFY ("ID" NOT NULL ENABLE);
4486
--------------------------------------------------------
4487
--  Constraints for Table TEMP_ENV_STATES
4488
--------------------------------------------------------
4040 dpurdie 4489
 
6031 dpurdie 4490
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("TES_STATE" NOT NULL ENABLE);
4491
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("PKG_ID" NOT NULL ENABLE);
4492
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("PV_ID" NOT NULL ENABLE);
4493
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("LEVEL_NUM" NOT NULL ENABLE);
4494
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("SESSION_NUM" NOT NULL ENABLE);
4495
--------------------------------------------------------
4496
--  Constraints for Table CQ_USERS
4497
--------------------------------------------------------
4498
 
4499
  ALTER TABLE "RELEASE_MANAGER"."CQ_USERS" ADD CONSTRAINT "CQ_USERS_PK" PRIMARY KEY ("DBID")
5384 dpurdie 4500
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4501
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4502
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4503
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4504
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4505
  ALTER TABLE "RELEASE_MANAGER"."CQ_USERS" MODIFY ("DBID" NOT NULL ENABLE);
4308 dpurdie 4506
--------------------------------------------------------
6031 dpurdie 4507
--  Constraints for Table TEMP_ENV_DEPS
4308 dpurdie 4508
--------------------------------------------------------
4040 dpurdie 4509
 
6031 dpurdie 4510
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" ADD CONSTRAINT "TEMP_ENV_DEPS_PK" PRIMARY KEY ("PV_ID", "SESSION_NUM", "DPV_ID")
5172 dpurdie 4511
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4512
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4513
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4514
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4515
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4516
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("DPKG_ID" NOT NULL ENABLE);
4517
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("DPV_ID" NOT NULL ENABLE);
4518
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("PKG_ID" NOT NULL ENABLE);
4519
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("PV_ID" NOT NULL ENABLE);
4520
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("SESSION_NUM" NOT NULL ENABLE);
5892 dpurdie 4521
--------------------------------------------------------
6031 dpurdie 4522
--  Constraints for Table RUN_LEVEL_SCHEDULE
4523
--------------------------------------------------------
5892 dpurdie 4524
 
6031 dpurdie 4525
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" ADD PRIMARY KEY ("SCHEDULED_ID")
5892 dpurdie 4526
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4527
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4528
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4529
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4530
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4531
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" MODIFY ("SCHEDULED_ID" NOT NULL ENABLE);
5892 dpurdie 4532
--------------------------------------------------------
6031 dpurdie 4533
--  Constraints for Table SDK_NAMES
4534
--------------------------------------------------------
4040 dpurdie 4535
 
6031 dpurdie 4536
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_PK" PRIMARY KEY ("SDK_ID")
5172 dpurdie 4537
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4538
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4539
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4540
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4541
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4542
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_UK1" UNIQUE ("SDK_NAME")
4543
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4544
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4545
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4546
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4547
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4548
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4549
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4550
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("SDK_NAME" NOT NULL ENABLE);
4551
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("SDK_ID" NOT NULL ENABLE);
4308 dpurdie 4552
--------------------------------------------------------
6031 dpurdie 4553
--  Constraints for Table PROJECT_EXTENTIONS
4554
--------------------------------------------------------
4040 dpurdie 4555
 
6031 dpurdie 4556
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_EXTENTIONS" MODIFY ("EXT_NAME" NOT NULL ENABLE);
4557
--------------------------------------------------------
4558
--  Constraints for Table MEMBERS_GROUP
4559
--------------------------------------------------------
4560
 
5172 dpurdie 4561
  ALTER TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" MODIFY ("GROUP_EMAIL_ID" NOT NULL ENABLE);
6031 dpurdie 4562
--------------------------------------------------------
4563
--  Constraints for Table TEST_RUN
4564
--------------------------------------------------------
4040 dpurdie 4565
 
6031 dpurdie 4566
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" ADD CONSTRAINT "PK_TEST_RUN" PRIMARY KEY ("TESTRUN_ID")
5172 dpurdie 4567
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4568
  STORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4569
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4570
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4571
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4572
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TEST_OUTCOME" NOT NULL ENABLE);
4573
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TEST_NAME" NOT NULL ENABLE);
4574
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TYPE" NOT NULL ENABLE);
4575
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("PLATFORM" NOT NULL ENABLE);
4576
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("BUILD_ID" NOT NULL ENABLE);
4577
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TESTRUN_ID" NOT NULL ENABLE);
4578
--------------------------------------------------------
4579
--  Constraints for Table BUILD_STANDARDS
4580
--------------------------------------------------------
4040 dpurdie 4581
 
6031 dpurdie 4582
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" ADD CONSTRAINT "BUILD_STANDARDS_PK" PRIMARY KEY ("BS_ID")
5172 dpurdie 4583
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4584
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4585
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4586
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4587
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4588
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" MODIFY ("BS_NAME" NOT NULL ENABLE);
4589
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" MODIFY ("BS_ID" NOT NULL ENABLE);
4590
--------------------------------------------------------
4591
--  Constraints for Table RUNTIME_DEPENDENCIES
4592
--------------------------------------------------------
4040 dpurdie 4593
 
6031 dpurdie 4594
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("MOD_USER" NOT NULL ENABLE);
4595
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
4596
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("PV_ID" NOT NULL ENABLE);
4597
--------------------------------------------------------
4308 dpurdie 4598
--  Constraints for Table DAEMON_INSTRUCTIONS
4599
--------------------------------------------------------
4040 dpurdie 4600
 
5172 dpurdie 4601
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_UK1" UNIQUE ("OP_CODE", "RTAG_ID", "PV_ID")
4602
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4603
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4604
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4605
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4606
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 4607
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_PK" PRIMARY KEY ("DAEMON_INSTRUCTIONS_ID")
4608
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4609
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4610
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4611
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4612
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 4613
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" MODIFY ("OP_CODE" NOT NULL ENABLE);
4614
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" MODIFY ("DAEMON_INSTRUCTIONS_ID" NOT NULL ENABLE);
4040 dpurdie 4615
--------------------------------------------------------
6031 dpurdie 4616
--  Constraints for Table PACKAGE_VERSIONS
4040 dpurdie 4617
--------------------------------------------------------
4618
 
6031 dpurdie 4619
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PK_PACKAGE_VERSIONS" PRIMARY KEY ("PV_ID")
4620
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4621
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4622
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4623
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4624
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4625
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("BUILD_TYPE" NOT NULL ENABLE);
4626
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("LAST_PV_ID" NOT NULL ENABLE);
4627
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("OWNER_ID" NOT NULL ENABLE);
4628
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("CREATOR_ID" NOT NULL ENABLE);
4629
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("MODIFIER_ID" NOT NULL ENABLE);
4630
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("DLOCKED" NOT NULL ENABLE);
4631
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PKG_VERSION" NOT NULL ENABLE);
4632
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PKG_ID" NOT NULL ENABLE);
4633
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 4634
--------------------------------------------------------
4308 dpurdie 4635
--  Constraints for Table BUILD_ENV_DOCUMENTS
4636
--------------------------------------------------------
4040 dpurdie 4637
 
5172 dpurdie 4638
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" MODIFY ("DOC_NUM" NOT NULL ENABLE);
4639
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" MODIFY ("BE_ID" NOT NULL ENABLE);
6031 dpurdie 4640
--------------------------------------------------------
4641
--  Constraints for Table LXR_STATE
4642
--------------------------------------------------------
4643
 
4644
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" ADD CONSTRAINT "LXR_STATE_PK" PRIMARY KEY ("RTAG_ID")
4645
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4646
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4647
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4648
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4649
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4650
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4651
--------------------------------------------------------
4652
--  Constraints for Table BUILD_MACHINE_CONFIG
4653
--------------------------------------------------------
4654
 
4655
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ADD CONSTRAINT "PK_BUILD_MACHINE_CONFIG" PRIMARY KEY ("BMCON_ID")
4656
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4657
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4658
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4659
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4660
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4661
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("ACTIVE" NOT NULL ENABLE);
4662
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("GBE_ID" NOT NULL ENABLE);
4663
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("MACHINE_HOSTNAME" NOT NULL ENABLE);
4664
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("DISPLAY_NAME" NOT NULL ENABLE);
4665
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("BMCON_ID" NOT NULL ENABLE);
4308 dpurdie 4666
--------------------------------------------------------
6031 dpurdie 4667
--  Constraints for Table ADVISORY_RIPPLE
4040 dpurdie 4668
--------------------------------------------------------
4669
 
6031 dpurdie 4670
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" MODIFY ("PV_ID" NOT NULL ENABLE);
4671
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4672
--------------------------------------------------------
4673
--  Constraints for Table PROJECTS
4674
--------------------------------------------------------
4675
 
4676
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" ADD CONSTRAINT "PK_PROJECTS" PRIMARY KEY ("PROJ_ID")
4677
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4678
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4679
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4680
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4681
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4682
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" MODIFY ("PROJ_NAME" NOT NULL ENABLE);
4683
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4684
--------------------------------------------------------
4685
--  Constraints for Table PACKAGE_PATCHES
4686
--------------------------------------------------------
4687
 
4688
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("INSTALL_ORDER" NOT NULL ENABLE);
4689
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("PATCH_ID" NOT NULL ENABLE);
4690
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 4691
--------------------------------------------------------
4692
--  Constraints for Table PACKAGE_DEPENDENCIES
4693
--------------------------------------------------------
4040 dpurdie 4694
 
5172 dpurdie 4695
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("BUILD_TYPE" NOT NULL ENABLE);
4696
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("DPKG_ID" NOT NULL ENABLE);
4697
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("PKG_ID" NOT NULL ENABLE);
4698
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("DPV_ID" NOT NULL ENABLE);
4699
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 4700
--------------------------------------------------------
6031 dpurdie 4701
--  Constraints for Table JIRA_ISSUES
4308 dpurdie 4702
--------------------------------------------------------
4040 dpurdie 4703
 
6031 dpurdie 4704
  ALTER TABLE "RELEASE_MANAGER"."JIRA_ISSUES" MODIFY ("PV_ID" NOT NULL ENABLE);
4705
--------------------------------------------------------
4706
--  Constraints for Table ADDITIONAL_NOTES
4707
--------------------------------------------------------
4708
 
4709
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("MOD_USER" NOT NULL ENABLE);
4710
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
4711
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("NOTE_TITLE" NOT NULL ENABLE);
4712
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("PV_ID" NOT NULL ENABLE);
4713
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("NOTE_ID" NOT NULL ENABLE);
4714
--------------------------------------------------------
4715
--  Constraints for Table ARCHIVE_DATA
4716
--------------------------------------------------------
4717
 
4718
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" MODIFY ("PV_ID" NOT NULL ENABLE);
4719
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 4720
--------------------------------------------------------
4721
--  Constraints for Table BUILD_ENVIRONMENTS
4722
--------------------------------------------------------
4040 dpurdie 4723
 
5172 dpurdie 4724
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ADD CONSTRAINT "PK_BUILD_ENVIRONMENTS" PRIMARY KEY ("BE_ID")
4725
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4726
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4727
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4728
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4729
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 4730
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" MODIFY ("BE_NAME" NOT NULL ENABLE);
4731
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" MODIFY ("BE_ID" NOT NULL ENABLE);
4308 dpurdie 4732
--------------------------------------------------------
6031 dpurdie 4733
--  Constraints for Table VIEWS
4308 dpurdie 4734
--------------------------------------------------------
4040 dpurdie 4735
 
6031 dpurdie 4736
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" ADD CONSTRAINT "PK_VIEWS" PRIMARY KEY ("VIEW_ID")
4737
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4738
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4739
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4740
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4741
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4742
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("PUBLIC_READ" NOT NULL ENABLE);
4743
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("BASE_VIEW" NOT NULL ENABLE);
4744
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("OWNER_ID" NOT NULL ENABLE);
4745
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("VIEW_NAME" NOT NULL ENABLE);
4746
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4747
--------------------------------------------------------
4748
--  Constraints for Table VIEW_DEF
4749
--------------------------------------------------------
4750
 
4751
  ALTER TABLE "RELEASE_MANAGER"."VIEW_DEF" MODIFY ("PKG_ID" NOT NULL ENABLE);
4752
  ALTER TABLE "RELEASE_MANAGER"."VIEW_DEF" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4040 dpurdie 4753
--------------------------------------------------------
4754
--  Ref Constraints for Table ABT_ACTION_LOG
4755
--------------------------------------------------------
4756
 
5172 dpurdie 4757
  ALTER TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" ADD FOREIGN KEY ("RCON_ID")
4758
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
4040 dpurdie 4759
--------------------------------------------------------
4760
--  Ref Constraints for Table ACTION_LOG
4761
--------------------------------------------------------
4762
 
6031 dpurdie 4763
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" ADD CONSTRAINT "ACTION_LOG_FK1" FOREIGN KEY ("PV_ID")
4764
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
5172 dpurdie 4765
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" ADD CONSTRAINT "REFACTION_TYPE48" FOREIGN KEY ("ACTTYPE_ID")
4766
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
4040 dpurdie 4767
--------------------------------------------------------
4768
--  Ref Constraints for Table ADDITIONAL_NOTES
4769
--------------------------------------------------------
4770
 
5172 dpurdie 4771
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" ADD CONSTRAINT "FK_ADDITION_REF_PV_ID" FOREIGN KEY ("PV_ID")
4772
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4773
--------------------------------------------------------
4774
--  Ref Constraints for Table ADVISORY_RIPPLE
4775
--------------------------------------------------------
4776
 
5172 dpurdie 4777
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" ADD FOREIGN KEY ("RTAG_ID")
4778
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4779
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" ADD FOREIGN KEY ("PV_ID")
4780
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4781
--------------------------------------------------------
4782
--  Ref Constraints for Table AUTOBUILD_FAILURE
4783
--------------------------------------------------------
4784
 
5172 dpurdie 4785
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD FOREIGN KEY ("PROJ_ID")
4786
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4787
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD FOREIGN KEY ("VIEW_ID")
4788
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
4040 dpurdie 4789
--------------------------------------------------------
4790
--  Ref Constraints for Table BUILD_ENV_DOCUMENTS
4791
--------------------------------------------------------
4792
 
5172 dpurdie 4793
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" ADD CONSTRAINT "FK_BUILD_E_DOCS_REF_BUILD_ENV" FOREIGN KEY ("BE_ID")
4794
	  REFERENCES "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") ENABLE;
4795
--------------------------------------------------------
4796
--  Ref Constraints for Table BUILD_INSTANCES
4797
--------------------------------------------------------
4798
 
4799
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_INSTANCES_FK1" FOREIGN KEY ("RTAG_ID")
4800
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
4801
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_INSTANCES_FK2" FOREIGN KEY ("PV_ID")
4802
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 4803
--------------------------------------------------------
4804
--  Ref Constraints for Table BUILD_MACHINE_CONFIG
4805
--------------------------------------------------------
4806
 
5172 dpurdie 4807
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ADD CONSTRAINT "FK_BM_GBE_ID" FOREIGN KEY ("GBE_ID")
4808
	  REFERENCES "RELEASE_MANAGER"."GBE_MACHTYPE" ("GBE_ID") ENABLE;
4040 dpurdie 4809
--------------------------------------------------------
4810
--  Ref Constraints for Table BUILD_ORDER
4811
--------------------------------------------------------
4812
 
5172 dpurdie 4813
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" ADD CONSTRAINT "FK_BO_PV_ID" FOREIGN KEY ("PV_ID")
6031 dpurdie 4814
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5172 dpurdie 4815
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" ADD CONSTRAINT "FK_BO_RTAG_ID" FOREIGN KEY ("RTAG_ID")
4816
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5892 dpurdie 4817
--------------------------------------------------------
4818
--  Ref Constraints for Table BUILD_PLAN
4819
--------------------------------------------------------
4820
 
4821
  ALTER TABLE "RELEASE_MANAGER"."BUILD_PLAN" ADD CONSTRAINT "BUILD_PLAN_FK1" FOREIGN KEY ("PV_ID")
4822
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
4823
  ALTER TABLE "RELEASE_MANAGER"."BUILD_PLAN" ADD CONSTRAINT "BUILD_PLAN_FK2" FOREIGN KEY ("RTAG_ID")
4824
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 4825
--------------------------------------------------------
4826
--  Ref Constraints for Table BUILD_STANDARDS_ADDENDUM
4827
--------------------------------------------------------
4828
 
5172 dpurdie 4829
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ADD CONSTRAINT "BUILD_STANDARDS_ADDENDUM_R01" FOREIGN KEY ("BS_ID")
4830
	  REFERENCES "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") ENABLE;
4040 dpurdie 4831
--------------------------------------------------------
4832
--  Ref Constraints for Table CODE_REVIEWS
4833
--------------------------------------------------------
4834
 
5172 dpurdie 4835
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEWS" ADD CONSTRAINT "FK_CODE_REV_REF_PV_ID" FOREIGN KEY ("PV_ID")
4836
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4837
--------------------------------------------------------
4838
--  Ref Constraints for Table CODE_REVIEW_URL
4839
--------------------------------------------------------
4840
 
5172 dpurdie 4841
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PACKAGE_V_FK1" FOREIGN KEY ("PV_ID")
4842
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4843
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PROJECT_V_FK1" FOREIGN KEY ("PROJ_ID")
4844
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4040 dpurdie 4845
--------------------------------------------------------
4846
--  Ref Constraints for Table CQ_ISSUES
4847
--------------------------------------------------------
4848
 
5172 dpurdie 4849
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" ADD CONSTRAINT "FK_CQ_PV_ID" FOREIGN KEY ("PV_ID")
4850
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4851
--------------------------------------------------------
4852
--  Ref Constraints for Table DAEMON_ACTION_LOG
4853
--------------------------------------------------------
4854
 
5172 dpurdie 4855
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" ADD FOREIGN KEY ("RCON_ID")
4856
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
4857
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" ADD FOREIGN KEY ("ACTTYPE_ID")
4858
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
4040 dpurdie 4859
--------------------------------------------------------
4860
--  Ref Constraints for Table DAEMON_INSTRUCTIONS
4861
--------------------------------------------------------
4862
 
5172 dpurdie 4863
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_PV_ID_FK" FOREIGN KEY ("PV_ID")
4864
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4865
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_RTAG_ID_FK" FOREIGN KEY ("RTAG_ID")
4866
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4867
--------------------------------------------------------
4868
--  Ref Constraints for Table DASH_BOARD
4869
--------------------------------------------------------
4870
 
5172 dpurdie 4871
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" ADD FOREIGN KEY ("PROJ_ID")
4872
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4873
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" ADD FOREIGN KEY ("RTAG_ID")
4874
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4875
--------------------------------------------------------
4876
--  Ref Constraints for Table DO_NOT_RIPPLE
4877
--------------------------------------------------------
4878
 
5172 dpurdie 4879
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" ADD FOREIGN KEY ("PV_ID")
4880
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4881
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" ADD FOREIGN KEY ("RTAG_ID")
4882
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4883
--------------------------------------------------------
4884
--  Ref Constraints for Table GBE_MACHTYPE
4885
--------------------------------------------------------
4886
 
5172 dpurdie 4887
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" ADD CONSTRAINT "GBE_MACHTYPE_BUILD_MACHIN_FK1" FOREIGN KEY ("BM_ID")
4888
	  REFERENCES "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") ENABLE;
4040 dpurdie 4889
--------------------------------------------------------
4890
--  Ref Constraints for Table IGNORE_WARNINGS
4891
--------------------------------------------------------
4892
 
5172 dpurdie 4893
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_DPV_ID" FOREIGN KEY ("DPV_ID")
4894
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4895
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_PV_ID" FOREIGN KEY ("PV_ID")
4896
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4897
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_RTAG_ID" FOREIGN KEY ("RTAG_ID")
4898
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4899
--------------------------------------------------------
4900
--  Ref Constraints for Table JIRA_ISSUES
4901
--------------------------------------------------------
4902
 
5172 dpurdie 4903
  ALTER TABLE "RELEASE_MANAGER"."JIRA_ISSUES" ADD CONSTRAINT "FK_JIRA_PV_ID" FOREIGN KEY ("PV_ID")
4904
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4905
--------------------------------------------------------
4906
--  Ref Constraints for Table LICENCING
4907
--------------------------------------------------------
4908
 
5172 dpurdie 4909
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD FOREIGN KEY ("PV_ID")
4910
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4911
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD FOREIGN KEY ("LICENCE")
4912
	  REFERENCES "RELEASE_MANAGER"."LICENCES" ("LICENCE") ENABLE;
4040 dpurdie 4913
--------------------------------------------------------
5384 dpurdie 4914
--  Ref Constraints for Table LXR_STATE
4915
--------------------------------------------------------
4916
 
4917
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" ADD CONSTRAINT "LXR_STATE_FK1" FOREIGN KEY ("RTAG_ID")
4918
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
4919
--------------------------------------------------------
4040 dpurdie 4920
--  Ref Constraints for Table MEMBERS_GROUP
4921
--------------------------------------------------------
4922
 
5172 dpurdie 4923
  ALTER TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" ADD FOREIGN KEY ("GROUP_EMAIL_ID")
4924
	  REFERENCES "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ("GROUP_EMAIL_ID") ENABLE;
4040 dpurdie 4925
--------------------------------------------------------
4926
--  Ref Constraints for Table NOTIFICATION_HISTORY
4927
--------------------------------------------------------
4928
 
5172 dpurdie 4929
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "FK_NH_RTAG_ID" FOREIGN KEY ("RTAG_ID")
4930
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4931
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "FK_NK_PV_ID" FOREIGN KEY ("PV_ID")
4932
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") DISABLE;
4040 dpurdie 4933
--------------------------------------------------------
4934
--  Ref Constraints for Table PACKAGE_BUILD_ENV
4935
--------------------------------------------------------
4936
 
5172 dpurdie 4937
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ADD CONSTRAINT "FK_PKG_BUILD_E_REF_BUILD_ENV" FOREIGN KEY ("BE_ID")
4938
	  REFERENCES "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") ENABLE;
4939
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ADD CONSTRAINT "FK_PKG_BUILD_E_REF_PKG_VERSION" FOREIGN KEY ("PV_ID")
4940
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4941
--------------------------------------------------------
4942
--  Ref Constraints for Table PACKAGE_BUILD_INFO
4943
--------------------------------------------------------
4944
 
5172 dpurdie 4945
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" ADD FOREIGN KEY ("PV_ID")
4946
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4947
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" ADD FOREIGN KEY ("BM_ID")
4948
	  REFERENCES "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") ENABLE;
4040 dpurdie 4949
--------------------------------------------------------
5892 dpurdie 4950
--  Ref Constraints for Table PACKAGE_DEPENDENCIES
4951
--------------------------------------------------------
4952
 
4953
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK1" FOREIGN KEY ("PV_ID")
4954
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
4955
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK2" FOREIGN KEY ("DPV_ID")
4956
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
4957
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK3" FOREIGN KEY ("DPKG_ID")
4958
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ON DELETE CASCADE ENABLE;
4959
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK4" FOREIGN KEY ("PKG_ID")
4960
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ON DELETE CASCADE ENABLE;
4961
--------------------------------------------------------
4040 dpurdie 4962
--  Ref Constraints for Table PACKAGE_DOCUMENTS
4963
--------------------------------------------------------
4964
 
5172 dpurdie 4965
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ADD CONSTRAINT "FK_PKGDOCS_REF_PV" FOREIGN KEY ("PV_ID")
4966
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4967
--------------------------------------------------------
4968
--  Ref Constraints for Table PACKAGE_INTEREST
4969
--------------------------------------------------------
4970
 
5172 dpurdie 4971
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" ADD FOREIGN KEY ("PROJ_ID")
4972
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4040 dpurdie 4973
--------------------------------------------------------
4974
--  Ref Constraints for Table PACKAGE_METRICS
4975
--------------------------------------------------------
4976
 
5172 dpurdie 4977
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" ADD CONSTRAINT "FK_PACKAGE_METRICS_PV_ID" FOREIGN KEY ("PV_ID")
4978
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4979
--------------------------------------------------------
4980
--  Ref Constraints for Table PACKAGE_PATCHES
4981
--------------------------------------------------------
4982
 
5172 dpurdie 4983
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" ADD CONSTRAINT "FK_PP_PATCH_ID" FOREIGN KEY ("PATCH_ID")
4984
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4985
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" ADD CONSTRAINT "FK_PP_PV_ID" FOREIGN KEY ("PV_ID")
4986
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4987
--------------------------------------------------------
4988
--  Ref Constraints for Table PACKAGE_PROCESSES
4989
--------------------------------------------------------
4990
 
5172 dpurdie 4991
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" ADD CONSTRAINT "PACKAGE_PROCESSES_R01" FOREIGN KEY ("PV_ID")
4992
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4993
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" ADD CONSTRAINT "PACKAGE_PROCESSES_R02" FOREIGN KEY ("PROC_ID")
4994
	  REFERENCES "RELEASE_MANAGER"."PROCESSES" ("PROC_ID") ENABLE;
4040 dpurdie 4995
--------------------------------------------------------
4996
--  Ref Constraints for Table PACKAGE_VERSIONS
4997
--------------------------------------------------------
4998
 
5172 dpurdie 4999
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PACKAGE_VERSIONS_VCS_TYPE" FOREIGN KEY ("VCS_TYPE_ID")
5000
	  REFERENCES "RELEASE_MANAGER"."VCS_TYPE" ("VCS_TYPE_ID") ENABLE;
5001
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD FOREIGN KEY ("BS_ID")
5002
	  REFERENCES "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") ENABLE;
4040 dpurdie 5003
--------------------------------------------------------
5004
--  Ref Constraints for Table PEGGED_VERSIONS
5005
--------------------------------------------------------
5006
 
5172 dpurdie 5007
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" ADD CONSTRAINT "PEGGED_VERSIONS_PACKAG_FK1" FOREIGN KEY ("PV_ID")
5008
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5009
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" ADD CONSTRAINT "PEGGED_VERSIONS_RELEAS_FK1" FOREIGN KEY ("RTAG_ID")
5010
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 5011
--------------------------------------------------------
5012
--  Ref Constraints for Table PLANNED
5013
--------------------------------------------------------
5014
 
5172 dpurdie 5015
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFPACKAGE_VERSIONS54" FOREIGN KEY ("PV_ID")
5016
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5017
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFRELEASE_TAGS53" FOREIGN KEY ("RTAG_ID")
5018
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5019
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFVIEWS55" FOREIGN KEY ("VIEW_ID")
5020
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
4040 dpurdie 5021
--------------------------------------------------------
5022
--  Ref Constraints for Table PLANNED_VERSIONS
5023
--------------------------------------------------------
5024
 
5172 dpurdie 5025
  ALTER TABLE "RELEASE_MANAGER"."PLANNED_VERSIONS" ADD FOREIGN KEY ("PKG_ID")
5026
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
4040 dpurdie 5027
--------------------------------------------------------
5028
--  Ref Constraints for Table PRODUCT_COMPONENTS
5029
--------------------------------------------------------
5030
 
5172 dpurdie 5031
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" ADD CONSTRAINT "REFPACKAGE_VERSIONS49" FOREIGN KEY ("PV_ID")
5032
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 5033
--------------------------------------------------------
5034
--  Ref Constraints for Table PROJECT_ACTION_LOG
5035
--------------------------------------------------------
5036
 
5172 dpurdie 5037
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ADD CONSTRAINT "REFACTION_TYPE63" FOREIGN KEY ("ACTTYPE_ID")
5038
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
5039
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ADD FOREIGN KEY ("RTAG_ID")
5040
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") DISABLE;
4040 dpurdie 5041
--------------------------------------------------------
5042
--  Ref Constraints for Table RELEASE_COMPONENTS
5043
--------------------------------------------------------
5044
 
5172 dpurdie 5045
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" ADD CONSTRAINT "FK_RCONT_PV_ID" FOREIGN KEY ("PV_ID")
5046
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 5047
--------------------------------------------------------
5048
--  Ref Constraints for Table RELEASE_CONFIG
5049
--------------------------------------------------------
5050
 
5172 dpurdie 5051
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD FOREIGN KEY ("RTAG_ID")
5052
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5053
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD FOREIGN KEY ("GBE_ID")
5054
	  REFERENCES "RELEASE_MANAGER"."GBE_MACHTYPE" ("GBE_ID") ENABLE;
4040 dpurdie 5055
--------------------------------------------------------
5056
--  Ref Constraints for Table RELEASE_CONTENT
5057
--------------------------------------------------------
5058
 
5172 dpurdie 5059
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD CONSTRAINT "RELEASE_CONTENT_FK1" FOREIGN KEY ("SDKTAG_ID")
5060
	  REFERENCES "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") ENABLE;
5061
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD FOREIGN KEY ("PKG_ID")
5062
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
5063
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD FOREIGN KEY ("PRODUCT_STATE")
5064
	  REFERENCES "RELEASE_MANAGER"."PRODUCT_STATES" ("STATE_ID") ENABLE;
4040 dpurdie 5065
--------------------------------------------------------
5066
--  Ref Constraints for Table RELEASE_LINKS
5067
--------------------------------------------------------
5068
 
5172 dpurdie 5069
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" ADD CONSTRAINT "REFRELEASE_TAGS56" FOREIGN KEY ("RTAG_ID")
5070
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5071
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" ADD CONSTRAINT "REFRELEASE_TAGS58" FOREIGN KEY ("REF_RTAG_ID")
5072
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 5073
--------------------------------------------------------
5074
--  Ref Constraints for Table RELEASE_METRICS
5075
--------------------------------------------------------
5076
 
5172 dpurdie 5077
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" ADD CONSTRAINT "FK_RELEASE_METRICS_RTAG_ID" FOREIGN KEY ("RTAG_ID")
5078
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5079
--------------------------------------------------------
5080
--  Ref Constraints for Table RELEASE_MODIFIED
5081
--------------------------------------------------------
5082
 
5083
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" ADD CONSTRAINT "RELEASE_MODIFIED_RELEASE__FK1" FOREIGN KEY ("RTAG_ID")
5084
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 5085
--------------------------------------------------------
5086
--  Ref Constraints for Table RUNTIME_DEPENDENCIES
5087
--------------------------------------------------------
5088
 
5172 dpurdie 5089
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ADD CONSTRAINT "FK_RTD_PV_ID" FOREIGN KEY ("PV_ID")
5090
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5091
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ADD CONSTRAINT "FK_RTD_RTD_ID" FOREIGN KEY ("RTD_ID")
5092
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 5093
--------------------------------------------------------
5094
--  Ref Constraints for Table RUN_LEVEL
5095
--------------------------------------------------------
5096
 
5172 dpurdie 5097
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD FOREIGN KEY ("RCON_ID")
5098
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
5099
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD FOREIGN KEY ("CURRENT_PKG_ID_BEING_BUILT")
5100
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
5101
--------------------------------------------------------
5102
--  Ref Constraints for Table SDK_CONTENT
5103
--------------------------------------------------------
5104
 
5105
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" ADD CONSTRAINT "SDK_CONTENT_FK1" FOREIGN KEY ("PV_ID")
5106
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5107
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" ADD CONSTRAINT "SDK_CONTENT_FK2" FOREIGN KEY ("SDKTAG_ID")
5108
	  REFERENCES "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") ENABLE;
5109
--------------------------------------------------------
5110
--  Ref Constraints for Table SDK_NAMES
5111
--------------------------------------------------------
5112
 
5113
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_FK1" FOREIGN KEY ("VIEW_ID")
5114
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
5115
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_FK2" FOREIGN KEY ("PROJ_ID")
5116
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
5117
--------------------------------------------------------
5118
--  Ref Constraints for Table SDK_TAGS
5119
--------------------------------------------------------
5120
 
5121
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_FK1" FOREIGN KEY ("SDK_ID")
5122
	  REFERENCES "RELEASE_MANAGER"."SDK_NAMES" ("SDK_ID") ENABLE;
5123
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_FK2" FOREIGN KEY ("RTAG_ID")
5124
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5125
--------------------------------------------------------
5126
--  Ref Constraints for Table TEST_RUN
5127
--------------------------------------------------------
5128
 
5129
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" ADD CONSTRAINT "TEST_RUN_FK1" FOREIGN KEY ("BUILD_ID")
5130
	  REFERENCES "RELEASE_MANAGER"."BUILD_INSTANCES" ("BUILD_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 5131
--------------------------------------------------------
5132
--  Ref Constraints for Table UNIT_TESTS
5133
--------------------------------------------------------
5134
 
5172 dpurdie 5135
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" ADD CONSTRAINT "FK_UT_REF_PV_ID" FOREIGN KEY ("PV_ID")
5136
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5137
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" ADD CONSTRAINT "FK_UT_REF_TEST_TYPES" FOREIGN KEY ("TEST_TYPES_FK")
5138
	  REFERENCES "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_ID") ENABLE;
4040 dpurdie 5139
--------------------------------------------------------
5140
--  Ref Constraints for Table VTREES_WORLD
5141
--------------------------------------------------------
5142
 
5172 dpurdie 5143
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" ADD CONSTRAINT "FK_VW_REF_VTREE_ID" FOREIGN KEY ("VTREE_ID")
5144
	  REFERENCES "RELEASE_MANAGER"."VTREES" ("VTREE_ID") ENABLE;
5145
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" ADD CONSTRAINT "FK_VW_REF_WORLD_ID" FOREIGN KEY ("WORLD_ID")
5146
	  REFERENCES "RELEASE_MANAGER"."WORLDS" ("WORLD_ID") ENABLE;
4040 dpurdie 5147
--------------------------------------------------------
5148
--  Ref Constraints for Table WORK_IN_PROGRESS
5149
--------------------------------------------------------
5150
 
5172 dpurdie 5151
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFPACKAGE_VERSIONS51" FOREIGN KEY ("PV_ID")
5152
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5153
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFRELEASE_TAGS50" FOREIGN KEY ("RTAG_ID")
5154
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5155
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFVIEWS52" FOREIGN KEY ("VIEW_ID")
5156
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
5157
--------------------------------------------------------
5158
--  DDL for Trigger TRIGGER_BSA_ID
5159
--------------------------------------------------------
5160
 
5161
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_BSA_ID" 
6031 dpurdie 5162
BEFORE INSERT ON BUILD_STANDARDS_ADDENDUM
5172 dpurdie 5163
for each row
5164
BEGIN
5165
  select SEQ_BSA_ID.nextval
5166
  into :new.BSA_ID
5167
  from DUAL;
5168
END;
4040 dpurdie 5169
/
5172 dpurdie 5170
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_BSA_ID" ENABLE;
5171
--------------------------------------------------------
5172
--  DDL for Trigger TRIGGER_BUILD_INSTANCE
5173
--------------------------------------------------------
5174
 
5175
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_BUILD_INSTANCE" 
6031 dpurdie 5176
BEFORE INSERT ON BUILD_INSTANCES
5172 dpurdie 5177
for each row
5178
BEGIN
5179
  select SEQ_BUILD_INSTANCE.nextval
5180
  into :new.BUILD_ID
5181
  from DUAL;
5182
END;
5183
/
5184
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_BUILD_INSTANCE" ENABLE;
5185
--------------------------------------------------------
5186
--  DDL for Trigger TRIGGER_SDK_NAMES
5187
--------------------------------------------------------
5188
 
5189
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_NAMES" 
6031 dpurdie 5190
BEFORE INSERT ON SDK_NAMES
5172 dpurdie 5191
for each row
5192
BEGIN
5193
  select SEQ_SDK_ID.nextval
5194
  into :new.SDK_ID
5195
  from DUAL;
5196
END;
5197
/
5198
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_NAMES" ENABLE;
5199
--------------------------------------------------------
5200
--  DDL for Trigger TRIGGER_SDK_TAGS
5201
--------------------------------------------------------
5202
 
5203
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_TAGS" 
6031 dpurdie 5204
BEFORE INSERT ON SDK_TAGS
5172 dpurdie 5205
for each row
5206
BEGIN
5207
  select SEQ_SDKTAG_ID.nextval
5208
  into :new.SDKTAG_ID
5209
  from DUAL;
5210
END;
5211
/
5212
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_TAGS" ENABLE;
4040 dpurdie 5213
--------------------------------------------------------
5892 dpurdie 5214
--  DDL for Trigger TRIGGER_TEST_RUNS
5215
--------------------------------------------------------
5216
 
5217
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_TEST_RUNS" 
6031 dpurdie 5218
  BEFORE INSERT ON TEST_RUN
5219
  for each row
5892 dpurdie 5220
BEGIN
5221
  select SEQ_TESTRUN_ID.nextval
6031 dpurdie 5222
    into :new.TESTRUN_ID
5892 dpurdie 5223
  from DUAL;
5224
END;
5225
/
5226
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_TEST_RUNS" ENABLE;
5227
--------------------------------------------------------
4040 dpurdie 5228
--  DDL for Function CAN_EDIT_PKG_IN_PROJECT
5229
--------------------------------------------------------
5230
 
5172 dpurdie 5231
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."CAN_EDIT_PKG_IN_PROJECT" ( nPvId IN NUMBER, nRtagId IN NUMBER ) RETURN NUMBER IS
5384 dpurdie 5232
-- Returns 0 : Package is not editable in this Release
5233
--         1 : Package is editable in this release
1373 dpurdie 5234
/* ---------------------------------------------------------------------------
5235
    Version: 3.0.0
5236
   --------------------------------------------------------------------------- */
5237
 
5384 dpurdie 5238
  VExt PACKAGE_VERSIONS.V_EXT%TYPE;
5239
  ProjId NUMBER;
5240
  RowCount NUMBER;
5241
  cReleaseMode CHAR(1);
1373 dpurdie 5242
 
5243
BEGIN
6031 dpurdie 5244
 
5384 dpurdie 5245
  /*--------------- Business Rules Here -------------------*/
5246
  IF (nRtagId IS NULL)  OR  (nRtagId < 1)THEN
5247
    RETURN 0;
5248
  END IF;
5249
  /*-------------------------------------------------------*/
6031 dpurdie 5250
 
5384 dpurdie 5251
  /*-- First Check. See if package is used through release reference --*/
5252
  SELECT COUNT(rc.PV_ID) INTO RowCount
5253
    FROM (
5254
        SELECT rl.REF_RTAG_ID
5255
        FROM RELEASE_LINKS rl
5256
       WHERE rl.RTAG_ID = nRtagId
5257
        ) rl,
5258
      RELEASE_CONTENT rc
5259
    WHERE rc.RTAG_ID = rl.REF_RTAG_ID
6031 dpurdie 5260
      AND rc.PV_ID = nPvId;
5261
 
5262
  -- Decide if package can be edited
5384 dpurdie 5263
  IF RowCount > 0 THEN
5264
    -- Package is referenced from other release, hence cannot be edited
6031 dpurdie 5265
    RETURN 0;
5266
  END IF;
5267
 
5172 dpurdie 5268
-- Check if the package is included through an SDK reference
5269
  SELECT count(*) INTO RowCount
5270
    FROM RELEASE_CONTENT rc
5271
   WHERE rc.RTAG_ID = nRtagId
5384 dpurdie 5272
      AND rc.PV_ID = nPvId
5172 dpurdie 5273
      AND rc.SDKTAG_ID is not NULL ;
5274
 
5384 dpurdie 5275
  IF RowCount > 0 THEN
5276
    -- Package is imported via SDK
6031 dpurdie 5277
    RETURN 0;
5278
  END IF;
5279
 
5384 dpurdie 5280
--  Pegged packages can be edited. Other checking needs to be done
5281
--  -- Check if the package is pegged
5282
--  SELECT count(*) INTO RowCount
5283
--    FROM pegged_versions
5284
--   WHERE RTAG_ID = nRtagId
5285
--      AND PV_ID = nPvId;
5172 dpurdie 5286
 
5384 dpurdie 5287
--  IF RowCount > 0 THEN
5288
--    -- Package is Pegged
6031 dpurdie 5289
--    RETURN 0;
5290
--  END IF;
5291
 
5384 dpurdie 5292
  -- Check is only done for releases in restrictive mode
5293
  SELECT rt.OFFICIAL INTO cReleaseMode
5294
    FROM RELEASE_TAGS rt
5295
   WHERE rt.RTAG_ID = nRtagId;
6031 dpurdie 5296
 
5384 dpurdie 5297
  IF cReleaseMode = 'N' OR cReleaseMode = 'R'  OR cReleaseMode = 'C' THEN
5298
    -- Do not do any further checking,
5299
    -- Package is editable here
5300
    RETURN 1;
6031 dpurdie 5301
  END IF;
5172 dpurdie 5302
 
6031 dpurdie 5303
 
5384 dpurdie 5304
  /*-- Further checking --*/
5305
  -- Get proj_id
5306
  SELECT rt.PROJ_ID  INTO  ProjId
5307
    FROM RELEASE_TAGS rt
5308
   WHERE rt.RTAG_ID = nRtagId;
5172 dpurdie 5309
 
5384 dpurdie 5310
  BEGIN
5311
    -- Get v_ext
5312
    SELECT pv.V_EXT  INTO  Vext
5313
      FROM PACKAGE_VERSIONS pv
6031 dpurdie 5314
     WHERE pv.PV_ID = nPvId;
1373 dpurdie 5315
 
5384 dpurdie 5316
    EXCEPTION
5317
        WHEN NO_DATA_FOUND THEN
5318
            Vext := NULL;
6031 dpurdie 5319
  END;
5320
 
5384 dpurdie 5321
  --Temp Hack for Step Project
5322
  IF ProjId != 281 THEN
5323
    -- Find if package can be edited in this project
5324
      SELECT COUNT(pe.EXT_NAME) INTO RowCount
5325
      FROM PROJECT_EXTENTIONS pe
6031 dpurdie 5326
      WHERE pe.PROJ_ID != ProjId
5384 dpurdie 5327
        AND pe.EXT_NAME = VExt;
6031 dpurdie 5328
  END IF;
5329
 
5330
  -- Decide if package can be edited
5384 dpurdie 5331
  IF RowCount > 0 THEN
5332
    -- Package extension is found in other projects, hence NOT EDITABLE
5333
    RETURN 0;
5334
  ELSE
6031 dpurdie 5335
    RETURN 1;
5384 dpurdie 5336
  END IF;
1373 dpurdie 5337
 
6031 dpurdie 5338
 
1373 dpurdie 5339
END CAN_EDIT_PKG_IN_PROJECT;
4040 dpurdie 5340
 
1374 dpurdie 5341
/
4040 dpurdie 5342
--------------------------------------------------------
5343
--  DDL for Function DT_ADDUSEROBJECT
5344
--------------------------------------------------------
5345
 
5172 dpurdie 5346
  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 5347
 
3959 dpurdie 5348
/
4040 dpurdie 5349
--------------------------------------------------------
5350
--  DDL for Function GET_AUTOMATED_LABEL
5351
--------------------------------------------------------
5352
 
5172 dpurdie 5353
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_AUTOMATED_LABEL" ( nPvId IN NUMBER ) RETURN VARCHAR2 IS
3959 dpurdie 5354
 
5355
/* ---------------------------------------------------------------------------
5356
    Version: 3.0.0
5357
   --------------------------------------------------------------------------- */
5358
 
4211 dpurdie 5359
  sPkgName VARCHAR2(4000);
5360
  sPkgVersion VARCHAR2(4000);
5361
  sVext VARCHAR2(4000);
5362
  cChangeType CHAR;
5363
  cBuildType CHAR;
3959 dpurdie 5364
 
6031 dpurdie 5365
 
1373 dpurdie 5366
BEGIN
5367
 
3959 dpurdie 5368
	-- Get package details
6031 dpurdie 5369
	SELECT pkg.PKG_NAME, pv.V_EXT, pv.build_type, pv.change_type, pv.pkg_version INTO sPkgName, sVext,cBuildType, cChangeType, sPkgVersion
3959 dpurdie 5370
	  FROM PACKAGE_VERSIONS pv,
5371
	  	   PACKAGES pkg
5372
	 WHERE pv.PKG_ID = pkg.PKG_ID
5373
	   AND pv.PV_ID = nPvId;
5374
 
4211 dpurdie 5375
  -- Generate Label for manually built package
5376
  If cBuildType = 'M' Then
5377
    return (sPkgName ||'_'|| sPkgVersion );
5378
  End If;
3959 dpurdie 5379
 
4211 dpurdie 5380
  -- Generate Label for automated build with specified package version
5381
  IF cchangetype = 'F' Then
5382
    return (sPkgName ||'_'|| sPkgVersion ||'.WIP');
5383
  End If;
5384
 
3959 dpurdie 5385
	-- Generate Label for automated build
5386
	RETURN UPPER( sPkgName ||'.'|| nPvId || sVext ||'.WIP' );
5387
 
5388
END GET_AUTOMATED_LABEL;
4040 dpurdie 5389
 
1374 dpurdie 5390
/
4040 dpurdie 5391
--------------------------------------------------------
5392
--  DDL for Function GET_BUILD_NUMBER
5393
--------------------------------------------------------
5394
 
5172 dpurdie 5395
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_BUILD_NUMBER" (s_version IN VARCHAR2) RETURN VARCHAR2
1373 dpurdie 5396
IS
5397
/* ---------------------------------------------------------------------------
5398
    Version: 1.0.0
5399
   --------------------------------------------------------------------------- */
5400
BEGIN
5401
    IF is_number(s_version) AND LENGTH(s_version) > 3
5402
    THEN
5403
        RETURN MOD(TO_NUMBER(s_version), 1000);
5404
    ELSE
5405
        RETURN 0;
5406
    END IF;
5407
END get_build_number;
4040 dpurdie 5408
 
1374 dpurdie 5409
/
4040 dpurdie 5410
--------------------------------------------------------
5411
--  DDL for Function GET_PATCH_VERSION
5412
--------------------------------------------------------
5413
 
5172 dpurdie 5414
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_PATCH_VERSION" (s_version IN VARCHAR2) RETURN VARCHAR2
1373 dpurdie 5415
IS
5416
/* ---------------------------------------------------------------------------
3959 dpurdie 5417
    Version: 1.0.0
1373 dpurdie 5418
   --------------------------------------------------------------------------- */
5419
BEGIN
3959 dpurdie 5420
    IF is_number(s_version) AND LENGTH(s_version) > 3
1373 dpurdie 5421
    THEN
3959 dpurdie 5422
        RETURN FLOOR(TO_NUMBER(s_version) / 1000);
1373 dpurdie 5423
    ELSE
3959 dpurdie 5424
        RETURN s_version;
1373 dpurdie 5425
    END IF;
3959 dpurdie 5426
END get_patch_version;
4040 dpurdie 5427
 
1374 dpurdie 5428
/
4040 dpurdie 5429
--------------------------------------------------------
5430
--  DDL for Function GET_PV_FIRST_MODIFIED
5431
--------------------------------------------------------
5432
 
5172 dpurdie 5433
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" (v_pv_id NUMBER) RETURN DATE IS
3959 dpurdie 5434
  ret DATE;
1373 dpurdie 5435
BEGIN
3959 dpurdie 5436
  SELECT q.modified_stamp
5437
    INTO ret
5438
    FROM (
5439
            SELECT level AS lvl, pvc.pv_id, pvc.modified_stamp, pvc.change_type
5440
              FROM package_versions pvc
5441
              START WITH pvc.pv_id = v_pv_id
5442
            CONNECT BY NOCYCLE pvc.pv_id = PRIOR pvc.last_pv_id
5443
          ) Q
5444
  WHERE q.change_type IS NOT NULL
5445
    AND rownum = 1
5446
  ORDER BY q.lvl;
5447
 
5448
  RETURN ret;
5449
END;
4040 dpurdie 5450
 
1374 dpurdie 5451
/
5892 dpurdie 5452
 
6031 dpurdie 5453
  GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "RM_READONLY";
5892 dpurdie 5454
  GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "DM_READONLY";
5455
  GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 5456
--------------------------------------------------------
5457
--  DDL for Function GET_V_EXT
5458
--------------------------------------------------------
5459
 
5172 dpurdie 5460
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_V_EXT" (SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE) RETURN VARCHAR2 IS
3959 dpurdie 5461
 
1373 dpurdie 5462
/* ---------------------------------------------------------------------------
3959 dpurdie 5463
    Version: 3.0.0
1373 dpurdie 5464
   --------------------------------------------------------------------------- */
3959 dpurdie 5465
 
5466
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
5467
    lastDot NUMBER;
5468
 
1373 dpurdie 5469
BEGIN
3959 dpurdie 5470
    lastDot := INSTR (SSpkg_version, '.', -1);
5471
 
5472
    IF ( lastDot > 0 ) AND ( lastDot != LENGTH(SSpkg_version) )
1373 dpurdie 5473
    THEN
3959 dpurdie 5474
        -- YES dot separator found --
5475
        SSV_EXT := SUBSTR (SSpkg_version, lastDot, LENGTH(SSpkg_version)-lastDot+1);
5476
 
5477
        IF IS_VERSION_EXTENSION ( SSV_EXT )
5478
        THEN
5479
            RETURN SSV_EXT;
5480
        ELSE
5481
            RETURN NULL;
5482
        END IF;
5483
 
1373 dpurdie 5484
    ELSE
3959 dpurdie 5485
        -- NO dot separator found --
5486
        RETURN NULL;
1373 dpurdie 5487
    END IF;
3959 dpurdie 5488
 
5489
END GET_V_EXT;
4040 dpurdie 5490
 
1374 dpurdie 5491
/
4040 dpurdie 5492
--------------------------------------------------------
5493
--  DDL for Function IN_LIST_NUMBER
5494
--------------------------------------------------------
5495
 
5172 dpurdie 5496
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER" ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS
1373 dpurdie 5497
 
5498
/* ---------------------------------------------------------------------------
5499
    Version: 3.0.0
5500
   --------------------------------------------------------------------------- */
5501
 
5502
    sync_rtags		   RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
5503
	pos				   NUMBER;
3959 dpurdie 5504
	in_list			   VARCHAR2(4000) := sInList || ',';
1373 dpurdie 5505
 
5506
BEGIN
5507
 
5508
	IF NOT sInList IS NULL
5509
	THEN
5510
		LOOP
5511
	        EXIT WHEN in_list IS NULL;
5512
	        pos := INSTR ( in_list, ',' );
5513
	        sync_rtags.extend;
5514
	        sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
5515
	        in_list := SUBSTR ( in_list, pos+1 );
5516
		END LOOP;
5517
	END IF;
5518
 
5519
	RETURN sync_rtags;
3959 dpurdie 5520
END IN_LIST_NUMBER;
4040 dpurdie 5521
 
1374 dpurdie 5522
/
4040 dpurdie 5523
--------------------------------------------------------
5524
--  DDL for Function IN_LIST_NUMBER2
5525
--------------------------------------------------------
5526
 
5172 dpurdie 5527
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER2" ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS
1373 dpurdie 5528
 
5529
/* ---------------------------------------------------------------------------
5530
    Version: 3.0.0
5531
   --------------------------------------------------------------------------- */
5532
 
5533
    sync_rtags		   RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
5534
	pos				   NUMBER;
3959 dpurdie 5535
	in_list			   VARCHAR2(32767) := sInList || ',';
1373 dpurdie 5536
 
5537
BEGIN
5538
 
5539
	IF NOT sInList IS NULL
5540
	THEN
5541
		LOOP
5542
	        EXIT WHEN in_list IS NULL;
5543
	        pos := INSTR ( in_list, ',' );
5544
	        sync_rtags.extend;
5545
	        sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
5546
	        in_list := SUBSTR ( in_list, pos+1 );
5547
		END LOOP;
5548
	END IF;
5549
 
5550
	RETURN sync_rtags;
3959 dpurdie 5551
END IN_LIST_NUMBER2;
4040 dpurdie 5552
 
1374 dpurdie 5553
/
4040 dpurdie 5554
--------------------------------------------------------
5555
--  DDL for Function IN_LIST_VARCHAR2
5556
--------------------------------------------------------
5557
 
5172 dpurdie 5558
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_VARCHAR2" ( sInList IN VARCHAR2, cSeparator IN VARCHAR2 ) RETURN RELMGR_VARCHAR2_TAB_t IS
1373 dpurdie 5559
 
5560
/* ---------------------------------------------------------------------------
5561
    Version: 3.1
5562
   --------------------------------------------------------------------------- */
5563
 
5564
    cItemCollection	   RELMGR_VARCHAR2_TAB_t := RELMGR_VARCHAR2_TAB_t();
5565
	pos				   NUMBER;
5566
	in_list			   VARCHAR2(4000) := sInList || cSeparator;
5567
	val				   VARCHAR2(4000);
5568
 
5569
BEGIN
5570
 
5571
	IF NOT sInList IS NULL
5572
	THEN
5573
		LOOP
5574
	        EXIT WHEN in_list IS NULL;
5575
	        pos := INSTR ( in_list, cSeparator );
5576
			val := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
6031 dpurdie 5577
 
1373 dpurdie 5578
			IF (NOT val IS NULL) THEN
5579
		        cItemCollection.extend;
5580
		        cItemCollection(cItemCollection.count) := val;
5581
			END IF;
6031 dpurdie 5582
 
1373 dpurdie 5583
	        in_list := SUBSTR ( in_list, pos+1 );
5584
		END LOOP;
5585
	END IF;
5586
 
5587
	RETURN cItemCollection;
5588
END IN_LIST_VARCHAR2;
4040 dpurdie 5589
 
1374 dpurdie 5590
/
4040 dpurdie 5591
--------------------------------------------------------
5592
--  DDL for Function IS_NUMBER
5593
--------------------------------------------------------
5594
 
5172 dpurdie 5595
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IS_NUMBER" (p_val IN VARCHAR2) RETURN BOOLEAN
3959 dpurdie 5596
IS
5597
   temp_num NUMBER;
5598
/* ---------------------------------------------------------------------------
5599
    Version: 1.0.0
5600
   --------------------------------------------------------------------------- */
5601
BEGIN
5602
   temp_num := TO_NUMBER(p_val);
5603
   RETURN true;
5604
EXCEPTION WHEN VALUE_ERROR THEN
5605
   RETURN false;
5606
END IS_NUMBER;
4040 dpurdie 5607
 
3959 dpurdie 5608
/
4040 dpurdie 5609
--------------------------------------------------------
5610
--  DDL for Function IS_VERSION_EXTENSION
5611
--------------------------------------------------------
5612
 
5172 dpurdie 5613
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IS_VERSION_EXTENSION" (SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE) RETURN BOOLEAN
3959 dpurdie 5614
IS
5615
/* ---------------------------------------------------------------------------
5616
    Version: 3.0.0
5617
   --------------------------------------------------------------------------- */
1373 dpurdie 5618
 
3959 dpurdie 5619
BEGIN
5620
    IF LENGTH ( TRIM (TRANSLATE (SSV_EXT, '.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',' ') ) ) > 0
5621
    THEN
5622
        RETURN FALSE;
5623
    ELSE
5624
        RETURN TRUE;
5625
    END IF;
1373 dpurdie 5626
 
3959 dpurdie 5627
END IS_VERSION_EXTENSION;
4040 dpurdie 5628
 
1374 dpurdie 5629
/
4040 dpurdie 5630
--------------------------------------------------------
5631
--  DDL for Function ORA_SYSDATE
5632
--------------------------------------------------------
5633
 
5172 dpurdie 5634
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."ORA_SYSDATE" 
3959 dpurdie 5635
RETURN DATE
1373 dpurdie 5636
IS
3959 dpurdie 5637
/* ---------------------------------------------------------------------------
5638
    Version: 3.0.0
5639
   --------------------------------------------------------------------------- */
5640
BEGIN
1373 dpurdie 5641
 
3959 dpurdie 5642
    RETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY' ),'DD-MON-YYYY' );
5643
END ORA_SYSDATE;
4040 dpurdie 5644
 
3959 dpurdie 5645
/
4040 dpurdie 5646
--------------------------------------------------------
5647
--  DDL for Function ORA_SYSDATETIME
5648
--------------------------------------------------------
5649
 
5172 dpurdie 5650
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."ORA_SYSDATETIME" 
3959 dpurdie 5651
RETURN DATE
5652
IS
5653
/* ---------------------------------------------------------------------------
5654
    Version: 3.0.0
5655
   --------------------------------------------------------------------------- */
5656
BEGIN
1373 dpurdie 5657
 
3959 dpurdie 5658
    RETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY HH24:MI:SS' ),'DD-MON-YYYY HH24:MI:SS' );
5659
END ORA_SYSDATETIME;
4040 dpurdie 5660
 
3959 dpurdie 5661
/
4040 dpurdie 5662
--------------------------------------------------------
5663
--  DDL for Function PERL_DBD_TESTFUNC
5664
--------------------------------------------------------
5665
 
5172 dpurdie 5666
  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 5667
 
1374 dpurdie 5668
/
4040 dpurdie 5669
--------------------------------------------------------
5670
--  DDL for Function RELEASE_MODE
5671
--------------------------------------------------------
5672
 
5172 dpurdie 5673
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."RELEASE_MODE" ( nRtagId IN NUMBER ) RETURN CHAR IS
1373 dpurdie 5674
 
3959 dpurdie 5675
/* ---------------------------------------------------------------------------
5676
    Version: 3.0.0
5677
   --------------------------------------------------------------------------- */
1373 dpurdie 5678
 
3959 dpurdie 5679
   returnValue CHAR(1);
1373 dpurdie 5680
 
3959 dpurdie 5681
BEGIN
1373 dpurdie 5682
 
3959 dpurdie 5683
    /*--------------- Business Rules Here -------------------*/
5684
	/*-------------------------------------------------------*/
6031 dpurdie 5685
 
3959 dpurdie 5686
	-- Get release mode
5687
	SELECT rt.OFFICIAL INTO returnValue
5688
	  FROM RELEASE_TAGS rt
5689
	 WHERE rt.RTAG_ID = nRtagId;
6031 dpurdie 5690
 
3959 dpurdie 5691
	RETURN returnValue;
6031 dpurdie 5692
 
3959 dpurdie 5693
END RELEASE_MODE;
4040 dpurdie 5694
 
1374 dpurdie 5695
/
4040 dpurdie 5696
--------------------------------------------------------
5697
--  DDL for Package PK_APP_UTILS
5698
--------------------------------------------------------
5699
 
5172 dpurdie 5700
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_APP_UTILS" IS
1373 dpurdie 5701
/*
5702
------------------------------
5703
||  Last Modified:  S.Vukovic
5704
||  Modified Date:  26/Apr/2005
5705
||  Spec Version:   1.0
5706
------------------------------
5707
*/
5708
 
5709
	TYPE typeCur IS REF CURSOR;
5710
 
5711
    /*================================================================================================*/
5712
 
5713
	PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur);
5714
 
5715
	/*================================================================================================*/
5716
 
5717
END PK_APP_UTILS;
4040 dpurdie 5718
 
1374 dpurdie 5719
/
4040 dpurdie 5720
 
5892 dpurdie 5721
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_APP_UTILS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 5722
--------------------------------------------------------
5723
--  DDL for Package PK_BUILDAPI
5724
--------------------------------------------------------
5725
 
5172 dpurdie 5726
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_BUILDAPI" 
1373 dpurdie 5727
IS
5728
   /*================================================================================================*/
5729
   PROCEDURE add_product_component (
5730
      npvid           IN   NUMBER,
5731
      sosname         IN   VARCHAR2,
5732
      sorigfilepath   IN   VARCHAR2,
5733
      sfilename       IN   VARCHAR2,
5734
      sdestfilepath   IN   VARCHAR2,
5735
      nbytesize       IN   NUMBER,
5736
      scrccksum       IN   VARCHAR2
5737
   );
5738
 
5739
   PROCEDURE remove_all_product_components (
5740
      npvid     IN   NUMBER,
5741
      sosname   IN   VARCHAR2
5742
   );
5743
 
5744
   /*================================================================================================*/
5745
   FUNCTION get_osid (sosname IN VARCHAR2)
5746
      RETURN NUMBER;
5747
 
4308 dpurdie 5748
  /*================================================================================================*/
5749
    PROCEDURE update_build_service_info (
1373 dpurdie 5750
      sdatabaseserver   IN   VARCHAR2,
5751
      sarchiveserver    IN   VARCHAR2,
5752
      smailserver       IN   VARCHAR2,
5753
      smailsender       IN   VARCHAR2,
4211 dpurdie 5754
      faultmlist        IN   VARCHAR2,
1373 dpurdie 5755
      sdiskspace        IN   VARCHAR2,
5756
      ssbommanagement   IN   VARCHAR2
5757
   );
5758
 
5759
   /*================================================================================================*/
4040 dpurdie 5760
   PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2, sgbeclass IN NUMBER);
1373 dpurdie 5761
 
5762
   /*================================================================================================*/
5763
   PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER);
5764
 
5765
   /*================================================================================================*/
4040 dpurdie 5766
   PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2, sgbeclass IN NUMBER);
1373 dpurdie 5767
 
4040 dpurdie 5768
  /*================================================================================================*/
5769
   PROCEDURE add_buildmachine (sbmvalue IN VARCHAR2);
5770
 
1373 dpurdie 5771
   /*================================================================================================*/
4040 dpurdie 5772
   PROCEDURE remove_buildmachine (nbm_id IN NUMBER);
5773
 
5774
   /*================================================================================================*/
5775
   PROCEDURE update_buildmachine (nbm_id IN NUMBER, sbmvalue IN VARCHAR2);
6031 dpurdie 5776
 
4040 dpurdie 5777
   /*================================================================================================*/
1373 dpurdie 5778
   PROCEDURE delete_daemon (srconidlist IN VARCHAR2);
6031 dpurdie 5779
 
1373 dpurdie 5780
   /*================================================================================================*/
4308 dpurdie 5781
   PROCEDURE remove_daemon (srconidlist IN VARCHAR2);
1373 dpurdie 5782
 
5783
   /*================================================================================================*/
5784
   PROCEDURE insert_schedule_info (
5785
      dschedulepause     IN   DATE,
5786
      dscheduleresume    IN   DATE,
5787
      crepeat            IN   VARCHAR2,
5788
      cindefinitepause   IN   VARCHAR2
5789
   );
5790
 
5791
   /*================================================================================================*/
5792
   PROCEDURE delete_schedule (nscheduleid IN NUMBER);
5793
 
5794
   /*================================================================================================*/
5795
   PROCEDURE set_infinite_pause;
5796
 
5797
   /*================================================================================================*/
5798
   PROCEDURE set_resume;
5799
 
5800
   /*================================================================================================*/
5801
   PROCEDURE delete_out_of_date_schedule;
5802
 
5803
   /*================================================================================================*/
5804
   PROCEDURE set_daemon_resume (nrconid IN NUMBER);
5805
 
5806
   /*================================================================================================*/
5807
   PROCEDURE set_daemon_pause (nrconid IN NUMBER);
5808
 
5809
   /*================================================================================================*/
5810
   PROCEDURE set_daemon_disable (nrconid NUMBER);
5811
 
5812
   /*================================================================================================*/
5813
   PROCEDURE set_daemon_states (nrtagid NUMBER, nstate NUMBER);
5814
 
5815
   /*================================================================================================*/
5816
   PROCEDURE mark_daemon_inst_in_progress( nInstId IN NUMBER );
5817
   /*================================================================================================*/
5818
   PROCEDURE mark_daemon_inst_completed( nInstId IN NUMBER );
5819
   /*================================================================================================*/
5820
   FUNCTION get_daemon_inst(
5821
      nRtag_id IN NUMBER,
5822
      nInst_id IN OUT NUMBER,
5823
      nOp_code IN OUT NUMBER,
5824
      nPv_id OUT NUMBER,
5825
      nUser_id OUT NUMBER,
5826
      nInProgress OUT NUMBER
5827
   ) RETURN NUMBER;
5828
   /*================================================================================================*/
5829
   PROCEDURE cleanup_stranded_daemon_insts;
5830
   /*================================================================================================*/
5831
   PROCEDURE insert_daemon_inst(
5832
      nOp_code IN NUMBER,
5833
      nRtag_id IN NUMBER,
5834
      nPv_id IN NUMBER,
5835
      nSchedDate IN DATE,
5836
      nRepeatSecs IN NUMBER,
5837
      nAddedDate IN DATE,
5838
      nUser_id IN NUMBER
5839
   );
5840
   /*================================================================================================*/
5841
   PROCEDURE del_daemon_inst( nInstId IN NUMBER );
5842
   /*================================================================================================*/
5843
   PROCEDURE del_daemon_inst_by_rtag_pvid(
5844
      nOp_code IN NUMBER,
5845
      nRtag_id IN NUMBER,
5846
      nPv_id IN NUMBER
5847
   );
5848
   /*================================================================================================*/
5849
   PROCEDURE update_daemon_inst(
5850
      nInstId IN NUMBER,
5851
      nOp_code IN NUMBER,
5852
      nRtag_id IN NUMBER,
5853
      nPv_id IN NUMBER,
5854
      nSchedDate IN DATE,
5855
      nRepeatSecs IN NUMBER,
5856
      nAddedDate IN DATE,
5857
      nUser_id IN NUMBER
5858
   );
5859
   /*================================================================================================*/
5860
   FUNCTION daemon_ops_for_rtag_pvid(
5861
      nRtag_id IN NUMBER,
5862
      nPv_id IN NUMBER
5863
   ) RETURN VARCHAR2;
5864
   /*================================================================================================*/
5865
   FUNCTION daemon_ops_for_rtag(
5866
      nRtag_id IN NUMBER
5867
   ) RETURN VARCHAR2;
5868
   /*================================================================================================*/
5869
   PROCEDURE add_daemon_config (
5870
      nrtagid           IN   NUMBER,
5871
      nbmcon_id         IN   NUMBER,
5872
      sdaemon_mode      IN   VARCHAR2,
5873
      sgbebuildfilter   IN   VARCHAR2
5874
   );
5875
   /*================================================================================================*/
5876
   PROCEDURE update_daemon_config (
5877
      nrconid           IN   NUMBER,
5878
      nbmcon_id         IN   NUMBER,
5879
      sdaemon_mode      IN   VARCHAR2,
5880
      sgbebuildfilter   IN   VARCHAR2
5881
   );
5882
 
4308 dpurdie 5883
 /*================================================================================================*/
5884
   PROCEDURE duplicate_daemon_config (
5885
      nrtagid           IN   NUMBER,
5886
      nbmcon_id         IN   NUMBER,
5887
      sdaemonhostname   IN   VARCHAR2,
5888
      ngbe_id           IN   NUMBER,
5889
      sdaemon_mode      IN   VARCHAR2,
5890
      sgbebuildfilter   IN   VARCHAR2
5891
   );
6031 dpurdie 5892
 
1373 dpurdie 5893
   /*================================================================================================*/
5894
   PROCEDURE add_build_machine (
5895
      sdisplay_name          IN   VARCHAR2,
5896
      smachine_hostname      IN   VARCHAR2,
5897
      ngbeid                 IN   NUMBER,
5172 dpurdie 5898
      sdescription           IN   VARCHAR2,
5899
      sactive                IN CHAR
1373 dpurdie 5900
   );
5901
   /*================================================================================================*/
5902
   PROCEDURE delete_build_machine (sbmcon_id_list IN VARCHAR2);
5903
   /*================================================================================================*/
5904
   PROCEDURE update_build_machine (
5905
      nbmcon_id              IN   NUMBER,
5906
      sdisplay_name          IN   VARCHAR2,
5907
      smachine_hostname      IN   VARCHAR2,
5908
      ngbeid                 IN   NUMBER,
5172 dpurdie 5909
      sdescription           IN   VARCHAR2,
5910
      sactive                IN CHAR
1373 dpurdie 5911
   );
4553 dpurdie 5912
   /*================================================================================================*/
5913
   PROCEDURE import_daemons ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER  );
5172 dpurdie 5914
   /*================================================================================================*/
5892 dpurdie 5915
   PROCEDURE set_finite_pause ( duration IN NUMBER  );
5916
   PROCEDURE set_build_plan (rtagId IN NUMBER, nStartIndex IN NUMBER, pvList IN VARCHAR2);
5172 dpurdie 5917
 
1373 dpurdie 5918
END pk_buildapi;
4040 dpurdie 5919
 
1374 dpurdie 5920
/
4040 dpurdie 5921
--------------------------------------------------------
5922
--  DDL for Package PK_ENVIRONMENT
5923
--------------------------------------------------------
5924
 
5172 dpurdie 5925
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_ENVIRONMENT" IS
1373 dpurdie 5926
/*
5927
------------------------------
3959 dpurdie 5928
||  Last Modified:  G.Huddy
5929
||  Modified Date:  28/May/2008
5930
||  Spec Version:   1.2
1373 dpurdie 5931
------------------------------
5932
*/
5933
 
3959 dpurdie 5934
	TYPE typeCur IS REF CURSOR;
5935
 
1373 dpurdie 5936
	/*================================================================================================*/
5937
 
3959 dpurdie 5938
	FUNCTION SELECT_ENVIRONMENT_AREA ( cDlock IN PACKAGE_VERSIONS.DLOCKED%TYPE ) RETURN NUMBER;
5939
	FUNCTION GET_PACKAGE_AREA ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5940
	FUNCTION GET_VIEW_LOCATION ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5384 dpurdie 5941
	PROCEDURE ADD_PACKAGE ( PvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, imode IN   CHAR default NULL );
5942
	PROCEDURE ADD_PACKAGE_BULK ( PvIdList IN VARCHAR2, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, imode IN CHAR default NULL );
3959 dpurdie 5943
	PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5944
	FUNCTION REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, ForceRemove IN CHAR ) RETURN NUMBER;
5945
 
5946
	PROCEDURE GET_ENVIRONMENT_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5947
	PROCEDURE GET_RELEASED_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5948
	PROCEDURE GET_PENDING_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5949
	PROCEDURE GET_WORK_IN_PROGRESS_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5950
 
5951
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
5952
 
5953
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5954
 
5955
 
5956
	PROCEDURE MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5957
	PROCEDURE MAKE_UNRELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5958
 
5959
	PROCEDURE MAKE_PENDING ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5960
	PROCEDURE MAKE_APPROVED ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5961
	PROCEDURE MAKE_REJECT ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5962
	PROCEDURE APPROVE_MERGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5963
 
5964
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
5965
 
5966
	PROCEDURE FIND_PACKAGE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, RecordSet OUT typeCur );
5967
	PROCEDURE FIND_FILE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, nPageSize IN NUMBER, RecordSet OUT typeCur );
5968
 
5969
	PROCEDURE AUTO_MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, VExt IN
5970
							 PACKAGE_VERSIONS.V_EXT%TYPE, SSV_EXT IN PACKAGE_VERSIONS.V_EXT%TYPE,
5971
							 CloneFromPvId IN NUMBER );
5972
 
5973
	PROCEDURE GET_PRODRELEASE_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5974
 
5975
	PROCEDURE GET_INTEGRATION_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5976
 
5977
	PROCEDURE GET_TEST_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5978
 
5979
	PROCEDURE GET_DEPLOY_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5980
 
5981
	PROCEDURE GET_REJECT_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
1373 dpurdie 5982
	/*================================================================================================*/
3959 dpurdie 5983
 
5984
END PK_ENVIRONMENT;
4040 dpurdie 5985
 
1374 dpurdie 5986
/
4040 dpurdie 5987
--------------------------------------------------------
5988
--  DDL for Package PK_LICENCING
5989
--------------------------------------------------------
5990
 
5172 dpurdie 5991
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_LICENCING" IS
3959 dpurdie 5992
/*
5993
------------------------------
5994
||  Last Modified:  G.Huddy
5995
||  Modified Date:  19/Aug/2008
5996
||  Spec Version:   1.0
5997
------------------------------
5998
*/
5999
 
6000
   TYPE typeCur IS REF CURSOR;
6001
 
6002
    /*================================================================================================*/
6003
   PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER );
6004
   PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER );
6005
   PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER );
6006
   FUNCTION  IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER;
6007
   PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER );
6008
   /*================================================================================================*/
6009
 
6010
END PK_LICENCING;
4040 dpurdie 6011
 
3959 dpurdie 6012
/
4040 dpurdie 6013
--------------------------------------------------------
6014
--  DDL for Package PK_PACKAGE
6015
--------------------------------------------------------
6016
 
5172 dpurdie 6017
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PACKAGE" 
1373 dpurdie 6018
IS
6019
/*
6020
------------------------------
3959 dpurdie 6021
||  Last Modified:  Jeremy Tweddle
6022
||  Modified Date:  24/08/2007
1373 dpurdie 6023
||
6024
------------------------------
6025
*/
6026
   TYPE typecur IS REF CURSOR;
6031 dpurdie 6027
 
5502 dpurdie 6028
   /*
6029
    * Carriage-return line-feed character sequence.
6030
    */
6031
   CRLF CONSTANT VARCHAR2(2 CHAR) := unistr('\000D\000A');
1373 dpurdie 6032
 
6033
/*================================================================================================*/
6034
   PROCEDURE new_version (
6035
      nlastpvid                   IN       NUMBER,
6036
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
6037
      cbuildtype                  IN       CHAR,
4211 dpurdie 6038
      cchangetype                 IN       CHAR,
1373 dpurdie 6039
      nsettopvid                  IN       NUMBER DEFAULT NULL,
6040
      nrtagid                     IN       NUMBER,
6041
      nuserid                     IN       NUMBER,
6042
      enumissues_state_imported   IN       NUMBER,
6043
      returnpvid                  OUT      NUMBER
6044
   );
6045
 
6046
   PROCEDURE change_state (
6047
      pvid       IN   NUMBER,
6048
      newstate   IN   package_versions.dlocked%TYPE,
6049
      userid     IN   NUMBER
6050
   );
6051
 
6052
   PROCEDURE new_patch (
6053
      snewpatchversion   IN       package_versions.pkg_version%TYPE,
6054
      nparentpvid        IN       NUMBER,
6055
      spatchidlist       IN       VARCHAR2,
6056
      nuserid            IN       NUMBER,
6057
      returnpatchid      OUT      NUMBER
6058
   );
6059
 
6060
   PROCEDURE obsolete_patch (
6061
      patchid            IN   NUMBER,
6062
      isobsolete         IN   CHAR,
6063
      obsoletecomments   IN   VARCHAR2,
6064
      userid             IN   NUMBER
6065
   );
6066
 
6067
   PROCEDURE obsolete_patches (
6068
      spatchidlist       IN   VARCHAR2,
6069
      isobsolete         IN   CHAR,
6070
      obsoletecomments   IN   VARCHAR2,
6071
      userid             IN   NUMBER
6072
   );
6073
 
6074
   PROCEDURE destroy_package (
6075
      pvid               IN       NUMBER,
6076
      overridewarnings   IN       CHAR DEFAULT 'N',
6077
      problemstring      OUT      VARCHAR2
6078
   );
6031 dpurdie 6079
 
6080
   PROCEDURE destroy_package_extended (
6081
      pvid               IN       NUMBER,
6082
      rtagid             IN       NUMBER,
6083
      overridewarnings   IN       NUMBER DEFAULT 0,
6084
      RESULTS            OUT      SYS_REFCURSOR
6085
);
1373 dpurdie 6086
   PROCEDURE add_process (
6087
      nprocid         IN   processes.proc_id%TYPE,
6088
      shealthtag      IN   processes.proc_name%TYPE,
6089
      sprocdesc       IN   processes.proc_description%TYPE,
6090
      scmdinterface   IN   processes.run_as%TYPE,
6091
      spkgowner       IN   processes.pkg_owner%TYPE,
6092
      sisinterface    IN   processes.is_interface%TYPE,
6093
      npvid           IN   package_processes.pv_id%TYPE,
6094
      nuserid         IN   NUMBER
6095
   );
6096
 
6097
   PROCEDURE add_package_process (
6098
      nprocidlist   IN   VARCHAR2,
6099
      npvid         IN   package_processes.pv_id%TYPE,
6100
      nuserid       IN   NUMBER
6101
   );
6102
 
6031 dpurdie 6103
 
6104
 
1373 dpurdie 6105
   PROCEDURE remove_process (
6106
      nprocid   IN   package_processes.proc_id%TYPE,
6107
      npvid     IN   package_processes.pv_id%TYPE,
6108
      nuserid   IN   NUMBER
6109
   );
6031 dpurdie 6110
 
1373 dpurdie 6111
   PROCEDURE move_package (
6112
   	  npvid  			  IN package_versions.pv_id%TYPE,
6113
	  nrtagid 			  IN release_tags.rtag_id%TYPE,
6114
	  nnewrtagid 		  IN release_tags.rtag_id%TYPE,
6031 dpurdie 6115
	  nuserid			  IN NUMBER
6116
   );
6117
 
3959 dpurdie 6118
   PROCEDURE modify_product_state (
1373 dpurdie 6119
   	  npvid IN package_versions.pv_id%TYPE,
3959 dpurdie 6120
	  nrtagid IN release_tags.rtag_id%TYPE,
1373 dpurdie 6121
	  nstateid IN product_states.state_id%TYPE,
6122
	  nuserid IN NUMBER
6123
   );
6031 dpurdie 6124
 
3959 dpurdie 6125
   PROCEDURE add_code_review_url (
6126
        npvid           IN    NUMBER,
6127
        nprojid         IN    NUMBER,
6128
        surl            IN    VARCHAR2,
6129
        sreason         IN    VARCHAR2,
4553 dpurdie 6130
        ddateofreview   IN    VARCHAR2
3959 dpurdie 6131
   );
6031 dpurdie 6132
 
3959 dpurdie 6133
   PROCEDURE update_code_review_url (
6134
        ncrid           IN    NUMBER,
6135
        nprojid         IN    NUMBER,
6136
        surl            IN    VARCHAR2,
4553 dpurdie 6137
        sreason         IN    VARCHAR2,
6138
        ddateofreview   IN    VARCHAR2
3959 dpurdie 6139
   );
6031 dpurdie 6140
 
3959 dpurdie 6141
   PROCEDURE remove_code_review_url (
6142
        ncrid           IN    NUMBER
6143
   );
1373 dpurdie 6144
/*================================================================================================*/
3959 dpurdie 6145
END pk_package;
4040 dpurdie 6146
 
1374 dpurdie 6147
/
5892 dpurdie 6148
 
6031 dpurdie 6149
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
6150
  GRANT DEBUG ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 6151
--------------------------------------------------------
6152
--  DDL for Package PK_PLANNED
6153
--------------------------------------------------------
6154
 
5172 dpurdie 6155
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PLANNED" IS
1373 dpurdie 6156
/*
6157
------------------------------
6158
||  Last Modified:  G.Huddy
6159
||  Modified Date:  28/May/2008
6160
||  Spec Version:   1.1
6161
------------------------------
6162
*/
6163
 
6164
	TYPE typeCur IS REF CURSOR;
6165
 
6166
    /*================================================================================================*/
5384 dpurdie 6167
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, OPR IN CHAR DEFAULT 'R'  );
1373 dpurdie 6168
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6169
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
6170
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
6171
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
6172
	PROCEDURE MERGE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, mergeOperation IN CHAR);
6173
	/*================================================================================================*/
6174
 
6175
END PK_PLANNED;
4040 dpurdie 6176
 
1374 dpurdie 6177
/
4040 dpurdie 6178
--------------------------------------------------------
6179
--  DDL for Package PK_PROJECT
6180
--------------------------------------------------------
6181
 
5172 dpurdie 6182
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PROJECT" IS
1373 dpurdie 6183
 
3959 dpurdie 6184
    TYPE typecur IS REF CURSOR;
1373 dpurdie 6185
 
3959 dpurdie 6186
    /*------------------------------------------------------------------------*/
6187
    PROCEDURE update_base_url (
6188
        nprojid   IN  projects.proj_id%TYPE,
6189
        sbaseurl  IN  VARCHAR2
6190
    );
6191
    /*------------------------------------------------------------------------*/
6192
    PROCEDURE update_project_config (
6193
    nprojid   IN  projects.proj_id%TYPE,
6194
    sbaseurl  IN  VARCHAR2,
6195
    sjirakey  IN  VARCHAR2
6196
    );
6197
    /*------------------------------------------------------------------------*/
1373 dpurdie 6198
 
3959 dpurdie 6199
    END pk_project;
4040 dpurdie 6200
 
1374 dpurdie 6201
/
4040 dpurdie 6202
--------------------------------------------------------
6203
--  DDL for Package PK_RELEASE
6204
--------------------------------------------------------
6205
 
5172 dpurdie 6206
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_RELEASE" IS
1373 dpurdie 6207
/*
6208
------------------------------
6209
||  Last Modified:  S.Vukovic
6210
||  Modified Date:  12/Sep/2005
6211
||  Body Version:   3.0
6212
------------------------------
6213
*/
6214
 
6215
	TYPE typeCur IS REF CURSOR;
6216
 
6217
    /*================================================================================================*/
5502 dpurdie 6218
	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 6219
	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 6220
	PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER  );
6221
	PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER );
5502 dpurdie 6222
	PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER,nMode IN NUMBER default 0 );
1373 dpurdie 6223
	PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER );
6224
	FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR ) RETURN NUMBER;
6225
	PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER );
5502 dpurdie 6226
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
1373 dpurdie 6227
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6228
	--PROCEDURE ADD_DEPRECATE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, nPkgId IN NUMBER );
6229
	PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6230
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6231
	PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6232
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
6233
	PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER );
6234
	PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER );
6235
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
6236
	PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 );
6237
	PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER );
6238
	PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR );
5172 dpurdie 6239
  PROCEDURE SET_RELEASE_MODIFIED (nRtagId IN NUMBER );
6240
  PROCEDURE ADD_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER, nUserId IN NUMBER, bDelete IN  NUMBER, nInsertCount OUT NUMBER, curReturn OUT typeCur );
6241
  PROCEDURE REMOVE_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER );
6242
  FUNCTION CAN_ADD_PKG_TO_RELEASE ( nRtagId IN NUMBER, nPvid in NUMBER ) RETURN NUMBER;
5502 dpurdie 6243
 
1373 dpurdie 6244
	/*================================================================================================*/
5384 dpurdie 6245
 
1373 dpurdie 6246
END PK_RELEASE;
4040 dpurdie 6247
 
1374 dpurdie 6248
/
4040 dpurdie 6249
--------------------------------------------------------
6250
--  DDL for Package PK_RMAPI
6251
--------------------------------------------------------
6252
 
5172 dpurdie 6253
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_RMAPI" 
3959 dpurdie 6254
IS
6255
   TYPE typecur IS REF CURSOR;
1373 dpurdie 6256
 
3959 dpurdie 6257
   FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)
6258
      RETURN typecur;
1373 dpurdie 6259
 
3959 dpurdie 6260
   FUNCTION wip_iteration_package (
6261
      projname        VARCHAR2,
6262
      iterationname   VARCHAR2,
6263
      pkgname         VARCHAR2
6264
   )
6265
      RETURN typecur;
1373 dpurdie 6266
 
3959 dpurdie 6267
   FUNCTION auto_make_vcsrelease (
6268
      rtagid                   IN   NUMBER,
6269
      pkgname                  IN   VARCHAR2,
6270
      vext                     IN   VARCHAR2,
6271
      newpkgversion            IN   VARCHAR2,
6272
      vcstag                   IN   VARCHAR2,
6273
      dependenciesimportlist   IN   VARCHAR2,
6274
      isrippled                IN   NUMBER,
6275
      username                 IN   VARCHAR2
6276
   )
6277
      RETURN NUMBER;
1373 dpurdie 6278
 
6279
 
3959 dpurdie 6280
   PROCEDURE import_dependencies (
6281
      pvid                     IN   NUMBER,
6282
      dependenciesimportlist   IN   VARCHAR2,
6283
      userid                   IN   NUMBER
6284
   );
1373 dpurdie 6285
 
3959 dpurdie 6286
   FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)
6287
      RETURN VARCHAR2;
1373 dpurdie 6288
 
3959 dpurdie 6289
   FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)
6290
      RETURN VARCHAR2;
1373 dpurdie 6291
 
3959 dpurdie 6292
   PROCEDURE update_dash_board (rtagid IN NUMBER);
1373 dpurdie 6293
 
3959 dpurdie 6294
   FUNCTION exclude_from_build (
6295
      pvid          IN   NUMBER,
6296
      spkgversion   IN   VARCHAR2,
6297
      rtagid        IN   NUMBER,
6298
      username      IN   VARCHAR2
6299
   )
6300
      RETURN NUMBER;
1373 dpurdie 6301
 
3959 dpurdie 6302
   FUNCTION exclude_indirect_from_build (
6303
      pvid          IN   NUMBER,
6304
      spkgversion   IN   VARCHAR2,
6305
      rtagid        IN   NUMBER,
6306
      username      IN   VARCHAR2,
6307
      rootpvid      IN   NUMBER,
6308
      rootcause     IN   VARCHAR2,
6309
      rootfile      IN   VARCHAR2
6310
   )
6311
      RETURN NUMBER;
1373 dpurdie 6312
 
3959 dpurdie 6313
   PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2);
1373 dpurdie 6314
 
3959 dpurdie 6315
   FUNCTION insert_package_metrics (
6316
      rtagid IN NUMBER,
6317
      pkgname IN VARCHAR2,
6318
      vext IN VARCHAR2,
6319
      metricstring IN VARCHAR2
6320
   )
6321
      RETURN NUMBER;
1373 dpurdie 6322
 
3959 dpurdie 6323
   PROCEDURE update_release_metrics (rtagid IN NUMBER);
1373 dpurdie 6324
 
3959 dpurdie 6325
   FUNCTION return_vcs_tag(pvid IN NUMBER) RETURN VARCHAR2;
6326
 
6327
   PROCEDURE update_vcs_details(ipv_id IN NUMBER, vcstag IN VARCHAR2, user_id IN NUMBER);
6031 dpurdie 6328
 
3959 dpurdie 6329
   FUNCTION isSVN( pkgid IN NUMBER ) RETURN NUMBER;
6031 dpurdie 6330
 
3959 dpurdie 6331
   FUNCTION isSVNbyName( pkgname IN VARCHAR2 ) RETURN NUMBER;
6332
 
5172 dpurdie 6333
   FUNCTION new_build_instance( rtag_id IN NUMBER, pv_id IN NUMBER, reason IN CHAR ) return NUMBER;
6031 dpurdie 6334
 
5172 dpurdie 6335
   FUNCTION update_build_instance( nbuild_id IN NUMBER, npv_id IN NUMBER default null, nstate IN CHAR default null ) return NUMBER;
6031 dpurdie 6336
 
5172 dpurdie 6337
   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;
6338
 
6339
 
3959 dpurdie 6340
END pk_rmapi;
4040 dpurdie 6341
 
1374 dpurdie 6342
/
5892 dpurdie 6343
 
6031 dpurdie 6344
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "RM_READONLY";
6345
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "MS_READONLY";
5892 dpurdie 6346
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "DM_READONLY";
4040 dpurdie 6347
--------------------------------------------------------
6348
--  DDL for Package PK_WORK_IN_PROGRESS
6349
--------------------------------------------------------
6350
 
5172 dpurdie 6351
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS
1373 dpurdie 6352
/*
6353
------------------------------
6354
||  Last Modified:  S.Vukovic
3959 dpurdie 6355
||  Modified Date:  2/May/2005
6356
||  Spec Version:   1.0
1373 dpurdie 6357
------------------------------
6358
*/
6359
 
6360
	TYPE typeCur IS REF CURSOR;
6361
 
6362
    /*================================================================================================*/
6363
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6364
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
3959 dpurdie 6365
	PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER );
6366
 
1373 dpurdie 6367
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
6031 dpurdie 6368
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
1373 dpurdie 6369
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
6370
	/*================================================================================================*/
3959 dpurdie 6371
 
6372
END PK_WORK_IN_PROGRESS;
4040 dpurdie 6373
 
1374 dpurdie 6374
/
4040 dpurdie 6375
--------------------------------------------------------
6376
--  DDL for Package RM_ISSUES
6377
--------------------------------------------------------
6378
 
5172 dpurdie 6379
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."RM_ISSUES" AS
1373 dpurdie 6380
 
3959 dpurdie 6381
	TYPE T_Cur IS REF CURSOR;
1373 dpurdie 6382
 
3959 dpurdie 6383
	FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;
6384
	FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBER;
6385
	FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;
6386
	FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBER;
1373 dpurdie 6387
 
3959 dpurdie 6388
	PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );
6389
	PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );
6390
	PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 );
1373 dpurdie 6391
 
3959 dpurdie 6392
END Rm_Issues;
4040 dpurdie 6393
 
3959 dpurdie 6394
/
4040 dpurdie 6395
--------------------------------------------------------
6396
--  DDL for Package Body PK_APP_UTILS
6397
--------------------------------------------------------
6398
 
5172 dpurdie 6399
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_APP_UTILS" IS
1373 dpurdie 6400
 
3959 dpurdie 6401
/*
6402
------------------------------
6403
||  Last Modified:  S.Vukovic
6404
||  Modified Date:  26/Apr/2005
6405
||  Body Version:   1.0
6406
------------------------------
6407
*/
1373 dpurdie 6408
 
6409
 
6410
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 6411
PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur)   IS
1373 dpurdie 6412
 
6413
 
6414
BEGIN
6415
 
6416
 
3959 dpurdie 6417
	IF (NOT RtagId IS NULL) THEN
6418
		-- Case with RTAG_ID present
6419
		OPEN records FOR
6420
		SELECT rt.PROJ_ID,
6421
			   rt.RTAG_ID AS RTAG_ID
6422
		  FROM RELEASE_TAGS rt
6423
		 WHERE rt.RTAG_ID = TO_NUMBER(RtagId);
1373 dpurdie 6424
 
3959 dpurdie 6425
	ELSIF (NOT ProjId IS NULL) THEN
6426
		-- Case with PROJ_ID present
6427
		OPEN records FOR
6428
		SELECT TO_NUMBER(ProjId) AS PROJ_ID,
6429
			   -1 AS RTAG_ID
6430
		  FROM DUAL;
1373 dpurdie 6431
 
3959 dpurdie 6432
	ELSE
6433
		-- Case with none present
6434
		OPEN records FOR
6435
		SELECT -1 AS PROJ_ID,
6436
			   -1 AS RTAG_ID
6437
		  FROM DUAL;
1373 dpurdie 6438
 
3959 dpurdie 6439
	END IF;
1373 dpurdie 6440
 
6441
 
6442
 
6443
 
3959 dpurdie 6444
   	--RETURN records;
1373 dpurdie 6445
 
6446
END;
6447
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 6448
END PK_APP_UTILS;
4040 dpurdie 6449
 
1374 dpurdie 6450
/
4040 dpurdie 6451
 
5892 dpurdie 6452
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_APP_UTILS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 6453
--------------------------------------------------------
6454
--  DDL for Package Body PK_BUILDAPI
6455
--------------------------------------------------------
6456
 
5172 dpurdie 6457
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_BUILDAPI" 
1373 dpurdie 6458
IS
6459
   /*-------------------------------------------------------------------------------------------------------*/
6460
   PROCEDURE add_product_component (
6461
      npvid           IN   NUMBER,
6462
      sosname         IN   VARCHAR2,
6463
      sorigfilepath   IN   VARCHAR2,
6464
      sfilename       IN   VARCHAR2,
6465
      sdestfilepath   IN   VARCHAR2,
6466
      nbytesize       IN   NUMBER,
6467
      scrccksum       IN   VARCHAR2
6468
   )
6469
   IS
6470
      nosid   NUMBER;
6471
   BEGIN
6472
      /*--------------- Business Rules Here -------------------*/
6473
      -- OS Name Requirements --
6474
      IF (sosname IS NULL)
6475
      THEN
6476
         raise_application_error (-20000, 'OsName cannot be NULL.');
6477
      END IF;
6478
 
6479
      -- File Requirements --
6480
      IF (NOT sfilename IS NULL)
6481
      THEN
6482
         IF (nbytesize IS NULL)
6483
         THEN
6484
            raise_application_error (-20000, 'Byte Size cannot be NULL.');
6485
         ELSIF (scrccksum IS NULL)
6486
         THEN
6487
            raise_application_error (-20000, 'CRC CKSUM cannot be NULL.');
6488
         END IF;
6489
      END IF;
6490
 
6491
      -- Folder Requirements --
6492
      -- No requirements for now.
6493
 
6494
      /*-------------------------------------------------------*/
6495
 
6496
      -- Get OsId
6497
      nosid := get_osid (sosname);
6498
 
6499
      -- Insert component entry
6500
      INSERT INTO product_components
6501
                  (pv_id, os_id, file_path, file_name, destination_path,
6502
                  byte_size, crc_cksum
6503
                  )
6504
         VALUES (npvid, nosid, sorigfilepath, sfilename, sdestfilepath,
6505
                  nbytesize, scrccksum
6506
                  );
6507
   EXCEPTION
6508
      WHEN DUP_VAL_ON_INDEX
6509
      THEN
6510
         raise_application_error (-20000,
6511
                                 'Cannot have duplicate product components.'
6512
                                 );
6513
   END;
6514
 
6515
/*-------------------------------------------------------------------------------------------------------*/
6516
   PROCEDURE remove_all_product_components (
6517
      npvid     IN   NUMBER,
6518
      sosname   IN   VARCHAR2
6519
   )
6520
   IS
6521
      nosid   NUMBER;
6522
   BEGIN
6523
/*--------------- Business Rules Here -------------------*/
6524
/*-------------------------------------------------------*/
6525
 
6526
      -- Get OsId
6527
      nosid := get_osid (sosname);
6528
 
6529
      -- Delete component entry
6530
      DELETE FROM product_components pc
6531
            WHERE pc.pv_id = npvid AND pc.os_id = nosid;
6532
   END;
6533
 
6534
/*-------------------------------------------------------------------------------------------------------*/
6535
   FUNCTION get_osid (sosname IN VARCHAR2)
6536
      RETURN NUMBER
6537
   IS
6538
      code   NUMBER;
6539
   BEGIN
6540
      -- Get Platform Code --
6541
      SELECT pf.code
6542
      INTO code
6543
      FROM platforms pf
6544
      WHERE UPPER (pf.NAME) = UPPER (sosname);
6545
 
6546
      RETURN code;
6547
   EXCEPTION
6548
      WHEN NO_DATA_FOUND
6549
      THEN
6550
         raise_application_error
6551
            (-20000,
6552
               'Platform '
6553
            || sosname
6554
            || ' is not valid. It needs to be added to PLATFORMS table in Release Manager.'
6555
            );
6556
         RAISE;
6557
   END;
6558
 
6559
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 6560
 PROCEDURE update_build_service_info (
1373 dpurdie 6561
      sdatabaseserver   IN   VARCHAR2,
6562
      sarchiveserver    IN   VARCHAR2,
6563
      smailserver       IN   VARCHAR2,
6564
      smailsender       IN   VARCHAR2,
4211 dpurdie 6565
      faultmlist        IN   VARCHAR2,
1373 dpurdie 6566
      sdiskspace        IN   VARCHAR2,
6567
      ssbommanagement   IN   VARCHAR2
6568
   )
6569
   IS
6570
   BEGIN
6571
      UPDATE build_service_config
6572
         SET config = sdatabaseserver
6573
      WHERE service = 'DATABASE SERVER';
6574
 
6575
      UPDATE build_service_config
6576
         SET config = sarchiveserver
6577
      WHERE service = 'ARCHIVE SERVER';
6578
 
6579
      UPDATE build_service_config
6580
         SET config = smailserver
6581
      WHERE service = 'MAIL SERVER';
6582
 
6583
      UPDATE build_service_config
6584
         SET config = smailsender
6585
      WHERE service = 'BUILD FAILURE MAIL SENDER';
6586
 
6587
      UPDATE build_service_config
4211 dpurdie 6588
         SET config = faultmlist
6589
      WHERE service = 'FAULT EMAIL ADDRESS LIST';
6031 dpurdie 6590
 
4211 dpurdie 6591
      UPDATE build_service_config
1373 dpurdie 6592
         SET config = sdiskspace
6593
      WHERE service = 'DPKG_ARCHIVE DISK SPACE USED';
6594
 
6595
      UPDATE build_service_config
6596
         SET config = ssbommanagement
6597
      WHERE service = 'SBOM MANAGEMENT';
6598
   END;
6599
 
6600
 
6031 dpurdie 6601
 
1373 dpurdie 6602
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 6603
   PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2, sgbeclass IN NUMBER)
1373 dpurdie 6604
   IS
6605
      gbe_id   NUMBER;
6606
   BEGIN
6607
      -- Get GBE_ID
6608
      SELECT seq_gbe_id.NEXTVAL
6609
      INTO gbe_id
6610
      FROM DUAL;
6611
 
6612
      INSERT INTO gbe_machtype
4040 dpurdie 6613
                  (gbe_id, gbe_value, bm_id )
6614
         VALUES (gbe_id, sgbevalue, sgbeclass );
1373 dpurdie 6615
   END;
6616
 
6617
/*-------------------------------------------------------------------------------------------------------*/
6618
   PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER)
6619
   IS
6620
   BEGIN
6621
      DELETE FROM gbe_machtype
6622
            WHERE gbe_id = ngbe_id;
6623
   END;
6624
 
6625
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 6626
   PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2, sgbeclass IN NUMBER)
1373 dpurdie 6627
   IS
6628
   BEGIN
6629
      UPDATE gbe_machtype
4040 dpurdie 6630
         SET gbe_value = sgbevalue,
6631
             bm_id = sgbeclass
1373 dpurdie 6632
      WHERE gbe_id = ngbe_id;
6633
   END;
6634
 
6635
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 6636
PROCEDURE add_buildmachine (sbmvalue IN VARCHAR2)
6637
   IS
6638
      bm_id   NUMBER;
6639
   BEGIN
6640
      -- Get BM_ID
6641
      SELECT seq_bm_id.NEXTVAL
6642
      INTO bm_id
6643
      FROM DUAL;
6644
 
6645
      INSERT INTO build_machines
6646
                  (bm_id, bm_name)
6647
         VALUES (bm_id, sbmvalue );
6648
   END;
6649
 
6650
/*-------------------------------------------------------------------------------------------------------*/
6651
   PROCEDURE remove_buildmachine (nbm_id IN NUMBER)
6652
   IS
6653
   BEGIN
6654
      DELETE FROM build_machines
6655
            WHERE bm_id = nbm_id;
6656
   END;
6657
 
6658
/*-------------------------------------------------------------------------------------------------------*/
6031 dpurdie 6659
   PROCEDURE update_buildmachine (nbm_id IN NUMBER, sbmvalue IN VARCHAR2)
4040 dpurdie 6660
   IS
6661
   BEGIN
6662
      UPDATE build_machines
6663
         SET bm_name = sbmvalue
6664
         WHERE bm_id = nbm_id;
6665
   END;
6666
 
6667
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 6668
   PROCEDURE delete_daemon (srconidlist IN VARCHAR2)
6669
   IS
6670
   BEGIN
6671
      -- Entries in the daemon_action_log, run_level and abt_action_log tables must be deleted first.
6672
      DELETE FROM daemon_action_log
6673
            WHERE rcon_id IN (
6674
                     SELECT *
6675
                     FROM THE
6676
                              (SELECT CAST
6677
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6678
                                          )
6679
                                 FROM DUAL
6680
                              ));
6681
 
6682
      DELETE FROM run_level
6683
            WHERE rcon_id IN (
6684
                     SELECT *
6685
                     FROM THE
6686
                              (SELECT CAST
6687
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6688
                                          )
6689
                                 FROM DUAL
6690
                              ));
6691
 
6692
      DELETE FROM abt_action_log
6693
            WHERE rcon_id IN (
6694
                     SELECT *
6695
                     FROM THE
6696
                              (SELECT CAST
6697
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6698
                                          )
6699
                                 FROM DUAL
6700
                              ));
6701
 
6702
      -- Once entries in daemon_action_log, run_level and abt_action_log are removed, the daemon is deleted.
6703
      DELETE FROM release_config
6704
            WHERE rcon_id IN (
6705
                     SELECT *
6706
                     FROM THE
6707
                              (SELECT CAST
6708
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6709
                                          )
6710
                                 FROM DUAL
6711
                              ));
6712
   END;
6713
 
6714
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 6715
   PROCEDURE remove_daemon (srconidlist IN VARCHAR2)
1373 dpurdie 6716
   IS
4308 dpurdie 6717
   oRconIdList RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
6718
 
1373 dpurdie 6719
   BEGIN
6031 dpurdie 6720
 
4308 dpurdie 6721
   oRconIdList := IN_LIST_NUMBER ( srconidlist );
6722
 
6723
      -- Break the linkage between the release_config and the build_machine_config
6031 dpurdie 6724
 
4308 dpurdie 6725
      -- Delete the linkage between the two tables.
6726
       UPDATE release_config
6727
         SET daemon_hostname = NULL,
6031 dpurdie 6728
             bmcon_id = NULL
4308 dpurdie 6729
      WHERE rcon_id IN ( SELECT * FROM TABLE ( CAST ( oRconIdList AS RELMGR_NUMBER_TAB_t ) ) );
1373 dpurdie 6730
   END;
6731
 
6732
/*-------------------------------------------------------------------------------------------------------*/
6733
   PROCEDURE insert_schedule_info (
6734
      dschedulepause     IN   DATE,
6735
      dscheduleresume    IN   DATE,
6736
      crepeat            IN   VARCHAR2,
6737
      cindefinitepause   IN   VARCHAR2
6738
   )
6739
   IS
6740
      nscheduledid   NUMBER;
6741
   BEGIN
6742
      -- Get Next Available Scheduled Id
6743
      SELECT seq_scheduled_id.NEXTVAL
6744
      INTO nscheduledid
6745
      FROM DUAL;
6746
 
6747
      INSERT INTO run_level_schedule
6748
         VALUES (nscheduledid, dschedulepause, dscheduleresume, crepeat,
6749
                  cindefinitepause);
6750
   END;
6751
 
6752
/*-------------------------------------------------------------------------------------------------------*/
6753
   PROCEDURE delete_schedule (nscheduleid IN NUMBER)
6754
   IS
6755
   BEGIN
6756
      DELETE FROM run_level_schedule
6757
            WHERE scheduled_id = nscheduleid;
6758
   END;
6759
 
6760
/*-------------------------------------------------------------------------------------------------------*/
6761
   PROCEDURE set_infinite_pause
6762
   IS
6763
      nscheduledid   NUMBER;
6764
   BEGIN
6765
      -- Get Next Available Scheduled Id
6766
      SELECT seq_scheduled_id.NEXTVAL
6767
      INTO nscheduledid
6768
      FROM DUAL;
6769
 
6770
      INSERT INTO run_level_schedule
5172 dpurdie 6771
         VALUES (nscheduledid, ora_sysdatetime, NULL, NULL, 'P');
1373 dpurdie 6772
   END;
6031 dpurdie 6773
 
5172 dpurdie 6774
/*-------------------------------------------------------------------------------------------------------*/
6775
   PROCEDURE set_finite_pause (duration IN NUMBER)
6776
   IS
6777
      nscheduledid   NUMBER;
6778
      currentDate    DATE := ora_sysdatetime;
6779
   BEGIN
6031 dpurdie 6780
 
5172 dpurdie 6781
      -- Get Next Available Scheduled Id
6782
      SELECT seq_scheduled_id.NEXTVAL
6783
      INTO nscheduledid
6784
      FROM DUAL;
1373 dpurdie 6785
 
5172 dpurdie 6786
      INSERT INTO run_level_schedule
6787
         VALUES (nscheduledid, currentDate, currentDate + duration/(24*60), 0, 'F');
6031 dpurdie 6788
      COMMIT;
6789
 
5172 dpurdie 6790
      -- Ensure that we have only ONE finite pause by deleting all old ones
6791
      -- Under race conditions the last one wins
6031 dpurdie 6792
      DELETE FROM run_level_schedule
5172 dpurdie 6793
        WHERE SCHEDULED_ID < nscheduledid
6794
        AND INDEFINITE_PAUSE = 'F';
6031 dpurdie 6795
   END;
5172 dpurdie 6796
 
1373 dpurdie 6797
/*-------------------------------------------------------------------------------------------------------*/
6798
   PROCEDURE set_resume
6799
   IS
6800
   BEGIN
6801
      DELETE FROM run_level_schedule
5172 dpurdie 6802
            WHERE indefinite_pause in ('F', 'P' );
1373 dpurdie 6803
   END;
6804
 
6805
/*-------------------------------------------------------------------------------------------------------*/
6806
   PROCEDURE delete_out_of_date_schedule
6807
   IS
6808
   BEGIN
6809
      DELETE FROM run_level_schedule
6810
            WHERE scheduled_resume < ora_sysdatetime AND repeat = 0;
6811
   END;
6812
 
6813
/*-------------------------------------------------------------------------------------------------------*/
6814
   PROCEDURE set_daemon_resume (nrconid IN NUMBER)
6815
   IS
6816
   BEGIN
6817
      UPDATE run_level
6818
         SET PAUSE = NULL
6819
      WHERE rcon_id = nrconid;
6820
   END;
6821
 
6822
/*-------------------------------------------------------------------------------------------------------*/
6823
   PROCEDURE set_daemon_pause (nrconid IN NUMBER)
6824
   IS
6825
   BEGIN
6826
      UPDATE run_level
6827
         SET PAUSE = 1
6828
      WHERE rcon_id = nrconid;
6829
   END;
6830
/*-------------------------------------------------------------------------------------------------------*/
6831
   PROCEDURE set_daemon_disable (nrconid NUMBER)
6832
   IS
6833
   BEGIN
6834
      UPDATE run_level
6835
         SET PAUSE = 2
6836
      WHERE rcon_id = nrconid;
6837
   END;
6838
 
6839
/*-------------------------------------------------------------------------------------------------------*/
6840
   PROCEDURE set_daemon_states (nrtagid NUMBER, nstate NUMBER)
6841
   IS
6842
   BEGIN
6843
     UPDATE run_level
6844
     SET pause = nstate
6845
     WHERE rcon_id IN
6846
     (SELECT rc.rcon_id FROM release_config rc WHERE rc.rtag_id = nrtagid);
6847
   END;
6848
 
6849
/*-------------------------------------------------------------------------------------------------------*/
6850
   -- inserts a new daemon instruction
6851
   -- This is for use by the Release Manager Website code.
6852
   --
6853
   PROCEDURE insert_daemon_inst
6854
   ( nOp_code IN NUMBER
6855
   , nRtag_id IN NUMBER
6856
   , nPv_id IN NUMBER
6857
   , nSchedDate IN DATE
6858
   , nRepeatSecs IN NUMBER
6859
   , nAddedDate IN DATE
6860
   , nUser_id IN NUMBER
6861
   ) IS
6862
      nInstId   NUMBER;
6863
   BEGIN
6864
      -- Get Next Available Scheduled Id
6865
      SELECT seq_daemon_instruction_id.NEXTVAL
6866
      INTO nInstId
6867
      FROM DUAL;
6868
 
6869
      INSERT INTO Daemon_Instructions
6870
         VALUES (nInstId, nOp_code, nRtag_id,
6871
                  nPv_id, nSchedDate, nRepeatSecs,
6872
                  nAddedDate, nUser_id, '0');
6031 dpurdie 6873
 
6874
   -- Mark the Release as modified for build purposes
6875
   PK_RELEASE.SET_RELEASE_MODIFIED(nRtag_id);
6876
 
1373 dpurdie 6877
   EXCEPTION
6878
      WHEN DUP_VAL_ON_INDEX
6879
      THEN
6880
         raise_application_error (-20000,
6881
                                 'Table already contains a record with the specified OPERATION, RELEASE, and PACKAGE VERSION'
6882
                                 );
6883
      WHEN OTHERS
6884
      THEN
6885
         raise;
5172 dpurdie 6886
 
1373 dpurdie 6887
   END insert_daemon_inst;
6888
 
6889
/*-------------------------------------------------------------------------------------------------------*/
6890
   -- Deletes a daemon instruction matching the specified instruction ID
6891
   --
6892
   PROCEDURE del_daemon_inst
6893
   ( nInstId IN NUMBER
6894
   ) IS
6895
 
6896
   BEGIN
6897
      DELETE FROM Daemon_Instructions
6898
      WHERE DAEMON_INSTRUCTIONS_ID = nInstId;
6899
 
6900
   END del_daemon_inst;
6901
 
6902
/*-------------------------------------------------------------------------------------------------------*/
6903
   -- Deletes a daemon instruction matching the specified op-code, ratag, and pv_id
6904
   --
6905
   PROCEDURE del_daemon_inst_by_rtag_pvid(
6906
      nOp_code IN NUMBER,
6907
      nRtag_id IN NUMBER,
6908
      nPv_id IN NUMBER
6909
   ) IS
6910
   BEGIN
6911
      DELETE FROM Daemon_Instructions
6912
      WHERE OP_CODE = nOp_code
6913
      AND RTAG_ID = nRtag_id
6914
      AND PV_ID   = nPv_id;
6915
 
6916
   END del_daemon_inst_by_rtag_pvid;
6917
 
6918
/*-------------------------------------------------------------------------------------------------------*/
6919
   -- Updates a daemon instruction
6920
   -- This is for use by the Release Manager Website code.
6921
   --
6922
   PROCEDURE update_daemon_inst
6923
   ( nInstId IN NUMBER
6924
   , nOp_code IN NUMBER
6925
   , nRtag_id IN NUMBER
6926
   , nPv_id IN NUMBER
6927
   , nSchedDate IN DATE
6928
   , nRepeatSecs IN NUMBER
6929
   , nAddedDate IN DATE
6930
   , nUser_id IN NUMBER
6931
   ) IS
6932
      CURSOR daemon_inst_cur IS
6933
         SELECT *
6934
         FROM daemon_instructions di
6935
         WHERE di.DAEMON_INSTRUCTIONS_ID = nInstId;
6936
 
6937
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6938
 
6939
      exc_inst_removed EXCEPTION;
6940
   BEGIN
6941
      OPEN daemon_inst_cur;
6942
 
6943
      FETCH daemon_inst_cur
6944
      INTO daemon_inst_rec;
6945
 
6946
      IF daemon_inst_cur%FOUND THEN
6947
 
6948
         UPDATE Daemon_Instructions
6949
         SET op_code = nOp_code,
6950
            rtag_id = nRtag_id,
6951
            pv_id   = nPv_id,
6952
            scheduled_datetime = nSchedDate,
6953
            repeat_secs = nRepeatSecs,
6954
            added_datetime = nAddedDate,
6955
            user_id = nUser_id,
6956
            in_progress = '0'
6957
         WHERE daemon_instructions_id = nInstId;
6958
      ELSE
6959
         raise exc_inst_removed;
6960
      END IF;
6961
 
6962
      CLOSE daemon_inst_cur;
6031 dpurdie 6963
 
6964
      -- Mark the Release as modified for build purposes
6965
      PK_RELEASE.SET_RELEASE_MODIFIED(nRtag_id);
6966
 
1373 dpurdie 6967
   EXCEPTION
6968
      WHEN DUP_VAL_ON_INDEX
6969
      THEN
6970
         raise_application_error (-20000,
6971
                                 'Table already contains a record with the specified OPERATION, RELEASE, and PACKAGE VERSION'
6972
                                 );
6973
      WHEN exc_inst_removed
6974
      THEN
6975
         raise_application_error (-20000,
6976
                                 'Record was probably deleted by the Buildtool during your edit-form session. Please create a new Daemon Instruction.'
6977
                                 );
6978
      WHEN OTHERS
6979
      THEN
6980
         raise;
5172 dpurdie 6981
 
1373 dpurdie 6982
   END update_daemon_inst;
6983
 
6984
/*-------------------------------------------------------------------------------------------------------*/
6985
   -- Returns a comma-separated list of operation codes found for a given rtag and pv_id combination
6986
   -- This is for use by the Release Manager Website code.
6987
   --
6988
   FUNCTION daemon_ops_for_rtag_pvid(
6989
      nRtag_id IN NUMBER,
6990
      nPv_id IN NUMBER
6991
   ) RETURN VARCHAR2
6992
   IS
6993
      CURSOR daemon_inst_cur IS
6994
         SELECT di.OP_CODE
6995
         FROM daemon_instructions di
6996
         WHERE di.RTAG_ID = nRtag_id
6997
            AND di.PV_ID = nPv_id;
6998
 
6999
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
7000
 
7001
      sRetList VARCHAR2(4000) := '';
7002
 
7003
   BEGIN
7004
      OPEN daemon_inst_cur;
7005
 
7006
      FETCH daemon_inst_cur
7007
      INTO daemon_inst_rec;
7008
 
7009
      WHILE daemon_inst_cur%FOUND
7010
      LOOP
7011
         sRetList := sRetList || daemon_inst_rec.op_code || ',';
7012
 
7013
         FETCH daemon_inst_cur
7014
         INTO daemon_inst_rec;
7015
      END LOOP;
7016
 
7017
      CLOSE daemon_inst_cur;
7018
 
7019
      RETURN sRetList;
7020
   END daemon_ops_for_rtag_pvid;
7021
/*-------------------------------------------------------------------------------------------------------*/
7022
   -- Returns a comma-separated list of operation codes found for a given rtag
7023
   -- This is for use by the Release Manager Website code.
7024
   --
7025
   FUNCTION daemon_ops_for_rtag(
7026
      nRtag_id IN NUMBER
7027
   ) RETURN VARCHAR2
7028
   IS
7029
      CURSOR daemon_inst_cur IS
7030
         SELECT di.OP_CODE
7031
         FROM daemon_instructions di
7032
         WHERE di.RTAG_ID = nRtag_id;
7033
 
7034
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
7035
 
7036
      sRetList VARCHAR2(4000) := '';
7037
 
7038
   BEGIN
7039
      OPEN daemon_inst_cur;
7040
 
7041
      FETCH daemon_inst_cur
7042
      INTO daemon_inst_rec;
7043
 
7044
      WHILE daemon_inst_cur%FOUND
7045
      LOOP
7046
         sRetList := sRetList || daemon_inst_rec.op_code || ',';
7047
 
7048
         FETCH daemon_inst_cur
7049
         INTO daemon_inst_rec;
7050
      END LOOP;
7051
 
7052
      CLOSE daemon_inst_cur;
7053
 
7054
      RETURN sRetList;
7055
   END daemon_ops_for_rtag;
7056
/*-------------------------------------------------------------------------------------------------------*/
7057
   -- Gets a record from the daemon instruction table that can be carried out now and returns the fields
7058
   -- in the record a daemon will need
7059
   -- The Buildtool should use this to find a job to do for a particular release. It should then call
7060
   -- mark_daemon_inst_in_progress(inst_id) before carrying out the work, and then call
7061
   -- mark_daemon_inst_completed(inst_id) to signal its completion.
7062
   -- Can be called repeatedly to get a full list of all instructions for a release, by passing back in
7063
   -- the instruction ID obtained from the previous call (the 1st call should use 0)
7064
   -- Can be called repeatedly to get a full list of all instructions of a specific op-code value for a release,
7065
   -- by passing back in an op-code value of 0 or higher (use -1 if no op-code filtering is needed)
7066
   -- Returns 1 if a record was found, else 0.
7067
   --
7068
   FUNCTION get_daemon_inst(
7069
      nRtag_id IN NUMBER,
7070
      nInst_id IN OUT NUMBER,
7071
      nOp_code IN OUT NUMBER,
7072
      nPv_id OUT NUMBER,
7073
      nUser_id OUT NUMBER,
7074
      nInProgress OUT NUMBER
7075
   ) RETURN NUMBER
7076
   IS
7077
      CURSOR daemon_inst_cur IS
7078
         SELECT di.daemon_instructions_id, di.op_code, di.pv_id ,di.user_id, di.in_progress
7079
           FROM daemon_instructions di
7080
          WHERE di.rtag_id = nRtag_id
7081
            AND di.daemon_instructions_id > nInst_id
7082
            AND di.scheduled_datetime <= ora_sysdatetime
7083
            AND ((nOp_code = -1) OR (nOp_code = di.op_code))
7084
            AND rownum <= 1
7085
       ORDER BY di.daemon_instructions_id;
7086
 
7087
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
7088
   BEGIN
7089
      OPEN daemon_inst_cur;
7090
 
7091
      FETCH daemon_inst_cur
7092
      INTO daemon_inst_rec;
7093
 
7094
      -- If we found a record, return it.
7095
      IF daemon_inst_cur%FOUND THEN
7096
         nInst_id := daemon_inst_rec.daemon_instructions_id;
7097
         nOp_code := daemon_inst_rec.op_code;
7098
         nPv_id   := daemon_inst_rec.pv_id;
7099
         nUser_id := daemon_inst_rec.user_id;
7100
         IF daemon_inst_rec.in_progress = '1' THEN
7101
            nInProgress := 1;
7102
         ELSE
7103
            nInProgress := 0;
7104
         END IF;
7105
         CLOSE daemon_inst_cur;
7106
         RETURN 1;
7107
      END IF;
7108
 
7109
      CLOSE daemon_inst_cur;
7110
      RETURN 0;
7111
 
7112
   END get_daemon_inst;
7113
/*-------------------------------------------------------------------------------------------------------*/
7114
   -- Marks a daemon instruction as being processed by a daemon
7115
   -- The Buildtool should use this before it embarks on the work the instruction commands
7116
   --
7117
   PROCEDURE mark_daemon_inst_in_progress( nInstId IN NUMBER )
7118
   IS
7119
   BEGIN
7120
      UPDATE Daemon_Instructions
7121
      SET in_progress = '1'
7122
      WHERE daemon_instructions_id = nInstId;
7123
 
7124
   END mark_daemon_inst_in_progress;
7125
 
7126
/*-------------------------------------------------------------------------------------------------------*/
7127
   -- Once the Buildtool has finished carrying out the daemon instruction, it should call this stored
7128
   -- procedure in order to either delete the instruction or update it in the case where it is a repeating
7129
   -- instruction.
7130
   --
7131
   PROCEDURE mark_daemon_inst_completed( nInstId IN NUMBER )
7132
   IS
7133
      repSecs NUMBER;
7134
      schedDate  DATE;
7135
 
7136
      CURSOR daemon_inst_cur IS
7137
         SELECT di.REPEAT_SECS AS repSecs, di.SCHEDULED_DATETIME AS schedDate
7138
         FROM daemon_instructions di
7139
         WHERE di.daemon_instructions_id = nInstId;
7140
 
7141
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
7142
   BEGIN
7143
      OPEN daemon_inst_cur;
7144
 
7145
      FETCH daemon_inst_cur
7146
      INTO daemon_inst_rec;
7147
 
7148
      IF daemon_inst_cur%FOUND THEN
7149
 
7150
         -- if instruction repeats daily, add 1 day to the scheduled time and update the record
7151
         IF daemon_inst_rec.repSecs = 86400 THEN
7152
            UPDATE Daemon_Instructions
7153
               SET scheduled_datetime = daemon_inst_rec.schedDate + 1,
7154
                  in_progress = '0'
7155
            WHERE daemon_instructions_id = nInstId;
7156
         ELSE
7157
            -- Delete the daemon instruction, we are done with it
7158
            del_daemon_inst(nInstId);
7159
         END IF;
7160
      END IF;
7161
 
7162
      CLOSE daemon_inst_cur;
7163
 
7164
   EXCEPTION
7165
      WHEN OTHERS
7166
      THEN
7167
         raise;
7168
 
7169
   END mark_daemon_inst_completed;
7170
/*-------------------------------------------------------------------------------------------------------*/
7171
   -- This function deletes any old daemon instruction that appears stranded due to a problem that might
7172
   -- have occured during buildtool operation such as might occur if the buildtool or the machine it was
7173
   -- hosted on came down whilst it was processing a daemon instruction.
7174
   PROCEDURE cleanup_stranded_daemon_insts
7175
   IS
7176
   BEGIN
7177
      -- delete records at least two days old
7178
      DELETE FROM daemon_instructions di
7179
      WHERE  (di.scheduled_datetime + 5) <= ora_sysdatetime;
7180
 
7181
   END cleanup_stranded_daemon_insts;
7182
/*-------------------------------------------------------------------------------------------------------*/
7183
  --This function supersedes function, add_daemon. Done for DEVI-046806
7184
   PROCEDURE add_daemon_config (
7185
      nrtagid           IN   NUMBER,
7186
      nbmcon_id         IN   NUMBER,
7187
      sdaemon_mode      IN   VARCHAR2,
7188
      sgbebuildfilter   IN   VARCHAR2
7189
   )
7190
   IS
7191
      nrecordnumber   NUMBER;
7192
      nrconid         NUMBER;
7193
      sdaemonhostname VARCHAR2(50);
7194
      ngbeid         NUMBER;
7195
   BEGIN
7196
      -- Get RCON_ID
7197
      SELECT seq_rcon_id.NEXTVAL
7198
      INTO nrconid
7199
      FROM DUAL;
7200
 
7201
      SELECT COUNT (*)
7202
      INTO nrecordnumber
7203
      FROM release_config
7204
      WHERE rtag_id = nrtagid;
7205
 
7206
      SELECT machine_hostname,gbe_id INTO sdaemonhostname,ngbeid
7207
      FROM build_machine_config
7208
      WHERE bmcon_id = nbmcon_id;
7209
 
7210
      INSERT INTO release_config
7211
             (rcon_id, rtag_id, daemon_hostname, daemon_mode,
4308 dpurdie 7212
                gbe_id, gbe_buildfilter, bmcon_id)
1373 dpurdie 7213
      VALUES (nrconid, nrtagid, sdaemonhostname, sdaemon_mode,
4308 dpurdie 7214
                ngbeid, sgbebuildfilter, nbmcon_id);
1373 dpurdie 7215
 
7216
      -- A newly configured daemon should initially be paused (DEVI-047277)
7217
      INSERT INTO run_level
7218
                  (rcon_id, pause)
7219
           VALUES (nrconid, 2);
7220
 
7221
   END;
7222
 
7223
/*-------------------------------------------------------------------------------------------------------*/
7224
  --This function supersedes function, update_daemon. Done for DEVI-046806
7225
   PROCEDURE update_daemon_config (
7226
      nrconid           IN   NUMBER,
7227
      nbmcon_id         IN   NUMBER,
7228
      sdaemon_mode      IN   VARCHAR2,
7229
      sgbebuildfilter   IN   VARCHAR2
7230
   )
7231
   IS
7232
      sdaemonhostname VARCHAR2(50);
7233
      ngbeid         NUMBER;
7234
   BEGIN
7235
 
7236
      SELECT machine_hostname,gbe_id INTO sdaemonhostname,ngbeid
7237
      FROM build_machine_config
7238
      WHERE bmcon_id = nbmcon_id;
7239
 
7240
      UPDATE release_config
7241
         SET daemon_hostname = sdaemonhostname,
7242
            gbe_id = ngbeid,
7243
            daemon_mode = sdaemon_mode,
4308 dpurdie 7244
            gbe_buildfilter = sgbebuildfilter,
6031 dpurdie 7245
            bmcon_id = nbmcon_id
1373 dpurdie 7246
      WHERE rcon_id = nrconid;
7247
   END;
7248
 
7249
 
7250
/*-------------------------------------------------------------------------------------------------------*/
7251
   PROCEDURE add_build_machine (
7252
      sdisplay_name          IN   VARCHAR2,
7253
      smachine_hostname      IN   VARCHAR2,
7254
      ngbeid                 IN   NUMBER,
5172 dpurdie 7255
      sdescription           IN   VARCHAR2,
7256
      sactive                IN   CHAR
1373 dpurdie 7257
   )
7258
   IS
7259
      nrecordnumber   NUMBER;
7260
      nbmcon_id       NUMBER;
7261
   BEGIN
7262
      -- Get BMCON_ID
7263
      SELECT seq_bmcon_id.NEXTVAL INTO nbmcon_id FROM DUAL;
7264
 
5172 dpurdie 7265
      INSERT INTO build_machine_config(bmcon_id, display_name, machine_hostname,gbe_id,description,active)
7266
            VALUES (nbmcon_id,sdisplay_name,smachine_hostname,ngbeid,sdescription, NVL(sactive,'N'));
1373 dpurdie 7267
 
7268
   EXCEPTION
7269
      WHEN DUP_VAL_ON_INDEX
7270
      THEN
7271
         raise_application_error (-20000,
7272
                                 'Cannot have duplicate machines.'
7273
                                 );
7274
 
7275
   END;
7276
 
7277
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 7278
 PROCEDURE duplicate_daemon_config (
7279
      nrtagid           IN   NUMBER,
7280
      nbmcon_id         IN   NUMBER,
7281
      sdaemonhostname   IN   VARCHAR2,
7282
      ngbe_id           IN   NUMBER,
7283
      sdaemon_mode      IN   VARCHAR2,
7284
      sgbebuildfilter   IN   VARCHAR2
7285
   )
7286
   IS
7287
      nrecordnumber   NUMBER;
7288
      nrconid         NUMBER;
7289
    BEGIN
6031 dpurdie 7290
 
4308 dpurdie 7291
      -- Get RCON_ID
7292
      SELECT seq_rcon_id.NEXTVAL
7293
      INTO nrconid
7294
      FROM DUAL;
7295
 
7296
      INSERT INTO release_config
7297
             (rcon_id, rtag_id, daemon_hostname, daemon_mode,
7298
                gbe_id, gbe_buildfilter, bmcon_id)
7299
      VALUES (nrconid, nrtagid, sdaemonhostname, sdaemon_mode,
7300
                ngbe_id, sgbebuildfilter, nbmcon_id);
6031 dpurdie 7301
 
4308 dpurdie 7302
    -- A newly configured daemon should initially be disabled (DEVI-047277)
7303
      INSERT INTO run_level
7304
                  (rcon_id, pause)
7305
           VALUES (nrconid, 2);
7306
 
7307
   END;
7308
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 7309
   PROCEDURE delete_build_machine (sbmcon_id_list IN VARCHAR2)
7310
   IS
7311
   BEGIN
7312
      DELETE FROM build_machine_config
7313
            WHERE bmcon_id IN (
7314
                     SELECT * FROM THE
7315
                              (SELECT CAST
7316
                                          (in_list_number (sbmcon_id_list) AS relmgr_number_tab_t
7317
                                          )
7318
                                 FROM DUAL
7319
                              ));
7320
   END;
7321
 
7322
 
7323
/*-------------------------------------------------------------------------------------------------------*/
7324
   PROCEDURE update_build_machine (
7325
      nbmcon_id              IN   NUMBER,
7326
      sdisplay_name          IN   VARCHAR2,
7327
      smachine_hostname      IN   VARCHAR2,
7328
      ngbeid                 IN   NUMBER,
5172 dpurdie 7329
      sdescription           IN   VARCHAR2,
7330
      sactive                IN   CHAR
1373 dpurdie 7331
   )
7332
   IS
7333
   BEGIN
7334
      UPDATE build_machine_config
7335
         SET display_name = sdisplay_name,
7336
             machine_hostname = smachine_hostname,
7337
             gbe_id = ngbeid,
5172 dpurdie 7338
             description = sdescription,
7339
             active = NVL(sactive, 'N')
1373 dpurdie 7340
      WHERE bmcon_id = nbmcon_id;
7341
   EXCEPTION
7342
      WHEN DUP_VAL_ON_INDEX
7343
      THEN
7344
         raise_application_error (-20000,
7345
                                 'Cannot have duplicate machines.'
7346
                                 );
7347
   END;
6031 dpurdie 7348
 
4553 dpurdie 7349
/*-------------------------------------------------------------------------------------------------------*/
7350
PROCEDURE import_daemons ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER  ) IS
7351
 
7352
   sSourceLocation VARCHAR2(4000);
7353
   sTargetLocation VARCHAR2(4000);
7354
   ProjId NUMBER;
7355
   cReleaseMode CHAR(1);
7356
   RconId NUMBER;
7357
 
7358
   -- this cursor gets the source release daemon configurations, ensuring that the
7359
   -- first record will be the master daemon, and subsequent records will be the slaves.
7360
   CURSOR curSrcReleaseConfigs IS
7361
    SELECT daemon_hostname, gbe_id, gbe_buildfilter, bmcon_id, daemon_mode
7362
     FROM RELEASE_CONFIG rc
7363
    WHERE rc.RTAG_ID = nSourceRtagId
7364
    ORDER BY rc.daemon_mode;
7365
    recSrcReleaseConfigs curSrcReleaseConfigs%ROWTYPE;
7366
 
7367
    -- this cursor looks for target release daemons
7368
   CURSOR curTgtReleaseConfigs IS
7369
    SELECT rcon_id
7370
     FROM RELEASE_CONFIG rc
7371
    WHERE rc.RTAG_ID = nTargetRtagId;
7372
    recTgtReleaseConfigs curTgtReleaseConfigs%ROWTYPE;
7373
 
7374
    -- this cursor looks for target release daemon run level entries
7375
   CURSOR curTgtReleaseConfigRunLevel IS
7376
    SELECT current_run_level
7377
     FROM RUN_LEVEL rl
7378
    WHERE rl.RCON_ID = recTgtReleaseConfigs.rcon_id;
7379
    recTgtReleaseConfigRunLevel curTgtReleaseConfigRunLevel%ROWTYPE;
7380
 
7381
BEGIN
7382
   /*--------------- Business Rules Here -------------------*/
7383
   IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)
7384
   THEN
7385
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );
7386
   END IF;
7387
 
7388
   IF (nSourceRtagId = nTargetRtagId) THEN
7389
      RAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );
7390
   END IF;
7391
 
7392
   -- Check if Target release is in OPEN mode
7393
   SELECT rt.OFFICIAL  INTO  cReleaseMode
7394
     FROM RELEASE_TAGS rt
7395
    WHERE rt.RTAG_ID = nTargetRtagId;
7396
 
7397
   IF (cReleaseMode != 'N') THEN
7398
      RAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the contents.' );
7399
   END IF;
7400
 
7401
   -- check that the target release's daemons are all paused before we allow an import operation
7402
   OPEN curTgtReleaseConfigs;
7403
   FETCH curtgtReleaseConfigs INTO recTgtReleaseConfigs;
7404
 
7405
   WHILE curTgtReleaseConfigs%FOUND
7406
   LOOP
7407
      OPEN curTgtReleaseConfigRunLevel;
7408
      FETCH curTgtReleaseConfigRunLevel INTO recTgtReleaseConfigRunLevel;
7409
      IF curTgtReleaseConfigRunLevel%FOUND THEN
7410
         IF (recTgtReleaseConfigRunLevel.current_run_level IS NULL) OR
7411
            (recTgtReleaseConfigRunLevel.current_run_level <> 2) THEN
7412
            RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
7413
         END IF;
7414
      ELSE
7415
         -- we don't know what the daemon run level is so err on the side of caution
7416
         RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
7417
      END IF;
7418
      CLOSE curTgtReleaseConfigRunLevel;
7419
 
7420
      FETCH curTgtReleaseConfigs INTO recTgtReleaseConfigs;
7421
   END LOOP;
7422
 
7423
   CLOSE curTgtReleaseConfigs;
7424
 
7425
 
7426
   /*-------------------------------------------------------*/
7427
 
7428
   --Import Release Configuration Information
7429
   OPEN curSrcReleaseConfigs;
7430
   FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
7431
 
7432
     WHILE curSrcReleaseConfigs%FOUND
7433
   LOOP
7434
      -- add a daemon to the target release
6031 dpurdie 7435
      PK_BUILDAPI.duplicate_daemon_config( nTargetRtagId,
7436
                                     recSrcReleaseConfigs.bmcon_id,
7437
                                     recSrcReleaseConfigs.daemon_hostname,
7438
                                     recSrcReleaseConfigs.gbe_id,
4553 dpurdie 7439
                                     recSrcReleaseConfigs.daemon_mode ,
7440
                                     recSrcReleaseConfigs.gbe_buildfilter );
7441
 
7442
      FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
7443
   END LOOP;
7444
 
7445
   CLOSE curSrcReleaseConfigs;
7446
 
6031 dpurdie 7447
 
4553 dpurdie 7448
   /* Log Project Action */
7449
   -- Get Source Location
7450
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sSourceLocation
7451
     FROM RELEASE_TAGS rt,
7452
           PROJECTS pr
7453
    WHERE rt.PROJ_ID = pr.PROJ_ID
7454
      AND rt.RTAG_ID = nSourceRtagId;
7455
 
7456
   -- Get Target Location
7457
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sTargetLocation
7458
     FROM RELEASE_TAGS rt,
7459
           PROJECTS pr
7460
    WHERE rt.PROJ_ID = pr.PROJ_ID
7461
      AND rt.RTAG_ID = nTargetRtagId;
7462
 
7463
   -- Get project id
7464
   SELECT rt.PROJ_ID  INTO  ProjId
7465
     FROM RELEASE_TAGS rt
7466
    WHERE rt.RTAG_ID = nTargetRtagId;
7467
 
7468
   Log_Project_Action ( ProjId, 'import_daemon_configuration', nUserId, 'SOURCE: '|| sSourceLocation ||'   TARGET: '|| sTargetLocation, nTargetRtagId );
7469
END;
7470
 
5892 dpurdie 7471
/*-------------------------------------------------------------------------------------------------------*/
7472
PROCEDURE set_build_plan (rtagId IN NUMBER, nStartIndex IN NUMBER, pvList IN VARCHAR2)
7473
   IS
7474
    nPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
7475
    SeqNum NUMBER;
6031 dpurdie 7476
 
5892 dpurdie 7477
   BEGIN
6031 dpurdie 7478
 
5892 dpurdie 7479
   -- Remove all the old entries, on first usage
7480
   IF nStartIndex = 0 then
7481
    DELETE BUILD_PLAN WHERE RTAG_ID = rtagId;
7482
    SeqNum := 0;
7483
   ELSE
7484
    SELECT COUNT(*) into SeqNum from BUILD_PLAN WHERE RTAG_ID = rtagId;
7485
   END IF;
6031 dpurdie 7486
 
5892 dpurdie 7487
   -- Set start sequence number
7488
   nPvIdCollector := IN_LIST_NUMBER ( pvList );
7489
 
7490
   FOR i IN 1..nPvIdCollector.COUNT
7491
   LOOP
7492
      -- Update build plan with order
7493
      INSERT INTO BUILD_PLAN (RTAG_ID, BUILD_ORDER, PV_ID) VALUES (rtagId, SeqNum, nPvIdCollector(i));
7494
      SeqNum := SeqNum + 1;
7495
 
7496
   END LOOP;
7497
END;
7498
 
1373 dpurdie 7499
END pk_buildapi;
4040 dpurdie 7500
 
1374 dpurdie 7501
/
4040 dpurdie 7502
--------------------------------------------------------
7503
--  DDL for Package Body PK_ENVIRONMENT
7504
--------------------------------------------------------
7505
 
5172 dpurdie 7506
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_ENVIRONMENT" 
1373 dpurdie 7507
IS
7508
 
7509
   /*-------------------------------------------------------------------------------------------------------*/
7510
   FUNCTION select_environment_area (cdlock IN package_versions.dlocked%TYPE)
7511
     RETURN NUMBER
7512
   IS
7513
   BEGIN
7514
      /*
7515
     || N - unlocked
7516
     || Y - release and locked
7517
     || P - penging approval
7518
     || A - approved package ready for auto-build
7519
     */
7520
     IF cdlock = 'N' OR cdlock = 'R'
7521
     THEN
7522
       -- WORK IN PROGRESS --
7523
       RETURN 0;
7524
     ELSIF cdlock = 'P' OR cdlock = 'A'
7525
     THEN
7526
       -- PENDING --
7527
       RETURN 1;
7528
     ELSIF cdlock = 'Y'
7529
     THEN
7530
       -- RELEASED --
7531
       RETURN 2;
7532
     ELSE
7533
       -- NOT FOUND --
7534
       raise_application_error
7535
                   (-20000,
7536
                      'Cannot decide where to place package. [cDlock='
7537
                    || cdlock
7538
                    || ']'
7539
                   );
7540
     END IF;
7541
   END;
7542
 
7543
/*-------------------------------------------------------------------------------------------------------*/
7544
   FUNCTION get_package_area (pvid IN NUMBER, rtagid IN NUMBER)
7545
     RETURN NUMBER
7546
   IS
7547
     envtab   NUMBER         := -1;
7548
 
7549
     CURSOR curarea
7550
     IS
7551
       SELECT 2 AS envtab
7552
         FROM release_content rc
7553
        WHERE rc.rtag_id = rtagid AND rc.pv_id = pvid
7554
       UNION
7555
       SELECT 0 AS envtab
7556
         FROM work_in_progress wip
7557
        WHERE wip.rtag_id = rtagid AND wip.pv_id = pvid
7558
       UNION
7559
       SELECT 1 AS envtab
7560
         FROM planned pl
7561
        WHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;
7562
 
7563
     recarea   curarea%ROWTYPE;
7564
   BEGIN
7565
     OPEN curarea;
7566
 
7567
     FETCH curarea
7568
      INTO recarea;
7569
 
7570
     IF curarea%FOUND
7571
     THEN
7572
       envtab := recarea.envtab;
7573
     END IF;
7574
 
7575
     CLOSE curarea;
7576
 
7577
     RETURN envtab;
7578
   END;
7579
 
7580
/*-------------------------------------------------------------------------------------------------------*/
7581
   FUNCTION get_view_location (pvid IN NUMBER, rtagid IN NUMBER)
7582
     RETURN NUMBER
7583
   IS
7584
     ispatch   package_versions.dlocked%TYPE;
7585
     viewid   NUMBER                    := -1;
7586
 
7587
     CURSOR curview
7588
     IS
7589
       SELECT rc.base_view_id AS view_id
7590
         FROM release_content rc
7591
        WHERE rc.rtag_id = rtagid AND rc.pv_id = pvid
7592
       UNION
7593
       SELECT wip.view_id AS view_id
7594
         FROM work_in_progress wip
7595
        WHERE wip.rtag_id = rtagid AND wip.pv_id = pvid
7596
       UNION
7597
       SELECT pl.view_id AS view_id
7598
         FROM planned pl
7599
        WHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;
7600
 
7601
     recview   curview%ROWTYPE;
7602
   BEGIN
7603
     -- Get dlock state
7604
     SELECT pv.is_patch
7605
      INTO ispatch
7606
      FROM package_versions pv
7607
      WHERE pv.pv_id = pvid;
7608
 
7609
     -- Decide which view id should package go under.
7610
     IF (ispatch != 'Y') OR (ispatch IS NULL)
7611
     THEN
7612
       -- Get VIEW ID of Package
7613
       OPEN curview;
7614
 
7615
       FETCH curview
7616
        INTO recview;
7617
 
7618
       IF curview%FOUND
7619
       THEN
7620
         viewid := recview.view_id;
7621
       ELSE
7622
         raise_application_error
7623
            (-20000,
7624
               'Cannot find view_id to proceed. [PvId='
7625
            || pvid
7626
            || ']. The current version may not exist in the release anymore.'
7627
            );
7628
       END IF;
7629
 
7630
       CLOSE curview;
7631
     ELSE
7632
       -- Get VIEW ID of Patch (view id of parent package)
7633
       SELECT rc.base_view_id
7634
         INTO viewid
7635
         FROM release_content rc, package_patches ppv
7636
        WHERE rc.rtag_id = rtagid
7637
         AND rc.pv_id = ppv.pv_id
7638
         AND ppv.patch_id = pvid;
7639
     END IF;
7640
 
7641
     RETURN viewid;
7642
   END;
7643
 
7644
/*-------------------------------------------------------------------------------------------------------*/
5384 dpurdie 7645
--  Add a package to the specified release
7646
--  Default imode: Will determine the tab ( WIP, PENDING, RELEASE ) to add the package
7647
--  Otherwise will Add the package to the PENDING set
7648
--
1373 dpurdie 7649
   PROCEDURE add_package (
7650
     pvid    IN   NUMBER,
5384 dpurdie 7651
     viewid  IN   NUMBER,
7652
     rtagid  IN   NUMBER,
7653
     userid  IN   NUMBER,
7654
     imode   IN   CHAR default NULL
1373 dpurdie 7655
   )
7656
   IS
7657
     dlocked   package_versions.dlocked%TYPE;
7658
     envtab   NUMBER;
5384 dpurdie 7659
     pendOpr CHAR := 'R';
1373 dpurdie 7660
   BEGIN
7661
     IF can_edit_pkg_in_project (pvid, rtagid) = 1
7662
     THEN
5384 dpurdie 7663
       IF iMode IS NULL THEN
7664
         -- Determine the tab to use based on the package lock state
7665
         -- Get dlock state
7666
         SELECT pv.dlocked
7667
           INTO dlocked
7668
           FROM package_versions pv
7669
          WHERE pv.pv_id = pvid;
6031 dpurdie 7670
 
5384 dpurdie 7671
         -- Get which area should go under
7672
         envtab := select_environment_area (dlocked);
7673
       ELSE
7674
        -- Assume that the package is to be added to Pending
7675
        envtab := 1;
7676
        pendOpr := 'A';
7677
       END IF;
1373 dpurdie 7678
       -- Log
5172 dpurdie 7679
       --log_action (pvid, 'action', userid, 'Start of Package Add...');
1373 dpurdie 7680
 
5384 dpurdie 7681
       -- Add Package
1373 dpurdie 7682
       IF envtab = 0
7683
       THEN
7684
         -- WORK IN PROGRESS --
7685
         pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
7686
       ELSIF envtab = 1
7687
       THEN
7688
         -- PENDING --
5384 dpurdie 7689
         pk_planned.add_package (pvid, viewid, rtagid, userid, pendOpr);
1373 dpurdie 7690
       ELSIF envtab = 2
7691
       THEN
7692
         -- RELEASED --
7693
         -- NOTE: this package will be replaced with matching package
7694
         pk_release.add_package (pvid, viewid, rtagid, userid);
7695
         -- Now do post Release Actions
7696
         pk_release.run_post_actions (pvid, rtagid);
7697
       END IF;
7698
 
7699
       -- Log
5172 dpurdie 7700
       --log_action (pvid, 'action', userid, 'End of Package Add...');
1373 dpurdie 7701
     END IF;
7702
   END;
7703
 
7704
/*-------------------------------------------------------------------------------------------------------*/
7705
   PROCEDURE add_package_bulk (
7706
     pvidlist   IN   VARCHAR2,
7707
     viewid    IN   NUMBER,
7708
     rtagid    IN   NUMBER,
5384 dpurdie 7709
     userid    IN   NUMBER,
7710
     imode     IN   CHAR DEFAULT NULL
1373 dpurdie 7711
   )
7712
   IS
5384 dpurdie 7713
     nidcollector relmgr_number_tab_t         := relmgr_number_tab_t();
1373 dpurdie 7714
     dlocked      package_versions.dlocked%TYPE;
7715
     pvid         NUMBER;
7716
     envtab       NUMBER;
7717
   BEGIN
7718
     /*--------------- Business Rules Here -------------------*/
7719
     IF (pvidlist IS NULL)
7720
     THEN
7721
       raise_application_error (-20000,
7722
                          'Please select at least one package.'
7723
                         );
7724
     END IF;
7725
 
7726
/*-------------------------------------------------------*/
7727
     nidcollector := in_list_number (pvidlist);
7728
 
7729
     FOR i IN 1 .. nidcollector.COUNT
7730
     LOOP
7731
       pvid := nidcollector (i);
5384 dpurdie 7732
       add_package (pvid, viewid, rtagid, userid, imode);
1373 dpurdie 7733
     END LOOP;
7734
   END;
7735
 
7736
/*-------------------------------------------------------------------------------------------------------*/
7737
   PROCEDURE replace_package (
7738
     newpvid  IN   NUMBER,
7739
     oldpvid  IN   NUMBER,
7740
     rtagid   IN   NUMBER,
7741
     userid   IN   NUMBER
7742
   )
7743
   IS
7744
     dlocked      package_versions.dlocked%TYPE;
7745
     viewid       NUMBER;
7746
     envtab       NUMBER;
7747
     ROWCOUNT     NUMBER;
7748
     creleasemode CHAR (1);
7749
     npkgid       NUMBER;
7750
   BEGIN
7751
     /*--------------- Business Rules Here -------------------*/
7752
     -- Check if oldPvId exists. It could have been removed
7753
     SELECT COUNT (pv.pv_id)
7754
       INTO ROWCOUNT
7755
       FROM package_versions pv
7756
      WHERE pv.pv_id = oldpvid;
7757
 
7758
/*-------------------------------------------------------*/
7759
 
7760
     /* This procedure is usually used by "History" option in Release Manager */
7761
 
7762
     -- Get dlock state
7763
     SELECT pv.dlocked
7764
       INTO dlocked
7765
       FROM package_versions pv
7766
      WHERE pv.pv_id = newpvid;
7767
 
7768
     -- Get VIEW_ID ---
7769
     IF ROWCOUNT = 1
7770
     THEN
7771
       viewid := get_view_location (oldpvid, rtagid);
7772
     ELSE
7773
       -- Set ViewID to default
7774
       viewid := 7;
7775
     END IF;
7776
 
7777
     -- Get which area should go under
7778
     envtab := select_environment_area (dlocked);
7779
     -- Log
5172 dpurdie 7780
     --log_action (oldpvid, 'action', userid, 'Start of Package Replace...');
1373 dpurdie 7781
 
7782
     -- Replace package
7783
     IF envtab = 0
7784
     THEN
7785
       -- WORK IN PROGRESS --
7786
 
7787
       -- Delete old package
7788
       pk_work_in_progress.remove_package (oldpvid, rtagid, userid);
7789
 
7790
       -- Add new package
7791
       pk_work_in_progress.add_package (newpvid, viewid, rtagid, userid);
7792
     ELSIF envtab = 1
7793
     THEN
7794
       -- PENDING --
7795
 
7796
       -- Delete old package
7797
       pk_planned.remove_package (oldpvid, rtagid, userid);
7798
 
7799
       -- Add new package
7800
       pk_planned.add_package (newpvid, viewid, rtagid, userid);
7801
     ELSIF envtab = 2
7802
     THEN
7803
       -- RELEASED --
6031 dpurdie 7804
 
5172 dpurdie 7805
       -- Replace Package
7806
       pk_release.replace_package(newpvid, oldpvid, rtagid, userid);
6031 dpurdie 7807
 
1373 dpurdie 7808
       -- Now do post Release Actions
7809
       pk_release.run_post_actions (newpvid, rtagid);
7810
     END IF;
7811
 
7812
     -- Log
5172 dpurdie 7813
     --log_action (oldpvid, 'action', userid, 'End of Package Replace...');
1373 dpurdie 7814
   END;
7815
 
7816
/*-------------------------------------------------------------------------------------------------------*/
7817
   FUNCTION remove_package (
7818
     pvid        IN   NUMBER,
7819
     rtagid      IN   NUMBER,
7820
     userid      IN   NUMBER,
7821
     forceremove IN   CHAR
7822
   )
7823
     RETURN NUMBER
7824
   IS
7825
     envtab      NUMBER;
7826
     isused      BOOLEAN;
7827
     recordcount   NUMBER;
7828
   BEGIN
7829
/*--------------- Business Rules Here -------------------*/
7830
/*-------------------------------------------------------*/
7831
 
7832
     -- Find location of package
7833
     envtab := get_package_area (pvid, rtagid);
7834
 
7835
     -- Remove Package
7836
     IF envtab = 0
7837
     THEN
7838
       -- WORK IN PROGRESS --
7839
       -- Delete package
7840
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
7841
 
7842
       RETURN 0;
7843
     ELSIF envtab = 1
7844
     THEN
7845
       -- PENDING --
7846
       -- Delete package
7847
       pk_planned.remove_package (pvid, rtagid, userid);
7848
 
7849
       RETURN 0;
7850
     ELSIF envtab = 2
7851
     THEN
7852
       -- RELEASED --
7853
 
7854
       -- Check if is used by other packages
7855
       isused := TRUE;
7856
 
7857
       IF forceremove = 'N'
7858
       THEN
6031 dpurdie 7859
          select count(dpv.PKG_ID) INTO recordcount from
5172 dpurdie 7860
          (SELECT  rc.pv_id
7861
          FROM RELEASE_CONTENT rc, PEGGED_VERSIONS peg
7862
            WHERE rc.rtag_id = rtagid
7863
            AND peg.RTAG_ID(+) = rc.RTAG_ID
7864
            AND peg.PV_ID(+) = rc.PV_ID
7865
            AND peg.rtag_id is null
7866
            AND rc.SDKTAG_ID is null
7867
            ) arc,
7868
          PACKAGE_DEPENDENCIES dep,
7869
          PACKAGE_VERSIONS pv,
7870
          PACKAGE_VERSIONS dpv,
7871
          PACKAGE_VERSIONS bpv
7872
          where dep.PV_ID = arc.pv_id
7873
          AND dep.pv_id = pv.pv_id
7874
          AND dep.dpv_id = dpv.PV_ID
7875
          AND dpv.PKG_ID = bpv.PKG_ID
7876
          AND NVL(dpv.V_EXT, '.NULL') = NVL(bpv.V_EXT, '.NULL')
7877
          AND bpv.pv_id = pvid;
1373 dpurdie 7878
 
7879
         IF recordcount > 0
7880
         THEN
7881
            RETURN 1;               -- Return 1 as package being used
7882
         ELSE
7883
            isused := FALSE;
7884
         END IF;
7885
       END IF;
7886
 
7887
       IF forceremove = 'Y' OR NOT isused
7888
       THEN
7889
         -- Delete old package
7890
         pk_release.remove_package (pvid, rtagid, userid);
7891
 
7892
         -- Delete old package's pegging info
7893
         DELETE FROM PEGGED_VERSIONS pegv WHERE pegv.RTAG_ID = rtagid AND pegv.PV_ID = pvid;
7894
 
7895
         -- Delete old package's advisory ripple info
7896
         DELETE FROM ADVISORY_RIPPLE avr WHERE avr.RTAG_ID = rtagid AND avr.PV_ID = pvid;
7897
 
7898
         -- Now do post Release Actions
7899
         pk_release.run_post_actions (pvid, rtagid);
7900
         RETURN 0;
7901
       END IF;
7902
     END IF;
7903
   END;
7904
 
7905
/*-------------------------------------------------------------------------------------------------------*/
7906
   -- DEVI-45275 added the return of the new "operation" column in the recordset.
7907
 
7908
   PROCEDURE get_environment_items (
7909
     viewtype         IN      NUMBER,
7910
     userid           IN      NUMBER,
7911
     rtagid           IN      NUMBER,
7912
     sviewidshowlist  IN      VARCHAR2,
7913
     ntruerecordcount OUT     NUMBER,
7914
     recordset        OUT     typecur
7915
   )
7916
   IS
7917
   BEGIN
7918
     -- Get true record count because views can give false count
7919
     SELECT COUNT (pl.pv_id)
7920
      INTO ntruerecordcount
7921
      FROM environment_view pl
7922
      WHERE pl.rtag_id = rtagid;
7923
 
7924
     IF viewtype = 1
7925
     THEN
7926
       /*--- GUEST VIEW ---*/
7927
       OPEN recordset FOR
7928
         SELECT   *
7929
            FROM (
7930
                 /* Base Views collapsed */
7931
                 SELECT DISTINCT vi.view_id, vi.view_name,
7932
                             TO_NUMBER (NULL) AS pkg_state,
7933
                             TO_NUMBER (NULL) AS deprecated_state,
7934
                             TO_NUMBER (NULL) AS pv_id,
7935
                             NULL AS pkg_name, NULL AS pkg_version,
7936
                             NULL AS dlocked, NULL AS pv_description,
7937
                             rel.operation
7938
                         FROM environment_view rel, views vi
7939
                        WHERE rel.view_id = vi.view_id
7940
                          AND rtag_id = rtagid
7941
                          AND rel.view_id NOT IN (
7942
                               SELECT *
7943
                                 FROM THE
7944
                                       (SELECT CAST
7945
                                               (in_list_number
7946
                                                  (sviewidshowlist
7947
                                                  ) AS relmgr_number_tab_t
7948
                                               )
7949
                                         FROM DUAL
7950
                                       ))
7951
                 UNION
7952
                 /* Base Views expanded */
7953
                 SELECT vi.view_id, vi.view_name,
7954
                      DECODE (rel.pkg_state,
7955
                            NULL, 0,
7956
                            rel.pkg_state
7957
                           ) AS pkg_state,
7958
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7959
                      pv.pkg_version, pv.dlocked, pv.pv_description,
7960
                      rel.operation
7961
                  FROM environment_view rel,
7962
                      PACKAGES pkg,
7963
                      package_versions pv,
7964
                      views vi
7965
                  WHERE pv.pkg_id = pkg.pkg_id
7966
                   AND rel.pv_id = pv.pv_id
7967
                   AND rel.view_id = vi.view_id
7968
                   AND rel.view_id IN (
7969
                        SELECT *
7970
                          FROM THE
7971
                                (SELECT CAST
7972
                                        (in_list_number
7973
                                               (sviewidshowlist) AS relmgr_number_tab_t
7974
                                        )
7975
                                  FROM DUAL
7976
                                ))
7977
                   AND rtag_id = rtagid) ord
7978
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
7979
     ELSIF viewtype = 2
7980
     THEN
7981
       /*--- PERSONAL VIEW ---*/
7982
       OPEN recordset FOR
7983
         SELECT   *
7984
            FROM (
7985
                 /* Base Views collapsed */
7986
                 SELECT DISTINCT vi.view_id, vi.view_name,
7987
                             TO_NUMBER (NULL) AS pkg_state,
7988
                             TO_NUMBER (NULL) AS deprecated_state,
7989
                             TO_NUMBER (NULL) AS pv_id,
7990
                             NULL AS pkg_name, NULL AS pkg_version,
7991
                             NULL AS dlocked, NULL AS pv_description,
7992
                             rel.operation
7993
                         FROM environment_view rel,
7994
                             view_settings vs,
7995
                             views vi
7996
                        WHERE rel.view_id = vi.view_id
7997
                          AND vs.view_id = rel.view_id
7998
                          AND vs.user_id = userid
7999
                          AND rtag_id = rtagid
8000
                          AND rel.view_id NOT IN (
8001
                               SELECT *
8002
                                 FROM THE
8003
                                       (SELECT CAST
8004
                                               (in_list_number
8005
                                                  (sviewidshowlist
8006
                                                  ) AS relmgr_number_tab_t
8007
                                               )
8008
                                         FROM DUAL
8009
                                       ))
8010
                 UNION
8011
                 /* Base Views expanded */
8012
                 SELECT vi.view_id, vi.view_name,
8013
                      DECODE (rel.pkg_state,
8014
                            NULL, 0,
8015
                            rel.pkg_state
8016
                           ) AS pkg_state,
8017
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8018
                      pv.pkg_version, pv.dlocked, pv.pv_description,
8019
                      rel.operation
8020
                  FROM environment_view rel,
8021
                      PACKAGES pkg,
8022
                      package_versions pv,
8023
                      views vi,
8024
                      view_settings vs
8025
                  WHERE pv.pkg_id = pkg.pkg_id
8026
                   AND rel.pv_id = pv.pv_id
8027
                   AND rel.view_id = vi.view_id
8028
                   AND vs.view_id = vi.view_id
8029
                   AND vs.user_id = userid
8030
                   AND rel.view_id IN (
8031
                        SELECT *
8032
                          FROM THE
8033
                                (SELECT CAST
8034
                                        (in_list_number
8035
                                               (sviewidshowlist) AS relmgr_number_tab_t
8036
                                        )
8037
                                  FROM DUAL
8038
                                ))
8039
                   AND rtag_id = rtagid
8040
                 UNION
8041
                 /* Private Views collapsed */
8042
                 SELECT vi.view_id, vi.view_name,
8043
                      TO_NUMBER (NULL) AS pkg_state,
8044
                      TO_NUMBER (NULL) AS deprecated_state,
8045
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
8046
                      NULL AS pkg_version, NULL AS dlocked,
8047
                      NULL AS pv_description,
8048
                      rel.operation
8049
                  FROM view_settings vs,
8050
                      view_def vd,
8051
                      views vi,
8052
                      environment_view rel,
8053
                      package_versions pv
8054
                  WHERE vs.view_id = vi.view_id
8055
                   AND rel.pv_id = pv.pv_id
8056
                   AND vd.pkg_id = pv.pkg_id
8057
                   AND vd.view_id = vi.view_id
8058
                   AND vi.base_view = 'N'
8059
                   AND rel.rtag_id = rtagid
8060
                   AND vs.user_id = userid
8061
                   AND vi.view_id NOT IN (
8062
                        SELECT *
8063
                          FROM THE
8064
                                (SELECT CAST
8065
                                        (in_list_number
8066
                                               (sviewidshowlist) AS relmgr_number_tab_t
8067
                                        )
8068
                                  FROM DUAL
8069
                                ))
8070
                 UNION
8071
                 /* Private Views expanded */
8072
                 SELECT vi.view_id, vi.view_name,
8073
                      DECODE (rel.pkg_state,
8074
                            NULL, 0,
8075
                            rel.pkg_state
8076
                           ) AS pkg_state,
8077
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8078
                      pv.pkg_version, pv.dlocked, pv.pv_description,
8079
                      rel.operation
8080
                  FROM users usr,
8081
                      view_settings vs,
8082
                      view_def vd,
8083
                      views vi,
8084
                      environment_view rel,
8085
                      PACKAGES pkg,
8086
                      package_versions pv
8087
                  WHERE vs.user_id = usr.user_id
8088
                   AND vs.view_id = vi.view_id
8089
                   AND vd.view_id = vi.view_id
8090
                   AND pv.pkg_id = pkg.pkg_id
8091
                   AND rel.pv_id = pv.pv_id
8092
                   AND rel.rtag_id = rtagid
8093
                   AND vd.pkg_id = pkg.pkg_id
8094
                   AND vi.base_view = 'N'
8095
                   AND vi.view_id IN (
8096
                        SELECT *
8097
                          FROM THE
8098
                                (SELECT CAST
8099
                                        (in_list_number
8100
                                               (sviewidshowlist) AS relmgr_number_tab_t
8101
                                        )
8102
                                  FROM DUAL
8103
                                ))
8104
                   AND usr.user_id = userid) ord
8105
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8106
     END IF;
8107
   END;
8108
 
8109
/*-------------------------------------------------------------------------------------------------------*/
8110
   PROCEDURE get_released_items (
8111
     viewtype         IN      NUMBER,
8112
     userid           IN      NUMBER,
8113
     rtagid           IN      NUMBER,
8114
     sviewidshowlist  IN      VARCHAR2,
8115
     ntruerecordcount OUT     NUMBER,
8116
     recordset        OUT     typecur
8117
   )
8118
   IS
8119
   BEGIN
8120
     -- Get true record count because views can give false count
8121
     SELECT COUNT (rc.pv_id)
8122
      INTO ntruerecordcount
8123
      FROM release_content rc
8124
      WHERE rc.rtag_id = rtagid;
8125
 
8126
     IF viewtype = 1
8127
     THEN
8128
       /*--- GUEST VIEW ---*/
8129
       OPEN recordset FOR
8130
         SELECT   *
8131
            FROM (
8132
                 /* Base Views collapsed */
8133
                 SELECT DISTINCT vi.view_id, vi.view_name,
8134
                             TO_NUMBER (NULL) AS pkg_state,
8135
                             TO_NUMBER (NULL) AS deprecated_state,
8136
                             TO_NUMBER (NULL) AS pv_id,
8137
                             NULL AS pkg_name, NULL AS pkg_version,
8138
                             NULL AS dlocked, NULL AS pv_description
8139
                         FROM release_content rel, views vi
8140
                        WHERE rel.base_view_id = vi.view_id
8141
                          AND rtag_id = rtagid
8142
                          AND rel.base_view_id NOT IN (
8143
                               SELECT *
8144
                                 FROM THE
8145
                                       (SELECT CAST
8146
                                               (in_list_number
8147
                                                  (sviewidshowlist
8148
                                                  ) AS relmgr_number_tab_t
8149
                                               )
8150
                                         FROM DUAL
8151
                                       ))
8152
                 UNION
8153
                 /* Base Views expanded */
8154
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
8155
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8156
                      pv.pkg_version, pv.dlocked, pv.pv_description
8157
                  FROM release_content rel,
8158
                      PACKAGES pkg,
8159
                      package_versions pv,
8160
                      views vi
8161
                  WHERE pv.pkg_id = pkg.pkg_id
8162
                   AND rel.pv_id = pv.pv_id
8163
                   AND rel.base_view_id = vi.view_id
8164
                   AND rel.base_view_id IN (
8165
                        SELECT *
8166
                          FROM THE
8167
                                (SELECT CAST
8168
                                        (in_list_number
8169
                                               (sviewidshowlist) AS relmgr_number_tab_t
8170
                                        )
8171
                                  FROM DUAL
8172
                                ))
8173
                   AND rtag_id = rtagid) ord
8174
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8175
     ELSIF viewtype = 2
8176
     THEN
8177
       /*--- PERSONAL VIEW ---*/
8178
       OPEN recordset FOR
8179
         SELECT   *
8180
            FROM (
8181
                 /* Base Views collapsed */
8182
                 SELECT DISTINCT vi.view_id, vi.view_name,
8183
                             TO_NUMBER (NULL) AS pkg_state,
8184
                             TO_NUMBER (NULL) AS deprecated_state,
8185
                             TO_NUMBER (NULL) AS pv_id,
8186
                             NULL AS pkg_name, NULL AS pkg_version,
8187
                             NULL AS dlocked, NULL AS pv_description
8188
                         FROM release_content rel,
8189
                             view_settings vs,
8190
                             views vi
8191
                        WHERE rel.base_view_id = vi.view_id
8192
                          AND vs.view_id = rel.base_view_id
8193
                          AND vs.user_id = userid
8194
                          AND rtag_id = rtagid
8195
                          AND rel.base_view_id NOT IN (
8196
                               SELECT *
8197
                                 FROM THE
8198
                                       (SELECT CAST
8199
                                               (in_list_number
8200
                                                  (sviewidshowlist
8201
                                                  ) AS relmgr_number_tab_t
8202
                                               )
8203
                                         FROM DUAL
8204
                                       ))
8205
                 UNION
8206
                 /* Base Views expanded */
8207
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
8208
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8209
                      pv.pkg_version, pv.dlocked, pv.pv_description
8210
                  FROM release_content rel,
8211
                      PACKAGES pkg,
8212
                      package_versions pv,
8213
                      views vi,
8214
                      view_settings vs
8215
                  WHERE pv.pkg_id = pkg.pkg_id
8216
                   AND rel.pv_id = pv.pv_id
8217
                   AND rel.base_view_id = vi.view_id
8218
                   AND vs.view_id = vi.view_id
8219
                   AND vs.user_id = userid
8220
                   AND rel.base_view_id IN (
8221
                        SELECT *
8222
                          FROM THE
8223
                                (SELECT CAST
8224
                                        (in_list_number
8225
                                               (sviewidshowlist) AS relmgr_number_tab_t
8226
                                        )
8227
                                  FROM DUAL
8228
                                ))
8229
                   AND rtag_id = rtagid
8230
                 UNION
8231
                 /* Private Views collapsed */
8232
                 SELECT vi.view_id, vi.view_name,
8233
                      TO_NUMBER (NULL) AS pkg_state,
8234
                      TO_NUMBER (NULL) AS deprecated_state,
8235
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
8236
                      NULL AS pkg_version, NULL AS dlocked,
8237
                      NULL AS pv_description
8238
                  FROM view_settings vs,
8239
                      view_def vd,
8240
                      views vi,
8241
                      release_content rel,
8242
                      package_versions pv
8243
                  WHERE vs.view_id = vi.view_id
8244
                   AND rel.pv_id = pv.pv_id
8245
                   AND vd.pkg_id = pv.pkg_id
8246
                   AND vd.view_id = vi.view_id
8247
                   AND vi.base_view = 'N'
8248
                   AND rel.rtag_id = rtagid
8249
                   AND vs.user_id = userid
8250
                   AND vi.view_id NOT IN (
8251
                        SELECT *
8252
                          FROM THE
8253
                                (SELECT CAST
8254
                                        (in_list_number
8255
                                               (sviewidshowlist) AS relmgr_number_tab_t
8256
                                        )
8257
                                  FROM DUAL
8258
                                ))
8259
                 UNION
8260
                 /* Private Views expanded */
8261
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
8262
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8263
                      pv.pkg_version, pv.dlocked, pv.pv_description
8264
                  FROM users usr,
8265
                      view_settings vs,
8266
                      view_def vd,
8267
                      views vi,
8268
                      release_content rel,
8269
                      PACKAGES pkg,
8270
                      package_versions pv
8271
                  WHERE vs.user_id = usr.user_id
8272
                   AND vs.view_id = vi.view_id
8273
                   AND vd.view_id = vi.view_id
8274
                   AND pv.pkg_id = pkg.pkg_id
8275
                   AND rel.pv_id = pv.pv_id
8276
                   AND rel.rtag_id = rtagid
8277
                   AND vd.pkg_id = pkg.pkg_id
8278
                   AND vi.base_view = 'N'
8279
                   AND vi.view_id IN (
8280
                        SELECT *
8281
                          FROM THE
8282
                                (SELECT CAST
8283
                                        (in_list_number
8284
                                               (sviewidshowlist) AS relmgr_number_tab_t
8285
                                        )
8286
                                  FROM DUAL
8287
                                ))
8288
                   AND usr.user_id = userid) ord
8289
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8290
     END IF;
8291
   END;
8292
 
8293
/*-------------------------------------------------------------------------------------------------------*/
8294
   PROCEDURE get_work_in_progress_items (
8295
     viewtype         IN      NUMBER,
8296
     userid           IN      NUMBER,
8297
     rtagid           IN      NUMBER,
8298
     sviewidshowlist  IN      VARCHAR2,
8299
     ntruerecordcount OUT     NUMBER,
8300
     recordset        OUT     typecur
8301
   )
8302
   IS
8303
   BEGIN
8304
     -- Get true record count because views can give false count
8305
     SELECT COUNT (wip.pv_id)
8306
      INTO ntruerecordcount
8307
      FROM work_in_progress wip
8308
      WHERE wip.rtag_id = rtagid;
8309
 
8310
     IF viewtype = 1
8311
     THEN
8312
       /*--- GUEST VIEW ---*/
8313
       OPEN recordset FOR
8314
         SELECT   *
8315
            FROM (
8316
                 /* Base Views collapsed */
8317
                 SELECT DISTINCT vi.view_id, vi.view_name,
8318
                             TO_NUMBER (NULL) AS pkg_state,
8319
                             TO_NUMBER (NULL) AS deprecated_state,
8320
                             TO_NUMBER (NULL) AS pv_id,
8321
                             NULL AS pkg_name, NULL AS pkg_version,
8322
                             NULL AS dlocked, NULL AS pv_description
8323
                         FROM work_in_progress rel, views vi
8324
                        WHERE rel.view_id = vi.view_id
8325
                          AND rtag_id = rtagid
8326
                          AND rel.view_id NOT IN (
8327
                               SELECT *
8328
                                 FROM THE
8329
                                       (SELECT CAST
8330
                                               (in_list_number
8331
                                                  (sviewidshowlist
8332
                                                  ) AS relmgr_number_tab_t
8333
                                               )
8334
                                         FROM DUAL
8335
                                       ))
8336
                 UNION
8337
                 /* Base Views expanded */
8338
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8339
 
8340
                      --rel.pkg_state,
8341
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8342
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8343
                      pv.pv_description
8344
                  FROM work_in_progress rel,
8345
                      PACKAGES pkg,
8346
                      package_versions pv,
8347
                      views vi
8348
                  WHERE pv.pkg_id = pkg.pkg_id
8349
                   AND rel.pv_id = pv.pv_id
8350
                   AND rel.view_id = vi.view_id
8351
                   AND rel.view_id IN (
8352
                        SELECT *
8353
                          FROM THE
8354
                                (SELECT CAST
8355
                                        (in_list_number
8356
                                               (sviewidshowlist) AS relmgr_number_tab_t
8357
                                        )
8358
                                  FROM DUAL
8359
                                ))
8360
                   AND rtag_id = rtagid) ord
8361
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8362
     ELSIF viewtype = 2
8363
     THEN
8364
       /*--- PERSONAL VIEW ---*/
8365
       OPEN recordset FOR
8366
         SELECT   *
8367
            FROM (
8368
                 /* Base Views collapsed */
8369
                 SELECT DISTINCT vi.view_id, vi.view_name,
8370
                             TO_NUMBER (NULL) AS pkg_state,
8371
                             TO_NUMBER (NULL) AS deprecated_state,
8372
                             TO_NUMBER (NULL) AS pv_id,
8373
                             NULL AS pkg_name, NULL AS pkg_version,
8374
                             NULL AS dlocked, NULL AS pv_description
8375
                         FROM work_in_progress rel,
8376
                             view_settings vs,
8377
                             views vi
8378
                        WHERE rel.view_id = vi.view_id
8379
                          AND vs.view_id = rel.view_id
8380
                          AND vs.user_id = userid
8381
                          AND rtag_id = rtagid
8382
                          AND rel.view_id NOT IN (
8383
                               SELECT *
8384
                                 FROM THE
8385
                                       (SELECT CAST
8386
                                               (in_list_number
8387
                                                  (sviewidshowlist
8388
                                                  ) AS relmgr_number_tab_t
8389
                                               )
8390
                                         FROM DUAL
8391
                                       ))
8392
                 UNION
8393
                 /* Base Views expanded */
8394
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8395
 
8396
                      --rel.pkg_state,
8397
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8398
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8399
                      pv.pv_description
8400
                  FROM work_in_progress rel,
8401
                      PACKAGES pkg,
8402
                      package_versions pv,
8403
                      views vi,
8404
                      view_settings vs
8405
                  WHERE pv.pkg_id = pkg.pkg_id
8406
                   AND rel.pv_id = pv.pv_id
8407
                   AND rel.view_id = vi.view_id
8408
                   AND vs.view_id = vi.view_id
8409
                   AND vs.user_id = userid
8410
                   AND rel.view_id IN (
8411
                        SELECT *
8412
                          FROM THE
8413
                                (SELECT CAST
8414
                                        (in_list_number
8415
                                               (sviewidshowlist) AS relmgr_number_tab_t
8416
                                        )
8417
                                  FROM DUAL
8418
                                ))
8419
                   AND rtag_id = rtagid
8420
                 UNION
8421
                 /* Private Views collapsed */
8422
                 SELECT vi.view_id, vi.view_name,
8423
                      TO_NUMBER (NULL) AS pkg_state,
8424
                      TO_NUMBER (NULL) AS deprecated_state,
8425
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
8426
                      NULL AS pkg_version, NULL AS dlocked,
8427
                      NULL AS pv_description
8428
                  FROM view_settings vs,
8429
                      view_def vd,
8430
                      views vi,
8431
                      work_in_progress rel,
8432
                      package_versions pv
8433
                  WHERE vs.view_id = vi.view_id
8434
                   AND rel.pv_id = pv.pv_id
8435
                   AND vd.pkg_id = pv.pkg_id
8436
                   AND vd.view_id = vi.view_id
8437
                   AND vi.base_view = 'N'
8438
                   AND rel.rtag_id = rtagid
8439
                   AND vs.user_id = userid
8440
                   AND vi.view_id NOT IN (
8441
                        SELECT *
8442
                          FROM THE
8443
                                (SELECT CAST
8444
                                        (in_list_number
8445
                                               (sviewidshowlist) AS relmgr_number_tab_t
8446
                                        )
8447
                                  FROM DUAL
8448
                                ))
8449
                 UNION
8450
                 /* Private Views expanded */
8451
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8452
 
8453
                      --rel.pkg_state,
8454
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8455
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8456
                      pv.pv_description
8457
                  FROM users usr,
8458
                      view_settings vs,
8459
                      view_def vd,
8460
                      views vi,
8461
                      work_in_progress rel,
8462
                      PACKAGES pkg,
8463
                      package_versions pv
8464
                  WHERE vs.user_id = usr.user_id
8465
                   AND vs.view_id = vi.view_id
8466
                   AND vd.view_id = vi.view_id
8467
                   AND pv.pkg_id = pkg.pkg_id
8468
                   AND rel.pv_id = pv.pv_id
8469
                   AND rel.rtag_id = rtagid
8470
                   AND vd.pkg_id = pkg.pkg_id
8471
                   AND vi.base_view = 'N'
8472
                   AND vi.view_id IN (
8473
                        SELECT *
8474
                          FROM THE
8475
                                (SELECT CAST
8476
                                        (in_list_number
8477
                                               (sviewidshowlist) AS relmgr_number_tab_t
8478
                                        )
8479
                                  FROM DUAL
8480
                                ))
8481
                   AND usr.user_id = userid) ord
8482
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8483
     END IF;
8484
   END;
8485
 
8486
/*-------------------------------------------------------------------------------------------------------*/
8487
   -- DEVI-45275 added the return of the new "operation" column in the recordset.
8488
 
8489
   PROCEDURE get_pending_items (
8490
     viewtype         IN      NUMBER,
8491
     userid           IN      NUMBER,
8492
     rtagid           IN      NUMBER,
8493
     sviewidshowlist  IN      VARCHAR2,
8494
     ntruerecordcount OUT     NUMBER,
8495
     recordset        OUT     typecur
8496
   )
8497
   IS
8498
   BEGIN
8499
     -- Get true record count because views can give false count
8500
     SELECT COUNT (pl.pv_id)
8501
      INTO ntruerecordcount
8502
      FROM planned pl
8503
      WHERE pl.rtag_id = rtagid;
8504
 
8505
     IF viewtype = 1
8506
     THEN
8507
       /*--- GUEST VIEW ---*/
8508
       OPEN recordset FOR
8509
         SELECT   *
8510
            FROM (
8511
                 /* Base Views collapsed */
8512
                 SELECT DISTINCT vi.view_id, vi.view_name,
8513
                             TO_NUMBER (NULL) AS pkg_state,
8514
                             TO_NUMBER (NULL) AS deprecated_state,
8515
                             TO_NUMBER (NULL) AS pv_id,
8516
                             NULL AS pkg_name, NULL AS pkg_version,
8517
                             NULL AS dlocked, NULL AS pv_description,
8518
                             rel.operation
8519
                         FROM planned rel, views vi
8520
                        WHERE rel.view_id = vi.view_id
8521
                          AND rtag_id = rtagid
8522
                          AND rel.view_id NOT IN (
8523
                               SELECT *
8524
                                 FROM THE
8525
                                       (SELECT CAST
8526
                                               (in_list_number
8527
                                                  (sviewidshowlist
8528
                                                  ) AS relmgr_number_tab_t
8529
                                               )
8530
                                         FROM DUAL
8531
                                       ))
8532
                 UNION
8533
                 /* Base Views expanded */
8534
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8535
 
8536
                      --rel.pkg_state,
8537
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8538
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8539
                      pv.pv_description,
8540
                      rel.operation
8541
                  FROM planned rel,
8542
                      PACKAGES pkg,
8543
                      package_versions pv,
8544
                      views vi
8545
                  WHERE pv.pkg_id = pkg.pkg_id
8546
                   AND rel.pv_id = pv.pv_id
8547
                   AND rel.view_id = vi.view_id
8548
                   AND rel.view_id IN (
8549
                        SELECT *
8550
                          FROM THE
8551
                                (SELECT CAST
8552
                                        (in_list_number
8553
                                               (sviewidshowlist) AS relmgr_number_tab_t
8554
                                        )
8555
                                  FROM DUAL
8556
                                ))
8557
                   AND rtag_id = rtagid) ord
8558
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8559
     ELSIF viewtype = 2
8560
     THEN
8561
       /*--- PERSONAL VIEW ---*/
8562
       OPEN recordset FOR
8563
         SELECT   *
8564
            FROM (
8565
                 /* Base Views collapsed */
8566
                 SELECT DISTINCT vi.view_id, vi.view_name,
8567
                             TO_NUMBER (NULL) AS pkg_state,
8568
                             TO_NUMBER (NULL) AS deprecated_state,
8569
                             TO_NUMBER (NULL) AS pv_id,
8570
                             NULL AS pkg_name, NULL AS pkg_version,
8571
                             NULL AS dlocked, NULL AS pv_description,
8572
                             rel.operation
8573
                         FROM planned rel, view_settings vs, views vi
8574
                        WHERE rel.view_id = vi.view_id
8575
                          AND vs.view_id = rel.view_id
8576
                          AND vs.user_id = userid
8577
                          AND rtag_id = rtagid
8578
                          AND rel.view_id NOT IN (
8579
                               SELECT *
8580
                                 FROM THE
8581
                                       (SELECT CAST
8582
                                               (in_list_number
8583
                                                  (sviewidshowlist
8584
                                                  ) AS relmgr_number_tab_t
8585
                                               )
8586
                                         FROM DUAL
8587
                                       ))
8588
                 UNION
8589
                 /* Base Views expanded */
8590
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8591
 
8592
                      --rel.pkg_state,
8593
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8594
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8595
                      pv.pv_description,
8596
                      rel.operation
8597
                  FROM planned rel,
8598
                      PACKAGES pkg,
8599
                      package_versions pv,
8600
                      views vi,
8601
                      view_settings vs
8602
                  WHERE pv.pkg_id = pkg.pkg_id
8603
                   AND rel.pv_id = pv.pv_id
8604
                   AND rel.view_id = vi.view_id
8605
                   AND vs.view_id = vi.view_id
8606
                   AND vs.user_id = userid
8607
                   AND rel.view_id IN (
8608
                        SELECT *
8609
                          FROM THE
8610
                                (SELECT CAST
8611
                                        (in_list_number
8612
                                               (sviewidshowlist) AS relmgr_number_tab_t
8613
                                        )
8614
                                  FROM DUAL
8615
                                ))
8616
                   AND rtag_id = rtagid
8617
                 UNION
8618
                 /* Private Views collapsed */
8619
                 SELECT vi.view_id, vi.view_name,
8620
                      TO_NUMBER (NULL) AS pkg_state,
8621
                      TO_NUMBER (NULL) AS deprecated_state,
8622
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
8623
                      NULL AS pkg_version, NULL AS dlocked,
8624
                      NULL AS pv_description,
8625
                      rel.operation
8626
                  FROM view_settings vs,
8627
                      view_def vd,
8628
                      views vi,
8629
                      planned rel,
8630
                      package_versions pv
8631
                  WHERE vs.view_id = vi.view_id
8632
                   AND rel.pv_id = pv.pv_id
8633
                   AND vd.pkg_id = pv.pkg_id
8634
                   AND vd.view_id = vi.view_id
8635
                   AND vi.base_view = 'N'
8636
                   AND rel.rtag_id = rtagid
8637
                   AND vs.user_id = userid
8638
                   AND vi.view_id NOT IN (
8639
                        SELECT *
8640
                          FROM THE
8641
                                (SELECT CAST
8642
                                        (in_list_number
8643
                                               (sviewidshowlist) AS relmgr_number_tab_t
8644
                                        )
8645
                                  FROM DUAL
8646
                                ))
8647
                 UNION
8648
                 /* Private Views expanded */
8649
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8650
 
8651
                      --rel.pkg_state,
8652
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8653
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8654
                      pv.pv_description,
8655
                      rel.operation
8656
                  FROM users usr,
8657
                      view_settings vs,
8658
                      view_def vd,
8659
                      views vi,
8660
                      planned rel,
8661
                      PACKAGES pkg,
8662
                      package_versions pv
8663
                  WHERE vs.user_id = usr.user_id
8664
                   AND vs.view_id = vi.view_id
8665
                   AND vd.view_id = vi.view_id
8666
                   AND pv.pkg_id = pkg.pkg_id
8667
                   AND rel.pv_id = pv.pv_id
8668
                   AND rel.rtag_id = rtagid
8669
                   AND vd.pkg_id = pkg.pkg_id
8670
                   AND vi.base_view = 'N'
8671
                   AND vi.view_id IN (
8672
                        SELECT *
8673
                          FROM THE
8674
                                (SELECT CAST
8675
                                        (in_list_number
8676
                                               (sviewidshowlist) AS relmgr_number_tab_t
8677
                                        )
8678
                                  FROM DUAL
8679
                                ))
8680
                   AND usr.user_id = userid) ord
8681
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8682
     END IF;
8683
   END;
8684
 
8685
/*-------------------------------------------------------------------------------------------------------*/
8686
   PROCEDURE get_view_content (
8687
     rtagid     IN      NUMBER,
8688
     viewid     IN      NUMBER,
8689
     recordset OUT     typecur
8690
   )
8691
   IS
8692
     isbaseview   CHAR (1);
8693
   BEGIN
8694
     -- Check if the view is BASE VIEW
8695
     SELECT vi.base_view
8696
      INTO isbaseview
8697
      FROM views vi
8698
      WHERE vi.view_id = viewid;
8699
 
5172 dpurdie 8700
     IF (IsBaseView IN ('Y', 'S'))
1373 dpurdie 8701
     THEN
8702
       -- Get Base view content
8703
       OPEN recordset FOR
8704
         SELECT   DECODE (rel.pkg_state,
8705
                      NULL, 0,
8706
                      rel.pkg_state
8707
                     ) AS pkg_state,
8708
                rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8709
                pv.pkg_version, pv.dlocked, pv.pv_description,
8710
                pv.build_type,
8711
                rel.operation
8712
            FROM environment_view rel, PACKAGES pkg, package_versions pv
8713
            WHERE pv.pkg_id = pkg.pkg_id
8714
             AND rel.pv_id = pv.pv_id
8715
             AND rel.view_id = viewid
8716
             AND rel.rtag_id = rtagid
8717
         ORDER BY UPPER (pkg.pkg_name);
8718
     ELSE
8719
       -- Get non base view content
8720
       OPEN recordset FOR
8721
         SELECT   DECODE (rel.pkg_state,
8722
                      NULL, 0,
8723
                      rel.pkg_state
8724
                     ) AS pkg_state,
8725
                rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8726
                pv.pkg_version, pv.dlocked, pv.pv_description,
8727
                pv.build_type,
8728
                rel.operation
8729
            FROM environment_view rel,
8730
                PACKAGES pkg,
8731
                package_versions pv,
8732
                view_def vd
8733
            WHERE pv.pkg_id = pkg.pkg_id
8734
             AND rel.pv_id = pv.pv_id
8735
             AND rel.rtag_id = rtagid
8736
             AND vd.view_id = viewid
8737
             AND vd.pkg_id = pv.pkg_id
8738
         ORDER BY UPPER (pkg.pkg_name);
8739
     END IF;
8740
   END;
8741
 
8742
/*-------------------------------------------------------------------------------------------------------*/
8743
   FUNCTION get_package_view (pvid IN NUMBER, rtagid IN NUMBER)
8744
     RETURN NUMBER
8745
   IS
8746
     envtab           NUMBER;
8747
     returnvalue      NUMBER;
8748
     return_not_found NUMBER := -1;
8749
   BEGIN
8750
     envtab := get_package_area (pvid, rtagid);
8751
 
8752
     IF envtab = 0
8753
     THEN
8754
       -- WORK IN PROGRESS --
8755
       returnvalue := pk_work_in_progress.get_package_view (pvid, rtagid);
8756
     ELSIF envtab = 1
8757
     THEN
8758
       -- PENDING --
8759
       returnvalue := pk_planned.get_package_view (pvid, rtagid);
8760
     ELSIF envtab = 2
8761
     THEN
8762
       -- RELEASED --
8763
       returnvalue := pk_release.get_package_view (pvid, rtagid);
8764
     ELSE
8765
       -- This may be a Patch not located anywhere but unlocked
8766
       returnvalue := return_not_found;
8767
     END IF;
8768
 
8769
     RETURN returnvalue;
8770
   END;
8771
 
8772
/*-------------------------------------------------------------------------------------------------------*/
5172 dpurdie 8773
  PROCEDURE make_release (
4585 dpurdie 8774
     pvid          IN   NUMBER,                         -- NEW  PKG pvid
8775
     rtagid        IN   NUMBER,                         -- Release Id
8776
     userid        IN   NUMBER                          -- User performing Release
8777
   )
1373 dpurdie 8778
   IS
8779
     viewid        NUMBER;
8780
     envtab        NUMBER;
8781
     ispatch       CHAR (1) := NULL;
8782
     buildtype     CHAR (1) := NULL;
8783
   BEGIN
8784
     -- Check if package is patch
8785
     SELECT pv.is_patch, pv.build_type
8786
      INTO ispatch, buildtype
8787
      FROM package_versions pv
8788
      WHERE pv.pv_id = pvid;
8789
 
8790
     -- Get ViewId
8791
     viewid := get_package_view (pvid, rtagid);
8792
     -- Remove from current area
8793
     envtab := pk_environment.get_package_area (pvid, rtagid);
8794
 
8795
     -- Make sure that package was in work-in-progress or pending before makeing it release
8796
     -- Exclude patches, ripple builds
8797
     IF (envtab < 0)
8798
     THEN
8799
       -- Not found in work-in-progress or pending
8800
       IF (ispatch IS NULL) AND (buildtype = 'M')
8801
       THEN
8802
         raise_application_error (-20000,
8803
                            'This package cannot be released here.'
8804
                           );
8805
       END IF;
8806
     END IF;
8807
 
8808
     -- Log
5172 dpurdie 8809
     --log_action (pvid, 'action', userid, 'Start of Make Package Release...');
1373 dpurdie 8810
 
8811
     IF envtab = 0
8812
     THEN
8813
       -- WORK IN PROGRESS --
8814
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
8815
     ELSIF envtab = 1
8816
     THEN
8817
       -- PENDING --
8818
       pk_planned.remove_package (pvid, rtagid, userid);
8819
     END IF;
8820
 
8821
     -- Change package state
4585 dpurdie 8822
     -- Set dlocked state to mark the package a 'Released and Locked'
1373 dpurdie 8823
     pk_package.change_state (pvid, 'Y', userid);
8824
 
8825
     -- Make sure it is valid BASE VIEW
8826
     IF viewid < 1
8827
     THEN
8828
       viewid := 7;                     -- This is default base view
8829
     END IF;
8830
 
8831
     IF (ispatch IS NULL)
8832
     THEN
4585 dpurdie 8833
       -- Add (Replace) package to new area
1373 dpurdie 8834
       pk_release.add_package (pvid, viewid, rtagid, userid);
8835
     END IF;
8836
 
8837
     -- Now do post Release Actions
8838
     pk_release.run_post_actions (pvid, rtagid);
8839
 
8840
     -- The release has changed and there may now be invalid rtag_id/pv_id combinations in
8841
     -- the DO_NOT_RIPPLE and ADVISORY_RIPPLE Tables so perform a clean-up operation upon them.
8842
     clean_do_not_ripple(rtagid);
8843
     clean_advisory_ripple(rtagid);
8844
 
8845
     -- Log
5172 dpurdie 8846
     --log_action (pvid, 'action', userid, 'End of Make Package Release...');
1373 dpurdie 8847
   END;
8848
 
8849
/*-------------------------------------------------------------------------------------------------------*/
4585 dpurdie 8850
  --  Release a specified package into a specified release
8851
  --
8852
  --  Similar to 'make_release', but it attempts to handle the case where a package-version
8853
  --  is being replaced with one with a different package-suffix, but it doesn't
6031 dpurdie 8854
  --  handle all the cases well.
4585 dpurdie 8855
  --
8856
  --  The current build system cannot do this automatically - yet
8857
  --
8858
  --
1373 dpurdie 8859
   PROCEDURE auto_make_release (
4585 dpurdie 8860
     pvid          IN   NUMBER,                         -- NEW  PKG pvid
8861
     rtagid        IN   NUMBER,                         -- Release Id
8862
     userid        IN   NUMBER,                         -- User performing Release
8863
     vext          IN   package_versions.v_ext%TYPE,    -- Package Extension for original pkg
8864
     ssv_ext       IN   package_versions.v_ext%TYPE,    -- Package Extension for new package
8865
     clonefrompvid IN   NUMBER                          -- PVID of Original
1373 dpurdie 8866
   )
8867
   IS
8868
     viewid        NUMBER;
8869
     envtab        NUMBER;
4585 dpurdie 8870
 
8871
     clone_removal NUMBER := 0;
8872
     clone_viewid  NUMBER := -1;
8873
     clone_envtab  NUMBER := -1;
8874
 
1373 dpurdie 8875
     ispatch       CHAR (1) := NULL;
4585 dpurdie 8876
     buildtype     CHAR (1) := NULL;
8877
 
1373 dpurdie 8878
   BEGIN
8879
     -- Check if package is patch
8880
     SELECT pv.is_patch, pv.build_type
8881
      INTO ispatch, buildtype
8882
      FROM package_versions pv
8883
      WHERE pv.pv_id = pvid;
8884
 
4585 dpurdie 8885
     --
8886
     -- Determine the viewid and environment for the new package
8887
     --
8888
     viewid := get_package_view (pvid, rtagid);
8889
     envtab := pk_environment.get_package_area (pvid, rtagid);
8890
 
8891
     --
8892
     -- If changing pkgExt, then we need to delete the orig package, not just replace it
8893
     --
8894
     IF (clonefrompvid is NOT NULL) AND (vext <> ssv_ext)
1373 dpurdie 8895
     THEN
4585 dpurdie 8896
        clone_removal := 1;
8897
        clone_viewid := get_package_view (clonefrompvid, rtagid);
8898
        clone_envtab := pk_environment.get_package_area (clonefrompvid, rtagid);
1373 dpurdie 8899
     END IF;
8900
 
4585 dpurdie 8901
     --
1373 dpurdie 8902
     -- Make sure that package was in work-in-progress or pending before makeing it release
8903
     -- Exclude patches, ripple builds
4585 dpurdie 8904
     --
1373 dpurdie 8905
     IF (envtab < 0)
8906
     THEN
8907
       -- Not found in work-in-progress or pending
8908
       IF (ispatch IS NULL) AND (buildtype = 'M')
8909
       THEN
8910
         raise_application_error (-20000,
8911
                            'This package cannot be released here.'
8912
                           );
8913
       END IF;
8914
     END IF;
8915
 
8916
     -- Log
5172 dpurdie 8917
     --log_action (pvid, 'action', userid, 'Start of Make Package Release...');
1373 dpurdie 8918
 
4585 dpurdie 8919
     --
8920
     -- Remove the package from the WIP or PENDING tab
6031 dpurdie 8921
     -- Do NOT remove from the release area.
4585 dpurdie 8922
     --     This will be handled later with a process that
8923
     --     will do a 'replace' so that meta data is not lost
8924
     --
8925
    IF envtab = 0
8926
    THEN
8927
        -- WORK IN PROGRESS --
8928
        pk_work_in_progress.remove_package (pvid, rtagid, userid);
8929
    ELSIF envtab = 1
8930
    THEN
8931
        -- PENDING --
8932
        pk_planned.remove_package (pvid, rtagid, userid);
8933
    END IF;
8934
 
8935
    --
8936
    --  If we are changing the pkgExt, then fully remove the base package
8937
    --  This includes removing it from the 'release' area.
8938
    --
8939
    IF clone_removal = 1
8940
    THEN
8941
        IF clone_envtab = 0
8942
        THEN
8943
            -- WORK IN PROGRESS --
8944
            pk_work_in_progress.remove_package (clonefrompvid, rtagid, userid);
8945
        ELSIF clone_envtab = 1
8946
        THEN
8947
            -- PENDING --
8948
            pk_planned.remove_package (clonefrompvid, rtagid, userid);
8949
        ELSIF clone_envtab = 2
8950
        THEN
8951
            -- RELEASED --
8952
            pk_release.remove_package (clonefrompvid, rtagid, userid);
1373 dpurdie 8953
       END IF;
4585 dpurdie 8954
    END IF;
1373 dpurdie 8955
 
8956
     -- Change package state
4585 dpurdie 8957
     -- Set dlocked state to mark the package a 'Released and Locked'
1373 dpurdie 8958
     pk_package.change_state (pvid, 'Y', userid);
8959
 
8960
     -- Make sure it is valid BASE VIEW
4585 dpurdie 8961
     -- If its not specified, give it a default (7) view
1373 dpurdie 8962
     IF viewid < 1
8963
     THEN
4585 dpurdie 8964
        IF clone_viewid >= 0
8965
        THEN
6031 dpurdie 8966
            viewid := clone_viewid;
4585 dpurdie 8967
        ELSE
8968
            viewid := 7;
8969
        END IF;
1373 dpurdie 8970
     END IF;
8971
 
8972
     IF (ispatch IS NULL)
8973
     THEN
4585 dpurdie 8974
       -- Add (Replace) package to new area
1373 dpurdie 8975
       pk_release.add_package (pvid, viewid, rtagid, userid);
8976
     END IF;
8977
 
8978
     -- Now do post Release Actions
8979
     pk_release.run_post_actions (pvid, rtagid);
8980
     -- Now update the Dash_Board Table (DEPRECATED)
8981
     pk_rmapi.update_dash_board (rtagid);
8982
 
8983
     -- The release has changed and there may now be invalid rtag_id/pv_id combinations in
8984
     -- the DO_NOT_RIPPLE and ADVISORY_RIPPLE Tables so perform a clean-up operation upon them.
8985
     clean_do_not_ripple(rtagid);
8986
     clean_advisory_ripple(rtagid);
8987
 
8988
     -- Log
5172 dpurdie 8989
     --log_action (pvid, 'action', userid, 'End of Make Package Release...');
1373 dpurdie 8990
   END;
8991
 
5172 dpurdie 8992
 
1373 dpurdie 8993
/*-------------------------------------------------------------------------------------------------------*/
8994
   PROCEDURE make_unrelease (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
8995
   IS
8996
     viewid   NUMBER;
8997
     envtab   NUMBER;
8998
   BEGIN
8999
     -- Get ViewId
9000
     --ViewId := PK_RELEASE.GET_PACKAGE_VIEW ( PvId, RtagId );
9001
     viewid := get_package_view (pvid, rtagid);
9002
     -- Remove from current area
9003
     envtab := pk_environment.get_package_area (pvid, rtagid);
9004
     -- Log
5172 dpurdie 9005
     -- log_action (pvid, 'action', userid, 'Start of Make Package UnRelease...' );
1373 dpurdie 9006
 
9007
     IF envtab = 2
9008
     THEN
9009
       -- RELEASE AREA --
9010
       pk_release.remove_package (pvid, rtagid, userid);
9011
     ELSIF envtab = 1
9012
     THEN
9013
       -- PENDING --
9014
       pk_planned.remove_package (pvid, rtagid, userid);
9015
     END IF;
9016
 
9017
     -- Change package state
9018
     pk_package.change_state (pvid, 'N', userid);
9019
 
9020
     -- Make sure it is valid BASE VIEW
9021
     IF viewid < 1
9022
     THEN
9023
       viewid := 7;                     -- This is default base view
9024
     END IF;
9025
 
9026
     -- Add package to new area
9027
     pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
9028
     -- Now do post Release Actions
9029
     pk_release.run_post_actions (pvid, rtagid);
6031 dpurdie 9030
 
1373 dpurdie 9031
     -- Log
5172 dpurdie 9032
     -- log_action (pvid, 'action', userid, 'End of Make Package UnRelease...');
1373 dpurdie 9033
   END;
9034
 
9035
/*-------------------------------------------------------------------------------------------------------*/
9036
   PROCEDURE make_pending (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
9037
   IS
9038
     viewid     NUMBER;
9039
     ispatch    CHAR (1) := NULL;
9040
     buildtype  CHAR (1) := NULL;
9041
   BEGIN
9042
     -- Check if package is patch
9043
     SELECT pv.is_patch, pv.build_type
9044
      INTO ispatch, buildtype
9045
      FROM package_versions pv
9046
      WHERE pv.pv_id = pvid;
9047
 
9048
     -- Get ViewId
9049
     viewid := get_package_view (pvid, rtagid);
9050
     --ViewId := PK_WORK_IN_PROGRESS.GET_PACKAGE_VIEW ( PvId, RtagId );
9051
 
9052
     -- Log
5172 dpurdie 9053
     --log_action (pvid, 'action', userid, 'Start of Make Package Pending...');
1373 dpurdie 9054
 
9055
     IF (ispatch IS NULL)
9056
     THEN
9057
       -- Remove from current area
9058
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
9059
       -- Change package state
9060
       pk_package.change_state (pvid, 'P', userid);
9061
       -- Add package to new area
9062
       pk_planned.add_package (pvid, viewid, rtagid, userid);
9063
     END IF;
9064
 
9065
     -- Log
5172 dpurdie 9066
     --log_action (pvid, 'action', userid, 'End of Make Package Pending...');
1373 dpurdie 9067
   END;
9068
 
9069
/*-------------------------------------------------------------------------------------------------------*/
9070
   PROCEDURE make_approved (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
9071
   IS
9072
   BEGIN
9073
     -- Log
5172 dpurdie 9074
     -- log_action (pvid, 'action', userid, 'Start of Package Pending Approval...' );
1373 dpurdie 9075
     -- Change package state
9076
     pk_package.change_state (pvid, 'A', userid);
6031 dpurdie 9077
 
5172 dpurdie 9078
     -- Flag Release has changed for the purposes of building
9079
     PK_RELEASE.SET_RELEASE_MODIFIED(rtagid);
6031 dpurdie 9080
 
1373 dpurdie 9081
     -- Log
5172 dpurdie 9082
     -- log_action (pvid, 'action', userid, 'End of Package Pending Approval...');
1373 dpurdie 9083
   END;
9084
 
9085
/*-------------------------------------------------------------------------------------------------------*/
9086
   PROCEDURE make_reject (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
9087
   IS
9088
     viewid   NUMBER;
9089
     operation CHAR;
9090
   BEGIN
9091
     -- Get ViewId
9092
     viewid := get_package_view (pvid, rtagid);
9093
     -- ViewId := PK_PLANNED.GET_PACKAGE_VIEW ( PvId, RtagId );
9094
 
9095
     -- DEVI-45275
9096
     -- If the package version is an official version that is to be rejected from a merge operation
9097
     -- then find out in order to prevent it being added back to work-in-progress table . This will
9098
     -- be denoted by the operation field in the planned table being A or S
9099
     operation := ' ';
9100
     SELECT
9101
     (CASE WHEN pl.operation IS NOT NULL THEN pl.operation ELSE ' ' END) INTO operation
9102
     FROM planned pl
9103
     WHERE pl.PV_ID = pvid
9104
     AND pl.RTAG_ID = rtagid;
9105
 
9106
     -- Log
5172 dpurdie 9107
     -- log_action (pvid, 'action', userid, 'Start of Reject Package...');
6031 dpurdie 9108
 
1373 dpurdie 9109
     -- Remove from current area
9110
     pk_planned.remove_package (pvid, rtagid, userid);
9111
 
9112
     -- DEVI-45275 - Prevent merge candidate from being added back to work-in-progress table .
9113
     IF operation <> 'A' AND operation <> 'S'
9114
     THEN
9115
     -- Change package state
9116
     pk_package.change_state (pvid, 'R', userid);
9117
     -- Add package to new area
9118
     pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
9119
     ELSE
9120
      log_action (pvid, 'action', userid, 'Rejected Package Merge');
9121
     END IF;
6031 dpurdie 9122
 
1373 dpurdie 9123
     -- Log
5172 dpurdie 9124
     -- log_action (pvid, 'action', userid, 'End of Reject Package...');
1373 dpurdie 9125
   END;
9126
 
9127
/*-------------------------------------------------------------------------------------------------------*/
9128
   PROCEDURE change_package_view (
9129
     pvid       IN   NUMBER,
9130
     rtagid     IN   NUMBER,
9131
     newviewid  IN   NUMBER
9132
   )
9133
   IS
9134
     envtab   NUMBER;
9135
   BEGIN
9136
     envtab := pk_environment.get_package_area (pvid, rtagid);
9137
 
9138
     IF envtab = 0
9139
     THEN
9140
       -- WORK IN PROGRESS --
9141
       pk_work_in_progress.change_package_view (pvid, rtagid, newviewid);
9142
     ELSIF envtab = 1
9143
     THEN
9144
       -- PENDING --
9145
       pk_planned.change_package_view (pvid, rtagid, newviewid);
9146
     ELSIF envtab = 2
9147
     THEN
9148
       -- RELEASED --
9149
       pk_release.change_package_view (pvid, rtagid, newviewid);
9150
     END IF;
9151
   END;
9152
 
9153
/*-------------------------------------------------------------------------------------------------------*/
9154
   PROCEDURE find_package (
9155
     skeyword     IN      VARCHAR2,
9156
     nrtagid      IN      NUMBER,
9157
     nsearcharea  IN      NUMBER,
9158
     recordset    OUT     typecur
9159
   )
9160
   IS
9161
   BEGIN
9162
     IF nsearcharea = 0
9163
     THEN
9164
       /* Search Work In Progress */
9165
       OPEN recordset FOR
9166
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
9167
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
9168
                pv.modified_stamp, usr.full_name, usr.user_email
9169
           FROM views vi,
9170
                work_in_progress rc,
9171
                PACKAGES pkg,
9172
                package_versions pv,
9173
                users usr
9174
          WHERE rc.view_id = vi.view_id
9175
            AND rc.pv_id = pv.pv_id
9176
            AND pkg.pkg_id = pv.pkg_id
9177
            AND pv.modifier_id = usr.user_id
9178
            AND rc.rtag_id = nrtagid
9179
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
9180
       ORDER BY UPPER (pkg.pkg_name);
9181
     ELSIF nsearcharea = 1
9182
     THEN
9183
       /* Search Pending */
9184
       OPEN recordset FOR
9185
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
9186
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
9187
                pv.modified_stamp, usr.full_name, usr.user_email
9188
           FROM views vi,
9189
                planned rc,
9190
                PACKAGES pkg,
9191
                package_versions pv,
9192
                users usr
9193
          WHERE rc.view_id = vi.view_id
9194
            AND rc.pv_id = pv.pv_id
9195
            AND pkg.pkg_id = pv.pkg_id
9196
            AND pv.modifier_id = usr.user_id
9197
            AND rc.rtag_id = nrtagid
9198
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
9199
       ORDER BY UPPER (pkg.pkg_name);
9200
     ELSIF nsearcharea = 2
9201
     THEN
9202
       /* Search Released */
9203
       OPEN recordset FOR
9204
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
9205
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
9206
                pv.modified_stamp, usr.full_name, usr.user_email
9207
           FROM views vi,
9208
                release_content rc,
9209
                PACKAGES pkg,
9210
                package_versions pv,
9211
                users usr
9212
          WHERE rc.base_view_id = vi.view_id
9213
            AND rc.pv_id = pv.pv_id
9214
            AND pkg.pkg_id = pv.pkg_id
9215
            AND pv.modifier_id = usr.user_id
9216
            AND rc.rtag_id = nrtagid
9217
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
9218
         ORDER BY UPPER (pkg.pkg_name);
9219
     ELSIF nsearcharea = 3
9220
     THEN
9221
       /* Search ALL */
9222
       OPEN recordset FOR
9223
         SELECT rc.env_area, vi.view_name, pv.dlocked, pkg.pkg_name,
9224
                pv.pv_id, pv.pkg_version, pv.comments,
9225
                pv.modified_stamp, usr.full_name, usr.user_email
9226
           FROM views vi,
9227
                environment_view rc,
9228
                PACKAGES pkg,
9229
                package_versions pv,
9230
                users usr
9231
          WHERE rc.view_id = vi.view_id
9232
            AND rc.pv_id = pv.pv_id
9233
            AND pkg.pkg_id = pv.pkg_id
9234
            AND pv.modifier_id = usr.user_id
9235
            AND rc.rtag_id = nrtagid
9236
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
9237
         ORDER BY UPPER (pkg.pkg_name);
9238
     END IF;
9239
   END;
9240
 
9241
/*-------------------------------------------------------------------------------------------------------*/
9242
   PROCEDURE find_file (
9243
     skeyword     IN      VARCHAR2,
9244
     nrtagid      IN      NUMBER,
9245
     nsearcharea  IN      NUMBER,
9246
     npagesize    IN      NUMBER,
9247
     recordset    OUT     typecur
9248
   )
9249
   IS
9250
   BEGIN
9251
     IF nsearcharea = 0
9252
     THEN
9253
       /* Search Work In Progress */
9254
       OPEN recordset FOR
9255
         SELECT   qry.*
9256
            FROM (
9257
                 /* File search on Packages */
9258
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9259
                        pv.pv_id, pv.pkg_version, art.crc_cksum
9260
                   FROM work_in_progress rc,
9261
                        PACKAGES pkg,
9262
                        package_versions pv,
9263
                        release_components art
9264
                  WHERE rc.pv_id = art.pv_id
9265
                    AND pv.pkg_id = pkg.pkg_id
9266
                    AND rc.pv_id = pv.pv_id
9267
                    AND rc.rtag_id = nrtagid
9268
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9269
                 UNION ALL
9270
                 /* File search on Products */
9271
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9272
                        pv.pv_id, pv.pkg_version, art.crc_cksum
9273
                   FROM work_in_progress rc,
9274
                        PACKAGES pkg,
9275
                        package_versions pv,
9276
                        product_components art
9277
                  WHERE rc.pv_id = art.pv_id
9278
                    AND pv.pkg_id = pkg.pkg_id
9279
                    AND rc.pv_id = pv.pv_id
9280
                    AND rc.rtag_id = nrtagid
9281
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
9282
            WHERE ROWNUM <= npagesize
9283
         ORDER BY UPPER (qry.pkg_name);
9284
     ELSIF nsearcharea = 1
9285
     THEN
9286
       /* Search Pending */
9287
       OPEN recordset FOR
9288
         SELECT   qry.*
9289
            FROM (
9290
                 /* File search on Packages */
9291
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9292
                        pv.pv_id, pv.pkg_version, art.crc_cksum
9293
                   FROM planned rc,
9294
                        PACKAGES pkg,
9295
                        package_versions pv,
9296
                        release_components art
9297
                  WHERE rc.pv_id = art.pv_id
9298
                    AND pv.pkg_id = pkg.pkg_id
9299
                    AND rc.pv_id = pv.pv_id
9300
                    AND rc.rtag_id = nrtagid
9301
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9302
                 UNION ALL
9303
                 /* File search on Products */
9304
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9305
                        pv.pv_id, pv.pkg_version, art.crc_cksum
9306
                   FROM planned rc,
9307
                        PACKAGES pkg,
9308
                        package_versions pv,
9309
                        product_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)) qry
9315
            WHERE ROWNUM <= npagesize
9316
         ORDER BY UPPER (qry.pkg_name);
9317
     ELSIF nsearcharea = 2
9318
     THEN
9319
       /* Search Released */
9320
       OPEN recordset FOR
9321
         SELECT   qry.*
9322
            FROM (
9323
                 /* File search on Packages */
9324
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9325
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9326
                        NULL AS patch_id
9327
                   FROM release_content rc,
9328
                        PACKAGES pkg,
9329
                        package_versions pv,
9330
                        release_components art
9331
                  WHERE rc.pv_id = art.pv_id
9332
                    AND pv.pkg_id = pkg.pkg_id
9333
                    AND rc.pv_id = pv.pv_id
9334
                    AND rc.rtag_id = nrtagid
9335
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9336
                 UNION ALL
9337
                 /* File search on Products */
9338
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9339
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9340
                        NULL AS patch_id
9341
                   FROM release_content rc,
9342
                        PACKAGES pkg,
9343
                        package_versions pv,
9344
                        product_components art
9345
                  WHERE rc.pv_id = art.pv_id
9346
                    AND pv.pkg_id = pkg.pkg_id
9347
                    AND rc.pv_id = pv.pv_id
9348
                    AND rc.rtag_id = nrtagid
9349
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9350
                 UNION ALL
9351
                 /* File search on Patches */
9352
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9353
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9354
                        DECODE (art.file_path,
9355
                                NULL, pp.patch_id,
9356
                                NULL
9357
                                ) AS patch_id
9358
                   FROM release_content rc,
9359
                        PACKAGES pkg,
9360
                        package_versions pv,
9361
                        release_components art,
9362
                        package_patches pp
9363
                  WHERE pv.pv_id = pp.pv_id
9364
                    AND pv.pkg_id = pkg.pkg_id
9365
                    AND rc.rtag_id = nrtagid
9366
                    AND art.pv_id = pp.patch_id
9367
                    AND rc.pv_id = pp.pv_id
9368
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
9369
            WHERE ROWNUM <= npagesize
9370
         ORDER BY UPPER (qry.pkg_name);
9371
     ELSIF nsearcharea = 3
9372
     THEN
9373
       /* Search ALL */
9374
       OPEN recordset FOR
9375
         SELECT   qry.*
9376
            FROM (
9377
                 /* File search on Packages */
9378
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9379
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9380
                        NULL AS patch_id
9381
                   FROM environment_view rc,
9382
                        PACKAGES pkg,
9383
                        package_versions pv,
9384
                        release_components art
9385
                  WHERE rc.pv_id = art.pv_id
9386
                    AND pv.pkg_id = pkg.pkg_id
9387
                    AND rc.pv_id = pv.pv_id
9388
                    AND rc.rtag_id = nrtagid
9389
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9390
                 UNION ALL
9391
                 /* File search on Products */
9392
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9393
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9394
                        NULL AS patch_id
9395
                   FROM environment_view rc,
9396
                        PACKAGES pkg,
9397
                        package_versions pv,
9398
                        product_components art
9399
                  WHERE rc.pv_id = art.pv_id
9400
                    AND pv.pkg_id = pkg.pkg_id
9401
                    AND rc.pv_id = pv.pv_id
9402
                    AND rc.rtag_id = nrtagid
9403
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9404
                 UNION ALL
9405
                 /* File search on Patches */
9406
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9407
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9408
                        DECODE (art.file_path,
9409
                                NULL, pp.patch_id,
9410
                                NULL
9411
                               ) AS patch_id
9412
                   FROM release_content rc,
9413
                        PACKAGES pkg,
9414
                        package_versions pv,
9415
                        release_components art,
9416
                        package_patches pp
9417
                  WHERE pv.pv_id = pp.pv_id
9418
                    AND pv.pkg_id = pkg.pkg_id
9419
                    AND rc.rtag_id = nrtagid
9420
                    AND art.pv_id = pp.patch_id
9421
                    AND rc.pv_id = pp.pv_id
9422
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
9423
            WHERE ROWNUM <= npagesize
9424
         ORDER BY UPPER (qry.pkg_name);
9425
     END IF;
9426
   END;
9427
 
9428
/*-------------------------------------------------------------------------------------------------------*/
9429
   PROCEDURE get_prodrelease_items (
9430
     rtagid           IN      NUMBER,
9431
     ntruerecordcount OUT     NUMBER,
9432
     recordset        OUT     typecur
9433
   )
9434
   IS
9435
   BEGIN
9436
     -- Get true record count n the number of integration products
9437
     SELECT COUNT (rc.pv_id)
9438
      INTO ntruerecordcount
9439
      FROM release_content rc
9440
      WHERE rc.rtag_id = rtagid;
9441
 
9442
     OPEN recordset FOR
9443
       SELECT vi.view_id, vi.view_name, rel.pkg_state,   --rel.pkg_state,
9444
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9445
              pv.pkg_version, pv.dlocked, pv.pv_description
9446
         FROM release_content rel,
9447
              PACKAGES pkg,
9448
              package_versions pv,
9449
              views vi
9450
        WHERE pv.pkg_id = pkg.pkg_id
9451
          AND rel.pv_id = pv.pv_id
9452
          AND rel.base_view_id = vi.view_id
9453
          AND pv.is_deployable = 'Y'
9454
          AND rtag_id = rtagid
9455
          AND pv.pv_id NOT IN (SELECT DISTINCT prod_id
9456
                                 FROM deployment_manager.os_contents)
9457
          AND rel.product_state IS NULL
9458
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9459
   END;
9460
 
9461
/*-------------------------------------------------------------------------------------------------------*/
9462
   PROCEDURE get_integration_items (
9463
     rtagid           IN      NUMBER,
9464
     ntruerecordcount OUT     NUMBER,
9465
     recordset        OUT     typecur
9466
   )
9467
   IS
9468
   BEGIN
9469
     -- Get true record count n the number of integration products
9470
     SELECT COUNT (rc.pv_id)
9471
      INTO ntruerecordcount
9472
      FROM release_content rc
9473
      WHERE rc.rtag_id = rtagid AND rc.product_state = 1;
9474
 
9475
     OPEN recordset FOR
9476
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9477
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9478
              pv.pkg_version, pv.dlocked, pv.pv_description
9479
         FROM release_content rel,
9480
              PACKAGES pkg,
9481
              package_versions pv,
9482
              views vi
9483
        WHERE pv.pkg_id = pkg.pkg_id
9484
          AND rel.pv_id = pv.pv_id
9485
          AND rel.base_view_id = vi.view_id
9486
          AND pv.is_deployable = 'Y'
9487
          AND rtag_id = rtagid
9488
          AND rel.product_state IN (1, 5)
9489
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9490
   END;
9491
 
9492
/*-------------------------------------------------------------------------------------------------------*/
9493
   PROCEDURE get_test_items (
9494
     rtagid           IN      NUMBER,
9495
     ntruerecordcount OUT     NUMBER,
9496
     recordset        OUT     typecur
9497
   )
9498
   IS
9499
   BEGIN
9500
     -- Get true record count n the number of test products
9501
     SELECT COUNT (rc.pv_id)
9502
      INTO ntruerecordcount
9503
      FROM release_content rc
9504
      WHERE rc.rtag_id = rtagid AND rc.product_state = 2;
9505
 
9506
     OPEN recordset FOR
9507
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9508
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9509
              pv.pkg_version, pv.dlocked, pv.pv_description
9510
         FROM release_content rel,
9511
              PACKAGES pkg,
9512
              package_versions pv,
9513
              views vi
9514
        WHERE pv.pkg_id = pkg.pkg_id
9515
          AND rel.pv_id = pv.pv_id
9516
          AND rel.base_view_id = vi.view_id
9517
          AND pv.is_deployable = 'Y'
9518
          AND rtag_id = rtagid
9519
          AND rel.product_state = 2
9520
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9521
   END;
9522
 
9523
/*-------------------------------------------------------------------------------------------------------*/
9524
   PROCEDURE get_deploy_items (
9525
     rtagid           IN      NUMBER,
9526
     ntruerecordcount OUT     NUMBER,
9527
     recordset        OUT     typecur
9528
   )
9529
   IS
9530
   BEGIN
9531
     -- Get true record count n the number of deploy products
9532
     SELECT COUNT (rc.pv_id)
9533
      INTO ntruerecordcount
9534
      FROM release_content rc
9535
      WHERE rc.rtag_id = rtagid AND rc.product_state = 3;
9536
 
9537
     OPEN recordset FOR
9538
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9539
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9540
              pv.pkg_version, pv.dlocked, pv.pv_description
9541
         FROM release_content rel,
9542
              PACKAGES pkg,
9543
              package_versions pv,
9544
              views vi
9545
        WHERE pv.pkg_id = pkg.pkg_id
9546
          AND rel.pv_id = pv.pv_id
9547
          AND rel.base_view_id = vi.view_id
9548
          AND pv.is_deployable = 'Y'
9549
          AND rtag_id = rtagid
9550
          AND rel.product_state IN (3, 5)
9551
          AND pv.pv_id NOT IN (SELECT DISTINCT prod_id
9552
                                 FROM deployment_manager.os_contents)
9553
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9554
   END;
9555
 
9556
/*-------------------------------------------------------------------------------------------------------*/
9557
   PROCEDURE get_reject_items (
9558
     rtagid           IN      NUMBER,
9559
     ntruerecordcount OUT     NUMBER,
9560
     recordset        OUT     typecur
9561
   )
9562
   IS
9563
   BEGIN
9564
     -- Get true record count n the number of reject products
9565
     SELECT COUNT (rc.pv_id)
9566
       INTO ntruerecordcount
9567
       FROM release_content rc
9568
      WHERE rc.rtag_id = rtagid AND rc.product_state = 4;
9569
 
9570
     OPEN recordset FOR
9571
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9572
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9573
              pv.pkg_version, pv.dlocked, pv.pv_description
9574
         FROM release_content rel,
9575
              PACKAGES pkg,
9576
              package_versions pv,
9577
              views vi
9578
        WHERE pv.pkg_id = pkg.pkg_id
9579
          AND rel.pv_id = pv.pv_id
9580
          AND rel.base_view_id = vi.view_id
9581
          AND pv.is_deployable = 'Y'
9582
          AND rtag_id = rtagid
9583
          AND rel.product_state = 4
9584
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9585
   END;
9586
/*-------------------------------------------------------------------------------------------------------*/
9587
   -- DEVI-45275 - this procedure performs the merge of an existing package version in the planned table
9588
   -- to the release_content table.
9589
 
9590
  PROCEDURE approve_merge (
9591
   PvId    IN NUMBER,
9592
   RtagId  IN NUMBER,
9593
   UserId  IN NUMBER
9594
  )
9595
  IS
9596
   viewid        NUMBER;
9597
   envtab        NUMBER;
9598
   oper         CHAR;
9599
  BEGIN
9600
      -- Get ViewId
9601
     viewid := get_package_view (pvid, rtagid);
9602
 
9603
     -- Get the view tab
9604
     envtab := pk_environment.get_package_area (pvid, rtagid);
9605
 
9606
     -- Make sure that package was in pending before merging it to released
9607
     IF (envtab <> 1)
9608
     THEN
9609
       -- Not found in pending
9610
       raise_application_error (-20000,
9611
                          'This package cannot be released here.'
9612
                         );
9613
     END IF;
9614
 
9615
     -- Log
5172 dpurdie 9616
     --log_action (pvid, 'action', userid, 'Start of Package Merge...');
1373 dpurdie 9617
 
9618
     -- Get the planned operation type A=Add, S=Subtract
9619
     SELECT ev.operation INTO oper
9620
       FROM environment_view ev
9621
      WHERE ev.rtag_id = RtagId
9622
        AND ev.pv_id = PvId
9623
        AND (ev.operation = 'A' OR ev.operation = 'S');
9624
 
9625
     -- Remove from Pending
9626
     pk_planned.remove_package (PvId, RtagId, UserId);
9627
 
9628
     -- Either add to the release, or remove from the release as the operation commands
9629
     IF oper = 'A'
9630
     THEN
9631
       pk_release.add_package(PvId, viewId, RtagId, UserId);
9632
 
9633
     ELSIF oper = 'S'
9634
     THEN
9635
       pk_release.remove_package(PvId, RtagId, UserId);
9636
 
9637
       -- Delete old package's pegging info
9638
       DELETE FROM PEGGED_VERSIONS pegv WHERE pegv.RTAG_ID = RtagId AND pegv.PV_ID = PvId;
9639
 
9640
       -- Delete old package's advisory ripple info
9641
       DELETE FROM ADVISORY_RIPPLE avr WHERE avr.RTAG_ID = RtagId AND avr.PV_ID = PvId;
9642
     END IF;
9643
 
9644
     touch_release(RtagId);
9645
 
9646
     -- Log
5172 dpurdie 9647
     --log_action (pvid, 'action', userid, 'End of Package Merge...');
1373 dpurdie 9648
  END;
9649
/*-------------------------------------------------------------------------------------------------------*/
9650
END pk_environment;
4040 dpurdie 9651
 
1374 dpurdie 9652
/
4040 dpurdie 9653
--------------------------------------------------------
9654
--  DDL for Package Body PK_LICENCING
9655
--------------------------------------------------------
9656
 
5172 dpurdie 9657
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_LICENCING" IS
1373 dpurdie 9658
 
9659
/*
9660
------------------------------
3959 dpurdie 9661
||  Last Modified:  G.Huddy
9662
||  Modified Date:  19/Aug/2008
1373 dpurdie 9663
||  Body Version:   1.0
9664
------------------------------
9665
*/
9666
 
3959 dpurdie 9667
   PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) IS
9668
   BEGIN
9669
      IF IS_LICENCED(PvId, licenceId) = 0 THEN
9670
         -- Add entry to licencing table
9671
         INSERT INTO licencing (pv_id, licence)
9672
         VALUES (PvId, licenceId);
1373 dpurdie 9673
 
3959 dpurdie 9674
         -- log action
9675
         -- TODO
9676
      END IF;
1373 dpurdie 9677
 
3959 dpurdie 9678
   END;
1373 dpurdie 9679
 
9680
/*-------------------------------------------------------------------------------------------------------*/
9681
 
3959 dpurdie 9682
   PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) IS
9683
   BEGIN
9684
      IF NOT IS_LICENCED(PvId, licenceId) = 0 THEN
9685
         -- Delete entry from licencing table
9686
         DELETE FROM licencing
9687
         WHERE pv_id = PvId
9688
         AND licence = licenceId;
1373 dpurdie 9689
 
3959 dpurdie 9690
         -- log action
9691
         -- TODO
9692
      END IF;
9693
   END;
1373 dpurdie 9694
 
9695
/*-------------------------------------------------------------------------------------------------------*/
9696
 
3959 dpurdie 9697
   PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 9698
 
3959 dpurdie 9699
      CURSOR licencing_cur
9700
      IS
9701
         SELECT *
9702
         FROM licencing
9703
         WHERE pv_id = fromPvId;
1373 dpurdie 9704
 
3959 dpurdie 9705
      licencing_rec licencing_cur%ROWTYPE;
1373 dpurdie 9706
 
9707
   BEGIN
3959 dpurdie 9708
      -- For each licence association that the Last PV_ID had, create a similar
9709
      -- arrangement for the new PV_ID
9710
      -- NOTE that any additional licencing associations the new PV_ID has that the old one
9711
      -- does not have, are retained. The assumption is that the user has made those and so we do not
9712
      -- have any right to destroy them without asking them.
9713
      OPEN licencing_cur;
1373 dpurdie 9714
 
3959 dpurdie 9715
      FETCH licencing_cur
9716
      INTO licencing_rec;
1373 dpurdie 9717
 
3959 dpurdie 9718
      WHILE licencing_cur%FOUND
1373 dpurdie 9719
      LOOP
3959 dpurdie 9720
         ADD_LICENCE ( toPvId, licencing_rec.licence, UserId );
1373 dpurdie 9721
 
3959 dpurdie 9722
         FETCH licencing_cur
9723
         INTO licencing_rec;
1373 dpurdie 9724
      END LOOP;
9725
   END;
9726
 
9727
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 9728
 
9729
   FUNCTION IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER IS
9730
      found NUMBER;
1373 dpurdie 9731
   BEGIN
9732
 
3959 dpurdie 9733
      SELECT COUNT(*) INTO found
9734
      FROM licencing
9735
      WHERE pv_id = PvId
9736
      AND licence = LicenceId;
1373 dpurdie 9737
 
3959 dpurdie 9738
      RETURN found;
1373 dpurdie 9739
   END;
9740
 
9741
/*-------------------------------------------------------------------------------------------------------*/
9742
 
3959 dpurdie 9743
   PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 9744
 
3959 dpurdie 9745
      CURSOR licencing_cur
9746
      IS
1373 dpurdie 9747
         SELECT *
3959 dpurdie 9748
         FROM licencing
9749
         WHERE pv_id = PvId;
1373 dpurdie 9750
 
3959 dpurdie 9751
      licencing_rec licencing_cur%ROWTYPE;
9752
   BEGIN
9753
      -- For each licence association that the PV_ID had, remove it
9754
      OPEN licencing_cur;
1373 dpurdie 9755
 
3959 dpurdie 9756
      FETCH licencing_cur
9757
      INTO licencing_rec;
1373 dpurdie 9758
 
3959 dpurdie 9759
      WHILE licencing_cur%FOUND
9760
      LOOP
9761
         REMOVE_LICENCE ( PvId, licencing_rec.licence, UserId );
1373 dpurdie 9762
 
3959 dpurdie 9763
         FETCH licencing_cur
9764
         INTO licencing_rec;
9765
      END LOOP;
1373 dpurdie 9766
   END;
9767
 
9768
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 9769
END PK_LICENCING;
4040 dpurdie 9770
 
1374 dpurdie 9771
/
4040 dpurdie 9772
--------------------------------------------------------
9773
--  DDL for Package Body PK_PACKAGE
9774
--------------------------------------------------------
9775
 
5172 dpurdie 9776
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PACKAGE" 
1373 dpurdie 9777
IS
9778
   /*-------------------------------------------------------------------------------------------------------*/
9779
   PROCEDURE new_version (
9780
      nlastpvid                   IN       NUMBER,
9781
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
9782
      cbuildtype                  IN       CHAR,
4211 dpurdie 9783
      cchangetype                 IN       CHAR,
1373 dpurdie 9784
      nsettopvid                  IN       NUMBER DEFAULT NULL,
9785
      nrtagid                     IN       NUMBER,
9786
      nuserid                     IN       NUMBER,
9787
      enumissues_state_imported   IN       NUMBER,
9788
      returnpvid                  OUT      NUMBER
9789
   )
9790
   IS
3959 dpurdie 9791
      origpkg_id                  package_versions.pkg_id%TYPE;
9792
      origdlocked                 package_versions.dlocked%TYPE;
9793
      ssv_mm                      package_versions.v_mm%TYPE;
9794
      ssv_nmm                     package_versions.v_nmm%TYPE;
9795
      ssv_ext                     package_versions.v_ext%TYPE;
9796
      spackageversion             VARCHAR2 (4000);
9797
      nissuestypes                NUMBER;
9798
      nviewid                     NUMBER;
9799
      reccount                    NUMBER;
9800
      isreleased                  package_versions.dlocked%TYPE := 'N';
9801
      slabel                      VARCHAR2 (4000)               := NULL;
4211 dpurdie 9802
      uchangetype                 CHAR := cchangetype;
1373 dpurdie 9803
 
9804
      CURSOR package_versions_cur
9805
      IS
9806
         SELECT pv.pv_id, pv.is_patch, pv.dlocked
9807
           FROM package_versions pv
9808
          WHERE pv.pkg_version = snewpkgversion
9809
            AND pv.pkg_id IN (SELECT DISTINCT origpv.pkg_id
9810
                                         FROM package_versions origpv
9811
                                        WHERE origpv.pv_id = nlastpvid);
9812
 
3959 dpurdie 9813
      package_versions_rec package_versions_cur%ROWTYPE;
1373 dpurdie 9814
 
9815
      CURSOR clone_package_versions_cur
9816
      IS
9817
         SELECT DISTINCT pkg_id, dlocked
9818
                    FROM package_versions
9819
                   WHERE pv_id = nlastpvid;
9820
 
3959 dpurdie 9821
      clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
1373 dpurdie 9822
   BEGIN
9823
      spackageversion := snewpkgversion;
9824
 
9825
      IF nsettopvid IS NULL
9826
      THEN
9827
         -- SetToPv_id is not supplied, hence proceed.
9828
 
9829
         /* ---------------------------------------------------- */
3959 dpurdie 9830
         /* Find id package_version exists                       */
9831
         /* ---------------------------------------------------- */
1373 dpurdie 9832
         OPEN package_versions_cur;
9833
 
9834
         FETCH package_versions_cur
9835
          INTO package_versions_rec;
9836
 
9837
         IF package_versions_cur%NOTFOUND
9838
         THEN
9839
            ---  Create brand new package ---
9840
            SELECT seq_pv_id.NEXTVAL
9841
              INTO returnpvid
9842
              FROM DUAL;
9843
 
9844
            -- Split Version to get extention + other
9845
            split_version (spackageversion, ssv_mm, ssv_nmm, ssv_ext);
9846
 
9847
            -- Get previous package to clone from
9848
            OPEN clone_package_versions_cur;
9849
 
9850
            FETCH clone_package_versions_cur
9851
             INTO clone_package_versions_rec;
9852
 
9853
            origpkg_id := clone_package_versions_rec.pkg_id;
9854
            origdlocked := clone_package_versions_rec.dlocked;
9855
 
9856
            CLOSE clone_package_versions_cur;
9857
 
9858
            -- Automated built config
4211 dpurdie 9859
            IF ( cbuildtype = 'M' ) THEN
9860
              uchangetype := 'F';
6031 dpurdie 9861
            END IF;
9862
 
4211 dpurdie 9863
            -- Automated version numbering
9864
            -- Make sure that version is still unique
9865
            IF (uchangetype != 'F') THEN
9866
              spackageversion := '(' || returnpvid || ')' || ssv_ext;
1373 dpurdie 9867
            END IF;
9868
 
6031 dpurdie 9869
 
1373 dpurdie 9870
            -- Clone Package Version Details --
3959 dpurdie 9871
            INSERT INTO package_versions(pv_id, pkg_id, pkg_version, dlocked, created_stamp,
9872
                                         creator_id, modified_stamp, modifier_id, v_mm, v_nmm,
9873
                                         v_ext, src_path, pv_description, pv_overview,
9874
                                         last_pv_id, owner_id, is_deployable,
6031 dpurdie 9875
                                         is_build_env_required, build_type, change_type,
5892 dpurdie 9876
                                         bs_id, is_autobuildable, ripple_field, build_time)
3959 dpurdie 9877
                 SELECT returnpvid AS pv_id, origpkg_id AS pkg_id,
9878
                        spackageversion AS pkg_version, 'N' AS dlocked,
9879
                        ora_sysdate AS created_stamp, nuserid AS creator_id,
9880
                        ora_sysdatetime AS modified_stamp,
9881
                        nuserid AS modifier_id, ssv_mm AS v_mm,
9882
                        ssv_nmm AS v_nmm, ssv_ext AS v_ext, pv.src_path,
9883
                        pv.pv_description, pv.pv_overview,
9884
                        nlastpvid AS last_pv_id, pv.owner_id, pv.is_deployable,
6031 dpurdie 9885
                        pv.is_build_env_required, cbuildtype, uchangetype,
5892 dpurdie 9886
                        pv.bs_id, pv.is_autobuildable, pv.ripple_field, pv.build_time
3959 dpurdie 9887
                   FROM package_versions pv
9888
                  WHERE pv.pv_id = nlastpvid;
1373 dpurdie 9889
 
9890
            -- Set Issues Type for cloning ---
9891
            IF origdlocked = 'Y'
9892
            THEN
9893
               nissuestypes := enumissues_state_imported;
9894
            ELSE
9895
               nissuestypes := NULL;
9896
            END IF;
9897
 
9898
            basic_clone (nlastpvid,
9899
                         returnpvid,
9900
                         nrtagid,
9901
                         nuserid,
9902
                         origpkg_id,
9903
                         nissuestypes
9904
                        );
6031 dpurdie 9905
 
4211 dpurdie 9906
            -- Update Label for versioning purposes
9907
            slabel := get_automated_label (returnpvid);
9908
            UPDATE package_versions pv
9909
            SET pv.pkg_label = slabel
9910
            WHERE pv.pv_id = returnpvid;
6031 dpurdie 9911
 
1373 dpurdie 9912
         ELSE
9913
            --- Package already exists, hence reuse ---
9914
            returnpvid := package_versions_rec.pv_id;
9915
            isreleased := package_versions_rec.dlocked;
9916
         END IF;
9917
 
9918
         CLOSE package_versions_cur;
9919
      ELSE
9920
         returnpvid := nsettopvid;
9921
      END IF;
9922
   END new_version;
9923
 
9924
/*-------------------------------------------------------------------------------------------------------*/
9925
   PROCEDURE change_state (
9926
      pvid       IN   NUMBER,
9927
      newstate   IN   package_versions.dlocked%TYPE,
9928
      userid     IN   NUMBER
9929
   )
9930
   IS
9931
   BEGIN
9932
      -- Set package in Released mode
9933
      UPDATE package_versions pv
9934
         SET pv.dlocked = newstate,
9935
             pv.modified_stamp = ora_sysdatetime,
9936
             pv.modifier_id = userid
9937
       WHERE pv.pv_id = pvid;
9938
 
9939
      -- Log action --
9940
      IF newstate = 'Y'
9941
      THEN
9942
         -- RELEASED --
9943
         log_action (pvid,
9944
                     'makeofficial',
9945
                     userid,
9946
                     'Package state change to: Released'
9947
                    );
9948
      ELSIF newstate = 'N'
9949
      THEN
9950
         -- UNLOCKED --
9951
         log_action (pvid,
9952
                     'makeunofficial',
9953
                     userid,
9954
                     'Package state change to: Ulocked'
9955
                    );
9956
      ELSIF newstate = 'P'
9957
      THEN
9958
         -- PENDING APPROVAL --
9959
         log_action (pvid,
9960
                     'add_to_planned',
9961
                     userid,
9962
                     'Package state change to: Pending Approval'
9963
                    );
9964
      ELSIF newstate = 'R'
9965
      THEN
9966
         -- REJECTED --
9967
         log_action (pvid,
9968
                     'reject_package',
9969
                     userid,
9970
                     'Package state change to: Rejected'
9971
                    );
9972
      ELSIF newstate = 'A'
9973
      THEN
9974
         -- APPROVED --
9975
         log_action (pvid,
9976
                     'approve_package',
9977
                     userid,
9978
                     'Package state change to: Approved'
9979
                    );
9980
      END IF;
9981
   END;
9982
 
9983
/*-------------------------------------------------------------------------------------------------------*/
6031 dpurdie 9984
-- This function has been deprecated and can be deleted
9985
-- Replaced with destroy_package_extended
1373 dpurdie 9986
   PROCEDURE destroy_package (
9987
      pvid               IN       NUMBER,
9988
      overridewarnings   IN       CHAR DEFAULT 'N',
9989
      problemstring      OUT      VARCHAR2
9990
   )
9991
   IS
9992
      LOCKED     CHAR;
9993
      pkgid      NUMBER;
9994
      ROWCOUNT   NUMBER;
6031 dpurdie 9995
      lastPvid   NUMBER;
1373 dpurdie 9996
   BEGIN
9997
      /*
9998
      || This will destroy all package details from database.
9999
      || It will only be used to remove unwanted work in progress packages,
6031 dpurdie 10000
      || or mistaken versions
1373 dpurdie 10001
      */
10002
 
10003
      /*--------------- Business Rules Here -------------------*/
10004
      problemstring := NULL;
10005
 
10006
      IF overridewarnings = 'N'
10007
      THEN
10008
         -- Package must not be official
10009
         SELECT pv.dlocked
10010
           INTO LOCKED
10011
           FROM package_versions pv
10012
          WHERE pv.pv_id = pvid;
10013
 
10014
         IF LOCKED = 'Y'
10015
         THEN
10016
            problemstring :=
10017
                  problemstring
10018
               || '- Package is locked and released.'
5892 dpurdie 10019
               ||PK_PACKAGE.crlf;
1373 dpurdie 10020
         END IF;
10021
 
10022
         -- Cannot remove if used in BOMs
10023
         SELECT COUNT (osc.prod_id)
10024
           INTO ROWCOUNT
10025
           FROM deployment_manager.os_contents osc
10026
          WHERE osc.prod_id = pvid;
10027
 
10028
         IF ROWCOUNT > 0
10029
         THEN
10030
            problemstring :=
10031
                  problemstring
10032
               || '- Package is part of Bill-Of-Material (BOM) in Deployment Manager.'
5892 dpurdie 10033
               ||PK_PACKAGE.crlf;
1373 dpurdie 10034
         END IF;
6031 dpurdie 10035
 
10036
         -- Cannot remove if used in an SDK
10037
         SELECT COUNT (sc.pv_id)
10038
           INTO ROWCOUNT
10039
           FROM sdk_content sc
10040
          WHERE sc.pv_id = pvid;
1373 dpurdie 10041
 
6031 dpurdie 10042
         IF ROWCOUNT > 0
10043
         THEN
10044
            problemstring :=
10045
                  problemstring
10046
               || '- Package is part of an SDK.'
10047
               ||PK_PACKAGE.crlf;
10048
         END IF;
10049
 
1373 dpurdie 10050
         -- Cannot remove if Referenced as build dependency
10051
         SELECT COUNT (dep.pv_id)
10052
           INTO ROWCOUNT
10053
           FROM package_dependencies dep
10054
          WHERE dep.dpv_id = pvid;
10055
 
10056
         IF ROWCOUNT > 0
10057
         THEN
10058
            problemstring :=
10059
                  problemstring
10060
               || '- Package is referenced by other package as build dependency.'
5892 dpurdie 10061
               ||PK_PACKAGE.crlf;
1373 dpurdie 10062
         END IF;
10063
 
10064
         -- Cannot remove if Referenced as runtime dependency
10065
         SELECT COUNT (rd.pv_id)
10066
           INTO ROWCOUNT
10067
           FROM runtime_dependencies rd
10068
          WHERE rd.rtd_id = pvid;
10069
 
10070
         IF ROWCOUNT > 0
10071
         THEN
10072
            problemstring :=
10073
                  problemstring
10074
               || '- Package is referenced by other package as runtime dependency.'
5892 dpurdie 10075
               ||PK_PACKAGE.crlf;
1373 dpurdie 10076
         END IF;
10077
 
10078
         -- Cannot remove if Referenced as patch
10079
         SELECT COUNT (pp.pv_id)
10080
           INTO ROWCOUNT
10081
           FROM package_patches pp
10082
          WHERE pp.patch_id = pvid;
10083
 
10084
         IF ROWCOUNT > 0
10085
         THEN
10086
            problemstring :=
10087
                  problemstring
10088
               || '- Package is used as patch by other package.'
5892 dpurdie 10089
               ||PK_PACKAGE.crlf;
1373 dpurdie 10090
         END IF;
6031 dpurdie 10091
 
10092
         -- Cannot remove if a Daemon Instruction
10093
         SELECT COUNT (di.pv_id)
10094
           INTO ROWCOUNT
10095
           FROM DAEMON_INSTRUCTIONS di
10096
          WHERE di.pv_id = pvid;
1373 dpurdie 10097
 
6031 dpurdie 10098
         IF ROWCOUNT > 0
10099
         THEN
10100
            problemstring :=
10101
                  problemstring
10102
               || '- Package is in use for a Daemon Instruction.'
10103
               ||PK_PACKAGE.crlf;
10104
         END IF;
10105
 
10106
 
10107
      END IF;      
10108
 
1373 dpurdie 10109
/*-------------------------------------------------------*/
10110
      IF (problemstring IS NULL)
10111
      THEN
10112
         --- Remove From Work in Progress
10113
         DELETE FROM work_in_progress wip
10114
               WHERE wip.pv_id = pvid;
10115
 
10116
         --- Remove From Pending
10117
         DELETE FROM planned pl
10118
               WHERE pl.pv_id = pvid;
10119
 
10120
         --- Remove From Released area
10121
         DELETE FROM release_content rc
10122
               WHERE rc.pv_id = pvid;
10123
 
10124
         ---Remove From Package Processes
10125
         DELETE FROM package_processes pp
10126
               WHERE pp.pv_id = pvid;
10127
 
10128
         --- Remove Dependencies
10129
         DELETE FROM package_dependencies dep
10130
               WHERE dep.pv_id = pvid;
10131
 
10132
         DELETE FROM package_dependencies dep
10133
               WHERE dep.dpv_id = pvid;
10134
 
10135
         --- Remove Runtime dependencies
10136
         DELETE FROM runtime_dependencies rtd
10137
               WHERE rtd.pv_id = pvid;
10138
 
10139
         DELETE FROM runtime_dependencies rtd
10140
               WHERE rtd.rtd_id = pvid;
10141
 
10142
         --- Remove components
10143
         DELETE FROM product_components pc
10144
               WHERE pc.pv_id = pvid;
10145
 
10146
         DELETE FROM release_components rc
10147
               WHERE rc.pv_id = pvid;
10148
 
10149
         --- Remove From Notification History
10150
         DELETE FROM notification_history nh
10151
               WHERE nh.pv_id = pvid;
10152
 
10153
         --- Remove From Ignore Warnings
10154
         DELETE FROM ignore_warnings iw
10155
               WHERE iw.pv_id = pvid;
10156
 
10157
         --- Remove From Additional Notes
10158
         DELETE FROM additional_notes an
10159
               WHERE an.pv_id = pvid;
10160
 
10161
         --- Remove From CQ Issues
10162
         DELETE FROM cq_issues cq
10163
               WHERE cq.pv_id = pvid;
10164
 
10165
         --- Remove from Package Patches
10166
         DELETE FROM package_patches pp
10167
               WHERE pp.pv_id = pvid;
10168
 
10169
         DELETE FROM package_patches pp
10170
               WHERE pp.patch_id = pvid;
10171
 
10172
         --- Remove From Package Documents
10173
         DELETE FROM package_documents pd
10174
               WHERE pd.pv_id = pvid;
10175
 
10176
         --- Remove from Code Review
10177
         DELETE FROM code_reviews cr
10178
               WHERE cr.pv_id = pvid;
10179
 
3959 dpurdie 10180
         --- Remove from Code Review URL
10181
         DELETE FROM code_review_url cru
10182
               WHERE cru.pv_id = pvid;
10183
 
1373 dpurdie 10184
         --- Remove from Unit Tests
10185
         DELETE FROM unit_tests ut
10186
               WHERE ut.pv_id = pvid;
10187
 
10188
         --- Remove from Package BuildEnv
10189
         DELETE FROM package_build_env pbe
10190
               WHERE pbe.pv_id = pvid;
10191
 
3959 dpurdie 10192
         --- Remove from Package Build Info
10193
         DELETE FROM package_build_info pbi
10194
               WHERE pbi.pv_id = pvid;
6031 dpurdie 10195
 
10196
        --- Remove from Build Plan
10197
         DELETE FROM BUILD_PLAN bp
10198
               WHERE bp.pv_id = pvid;
10199
 
10200
         --- Remove from Build Instances
10201
         DELETE FROM BUILD_INSTANCES bi
10202
               WHERE bi.pv_id = pvid;
3959 dpurdie 10203
 
1373 dpurdie 10204
         --- Remove from Build Order
10205
         DELETE FROM build_order bo
10206
               WHERE bo.pv_id = pvid;
10207
 
3959 dpurdie 10208
         --- Remove from Licencing
10209
         PK_LICENCING.REMOVE_ALL_LICENCING( pvid, 0 );
10210
 
1373 dpurdie 10211
         --- Remove from Note Manager
10212
         DELETE FROM note_manager nm
10213
               WHERE nm.nid = pvid;
10214
 
10215
         --- Remove from Action log
10216
         DELETE FROM action_log al
10217
               WHERE al.pv_id = pvid;
3959 dpurdie 10218
 
10219
         --- Remove from Do Not Ripple
10220
         DELETE FROM DO_NOT_RIPPLE dnr
10221
               WHERE dnr.PV_ID = pvid;
6031 dpurdie 10222
 
10223
        --- Remove from SDK
10224
        DELETE FROM SDK_CONTENT sc
10225
            WHERE sc.PV_ID = pvid;
10226
 
10227
        -- Remove from daemon Instruction
10228
        DELETE FROM DAEMON_INSTRUCTIONS di
10229
          WHERE di.PV_ID = pvid;
3959 dpurdie 10230
 
10231
         --- Remove from Advisory Ripple
10232
         DELETE FROM ADVISORY_RIPPLE ar
10233
               WHERE ar.PV_ID = pvid;
10234
 
10235
         --- Remove from Jira Issues
10236
         DELETE FROM JIRA_ISSUES jira
10237
               WHERE jira.PV_ID = pvid;
10238
 
10239
         --- Remove from Package Metrics
10240
         DELETE FROM package_metrics pm
10241
              WHERE pm.pv_id = pvid;
10242
 
10243
         -- Delete from Pegged Versions
10244
         DELETE FROM pegged_versions pegv
10245
              WHERE pegv.pv_id = pvid;
10246
 
1373 dpurdie 10247
         --- Finally Remove From Package Versions
10248
         --- Get Package name
6031 dpurdie 10249
         SELECT pv.pkg_id, pv.LAST_PV_ID
10250
           INTO pkgid, lastPvid
1373 dpurdie 10251
           FROM package_versions pv
10252
          WHERE pv.pv_id = pvid;
6031 dpurdie 10253
 
10254
          --- Relink packages last_pv_id
10255
          IF lastPvid is NOT NULL AND pvid !=  lastPvid THEN
10256
            UPDATE package_versions pv
10257
               SET pv.LAST_PV_ID = lastPvid
10258
             WHERE pv.LAST_PV_ID = pvid;
10259
          END IF;
10260
 
10261
         --- Delete the version
1373 dpurdie 10262
         DELETE FROM package_versions pv
10263
               WHERE pv.pv_id = pvid;
10264
 
10265
         --- Remove package name if not used any more
10266
         SELECT COUNT (pv.pv_id)
10267
           INTO ROWCOUNT
10268
           FROM package_versions pv
10269
          WHERE pv.pkg_id = pkgid;
10270
 
10271
         IF ROWCOUNT < 1
10272
         THEN
10273
            DELETE FROM PACKAGES pkg
10274
                  WHERE pkg.pkg_id = pkgid;
10275
         END IF;
10276
      END IF;
10277
   END;
10278
 
10279
/*-------------------------------------------------------------------------------------------------------*/
6031 dpurdie 10280
    PROCEDURE destroy_package_extended (
10281
      pvid               IN       NUMBER,
10282
      rtagid             IN       NUMBER,
10283
      overridewarnings   IN       NUMBER DEFAULT 0,
10284
      RESULTS            OUT      SYS_REFCURSOR
10285
      -- pvid - The pvid of the package to delete
10286
 
10287
      -- rtagid - Package is allowed to exist in this release
10288
 
10289
      -- overridewarnings
10290
      --    0   - Do not delete, just test
10291
      --    1   - Delete package if there are only advisory warnings
10292
      --    2   - Delete package even if there are FoolHardy warnings
10293
 
10294
      -- Results [OUTPUT]
10295
      --    Message Text, Error Level
10296
      --    Where error Level is
10297
      --        'A' - Advisory.
10298
      --        'F' - Foolhardy. Will damage releases, SBOMs and other packages
10299
   )
10300
   IS
10301
      LOCKED     CHAR;
10302
      pkgid      NUMBER;
10303
      ROWCOUNT   NUMBER;
10304
      lastPvid   NUMBER;
10305
 
10306
      vartbl RELMGR_PKG_DESTROY_ERR_TAB_T := RELMGR_PKG_DESTROY_ERR_TAB_T();
10307
      ii NUMBER;
10308
 
10309
      -- Add message to table that will be returned
10310
      PROCEDURE ADD_MESSAGE( p1 IN VARCHAR2, p2 IN CHAR)
10311
      IS
10312
      BEGIN
10313
        ii := ii + 1;
10314
        vartbl.extend;
10315
        vartbl(ii) := RELMGR_PKG_DESTROY_ERR_T(p1,UPPER(p2));
10316
      END; 
10317
 
10318
   BEGIN
10319
      /*
10320
      || This will destroy all package details from database.
10321
      || It will only be used to remove unwanted work in progress packages,
10322
      || or mistaken versions
10323
      */
10324
 
10325
      /*--------------- Business Rules Here -------------------*/
10326
      ii := 0;
10327
 
10328
      IF overridewarnings < 1
10329
      THEN
10330
         -- Package must not be official
10331
         SELECT pv.dlocked
10332
           INTO LOCKED
10333
           FROM package_versions pv
10334
          WHERE pv.pv_id = pvid;
10335
 
10336
         IF LOCKED = 'Y'
10337
         THEN
10338
            ADD_MESSAGE ('Package Version is locked and released.', 'A');
10339
         END IF;
10340
 
10341
         -- Cannot remove if a WIP
10342
         SELECT COUNT (pv_id)
10343
           INTO ROWCOUNT
10344
           FROM work_in_progress wip
10345
          WHERE wip.pv_id = pvid AND wip.RTAG_ID != rtagid;
10346
 
10347
         IF ROWCOUNT > 0
10348
         THEN
10349
            ADD_MESSAGE ('Version is in use as a WIP.', 'A');
10350
         END IF;
10351
 
10352
         -- Cannot remove if a PENDING
10353
         SELECT COUNT (pv_id)
10354
           INTO ROWCOUNT
10355
           FROM planned pl
10356
          WHERE pl.pv_id = pvid AND pl.RTAG_ID != rtagid;
10357
 
10358
         IF ROWCOUNT > 0
10359
         THEN
10360
            ADD_MESSAGE ('Version is Pending in a release.', 'A');
10361
         END IF;
10362
 
10363
         -- Cannot remove if in a Release
10364
         SELECT COUNT (pv_id)
10365
           INTO ROWCOUNT
10366
           FROM release_content rc
10367
          WHERE pv_id = pvid AND rc.RTAG_ID != rtagid;
10368
 
10369
         IF ROWCOUNT > 1
10370
         THEN
10371
            ADD_MESSAGE ('Version is a part of another Releases.', 'A');
10372
         END IF;
10373
 
10374
 
10375
         -- Cannot remove if a Daemon Instruction
10376
         SELECT COUNT (di.pv_id)
10377
           INTO ROWCOUNT
10378
           FROM DAEMON_INSTRUCTIONS di
10379
          WHERE di.pv_id = pvid;
10380
 
10381
         IF ROWCOUNT > 0
10382
         THEN
10383
            ADD_MESSAGE ('Version has outstanding Daemon Instruction.', 'A');
10384
         END IF;
10385
 
10386
      END IF;
10387
 
10388
      IF overridewarnings < 2
10389
      THEN
10390
         -- Cannot remove if used in BOMs
10391
         SELECT COUNT (osc.prod_id)
10392
           INTO ROWCOUNT
10393
           FROM deployment_manager.os_contents osc
10394
          WHERE osc.prod_id = pvid;
10395
 
10396
         IF ROWCOUNT > 0
10397
         THEN
10398
            ADD_MESSAGE ('Version is part of Bill-Of-Material (BOM) in Deployment Manager.', 'F');
10399
         END IF;
10400
 
10401
         -- Cannot remove if used in BOMs - Base Env
10402
         SELECT COUNT (bec.prod_id)
10403
           INTO ROWCOUNT
10404
           FROM deployment_manager.base_env_contents bec
10405
          WHERE bec.prod_id = pvid;
10406
 
10407
         IF ROWCOUNT > 0
10408
         THEN
10409
            ADD_MESSAGE ('Version is part of Base Environment in Deployment Manager.', 'F');
10410
         END IF;
10411
 
10412
         -- Cannot remove if used in an SDK
10413
         SELECT COUNT (sc.pv_id)
10414
           INTO ROWCOUNT
10415
           FROM sdk_content sc
10416
          WHERE sc.pv_id = pvid;
10417
 
10418
         IF ROWCOUNT > 0
10419
         THEN
10420
            ADD_MESSAGE ('Version is part of an SDK', 'F');
10421
         END IF;
10422
 
10423
         -- Cannot remove if Referenced as build dependency
10424
         SELECT COUNT (dep.pv_id)
10425
           INTO ROWCOUNT
10426
           FROM package_dependencies dep
10427
          WHERE dep.dpv_id = pvid;
10428
 
10429
         IF ROWCOUNT > 0
10430
         THEN
10431
            ADD_MESSAGE ('Version is referenced by a package as build dependency.', 'F');
10432
         END IF;
10433
 
10434
         -- Cannot remove if Referenced as runtime dependency
10435
         SELECT COUNT (rd.pv_id)
10436
           INTO ROWCOUNT
10437
           FROM runtime_dependencies rd
10438
          WHERE rd.rtd_id = pvid;
10439
 
10440
         IF ROWCOUNT > 0
10441
         THEN
10442
            ADD_MESSAGE ('Version is referenced by other package as a runtime dependency.', 'F');
10443
         END IF;
10444
 
10445
         -- Cannot remove if Referenced as patch
10446
         SELECT COUNT (pp.pv_id)
10447
           INTO ROWCOUNT
10448
           FROM package_patches pp
10449
          WHERE pp.patch_id = pvid;
10450
 
10451
         IF ROWCOUNT > 0
10452
         THEN
10453
            ADD_MESSAGE ('Version is used as a patch by other package.', 'F');
10454
         END IF;
10455
 
10456
      END IF;
10457
 
10458
/*-------------------------------------------------------*/
10459
      IF (ii = 0 AND overridewarnings > 0)
10460
      THEN
10461
         --- Remove From Work in Progress
10462
         DELETE FROM work_in_progress wip
10463
               WHERE wip.pv_id = pvid;
10464
 
10465
         --- Remove From Pending
10466
         DELETE FROM planned pl
10467
               WHERE pl.pv_id = pvid;
10468
 
10469
         --- Remove From Released area
10470
         DELETE FROM release_content rc
10471
               WHERE rc.pv_id = pvid;
10472
 
10473
         ---Remove From Package Processes
10474
         DELETE FROM package_processes pp
10475
               WHERE pp.pv_id = pvid;
10476
 
10477
         --- Remove Dependencies
10478
         DELETE FROM package_dependencies dep
10479
               WHERE dep.pv_id = pvid;
10480
 
10481
         DELETE FROM package_dependencies dep
10482
               WHERE dep.dpv_id = pvid;
10483
 
10484
         --- Remove Runtime dependencies
10485
         DELETE FROM runtime_dependencies rtd
10486
               WHERE rtd.pv_id = pvid;
10487
 
10488
         DELETE FROM runtime_dependencies rtd
10489
               WHERE rtd.rtd_id = pvid;
10490
 
10491
         --- Remove components
10492
         DELETE FROM product_components pc
10493
               WHERE pc.pv_id = pvid;
10494
 
10495
         DELETE FROM release_components rc
10496
               WHERE rc.pv_id = pvid;
10497
 
10498
         --- Remove From Notification History
10499
         DELETE FROM notification_history nh
10500
               WHERE nh.pv_id = pvid;
10501
 
10502
         --- Remove From Ignore Warnings
10503
         DELETE FROM ignore_warnings iw
10504
               WHERE iw.pv_id = pvid;
10505
 
10506
         --- Remove From Additional Notes
10507
         DELETE FROM additional_notes an
10508
               WHERE an.pv_id = pvid;
10509
 
10510
         --- Remove From CQ Issues
10511
         DELETE FROM cq_issues cq
10512
               WHERE cq.pv_id = pvid;
10513
 
10514
         --- Remove from Package Patches
10515
         DELETE FROM package_patches pp
10516
               WHERE pp.pv_id = pvid;
10517
 
10518
         DELETE FROM package_patches pp
10519
               WHERE pp.patch_id = pvid;
10520
 
10521
         --- Remove From Package Documents
10522
         DELETE FROM package_documents pd
10523
               WHERE pd.pv_id = pvid;
10524
 
10525
         --- Remove from Code Review
10526
         DELETE FROM code_reviews cr
10527
               WHERE cr.pv_id = pvid;
10528
 
10529
         --- Remove from Code Review URL
10530
         DELETE FROM code_review_url cru
10531
               WHERE cru.pv_id = pvid;
10532
 
10533
         --- Remove from Unit Tests
10534
         DELETE FROM unit_tests ut
10535
               WHERE ut.pv_id = pvid;
10536
 
10537
         --- Remove from Package BuildEnv
10538
         DELETE FROM package_build_env pbe
10539
               WHERE pbe.pv_id = pvid;
10540
 
10541
         --- Remove from Package Build Info
10542
         DELETE FROM package_build_info pbi
10543
               WHERE pbi.pv_id = pvid;
10544
 
10545
        --- Remove from Build Plan
10546
         DELETE FROM BUILD_PLAN bp
10547
               WHERE bp.pv_id = pvid;
10548
 
10549
         --- Remove from Build Instances
10550
         DELETE FROM BUILD_INSTANCES bi
10551
               WHERE bi.pv_id = pvid;
10552
 
10553
         --- Remove from Build Order
10554
         DELETE FROM build_order bo
10555
               WHERE bo.pv_id = pvid;
10556
 
10557
         --- Remove from Licencing
10558
         PK_LICENCING.REMOVE_ALL_LICENCING( pvid, 0 );
10559
 
10560
         --- Remove from Note Manager
10561
         DELETE FROM note_manager nm
10562
               WHERE nm.nid = pvid;
10563
 
10564
         --- Remove from Action log
10565
         DELETE FROM action_log al
10566
               WHERE al.pv_id = pvid;
10567
 
10568
         --- Remove from Do Not Ripple
10569
         DELETE FROM DO_NOT_RIPPLE dnr
10570
               WHERE dnr.PV_ID = pvid;
10571
 
10572
        --- Remove from SDK
10573
        DELETE FROM SDK_CONTENT sc
10574
            WHERE sc.PV_ID = pvid;
10575
 
10576
        -- Remove from daemon Instruction
10577
        DELETE FROM DAEMON_INSTRUCTIONS di
10578
          WHERE di.PV_ID = pvid;
10579
 
10580
         --- Remove from Advisory Ripple
10581
         DELETE FROM ADVISORY_RIPPLE ar
10582
               WHERE ar.PV_ID = pvid;
10583
 
10584
         --- Remove from Jira Issues
10585
         DELETE FROM JIRA_ISSUES jira
10586
               WHERE jira.PV_ID = pvid;
10587
 
10588
         --- Remove from Package Metrics
10589
         DELETE FROM package_metrics pm
10590
              WHERE pm.pv_id = pvid;
10591
 
10592
         -- Delete from Pegged Versions
10593
         DELETE FROM pegged_versions pegv
10594
              WHERE pegv.pv_id = pvid;
10595
 
10596
         --- Finally Remove From Package Versions
10597
         --- Get Package name
10598
         SELECT pv.pkg_id, pv.LAST_PV_ID
10599
           INTO pkgid, lastPvid
10600
           FROM package_versions pv
10601
          WHERE pv.pv_id = pvid;
10602
 
10603
          --- Relink packages last_pv_id
10604
          IF lastPvid is NOT NULL AND pvid !=  lastPvid THEN
10605
            UPDATE package_versions pv
10606
               SET pv.LAST_PV_ID = lastPvid
10607
             WHERE pv.LAST_PV_ID = pvid;
10608
          END IF;
10609
 
10610
         --- Delete the version
10611
         DELETE FROM package_versions pv
10612
               WHERE pv.pv_id = pvid;
10613
 
10614
         --- Remove package name if not used any more
10615
         SELECT COUNT (pv.pv_id)
10616
           INTO ROWCOUNT
10617
           FROM package_versions pv
10618
          WHERE pv.pkg_id = pkgid;
10619
 
10620
         IF ROWCOUNT < 1
10621
         THEN
10622
            DELETE FROM PACKAGES pkg
10623
                  WHERE pkg.pkg_id = pkgid;
10624
         END IF;
10625
      END IF;
10626
 
10627
      --- Return table of reasons the package shouldn't be destroyed
10628
       open RESULTS for select * from table(vartbl);
10629
 
10630
   END;
10631
 
10632
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 10633
   PROCEDURE new_patch (
10634
      snewpatchversion   IN       package_versions.pkg_version%TYPE,
10635
      nparentpvid        IN       NUMBER,
10636
      spatchidlist       IN       VARCHAR2,
10637
      nuserid            IN       NUMBER,
10638
      returnpatchid      OUT      NUMBER
10639
   )
10640
   IS
10641
      patchpv_id           NUMBER;
10642
      parpkg_id            NUMBER;
10643
      lastinstallorder     NUMBER;
10644
      ispatchdlocked       package_versions.dlocked%TYPE;
10645
      ssv_mm               package_versions.v_mm%TYPE;
10646
      ssv_nmm              package_versions.v_nmm%TYPE;
10647
      ssv_ext              package_versions.v_ext%TYPE;
3959 dpurdie 10648
      opatchdepcollector   relmgr_number_tab_t  := relmgr_number_tab_t ();
1373 dpurdie 10649
 
10650
      CURSOR parent_cur
10651
      IS
10652
         SELECT pv.*, pkg.pkg_name
10653
           FROM package_versions pv, PACKAGES pkg
10654
          WHERE pv.pv_id = nparentpvid AND pv.pkg_id = pkg.pkg_id;
10655
 
3959 dpurdie 10656
      parent_rec parent_cur%ROWTYPE;
1373 dpurdie 10657
 
10658
      CURSOR patch_cur
10659
      IS
10660
         SELECT pv.*, pg.pkg_name
10661
           FROM package_versions pv, PACKAGES pg
10662
          WHERE pv.pkg_id = parpkg_id
10663
            AND pv.pkg_version = snewpatchversion
10664
            AND pv.pkg_id = pg.pkg_id;
10665
 
3959 dpurdie 10666
      patch_rec  patch_cur%ROWTYPE;
1373 dpurdie 10667
 
10668
      CURSOR releases_cur
10669
      IS
10670
         SELECT rc.pv_id
10671
           FROM release_content rc
10672
          WHERE rc.pv_id = patch_rec.pv_id;
10673
 
3959 dpurdie 10674
      releases_rec releases_cur%ROWTYPE;
1373 dpurdie 10675
   BEGIN
10676
      -- Get Last Install Order
10677
      SELECT COUNT (*)
10678
        INTO lastinstallorder
10679
        FROM package_patches pp
10680
       WHERE pp.pv_id = nparentpvid;
10681
 
10682
      -- Get parent details
10683
      OPEN parent_cur;
10684
 
10685
      FETCH parent_cur
10686
       INTO parent_rec;
10687
 
10688
      parpkg_id := parent_rec.pkg_id;
10689
 
10690
      -- Find if patch exists in database
10691
      OPEN patch_cur;
10692
 
10693
      FETCH patch_cur
10694
       INTO patch_rec;
10695
 
10696
      -- Parent must be official
10697
      IF parent_rec.dlocked = 'Y'
10698
      THEN
10699
         IF patch_cur%NOTFOUND
10700
         THEN
10701
            ispatchdlocked := 'N';
10702
 
10703
            -- Create new patch version --
10704
            SELECT seq_pv_id.NEXTVAL
10705
              INTO patchpv_id
10706
              FROM DUAL;
10707
 
10708
            split_version (snewpatchversion, ssv_mm, ssv_nmm, ssv_ext);
10709
 
10710
            INSERT INTO package_versions
10711
                        (pv_id, pkg_id, pkg_version,
10712
                         dlocked, created_stamp, creator_id,
10713
                         modified_stamp, modifier_id, v_mm, v_nmm, v_ext,
10714
                         src_path,
10715
                         pv_description,
10716
                         owner_id, is_patch, last_pv_id, build_type, is_build_env_required, bs_id,
3959 dpurdie 10717
                         is_autobuildable, ripple_field
1373 dpurdie 10718
                        )
10719
                 VALUES (patchpv_id, parpkg_id, snewpatchversion,
10720
                         ispatchdlocked, ora_sysdate, nuserid,
10721
                         ora_sysdatetime, nuserid, ssv_mm, ssv_nmm, ssv_ext,
10722
                         parent_rec.src_path,
10723
                            'This is a patch to '
10724
                         || parent_rec.pkg_name
10725
                         || ' '
10726
                         || parent_rec.pkg_version,
3959 dpurdie 10727
                         nuserid, 'Y', patchpv_id, 'M', 'N', 3, 'N', parent_rec.ripple_field
1373 dpurdie 10728
                        );
10729
 
10730
            INSERT INTO package_patches
10731
                        (pv_id, patch_id, install_order)
3959 dpurdie 10732
                (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
10733
                        lastinstallorder + 1 AS install_order
10734
                   FROM package_versions pv
10735
                  WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
1373 dpurdie 10736
 
10737
            /* LOG ACTION */
10738
            log_action (patchpv_id,
10739
                        'new_version',
10740
                        nuserid,
10741
                        'Patch version created: ' || snewpatchversion
10742
                       );
10743
            log_action (nparentpvid,
10744
                        'patch_add',
10745
                        nuserid,
10746
                        'New patch created and attached: ' || snewpatchversion
10747
                       );
10748
         ELSE
10749
            patchpv_id := patch_rec.pv_id;
10750
            ispatchdlocked := patch_rec.dlocked;
10751
 
10752
            -- Find if pv_id exists in release content (i.e. it cannot be a patch)
10753
            OPEN releases_cur;
10754
 
10755
            FETCH releases_cur
10756
             INTO releases_rec;
10757
 
10758
            IF releases_cur%NOTFOUND
10759
            THEN
10760
               -- This pv_id is trully a patch, hence add Y to column IS_PATCH
10761
               UPDATE package_versions
10762
                  SET is_patch = 'Y'
10763
                WHERE pv_id = patchpv_id;
10764
 
10765
               INSERT INTO package_patches
10766
                           (pv_id, patch_id, install_order)
3959 dpurdie 10767
                   (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
10768
                           lastinstallorder + 1 AS install_order
10769
                      FROM package_versions pv
10770
                     WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
1373 dpurdie 10771
            END IF;
10772
 
10773
            CLOSE releases_cur;
10774
 
10775
            /* LOG ACTION */
10776
            log_action (nparentpvid,
10777
                        'patch_add',
10778
                        nuserid,
10779
                           'Patch version was found and attached: '
10780
                        || snewpatchversion
10781
                       );
10782
         END IF;
10783
      END IF;
10784
 
10785
      /* Create Patch Dependencies */
10786
      opatchdepcollector := in_list_number (spatchidlist);
10787
 
10788
      -- Make sure patch is unofficial before altering its dependencies
10789
      IF (opatchdepcollector.COUNT > 0) AND (ispatchdlocked = 'N')
10790
      THEN
10791
         -- Delete Existing Dependencies
10792
         DELETE FROM package_dependencies dep
10793
               WHERE dep.pv_id = patchpv_id;
10794
 
10795
         -- Insert new dependencies
10796
         INSERT INTO package_dependencies
10797
                     (pv_id, dpv_id, pkg_id, dpkg_id, build_type)
3959 dpurdie 10798
              SELECT patchpv_id AS pv_id, pv.pv_id AS dpv_id,
10799
                     parpkg_id AS pkg_id, pv.pkg_id AS dpkg_id,
10800
                     'L' AS build_type
10801
                FROM package_versions pv
10802
               WHERE pv.pv_id IN (
1373 dpurdie 10803
                      SELECT *
10804
                        FROM TABLE
10805
                                (CAST
10806
                                    (opatchdepcollector AS relmgr_number_tab_t)
10807
                                ));
10808
      END IF;
10809
 
10810
      -- Return patch_id
10811
      returnpatchid := patchpv_id;
10812
 
10813
      CLOSE parent_cur;
10814
 
10815
      CLOSE patch_cur;
10816
   EXCEPTION
10817
      WHEN DUP_VAL_ON_INDEX
10818
      THEN
10819
         raise_application_error (-20000,
10820
                                     'Patch version '
10821
                                  || snewpatchversion
10822
                                  || ' already exist.'
10823
                                 );
10824
   END;
10825
 
10826
/*-------------------------------------------------------------------------------------------------------*/
10827
   PROCEDURE obsolete_patch (
10828
      patchid            IN   NUMBER,
10829
      isobsolete         IN   CHAR,
10830
      obsoletecomments   IN   VARCHAR2,
10831
      userid             IN   NUMBER
10832
   )
10833
   IS
10834
   BEGIN
10835
      -- Update patch
10836
      UPDATE package_versions pv
10837
         SET pv.is_obsolete = isobsolete,
10838
             pv.obsolete_comments = obsoletecomments
10839
       WHERE pv.pv_id = patchid;
10840
 
10841
      /*
10842
      -- Update patch children
10843
      UPDATE PACKAGE_VERSIONS pv SET
10844
      pv.IS_OBSOLETE = IsObsolete,
10845
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10846
      WHERE pv.PV_ID IN (
10847
                     SELECT DISTINCT dep.DPV_ID
10848
                       FROM PACKAGE_DEPENDENCIES dep
10849
                      WHERE dep.PV_ID = PatchId
10850
                     );
10851
 
10852
 
10853
      -- Update patch parent
10854
      UPDATE PACKAGE_VERSIONS pv SET
10855
      pv.IS_OBSOLETE = IsObsolete,
10856
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10857
      WHERE pv.PV_ID IN (
10858
                     SELECT DISTINCT dep.PV_ID
10859
                       FROM PACKAGE_DEPENDENCIES dep
10860
                      WHERE dep.DPV_ID = PatchId
10861
                     );
10862
 
3959 dpurdie 10863
      */
1373 dpurdie 10864
 
10865
      /* LOG ACTION */
10866
      IF isobsolete IS NOT NULL
10867
      THEN
10868
         log_action (patchid,
10869
                     'patch_obsolete',
10870
                     userid,
10871
                     'Obsolete patch. ' || obsoletecomments
10872
                    );
10873
      ELSE
10874
         log_action (patchid,
10875
                     'patch_obsolete',
10876
                     userid,
10877
                     'Undo patch obsolete.'
10878
                    );
10879
      END IF;
10880
   END;
10881
 
10882
/*-------------------------------------------------------------------------------------------------------*/
10883
   PROCEDURE obsolete_patches (
10884
      spatchidlist       IN   VARCHAR2,
10885
      isobsolete         IN   CHAR,
10886
      obsoletecomments   IN   VARCHAR2,
10887
      userid             IN   NUMBER
10888
   )
10889
   IS
10890
   BEGIN
10891
      /*--------------- Business Rules Here -------------------*/
10892
      IF spatchidlist IS NULL
10893
      THEN
10894
         raise_application_error (-20000,
10895
                                  'Please select one or more Patches.'
10896
                                 );
10897
      END IF;
10898
 
10899
/*-------------------------------------------------------*/
10900
 
10901
      -- Update patch
10902
      UPDATE package_versions pv
10903
         SET pv.is_obsolete = isobsolete,
10904
             pv.obsolete_comments = obsoletecomments
10905
       WHERE pv.pv_id IN (
10906
                SELECT *
10907
                  FROM THE
10908
                          (SELECT CAST
10909
                                     (in_list_number (spatchidlist) AS relmgr_number_tab_t
10910
                                     )
10911
                             FROM DUAL
10912
                          ));
3959 dpurdie 10913
      /*
10914
      -- Update patch children
10915
      UPDATE PACKAGE_VERSIONS pv SET
10916
      pv.IS_OBSOLETE = IsObsolete,
10917
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10918
      WHERE pv.PV_ID IN (
10919
                     SELECT DISTINCT dep.DPV_ID
10920
                       FROM PACKAGE_DEPENDENCIES dep
10921
                      WHERE dep.PV_ID = PatchId
10922
                     );
1373 dpurdie 10923
 
10924
 
3959 dpurdie 10925
      -- Update patch parent
10926
      UPDATE PACKAGE_VERSIONS pv SET
10927
      pv.IS_OBSOLETE = IsObsolete,
10928
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10929
      WHERE pv.PV_ID IN (
10930
                     SELECT DISTINCT dep.PV_ID
10931
                       FROM PACKAGE_DEPENDENCIES dep
10932
                      WHERE dep.DPV_ID = PatchId
10933
                     );
1373 dpurdie 10934
 
10935
      */
10936
 
3959 dpurdie 10937
      /* LOG ACTION
10938
      IF IsObsolete IS NOT NULL THEN
1373 dpurdie 10939
         Log_Action ( PatchId, 'patch_obsolete', UserId,
3959 dpurdie 10940
                     'Obsolete patch. '|| ObsoleteComments );
10941
      ELSE
10942
         Log_Action ( PatchId, 'patch_obsolete', UserId,
10943
                     'Undo patch obsolete.' );
10944
      END IF;  */
1373 dpurdie 10945
   END;
10946
 
10947
/*-------------------------------------------------------------------------------------------------------*/
10948
   PROCEDURE add_process (
10949
      nprocid         IN   processes.proc_id%TYPE,
10950
      shealthtag      IN   processes.proc_name%TYPE,
10951
      sprocdesc       IN   processes.proc_description%TYPE,
10952
      scmdinterface   IN   processes.run_as%TYPE,
10953
      spkgowner       IN   processes.pkg_owner%TYPE,
10954
      sisinterface    IN   processes.is_interface%TYPE,
10955
      npvid           IN   package_processes.pv_id%TYPE,
10956
      nuserid         IN   NUMBER
10957
   )
10958
   IS
10959
      pkgname   VARCHAR2 (100);
3959 dpurdie 10960
 
1373 dpurdie 10961
   BEGIN
10962
      INSERT INTO processes
10963
                  (proc_id, proc_name, proc_description, run_as, pkg_owner,
10964
                   is_interface
10965
                  )
10966
           VALUES (nprocid, shealthtag, sprocdesc, scmdinterface, spkgowner,
10967
                   sisinterface
10968
                  );
10969
 
10970
      pk_package.add_package_process (nprocid, npvid, nuserid);
10971
   END;
10972
 
10973
/*-------------------------------------------------------------------------------------------------------*/
10974
   PROCEDURE add_package_process (
10975
      nprocidlist   IN   VARCHAR2,
10976
      npvid         IN   package_processes.pv_id%TYPE,
10977
      nuserid       IN   NUMBER
10978
   )
10979
   IS
10980
      processname   VARCHAR2 (4000);
10981
 
10982
      CURSOR proc_cur
10983
      IS
10984
         SELECT prc.proc_id
10985
           FROM processes prc
10986
          WHERE prc.proc_id IN (
10987
                   SELECT *
10988
                     FROM THE
10989
                             (SELECT CAST
10990
                                        (in_list_number (nprocidlist) AS relmgr_number_tab_t
10991
                                        )
10992
                                FROM DUAL
10993
                             ));
10994
 
3959 dpurdie 10995
      proc_rec  proc_cur%ROWTYPE;
1373 dpurdie 10996
   BEGIN
10997
      OPEN proc_cur;
10998
 
10999
      FETCH proc_cur
11000
       INTO proc_rec;
11001
 
11002
      WHILE proc_cur%FOUND
11003
      LOOP
3959 dpurdie 11004
         INSERT INTO package_processes (proc_id, pv_id)
11005
              VALUES (proc_rec.proc_id, npvid);
1373 dpurdie 11006
 
11007
         SELECT prc.proc_name
11008
           INTO processname
11009
           FROM processes prc
11010
          WHERE prc.proc_id = proc_rec.proc_id;
11011
 
11012
         -- Log Action --
11013
         log_action (npvid,
11014
                     'process_add',
11015
                     nuserid,
11016
                     'Added process with health tag ' || processname
11017
                    );
11018
 
11019
         FETCH proc_cur
11020
          INTO proc_rec;
11021
      END LOOP;
3959 dpurdie 11022
 
11023
      CLOSE proc_cur;
1373 dpurdie 11024
   END;
11025
 
11026
/*-------------------------------------------------------------------------------------------------------*/
11027
   PROCEDURE remove_process (
11028
      nprocid   IN   package_processes.proc_id%TYPE,
11029
      npvid     IN   package_processes.pv_id%TYPE,
11030
      nuserid   IN   NUMBER
11031
   )
11032
   IS
11033
      processname   VARCHAR2 (4000);
11034
   BEGIN
11035
      SELECT prc.proc_name
11036
        INTO processname
11037
        FROM processes prc
11038
       WHERE prc.proc_id = nprocid;
11039
 
11040
      DELETE FROM package_processes
11041
            WHERE proc_id = nprocid AND pv_id = npvid;
11042
 
11043
      -- Log Action --
11044
      log_action (npvid,
11045
                  'process_remove',
11046
                  nuserid,
11047
                  'Removed process with health tag ' || processname
11048
                 );
11049
   END;
11050
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11051
   /*
11052
   ** Author: Rupesh Solanki
11053
   ** Purpose: To move package versions from one release to another
11054
   ** Release: 4th September 2006
11055
   */
11056
   PROCEDURE move_package (
11057
      npvid        IN package_versions.pv_id%TYPE,
11058
      nrtagid      IN release_tags.rtag_id%TYPE,
11059
      nnewrtagid   IN release_tags.rtag_id%TYPE,
11060
      nuserid      IN NUMBER
11061
   )
11062
   IS
1373 dpurdie 11063
 
3959 dpurdie 11064
      oldrtag_name VARCHAR2(4000);newrtag_name VARCHAR2(4000);
11065
 
11066
   BEGIN
11067
      SELECT rtag_name into oldrtag_name
11068
      FROM RELEASE_TAGS
11069
      WHERE rtag_id = nrtagid;
11070
 
11071
      SELECT rtag_name into newrtag_name
11072
      FROM RELEASE_TAGS
11073
      WHERE rtag_id = nnewrtagid;
11074
 
11075
      /* Table Work In Progress*/
11076
      UPDATE WORK_IN_PROGRESS
11077
      SET RTAG_ID = nnewrtagid
11078
      WHERE RTAG_ID = nrtagid
11079
      AND PV_ID = npvid;
11080
 
11081
      /* Table PLANNED*/
11082
      UPDATE PLANNED
11083
      SET RTAG_ID = nnewrtagid
11084
      WHERE RTAG_ID = nrtagid
11085
      AND PV_ID = npvid;
11086
 
11087
      /* Table PEGGED_VERSIONS */
11088
      DELETE FROM PEGGED_VERSIONS pegv
11089
      WHERE pegv.RTAG_ID = nrtagid
11090
      AND pegv.PV_ID = npvid;
11091
 
11092
      /* Table ADVISORY_RIPPLE*/
11093
      DELETE FROM ADVISORY_RIPPLE
11094
      WHERE RTAG_ID = nrtagid
11095
      AND PV_ID = npvid;
11096
 
11097
 
1373 dpurdie 11098
      -- Log Action --
11099
      log_action (npvid,
11100
                  'move_package_version',
11101
                  nuserid,
11102
                  'Moved package version from ' || oldrtag_name || ' to ' || newrtag_name
3959 dpurdie 11103
                 );
11104
   END;
11105
 
1373 dpurdie 11106
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11107
   /*
11108
   ** Author: Rupesh Solanki
11109
   ** Purpose: To modify the product state from integration to test to deployment
11110
   ** Release: 25th January 2006
11111
   */
11112
   PROCEDURE modify_product_state (
11113
      npvid    IN package_versions.pv_id%TYPE,
11114
      nrtagid  IN release_tags.rtag_id%TYPE,
11115
      nstateid IN product_states.state_id%TYPE,
11116
      nuserid  IN NUMBER
1373 dpurdie 11117
   ) IS
3959 dpurdie 11118
 
11119
      sStateName VARCHAR2(4000);
11120
      sRtagName VARCHAR2(4000);
11121
 
11122
   BEGIN
11123
 
11124
      UPDATE RELEASE_CONTENT
11125
      SET PRODUCT_STATE = nstateid
11126
      WHERE PV_ID = npvid
11127
      AND RTAG_ID = nrtagid;
11128
 
11129
 
11130
      SELECT STATE INTO sStateName
11131
      FROM PRODUCT_STATES
11132
      WHERE STATE_ID = nstateid;
11133
 
11134
      SELECT RTAG_NAME into sRtagName
11135
      FROM RELEASE_TAGS
11136
      WHERE RTAG_ID = nrtagid;
11137
 
11138
 
11139
      -- Log Action --
11140
      log_action (npvid,
11141
                  'modify_product_state',
11142
                     nuserid,
11143
                     sStateName || ' in '|| sRtagName
11144
                  );
11145
   END;
11146
/*-------------------------------------------------------------------------------------------------------*/
11147
   /*
11148
   ** Author: Jeremy Tweddle
11149
   ** Date: 24/Aug/2007
11150
   */
11151
   PROCEDURE add_code_review_url (
11152
      npvid           IN    NUMBER,
11153
      nprojid         IN    NUMBER,
11154
      surl            IN    VARCHAR2,
11155
      sreason         IN    VARCHAR2,
4553 dpurdie 11156
      ddateofreview   IN    VARCHAR2
3959 dpurdie 11157
   ) IS
11158
 
11159
      ncrid NUMBER;
11160
 
11161
   BEGIN
11162
 
11163
      SELECT seq_cr_id.NEXTVAL INTO ncrid FROM DUAL;
11164
 
4553 dpurdie 11165
      INSERT INTO code_review_url ( cr_id, pv_id, proj_id, url, reason, date_of_review, last_modified )
11166
      VALUES ( ncrid, npvid, nprojid, surl, sreason, TO_DATE( ddateofreview,'DD/MM/YYYY' ), ora_sysdate );
3959 dpurdie 11167
 
11168
   END;
11169
/*-------------------------------------------------------------------------------------------------------*/
11170
   /*
11171
   ** Author: Jeremy Tweddle
11172
   ** Date: 22/Aug/2007
11173
   */
11174
   PROCEDURE update_code_review_url (
11175
      ncrid           IN    NUMBER,
11176
      nprojid         IN    NUMBER,
11177
      surl            IN    VARCHAR2,
4553 dpurdie 11178
      sreason         IN    VARCHAR2,
11179
      ddateofreview   IN    VARCHAR2
3959 dpurdie 11180
   ) IS
11181
 
11182
   BEGIN
11183
 
11184
      UPDATE code_review_url
11185
      SET url = surl,
11186
          proj_id = nprojid,
11187
          reason = sreason,
6031 dpurdie 11188
          date_of_review = TO_DATE( ddateofreview,'DD/MM/YYYY' ),
3959 dpurdie 11189
          last_modified = ora_sysdate
11190
      WHERE cr_id = ncrid;
11191
 
11192
   END;
4553 dpurdie 11193
 
3959 dpurdie 11194
/*-------------------------------------------------------------------------------------------------------*/
11195
   /*
11196
   ** Author: Jeremy Tweddle
11197
   ** Date: 22/Aug/2007
11198
   */
11199
   PROCEDURE remove_code_review_url (
11200
      ncrid  IN    NUMBER
11201
   ) IS
11202
 
11203
   BEGIN
11204
      DELETE FROM code_review_url
11205
      WHERE cr_id = ncrid;
11206
   END;
11207
/*-------------------------------------------------------------------------------------------------------*/
11208
END pk_package;
4040 dpurdie 11209
 
1374 dpurdie 11210
/
5892 dpurdie 11211
 
6031 dpurdie 11212
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
11213
  GRANT DEBUG ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 11214
--------------------------------------------------------
11215
--  DDL for Package Body PK_PLANNED
11216
--------------------------------------------------------
11217
 
5172 dpurdie 11218
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PLANNED" IS
3959 dpurdie 11219
 
1373 dpurdie 11220
/*
11221
------------------------------
3959 dpurdie 11222
||  Last Modified:  G.Huddy
11223
||  Modified Date:  05/Aug/2008
11224
||  Body Version:   1.2
1373 dpurdie 11225
------------------------------
11226
*/
11227
 
11228
 
11229
/*-------------------------------------------------------------------------------------------------------*/
5384 dpurdie 11230
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, OPR IN CHAR DEFAULT 'R' ) IS
1373 dpurdie 11231
 
3959 dpurdie 11232
    oldPvId NUMBER;
11233
    ReleaseLocation VARCHAR2(4000);
11234
    IsPatch CHAR(1) := NULL;
11235
    sLocation VARCHAR2(4000) := NULL;
11236
    nRtagIdLocation NUMBER;
1373 dpurdie 11237
 
11238
 
11239
 
3959 dpurdie 11240
BEGIN
11241
    /*--------------- Business Rules Here -------------------*/
11242
    /*-------------------------------------------------------*/
6031 dpurdie 11243
 
5384 dpurdie 11244
    IF OPR = 'R' THEN
11245
      BEGIN
11246
          -- Check if Exists in "Work in progress" anywhere in the world, except "Closed mode" releases
11247
          SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME, rt.RTAG_ID  INTO sLocation, nRtagIdLocation
11248
            FROM PLANNED pl,
11249
                 RELEASE_TAGS rt,
11250
                 PROJECTS proj
11251
           WHERE pl.PV_ID = newPvId
11252
             AND pl.RTAG_ID = rt.RTAG_ID
11253
             AND rt.OFFICIAL != 'Y'
11254
             AND rt.PROJ_ID = proj.PROJ_ID;
6031 dpurdie 11255
 
5384 dpurdie 11256
          EXCEPTION
11257
              WHEN NO_DATA_FOUND THEN
11258
                  sLocation := NULL;
11259
      END;
6031 dpurdie 11260
 
5384 dpurdie 11261
      IF (sLocation IS NULL) OR (nRtagIdLocation = RtagId) THEN
6031 dpurdie 11262
 
5384 dpurdie 11263
          -- Add to "Pending" area
11264
          INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )
11265
          VALUES( RtagId, newPvId, ViewId, OPR );
6031 dpurdie 11266
 
5384 dpurdie 11267
          /* LOG ACTION */
11268
          SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11269
            FROM PROJECTS proj,
11270
                 RELEASE_TAGS rt
11271
           WHERE rt.PROJ_ID = proj.PROJ_ID
11272
             AND rt.RTAG_ID = RtagId;
6031 dpurdie 11273
 
5384 dpurdie 11274
          Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
6031 dpurdie 11275
 
5384 dpurdie 11276
      ELSE
11277
            RAISE_APPLICATION_ERROR (-20000, 'This version is already in Pending Area at '|| sLocation ||'.' );
11278
        END IF;
6031 dpurdie 11279
 
3959 dpurdie 11280
    ELSE
6031 dpurdie 11281
      -- Not adding a WIP. Merging a package version
5384 dpurdie 11282
      MERGE_PACKAGE ( newPvId, ViewId, RtagId, UserId, OPR );
3959 dpurdie 11283
    END IF;
11284
 
11285
END;
1373 dpurdie 11286
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11287
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 11288
 
3959 dpurdie 11289
    ReleaseLocation VARCHAR2(4000);
1373 dpurdie 11290
 
3959 dpurdie 11291
BEGIN
1373 dpurdie 11292
 
3959 dpurdie 11293
    /*--------------- Business Rules Here -------------------*/
11294
    /*-------------------------------------------------------*/
1373 dpurdie 11295
 
11296
 
3959 dpurdie 11297
    -- Get release location for logging pusposes
11298
    SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11299
      FROM PROJECTS proj,
11300
           RELEASE_TAGS rt
11301
     WHERE rt.PROJ_ID = proj.PROJ_ID
11302
       AND rt.RTAG_ID = RtagId;
1373 dpurdie 11303
 
6031 dpurdie 11304
    -- Ensure that package is not marked as Pending any more
11305
    UPDATE package_versions
11306
       SET DLOCKED  = 'N'
11307
     WHERE PV_ID  = PvId
11308
       AND DLOCKED != 'Y';
1373 dpurdie 11309
 
3959 dpurdie 11310
    -- Delete from Work In Progress
11311
    DELETE
11312
      FROM PLANNED pl
11313
     WHERE pl.RTAG_ID = RtagId
11314
       AND pl.PV_ID = PvId;
1373 dpurdie 11315
 
3959 dpurdie 11316
    Log_Action ( PvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
11317
 
11318
 
11319
 
11320
 
11321
END;
1373 dpurdie 11322
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11323
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
1373 dpurdie 11324
 
3959 dpurdie 11325
    ReturnValue NUMBER;
1373 dpurdie 11326
 
3959 dpurdie 11327
BEGIN
11328
    SELECT pl.VIEW_ID INTO ReturnValue
11329
      FROM PLANNED pl
11330
     WHERE pl.RTAG_ID = RtagId
11331
       AND pl.PV_ID = PvId;
11332
 
11333
    RETURN ReturnValue;
11334
END;
11335
/*-------------------------------------------------------------------------------------------------------*/
11336
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
11337
 
11338
    IsBaseView CHAR(1);
11339
 
11340
BEGIN
11341
 
11342
    -- Check if the view is BASE VIEW
11343
    SELECT vi.BASE_VIEW INTO IsBaseView
11344
      FROM VIEWS vi
11345
     WHERE vi.VIEW_ID = ViewId;
11346
 
11347
 
5172 dpurdie 11348
    IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 11349
        -- Get Base view content
11350
        OPEN RecordSet FOR
11351
        SELECT 0 AS PKG_STATE,
11352
               NULL AS DEPRECATED_STATE,
11353
               pv.pv_id,
11354
               pkg.pkg_name,
11355
               pv.pkg_version,
11356
               pv.dlocked,
11357
               pv.pv_description,
11358
               pv.BUILD_TYPE,
11359
               rel.operation
11360
          FROM PLANNED rel,
11361
               packages pkg,
11362
               package_versions pv
11363
         WHERE pv.pkg_id = pkg.pkg_id
11364
           AND rel.pv_id = pv.pv_id
11365
           AND rel.VIEW_ID = ViewId
11366
           AND rel.RTAG_ID = RtagId
11367
         ORDER BY UPPER(pkg.PKG_NAME);
11368
 
11369
    ELSE
11370
 
11371
        -- Get non base view content
11372
        OPEN RecordSet FOR
11373
        SELECT 0 AS PKG_STATE,
11374
               NULL AS DEPRECATED_STATE,
11375
               pv.pv_id,
11376
               pkg.pkg_name,
11377
               pv.pkg_version,
11378
               pv.dlocked,
11379
               pv.pv_description,
11380
               pv.BUILD_TYPE,
11381
               rel.operation
11382
          FROM PLANNED rel,
11383
               packages pkg,
11384
               package_versions pv,
11385
               VIEW_DEF vd
11386
         WHERE pv.pkg_id = pkg.pkg_id
11387
           AND rel.pv_id = pv.pv_id
11388
           AND rel.RTAG_ID = RtagId
11389
           AND vd.VIEW_ID = ViewId
11390
           AND vd.PKG_ID = pv.PKG_ID
11391
         ORDER BY UPPER(pkg.PKG_NAME);
11392
 
11393
    END IF;
11394
 
11395
 
11396
END;
11397
/*-------------------------------------------------------------------------------------------------------*/
11398
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
11399
 
11400
BEGIN
11401
 
11402
    UPDATE PLANNED pl SET
11403
    pl.VIEW_ID = NewViewId
11404
    WHERE pl.PV_ID = PvId
11405
      AND pl.RTAG_ID = RtagId;
11406
 
11407
END;
11408
/*-------------------------------------------------------------------------------------------------------*/
11409
-- DEVI-45275 This new function supports the ability to insert into the planned table, and existing
11410
-- version of a package as part of a release-to-release merge operation carried out within release manager.
11411
-- DEVI-49594 This function has subsequently been changed to allow a merge operation to cancel its
11412
-- opposite operation, if the opposite already exists in the planned table. This supports user activity
11413
-- via the Release Manager merge manager display
11414
 
11415
PROCEDURE MERGE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, mergeOperation IN CHAR ) IS
11416
 
11417
    ReleaseLocation VARCHAR2(4000);
11418
 
11419
        entryExists NUMBER;
11420
        existingOperation CHAR;
11421
BEGIN
11422
    /*--------------- Business Rules Here -------------------*/
11423
    /*-------------------------------------------------------*/
11424
 
11425
      -- Determine if the specified PV_ID already exists in the planned table....
11426
      SELECT COUNT (pl.pv_id) INTO entryExists
11427
      FROM PLANNED pl
11428
      WHERE pl.pv_id = newPvId
11429
      AND pl.rtag_id = RtagId
11430
      AND pl.view_id = ViewId;
11431
 
11432
      -- If the specified PV_ID already exists in the planned table....
11433
      IF entryExists = 1 THEN
11434
 
11435
         -- Get the operation for the existing entry
11436
         SELECT pl.operation INTO existingOperation
11437
         FROM PLANNED pl
11438
         WHERE pl.pv_id = newPvId
11439
         AND pl.rtag_id = RtagId
11440
         AND pl.view_id = ViewId;
11441
 
11442
         -- Is the specified merge operation the opposite of the existing entry?
11443
         -- If it is not, then there is nothing to do, otherwise...
11444
         -- NOTE: A = Add, S = Subtract
11445
         IF (mergeOperation = 'S' AND existingOperation = 'A')
11446
            OR (mergeOperation = 'A' AND existingOperation = 'S') THEN
11447
 
11448
           -- It is the opposite, so effectively it cancels the existing entry
11449
           -- Remove the entry from the planned table
11450
           DELETE
11451
            FROM PLANNED pl
11452
           WHERE pl.pv_id = newPvId
11453
             AND pl.rtag_id = RtagId
11454
             AND pl.view_id = ViewId;
11455
 
11456
           -- Log action
11457
           SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11458
             FROM PROJECTS proj,
11459
                  RELEASE_TAGS rt
11460
            WHERE rt.PROJ_ID = proj.PROJ_ID
11461
              AND rt.RTAG_ID = RtagId;
11462
 
11463
           Log_Action ( newPvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 11464
         END IF;
3959 dpurdie 11465
      ELSE
11466
         -- Add to Planned tabled
11467
         INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )
11468
         VALUES( RtagId, newPvId, ViewId, mergeOperation );
1373 dpurdie 11469
 
3959 dpurdie 11470
         -- Log Action
11471
         SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11472
          FROM PROJECTS proj,
11473
               RELEASE_TAGS rt
11474
         WHERE rt.PROJ_ID = proj.PROJ_ID
11475
         AND   rt.RTAG_ID = RtagId;
11476
 
11477
         Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 11478
      END IF;
11479
 
3959 dpurdie 11480
END;
1373 dpurdie 11481
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11482
END PK_PLANNED;
4040 dpurdie 11483
 
3959 dpurdie 11484
/
4040 dpurdie 11485
--------------------------------------------------------
11486
--  DDL for Package Body PK_PROJECT
11487
--------------------------------------------------------
11488
 
5172 dpurdie 11489
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PROJECT" IS
1373 dpurdie 11490
 
3959 dpurdie 11491
    /*------------------------------------------------------------------------*/
11492
    PROCEDURE update_base_url (
11493
    nprojid   IN  projects.proj_id%TYPE,
11494
    sbaseurl  IN  VARCHAR2
11495
    ) IS
11496
    BEGIN
1373 dpurdie 11497
 
3959 dpurdie 11498
    UPDATE projects
11499
    SET base_url = sbaseurl
11500
    WHERE proj_id = nprojid;
11501
 
11502
    END update_base_url;
11503
 
11504
/*------------------------------------------------------------------------*/
11505
    PROCEDURE update_project_config (
11506
    nprojid   IN  projects.proj_id%TYPE,
11507
    sbaseurl  IN  VARCHAR2,
11508
    sjirakey  IN  VARCHAR2
11509
    ) IS
11510
    BEGIN
11511
 
11512
    UPDATE projects
11513
    SET base_url = sbaseurl,
11514
        jira_key = sjirakey
11515
    WHERE proj_id = nprojid;
11516
 
11517
    END update_project_config;
11518
    /*------------------------------------------------------------------------*/
11519
 
11520
    END pk_project;
4040 dpurdie 11521
 
3959 dpurdie 11522
/
4040 dpurdie 11523
--------------------------------------------------------
11524
--  DDL for Package Body PK_RELEASE
11525
--------------------------------------------------------
11526
 
5172 dpurdie 11527
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_RELEASE" IS
3959 dpurdie 11528
 
1373 dpurdie 11529
/*-------------------------------------------------------------------------------------------------------*/
6031 dpurdie 11530
PROCEDURE New_Release ( sReleaseName IN VARCHAR2,
11531
                        sReleaseComments IN VARCHAR2,
11532
                        nProjId IN NUMBER,
11533
                        nSourceRtagId IN NUMBER,
11534
                        sIsBranched IN CHAR,
5502 dpurdie 11535
                        nUserId IN NUMBER,
11536
                        cOfficial IN CHAR DEFAULT 'N'
11537
                        ) IS
1373 dpurdie 11538
 
3959 dpurdie 11539
RtagId NUMBER;
11540
ParentRtagId NUMBER;
11541
RecCount NUMBER := 0;
11542
VtreeId NUMBER;
1373 dpurdie 11543
 
3959 dpurdie 11544
BEGIN
11545
   /*--------------- Business Rules Here -------------------*/
11546
   -- Check for missing parameters
11547
   IF (sReleaseName IS NULL) OR (nUserId IS NULL)
11548
   THEN
11549
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId );
1373 dpurdie 11550
 
3959 dpurdie 11551
   END IF;
1373 dpurdie 11552
 
3959 dpurdie 11553
 
11554
   -- Check for duplicate Release Names
11555
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
11556
     FROM RELEASE_TAGS rt
11557
    WHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )
11558
      AND rt.PROJ_ID = nProjId;
11559
 
11560
   IF (RecCount > 0) THEN
11561
      RAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');
11562
   END IF;
11563
   /*-------------------------------------------------------*/
11564
 
11565
 
11566
   -- Get rtag_id
11567
   SELECT SEQ_RTAG_ID.NEXTVAL INTO RtagId FROM DUAL;
11568
 
11569
   SELECT SEQ_VTREE_ID.NEXTVAL INTO VtreeId FROM DUAL;
11570
 
11571
 
11572
 
11573
   -- Get Parent RtagId
11574
   ParentRtagId := GET_PARENT_RTAG ( RtagId, nSourceRtagId, sIsBranched );
11575
 
11576
   -- If the parent RTAG is NOT in this project then we cannot use it.
11577
   -- We must re-assign the parent to be the new release's RTAG_ID instead
11578
   -- else it will not show up in the projects release tree (DEVI-55480)
11579
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
11580
     FROM RELEASE_TAGS rt
11581
    WHERE rt.RTAG_ID = ParentRtagId
11582
      AND rt.PROJ_ID = nProjId;
11583
 
11584
   IF (RecCount = 0) THEN
11585
     ParentRtagId := RtagId;
11586
   END IF;
11587
 
11588
   -- Create new release
11589
   INSERT INTO RELEASE_TAGS ( RTAG_ID, RTAG_NAME, DESCRIPTION, CREATED_STAMP, CREATOR_ID,
11590
                        OFFICIAL, REBUILD_ENV, REBUILD_STAMP,
11591
                        PARENT_RTAG_ID, PROJ_ID, VTREE_ID )
11592
   VALUES ( RtagId,
11593
          sReleaseName,
11594
          sReleaseComments,
11595
          ORA_SYSDATE,
11596
          nUserId,
5502 dpurdie 11597
          cOfficial,
3959 dpurdie 11598
          'N',
11599
          0,
11600
          ParentRtagId,
11601
          nProjId,
11602
          VtreeId );
11603
 
11604
   -- If a source release is provided, clone its config spec branch information into the new release (DEVI-56650)
11605
   IF (NOT nSourceRtagId IS NULL)
11606
   THEN
11607
      UPDATE RELEASE_TAGS rtd
11608
      SET rtd.config_spec_branch = (SELECT rts.CONFIG_SPEC_BRANCH FROM RELEASE_TAGS rts WHERE rts.RTAG_ID = nSourceRtagId)
11609
      WHERE rtd.RTAG_ID = RtagId;
11610
   END IF;
11611
 
11612
   -- Update display Order
11613
   UPDATE_DISPLAY_ORDER ( nProjId );
11614
 
11615
   /* Log Project Action */
11616
   Log_Project_Action ( nProjId, 'new_release', nUserId, sReleaseName, RtagId );
11617
 
11618
 
11619
   -- Import Release Contents
11620
   IF (NOT nSourceRtagId IS NULL) THEN
5502 dpurdie 11621
      Import_Release_Contents ( nSourceRtagId, RtagId, nUserId, 1 );
3959 dpurdie 11622
   END IF;
11623
 
11624
END;
11625
/*-------------------------------------------------------------------------------------------------------*/
11626
PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER ) IS
11627
 
11628
 
11629
BEGIN
11630
 
11631
 
11632
   /*--------------- Business Rules Here -------------------*/
11633
   /*-------------------------------------------------------*/
11634
 
11635
   UPDATE RELEASE_TAGS urt SET
11636
   urt.DISPLAY_ORDER = (
11637
                  SELECT qry.REC_NUM
11638
                    FROM (
11639
                        SELECT rel.*, ROWNUM AS REC_NUM
11640
                          FROM (
11641
 
11642
                                SELECT rt.RTAG_ID,
11643
                                    rt.DISPLAY_ORDER,
11644
                                     DECODE( rt.PARENT_RTAG_ID,
11645
                                             rt.RTAG_ID, 0, rt.PARENT_RTAG_ID ) AS PARENT_RTAG_ID
11646
                                FROM RELEASE_TAGS rt
11647
                               WHERE rt.PROJ_ID = nProjId
11648
 
11649
                                ) rel
11650
                        START WITH rel.PARENT_RTAG_ID = 0
11651
                        CONNECT BY PRIOR rel.RTAG_ID = rel.PARENT_RTAG_ID
11652
                        ORDER SIBLINGS BY rel.DISPLAY_ORDER
11653
                        ) qry
11654
                     WHERE qry.RTAG_ID = urt.RTAG_ID
11655
                  )
11656
   WHERE urt.PROJ_ID = nProjId;
11657
 
11658
END;
11659
/*-------------------------------------------------------------------------------------------------------*/
11660
PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER  ) IS
11661
 
11662
   nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
11663
   SeqNum NUMBER;
11664
 
11665
BEGIN
11666
 
11667
 
11668
   /*--------------- Business Rules Here -------------------*/
11669
   /*-------------------------------------------------------*/
11670
 
11671
   nIdCollector := IN_LIST_NUMBER ( sRtagIdList );
11672
 
11673
   -- Set start sequence number
11674
   SeqNum := 1;
11675
 
11676
   FOR i IN 1..nIdCollector.COUNT
11677
   LOOP
11678
 
11679
      -- Update new display order
11680
      UPDATE RELEASE_TAGS rt SET
11681
         rt.DISPLAY_ORDER = SeqNum
11682
       WHERE rt.PROJ_ID = nProjId
11683
         AND rt.RTAG_ID = nIdCollector(i);
11684
 
11685
      SeqNum := SeqNum + 1;
11686
 
11687
   END LOOP;
11688
 
11689
END;
11690
/*-------------------------------------------------------------------------------------------------------*/
5502 dpurdie 11691
PROCEDURE Update_Release ( nRtagId IN NUMBER,
11692
                           sReleaseName IN VARCHAR2,
11693
                           sReleaseComments IN VARCHAR2,
11694
                           nParentRtagId IN NUMBER,
11695
                           nMASSRtagId IN NUMBER,
11696
                           nConfigSpecBranch IN VARCHAR2,
11697
                           sOwnerEmail IN VARCHAR2,
11698
                           nUserId IN NUMBER,
11699
                           cState IN VARCHAR,
5384 dpurdie 11700
                           nBuildAge in NUMBER,
11701
                           cLxr in CHAR) IS
3959 dpurdie 11702
 
11703
RecCount NUMBER := 0;
11704
ProjId NUMBER;
11705
 
11706
BEGIN
11707
 
11708
 
11709
   /*--------------- Business Rules Here -------------------*/
11710
   -- Check for missing parameters
11711
   IF (sReleaseName IS NULL) OR (nUserId IS NULL) OR (nRtagId IS NULL)
11712
   THEN
11713
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId ||', nRtagId='|| nRtagId);
11714
 
11715
   END IF;
11716
 
11717
 
11718
   -- Check for duplicate Release Names
11719
   SELECT rt.PROJ_ID INTO ProjId
11720
     FROM RELEASE_TAGS rt
11721
    WHERE rt.RTAG_ID = nRtagId;
11722
 
11723
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
11724
     FROM RELEASE_TAGS rt
11725
    WHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )
11726
      AND rt.RTAG_ID != nRtagId
11727
      AND rt.PROJ_ID = ProjId;
11728
 
11729
 
11730
   IF (RecCount > 0) THEN
11731
      RAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');
11732
   END IF;
11733
   /*-------------------------------------------------------*/
11734
 
11735
 
11736
 
11737
   -- Update release details
11738
   UPDATE RELEASE_TAGS rt SET
11739
   rt.RTAG_NAME = sReleaseName,
11740
   rt.DESCRIPTION = sReleaseComments,
11741
   rt.PARENT_RTAG_ID = nParentRtagId,
11742
   rt.ASSOC_MASS_REF = nMASSRtagId,
11743
   rt.CONFIG_SPEC_BRANCH = nConfigSpecBranch,
11744
   rt.OWNER_EMAIL = sOwnerEmail,
5172 dpurdie 11745
   rt.PRODUCT_STATE_USED = cState,
5384 dpurdie 11746
   rt.BUILD_AGE = nBuildAge,
11747
   rt.LXR = cLxr
3959 dpurdie 11748
   WHERE rt.RTAG_ID = nRtagId;
11749
 
11750
   -- Update display Order
11751
   UPDATE_DISPLAY_ORDER ( ProjId );
11752
 
11753
   /* Log Project Action */
11754
   Log_Project_Action ( ProjId, 'update_release', nUserId, 'Release Name: <br>Release Comments:', nRtagId );
11755
 
11756
 
11757
 
11758
 
11759
END;
11760
/*-------------------------------------------------------------------------------------------------------*/
11761
PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER ) IS
11762
 
11763
   RecCount NUMBER := 0;
11764
   sReleaseId VARCHAR2(4000);
11765
   ProjId NUMBER;
11766
 
11767
BEGIN
11768
   /*--------------- Business Rules Here -------------------*/
11769
   IF (nRtagId IS NULL)
11770
   THEN
11771
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId  );
11772
   END IF;
11773
 
11774
 
11775
 
11776
   -- Check for any kids
11777
   SELECT COUNT( rt.RTAG_ID ) INTO RecCount
11778
     FROM RELEASE_TAGS rt
11779
    WHERE rt.PARENT_RTAG_ID = nRtagId
11780
      AND rt.RTAG_ID != rt.PARENT_RTAG_ID;
11781
 
11782
   IF (RecCount > 0) THEN
11783
      RAISE_APPLICATION_ERROR (-20000, 'Cannot destroy this release. You need to destroy its children releases first.'  );
11784
   END IF;
11785
   /*-------------------------------------------------------*/
11786
 
11787
   -- Clear the release contents
11788
   Clean_Release_Contents ( nRtagId, nUserId );
11789
 
11790
   /* Log Project Action */
11791
   SELECT rt.PROJ_ID, rt.RTAG_NAME ||'['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']' INTO ProjId, sReleaseId
11792
     FROM RELEASE_TAGS rt
11793
    WHERE rt.RTAG_ID = nRtagId;
11794
 
11795
   Log_Project_Action ( ProjId, 'destroy_release', nUserId, sReleaseId, nRtagId );
11796
 
11797
 
11798
   -- Remove Release
11799
   DELETE
11800
     FROM RELEASE_TAGS rt
11801
    WHERE rt.RTAG_ID = nRtagId;
11802
 
11803
 
11804
 
11805
END;
11806
/*-------------------------------------------------------------------------------------------------------*/
5502 dpurdie 11807
PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER, nMode IN NUMBER default 0 ) IS
3959 dpurdie 11808
 
11809
   sSourceLocation VARCHAR2(4000);
11810
   sTargetLocation VARCHAR2(4000);
11811
   ProjId NUMBER;
11812
   cReleaseMode CHAR(1);
11813
   RconId NUMBER;
11814
 
11815
   -- this cursor gets the source release daemon configurations, ensuring that the
11816
   -- first record will be the master daemon, and subsequent records will be the slaves.
11817
   CURSOR curSrcReleaseConfigs IS
4308 dpurdie 11818
    SELECT daemon_hostname, gbe_id, gbe_buildfilter, bmcon_id, daemon_mode
3959 dpurdie 11819
     FROM RELEASE_CONFIG rc
11820
    WHERE rc.RTAG_ID = nSourceRtagId
11821
    ORDER BY rc.daemon_mode;
11822
    recSrcReleaseConfigs curSrcReleaseConfigs%ROWTYPE;
11823
 
11824
    -- this cursor looks for target release daemons
11825
   CURSOR curTgtReleaseConfigs IS
11826
    SELECT rcon_id
11827
     FROM RELEASE_CONFIG rc
11828
    WHERE rc.RTAG_ID = nTargetRtagId;
11829
    recTgtReleaseConfigs curTgtReleaseConfigs%ROWTYPE;
11830
 
11831
    -- this cursor looks for target release daemon run level entries
11832
   CURSOR curTgtReleaseConfigRunLevel IS
11833
    SELECT current_run_level
11834
     FROM RUN_LEVEL rl
11835
    WHERE rl.RCON_ID = recTgtReleaseConfigs.rcon_id;
11836
    recTgtReleaseConfigRunLevel curTgtReleaseConfigRunLevel%ROWTYPE;
11837
 
11838
BEGIN
11839
   /*--------------- Business Rules Here -------------------*/
11840
   IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)
11841
   THEN
11842
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );
11843
   END IF;
11844
 
11845
   IF (nSourceRtagId = nTargetRtagId) THEN
11846
      RAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );
11847
   END IF;
11848
 
11849
 
11850
   -- Check if Target release is in OPEN mode
5502 dpurdie 11851
   IF nMode = 0 THEN
11852
     SELECT rt.OFFICIAL  INTO  cReleaseMode
11853
       FROM RELEASE_TAGS rt
11854
      WHERE rt.RTAG_ID = nTargetRtagId;
6031 dpurdie 11855
 
5502 dpurdie 11856
     IF (cReleaseMode != 'N') THEN
11857
        RAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the contents.' );
11858
     END IF;
11859
  END IF;
3959 dpurdie 11860
 
11861
   -- check that the target release's daemons are all paused before we allow an import operation
11862
   OPEN curTgtReleaseConfigs;
11863
   FETCH curtgtReleaseConfigs INTO recTgtReleaseConfigs;
11864
 
11865
   WHILE curTgtReleaseConfigs%FOUND
11866
   LOOP
11867
      OPEN curTgtReleaseConfigRunLevel;
11868
      FETCH curTgtReleaseConfigRunLevel INTO recTgtReleaseConfigRunLevel;
11869
      IF curTgtReleaseConfigRunLevel%FOUND THEN
11870
         IF (recTgtReleaseConfigRunLevel.current_run_level IS NULL) OR
11871
            (recTgtReleaseConfigRunLevel.current_run_level <> 2) THEN
11872
            RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
11873
         END IF;
1373 dpurdie 11874
      ELSE
3959 dpurdie 11875
         -- we don't know what the daemon run level is so err on the side of caution
11876
         RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
1373 dpurdie 11877
      END IF;
3959 dpurdie 11878
      CLOSE curTgtReleaseConfigRunLevel;
1373 dpurdie 11879
 
3959 dpurdie 11880
      FETCH curTgtReleaseConfigs INTO recTgtReleaseConfigs;
11881
   END LOOP;
1373 dpurdie 11882
 
3959 dpurdie 11883
   CLOSE curTgtReleaseConfigs;
1373 dpurdie 11884
 
11885
 
3959 dpurdie 11886
   /*-------------------------------------------------------*/
1373 dpurdie 11887
 
3959 dpurdie 11888
   -- Clean target contents
11889
   Clean_Release_Contents ( nTargetRtagId, nUserId );
1373 dpurdie 11890
 
11891
 
3959 dpurdie 11892
   -- Import Released Area Contents
5502 dpurdie 11893
   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 11894
   SELECT nTargetRtagId AS RTAG_ID,
11895
         rc.PV_ID,
11896
         rc.BASE_VIEW_ID,
11897
         rc.INSERT_STAMP,
11898
         rc.INSERTOR_ID,
11899
         rc.PKG_STATE,
11900
         rc.PKG_ID,
5384 dpurdie 11901
         rc.DEPRECATED_STATE,
11902
         rc.PRODUCT_STATE,
11903
         rc.SDKTAG_ID
3959 dpurdie 11904
     FROM RELEASE_CONTENT rc
11905
    WHERE rc.RTAG_ID = nSourceRtagId;
11906
 
11907
 
11908
   -- Import any Pegged Version settings from the source release
11909
   INSERT INTO PEGGED_VERSIONS ( RTAG_ID, PV_ID )
11910
   SELECT nTargetRtagId AS RTAG_ID,
11911
          pegv.PV_ID
11912
     FROM PEGGED_VERSIONS pegv
11913
    WHERE pegv.RTAG_ID = nSourceRtagId;
11914
 
11915
   -- Import any Advisory Ripple settings from the source release
11916
   INSERT INTO ADVISORY_RIPPLE ( RTAG_ID, PV_ID )
11917
   SELECT nTargetRtagId AS RTAG_ID,
11918
          avr.PV_ID
11919
     FROM ADVISORY_RIPPLE avr
11920
    WHERE avr.RTAG_ID = nSourceRtagId;
11921
 
11922
 
11923
   --Import Release Configuration Information
11924
   OPEN curSrcReleaseConfigs;
11925
   FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
11926
 
4308 dpurdie 11927
     WHILE curSrcReleaseConfigs%FOUND
3959 dpurdie 11928
   LOOP
11929
      -- add a daemon to the target release
5502 dpurdie 11930
      PK_BUILDAPI.duplicate_daemon_config( nTargetRtagId,
11931
                                     recSrcReleaseConfigs.bmcon_id,
11932
                                     recSrcReleaseConfigs.daemon_hostname,
11933
                                     recSrcReleaseConfigs.gbe_id,
4308 dpurdie 11934
                                     recSrcReleaseConfigs.daemon_mode ,
11935
                                     recSrcReleaseConfigs.gbe_buildfilter );
3959 dpurdie 11936
 
11937
      FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
11938
   END LOOP;
11939
 
11940
   CLOSE curSrcReleaseConfigs;
11941
 
11942
 
11943
 
11944
   -- Import Ignore Warning states
11945
   INSERT INTO IGNORE_WARNINGS ( RTAG_ID, PV_ID, DPV_ID )
11946
   SELECT nTargetRtagId AS RTAG_ID,
11947
          igw.PV_ID,
11948
          igw.DPV_ID
11949
     FROM IGNORE_WARNINGS igw
11950
    WHERE igw.rtag_id = nSourceRtagId;
11951
 
11952
 
11953
   /* Log Project Action */
11954
   -- Get Source Location
11955
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sSourceLocation
11956
     FROM RELEASE_TAGS rt,
11957
           PROJECTS pr
11958
    WHERE rt.PROJ_ID = pr.PROJ_ID
11959
      AND rt.RTAG_ID = nSourceRtagId;
11960
 
11961
   -- Get Target Location
11962
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sTargetLocation
11963
     FROM RELEASE_TAGS rt,
11964
           PROJECTS pr
11965
    WHERE rt.PROJ_ID = pr.PROJ_ID
11966
      AND rt.RTAG_ID = nTargetRtagId;
11967
 
11968
   -- Get project id
11969
   SELECT rt.PROJ_ID  INTO  ProjId
11970
     FROM RELEASE_TAGS rt
11971
    WHERE rt.RTAG_ID = nTargetRtagId;
11972
 
11973
   Log_Project_Action ( ProjId, 'import_release_contents', nUserId, 'SOURCE: '|| sSourceLocation ||'   TARGET: '|| sTargetLocation, nTargetRtagId );
11974
END;
11975
 
11976
 
11977
 
1373 dpurdie 11978
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11979
PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER ) IS
1373 dpurdie 11980
 
3959 dpurdie 11981
   RecCount NUMBER;
11982
        rconIdList VARCHAR2(4000);
1373 dpurdie 11983
 
3959 dpurdie 11984
BEGIN
11985
   /*--------------- Business Rules Here -------------------*/
11986
   IF (nRtagId IS NULL)
11987
   THEN
11988
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId  );
11989
   END IF;
1373 dpurdie 11990
 
11991
 
3959 dpurdie 11992
   -- Check if other release references this release
11993
   SELECT COUNT( rl.RTAG_ID ) INTO RecCount
11994
     FROM RELEASE_LINKS rl
11995
    WHERE rl.REF_RTAG_ID = nRtagId;
1373 dpurdie 11996
 
3959 dpurdie 11997
   IF (RecCount > 0) THEN
11998
      RAISE_APPLICATION_ERROR (-20000, 'This release is referenced by other release and cannot be destroyed.'  );
11999
   END IF;
12000
   /*-------------------------------------------------------*/
1373 dpurdie 12001
 
3959 dpurdie 12002
   -- Delete Release links
12003
   DELETE
12004
     FROM RELEASE_LINKS rl
12005
    WHERE rl.RTAG_ID = nRtagId;
12006
 
12007
   -- Delete ignore warning
12008
   DELETE
12009
     FROM IGNORE_WARNINGS iw
12010
    WHERE iw.RTAG_ID = nRtagId;
12011
 
12012
 
12013
   -- Delete Build Order cached calculations
12014
   DELETE
12015
     FROM BUILD_ORDER bo
12016
    WHERE bo.RTAG_ID = nRtagId;
12017
 
12018
 
12019
   -- Delete Notification History
12020
   DELETE
12021
     FROM NOTIFICATION_HISTORY nh
12022
    WHERE nh.RTAG_ID = nRtagId;
12023
 
12024
 
12025
   -- Delete Released Area Contents
12026
   DELETE
12027
     FROM RELEASE_CONTENT rc
12028
    WHERE rc.RTAG_ID = nRtagId;
12029
 
12030
 
12031
   -- Delete Work In Progress Area Contents
12032
   DELETE
12033
     FROM WORK_IN_PROGRESS wip
12034
    WHERE wip.RTAG_ID = nRtagId;
12035
 
12036
 
12037
   -- Delete Pending Area Contents
12038
   DELETE
12039
     FROM PLANNED pl
12040
    WHERE pl.RTAG_ID = nRtagId;
12041
 
12042
   -- Delete Deprecated Packages
12043
   DELETE
12044
     FROM DEPRECATED_PACKAGES dp
12045
    WHERE dp.RTAG_ID = nRtagId;
12046
 
12047
   -- Delete Project Action Log
12048
   DELETE
12049
     FROM PROJECT_ACTION_LOG pal
12050
    WHERE pal.RTAG_ID = nRtagId;
12051
 
12052
   -- Delete Do Not Ripple Contents
12053
   DELETE
12054
     FROM DO_NOT_RIPPLE dnr
12055
    WHERE dnr.RTAG_ID = nRtagId;
12056
 
12057
   -- Delete Dash Board Contents
12058
   DELETE
12059
     FROM DASH_BOARD db
12060
    WHERE db.RTAG_ID = nRtagId;
12061
 
12062
   -- Delete Advisory Ripple Contents
12063
   DELETE
12064
     FROM ADVISORY_RIPPLE adr
12065
    WHERE adr.RTAG_ID = nRtagId;
12066
 
12067
   -- Delete Archive Action Log
12068
   DELETE
12069
     FROM ARCHIVE_ACTION_LOG aal
12070
    WHERE aal.RTAG_ID = nRtagId;
12071
 
12072
   -- Delete Daemons For This Release
12073
   FOR rcon IN (SELECT rc.RCON_ID FROM RELEASE_CONFIG rc WHERE rc.RTAG_ID = nRtagId )
12074
   LOOP
12075
      rconIdList := rconIdList || rcon.RCON_ID || ',';
12076
   END LOOP;
12077
 
12078
   pk_buildapi.DELETE_DAEMON(rconIdList);
12079
 
12080
   -- Delete Release Metrics Contents
12081
   DELETE
12082
     FROM RELEASE_METRICS rm
12083
    WHERE rm.RTAG_ID = nRtagId;
12084
 
12085
   -- Delete Release Configuration Contents
12086
   DELETE
12087
     FROM RELEASE_CONFIG rc
12088
    WHERE rc.RTAG_ID = nRtagId;
12089
 
12090
   -- Delete Pegged Version Contents
12091
   DELETE
12092
     FROM PEGGED_VERSIONS pegv
12093
    WHERE pegv.RTAG_ID = nRtagId;
12094
 
12095
END;
12096
/*-------------------------------------------------------------------------------------------------------*/
12097
FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR )  RETURN NUMBER IS
12098
 
12099
   nSourceParentRtagId NUMBER;
12100
 
12101
BEGIN
12102
   /*--------------- Business Rules Here -------------------*/
12103
   IF (nRtagId IS NULL) OR (cIsBranch IS NULL)
12104
   THEN
12105
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId ||', cIsBranch= '|| cIsBranch );
12106
   END IF;
12107
   /*-------------------------------------------------------*/
12108
 
12109
 
12110
   IF ( nSourceRtagId IS NULL ) THEN
12111
      -- Create new on main branch
12112
      RETURN nRtagId;
12113
 
12114
   ELSE
12115
      -- Create from source rtag_id
12116
 
12117
      -- Find parent of Source RtagId
12118
      SELECT rt.PARENT_RTAG_ID INTO nSourceParentRtagId
12119
        FROM RELEASE_TAGS rt
12120
       WHERE rt.RTAG_ID = nSourceRtagId;
12121
 
12122
      IF (UPPER(cIsBranch) = 'Y') THEN
12123
         RETURN nSourceRtagId;
12124
      ELSE
12125
         IF (nSourceRtagId = nSourceParentRtagId) THEN
12126
            RETURN nRtagId;
12127
         ELSE
12128
            RETURN nSourceParentRtagId;
1373 dpurdie 12129
         END IF;
12130
      END IF;
12131
 
3959 dpurdie 12132
 
12133
   END IF;
12134
 
12135
 
12136
END;
1373 dpurdie 12137
/*-------------------------------------------------------------------------------------------------------*/
12138
 
3959 dpurdie 12139
-- PROCEDURE Get_Next_Version ( nSourceRtagId IN NUMBER,
12140
--                       sNextVersion OUT VARCHAR2,
12141
--                       nNextLifeCycle OUT NUMBER,
12142
--                       nParentRtagId OUT NUMBER,
12143
--                       nProjId IN NUMBER ) IS
12144
--
12145
-- SourceBranchCount NUMBER;
12146
-- ProjRootVersion VARCHAR2(4000);
12147
-- LastLifeCycle NUMBER;
12148
-- ROOT_VERSION_NOT_FOUND NUMBER := -1;
12149
-- SET_PARENT_AS_YOURSELF NUMBER := -1;
12150
--
12151
-- SourceProjId NUMBER;
12152
-- SourceVersion RELEASE_TAGS.RTAG_VERSION%TYPE;
12153
-- SourceLifeCycle RELEASE_TAGS.RTAG_LIFE_CYCLE%TYPE;
12154
--
12155
-- BEGIN
12156
--    /*--------------- Business Rules Here -------------------*/
12157
--    /*-------------------------------------------------------*/
12158
--
12159
--
12160
--    BEGIN
12161
--       -- Get Project root version
12162
--       SELECT rt.RTAG_VERSION INTO ProjRootVersion
12163
--         FROM RELEASE_TAGS rt
12164
--        WHERE rt.PROJ_ID = nProjId
12165
--          AND rt.RTAG_ID = rt.PARENT_RTAG_ID;
12166
--
12167
--       EXCEPTION
12168
--       WHEN NO_DATA_FOUND THEN
12169
--       ProjRootVersion := ROOT_VERSION_NOT_FOUND;
12170
--    END;
12171
--
12172
--
12173
--
12174
--
12175
--    BEGIN
12176
--       -- Get info for source rtagid
12177
--       SELECT rt.PROJ_ID, rt.RTAG_VERSION, rt.RTAG_LIFE_CYCLE  INTO  SourceProjId, SourceVersion, SourceLifeCycle
12178
--         FROM RELEASE_TAGS rt
12179
--        WHERE rt.RTAG_ID = nSourceRtagId;
12180
--
12181
--       EXCEPTION
12182
--       WHEN NO_DATA_FOUND THEN
12183
--       SourceProjId := NULL;
12184
--       SourceVersion := NULL;
12185
--       SourceLifeCycle := NULL;
12186
--    END;
12187
--
12188
--
12189
--    IF (nSourceRtagId IS NULL)  OR  ( SourceProjId != nProjId ) THEN
12190
--
12191
--       /* Blank Release Required  OR  Release imported from other project */
12192
--
12193
--       IF (ProjRootVersion = ROOT_VERSION_NOT_FOUND) THEN
12194
--          /* No Releases found in the project, hence calculate next version available.  */
12195
--
12196
--          -- Set parent rtag
12197
--          nParentRtagId := SET_PARENT_AS_YOURSELF;
12198
--
12199
--
12200
--          BEGIN
12201
--             -- Get Next Available Global Root Version
12202
--             SELECT MAX( TO_NUMBER( rt.RTAG_VERSION ) )  INTO  ProjRootVersion
12203
--               FROM RELEASE_TAGS rt
12204
--              WHERE rt.RTAG_ID = rt.PARENT_RTAG_ID;
12205
--
12206
--             -- Set Next Rtag Version
12207
--             sNextVersion := CAST( ProjRootVersion + 1 AS VARCHAR2 );
12208
--
12209
--             -- Restart Lifecycle
12210
--             nNextLifeCycle := 0;
12211
--
12212
--
12213
--             EXCEPTION
12214
--             WHEN NO_DATA_FOUND THEN
12215
--             -- Release Manager has no releases, hence start from 1
12216
--             sNextVersion := '1';
12217
--             nNextLifeCycle := 0;
12218
--
12219
--          END;
12220
--
12221
--
12222
--
12223
--       ELSE
12224
--          /* Releases found in this project. */
12225
--
12226
--          SELECT qry.RTAG_ID, qry.RTAG_LIFE_CYCLE  INTO nParentRtagId, LastLifeCycle
12227
--            FROM (
12228
--                SELECT rt.RTAG_ID, rt.RTAG_LIFE_CYCLE
12229
--                  FROM RELEASE_TAGS rt
12230
--                 WHERE rt.PROJ_ID = nProjId
12231
--                   AND rt.RTAG_VERSION = ProjRootVersion
12232
--                 ORDER BY rt.RTAG_LIFE_CYCLE DESC
12233
--                  ) qry
12234
--           WHERE ROWNUM = 1;
12235
--
12236
--
12237
--          -- Set same Rtag Version
12238
--          sNextVersion := ProjRootVersion;
12239
--
12240
--          -- Increase Lifecycle
12241
--          nNextLifeCycle := LastLifeCycle + 1;
12242
--
12243
--       END IF;
12244
--
12245
--
12246
--
12247
--    ELSE
12248
--       /* Create Release From other release within this project */
12249
--
12250
--       -- Set parent id
12251
--       nParentRtagId := nSourceRtagId;
12252
--
12253
--
12254
--       -- Get number of source branches
12255
--       SELECT COUNT(rt.RTAG_ID) INTO SourceBranchCount
12256
--         FROM RELEASE_TAGS rt
12257
--        WHERE rt.PROJ_ID = nProjId
12258
--          AND rt.PARENT_RTAG_ID = nSourceRtagId;
12259
--
12260
--
12261
--       IF SourceBranchCount = 0 THEN
12262
--          /* Release is Head (i.e. Tip on its branch ) */
12263
--
12264
--          -- Set Next Rtag Version
12265
--          sNextVersion := SourceVersion;
12266
--
12267
--          -- Increase Lifecycle
12268
--          nNextLifeCycle := SourceLifeCycle + 1;
12269
--
12270
--
12271
--       ELSIF SourceBranchCount = 1 THEN
12272
--          /* Release IS NOT Head, but can be branched */
12273
--
12274
--          -- Set Next Rtag Version
12275
--          sNextVersion := SourceVersion ||'.'|| SourceLifeCycle;
12276
--
12277
--          -- Reset Lifecycle to 1
12278
--          nNextLifeCycle := 1;
12279
--
12280
--
12281
--       ELSE
12282
--          -- Limit of two branches is reached
12283
--          RAISE_APPLICATION_ERROR (-20000, 'This release is already branched and cannot be branched again. ');
12284
--
12285
--       END IF;
12286
--
12287
--
12288
--
12289
--
12290
--
12291
--
12292
--    END IF;
12293
--
12294
--
12295
-- END;
12296
 
12297
/*-------------------------------------------------------------------------------------------------------*/
12298
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
12299
 
12300
   IsBaseView CHAR(1);
12301
 
12302
BEGIN
12303
 
12304
   -- Check if the view is BASE VIEW
12305
   SELECT vi.BASE_VIEW INTO IsBaseView
12306
     FROM VIEWS vi
12307
    WHERE vi.VIEW_ID = ViewId;
12308
 
5172 dpurdie 12309
   IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 12310
      -- Get Base view content
12311
      OPEN RecordSet FOR
12312
      SELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,
12313
            rel.deprecated_state,
12314
            pv.pv_id,
12315
            pkg.pkg_name,
12316
            pv.pkg_version,
12317
            pv.dlocked,
12318
            pv.pv_description,
12319
            pv.BUILD_TYPE
12320
        FROM release_content rel,
12321
             packages pkg,
12322
             package_versions pv
12323
       WHERE pv.pkg_id = pkg.pkg_id
12324
         AND rel.pv_id = pv.pv_id
12325
         AND rel.BASE_VIEW_ID = ViewId
12326
         AND rel.RTAG_ID = RtagId
12327
       ORDER BY UPPER(pkg.PKG_NAME);
12328
 
12329
   ELSE
12330
 
12331
       -- Get non base view content
12332
      OPEN RecordSet FOR
12333
      SELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,
12334
            rel.deprecated_state,
12335
            pv.pv_id,
12336
            pkg.pkg_name,
12337
            pv.pkg_version,
12338
            pv.dlocked,
12339
            pv.pv_description,
12340
            pv.BUILD_TYPE
12341
        FROM release_content rel,
12342
             packages pkg,
12343
             package_versions pv,
12344
            VIEW_DEF vd
12345
       WHERE pv.pkg_id = pkg.pkg_id
12346
         AND rel.pv_id = pv.pv_id
12347
         AND vd.VIEW_ID = ViewId
12348
         AND vd.PKG_ID = pv.PKG_ID
12349
         AND rel.RTAG_ID = RtagId
12350
       ORDER BY UPPER(pkg.PKG_NAME);
12351
 
12352
   END IF;
12353
 
12354
 
12355
 
12356
 
12357
END;
12358
/*-------------------------------------------------------------------------------------------------------*/
4585 dpurdie 12359
  -- Add or Replace a package to the specified release
3959 dpurdie 12360
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
12361
   ReleaseLocation VARCHAR2(4000);
12362
   nPkgId NUMBER;
12363
   sVExt VARCHAR2(4000);
12364
   IsPatch PACKAGE_VERSIONS.IS_PATCH%TYPE := 'N';
5172 dpurdie 12365
   default_pegged CHAR := 'N';
12366
   default_advisory_ripple CHAR := 'N';
3959 dpurdie 12367
 
12368
   -- Find package for replacement
12369
   CURSOR curReplacePkg IS
12370
    SELECT pv.PV_ID
12371
     FROM RELEASE_CONTENT rc,
12372
           PACKAGE_VERSIONS pv
12373
    WHERE rc.PV_ID = pv.PV_ID
12374
      AND rc.RTAG_ID = RtagId
12375
      AND pv.PKG_ID = nPkgId
12376
      AND NVL( pv.V_EXT, 'LINK_A_NULL' ) = NVL( sVExt, 'LINK_A_NULL' );
12377
    recReplacePkg curReplacePkg%ROWTYPE;
12378
 
12379
BEGIN
12380
   -- Get is_patch, pkg_id and v_ext
5502 dpurdie 12381
   SELECT pv.IS_PATCH, pv.PKG_ID, pv.V_EXT
5172 dpurdie 12382
     INTO IsPatch, nPkgId, sVExt
3959 dpurdie 12383
     FROM PACKAGE_VERSIONS pv
12384
    WHERE pv.PV_ID = newPvId;
12385
 
12386
   -- Never put patch in relesed area
12387
   IF (IsPatch != 'Y') OR (IsPatch IS NULL) THEN
12388
 
12389
      -- Try to get a package to be replaced with this new one.
12390
      -- Use unique constraint of PKG_ID and V_EXT
12391
      OPEN curReplacePkg;
12392
       FETCH curReplacePkg INTO recReplacePkg;
12393
 
12394
       IF curReplacePkg%FOUND THEN
12395
         -- Replace package
12396
         REPLACE_PACKAGE ( newPvId, recReplacePkg.PV_ID, RtagId, UserId );
12397
 
12398
      ELSE
12399
         -- Add new package
12400
         INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )
12401
         VALUES( RtagId, newPvId, ViewId, Ora_Sysdate, UserId, 0);
5502 dpurdie 12402
 
5172 dpurdie 12403
        -- Insert default package flags
12404
        -- Get Package Level defaults
5502 dpurdie 12405
 
12406
        SELECT pkg.default_pegged, pkg.DEFAULT_ADVISORY_RIPPLE
5172 dpurdie 12407
         INTO  default_pegged, default_advisory_ripple
12408
         FROM  PACKAGES pkg
5502 dpurdie 12409
        WHERE  pkg.PKG_ID = nPkgId;
3959 dpurdie 12410
 
5172 dpurdie 12411
        -- Apply to the newly inserted package
12412
        IF default_pegged = 'Y' THEN
12413
          INSERT INTO PEGGED_VERSIONS ( RTAG_ID, PV_ID ) VALUES (RtagId, newPvId);
12414
          -- Log_Action ( newPvId, 'action', UserId, 'Set default package peg' );
12415
        END IF;
5502 dpurdie 12416
 
5172 dpurdie 12417
        IF default_advisory_ripple = 'Y' THEN
12418
          INSERT INTO ADVISORY_RIPPLE ( RTAG_ID, PV_ID ) VALUES (RtagId, newPvId);
12419
          -- Log_Action ( newPvId, 'action', UserId, 'Set default advisory ripple' );
12420
        END IF;
3959 dpurdie 12421
 
5172 dpurdie 12422
        -- Mark Release as chnaged
12423
        SET_RELEASE_MODIFIED(RtagId);
12424
        RUN_POST_ACTIONS(newPvId, RtagId);
5502 dpurdie 12425
 
3959 dpurdie 12426
          /* LOG ACTION */
12427
         SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
12428
           FROM PROJECTS proj,
12429
                 RELEASE_TAGS rt
12430
          WHERE rt.PROJ_ID = proj.PROJ_ID
12431
            AND rt.RTAG_ID = RtagId;
12432
 
12433
         Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );
12434
 
1373 dpurdie 12435
      END IF;
3959 dpurdie 12436
      CLOSE curReplacePkg;
12437
   END IF;
5172 dpurdie 12438
END;
3959 dpurdie 12439
 
1373 dpurdie 12440
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12441
PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 12442
 
3959 dpurdie 12443
   ReleaseLocation VARCHAR2(4000);
12444
   sPkgVersion VARCHAR2(4000);
5172 dpurdie 12445
   nSdkTag NUMBER;
3959 dpurdie 12446
BEGIN
5172 dpurdie 12447
   -- Trap SDK Replacement
12448
   -- This is a last ditch check. The application should not allow this condition to happen
12449
      SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
12450
      WHERE rtag_id = RtagId
12451
       AND pv_id = oldPvId;
5502 dpurdie 12452
 
5172 dpurdie 12453
     If nSdkTag IS NOT NULL  THEN
12454
       raise_application_error (-20000, 'Attempt to replace a package provided by an SDK.');
12455
     END IF;
3959 dpurdie 12456
 
12457
   -- Replace Package
12458
    UPDATE RELEASE_CONTENT
12459
       SET pv_id = newPvId,
12460
           insert_stamp = Ora_Sysdate,
12461
           insertor_id = UserId,
12462
         product_state = NULL
12463
     WHERE rtag_id = RtagId
12464
       AND pv_id = oldPvId;
12465
 
12466
   -- update the pegging table
12467
   UPDATE PEGGED_VERSIONS
12468
      SET pv_id = newPvId
12469
     WHERE rtag_id = RtagId
12470
       AND pv_id = oldPvId;
12471
 
12472
   -- update the advisory_ripple table
12473
   UPDATE ADVISORY_RIPPLE
12474
      SET pv_id = newPvId
12475
     WHERE rtag_id = RtagId
12476
       AND pv_id = oldPvId;
12477
 
12478
    /* LOG ACTION */
12479
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
12480
     FROM PROJECTS proj,
12481
           RELEASE_TAGS rt
12482
    WHERE rt.PROJ_ID = proj.PROJ_ID
12483
      AND rt.RTAG_ID = RtagId;
12484
 
12485
   SELECT pv.PKG_VERSION INTO sPkgVersion
12486
     FROM PACKAGE_VERSIONS pv
12487
    WHERE pv.PV_ID = newPvId;
12488
 
5172 dpurdie 12489
   SET_RELEASE_MODIFIED(RtagId);
3959 dpurdie 12490
   Log_Action ( oldPvId, 'replaced_with', UserId, 'Replacing with: '|| sPkgVersion ||' at '|| ReleaseLocation );
12491
   Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );
12492
 
12493
END;
12494
/*-------------------------------------------------------------------------------------------------------*/
12495
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
12496
   ReleaseLocation VARCHAR2(4000);
5172 dpurdie 12497
   nSdkTag NUMBER;
3959 dpurdie 12498
BEGIN
5172 dpurdie 12499
   -- Trap SDK Package Deletion
12500
   -- This is a last ditch check. The application should not allow this condition to happen
12501
      SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
12502
      WHERE rtag_id = RtagId
12503
       AND pv_id = PvId;
5502 dpurdie 12504
 
5172 dpurdie 12505
     If nSdkTag IS NOT NULL  THEN
12506
       raise_application_error (-20000, 'Attempt to delete a package provided by an SDK.');
12507
     END IF;
3959 dpurdie 12508
 
12509
   -- Delete old package
12510
   DELETE
12511
     FROM RELEASE_CONTENT rc
12512
    WHERE rc.PV_ID = PvId
12513
      AND rc.RTAG_ID = RtagId;
12514
 
12515
 
12516
   /* LOG ACTION */
12517
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
12518
     FROM PROJECTS proj,
12519
          RELEASE_TAGS rt
12520
    WHERE rt.PROJ_ID = proj.PROJ_ID
12521
      AND rt.RTAG_ID = RtagId;
12522
 
12523
   Log_Action ( PvId, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );
12524
 
12525
 
12526
END;
12527
/*-------------------------------------------------------------------------------------------------------*/
12528
PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
12529
   ReleaseLocation VARCHAR2(4000);
12530
 
12531
   CURSOR curMatchingPackage IS
12532
    SELECT mpv.PV_ID
12533
     FROM RELEASE_CONTENT rc,
12534
           PACKAGE_VERSIONS mpv,
12535
         PACKAGE_VERSIONS pv
12536
    WHERE rc.PV_ID = mpv.PV_ID
12537
      AND rc.RTAG_ID = RtagId
12538
      AND pv.PV_ID = PvId
12539
      AND pv.PKG_ID = mpv.PKG_ID
12540
      AND NVL( pv.V_EXT, '|LINK_A_NULL|' ) = NVL( mpv.V_EXT, '|LINK_A_NULL|' );
12541
    recMatchingPackage curMatchingPackage%ROWTYPE;
12542
 
12543
BEGIN
12544
 
12545
   OPEN curMatchingPackage;
12546
    FETCH curMatchingPackage INTO recMatchingPackage;
12547
 
12548
    IF curMatchingPackage%FOUND THEN
12549
      -- Delete old package
12550
      DELETE
12551
        FROM RELEASE_CONTENT rc
12552
       WHERE rc.PV_ID = recMatchingPackage.PV_ID
12553
         AND rc.RTAG_ID = RtagId;
12554
 
12555
 
12556
      /* LOG ACTION */
12557
      SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
12558
        FROM PROJECTS proj,
12559
              RELEASE_TAGS rt
12560
       WHERE rt.PROJ_ID = proj.PROJ_ID
12561
         AND rt.RTAG_ID = RtagId;
12562
 
12563
      Log_Action ( recMatchingPackage.PV_ID, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );
12564
 
12565
   END IF;
12566
 
12567
 
12568
   CLOSE curMatchingPackage;
12569
 
12570
 
12571
 
12572
 
12573
END;
12574
/*-------------------------------------------------------------------------------------------------------*/
12575
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
12576
 
12577
   ReturnValue NUMBER;
12578
 
12579
BEGIN
12580
   SELECT rc.BASE_VIEW_ID INTO ReturnValue
12581
     FROM RELEASE_CONTENT rc
12582
    WHERE rc.RTAG_ID = RtagId
12583
      AND rc.PV_ID = PvId;
12584
 
12585
   RETURN ReturnValue;
12586
END;
12587
/*-------------------------------------------------------------------------------------------------------*/
12588
PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER ) IS
12589
 
12590
BEGIN
12591
   -- Reset Ignore warnings up-the-tree
12592
   RESET_IGNORE_WARNINGS ( TO_CHAR(PvId), RtagId );
12593
 
12594
   -- Refresh Package states
12595
   TOUCH_RELEASE ( RtagId );
12596
 
12597
END;
12598
/*-------------------------------------------------------------------------------------------------------*/
12599
PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER ) IS
12600
   CURSOR curReleases IS
12601
    SELECT rc.RTAG_ID
12602
     FROM RELEASE_CONTENT rc
12603
    WHERE rc.PV_ID = PvId;
12604
    recReleases curReleases%ROWTYPE;
12605
 
12606
BEGIN
12607
 
12608
   OPEN curReleases;
12609
    FETCH curReleases INTO recReleases;
12610
 
12611
   WHILE curReleases%FOUND
12612
   LOOP
12613
 
12614
      RUN_POST_ACTIONS ( PvId, recReleases.RTAG_ID );
12615
 
12616
      FETCH curReleases INTO recReleases;
12617
   END LOOP;
12618
 
12619
   CLOSE curReleases;
12620
 
12621
END;
12622
/*-------------------------------------------------------------------------------------------------------*/
12623
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
12624
 
12625
BEGIN
12626
 
12627
   UPDATE RELEASE_CONTENT rc SET
12628
   rc.BASE_VIEW_ID = NewViewId
12629
   WHERE rc.PV_ID = PvId
12630
     AND rc.RTAG_ID = RtagId;
12631
 
12632
END;
12633
/*-------------------------------------------------------------------------------------------------------*/
12634
PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 ) IS
12635
 
12636
   RowCount NUMBER;
12637
 
12638
 
12639
   CURSOR curPackageClash IS
12640
   SELECT pkg.PKG_NAME,
12641
         er.*
12642
     FROM (
12643
 
12644
           /* Get existing referenced packages */
12645
         SELECT pv.PKG_ID,
12646
                pv.V_EXT
12647
           FROM RELEASE_LINKS rl,
12648
                 RELEASE_CONTENT rc,
12649
                 PACKAGE_VERSIONS pv
12650
          WHERE rl.RTAG_ID = nRtagId
12651
            AND rl.REF_RTAG_ID = rc.RTAG_ID
12652
            AND rc.PV_ID = pv.PV_ID
12653
 
12654
            ) er,
12655
         (
12656
 
12657
         /* Get current reference packages */
12658
         SELECT pv.PKG_ID,
12659
                pv.V_EXT
12660
           FROM RELEASE_CONTENT rc,
12661
                 PACKAGE_VERSIONS pv
12662
          WHERE rc.RTAG_ID = nRefRtagId
12663
            AND rc.PV_ID = pv.PV_ID
12664
 
12665
         ) cr,
12666
         PACKAGES PKG
12667
    WHERE er.PKG_ID = cr.PKG_ID
12668
      AND NVL(er.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
12669
      AND er.PKG_ID = pkg.PKG_ID;
12670
 
12671
   recPackageClash curPackageClash%ROWTYPE;
12672
 
12673
BEGIN
12674
   /*--------------- Business Rules Here -------------------*/
12675
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
12676
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
12677
   END IF;
12678
 
12679
   IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THEN
12680
      RAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );
12681
   END IF;
12682
   /*-------------------------------------------------------*/
12683
   ProblemString := NULL;
12684
 
12685
 
12686
   -- Check if release already has references
12687
   SELECT COUNT(rl.RTAG_ID)  INTO  RowCount
12688
     FROM RELEASE_LINKS rl
12689
    WHERE rl.RTAG_ID = nRtagId;
12690
 
12691
 
12692
   IF RowCount > 0 THEN
12693
      -- Found existing references
12694
 
12695
      -- Make sure there is no package clashes
12696
      OPEN curPackageClash;
12697
       FETCH curPackageClash INTO recPackageClash;
12698
 
12699
      IF curPackageClash%FOUND THEN
12700
 
5502 dpurdie 12701
         ProblemString := ProblemString ||'Following is partial list of package already referenced from other release:'|| PK_PACKAGE.CRLF;
3959 dpurdie 12702
 
12703
         WHILE curPackageClash%FOUND
12704
         LOOP
5502 dpurdie 12705
            EXIT WHEN LENGTH( ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT  || PK_PACKAGE.CRLF ) > 200;   -- Do not allow variable overflow
3959 dpurdie 12706
 
5502 dpurdie 12707
            ProblemString := ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT  || PK_PACKAGE.CRLF;
3959 dpurdie 12708
 
12709
            FETCH curPackageClash INTO recPackageClash;
12710
         END LOOP;
12711
 
1373 dpurdie 12712
      END IF;
12713
 
3959 dpurdie 12714
      CLOSE curPackageClash;
12715
 
12716
 
12717
   ELSE
12718
      -- No references found, hence reference a release
12719
 
12720
 
12721
      -- Remove exising package from this release to be referenced
12722
      REMOVE_RELEASE_REFERENCE ( nRtagId, nRefRtagId);
12723
 
12724
 
12725
      -- Add new linked packages to release
12726
      INSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE)
12727
      SELECT nRtagId,
12728
            rc.PV_ID,
12729
            rc.BASE_VIEW_ID,
12730
            rc.INSERT_STAMP,
12731
            rc.INSERTOR_ID,
12732
            rc.PKG_STATE
12733
        FROM RELEASE_CONTENT rc
12734
       WHERE rc.RTAG_ID = nRefRtagId;
12735
 
12736
 
12737
 
12738
      -- Copy ignore warnings for referenced packages
12739
      INSERT INTO IGNORE_WARNINGS iw (RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE)
12740
      SELECT nRtagId,
12741
            iw.PV_ID,
12742
            iw.DPV_ID,
12743
            iw.IS_PATCH_IGNORE
12744
        FROM IGNORE_WARNINGS iw,
12745
              RELEASE_CONTENT rc
12746
       WHERE iw.RTAG_ID = rc.RTAG_ID
12747
         AND iw.PV_ID = rc.PV_ID
12748
         AND rc.RTAG_ID = nRefRtagId;
12749
 
12750
 
12751
 
12752
      -- Reference release
12753
      INSERT INTO RELEASE_LINKS (RTAG_ID, REF_RTAG_ID)
12754
      VALUES ( nRtagId, nRefRtagId );
12755
 
12756
 
12757
      -- Refresh Package states
12758
      TOUCH_RELEASE ( nRtagId );
12759
 
12760
   END IF;
12761
 
12762
 
12763
END;
1373 dpurdie 12764
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12765
PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER ) IS
1373 dpurdie 12766
 
3959 dpurdie 12767
 
12768
BEGIN
12769
   /*--------------- Business Rules Here -------------------*/
12770
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
12771
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
12772
   END IF;
12773
 
12774
   IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THEN
12775
      RAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );
12776
   END IF;
12777
 
12778
   /*-------------------------------------------------------*/
12779
 
12780
 
12781
   -- Remove ignore warnings for those packages who use referenced packages
12782
   DELETE FROM IGNORE_WARNINGS iw
12783
    WHERE iw.RTAG_ID = nRtagId
12784
      AND iw.DPV_ID IN (
12785
                        SELECT dep.DPV_ID
12786
                       FROM (
12787
 
12788
                           /* Get referenced packages */
12789
                           SELECT pv.PKG_ID,
12790
                                  pv.V_EXT
12791
                             FROM RELEASE_CONTENT rc,
12792
                                   PACKAGE_VERSIONS pv
12793
                            WHERE rc.RTAG_ID = nRefRtagId
12794
                              AND rc.PV_ID = pv.PV_ID
12795
 
12796
                           ) cr,
12797
                           (
12798
 
12799
                           /* Get all dependencies for current release */
12800
                           SELECT DISTINCT
12801
                                 pv.PKG_ID,
12802
                                 pv.V_EXT,
12803
                                 dep.DPV_ID
12804
                             FROM RELEASE_CONTENT rc,
12805
                                 PACKAGE_DEPENDENCIES dep,
12806
                                 PACKAGE_VERSIONS pv
12807
                            WHERE rc.RTAG_ID = nRtagId
12808
                              AND rc.PV_ID = dep.PV_ID
12809
                              AND dep.PV_ID = pv.PV_ID
12810
 
12811
                           ) dep
12812
                      WHERE dep.PKG_ID = cr.PKG_ID
12813
                        AND NVL(dep.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
12814
                     );
12815
 
12816
 
12817
 
12818
 
12819
   -- Remove ignore warnings for those package which are going to be replaced with the reference
12820
   DELETE FROM IGNORE_WARNINGS iw
12821
    WHERE iw.RTAG_ID = nRtagId
12822
      AND iw.PV_ID IN (
12823
                  SELECT pv.PV_ID
12824
                    FROM (
12825
 
12826
                        /* Get referenced packages */
12827
                        SELECT pv.PKG_ID,
12828
                               pv.V_EXT
12829
                          FROM RELEASE_CONTENT rc,
12830
                                PACKAGE_VERSIONS pv
12831
                         WHERE rc.RTAG_ID = nRefRtagId
12832
                           AND rc.PV_ID = pv.PV_ID
12833
 
12834
                        ) cr,
12835
                        RELEASE_CONTENT rc,
12836
                        PACKAGE_VERSIONS pv
12837
                   WHERE pv.PKG_ID = cr.PKG_ID
12838
                     AND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
12839
                     AND rc.RTAG_ID = nRtagId
12840
                     AND rc.PV_ID = pv.PV_ID
12841
                  );
12842
 
12843
 
12844
 
12845
 
12846
 
12847
   -- Remove matching packages from release
12848
   DELETE FROM RELEASE_CONTENT rc
12849
    WHERE rc.RTAG_ID = nRtagId
12850
      AND rc.PV_ID IN (
12851
                  SELECT pv.PV_ID
12852
                    FROM (
12853
 
12854
                        /* Get referenced packages */
12855
                        SELECT pv.PKG_ID,
12856
                               pv.V_EXT
12857
                          FROM RELEASE_CONTENT rc,
12858
                                PACKAGE_VERSIONS pv
12859
                         WHERE rc.RTAG_ID = nRefRtagId
12860
                           AND rc.PV_ID = pv.PV_ID
12861
 
12862
                        ) cr,
12863
                        RELEASE_CONTENT rc,
12864
                        PACKAGE_VERSIONS pv
12865
                   WHERE pv.PKG_ID = cr.PKG_ID
12866
                     AND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
12867
                     AND rc.RTAG_ID = nRtagId
12868
                     AND rc.PV_ID = pv.PV_ID
12869
                  );
12870
 
12871
 
12872
 
12873
 
12874
 
12875
   -- Remove Reference release
12876
   DELETE
12877
     FROM RELEASE_LINKS rl
12878
    WHERE rl.RTAG_ID = nRtagId
12879
      AND rl.REF_RTAG_ID = nRefRtagId;
12880
 
12881
 
12882
   -- Refresh Package states
12883
   TOUCH_RELEASE ( nRtagId );
12884
 
12885
 
12886
END;
12887
/*-------------------------------------------------------------------------------------------------------*/
12888
PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR ) IS
12889
 
12890
   cReleaseMode CHAR(1);
12891
   cPvMode CHAR(1);
12892
 
12893
BEGIN
12894
 
12895
   -- Get Release Mode
12896
   SELECT rt.OFFICIAL INTO cReleaseMode
12897
     FROM RELEASE_TAGS rt
12898
    WHERE rt.RTAG_ID = RtagId;
12899
 
12900
 
12901
   -- Get Package Mode
12902
   SELECT pv.DLOCKED INTO cPvMode
12903
     FROM PACKAGE_VERSIONS pv
12904
    WHERE pv.PV_ID = PvId;
12905
 
12906
   -- Only check if package is locked
12907
   IF (cPvMode = 'Y') THEN
12908
 
12909
      IF (cReleaseMode != 'N') AND (Permission != 'Y')
1373 dpurdie 12910
      THEN
3959 dpurdie 12911
         RAISE_APPLICATION_ERROR (-20000, 'Cannot add package to this release. Release needs to be in Open Mode.' );
12912
 
1373 dpurdie 12913
      END IF;
12914
 
3959 dpurdie 12915
   END IF;
5172 dpurdie 12916
END;
3959 dpurdie 12917
 
5172 dpurdie 12918
/*-----------------------------------------------------------------------------*/
12919
PROCEDURE SET_RELEASE_MODIFIED (nRtagId IN NUMBER ) IS
12920
--
12921
--  Set flags to indicate that the specified release has changed for the
12922
--  purposes of building. (Not every single change)
12923
--
12924
--  Used by Build System to streamline build decisions
12925
--    Bump a sequence number
12926
--    Set a TimeStamp
12927
--
12928
--  Care must be taken to avoid concuency issues
12929
--  Must Insert or Update in a safe manner
12930
--
12931
--  This should be called whenever the package_versions in the release have changed in such
12932
--  a manner that the build daemons should examine the release. This includes:
12933
--   - Packages added, removed and version updated
12934
--   - Packages build status changed (re-included in the release)
12935
--   - Packages made Pending Build
12936
--   - Daemon instruction add/updated (Test Build)
12937
--
12938
--  Note: Not yet used (10-Oct-2014)
12939
--        Uses SEQ_RELEASE_MOD and Table: RELEASE_MODIFIED
12940
BEGIN
12941
 LOOP
12942
  BEGIN
12943
    MERGE INTO RELEASE_MODIFIED USING dual ON ( RTAG_ID=nRtagId )
5502 dpurdie 12944
      WHEN MATCHED THEN UPDATE SET SEQNUM=SEQ_RELEASE_MOD.NEXTVAL,TIMESTAMP=CURRENT_TIMESTAMP
12945
      WHEN NOT MATCHED THEN INSERT (RTAG_ID,TIMESTAMP,SEQNUM)
5172 dpurdie 12946
        VALUES (nRtagId, CURRENT_TIMESTAMP,SEQ_RELEASE_MOD.NEXTVAL );
12947
    EXIT; -- success? -> exit loop
12948
  EXCEPTION
12949
    WHEN NO_DATA_FOUND THEN -- the entry was concurrently deleted
12950
      NULL; -- exception? -> no op, i.e. continue looping
12951
    WHEN DUP_VAL_ON_INDEX THEN -- an entry was concurrently inserted
12952
      NULL; -- exception? -> no op, i.e. continue looping
12953
  END;
12954
 END LOOP;
12955
END;
3959 dpurdie 12956
 
5172 dpurdie 12957
/*-------------------------------------------------------------------------------------------------------*/
12958
--  ADD_RELEASE_SDK
12959
--  ADD an SDK Reference to a Release
12960
--  Args: nRtagId           - RTAG_ID of Release to Process
12961
--        nSdktagId         - SDKTAG_ID of SDK to add to Release
12962
--        nUserId           - User IF of user performing the action
12963
--        bDelete           - Delete conflicting (non sdk) packages from the release 0:False
12964
--        nInsertCount      - Returns: Number of Packages inserted: -1 is an error
12965
--        curReturn         - Returns: On error a table of PV_IDs of packages causing the conflict
12966
--
12967
PROCEDURE ADD_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER, nUserId IN NUMBER, bDelete IN NUMBER, nInsertCount OUT NUMBER, curReturn OUT typeCur )IS
12968
 
12969
  vartbl RELMGR_NUMBER_TAB_T := RELMGR_NUMBER_TAB_T();
12970
  ii NUMBER;
12971
  view_id NUMBER;
12972
 
12973
    -- Detect clashing packages
12974
    -- Packages provided by the SDK that are present in the Release
12975
    CURSOR curPackageClash
12976
    IS
12977
      SELECT release.pvid
12978
      FROM
12979
        -- Alias and pvid from SDK
12980
        (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
12981
          pv.PV_ID                  AS pvid
12982
        FROM SDK_CONTENT sc, PACKAGE_VERSIONS pv
12983
        WHERE sc.SDKTAG_ID  = nSdktagId
12984
        AND sc.SDKPKG_STATE = 'E'
12985
        AND pv.PV_ID        = sc.PV_ID
12986
        ) sdk,
12987
      -- Alias and pvid from Release
12988
      (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
12989
        pv.PV_ID                  AS pvid
12990
      FROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pv
12991
      WHERE rc.rtag_id = nRtagId
12992
      AND rc.PV_ID    = pv.PV_ID
12993
      ) RELEASE
12994
    WHERE sdk.pkgAlias = release.pkgAlias;
5502 dpurdie 12995
 
5172 dpurdie 12996
   -- Detect packages in the release that are provided by the SDK
12997
   -- Do not include packages provided by an SDK - these cannot be replaced
12998
       CURSOR curPackageReplacable
12999
    IS
13000
      SELECT release.pvid
13001
      FROM
13002
        -- Alias and pvid from SDK
13003
        (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
13004
                pv.PV_ID                            AS pvid
13005
        FROM SDK_CONTENT sc, PACKAGE_VERSIONS pv
13006
        WHERE sc.SDKTAG_ID    = nSdktagId
13007
          AND sc.SDKPKG_STATE = 'E'
13008
          AND pv.PV_ID        = sc.PV_ID
13009
        ) sdk,
13010
      -- Alias and pvid from Release
13011
      --  Excluding those import by any SDK
13012
      (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
13013
              pv.PV_ID                            AS pvid
13014
       FROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pv
13015
       WHERE rc.rtag_id = nRtagId
13016
         AND rc.PV_ID   = pv.PV_ID
13017
         AND rc.SDKTAG_ID is NULL
13018
      ) RELEASE
13019
    WHERE sdk.pkgAlias = release.pkgAlias;
13020
 
13021
BEGIN
13022
   /*--------------- Business Rules Here -------------------*/
13023
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
13024
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
13025
   END IF;
13026
 
13027
   IF (nSdktagId = 0) OR ( nSdktagId IS NULL ) THEN
13028
      RAISE_APPLICATION_ERROR (-20000, 'nSdktagId is not supplied. [nSdktagId='|| nSdktagId ||']' );
13029
   END IF;
13030
   /*-------------------------------------------------------*/
5502 dpurdie 13031
 
5172 dpurdie 13032
   -- Delete packages from the release if they are provided by the SDK
5502 dpurdie 13033
   -- provided they are not provided by another SDK
5172 dpurdie 13034
    IF bDelete != 0 THEN
13035
      FOR rdata IN curPackageClash LOOP
13036
        DELETE FROM RELEASE_CONTENT rc
13037
          WHERE rc.RTAG_ID = nRtagId
13038
          AND rc.PV_ID = rdata.pvid;
13039
      END LOOP;
13040
 
13041
      -- Remove exising package from this release to be referenced
13042
      REMOVE_RELEASE_SDK ( nRtagId, nSdktagId);
13043
    END IF;
13044
 
13045
    -- Detect and report package clashes
13046
    -- Packages provided by the SDK that are (still) in the release
13047
    ii := 1;
13048
    FOR rdata IN curPackageClash LOOP
13049
      vartbl.extend;
13050
      --vartbl(ii) := TABLE_PVID(rdata.pvid);
13051
      vartbl(ii) := rdata.pvid;
13052
      ii := ii + 1;
13053
    END LOOP;
13054
    -- Make sure there is no package clashes
5502 dpurdie 13055
 
5172 dpurdie 13056
    IF ii != 1 THEN
13057
      nInsertCount := -1;
13058
      open curReturn for select * from table(vartbl);
13059
      --curReturn := vartbl;
13060
      RETURN;
13061
    END IF;
13062
 
13063
    -- Determine the target view_id
13064
    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 13065
 
5172 dpurdie 13066
    -- Add SDK exported packages to release
13067
    INSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE, SDKTAG_ID)
5502 dpurdie 13068
    SELECT nRtagId, sc.PV_ID, view_id, sysdate, nUserId, 11, nSdktagId
5172 dpurdie 13069
        FROM SDK_CONTENT sc
13070
        WHERE sc.SDKTAG_ID = nSdktagId
13071
        AND sc.SDKPKG_STATE = 'E';
13072
    nInsertCount := sql%ROWCOUNT;
13073
 
13074
    -- Refresh Package states
13075
    TOUCH_RELEASE ( nRtagId );
13076
    SET_RELEASE_MODIFIED(nRtagId);
13077
 
3959 dpurdie 13078
END;
13079
 
1373 dpurdie 13080
/*-------------------------------------------------------------------------------------------------------*/
5172 dpurdie 13081
--  Name:   REMOVE_RELEASE_SDK
13082
--  Desc:   Remove an SDK from the specified Release
13083
--          It is not an error to remove an SDK that is not attached to the release
13084
--  Args:   nRtagId         - RTAG_ID of the Release to Process
13085
--          nSdktagId       - SDKTAG_ID to remove
13086
--
13087
PROCEDURE REMOVE_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER ) IS
13088
 
13089
BEGIN
13090
   /*--------------- Business Rules Here -------------------*/
13091
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
13092
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
13093
   END IF;
13094
 
13095
   IF (nSdktagId = 0) OR ( nSdktagId IS NULL ) THEN
13096
      RAISE_APPLICATION_ERROR (-20000, 'nSdktagId is not supplied. [nSdktagId='|| nSdktagId ||']' );
13097
   END IF;
13098
 
13099
   /*-------------------------------------------------------*/
13100
 
13101
   -- Remove matching packages from release
13102
   DELETE FROM RELEASE_CONTENT rc
13103
    WHERE rc.RTAG_ID = nRtagId
13104
      AND rc.SDKTAG_ID = nSdktagId;
13105
 
13106
   -- Refresh Package states
13107
   TOUCH_RELEASE ( nRtagId );
13108
   SET_RELEASE_MODIFIED(nRtagId);
13109
END;
13110
 
13111
--------------------------------------------------------------------------------
13112
--  CAN_ADD_PKG_TO_RELEASE
13113
--  Test if a Package (pvid) can be added to a given release
13114
--  The test will not allwo an exiting package to be replaced IF it is imported via an
13115
--  SDK
13116
--
13117
--  Returns:  0 - Package cannot be replaced
13118
--            1 - Package can be replaced
13119
--            2 - Package will be added
5502 dpurdie 13120
--
5172 dpurdie 13121
FUNCTION CAN_ADD_PKG_TO_RELEASE ( nRtagId IN NUMBER, nPvid in NUMBER ) RETURN NUMBER IS
13122
 
13123
   sAlias VARCHAR2(4000);
5502 dpurdie 13124
 
5172 dpurdie 13125
    -- Find package for proccessing
13126
    -- Use unique constraint of PKG_ID and V_EXT
13127
   CURSOR curReplacePkg IS
13128
    SELECT pv.PV_ID
13129
     FROM RELEASE_CONTENT rc,
13130
           PACKAGE_VERSIONS pv
13131
    WHERE rc.PV_ID = pv.PV_ID
13132
      AND rc.RTAG_ID = nRtagId
13133
      AND pv.PKG_ID || NVL( pv.V_EXT, 'LINK_A_NULL' ) = sAlias;
5502 dpurdie 13134
 
5172 dpurdie 13135
    recReplacePkg curReplacePkg%ROWTYPE;
13136
    nSdkTag NUMBER;
5502 dpurdie 13137
 
5172 dpurdie 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 (nPvid = 0) OR ( nPvid IS NULL ) THEN
13145
      RAISE_APPLICATION_ERROR (-20000, 'nPvid is not supplied. [nPvid='|| nPvid ||']' );
13146
   END IF;
13147
 
13148
    -- Find pkg Alias for provided package
5502 dpurdie 13149
   SELECT pv.PKG_ID || NVL( pv.V_EXT, 'LINK_A_NULL' )
5172 dpurdie 13150
     INTO sAlias
13151
     FROM PACKAGE_VERSIONS pv
13152
    WHERE pv.PV_ID = nPvid;
13153
 
13154
      -- Find Package that may be replaced
13155
      OPEN curReplacePkg;
13156
       FETCH curReplacePkg INTO recReplacePkg;
13157
 
13158
       IF curReplacePkg%FOUND THEN
13159
        SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
13160
         WHERE rtag_id = nRtagId
13161
         AND pv_id = recReplacePkg.PV_ID;
5502 dpurdie 13162
 
5172 dpurdie 13163
        If nSdkTag IS NOT NULL  THEN
13164
          RETURN 0;
13165
        ELSE
13166
          RETURN 1;
13167
        END IF;
13168
      END IF;
13169
 
13170
  -- No package found, so it can be added
13171
  RETURN 2;
5502 dpurdie 13172
 
5172 dpurdie 13173
  EXCEPTION
13174
  WHEN NO_DATA_FOUND THEN
13175
    RAISE_APPLICATION_ERROR (-20000, 'nPvid is not valid. [nPvid='|| nPvid ||']' );
13176
END;
13177
 
13178
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13179
END PK_RELEASE;
4040 dpurdie 13180
 
3959 dpurdie 13181
/
4040 dpurdie 13182
--------------------------------------------------------
13183
--  DDL for Package Body PK_RMAPI
13184
--------------------------------------------------------
13185
 
5172 dpurdie 13186
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_RMAPI" 
3959 dpurdie 13187
IS
13188
 
13189
   /*-------------------------------------------------------------------------------------------------------*/
13190
   FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)
13191
      RETURN typecur
1373 dpurdie 13192
   IS
3959 dpurdie 13193
      npvid     NUMBER  := 0;
13194
      RECORDS   typecur;
1373 dpurdie 13195
   BEGIN
3959 dpurdie 13196
      BEGIN
13197
         -- Get PV_ID --
13198
         SELECT pv.pv_id
13199
           INTO npvid
13200
           FROM PACKAGES pkg, package_versions pv
13201
          WHERE pv.pkg_id = pkg.pkg_id
13202
            AND pkg.pkg_name = pkgname
13203
            AND pv.pkg_version = pkgversion;
13204
      EXCEPTION
13205
         WHEN NO_DATA_FOUND
13206
         THEN
13207
            raise_application_error (-20000, 'Package Not Found!');
13208
            --WHEN OTHERS THEN
13209
                  -- Consider logging the error and then re-raise
13210
            RAISE;
13211
      END;
1373 dpurdie 13212
 
3959 dpurdie 13213
      -- Finally get package dependencies --
13214
      OPEN RECORDS FOR
13215
         SELECT dpv.pv_id, dpkg.pkg_name, dpv.pkg_version
13216
           FROM package_dependencies dep, PACKAGES dpkg, package_versions dpv
13217
          WHERE dep.pv_id = npvid
13218
            AND dpv.pkg_id = dpkg.pkg_id
13219
            AND dpv.pv_id = dep.dpv_id;
13220
 
13221
      RETURN RECORDS;
1373 dpurdie 13222
   END;
13223
 
13224
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13225
   FUNCTION wip_iteration_package (
13226
      projname        VARCHAR2,
13227
      iterationname   VARCHAR2,
13228
      pkgname         VARCHAR2
1373 dpurdie 13229
   )
3959 dpurdie 13230
      RETURN typecur
1373 dpurdie 13231
   IS
3959 dpurdie 13232
      nrtagid   NUMBER  := 0;
13233
      RECORDS   typecur;
1373 dpurdie 13234
   BEGIN
3959 dpurdie 13235
      BEGIN
13236
         -- Get latest rtag_id --
13237
         SELECT rt.rtag_id
13238
           INTO nrtagid
13239
           FROM projects proj, release_tags rt
13240
          WHERE rt.proj_id = proj.proj_id
13241
            AND UPPER (proj.proj_name) = UPPER (projname)
13242
            AND UPPER (rt.rtag_name) = UPPER (iterationname);
1373 dpurdie 13243
 
3959 dpurdie 13244
         IF (nrtagid IS NULL)
13245
         THEN
13246
            raise_application_error (-20000,
13247
                                     'Work In Progress is Not Found!');
13248
         END IF;
13249
      EXCEPTION
13250
         WHEN NO_DATA_FOUND
13251
         THEN
13252
            raise_application_error (-20000,
13253
                                     'Work In Progress is Not Found!');
13254
            RAISE;
13255
      END;
13256
 
13257
      -- Finally get package dependencies --
13258
      OPEN RECORDS FOR
13259
         SELECT pv.pkg_version, pv.dlocked AS is_official, pv.pkg_label,
13260
                pv.src_path
13261
           FROM PACKAGES pkg, package_versions pv, work_in_progress wip
13262
          WHERE pv.pkg_id = pkg.pkg_id
13263
            AND wip.pv_id = pv.pv_id
13264
            AND wip.rtag_id = nrtagid
13265
            AND pkg.pkg_name = pkgname;
13266
 
13267
      RETURN RECORDS;
1373 dpurdie 13268
   END;
13269
 
13270
/*-------------------------------------------------------------------------------------------------------*/
4553 dpurdie 13271
-- Use:
13272
--   Used by the Automated Build System to release a new package
13273
-- Returns:
13274
--    Use application errors to indicate programming errors
13275
--    Use negative return codes to indicate correctable user problems
13276
--    Positive return code is the new PVID of the package
13277
  FUNCTION auto_make_vcsrelease (
3959 dpurdie 13278
      rtagid                   IN   NUMBER,
13279
      pkgname                  IN   VARCHAR2,
13280
      vext                     IN   VARCHAR2,
13281
      newpkgversion            IN   VARCHAR2,
13282
      vcstag                   IN   VARCHAR2,
13283
      dependenciesimportlist   IN   VARCHAR2,
13284
      isrippled                IN   NUMBER,
13285
      username                 IN   VARCHAR2
13286
   )
1373 dpurdie 13287
      RETURN NUMBER
13288
   IS
3959 dpurdie 13289
      pkgid                           NUMBER;
13290
      pvid                            NUMBER                        := 0;
13291
      userid                          NUMBER;
13292
      dlocked                         VARCHAR2 (20)                 := NULL;
13293
      clonefrompvid                   NUMBER;
13294
      ssv_mm                          package_versions.v_mm%TYPE;
13295
      ssv_nmm                         package_versions.v_nmm%TYPE;
13296
      ssv_ext                         package_versions.v_ext%TYPE;
13297
      return_package_not_found        NUMBER                        := -1;
13298
      return_package_already_exists   NUMBER                        := -2;
13299
      return_not_approved             NUMBER                        := -3;
13300
      return_migrated_pkg             NUMBER                        := -4;
4553 dpurdie 13301
      return_svn_path_changed         NUMBER                        := -5;
1373 dpurdie 13302
 
13303
 
3959 dpurdie 13304
      x_vcstypeid                     NUMBER;
13305
      x_tag                           VARCHAR2(32);
13306
      x_label                         VARCHAR2(60);
13307
      x_srcpath                       VARCHAR2(2000);
13308
      p_srcpath                       VARCHAR2(2000);
1373 dpurdie 13309
 
3959 dpurdie 13310
      -- Regular expression constituents
13311
      Token         VARCHAR2(16) := '([^:]+)';  -- a token is anything except a ':' character
13312
      Seperator     VARCHAR2(4)  := '::';       -- tokens will be seperated by '::'
13313
      BOL           VARCHAR2(4)  := '^';
13314
      Anything      VARCHAR2(4)  := '.*';
13315
      ReplaceToken1 VARCHAR2(4)  := '\1';
13316
      ReplaceToken2 VARCHAR2(4)  := '\2';
13317
      ReplaceToken3 VARCHAR2(4)  := '\3';
13318
      iprev_modifier_id               NUMBER;
13319
 
1373 dpurdie 13320
   BEGIN
3959 dpurdie 13321
      /*--------------- Business Rules Here -------------------*/
13322
      IF (rtagid IS NULL)
13323
      THEN
13324
         raise_application_error (-20000, 'RtagId must be supplied.');
13325
      END IF;
1373 dpurdie 13326
 
3959 dpurdie 13327
      IF (pkgname IS NULL)
13328
      THEN
13329
         raise_application_error (-20000, 'PkgName must be supplied.');
13330
      END IF;
1373 dpurdie 13331
 
3959 dpurdie 13332
      IF (newpkgversion IS NULL)
1373 dpurdie 13333
      THEN
3959 dpurdie 13334
         raise_application_error (-20000, 'PkgVersion must be supplied.');
1373 dpurdie 13335
      END IF;
13336
 
3959 dpurdie 13337
      IF (vcstag IS NULL)
1373 dpurdie 13338
      THEN
3959 dpurdie 13339
         raise_application_error (-20000, 'PkgVcsTag must be supplied.');
1373 dpurdie 13340
      END IF;
13341
 
3959 dpurdie 13342
      IF (isrippled IS NULL) OR (isrippled < 0) OR (isrippled > 1)
1373 dpurdie 13343
      THEN
4553 dpurdie 13344
         raise_application_error (-20000, 'IsRippled must be set to 1 (Is rippled build) or 0 (Is planned build).');
1373 dpurdie 13345
      END IF;
13346
 
3959 dpurdie 13347
      IF (username IS NULL)
1373 dpurdie 13348
      THEN
3959 dpurdie 13349
         raise_application_error (-20000, 'UserName must be supplied.');
1373 dpurdie 13350
      END IF;
13351
 
3959 dpurdie 13352
      -- Parse the PkgVcsTag
13353
      -- Sets up
13354
      --   x_tag, x_label, x_srcpath
1373 dpurdie 13355
 
3959 dpurdie 13356
       BEGIN
13357
          -- Extract the first token - this will be the short tag name for the VCS (eg. 'CC', 'SVN', etc)
13358
          x_tag := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Anything, ReplaceToken1);
1373 dpurdie 13359
 
3959 dpurdie 13360
          -- Decode the short tag
13361
          CASE x_tag
13362
             WHEN 'CC' THEN
13363
                -- extract the 2nd and 3rd tokens, those being the source path and label respectively
13364
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
13365
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
1373 dpurdie 13366
 
3959 dpurdie 13367
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
13368
                -- check for that error as well as the obvious zero-length string conditions.
13369
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
13370
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
13371
                END IF;
6031 dpurdie 13372
 
3959 dpurdie 13373
                IF isSVNbyName(pkgname) > 0 THEN
13374
                    -- Don't allow migrated packages to be released from a CC label
13375
                    return return_migrated_pkg;
13376
                END IF;
1373 dpurdie 13377
 
13378
 
3959 dpurdie 13379
             WHEN 'SVN' THEN
13380
                -- extract the 2nd token, that being the subversion tag
13381
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
13382
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
1373 dpurdie 13383
 
3959 dpurdie 13384
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
13385
                -- check for that error as well as the obvious zero-length string conditions.
13386
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
13387
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
13388
                END IF;
13389
 
13390
             WHEN 'UC' THEN
13391
                -- nothing to extract, just assign defaults
13392
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
13393
                x_label   := 'N/A';
13394
             ELSE
13395
                raise_application_error (-20000, 'Unrecognised VCS Tag!');
13396
          END CASE;
13397
       END;
13398
 
13399
      -- Get the VCS_TYPE_ID for the version control system.
13400
      BEGIN
13401
         SELECT vt.vcs_type_id
13402
         INTO x_vcstypeid
13403
         FROM VCS_TYPE vt
13404
         WHERE vt.tag = x_tag;
13405
         EXCEPTION
13406
            WHEN NO_DATA_FOUND THEN
13407
               raise_application_error (-20000, 'Database is missing a version control system tag (' || x_tag || ')!' );
13408
      END;
13409
 
13410
 
13411
      -- Get user_id
13412
      BEGIN
13413
         SELECT usr.user_id
13414
           INTO userid
13415
           FROM users usr
13416
          WHERE UPPER (usr.user_name) = UPPER (username)
13417
            AND usr.is_disabled IS NULL;
13418
      EXCEPTION
13419
         WHEN NO_DATA_FOUND
1373 dpurdie 13420
         THEN
4585 dpurdie 13421
            raise_application_error (-20000, 'UserName: ' || username || ' is not valid or disabled.' );
3959 dpurdie 13422
      END;
1373 dpurdie 13423
 
3959 dpurdie 13424
/*-------------------------------------------------------*/
1373 dpurdie 13425
 
3959 dpurdie 13426
      -- Create package if necessary
13427
      IF isrippled = 1
1373 dpurdie 13428
      THEN
3959 dpurdie 13429
         /* Ripple Build */
13430
         BEGIN
13431
            -- Make sure that package does not exist
13432
            SELECT pv.pv_id
13433
              INTO pvid
13434
              FROM package_versions pv, PACKAGES pkg
13435
             WHERE pv.pkg_id = pkg.pkg_id
13436
               AND pkg.pkg_name = pkgname
13437
               AND pv.pkg_version = newpkgversion;
13438
         EXCEPTION
13439
            WHEN NO_DATA_FOUND
13440
            THEN
13441
               pvid := 0;
13442
         END;
13443
 
13444
         IF (pvid = 0)
1373 dpurdie 13445
         THEN
3959 dpurdie 13446
            -- Split current version in parts
13447
            split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
13448
 
13449
            BEGIN
13450
               -- Find package to be replaced with the ripple package
13451
               IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
13452
               THEN
13453
                  SELECT pv.pv_id, pv.src_path
13454
                    INTO clonefrompvid, p_srcpath
13455
                    FROM PACKAGES pkg, package_versions pv,
13456
                         release_content rc
13457
                   WHERE rc.pv_id = pv.pv_id
13458
                     AND pv.pkg_id = pkg.pkg_id
13459
                     AND rc.rtag_id = rtagid
13460
                     AND pkg.pkg_name = pkgname
13461
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|');
13462
               ELSE
13463
                  SELECT pv.pv_id, pv.src_path
13464
                    INTO clonefrompvid, p_srcpath
13465
                    FROM PACKAGES pkg, package_versions pv,
13466
                         release_content rc
13467
                   WHERE rc.pv_id = pv.pv_id
13468
                     AND pv.pkg_id = pkg.pkg_id
13469
                     AND rc.rtag_id = rtagid
13470
                     AND pkg.pkg_name = pkgname
13471
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
13472
               END IF;
13473
            EXCEPTION
13474
               WHEN NO_DATA_FOUND
13475
               THEN
13476
                  raise_application_error
13477
                                        (-20000,
13478
                                            'Cannot get CloneFromPvId. VExt='
13479
                                         || vext
13480
                                         || ', RtagId='
13481
                                         || rtagid
13482
                                         || ', PkgName='
13483
                                         || pkgname
13484
                                         || ', SSV_EXT='
13485
                                         || ssv_ext
13486
                                        );
13487
            END;
13488
 
13489
            IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
13490
            THEN
13491
               -- Create package
13492
               seed_package_names_versions (pkgname,
13493
                                            newpkgversion,
13494
                                            userid,
13495
                                            pvid,
13496
                                            clonefrompvid
13497
                                           );
13498
            ELSE
4585 dpurdie 13499
               -- Create package (now both the same)
13500
               seed_package_names_versions (pkgname,
3959 dpurdie 13501
                                             newpkgversion,
13502
                                             userid,
13503
                                             pvid,
13504
                                             clonefrompvid
13505
                                            );
13506
            END IF;
13507
 
13508
            -- Update Package reason for release
13509
            UPDATE package_versions pv
13510
               SET pv.comments = 'Rippled Build.',
13511
                   pv.build_type = 'Y'
13512
             WHERE pv.pv_id = pvid;
13513
         ELSE
13514
            -- Package already exists, it was built previously, and has just been re-built again probably due to the
13515
            -- fact that the archive was cleaned of the original build artifacts at some point, and those artifacts
13516
            -- are now needed once more. As such, we need to ensure that a new release note generation occurs so
13517
            -- reset the package_versions[pvid].release_notes_info field to enable that to happen.
13518
            UPDATE package_versions pv
13519
               SET pv.release_notes_info = null,
13520
                   pv.modified_stamp = ora_sysdatetime
13521
             WHERE pv.pv_id = pvid;
13522
 
13523
            --DEVI-066151
13524
            log_action (pvid, 'package_rebuilt', userid, 'Package Re-built...');
13525
 
13526
            RETURN return_package_already_exists;
1373 dpurdie 13527
         END IF;
13528
      ELSE
3959 dpurdie 13529
         /* Auto build from Pending area */
13530
 
13531
         -- Find package in pending area
13532
         BEGIN
13533
            SELECT pv.pv_id, pv.dlocked, pv.src_path
13534
              INTO pvid, dlocked, p_srcpath
13535
              FROM planned pl, package_versions pv, PACKAGES pkg
13536
             WHERE pl.pv_id = pv.pv_id
13537
               AND pv.pkg_id = pkg.pkg_id
13538
               AND pl.rtag_id = rtagid
13539
               AND pkg.pkg_name = pkgname
13540
               AND pv.dlocked = 'A'
13541
               AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|')
13542
               AND rownum = 1
13543
             ORDER BY pv.modified_stamp;
13544
         EXCEPTION
13545
            WHEN NO_DATA_FOUND
13546
            THEN
13547
               pvid := 0;
13548
         END;
13549
 
13550
         IF (pvid = 0)
1373 dpurdie 13551
         THEN
3959 dpurdie 13552
            -- Package does not exist in pending area, hence report it
13553
            RETURN return_package_not_found;
13554
         ELSIF (dlocked != 'A')
1373 dpurdie 13555
         THEN
3959 dpurdie 13556
            -- Package is not approved for autobuild
13557
            RETURN return_not_approved;
1373 dpurdie 13558
         END IF;
13559
 
13560
      END IF;
13561
 
3959 dpurdie 13562
      -- Ensure Source Path does not change
13563
      -- Do not expect the SVN development branch to change
13564
      -- From the previous package
13565
      IF ( x_tag = 'SVN' AND p_srcpath != x_srcpath )
1373 dpurdie 13566
      THEN
4553 dpurdie 13567
        return return_svn_path_changed;
1373 dpurdie 13568
      END IF;
13569
 
3959 dpurdie 13570
      BEGIN
13571
         -- Import Dependencies
13572
         import_dependencies (pvid, dependenciesimportlist, userid);
13573
      END;
1373 dpurdie 13574
 
13575
 
3959 dpurdie 13576
      BEGIN
13577
         -- Split current version in parts
13578
         split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
1373 dpurdie 13579
 
3959 dpurdie 13580
         -- Update Package Details
13581
         UPDATE package_versions pv
13582
            SET pv.pkg_version = newpkgversion,
13583
                pv.v_ext = ssv_ext,
13584
                pv.v_mm = ssv_mm,
13585
                pv.v_nmm = ssv_nmm,
13586
                pv.src_path = x_srcpath,
13587
                pv.pkg_label = x_label,
13588
                pv.vcs_type_id = x_vcstypeid
13589
          WHERE pv.pv_id = pvid;
13590
      EXCEPTION
13591
         WHEN DUP_VAL_ON_INDEX
13592
         THEN
13593
            -- Package already exists, hence cannot be used for ripple build
13594
            RETURN return_package_already_exists;
13595
      END;
13596
 
13597
      -- Update the is_autobuildable
13598
      UPDATE package_versions
13599
         SET is_autobuildable = 'Y'
13600
       WHERE pv_id = pvid;
13601
 
13602
      -- DEVI-063601
13603
      -- For planned builds the modifier_id shouldn't be set to buildadm.
13604
      -- To ensure this the modifier_id is obtained so it can be restored after
13605
      -- the function pk_environment.auto_make_release is called.
13606
      -- This function calls, change_state, which sets the modifier_id to the
13607
      -- specified userid, which for auto builds is buildadm.
13608
      SELECT pv.modifier_id INTO iprev_modifier_id
13609
      FROM package_versions pv WHERE pv.pv_id = pvid;
13610
 
13611
      -- Now release package
13612
      pk_environment.auto_make_release (pvid,
13613
                                        rtagid,
13614
                                        userid,
13615
                                        vext,
13616
                                        ssv_ext,
13617
                                        clonefrompvid
13618
                                       );
13619
 
13620
      -- DEVI-063601
13621
      -- if it is a planned build then restore the modifier_id to the previous modifier
13622
      UPDATE package_versions pv SET pv.modifier_id = iprev_modifier_id
13623
      WHERE pv.pv_id = pvid;
13624
 
13625
      --Now clean the PLANNED_VERSIONS table
13626
      SELECT pkg_id
13627
        INTO pkgid
13628
        FROM PACKAGES
13629
       WHERE pkg_name = pkgname;
13630
 
13631
      DELETE FROM planned_versions
13632
            WHERE pkg_id = pkgid AND pkg_version = newpkgversion;
13633
 
13634
      RETURN pvid;
1373 dpurdie 13635
   END;
13636
 
13637
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13638
   PROCEDURE import_dependencies (
13639
      pvid                     IN   NUMBER,
13640
      dependenciesimportlist   IN   VARCHAR2,
13641
      userid                   IN   NUMBER
13642
   )
1373 dpurdie 13643
   IS
3959 dpurdie 13644
/*
13645
|| DependenciesImportList Format:
13646
|| "pkgA","1.0.0";"pkgB","2.0.0";
13647
||  OR 'pkgA','1.0.0';'pkgB','2.0.0';
13648
*/
13649
      TYPE tdictionary IS TABLE OF VARCHAR2 (4000)
13650
         INDEX BY VARCHAR2 (4000);
13651
 
13652
      seperator         VARCHAR2 (2)           := '||';
13653
      pkgname           VARCHAR2 (4000);
13654
      pkgversion        VARCHAR2 (4000);
13655
      buildtype         VARCHAR2 (50);
13656
      pkgid             NUMBER;
13657
      vext              VARCHAR2 (4000);
13658
      dpvid             NUMBER;
13659
      slist             VARCHAR2 (4000);
13660
      cbuildtypes       tdictionary;
13661
      dependencyrow     NUMBER;
13662
      sdependency       VARCHAR2 (4000);
13663
      first_pos         VARCHAR2 (4000);
13664
      second_pos        VARCHAR2 (4000);
13665
      third_pos         VARCHAR2 (4000);
13666
      forth_pos         VARCHAR2 (4000);
13667
      citemcollection   relmgr_varchar2_tab_t  := relmgr_varchar2_tab_t ();
13668
 
13669
      CURSOR curbuildtype
13670
      IS
13671
         SELECT dpv.pkg_id || seperator || dpv.v_ext AS pkgid_ext,
13672
                dep.build_type
13673
           FROM package_dependencies dep, package_versions dpv
13674
          WHERE dep.pv_id = pvid AND dep.dpv_id = dpv.pv_id;
13675
 
13676
      recbuildtype      curbuildtype%ROWTYPE;
1373 dpurdie 13677
   BEGIN
3959 dpurdie 13678
      slist := dependenciesimportlist;
1373 dpurdie 13679
 
3959 dpurdie 13680
      -- Preformat String
13681
      IF NOT slist IS NULL
1373 dpurdie 13682
      THEN
3959 dpurdie 13683
         slist := REPLACE (slist, ' ');                      -- Remove spaces
13684
         slist := REPLACE (slist, UTL_TCP.crlf);
13685
         -- Remove new line and carriage-return characters
13686
         slist := REPLACE (slist, '''', '"');             -- Replace ' with "
1373 dpurdie 13687
      END IF;
13688
 
3959 dpurdie 13689
      -- Get Current Dependencies
13690
      OPEN curbuildtype;
1373 dpurdie 13691
 
3959 dpurdie 13692
      FETCH curbuildtype
13693
       INTO recbuildtype;
1373 dpurdie 13694
 
3959 dpurdie 13695
      WHILE curbuildtype%FOUND
13696
      LOOP
13697
         cbuildtypes (recbuildtype.pkgid_ext) := recbuildtype.build_type;
1373 dpurdie 13698
 
3959 dpurdie 13699
         FETCH curbuildtype
13700
          INTO recbuildtype;
13701
      END LOOP;
1373 dpurdie 13702
 
3959 dpurdie 13703
      CLOSE curbuildtype;
1373 dpurdie 13704
 
3959 dpurdie 13705
      -- Separate dependencies with ; separator
13706
      citemcollection := in_list_varchar2 (slist, ';');
1373 dpurdie 13707
 
3959 dpurdie 13708
      BEGIN
13709
         -- Remove old dependencies
13710
         DELETE FROM package_dependencies dep
13711
               WHERE dep.pv_id = pvid;
1373 dpurdie 13712
 
3959 dpurdie 13713
         -- Loop through dependencies
13714
         FOR dependencyrow IN 1 .. citemcollection.COUNT
13715
         LOOP
13716
            -- Extract pkg_name and pkg_version
13717
            sdependency := citemcollection (dependencyrow);
13718
            first_pos := INSTR (sdependency, '"', 1, 1);
13719
            second_pos := INSTR (sdependency, '"', 1, 2);
13720
            third_pos := INSTR (sdependency, '"', 1, 3);
13721
            forth_pos := INSTR (sdependency, '"', 1, 4);
13722
            pkgname :=
13723
               SUBSTR (sdependency,
13724
                       (first_pos + 1),
13725
                       (second_pos - first_pos - 1)
13726
                      );
13727
            pkgversion :=
13728
               SUBSTR (sdependency,
13729
                       (third_pos + 1),
13730
                       (forth_pos - third_pos - 1)
13731
                      );
13732
 
13733
            -- Dependency must exits to be linked against
13734
            BEGIN
13735
               SELECT pv.pv_id, pv.pkg_id, pv.v_ext
13736
                 INTO dpvid, pkgid, vext
13737
                 FROM package_versions pv, PACKAGES pkg
13738
                WHERE pv.pkg_id = pkg.pkg_id
13739
                  AND pkg.pkg_name = pkgname
13740
                  AND pv.pkg_version = pkgversion;
13741
            EXCEPTION
13742
               WHEN NO_DATA_FOUND
13743
               THEN
13744
                  raise_application_error
13745
                                  (-20000,
13746
                                      'Dependency ['
13747
                                   || pkgname
13748
                                   || ' '
13749
                                   || pkgversion
13750
                                   || '] does not exist yet and cannot be used!'
13751
                                  );
13752
            END;
13753
 
13754
            -- Get Build Type (i.e. BuildPackageArchive or LinkPackageArchive)
13755
            BEGIN
13756
               buildtype := cbuildtypes (pkgid || seperator || vext);
13757
 
13758
               IF buildtype IS NULL
13759
               THEN
13760
                  -- Set build type to LinkPackageArchive by default
13761
                  buildtype := 'L';
13762
               END IF;
13763
            EXCEPTION
13764
               WHEN NO_DATA_FOUND
13765
               THEN
13766
                  buildtype := 'L';
13767
            END;
13768
 
13769
            -- Insert Dependencies
13770
            update_package_dependency (pvid,
13771
                                       pkgname,
13772
                                       pkgversion,
13773
                                       buildtype,
13774
                                       userid,
13775
 
13776
                                      );
13777
         END LOOP;
13778
      END;
1373 dpurdie 13779
   END;
13780
 
13781
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13782
   FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)
13783
      RETURN VARCHAR2
1373 dpurdie 13784
   IS
3959 dpurdie 13785
      pkgversion   VARCHAR2 (4000);
1373 dpurdie 13786
   BEGIN
3959 dpurdie 13787
      BEGIN
13788
         SELECT pv.pkg_version
13789
           INTO pkgversion
13790
           FROM PACKAGES pkg, release_content rc, package_versions pv
13791
          WHERE pv.pv_id = rc.pv_id
13792
            AND pkg.pkg_id = pv.pkg_id
13793
            AND pkg.pkg_name = pkgname
13794
            AND rc.rtag_id = rtagid;
13795
 
13796
         RETURN pkgversion;
13797
      END;
1373 dpurdie 13798
   END;
13799
 
13800
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13801
   FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)
13802
      RETURN VARCHAR2
1373 dpurdie 13803
   IS
3959 dpurdie 13804
      pkgversion   VARCHAR2 (4000);
1373 dpurdie 13805
   BEGIN
3959 dpurdie 13806
      BEGIN
13807
         SELECT pv.pkg_version
13808
           INTO pkgversion
13809
           FROM PACKAGES pkg, work_in_progress wip, package_versions pv
13810
          WHERE pv.pv_id = wip.pv_id
13811
            AND pkg.pkg_id = pv.pkg_id
13812
            AND pkg.pkg_name = pkgname
13813
            AND wip.rtag_id = rtagid;
1373 dpurdie 13814
 
3959 dpurdie 13815
         IF pkgversion IS NULL
13816
         THEN
13817
            SELECT pv.pkg_version
13818
              INTO pkgversion
13819
              FROM PACKAGES pkg, planned pl, package_versions pv
13820
             WHERE pv.pv_id = pl.pv_id
13821
               AND pkg.pkg_id = pv.pkg_id
13822
               AND pkg.pkg_name = pkgname
13823
               AND pl.rtag_id = rtagid;
13824
         END IF;
13825
 
13826
         RETURN pkgversion;
13827
      END;
1373 dpurdie 13828
   END;
13829
 
13830
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13831
   PROCEDURE update_dash_board (rtagid IN NUMBER)
1373 dpurdie 13832
   IS
3959 dpurdie 13833
      projid       NUMBER;
13834
      projiddb     NUMBER;
13835
      total        NUMBER;
13836
      auto_total   NUMBER;
13837
      rtagiddb     NUMBER;
1373 dpurdie 13838
   BEGIN
3959 dpurdie 13839
      SELECT COUNT (*)
13840
        INTO total
13841
        FROM release_content rc, package_versions pv
13842
       WHERE pv.pv_id = rc.pv_id AND rc.rtag_id = rtagid;
1373 dpurdie 13843
 
3959 dpurdie 13844
      SELECT COUNT (*)
13845
        INTO auto_total
13846
        FROM release_content rc, package_versions pv
13847
       WHERE pv.pv_id = rc.pv_id
13848
         AND pv.is_autobuildable = 'Y'
13849
         AND rc.rtag_id = rtagid;
13850
 
13851
      BEGIN
13852
         SELECT rtag_id
13853
           INTO rtagiddb
13854
           FROM dash_board
13855
          WHERE rtag_id = rtagid;
13856
 
13857
         SELECT proj_id
13858
           INTO projiddb
13859
           FROM dash_board
13860
          WHERE rtag_id = rtagid;
13861
      EXCEPTION
13862
         WHEN NO_DATA_FOUND
13863
         THEN
13864
            rtagiddb := '';
13865
      END;
13866
 
13867
      IF rtagiddb IS NULL
1373 dpurdie 13868
      THEN
3959 dpurdie 13869
         SELECT proj_id
13870
           INTO projid
13871
           FROM release_tags
13872
          WHERE rtag_id = rtagid;
13873
 
13874
         INSERT INTO dash_board
13875
                     (proj_id, rtag_id, last_build_time, automated_packages,
13876
                      total_packages
13877
                     )
13878
              VALUES (projid, rtagid, ora_sysdatetime, auto_total,
13879
                      total
13880
                     );
13881
      ELSE
13882
         UPDATE dash_board
13883
            SET last_build_time = ora_sysdatetime,
13884
                automated_packages = auto_total,
13885
                total_packages = total
13886
          WHERE proj_id = projiddb AND rtag_id = rtagiddb;
1373 dpurdie 13887
      END IF;
13888
   END;
13889
 
13890
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13891
   FUNCTION exclude_from_build (
13892
      pvid          IN   NUMBER,
13893
      spkgversion   IN   VARCHAR2,
13894
      rtagid        IN   NUMBER,
13895
      username      IN   VARCHAR2
1373 dpurdie 13896
   )
3959 dpurdie 13897
      RETURN NUMBER
1373 dpurdie 13898
   IS
3959 dpurdie 13899
      userid              NUMBER;
13900
      outerrcode          NUMBER;
13901
      pkgid               NUMBER;
13902
 
13903
      CURSOR dnr_duplicate_cur
13904
      IS
13905
         SELECT *
13906
           FROM do_not_ripple
13907
          WHERE pv_id = pvid AND rtag_id = rtagid;
13908
 
13909
      dnr_duplicate_rec   dnr_duplicate_cur%ROWTYPE;
1373 dpurdie 13910
   BEGIN
3959 dpurdie 13911
      outerrcode := -1;       -- Set default return error code to ERROR state
13912
 
13913
      /*--------------- Business Rules Here -------------------*/
13914
      IF (rtagid IS NULL)
1373 dpurdie 13915
      THEN
3959 dpurdie 13916
         RETURN outerrcode;
13917
--         raise_application_error (-20000, 'RtagId must be supplied.');
13918
      END IF;
13919
 
13920
      IF (pvid IS NULL)
1373 dpurdie 13921
      THEN
3959 dpurdie 13922
         RETURN outerrcode;
13923
--         raise_application_error (-20000, 'PvId must be supplied.');
13924
      END IF;
13925
 
13926
      IF (username IS NULL)
1373 dpurdie 13927
      THEN
3959 dpurdie 13928
         RETURN outerrcode;
13929
--         raise_application_error (-20000, 'UserName must be supplied.');
13930
      END IF;
13931
 
13932
      -- Get user_id
13933
      BEGIN
13934
         SELECT usr.user_id
13935
           INTO userid
13936
           FROM users usr
13937
          WHERE UPPER (usr.user_name) = UPPER (username)
13938
            AND usr.is_disabled IS NULL;
13939
      EXCEPTION
13940
         WHEN NO_DATA_FOUND
13941
         THEN
13942
            RETURN outerrcode;
13943
--            raise_application_error (-20000,
13944
--                                        'UserName '
13945
--                                     || username
13946
--                                     || ' is not valid or disabled.'
13947
--                                    );
13948
      END;
13949
 
13950
      OPEN dnr_duplicate_cur;
13951
 
13952
      FETCH dnr_duplicate_cur
13953
       INTO dnr_duplicate_rec;
13954
 
13955
      IF dnr_duplicate_cur%FOUND
1373 dpurdie 13956
      THEN
3959 dpurdie 13957
         outerrcode := 0;
1373 dpurdie 13958
      END IF;
3959 dpurdie 13959
 
13960
      IF dnr_duplicate_cur%NOTFOUND
13961
      THEN
13962
         /* No duplicate recordset */
13963
         unripple_package (pvid, rtagid, userid);
13964
         outerrcode := 0;                            -- Set return to SUCCESS
13965
      END IF;
13966
 
13967
      CLOSE dnr_duplicate_cur;
13968
 
13969
      SELECT pkg_id
13970
        INTO pkgid
13971
        FROM package_versions
13972
       WHERE pv_id = pvid;
13973
 
13974
      DELETE FROM planned_versions
13975
            WHERE pkg_id = pkgid AND pkg_version = spkgversion;
13976
 
13977
      RETURN outerrcode;
1373 dpurdie 13978
   END;
13979
 
13980
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13981
   FUNCTION exclude_indirect_from_build (
13982
      pvid          IN   NUMBER,
13983
      spkgversion   IN   VARCHAR2,
13984
      rtagid        IN   NUMBER,
13985
      username      IN   VARCHAR2,
13986
      rootpvid      IN   NUMBER,
13987
      rootcause     IN   VARCHAR2,
13988
      rootfile      IN   VARCHAR2
1373 dpurdie 13989
   )
3959 dpurdie 13990
      RETURN NUMBER
1373 dpurdie 13991
   IS
3959 dpurdie 13992
      userid              NUMBER;
13993
      outerrcode          NUMBER;
13994
      pkgid               NUMBER;
13995
 
13996
      CURSOR dnr_duplicate_cur
13997
      IS
13998
         SELECT *
13999
           FROM do_not_ripple
14000
          WHERE pv_id = pvid AND rtag_id = rtagid;
14001
 
14002
      dnr_duplicate_rec   dnr_duplicate_cur%ROWTYPE;
1373 dpurdie 14003
   BEGIN
3959 dpurdie 14004
      outerrcode := -1;       -- Set default return error code to ERROR state
14005
 
14006
      /*--------------- Business Rules Here -------------------*/
14007
      IF (rtagid IS NULL)
1373 dpurdie 14008
      THEN
3959 dpurdie 14009
         RETURN outerrcode;
14010
--         raise_application_error (-20000, 'RtagId must be supplied.');
14011
      END IF;
14012
 
14013
      IF (pvid IS NULL)
1373 dpurdie 14014
      THEN
3959 dpurdie 14015
         RETURN outerrcode;
14016
--         raise_application_error (-20000, 'PvId must be supplied.');
14017
      END IF;
14018
 
14019
      IF (username IS NULL)
1373 dpurdie 14020
      THEN
3959 dpurdie 14021
         RETURN outerrcode;
14022
--         raise_application_error (-20000, 'UserName must be supplied.');
1373 dpurdie 14023
      END IF;
3959 dpurdie 14024
 
14025
      -- Get user_id
14026
      BEGIN
14027
         SELECT usr.user_id
14028
           INTO userid
14029
           FROM users usr
14030
          WHERE UPPER (usr.user_name) = UPPER (username)
14031
            AND usr.is_disabled IS NULL;
14032
      EXCEPTION
14033
         WHEN NO_DATA_FOUND
14034
         THEN
14035
            RETURN outerrcode;
14036
--            raise_application_error (-20000,
14037
--                                        'UserName '
14038
--                                     || username
14039
--                                     || ' is not valid or disabled.'
14040
--                                    );
14041
      END;
14042
 
14043
     /* No duplicate recordset */
14044
     unripple_package_indirect (pvid, rtagid, userid, rootpvid, rootcause, rootfile);
14045
     outerrcode := 0;                            -- Set return to SUCCESS
14046
 
14047
      SELECT pkg_id
14048
        INTO pkgid
14049
        FROM package_versions
14050
       WHERE pv_id = pvid;
14051
 
14052
      DELETE FROM planned_versions
14053
            WHERE pkg_id = pkgid AND pkg_version = spkgversion;
14054
 
14055
      RETURN outerrcode;
1373 dpurdie 14056
   END;
14057
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14058
   PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2)
1373 dpurdie 14059
   IS
14060
   BEGIN
3959 dpurdie 14061
      INSERT INTO abt_action_log
14062
                  (rcon_id, action_datetime, action
14063
                  )
14064
           VALUES (rconid, ora_sysdatetime, action
14065
                  );
1373 dpurdie 14066
   END;
14067
 
14068
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14069
   FUNCTION insert_package_metrics (
14070
      rtagid                   IN   NUMBER,
14071
      pkgname                  IN   VARCHAR2,
14072
      vext                     IN   VARCHAR2,
14073
      metricstring             IN   VARCHAR2
1373 dpurdie 14074
   )
3959 dpurdie 14075
      RETURN NUMBER
1373 dpurdie 14076
   IS
3959 dpurdie 14077
      citemcollection          relmgr_varchar2_tab_t  := relmgr_varchar2_tab_t ();
14078
      lv_pvid                  NUMBER                 := 0;
14079
      rownumber                NUMBER;
14080
      rowcontent               VARCHAR2(4000);
14081
      metricname               VARCHAR2(1000);
14082
      metricvalue              VARCHAR2(4000);
14083
      return_insert_error      NUMBER                 := -1;
14084
      return_insert_success    NUMBER                 := 0;
14085
 
14086
      /* Metrics */
14087
      lv_branches                 NUMBER;
14088
      lv_branchlist               VARCHAR2(4000);
14089
      lv_codefiles                NUMBER;
14090
      lv_ignoredfiles             NUMBER;
14091
      lv_directories              NUMBER;
14092
      lv_directorydepth           NUMBER;
14093
      lv_totalfiles               NUMBER;
14094
      lv_makefiles                NUMBER;
14095
      lv_blanklines               NUMBER;
14096
      lv_codelines                NUMBER;
14097
      lv_commentlines             NUMBER;
14098
 
1373 dpurdie 14099
   BEGIN
3959 dpurdie 14100
      /*--------------- Business Rules Here -------------------*/
14101
      IF (rtagid IS NULL)
14102
      THEN
14103
         RETURN return_insert_error;
14104
      END IF;
1373 dpurdie 14105
 
3959 dpurdie 14106
      IF (pkgname IS NULL)
14107
      THEN
14108
         RETURN return_insert_error;
14109
      END IF;
14110
 
14111
      IF (metricstring IS NULL)
14112
      THEN
14113
         RETURN return_insert_error;
14114
      END IF;
14115
 
14116
      BEGIN
14117
         SELECT pv.pv_id
14118
           INTO lv_pvid
14119
           FROM package_versions pv, packages pkg, release_content rc
14120
          WHERE pv.pkg_id = pkg.pkg_id
14121
            AND rc.rtag_id = rtagid
14122
            AND pv.pv_id = rc.pv_id
14123
            AND pkg.pkg_name = pkgname
14124
            AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
14125
      EXCEPTION
14126
           WHEN NO_DATA_FOUND
14127
           THEN
14128
                lv_pvid := 0;
14129
      END;
14130
 
14131
      citemcollection := in_list_varchar2 (metricstring, ';');
14132
 
14133
      FOR rownumber IN 1 .. citemcollection.COUNT
14134
      LOOP
14135
         rowcontent := citemcollection(rownumber);
14136
         metricvalue := SUBSTR(rowcontent, (INSTR(rowcontent, '=') + 1));
14137
         metricname := REGEXP_REPLACE(rowcontent, '=.*$', '');
14138
 
14139
         IF    metricname = 'ccbranch.count' THEN lv_branches := metricvalue;
14140
         ELSIF metricname = 'ccbranch.list' THEN lv_branchlist := metricvalue;
14141
         ELSIF metricname = 'code.files' THEN lv_codefiles := metricvalue;
14142
         ELSIF metricname = 'code.ignored' THEN lv_ignoredfiles := metricvalue;
14143
         ELSIF metricname = 'count.dir' THEN lv_directories := metricvalue;
14144
         ELSIF metricname = 'count.dirdepth' THEN lv_directorydepth := metricvalue;
14145
         ELSIF metricname = 'count.file' THEN lv_totalfiles := metricvalue;
14146
         ELSIF metricname = 'count.makefile' THEN lv_makefiles := metricvalue;
14147
         ELSIF metricname = 'lines.blank' THEN lv_blanklines := metricvalue;
14148
         ELSIF metricname = 'lines.code' THEN lv_codelines := metricvalue;
14149
         ELSIF metricname = 'lines.comment' THEN lv_commentlines := metricvalue;
14150
         END IF;
14151
      END LOOP;
14152
 
14153
      IF (lv_pvid > 0)
14154
      THEN
14155
         -- Delete any existing entries for this package version to makes sure our data is untainted
14156
         DELETE FROM package_metrics pm
14157
         WHERE pm.pv_id = lv_pvid;
14158
 
14159
         -- Insert the new data into the metrics table
14160
         INSERT INTO package_metrics
14161
                     (pv_id, branches, branch_list, code_files, ignored_files, directories, directory_depth,
14162
                      total_files, makefiles, blank_lines, code_lines, comment_lines, created_stamp
14163
                     )
14164
              VALUES (lv_pvid, lv_branches, lv_branchlist, lv_codefiles, lv_ignoredfiles, lv_directories, lv_directorydepth,
14165
                      lv_totalfiles, lv_makefiles, lv_blanklines, lv_codelines, lv_commentlines, ora_sysdatetime
14166
                     );
14167
 
14168
         -- Now update the Release_Metrics Table
14169
         update_release_metrics(rtagid);
14170
 
14171
         RETURN return_insert_success;
14172
      ELSE
14173
         RETURN return_insert_error;
14174
      END IF;
1373 dpurdie 14175
   END;
14176
 
14177
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14178
   PROCEDURE update_release_metrics (rtagid IN NUMBER)
1373 dpurdie 14179
   IS
3959 dpurdie 14180
      lv_totalpackages       NUMBER;
14181
      lv_autobuilt           NUMBER;
14182
      lv_linesofcode         NUMBER;
14183
      lv_unittested          NUMBER;
14184
      lv_autotested          NUMBER;
14185
      lv_numOfbranches       NUMBER;
14186
      lv_lastbuildtime       DATE;
1373 dpurdie 14187
   BEGIN
3959 dpurdie 14188
      IF (rtagid > 0)
14189
      THEN
14190
         -- Get the total number of packages in this release and the number of
14191
         -- those that are autobuilt
14192
         SELECT COUNT (DISTINCT rc.pv_id),
14193
                COUNT (DISTINCT autobuilt_qry.pv_id)
14194
           INTO lv_totalpackages, lv_autobuilt
14195
           FROM release_content rc,
14196
                package_versions pv,
14197
                (
14198
                 SELECT rc.pv_id
14199
                   FROM release_content rc,
14200
                        package_versions pv
14201
                  WHERE pv.is_autobuildable = 'Y'
14202
                    AND pv.pv_id = rc.pv_id
14203
                    AND rc.rtag_id = rtagid
14204
                ) autobuilt_qry
14205
          WHERE pv.pv_id = rc.pv_id
14206
            AND rc.rtag_id = rtagid
14207
            AND autobuilt_qry.pv_id (+) = rc.pv_id;
1373 dpurdie 14208
 
3959 dpurdie 14209
         -- Get the build time of the last package built in this release and the
14210
         -- total number of lines of code
14211
         SELECT MAX(pm.created_stamp),
14212
                SUM(pm.code_lines)
14213
           INTO lv_lastbuildtime, lv_linesofcode
14214
           FROM package_metrics pm, release_content rc
14215
          WHERE pm.pv_id = rc.pv_id
14216
            AND rc.rtag_id = rtagid;
14217
 
14218
         -- Get the number of packages with unit tests in this release and the
14219
         -- number of those that are autotested
14220
         SELECT COUNT(DISTINCT ut.pv_id) INTO lv_unittested
14221
           FROM unit_tests ut,
14222
                release_content rc
14223
          WHERE ut.pv_id = rc.pv_id
14224
            AND rc.rtag_id = rtagid
14225
        AND ut.test_types_fk != 1;
14226
 
14227
        SELECT COUNT(DISTINCT ut.pv_id) INTO lv_autotested
14228
          FROM unit_tests ut,
14229
               release_content rc
14230
         WHERE ut.pv_id = rc.pv_id
14231
           AND rc.rtag_id = rtagid
14232
           AND ut.test_types_fk = 7;
14233
 
14234
 
14235
         -- Count the number of unique branches in the packages in this release.
14236
--         SELECT COUNT(DISTINCT branch) INTO lv_numOfbranches
14237
--           FROM (
14238
--                SELECT pv_id,
14239
--                       regexp_substr(str, '[^,]+', 1, level) branch,
14240
--                       level lv,
14241
--                       lag(level, 1, 0) over (partition by pv_id order by level) lg
14242
--                  FROM (
14243
--                       SELECT pm.pv_id,
14244
--                              ','||pm.branch_list str
14245
--                         FROM package_metrics pm,
14246
--                              release_content rc
14247
--                        WHERE pm.pv_id = rc.pv_id
14248
--                          AND rc.rtag_id = rtagid
14249
--                       )
14250
--                CONNECT BY regexp_substr(str, '[^,]+', 1, LEVEL) IS NOT NULL
14251
--                )
14252
--          WHERE lv != lg;
14253
 
14254
         UPDATE release_metrics rm
14255
            SET rm.total_packages = lv_totalpackages,
14256
                rm.autobuilt = lv_autobuilt,
14257
                rm.lines_of_code = lv_linesofcode,
14258
                rm.unit_tested = lv_unittested,
14259
                rm.autotested = lv_autotested,
14260
--                rm.branches = lv_numOfbranches,
14261
                rm.last_build_time = lv_lastbuildtime
14262
          WHERE rtag_id = rtagid;
14263
 
14264
         IF (SQL%ROWCOUNT = 0)
14265
         THEN
14266
            INSERT INTO release_metrics
14267
                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
14268
                         autotested, last_build_time
14269
                        )
14270
                 VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,
14271
                         lv_autotested, lv_lastbuildtime
14272
                        );
14273
         END IF;
14274
--         IF (SQL%ROWCOUNT = 0)
14275
--         THEN
14276
--            INSERT INTO release_metrics
14277
--                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
14278
--                         autotested, branches, last_build_time
14279
--                        )
14280
--                 VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,
14281
--                         lv_autotested, lv_numOfbranches, lv_lastbuildtime
14282
--                        );
14283
--         END IF;
14284
--      ELSE
14285
--         raise_application_error (-20000, 'RtagId must be supplied.');
14286
      END IF;
1373 dpurdie 14287
   END;
14288
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14289
   FUNCTION return_vcs_tag(pvid IN NUMBER) RETURN VARCHAR2
1373 dpurdie 14290
   IS
3959 dpurdie 14291
      vcstypeid    NUMBER;
14292
      vcstag       VARCHAR2(32);
14293
      label        VARCHAR2(60);
14294
      srcpath      VARCHAR2(2000);
14295
      vcstypeid_cc NUMBER;
14296
      vcstypeid_uc NUMBER;
1373 dpurdie 14297
   BEGIN
3959 dpurdie 14298
      -- Get the VCS_TYPE_ID for the ClearCase version control system. We do this so that we make no assumptions about
14299
      -- what the primary key value is for the ClearCase VCS entry.
14300
      BEGIN
14301
         SELECT vt.vcs_type_id
14302
         INTO vcstypeid_cc
14303
         FROM VCS_TYPE vt
14304
         WHERE vt.tag = 'CC';
14305
         EXCEPTION
14306
            WHEN NO_DATA_FOUND THEN
14307
               raise_application_error (-20000, 'Database is missing compulsory CC version control system tag!');
14308
      END;
1373 dpurdie 14309
 
3959 dpurdie 14310
      -- Get the VCS_TYPE_ID for the Uncontrolled version control system. We do this so that we make no assumptions about
14311
      -- what the primary key value is for the Uncontrolled VCS entry.
14312
      BEGIN
14313
         SELECT vt.vcs_type_id
14314
         INTO vcstypeid_uc
14315
         FROM VCS_TYPE vt
14316
         WHERE vt.tag = 'UC';
14317
         EXCEPTION
14318
            WHEN NO_DATA_FOUND THEN
14319
               raise_application_error (-20000, 'Database is missing compulsory UC version control system tag!');
14320
      END;
14321
 
14322
      -- Get the PKG_LABEL, SRC_PATH, VCS_TYPE_ID for the package version
14323
      -- As additional VCS types are introduced, we may have to extend what this SELECT statement returns
14324
      BEGIN
14325
         SELECT pv.pkg_label, pv.src_path,
14326
           (CASE WHEN pv.pkg_label = 'N/A' AND pv.vcs_type_id IS NULL THEN vcstypeid_uc
14327
                 WHEN pv.vcs_type_id IS NULL THEN vcstypeid_cc
14328
                 ELSE pv.vcs_type_id END) AS vcs_type_id
14329
         INTO label, srcpath, vcstypeid
14330
         FROM PACKAGE_VERSIONS pv
14331
         WHERE pv.pv_id = pvid;
14332
         EXCEPTION
14333
            WHEN NO_DATA_FOUND THEN
14334
               raise_application_error (-20000, 'Package Version Not Found!');
14335
      END;
14336
 
14337
      -- Get the VCS TAG for the VCS_TYPE_ID.
14338
      BEGIN
14339
         SELECT vt.tag
14340
         INTO vcstag
14341
         FROM VCS_TYPE vt
14342
         WHERE vt.vcs_type_id = vcstypeid;
14343
         EXCEPTION
14344
            WHEN NO_DATA_FOUND THEN
14345
               raise_application_error (-20000, 'Could not get VCS Tag for the package version!');
14346
      END;
14347
 
14348
      -- Return value depending upon which VCS Tag is being used.
14349
      -- As additional VCS types are introduced, we have to add additional WHEN clauses
14350
      CASE vcstag
14351
         WHEN 'CC' THEN
14352
            RETURN vcstag || '::' || srcpath || '::' || label;
14353
         WHEN 'SVN' THEN
14354
            RETURN vcstag || '::' || srcpath || '::' || label;
14355
         ELSE
14356
            RETURN vcstag || '::';
14357
      END CASE;
14358
 
1373 dpurdie 14359
   END;
3959 dpurdie 14360
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 14361
 
3959 dpurdie 14362
/*-------------------------------------------------------------------------------------------------------
14363
Name:        update_vcs_details
14364
Description: Updates the Version Control System (vcs) details specified in the vcstag
14365
             parameter for the specified package version.
14366
             The specified package vcstag is parsed and split into 3 fields:
14367
                vcs type, src path, label
14368
             These fields are then stored for the specified pv_id in the package_versions, table.
14369
             An action is recorded in the action log and provides information for tracking and
14370
             for restoring the previous vcs settings if a recovery is required.
14371
Paramters:
14372
             ipv_id:     Package version identifier
14373
             vcstag:     Full version control tag.
14374
                         Examples:
14375
                             "SVN::AUPERASVN01/DPG_SWBase/tools/trunk::daf_tools_25.1.7027.cr@1234"
14376
                            "CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr"
14377
             user_id:    Identifier of the user that is performing this function.
14378
*/
14379
PROCEDURE update_vcs_details(ipv_id IN NUMBER, vcstag IN VARCHAR2, user_id IN NUMBER)
1373 dpurdie 14380
   IS
3959 dpurdie 14381
      ivcs_type_id   NUMBER;
14382
      svcs_type      VARCHAR2(128);
14383
      ssrc_path      VARCHAR2(512);
14384
      spkg_label     VARCHAR2(512);
14385
      spattern       VARCHAR2(64);
14386
      saction_desc   VARCHAR2(2048);
14387
      old_vcs_type   VARCHAR2(128);
14388
      old_src_path   VARCHAR2(512);
14389
      old_pkg_label  VARCHAR2(512);
14390
      old_pkg_vcstag VARCHAR2(1024);
14391
      i              NUMBER;
14392
      vcount         NUMBER;
1373 dpurdie 14393
   BEGIN
3959 dpurdie 14394
     -- Split vcs tag into fields: vcs type, src path, label
14395
     -- Fields are separated by '::'
14396
     -- e.g "CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr"
14397
     -- The below regular expression pattern has groups to achieve this.
1373 dpurdie 14398
 
3959 dpurdie 14399
     spattern:= '^([^:]*)::([^:]*)(::(.*))?$';
14400
 
14401
     --As Oracle 10g does not allow REGEXP_SUBSTR to return a group,
14402
     --REGEXP_REPLACE is used instead (Note: Oracle 11g has this enhancement).
14403
     SELECT REGEXP_REPLACE(vcstag,spattern, '\1') INTO svcs_type  FROM DUAL;
14404
     SELECT REGEXP_REPLACE(vcstag,spattern, '\2') INTO ssrc_path  FROM DUAL;
14405
     SELECT REGEXP_REPLACE(vcstag,spattern, '\4') INTO spkg_label FROM DUAL;
14406
 
14407
     -- Validate vcs type
14408
     BEGIN
14409
       SELECT vc.vcs_type_id INTO ivcs_type_id FROM vcs_type vc WHERE UPPER(svcs_type) = UPPER(vc.tag);
14410
     EXCEPTION
14411
       WHEN NO_DATA_FOUND THEN
14412
         raise_application_error (-20000, 'Invalid vcs type: ' || '"' || svcs_type || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
14413
       --RAISE;
14414
     END;
14415
 
14416
     -- If Clearcase
14417
     IF (ivcs_type_id = 2) THEN
14418
       -- Validate source path
14419
       IF NOT REGEXP_LIKE(ssrc_path,'^(\\|\/)[a-z]+[0-9a-z_\.\-\\\/ -]*$','i') THEN
14420
         raise_application_error (-20000, 'Invalid CC src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
14421
       END IF;
14422
 
14423
       -- Validate label
14424
       -- For clearcase the label must be specified. For subversion it is not required.
14425
       IF NOT REGEXP_LIKE(spkg_label,'^[0-9a-z_\.\-]+$','i') THEN
14426
         raise_application_error (-20000, 'Invalid CC label:' || '"' || spkg_label || '"' || ' for package version:' || ipv_id || ', vcstag:' || '"' || vcstag || '"');
14427
       END IF;
14428
 
14429
     -- if Subversion
14430
     ELSIF (ivcs_type_id = 23) THEN
14431
       -- general validity
14432
       -- Not as picky as the RM Data entry
14433
       IF NOT REGEXP_LIKE(ssrc_path,'^([0-9a-z_\.\-]+)(\/([0-9a-z_\.\-]+))+$','i') THEN
14434
         raise_application_error (-20000, 'Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
14435
       END IF;
14436
 
14437
       -- Validate Tag
14438
       -- May be a Peg or a Label
14439
       IF NOT REGEXP_LIKE(spkg_label,'^@?[0-9]+$','i') THEN
14440
           IF NOT REGEXP_LIKE(spkg_label,'^[0-9a-z_\.\-]+($|@[0-9]+)','i') THEN
14441
             raise_application_error (-20000, 'Invalid SVN tag:' || '"' || spkg_label || '"' || ' for package version:' || ipv_id || ', vcstag:' || '"' || vcstag || '"');
14442
           END IF;
14443
       END IF;
14444
 
14445
        -- Check for suitable ending
14446
        IF NOT REGEXP_LIKE(ssrc_path,'(\/tags$)|(\/branches\/)|(\/trunk$)','i') THEN
14447
            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 || '"');
14448
        END IF;
14449
 
14450
       -- Check for combined use of tags, branches, trunk or repeats of each
14451
       -- Count occurrences of /tags or /branches/ or /trunk
14452
       vcount:=0;
14453
       i:=1;
14454
       WHILE i > 0 LOOP
14455
         i:=REGEXP_INSTR(ssrc_path,'(\/tags(\/|$))|(\/branches(\/|$))|(\/trunk(\/|$))',i,1,1,'i');
14456
         IF i > 0 THEN
14457
           -- if found then increment count
14458
           vcount:=vcount+1;
14459
           i:=i-1;  -- move index back to "/"
14460
         END IF;
14461
       END LOOP;
14462
 
14463
       IF vcount = 0  THEN
14464
         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 || '"');
14465
       END IF;
14466
 
14467
       IF vcount > 1  THEN
14468
         raise_application_error (-20000, 'Combined use of /trunk, /tags, or /branches/. Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
14469
       END IF;
14470
 
14471
 
14472
     END IF;
14473
 
14474
     BEGIN
14475
       -- Get current vcs tag for specified package version
14476
       SELECT pv.src_path, pv.pkg_label, vc.tag as vcs_type
14477
       INTO old_src_path, old_pkg_label, old_vcs_type
14478
       FROM package_versions pv, vcs_type vc
14479
       WHERE pv.pv_id = ipv_id
14480
       AND pv.vcs_type_id = vc.vcs_type_id (+);
14481
 
14482
     EXCEPTION
14483
       WHEN NO_DATA_FOUND THEN
14484
         raise_application_error (-20000, 'Package version not found: ' || ipv_id);
14485
     END;
14486
 
14487
     old_pkg_vcstag:= old_vcs_type || '::' || old_src_path;
14488
     IF (old_pkg_label IS NOT NULL) THEN
14489
       old_pkg_vcstag:=old_pkg_vcstag || '::' || old_pkg_label;
14490
     END IF;
14491
 
14492
     -- Create action description
14493
     -- This description will contain the old and new tags.
14494
     -- Its purpose is to provide information for tracking and for restoring previous vcs settings if a recovery is required.
14495
     -- An example of the action description is below:
14496
     --   OldTag:CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr NewTag:SVN::DPG_SWBase/tools/tags/daf_tools_25.1.7027.cr
14497
     saction_desc:='OldTag:' || old_pkg_vcstag || ' ' || 'NewTag:' || vcstag;
14498
 
14499
     -- Store new vcs details
14500
     UPDATE package_versions SET
14501
       src_path = ssrc_path,
14502
       pkg_label = spkg_label,
14503
       vcs_type_id = ivcs_type_id
14504
     WHERE
14505
       pv_id = ipv_id;
14506
 
14507
     -- Store action in action log so that we can back track and also restore vcs settings if required.
14508
     log_action (ipv_id,'VcsConversion',user_id,saction_desc);
14509
 
14510
   END update_vcs_details;
14511
 
14512
/*-------------------------------------------------------------------------------------------------------
14513
Name:        isSVN
14514
Description: Determine if any of the packages versions are controlled under SVN
14515
			 Intended to be used to prevent users from releasing a package
14516
			 that has been migrated to SVN
14517
 
14518
Paramters:	pkgid:     Package ID
14519
 
14520
Returns:	Number of versions under SVN version control
14521
*/
6031 dpurdie 14522
 
3959 dpurdie 14523
FUNCTION isSVN( pkgid IN NUMBER )
14524
    RETURN NUMBER
14525
    IS
14526
    svncount   NUMBER  := 0;
14527
   BEGIN
14528
        SELECT COUNT(*) INTO svncount FROM PACKAGE_VERSIONS pv WHERE pv.PKG_ID = pkgid AND pv.VCS_TYPE_ID = 23;
14529
        RETURN (svncount);
1373 dpurdie 14530
   END;
6031 dpurdie 14531
 
3959 dpurdie 14532
/*-------------------------------------------------------------------------------------------------------
14533
Name:        isSVNbyName
14534
Description: Determine if any of the packages versions are controlled under SVN
14535
			 Intended to be used to prevent users from releasing a package
14536
			 that has been migrated to SVN
14537
 
14538
Paramters:	pkgname:	Package Name
14539
 
14540
Returns:	Number of versions under SVN version control
14541
*/
14542
 
6031 dpurdie 14543
FUNCTION isSVNbyName( pkgname IN VARCHAR2 )
3959 dpurdie 14544
    RETURN NUMBER
14545
IS
14546
   svncount   NUMBER  := 0;
14547
   BEGIN
14548
        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;
14549
        RETURN (svncount);
14550
   END;
5172 dpurdie 14551
/*-------------------------------------------------------------------------------------------------------
14552
Name:        new_build_instance
14553
Description: Create a new entry in the BUILD_INSTANCE table
14554
             The BUILD_ID will be allocated.
14555
             The timestamp will be created
14556
 
14557
Paramters:	rtag_id:	Release ID - must exist
14558
            pv_id:    Package ID - must exist
14559
            reason:   Reason code for the build
14560
 
14561
Returns:	BUILD_ID for the new entry
14562
          Returns -1 on error, PV_ID or RTAG_ID do not exist
6031 dpurdie 14563
*/
14564
FUNCTION new_build_instance( rtag_id IN NUMBER, pv_id IN NUMBER , reason IN CHAR)
14565
  RETURN NUMBER
5172 dpurdie 14566
  IS
14567
    build_id NUMBER := 0;
14568
  BEGIN
14569
    INSERT into BUILD_INSTANCES (RTAG_ID, PV_ID, REASON)
14570
    values( rtag_id, pv_id, reason)
14571
    returning BUILD_ID into build_id;
14572
    return build_id;
14573
  EXCEPTION
14574
    WHEN OTHERS THEN
14575
      return -1;
14576
  END;
6031 dpurdie 14577
 
5172 dpurdie 14578
/*-------------------------------------------------------------------------------------------------------
14579
Name: update_build_instance
14580
Description: Update fields in an existing build instance
14581
Returns: -1 on error
14582
*/
14583
FUNCTION update_build_instance(
14584
    nbuild_id IN NUMBER,
14585
    npv_id    IN NUMBER DEFAULT NULL,
14586
    nstate    IN CHAR DEFAULT NULL )
14587
  RETURN NUMBER
14588
IS
14589
BEGIN
14590
  IF ( npv_id IS NOT NULL AND npv_id > 0 ) THEN
14591
    UPDATE BUILD_INSTANCES SET PV_ID = npv_id WHERE BUILD_ID = nbuild_id;
14592
    IF SQL%NOTFOUND THEN
14593
      RETURN -2;
14594
    END IF;
14595
  END IF;
6031 dpurdie 14596
 
5172 dpurdie 14597
  IF ( nstate        IS NOT NULL ) THEN
14598
    IF (LENGTH(nstate) = 1 ) THEN
14599
      UPDATE BUILD_INSTANCES SET STATE = nstate WHERE BUILD_ID = nbuild_id;
14600
        IF SQL%NOTFOUND THEN
14601
          RETURN -3;
14602
        END IF;
14603
    ELSE
14604
      RETURN -4;
14605
    END IF;
14606
  END IF;
6031 dpurdie 14607
 
5172 dpurdie 14608
  RETURN 1;
14609
  EXCEPTION
14610
    WHEN OTHERS THEN
14611
      RETURN -1;
14612
  END;
14613
 
14614
/*-------------------------------------------------------------------------------------------------------
14615
Name:        insert_test_run
14616
Description: Insert data into the test_run table
14617
 
6031 dpurdie 14618
 
5172 dpurdie 14619
Paramters:	See below
14620
 
14621
Returns:	1 on success
14622
          Returns -1 on error
6031 dpurdie 14623
*/
14624
  FUNCTION insert_test_run(
14625
      build_id  IN NUMBER,
14626
      name      IN VARCHAR2,
14627
      outcome   IN VARCHAR2,
14628
      platform  IN VARCHAR2,
14629
      stype     IN VARCHAR2,
14630
      duration  IN NUMBER default null,
5172 dpurdie 14631
      message   IN CLOB default null
14632
      ) return NUMBER
14633
IS
14634
  sName VARCHAR2(1000) := name;
14635
  sNameLen NUMBER;
6031 dpurdie 14636
 
5172 dpurdie 14637
BEGIN
14638
  sNameLen := LENGTH(sName);
5384 dpurdie 14639
  IF sNameLen >= 199 Then
6031 dpurdie 14640
    sName := '...' || SUBSTR(sName, sNameLen - 196);
5172 dpurdie 14641
  END IF;
14642
 
14643
  INSERT into TEST_RUN
14644
    (BUILD_ID, TEST_NAME, TEST_OUTCOME, TIME_TAKEN,FAIL_MESSAGE,PLATFORM, TYPE)
14645
    VALUES(build_id,sName,outcome, duration, message, platform, stype);
14646
    return 1;
14647
  EXCEPTION
14648
    WHEN OTHERS THEN
14649
      return -1;
14650
 
14651
END;
6031 dpurdie 14652
 
3959 dpurdie 14653
   END;
4040 dpurdie 14654
 
1374 dpurdie 14655
/
5892 dpurdie 14656
 
6031 dpurdie 14657
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "RM_READONLY";
14658
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "MS_READONLY";
5892 dpurdie 14659
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "DM_READONLY";
4040 dpurdie 14660
--------------------------------------------------------
14661
--  DDL for Package Body PK_WORK_IN_PROGRESS
14662
--------------------------------------------------------
14663
 
5172 dpurdie 14664
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS
1373 dpurdie 14665
 
14666
/*
14667
------------------------------
14668
||  Last Modified:  S.Vukovic
3959 dpurdie 14669
||  Modified Date:  2/May/2005
1373 dpurdie 14670
||  Body Version:   1.0
14671
------------------------------
14672
*/
14673
 
14674
 
14675
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14676
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 14677
 
3959 dpurdie 14678
	oldPvId NUMBER;
14679
	ReleaseLocation VARCHAR2(4000);
14680
	sLocation VARCHAR2(4000) := NULL;
1373 dpurdie 14681
 
3959 dpurdie 14682
 
1373 dpurdie 14683
BEGIN
14684
	/*--------------- Business Rules Here -------------------*/
3959 dpurdie 14685
	/*-------------------------------------------------------*/
1373 dpurdie 14686
 
3959 dpurdie 14687
	BEGIN
5384 dpurdie 14688
		-- Check if Exists in "Work in progress" anywhere in the world in a non-closed Release
3959 dpurdie 14689
		SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME  INTO sLocation
14690
		  FROM WORK_IN_PROGRESS wip,
14691
		  	   RELEASE_TAGS rt,
14692
			   PROJECTS proj
14693
		 WHERE wip.PV_ID = newPvId
14694
		   AND wip.RTAG_ID = rt.RTAG_ID
5384 dpurdie 14695
		   AND rt.OFFICIAL in ('N','R','C')
3959 dpurdie 14696
		   AND rt.PROJ_ID = proj.PROJ_ID;
1373 dpurdie 14697
 
3959 dpurdie 14698
		EXCEPTION
14699
	    	WHEN NO_DATA_FOUND THEN
14700
	       		sLocation := NULL;
1373 dpurdie 14701
 
6031 dpurdie 14702
	END;
1373 dpurdie 14703
 
14704
 
6031 dpurdie 14705
 
3959 dpurdie 14706
	IF (sLocation IS NULL)  THEN
1373 dpurdie 14707
 
3959 dpurdie 14708
		-- Add to "Work in progress"
14709
		INSERT INTO WORK_IN_PROGRESS ( RTAG_ID, PV_ID, VIEW_ID )
14710
		VALUES( RtagId, newPvId, ViewId );
14711
 
14712
 
14713
	    /* LOG ACTION */
14714
		SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
14715
		  FROM PROJECTS proj,
14716
		  	   RELEASE_TAGS rt
14717
		 WHERE rt.PROJ_ID = proj.PROJ_ID
14718
		   AND rt.RTAG_ID = RtagId;
14719
 
14720
		Log_Action ( newPvId, 'work_in_progress', UserId, 'Location: '|| ReleaseLocation );
14721
 
14722
	ELSE
6031 dpurdie 14723
 
3959 dpurdie 14724
		RAISE_APPLICATION_ERROR (-20000, 'This version is already in Work-In-Progress Area at '|| sLocation ||'.' );
6031 dpurdie 14725
 
1373 dpurdie 14726
	END IF;
14727
 
3959 dpurdie 14728
END;
14729
/*-------------------------------------------------------------------------------------------------------*/
14730
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 14731
 
3959 dpurdie 14732
	ReleaseLocation VARCHAR2(4000);
1373 dpurdie 14733
 
3959 dpurdie 14734
BEGIN
14735
 
14736
	/*--------------- Business Rules Here -------------------*/
1373 dpurdie 14737
	/*-------------------------------------------------------*/
14738
 
14739
 
3959 dpurdie 14740
	-- Get release location for logging pusposes
14741
	SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
14742
	  FROM PROJECTS proj,
14743
	  	   RELEASE_TAGS rt
14744
	 WHERE rt.PROJ_ID = proj.PROJ_ID
14745
	   AND rt.RTAG_ID = RtagId;
1373 dpurdie 14746
 
6031 dpurdie 14747
    -- Ensure that package is not marked as Pending/Rejected any more
14748
    UPDATE package_versions
14749
       SET DLOCKED  = 'N'
14750
     WHERE PV_ID  = PvId
14751
       AND DLOCKED != 'Y';
1373 dpurdie 14752
 
3959 dpurdie 14753
	-- Delete from Work In Progress
14754
	DELETE
14755
	  FROM WORK_IN_PROGRESS wip
14756
	 WHERE wip.RTAG_ID = RtagId
14757
	   AND wip.PV_ID = PvId;
1373 dpurdie 14758
 
3959 dpurdie 14759
	Log_Action ( PvId, 'delete_from_wip', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 14760
 
3959 dpurdie 14761
 
14762
 
14763
 
1373 dpurdie 14764
END;
14765
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14766
PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 14767
 
3959 dpurdie 14768
	nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
14769
	ReleaseLocation VARCHAR2(4000);
14770
	PvId NUMBER;
1373 dpurdie 14771
 
14772
BEGIN
3959 dpurdie 14773
 
1373 dpurdie 14774
	/*--------------- Business Rules Here -------------------*/
3959 dpurdie 14775
	IF (PvIdList IS NULL)
14776
	THEN
14777
		RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
14778
	END IF;
1373 dpurdie 14779
	/*-------------------------------------------------------*/
14780
 
14781
 
3959 dpurdie 14782
	nIdCollector := IN_LIST_NUMBER ( PvIdList );
1373 dpurdie 14783
 
14784
 
3959 dpurdie 14785
	-- Get release location for logging pusposes
14786
	SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
14787
	  FROM PROJECTS proj,
14788
	  	   RELEASE_TAGS rt
14789
	 WHERE rt.PROJ_ID = proj.PROJ_ID
14790
	   AND rt.RTAG_ID = RtagId;
1373 dpurdie 14791
 
3959 dpurdie 14792
 
14793
	FOR i IN 1..nIdCollector.COUNT
14794
	LOOP
14795
		PvId := nIdCollector(i);
14796
 
14797
		-- Delete from Work In Progress
14798
		DELETE
14799
		  FROM WORK_IN_PROGRESS wip
14800
		 WHERE wip.RTAG_ID = RtagId
14801
		   AND wip.PV_ID = PvId;
14802
 
14803
		Log_Action ( PvId, 'remove_from_work_in_progress', UserId, 'Location: '|| ReleaseLocation );
14804
 
14805
	END LOOP;
14806
 
14807
 
1373 dpurdie 14808
END;
14809
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14810
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
14811
 
14812
	ReturnValue NUMBER;
14813
 
1373 dpurdie 14814
BEGIN
3959 dpurdie 14815
	SELECT wip.VIEW_ID INTO ReturnValue
14816
	  FROM WORK_IN_PROGRESS wip
14817
	 WHERE wip.RTAG_ID = RtagId
14818
	   AND wip.PV_ID = PvId;
1373 dpurdie 14819
 
3959 dpurdie 14820
	RETURN ReturnValue;
1373 dpurdie 14821
END;
14822
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14823
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
14824
 
14825
	IsBaseView CHAR(1);
6031 dpurdie 14826
 
1373 dpurdie 14827
BEGIN
14828
 
3959 dpurdie 14829
	-- Check if the view is BASE VIEW
14830
	SELECT vi.BASE_VIEW INTO IsBaseView
14831
	  FROM VIEWS vi
14832
	 WHERE vi.VIEW_ID = ViewId;
6031 dpurdie 14833
 
14834
	IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 14835
		-- Get Base view content
14836
		OPEN RecordSet FOR
14837
		SELECT 0 AS PKG_STATE,
14838
			   NULL AS DEPRECATED_STATE,
6031 dpurdie 14839
			   pv.pv_id,
14840
			   pkg.pkg_name,
14841
			   pv.pkg_version,
14842
			   pv.dlocked,
3959 dpurdie 14843
			   pv.pv_description,
14844
			   pv.BUILD_TYPE
14845
		  FROM WORK_IN_PROGRESS rel,
14846
		       packages pkg,
14847
		       package_versions pv
14848
		 WHERE pv.pkg_id = pkg.pkg_id
14849
		   AND rel.pv_id = pv.pv_id
14850
		   AND rel.VIEW_ID = ViewId
14851
		   AND rel.RTAG_ID = RtagId
14852
		 ORDER BY UPPER(pkg.PKG_NAME);
1373 dpurdie 14853
 
6031 dpurdie 14854
 
14855
	ELSE
14856
 
3959 dpurdie 14857
	 	-- Get non base view content
14858
		OPEN RecordSet FOR
14859
		SELECT 0 AS PKG_STATE,
14860
			   NULL AS DEPRECATED_STATE,
6031 dpurdie 14861
			   pv.pv_id,
14862
			   pkg.pkg_name,
14863
			   pv.pkg_version,
14864
			   pv.dlocked,
3959 dpurdie 14865
			   pv.pv_description,
14866
			   pv.BUILD_TYPE
14867
		  FROM WORK_IN_PROGRESS rel,
14868
		       packages pkg,
14869
		       package_versions pv,
14870
			   VIEW_DEF vd
14871
		 WHERE pv.pkg_id = pkg.pkg_id
14872
		   AND rel.pv_id = pv.pv_id
14873
		   AND vd.VIEW_ID = ViewId
14874
		   AND vd.PKG_ID = pv.PKG_ID
14875
		   AND rel.RTAG_ID = RtagId
14876
		 ORDER BY UPPER(pkg.PKG_NAME);
14877
 
6031 dpurdie 14878
 
14879
	END IF;
14880
 
14881
 
1373 dpurdie 14882
END;
14883
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14884
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
6031 dpurdie 14885
 
1373 dpurdie 14886
BEGIN
6031 dpurdie 14887
 
3959 dpurdie 14888
	UPDATE WORK_IN_PROGRESS wip SET
14889
	wip.VIEW_ID = NewViewId
14890
	WHERE wip.PV_ID = PvId
14891
	  AND wip.RTAG_ID = RtagId;
6031 dpurdie 14892
 
1373 dpurdie 14893
END;
14894
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14895
END PK_WORK_IN_PROGRESS;
4040 dpurdie 14896
 
3959 dpurdie 14897
/
4040 dpurdie 14898
--------------------------------------------------------
14899
--  DDL for Package Body RM_ISSUES
14900
--------------------------------------------------------
14901
 
5172 dpurdie 14902
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."RM_ISSUES" AS
1373 dpurdie 14903
 
3959 dpurdie 14904
-- Private Implementation -----------------------------------------------------
1373 dpurdie 14905
 
14906
 
3959 dpurdie 14907
	FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER
14908
	AS
1373 dpurdie 14909
 
3959 dpurdie 14910
	BEGIN
14911
		-- start boundary case
14912
		IF ( XXstart < XX ) THEN
14913
			RETURN 1;
1373 dpurdie 14914
 
3959 dpurdie 14915
		ELSIF ( XXstart = XX ) THEN
1373 dpurdie 14916
 
3959 dpurdie 14917
			-- need to consider YY
14918
			IF ( YYstart < YY ) THEN
14919
				RETURN 1;
1373 dpurdie 14920
 
3959 dpurdie 14921
			ELSIF ( YYstart = YY ) THEN
1373 dpurdie 14922
 
3959 dpurdie 14923
					-- need to consider ZZ
14924
					IF ( ZZstart <= ZZ ) THEN
14925
						RETURN 1;
14926
 
14927
					ELSE
14928
						RETURN 0;
14929
					END IF;
14930
 
14931
			ELSE
14932
				RETURN 0;
14933
			END IF;
14934
		ELSE
14935
			RETURN 0;
14936
		END IF;
14937
	EXCEPTION
14938
		WHEN OTHERS THEN
14939
			RETURN -1;
14940
	END;
14941
 
14942
 
14943
	FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER
14944
	AS
14945
 
14946
	BEGIN
14947
		-- end boundary case
14948
		IF ( XX < XXend ) THEN
14949
			RETURN 1;
14950
 
14951
		ELSIF ( XX = XXend ) THEN
14952
 
14953
			-- need to consider YY
14954
			IF ( YY < YYend ) THEN
14955
				RETURN 1;
14956
 
14957
			ELSIF ( YY = YYend ) THEN
14958
 
14959
					-- need to consider ZZ
14960
					IF ( ZZ <= ZZend ) THEN
14961
						RETURN 1;
14962
 
14963
					ELSE
14964
						RETURN 0;
14965
					END IF;
14966
			ELSE
14967
 
14968
				RETURN 0;
14969
			END IF;
14970
		ELSE
14971
			RETURN 0;
14972
		END IF;
14973
	EXCEPTION
14974
		WHEN OTHERS THEN
14975
			RETURN -1;
14976
	END;
14977
 
14978
	/*
14979
	-	version format:		XX.YY.ZZ.abc
14980
	*/
14981
	FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBER
14982
	AS
14983
		XXstart		NUMBER	:=	0;
14984
		XXend		NUMBER	:=	0;
14985
		XX			NUMBER	:=	0;
14986
		YYstart		NUMBER	:=	0;
14987
		YYend		NUMBER	:=	0;
14988
		YY			NUMBER	:=	0;
14989
		ZZstart		NUMBER	:=	0;
14990
		ZZend		NUMBER	:=	0;
14991
		ZZ			NUMBER	:=	0;
14992
		first_dot	NUMBER	:=	0;
14993
		second_dot	NUMBER	:=	0;
14994
		third_dot	NUMBER	:=	0;
14995
 
14996
		ProjExtstart	VARCHAR2(10);
14997
		ProjExtend		VARCHAR2(10);
14998
		ProjExt			VARCHAR2(10);
14999
 
15000
	BEGIN
15001
		-- strip the version number
15002
		first_dot :=  INSTR(version_start, '.', 1, 1);
15003
		second_dot :=  INSTR(version_start, '.', 1, 2);
15004
		third_dot :=  INSTR(version_start, '.', 1, 3);
15005
 
15006
		XXstart := TO_NUMBER( SUBSTR( version_start, 1, first_dot - 1 ) );
15007
		YYstart := TO_NUMBER( SUBSTR( version_start, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
15008
		ZZstart := TO_NUMBER( SUBSTR( version_start, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
15009
		ProjExtstart := SUBSTR( version_start, third_dot + 1, LENGTH(version_start) - third_dot );
15010
 
15011
		first_dot :=  INSTR(version_end, '.', 1, 1);
15012
		second_dot :=  INSTR(version_end, '.', 1, 2);
15013
		third_dot :=  INSTR(version_end, '.', 1, 3);
15014
 
15015
		XXend := TO_NUMBER( SUBSTR( version_end, 1, first_dot - 1 ) );
15016
		YYend := TO_NUMBER( SUBSTR( version_end, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
15017
		ZZend := TO_NUMBER( SUBSTR( version_end, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
15018
		ProjExtend := SUBSTR( version_end, third_dot + 1, LENGTH(version_end) - third_dot );
15019
 
15020
		first_dot :=  INSTR(version, '.', 1, 1);
15021
		second_dot :=  INSTR(version, '.', 1, 2);
15022
		third_dot :=  INSTR(version, '.', 1, 3);
15023
 
15024
		XX := TO_NUMBER( SUBSTR( version, 1, first_dot - 1 ) );
15025
		YY := TO_NUMBER( SUBSTR( version, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
15026
		ZZ := TO_NUMBER( SUBSTR( version, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
15027
		ProjExt := SUBSTR( version, third_dot + 1, LENGTH(version) - third_dot );
15028
 
15029
		-- only include versions if all project extensions are the same
15030
		IF ( ProjExtstart = ProjExt AND ProjExt = ProjExtend ) THEN
15031
 
15032
			IF ( VerIsGrtrThanOrEqlToStart( XXstart, XX, YYstart, YY, ZZstart, ZZ ) = 1 AND VerIsLessThanOrEqlToEnd( XXend, XX, YYend, YY, ZZend, ZZ ) = 1 ) THEN
15033
				RETURN 1;
15034
			ELSE
15035
				RETURN 0;
15036
			END IF;
15037
		ELSE
15038
			RETURN 0;
15039
		END IF;
15040
 
15041
	EXCEPTION
15042
		WHEN OTHERS THEN
15043
			RETURN -1;
15044
	END;
15045
 
15046
	FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBER
15047
	AS
15048
	    pkg_id NUMBER;
15049
	BEGIN
15050
		SELECT
15051
			p.PKG_ID
15052
		INTO
15053
			pkg_id
15054
		FROM
15055
			PACKAGES p
15056
		WHERE
15057
			p.PKG_NAME = pkgName;
15058
 
15059
		RETURN pkg_id;
15060
	EXCEPTION
15061
	    WHEN OTHERS THEN
15062
			dbms_output.put_line('GetPkgId exception: ' || SQLERRM );
15063
			RETURN -1;
15064
	END;
15065
 
15066
 
15067
-- Public Implementation ------------------------------------------------------
15068
 
15069
	/*
15070
	-- Proc: AllIssues - Gets all issues for a package from dependent packages one level deep
15071
	--
15072
	-- INPUT PARAMETERS:
15073
	--
15074
	--		pkg_name  	-  	The name of the top level package to get issues for
15075
	--		version_start	-	The start version for the comparison
15076
	--		version_end	-	The end version for the comparison
15077
	*/
15078
	PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )
15079
	AS
15080
		pkgId	NUMBER;
15081
	BEGIN
15082
		-- get pkg_id of the input package:
15083
		pkgId := GetPkgId( pkg_name );
15084
 
15085
		OPEN vCursor FOR
15086
		SELECT
15087
			  pv.PKG_ID,
15088
			  pv.PKG_VERSION,
15089
			  pv.PV_ID,
15090
			  i_pkg.ISS_ID,
15091
			  ( SELECT pkg_name FROM PACKAGES WHERE pkg_id = pd.DPKG_ID ) AS DPV_NAME,
15092
			  pd.DPKG_ID,
15093
			  ( SELECT pkg_version FROM PACKAGE_VERSIONS WHERE pv_id = pd.DPV_ID ) AS DPV_VER,
15094
			  pd.DPV_ID,
15095
			  i_dpkg.ISS_ID AS ISSUE_ID
15096
		FROM
15097
			 PACKAGE_VERSIONS pv
15098
							  LEFT OUTER JOIN CQ_ISSUES i_pkg ON pv.PV_ID = i_pkg.PV_ID
15099
							  LEFT OUTER JOIN PACKAGE_DEPENDENCIES pd ON pv.PV_ID = pd.PV_ID
15100
							  LEFT OUTER JOIN CQ_ISSUES i_dpkg ON pd.DPV_ID = i_dpkg.PV_ID
15101
		WHERE
15102
   			 pv.PKG_ID = pkgId
15103
		AND
15104
			VersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1
15105
		AND
15106
			 ( i_dpkg.ISS_ID IS NOT NULL OR i_pkg.ISS_ID IS NOT NULL )
15107
		ORDER BY
15108
			 pv.PKG_ID,
15109
			 pv.PV_ID,
15110
			 pd.DPKG_ID,
15111
			 pd.DPV_ID;
15112
	EXCEPTION
15113
		WHEN OTHERS THEN
15114
			dbms_output.put_line('AllIssues exception: ' || SQLERRM );
15115
	END;
15116
 
15117
 
15118
	-- NOTE: make RM_PACKAGE_ISSUES a temporary table when tested ok
15119
 
15120
	/*
15121
	-- Proc: LoadIssuesTable
15122
	--
15123
	-- Populates Package_Issues table with details of issues from all dependent packages.
15124
	-- This will be for all package versions of the input pkg_name between the
15125
	-- version_start and version_end.
15126
	--
15127
	-- INPUT PARAMETERS:
15128
	--
15129
	--		pkg_name  	-  	The name of the top level package to get issues for
15130
	--		version_start	-	The start version for the comparison
15131
	--		version_end	-	The end version for the comparison
15132
	*/
15133
	PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )
15134
	AS
15135
		pkgId	NUMBER;
15136
 
15137
		CURSOR pack_vers_cur IS
15138
			SELECT
15139
				pv.PV_ID,
15140
				pv.PKG_VERSION,
15141
				pv.PKG_ID,
15142
				p.PKG_NAME
15143
			FROM
15144
				PACKAGE_VERSIONS pv
15145
					JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
15146
			WHERE
15147
   				 pv.PKG_ID = pkgId
15148
			AND
15149
				VersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1;
15150
 
15151
	BEGIN
15152
		DELETE FROM RELEASE_MANAGER.RM_PKG_ISSUES; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
15153
 
15154
		-- get the pkg_id we are finding issues for
15155
		pkgId := GetPkgId( pkg_name );
15156
 
15157
		-- find all the top level packages we are dealing with and recursively process their issues and their dependent package issues.
15158
		FOR pack_ver_rec IN  pack_vers_cur
15159
		LOOP
15160
			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 );
15161
			COMMIT;
15162
		END LOOP;
15163
 
15164
		-- The output cursor - shows the individual versions of the top level package then were reported on
15165
		OPEN vCursor FOR
15166
		SELECT DISTINCT ISS_ID, PKG_VERSION FROM RM_PKG_ISSUES WHERE ISS_ID IS NOT NULL; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
15167
/*removed
15168
		SELECT
15169
			PKG_VERSION
15170
		FROM
15171
			RELEASE_MANAGER.RM_PACKAGE_ISSUES;
15172
*/
15173
 
15174
 
15175
	EXCEPTION
15176
		WHEN OTHERS THEN
15177
			dbms_output.put_line('LoadIssuesTable exception: ' || SQLERRM );
15178
	END;
15179
 
15180
 
15181
	/*
15182
	-- Proc: InsertIssuesForDepends
15183
	--
15184
	-- Used by LoadIssuesTable to recursively find issues for all dependent packages
15185
	--
15186
	-- INPUT PARAMETERS:
15187
	--
15188
	--		pvID  		-  	The package version id of the package to get issues for
15189
	--		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)
15190
	--		top_pkgName -  	The package name of the top level package
15191
	--		top_pvID  	-  	The package version id of the top level package
15192
	--		top_pkgVer  -  	The package version description of the top level package
15193
	*/
15194
	PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 )
15195
	AS
15196
		pkgId		NUMBER;
15197
		issCnt		NUMBER := 0;
15198
		pkgCheck	NUMBER := 0;
15199
		depCheck	NUMBER := 0;
15200
 
15201
		dpkgName	VARCHAR(50);
15202
		dpkgVersion	VARCHAR(50);
15203
 
15204
		CURSOR dep_packs_cur IS
15205
			SELECT
15206
				DPV_ID
15207
			FROM
15208
				PACKAGE_DEPENDENCIES
15209
			WHERE
15210
				PV_ID = pvID;
15211
 
15212
	BEGIN
15213
 
15214
		-- check to see if the package has been processed previously
15215
		SELECT
15216
			COUNT(*)
15217
		INTO
15218
			pkgCheck
15219
		FROM
15220
			RM_PKG_ISSUES /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
15221
		WHERE
15222
			DPV_ID = pvID;
15223
 
15224
		dbms_output.put_line('pkgCheck: ' || pkgCheck );
15225
 
15226
		-- Package not already processed (no cyclic dependency) - process it
15227
		IF ( pkgCheck = 0 ) THEN
15228
 
15229
			-- check to see if this package version has any issues assigned to it
15230
			SELECT
15231
				COUNT(*)
15232
			INTO
15233
				issCnt
15234
			FROM
15235
				CQ_ISSUES i
15236
			WHERE
15237
				i.PV_ID = pvID;
15238
 
15239
			dbms_output.put_line('issCnt: ' || issCnt );
15240
 
15241
			-- Always enter a marker row into the table even if there are no issues for the package.
15242
			-- This allows us to pick up any cyclic dependencies.
15243
			IF ( issCnt > 0 ) THEN
15244
				-- get issues and insert into RM_PACKAGE_ISSUES
15245
				/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
15246
 
15247
				INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )
15248
					SELECT DISTINCT
15249
						top_pkgID		AS PKG_ID,
15250
						top_pkgName		AS PKG_NAME,
15251
						top_pvID		AS PV_ID,
15252
						top_pkgVer		AS PKG_VERSION,
15253
						pv.PV_ID		AS DPV_ID,
15254
						p.PKG_NAME		AS DPKG_NAME,
15255
						pv.PKG_VERSION	AS DPKG_VERSION,
15256
						ci.ISS_DB,
15257
						ci.ISS_ID
15258
					FROM
15259
						PACKAGE_VERSIONS pv
15260
							JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
15261
							JOIN CQ_ISSUES ci ON pv.PV_ID = ci.PV_ID
15262
					WHERE
15263
						pv.PV_ID = pvID;
15264
 
15265
			ELSE
15266
				-- get the dpkg details - there will always be a row returned here
15267
				SELECT
15268
					p.PKG_NAME
15269
				INTO
15270
					dpkgName
15271
				FROM
15272
					PACKAGE_VERSIONS pv
15273
						JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
15274
				WHERE
15275
	   				 pv.PV_ID = pvID;
15276
 
15277
				SELECT
15278
					pv.PKG_VERSION
15279
				INTO
15280
					dpkgVersion
15281
				FROM
15282
					PACKAGE_VERSIONS pv
15283
				WHERE
15284
	   				 pv.PV_ID = pvID;
15285
 
15286
				-- enter a marker row
15287
				/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
15288
				INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )
15289
				VALUES (
15290
					top_pkgID,
15291
					top_pkgName,
15292
					top_pvID,
15293
					top_pkgVer,
15294
					pvID,
15295
					dpkgName,
15296
					dpkgVersion,
15297
					NULL,
15298
					NULL );
15299
 
15300
			END IF;
15301
 
15302
			-- If this package version has dependencies then recurse
15303
			SELECT
15304
				COUNT(*)
15305
			INTO
15306
				depCheck
15307
			FROM
15308
				PACKAGE_DEPENDENCIES
15309
			WHERE
15310
				PV_ID = pvID;
15311
 
15312
			IF ( depCheck > 0 ) THEN
15313
				-- get dependencies and call this function recursively for each one
15314
				FOR dep_rec IN  dep_packs_cur
15315
				LOOP
15316
					InsertIssuesForDepends( dep_rec.DPV_ID, top_pkgID, top_pkgName, top_pvID, top_pkgVer );
15317
				END LOOP;
15318
 
15319
			END IF;
15320
 
15321
		END IF;
15322
 
15323
	/*EXCEPTION
15324
		WHEN OTHERS THEN
15325
			no exception handling required
15326
	*/
15327
	END;
15328
 
15329
END Rm_Issues;
4040 dpurdie 15330
 
1374 dpurdie 15331
/
4040 dpurdie 15332
--------------------------------------------------------
15333
--  DDL for Procedure ADD_AUTOBUILD_FAILURE_INFO
15334
--------------------------------------------------------
15335
set define off;
15336
 
5172 dpurdie 15337
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_AUTOBUILD_FAILURE_INFO" (
1373 dpurdie 15338
   nprojid     IN   NUMBER,
15339
   nviewid     IN   NUMBER,
15340
   suserlist   IN   VARCHAR2
15341
)
15342
IS
15343
   groupid   NUMBER;
15344
/******************************************************************************
15345
   NAME:       ADD_AUTOBUILD_FAILURE
15346
   PURPOSE:
15347
 
15348
   REVISIONS:
15349
   Ver        Date        Author           Description
15350
   ---------  ----------  ---------------  ------------------------------------
15351
   1.0        11/04/2006   Rupesh Solanki Created this procedure.
15352
 
15353
   NOTES:
15354
 
15355
   Automatically available Auto Replace Keywords:
15356
      Object Name:     ADD_AUTOBUILD_FAILURE
15357
      Sysdate:         11/04/2006
15358
      Date and Time:   11/04/2006, 9:28:28 AM, and 11/04/2006 9:28:28 AM
15359
      Username:         (set in TOAD Options, Procedure Editor)
15360
      Table Name:       (set in the "New PL/SQL Object" dialog)
15361
 
15362
******************************************************************************/
15363
BEGIN
15364
   BEGIN
15365
      SELECT group_email_id
15366
        INTO groupid
15367
        FROM autobuild_failure
15368
       WHERE proj_id = nprojid AND view_id = nviewid;
15369
   EXCEPTION
15370
      WHEN NO_DATA_FOUND
15371
      THEN
15372
         --  Create Next Sequence Id ---
15373
         SELECT seq_group_email_id.NEXTVAL
15374
           INTO groupid
15375
           FROM DUAL;
15376
 
15377
         INSERT INTO autobuild_failure
15378
                     (group_email_id, proj_id, view_id
15379
                     )
15380
              VALUES (groupid, nprojid, nviewid
15381
                     );
15382
   END;
15383
 
15384
   add_view_members (groupid, suserlist);
15385
END add_autobuild_failure_info;
4040 dpurdie 15386
 
1374 dpurdie 15387
/
4040 dpurdie 15388
--------------------------------------------------------
15389
--  DDL for Procedure ADD_COMPONENT
15390
--------------------------------------------------------
15391
set define off;
15392
 
5172 dpurdie 15393
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_COMPONENT" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE,
3959 dpurdie 15394
	   	  		  						  	sFileName IN RELEASE_COMPONENTS.FILE_NAME%TYPE,
15395
											sFilePath IN RELEASE_COMPONENTS.FILE_PATH%TYPE DEFAULT NULL,
15396
											nByteSize IN RELEASE_COMPONENTS.BYTE_SIZE%TYPE,
15397
											sCRCcksum IN RELEASE_COMPONENTS.CRC_CKSUM%TYPE DEFAULT NULL,
15398
											sCRCmodcrc IN RELEASE_COMPONENTS.CRC_MODCRC%TYPE DEFAULT NULL
15399
                                           ) IS
15400
/* ---------------------------------------------------------------------------
15401
    Version: 3.0.0
15402
   --------------------------------------------------------------------------- */
1373 dpurdie 15403
 
15404
 
15405
BEGIN
15406
 
3959 dpurdie 15407
	 --- Insert into RELEASE_COMPONENTS
15408
	 INSERT INTO RELEASE_COMPONENTS ( PV_ID, FILE_NAME, FILE_PATH, BYTE_SIZE, CRC_CKSUM, CRC_MODCRC )
15409
	 VALUES ( nPvId, sFileName, sFilePath, nByteSize, sCRCcksum, sCRCmodcrc  );
1373 dpurdie 15410
 
15411
 
3959 dpurdie 15412
 
15413
 
15414
END Add_Component;
4040 dpurdie 15415
 
1374 dpurdie 15416
/
4040 dpurdie 15417
--------------------------------------------------------
15418
--  DDL for Procedure ADD_PACKAGE_INTEREST
15419
--------------------------------------------------------
15420
set define off;
15421
 
5384 dpurdie 15422
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_PACKAGE_INTEREST" (
15423
    nProjId    IN PROJECTS.PROJ_ID%TYPE,
15424
    nPkgIdList IN VARCHAR2,
15425
    nUserId    IN NUMBER )
15426
IS
15427
  npkgidcollector relmgr_number_tab_t := relmgr_number_tab_t ();
15428
  nPkgId        NUMBER;
15429
  alreadyExists NUMBER;
1373 dpurdie 15430
BEGIN
5384 dpurdie 15431
  npkgidcollector := in_list_number2 (nPkgIdList);
15432
  FOR i IN 1..npkgidcollector.COUNT
15433
  LOOP
15434
    nPkgId := npkgidcollector(i);
15435
    --- Ensure it doesn't already exist
15436
    SELECT COUNT(*)
15437
    INTO alreadyExists
15438
    FROM PACKAGE_INTEREST
15439
    WHERE USER_ID      = nUserId
15440
    AND PKG_ID         = nPkgId
15441
    AND PROJ_ID        = nProjId;
6031 dpurdie 15442
 
5384 dpurdie 15443
    IF ( alreadyExists = 0 ) THEN
15444
      --- Insert into PACKAGE_INTEREST TABLE
15445
      INSERT
15446
        INTO PACKAGE_INTEREST (PROJ_ID, PKG_ID, USER_ID )
15447
        VALUES (nProjId, nPkgId, nUserId );
15448
    END IF;
15449
  END LOOP;
3959 dpurdie 15450
END ADD_PACKAGE_INTEREST;
4040 dpurdie 15451
 
3959 dpurdie 15452
/
4040 dpurdie 15453
--------------------------------------------------------
15454
--  DDL for Procedure ADD_RUNTIME_DEPENDENCY
15455
--------------------------------------------------------
15456
set define off;
15457
 
5172 dpurdie 15458
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_RUNTIME_DEPENDENCY" ( NNpv_id IN NUMBER,
3959 dpurdie 15459
                                                     SSrtd_name IN PACKAGES.pkg_name%TYPE,
15460
                                                     SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
15461
                                                     NNuser_id IN NUMBER
15462
                                                    ) IS
1373 dpurdie 15463
/* ---------------------------------------------------------------------------
3959 dpurdie 15464
    Version: 3.1
1373 dpurdie 15465
   --------------------------------------------------------------------------- */
15466
 
3959 dpurdie 15467
    retRTD_ID NUMBER;
15468
 
15469
	CURSOR rtd_cur IS
15470
        SELECT rtd_id FROM runtime_dependencies WHERE pv_id = NNpv_id AND rtd_id = retRTD_ID;
15471
    rtd_rec rtd_cur%ROWTYPE;
15472
 
1373 dpurdie 15473
BEGIN
3959 dpurdie 15474
    --- Seed database with package_name and version if required ---
15475
    Seed_Package_Names_Versions ( SSrtd_name, SSrtd_version, NNuser_id, retRTD_ID );
1373 dpurdie 15476
 
3959 dpurdie 15477
	OPEN rtd_cur;
15478
    FETCH rtd_cur INTO rtd_rec;
1373 dpurdie 15479
 
3959 dpurdie 15480
    IF rtd_cur%NOTFOUND
15481
    THEN
15482
		/* Make sure it does not exists already as runtime dependency */
1373 dpurdie 15483
 
3959 dpurdie 15484
		--- Add new Runtime Dependency ---
15485
	    INSERT INTO runtime_dependencies ( pv_id, rtd_id, mod_date, mod_user )
15486
	    VALUES (  NNpv_id, retRTD_ID, ORA_SYSDATE , NNuser_id );
1373 dpurdie 15487
 
3959 dpurdie 15488
    	/* LOG ACTION */
15489
        Log_Action ( NNpv_id, 'runtime_add', NNuser_id,
15490
    			     'Runtime package: '|| SSrtd_name ||' '|| SSrtd_version );
15491
 
15492
	END IF;
15493
 
15494
 
15495
END Add_Runtime_Dependency;
4040 dpurdie 15496
 
1374 dpurdie 15497
/
4040 dpurdie 15498
--------------------------------------------------------
15499
--  DDL for Procedure ADD_VIEW_MEMBERS
15500
--------------------------------------------------------
15501
set define off;
15502
 
5172 dpurdie 15503
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_VIEW_MEMBERS" (nGroupId IN NUMBER, sUserList IN VARCHAR2) IS
3959 dpurdie 15504
 
15505
/******************************************************************************
15506
   NAME:       ADD_VIEW_MEMBERS
6031 dpurdie 15507
   PURPOSE:
3959 dpurdie 15508
 
15509
   REVISIONS:
15510
   Ver        Date        Author           Description
15511
   ---------  ----------  ---------------  ------------------------------------
15512
   1.0        11/04/2006          1. Created this procedure.
15513
 
15514
   NOTES:
15515
 
15516
   Automatically available Auto Replace Keywords:
15517
      Object Name:     ADD_VIEW_MEMBERS
15518
      Sysdate:         11/04/2006
15519
      Date and Time:   11/04/2006, 9:52:58 AM, and 11/04/2006 9:52:58 AM
15520
      Username:         (set in TOAD Options, Procedure Editor)
15521
      Table Name:       (set in the "New PL/SQL Object" dialog)
15522
 
15523
******************************************************************************/
15524
CURSOR user_cur IS
15525
	SELECT u.USER_ID
15526
	  FROM USERS u
15527
	 WHERE u.USER_ID IN (
6031 dpurdie 15528
	 	   			   	SELECT *
15529
						  FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
3959 dpurdie 15530
						);
15531
user_rec user_cur%ROWTYPE;
15532
 
15533
 
15534
BEGIN
15535
 
15536
	 OPEN user_cur;
15537
	 FETCH user_cur INTO user_rec;
6031 dpurdie 15538
 
3959 dpurdie 15539
	 WHILE user_cur%FOUND
15540
	 LOOP
15541
	 	 INSERT INTO MEMBERS_GROUP (GROUP_EMAIL_ID, USER_ID)
15542
	 	 VALUES ( nGroupId, user_rec.USER_ID);
6031 dpurdie 15543
 
15544
	 	 FETCH user_cur INTO user_rec;
15545
	 END LOOP;
15546
 
15547
 
15548
 
3959 dpurdie 15549
END ADD_VIEW_MEMBERS;
4040 dpurdie 15550
 
1374 dpurdie 15551
/
4040 dpurdie 15552
--------------------------------------------------------
15553
--  DDL for Procedure BASIC_CLONE
15554
--------------------------------------------------------
15555
set define off;
15556
 
6031 dpurdie 15557
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."BASIC_CLONE" (
5502 dpurdie 15558
        nFROMpv_id IN NUMBER,
15559
        nTOpv_id IN NUMBER,
15560
        nRtag_id IN NUMBER,
15561
        nUser_id IN NUMBER,
15562
        nTOpkg_id IN NUMBER DEFAULT NULL,
15563
        enumISSUES_STATE_IMPORTED IN NUMBER DEFAULT NULL ) IS
1373 dpurdie 15564
 
15565
   FromVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
15566
   major NUMBER;
15567
   minor NUMBER;
15568
   patch NUMBER;
15569
   buildn NUMBER;
15570
   from_vcs_type_id NUMBER;
15571
BEGIN
15572
------------------------------ Version Control System ------------------------------------------
15573
   SELECT vcs_type_id
15574
      INTO from_vcs_type_id
15575
      FROM package_versions WHERE pv_id = nFROMpv_id;
15576
 
15577
   UPDATE package_versions
15578
      SET vcs_type_id = from_vcs_type_id
15579
      WHERE pv_id = nTOpv_id;
15580
------------------------------------- Limits ---------------------------------------------------
15581
   select major_limit, minor_limit, patch_limit, build_number_limit
15582
   into major, minor, patch, buildn
15583
   from package_versions where pv_id=nFROMpv_id;
15584
    UPDATE package_versions SET
15585
           major_limit = major,
15586
           minor_limit = minor,
15587
           patch_limit = patch,
15588
           build_number_limit = buildn
15589
     WHERE PV_ID = nTOpv_id;
15590
------------------------------------- Clone Dependencies ---------------------------------------------------
15591
   IF NOT nRtag_id IS NULL
15592
   THEN
15593
      -- Auto Update Dependencies --
15594
      INSERT INTO PACKAGE_DEPENDENCIES
15595
           SELECT nTOpv_id AS pv_id,
15596
                  DECODE(nUser_id,
15597
                         frc.modifier_id,
15598
                         frc.pv_id,
15599
                         DECODE(frc.dlocked,
15600
                                'Y',
15601
                                frc.pv_id,
15602
                                dep.dpv_id)
15603
                         ) AS dpv_id,
15604
                  nTOpkg_id AS pkg_id,
15605
                  dep.dpkg_id,
15606
                  dep.build_type,
15607
                  dep.display_order
15608
             FROM PACKAGE_DEPENDENCIES dep,
15609
                  PACKAGE_VERSIONS pv,
15610
                  (
15611
                  /* Full Release Contents used for reference*/
15612
                  SELECT rpv.pv_id, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext, rpv.modifier_id, rpv.dlocked
15613
                  FROM RELEASE_CONTENT rel, PACKAGE_VERSIONS rpv
15614
                  WHERE rel.pv_id = rpv.pv_id AND rtag_id = nRtag_id
15615
                  ) frc
15616
            WHERE dep.pv_id = nFROMpv_id
15617
              AND dep.dpv_id = pv.pv_id
15618
              AND pv.pkg_id = frc.pkg_id(+)
15619
              AND NVL(pv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+);
15620
   ELSE
15621
      -- Clone Dependencies --
15622
      INSERT INTO PACKAGE_DEPENDENCIES
15623
           SELECT nTOpv_id         AS pv_id,
15624
                  dep.dpv_id,
15625
                  nTOpkg_id        AS pkg_id,
15626
                  dep.dpkg_id,
15627
                  dep.build_type,
15628
                  dep.display_order
15629
             FROM PACKAGE_DEPENDENCIES dep
15630
            WHERE dep.pv_id = nFROMpv_id;
15631
 
15632
   END IF;
15633
 
15634
----------------------------------------- Clone Issues -------------------------------------------------------
15635
   IF enumISSUES_STATE_IMPORTED IS NULL
15636
   THEN
15637
        /* All Issues */
15638
       INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
15639
            SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
15640
              FROM CQ_ISSUES
15641
             WHERE pv_id = nFROMpv_id;
15642
   ELSE
15643
       /* Outstanding Issues Only */
15644
       INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
15645
            SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
15646
              FROM CQ_ISSUES
15647
             WHERE pv_id = nFROMpv_id
15648
               AND iss_state = enumISSUES_STATE_IMPORTED;
15649
   END IF;
15650
 
15651
------------------------------------ Clone Runtime Dependencies -----------------------------------------------
15652
   INSERT INTO RUNTIME_DEPENDENCIES (pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user)
15653
       SELECT nTOpv_id AS pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user
15654
       FROM RUNTIME_DEPENDENCIES WHERE pv_id = nFROMpv_id;
15655
 
15656
--------------------------------------- Clone Additional Notes ------------------------------------------------
15657
   INSERT INTO ADDITIONAL_NOTES ( NOTE_ID, PV_ID, NOTE_TITLE, NOTE_BODY, MOD_DATE, MOD_USER )
15658
        SELECT an.NOTE_ID,
15659
               nTOpv_id AS PV_ID,
15660
               an.NOTE_TITLE,
15661
               an.NOTE_BODY,
15662
               an.MOD_DATE,
15663
               an.MOD_USER
15664
          FROM ADDITIONAL_NOTES an
15665
         WHERE an.PV_ID = nFROMpv_id;
15666
 
15667
-------------------------------------------- Clone Unit Tests -------------------------------------------------
5502 dpurdie 15668
-- Only clone 'Auto Unit Test', 'Interactive Unit Test' and 'Autobuild UTF'
15669
-- Only clone the basic information: TEST_SUMMARY
1373 dpurdie 15670
 
15671
    INSERT INTO UNIT_TESTS (
15672
                            TEST_ID,
15673
                            PV_ID,
15674
                            TEST_TYPES_FK,
15675
                            TEST_SUMMARY
15676
                           )
15677
       SELECT ut.TEST_ID,
15678
              nTOpv_id AS PV_ID,
15679
              ut.TEST_TYPES_FK,
15680
              ut.TEST_SUMMARY
15681
         FROM UNIT_TESTS ut
15682
        WHERE ut.PV_ID = nFROMpv_id
5502 dpurdie 15683
          AND ut.TEST_TYPES_FK IN (5,6,7);
1373 dpurdie 15684
 
15685
-------------------------------------------- Clone Package Documents ------------------------------------------
15686
   INSERT INTO PACKAGE_DOCUMENTS ( PV_ID, TEST_ID, DOC_NUM, DOC_ID, IS_LATEST )
15687
        SELECT nTOpv_id AS PV_ID,
15688
               pd.test_id,
15689
               pd.doc_num,
15690
               pd.doc_id,
15691
               pd.IS_LATEST
15692
          FROM PACKAGE_DOCUMENTS pd
15693
         WHERE pd.PV_ID = nFROMpv_id;
15694
 
15695
-------------------------------------------- Clone Build Environments -----------------------------------------
15696
    INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID, BUILD_TYPE )
15697
    SELECT nTOpv_id AS PV_ID,
15698
           pkgbe.BE_ID,
15699
           pkgbe.BUILD_TYPE
15700
      FROM PACKAGE_BUILD_ENV pkgbe
15701
     WHERE pkgbe.PV_ID = nFROMpv_id;
6031 dpurdie 15702
 
1373 dpurdie 15703
---------------------------------------------Clone Package Build Info------------------------------------------
15704
    INSERT INTO PACKAGE_BUILD_INFO (PV_ID, BM_ID, BSA_ID)
15705
    SELECT nTOpv_id AS PV_ID,
15706
           pkgbinfo.BM_ID,
15707
           pkgbinfo.BSA_ID
15708
      FROM PACKAGE_BUILD_INFO pkgbinfo
15709
     WHERE pkgbinfo.PV_ID = nFROMpv_id;
6031 dpurdie 15710
 
1373 dpurdie 15711
---------------------------------------------Clone Package Version Processes-----------------------------------
15712
    INSERT INTO PACKAGE_PROCESSES ( PV_ID, PROC_ID )
15713
    SELECT nTOpv_id AS PV_ID,
15714
           pp.PROC_ID
15715
      FROM PACKAGE_PROCESSES pp
15716
     WHERE pp.PV_ID = nFROMpv_id;
6031 dpurdie 15717
 
1373 dpurdie 15718
---------------------------------------------Clone Licencing Associations-----------------------------------
15719
    PK_LICENCING.CLONE_LICENCING(nFROMpv_id, nTOpv_id, nUser_id);
15720
---------------------------------------------------------------------------------------------------------------
15721
 
15722
    /* LOG ACTION */
15723
    SELECT pv.PKG_VERSION INTO FromVersion
15724
      FROM PACKAGE_VERSIONS pv
15725
     WHERE pv.PV_ID = nFROMpv_id;
15726
 
15727
    Log_Action ( nTOpv_id, 'clone_from', nUser_id,
15728
                 'Details cloned from: '|| FromVersion );
15729
 
15730
---------------------------------------------------------------------------------------------------------------
15731
 
15732
END Basic_Clone;
4040 dpurdie 15733
 
1374 dpurdie 15734
/
4040 dpurdie 15735
--------------------------------------------------------
15736
--  DDL for Procedure BUILD_TREE
15737
--------------------------------------------------------
15738
set define off;
15739
 
5172 dpurdie 15740
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."BUILD_TREE" ( nRtag_id IN NUMBER,
3959 dpurdie 15741
	   	  		  					     retSessionNum OUT NUMBER ) IS
15742
 
1373 dpurdie 15743
/* ---------------------------------------------------------------------------
3959 dpurdie 15744
    Version: 3.0.0
1373 dpurdie 15745
   --------------------------------------------------------------------------- */
3959 dpurdie 15746
    rowCnt 			NUMBER := 0;						-- Iterations counter
15747
    iteration 		NUMBER := 1;                  -- Maximum number of iterations allowed.
15748
    maxIterations 	NUMBER := 50;      	  	-- This will prevent infinite loops if cyrcular dependencies are found
15749
	UP_THE_TREE 	CONSTANT NUMBER DEFAULT 1;
15750
	DOWN_THE_TREE 	CONSTANT NUMBER DEFAULT -1;
15751
    sessionNum 		NUMBER;
15752
	levelNum		NUMBER;
6031 dpurdie 15753
 
3959 dpurdie 15754
BEGIN
15755
    SELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;
6031 dpurdie 15756
 
3959 dpurdie 15757
	/*
15758
	||	   Start UP THE TREE
15759
	*/
6031 dpurdie 15760
 
15761
 
15762
	/* Packages with no dependencies */
3959 dpurdie 15763
    INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
15764
		SELECT sessionNum AS SESSION_NUM,
15765
			   iteration AS LEVEL_NUM,
15766
			   UP_THE_TREE AS DIRECTION,
15767
			   rc.pv_id, pv.pkg_id, pv.v_ext
15768
		  FROM release_content rc,
15769
		  	   package_versions pv
15770
		 WHERE rc.rtag_id = nRtag_id
15771
		   AND rc.pv_id = pv.pv_id
15772
		 MINUS
6031 dpurdie 15773
		SELECT sessionNum AS SESSION_NUM,
3959 dpurdie 15774
			   iteration AS LEVEL_NUM,
15775
			   UP_THE_TREE AS DIRECTION,
15776
			   dep.pv_id, pv.pkg_id, pv.v_ext
15777
		  FROM package_dependencies dep,
15778
		  	   package_versions pv
15779
		 WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtag_id )
15780
		   AND dep.pv_id = pv.pv_id;
6031 dpurdie 15781
 
15782
 
15783
	/* Browse UP the build tree */
3959 dpurdie 15784
	iteration := iteration + 1;
15785
    LOOP
6031 dpurdie 15786
 
3959 dpurdie 15787
		INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
6031 dpurdie 15788
			SELECT DISTINCT
3959 dpurdie 15789
			       sessionNum AS SESSION_NUM,
15790
			       iteration AS LEVEL_NUM,
6031 dpurdie 15791
				   UP_THE_TREE AS DIRECTION,
3959 dpurdie 15792
				   rdep.pv_id, rdep.pkg_id, rdep.v_ext
6031 dpurdie 15793
			  FROM (
3959 dpurdie 15794
			        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
15795
			          FROM package_dependencies dep,
15796
			               release_content rc,
15797
						   package_versions pv,
15798
						   package_versions dpv
15799
			         WHERE dep.pv_id = rc.pv_id
15800
			           AND rc.rtag_id = nRtag_id
15801
					   AND dep.pv_id = pv.pv_id
15802
					   AND dep.dpv_id = dpv.pv_id
15803
					) rdep,
15804
					temp_tree_browse ttb
15805
			 WHERE rdep.dpkg_id  = ttb.pkg_id
15806
			   AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext,'|LINK_A_NULL|')
15807
			   AND ttb.SESSION_NUM = sessionNum
6031 dpurdie 15808
			   AND ttb.LEVEL_NUM = iteration - 1
3959 dpurdie 15809
			MINUS
6031 dpurdie 15810
			/* Packages with all depencencies NOT matched */
15811
			SELECT DISTINCT
3959 dpurdie 15812
			       sessionNum AS SESSION_NUM,
6031 dpurdie 15813
			       iteration AS LEVEL_NUM,
3959 dpurdie 15814
				   UP_THE_TREE AS DIRECTION,
15815
				   rdep.pv_id, rdep.pkg_id, rdep.v_ext
6031 dpurdie 15816
			  FROM (
3959 dpurdie 15817
			        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
15818
			          FROM package_dependencies dep,
15819
			               release_content rc,
15820
						   package_versions pv,
15821
						   package_versions dpv
15822
			         WHERE dep.pv_id = rc.pv_id
15823
			           AND rc.rtag_id = nRtag_id
15824
					   AND dep.pv_id = pv.pv_id
15825
					   AND dep.dpv_id = dpv.pv_id
15826
					) rdep,
15827
					(
15828
					 SELECT tb.*
15829
					   FROM temp_tree_browse tb
15830
					  WHERE tb.SESSION_NUM = sessionNum
15831
					) ttb
15832
			 WHERE rdep.dpkg_id  = ttb.pkg_id (+)
15833
			   AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext (+),'|LINK_A_NULL|')
15834
			   AND ttb.SESSION_NUM IS NULL;
6031 dpurdie 15835
 
3959 dpurdie 15836
		rowCnt := SQL%ROWCOUNT;
15837
		IF rowCnt > 0 THEN
15838
           iteration := iteration + 1;
15839
		END IF;
15840
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
15841
    END LOOP;
6031 dpurdie 15842
 
3959 dpurdie 15843
	/*---------------------------------------------------------------------------------------------------------------------*/
6031 dpurdie 15844
 
3959 dpurdie 15845
	/*     Check for unresolved dependencies
6031 dpurdie 15846
	||
3959 dpurdie 15847
	*/
15848
	/* UNRESOLVED */
15849
	 SELECT COUNT(*) INTO rowCnt
15850
	   FROM (
15851
			 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
15852
			  FROM release_content rc,
15853
			  	   package_versions pv
15854
			 WHERE rc.rtag_id = nRtag_id
6031 dpurdie 15855
			   AND rc.pv_id = pv.pv_id
3959 dpurdie 15856
			MINUS
15857
			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
15858
			  FROM temp_tree_browse ttb
15859
			 WHERE ttb.session_num = sessionNum
15860
			);
6031 dpurdie 15861
 
15862
 
15863
 
15864
	 IF rowCnt > 0
3959 dpurdie 15865
	 THEN
15866
	 	 /*     Circular dependencies detected.
15867
		 ||     Try to resolve build order from the top now.
15868
		 ||		Start DOWN THE TREE
15869
		 */
6031 dpurdie 15870
 
15871
		iteration := 0;
15872
		 /* Top Level packages */
15873
		INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
3959 dpurdie 15874
			SELECT sessionNum AS SESSION_NUM,
15875
			       iteration AS LEVEL_NUM,
15876
				   DOWN_THE_TREE AS DIRECTION,
15877
				   pv.pv_id, pv.pkg_id, pv.v_ext
6031 dpurdie 15878
			  FROM (
3959 dpurdie 15879
					/* Packages no one depends on ( Top level packages )*/
6031 dpurdie 15880
					(
15881
					/* All parents*/
3959 dpurdie 15882
					SELECT pv.pkg_id, pv.v_ext
15883
			          FROM package_dependencies dep,
15884
			               release_content rc,
15885
						   package_versions pv
15886
			         WHERE dep.pv_id = rc.pv_id
15887
			           AND rc.rtag_id = nRtag_id
15888
					   AND dep.pv_id = pv.pv_id
15889
					 MINUS
15890
					 /* All children */
15891
					SELECT dpv.pkg_id, dpv.v_ext
15892
			          FROM package_dependencies dep,
15893
			               release_content rc,
15894
						   package_versions dpv
15895
			         WHERE dep.pv_id = rc.pv_id
15896
			           AND rc.rtag_id = nRtag_id
15897
					   AND dep.dpv_id = dpv.pv_id
6031 dpurdie 15898
					 )
3959 dpurdie 15899
					 MINUS
6031 dpurdie 15900
					/* Packages with resolved dependencies from UP THE TREE */
3959 dpurdie 15901
					SELECT ttb.pkg_id, ttb.v_ext
15902
					  FROM temp_tree_browse ttb
15903
					 WHERE ttb.session_num = sessionNum
15904
				  ) tpkg,
15905
				  package_versions pv,
15906
				  release_content rc
15907
			WHERE rc.rtag_id = nRtag_id
15908
			  AND rc.pv_id = pv.pv_id
15909
			  AND tpkg.pkg_id = pv.pkg_id
15910
			  AND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');
6031 dpurdie 15911
 
15912
 
15913
		 /* Keep taking packages which no one depende on */
15914
		 iteration := iteration - 1;
15915
		 LOOP
3959 dpurdie 15916
			   INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
15917
					SELECT sessionNum AS SESSION_NUM,
15918
					       iteration AS LEVEL_NUM,
15919
					       DOWN_THE_TREE AS DIRECTION,
15920
					       pv.pv_id, pv.pkg_id, pv.v_ext
6031 dpurdie 15921
					  FROM (
3959 dpurdie 15922
					 	/* All Unresolved */
15923
					 	(
15924
					 	SELECT pv.pkg_id, pv.v_ext
15925
					 	  FROM release_content rc,
15926
					 	  	   package_versions pv
15927
					 	 WHERE rc.rtag_id = nRtag_id
6031 dpurdie 15928
					 	   AND rc.pv_id = pv.pv_id
3959 dpurdie 15929
					 	MINUS
15930
					 	SELECT ttb.pkg_id, ttb.v_ext
15931
					 	  FROM temp_tree_browse ttb
15932
					 	 WHERE ttb.session_num = sessionNum
15933
					 	)
15934
					 	 MINUS
6031 dpurdie 15935
					 	(
15936
					 	 /* Children of Unresolved */
3959 dpurdie 15937
					 	SELECT dpv.pkg_id, dpv.V_EXT
15938
					 	  FROM (
15939
					 			SELECT pv.pv_id, pv.pkg_id, pv.v_ext
15940
					 			  FROM release_content rc,
15941
					 			  	   package_versions pv
15942
					 			 WHERE rc.rtag_id = nRtag_id
6031 dpurdie 15943
					 			   AND rc.pv_id = pv.pv_id
3959 dpurdie 15944
					 			MINUS
15945
					 			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
15946
					 			  FROM temp_tree_browse ttb
15947
					 			 WHERE ttb.session_num = sessionNum
15948
					 		   ) unr,
15949
					 		   package_dependencies dep,
15950
					 		   package_versions dpv
15951
					 	 WHERE unr.pv_id = dep.pv_id
15952
					 	   AND dep.dpv_id = dpv.pv_id
6031 dpurdie 15953
					 	 )
3959 dpurdie 15954
					   ) tpkg,
15955
					   package_versions pv,
15956
					   release_content rc
15957
					WHERE rc.rtag_id = nRtag_id
15958
					  AND rc.pv_id = pv.pv_id
15959
					  AND tpkg.pkg_id = pv.pkg_id
15960
					  AND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');
6031 dpurdie 15961
 
3959 dpurdie 15962
            rowCnt := SQL%ROWCOUNT;
15963
        	IF rowCnt > 0 THEN
15964
	           iteration := iteration - 1;
15965
			END IF;
15966
            EXIT WHEN (rowCnt < 1);
15967
     	END LOOP;
6031 dpurdie 15968
 
3959 dpurdie 15969
	 END IF;
6031 dpurdie 15970
 
15971
 
3959 dpurdie 15972
	/*---------------------------------------------------------------------------------------------------------------------*/
6031 dpurdie 15973
 
15974
	/*
3959 dpurdie 15975
	|| 	 Save results from temp table
6031 dpurdie 15976
	*/
3959 dpurdie 15977
	/* Clean up build_order table */
15978
	DELETE FROM BUILD_ORDER WHERE rtag_id = nRtag_id;
6031 dpurdie 15979
 
3959 dpurdie 15980
	/* Save UP THE TREE */
15981
	INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )
15982
		SELECT nRtag_id AS rtag_id,
6031 dpurdie 15983
			   ttb.level_num AS step_num,
3959 dpurdie 15984
			   ttb.PV_ID
15985
		  FROM temp_tree_browse ttb
15986
		 WHERE ttb.session_num = sessionNum
6031 dpurdie 15987
		   AND ttb.direction = UP_THE_TREE;
15988
 
3959 dpurdie 15989
	/*Get last step_num */
15990
	SELECT MAX(ttb.level_num) + 1 INTO levelNum
15991
	FROM temp_tree_browse ttb WHERE ttb.session_num = sessionNum AND ttb.DIRECTION = UP_THE_TREE;
6031 dpurdie 15992
 
3959 dpurdie 15993
	/* UNRESOLVED */
15994
	 SELECT COUNT(*) INTO rowCnt
15995
	   FROM (
15996
			 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
15997
			  FROM release_content rc,
15998
			  	   package_versions pv
15999
			 WHERE rc.rtag_id = nRtag_id
6031 dpurdie 16000
			   AND rc.pv_id = pv.pv_id
3959 dpurdie 16001
			MINUS
16002
			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
16003
			  FROM temp_tree_browse ttb
16004
			 WHERE ttb.session_num = sessionNum
16005
			);
6031 dpurdie 16006
 
16007
 
3959 dpurdie 16008
	IF rowCnt > 0
16009
	THEN
16010
		/* Save unresolved packages */
16011
 		INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID, UNRESOLVED )
16012
		    SELECT  nRtag_id AS rtag_id,
6031 dpurdie 16013
				    levelNum AS step_num,
3959 dpurdie 16014
				    upv.PV_ID,
16015
					'Y' AS UNRESOLVED
16016
			   FROM (
16017
					 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
16018
					  FROM release_content rc,
16019
					  	   package_versions pv
16020
					 WHERE rc.rtag_id = nRtag_id
6031 dpurdie 16021
					   AND rc.pv_id = pv.pv_id
3959 dpurdie 16022
					MINUS
16023
					SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
16024
					  FROM temp_tree_browse ttb
16025
					 WHERE ttb.session_num = sessionNum
16026
					) upv;
6031 dpurdie 16027
	END IF;
16028
 
3959 dpurdie 16029
	/* Save DOWN THE TREE */
16030
	levelNum := 1000;
16031
	INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )
16032
		SELECT nRtag_id AS rtag_id,
6031 dpurdie 16033
			   levelNum + ttb.level_num  AS step_num,
3959 dpurdie 16034
			   ttb.PV_ID
16035
		  FROM temp_tree_browse ttb
16036
		 WHERE ttb.session_num = sessionNum
16037
		   AND ttb.direction = DOWN_THE_TREE;
6031 dpurdie 16038
 
16039
 
3959 dpurdie 16040
	/*---------------------------------------------------------------------------------------------------------------------*/
6031 dpurdie 16041
 
3959 dpurdie 16042
	/* Clean up temp table */
16043
	DELETE FROM TEMP_TREE_BROWSE WHERE session_num = sessionNum;
6031 dpurdie 16044
 
3959 dpurdie 16045
	retSessionNum := sessionNum;
16046
END Build_Tree;
4040 dpurdie 16047
 
3959 dpurdie 16048
/
4040 dpurdie 16049
--------------------------------------------------------
16050
--  DDL for Procedure CHANGE_PACKAGE_STATE
16051
--------------------------------------------------------
16052
set define off;
16053
 
5172 dpurdie 16054
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHANGE_PACKAGE_STATE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 16055
											 nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS
16056
/* ---------------------------------------------------------------------------
16057
    Version: 4.0
16058
   --------------------------------------------------------------------------- */
1373 dpurdie 16059
 
16060
BEGIN
16061
 
3959 dpurdie 16062
    -- Unlock Package
16063
    UPDATE RELEASE_CONTENT rc SET
16064
    	rc.PKG_STATE = 0
16065
    WHERE rc.PV_ID = nPvId
16066
	AND rc.RTAG_ID = nRtagId;
1373 dpurdie 16067
 
3959 dpurdie 16068
    /* LOG ACTION */
16069
   /*	Log_Action ( nPvId, 'unlock_package', nUserId );*/
1373 dpurdie 16070
 
3959 dpurdie 16071
END Change_Package_State;
4040 dpurdie 16072
 
1374 dpurdie 16073
/
4040 dpurdie 16074
--------------------------------------------------------
16075
--  DDL for Procedure CHANGE_RELEASE_MODE
16076
--------------------------------------------------------
16077
set define off;
16078
 
5172 dpurdie 16079
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHANGE_RELEASE_MODE" ( nModeCode IN NUMBER, nRtagId IN NUMBER, UserId IN NUMBER ) IS
3959 dpurdie 16080
/* ---------------------------------------------------------------------------
16081
    Version: 3.0.0
16082
   --------------------------------------------------------------------------- */
1373 dpurdie 16083
 
6031 dpurdie 16084
	cMode CHAR(1) := NULL;
16085
	nProjId NUMBER;
1373 dpurdie 16086
 
16087
BEGIN
16088
 
6031 dpurdie 16089
 
3959 dpurdie 16090
	/*
16091
	Author: Rupesh Solanki
16092
	Modified: 24th October 2006
6031 dpurdie 16093
	Reason: Added the archive mode state into Release Manager
3959 dpurdie 16094
	||	1 - Open Mode
16095
	||	2 - Restrictive Mode
16096
	||	3 - Closed Mode
16097
	||	4 - CCB Mode
16098
	||	5 - Archive Mode
5384 dpurdie 16099
  ||  6 - Preserve Mode
6031 dpurdie 16100
	*/
3959 dpurdie 16101
	-- Get project Id
16102
	SELECT rt.PROJ_ID INTO nProjId
16103
	  FROM RELEASE_TAGS rt
6031 dpurdie 16104
	 WHERE rt.RTAG_ID = nRtagId;
16105
 
3959 dpurdie 16106
	IF nModeCode = 1 THEN
16107
		-- Open Mode
16108
		cMode := 'N';
6031 dpurdie 16109
 
3959 dpurdie 16110
		/* LOG ACTION */
16111
   		Log_Project_Action ( nProjId, 'set_to_open_mode', UserId, 'Release is set to Open Mode', nRtagId );
6031 dpurdie 16112
 
3959 dpurdie 16113
	ELSIF nModeCode = 2 THEN
16114
		-- Restrictive Mode
16115
		cMode := 'R';
6031 dpurdie 16116
 
3959 dpurdie 16117
		/* LOG ACTION */
16118
   		Log_Project_Action ( nProjId, 'set_to_restrictive_mode', UserId, 'Release is set to Restrictive Mode', nRtagId );
6031 dpurdie 16119
 
3959 dpurdie 16120
	ELSIF nModeCode = 3 THEN
16121
		-- Closed Mode
16122
		cMode := 'Y';
6031 dpurdie 16123
 
3959 dpurdie 16124
		/* LOG ACTION */
16125
   		Log_Project_Action ( nProjId, 'set_to_closed_mode', UserId, 'Release is set to Closed Mode', nRtagId  );
1373 dpurdie 16126
 
3959 dpurdie 16127
	ELSIF nModeCode = 4 THEN
16128
		-- CCB Mode
16129
		cMode := 'C';
6031 dpurdie 16130
 
3959 dpurdie 16131
		/* LOG ACTION */
16132
   		Log_Project_Action ( nProjId, 'set_to_ccb_mode', UserId, 'Release is set to CCB Mode', nRtagId  );
6031 dpurdie 16133
 
3959 dpurdie 16134
	ELSIF nModeCode = 5 THEN
16135
		-- Archive Mode
16136
		cMode := 'A';
6031 dpurdie 16137
 
3959 dpurdie 16138
		/* LOG ACTION */
6031 dpurdie 16139
   		Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Archive Mode', nRtagId  );
16140
 
5384 dpurdie 16141
  ELSIF nModeCode = 6 THEN
16142
		-- Archive Mode
16143
		cMode := 'P';
6031 dpurdie 16144
 
5384 dpurdie 16145
		/* LOG ACTION */
6031 dpurdie 16146
   		Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Preserve Mode', nRtagId  );
3959 dpurdie 16147
	END IF;
6031 dpurdie 16148
 
16149
 
16150
 
3959 dpurdie 16151
	-- Now update table
16152
	IF NOT cMode IS NULL THEN
16153
		UPDATE RELEASE_TAGS rt SET
4211 dpurdie 16154
		rt.OFFICIAL = cMode,
16155
    rt.OFFICIAL_STAMP = ORA_SYSDATETIME,
16156
    rt.OFFICIAL_ID = UserId
3959 dpurdie 16157
		WHERE rt.RTAG_ID = nRtagId;
6031 dpurdie 16158
 
3959 dpurdie 16159
	END IF;
1373 dpurdie 16160
 
16161
 
3959 dpurdie 16162
END CHANGE_RELEASE_MODE;
4040 dpurdie 16163
 
1374 dpurdie 16164
/
4040 dpurdie 16165
--------------------------------------------------------
16166
--  DDL for Procedure CHECK_NEW_PATCHES
16167
--------------------------------------------------------
16168
set define off;
16169
 
5172 dpurdie 16170
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHECK_NEW_PATCHES" (
3959 dpurdie 16171
   nrtagid   IN   release_content.rtag_id%TYPE
1373 dpurdie 16172
)
16173
IS
16174
/* ---------------------------------------------------------------------------
3959 dpurdie 16175
    Version: 3.0
1373 dpurdie 16176
   --------------------------------------------------------------------------- */
16177
BEGIN
3959 dpurdie 16178
   /*--------------- Business Rules Here -------------------*/
16179
   /*IF nRtagId NOT IN (SELECT RTAG_ID FROM RELEASE_TAGS ) THEN
16180
      RAISE_APPLICATION_ERROR (-20000, 'Please contact the person in charge of Release Manager now.' );
16181
   END IF
16182
 
16183
   /*-------------------------------------------------------*/
16184
   UPDATE release_content rc
16185
      SET rc.pkg_state = 5                          -- enumPKG_STATE_NEW_PATCH
16186
    WHERE rc.pv_id IN (
16187
             SELECT prod.pv_id
16188
               FROM (SELECT   pp.pv_id AS orig_parent_id,
16189
                              COUNT (*) AS num_of_patches
16190
                         FROM release_content rc, package_patches pp
16191
                        WHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagid
16192
                     GROUP BY pp.pv_id) orig,
16193
                    (SELECT   prodpp.pv_id, pp.pv_id AS parent_id,
16194
                              COUNT (*) AS num_of_patches
16195
                         FROM release_content rc,
16196
                              package_patches pp,
16197
                              package_dependencies dep,
16198
                              package_versions pv,
16199
                              package_patches prodpp
16200
                        WHERE rc.pv_id = pp.pv_id
16201
                          AND rc.rtag_id = nrtagid
16202
                          AND pp.patch_id = dep.dpv_id
16203
                          AND dep.pv_id = pv.pv_id
16204
                          AND pv.is_patch = 'Y'
16205
                          AND pv.dlocked = 'Y'
16206
                          AND prodpp.patch_id = dep.pv_id
16207
                     GROUP BY prodpp.pv_id, pp.pv_id) prod,
16208
                    release_content rc
16209
              WHERE orig.orig_parent_id = prod.pv_id
16210
                AND orig.num_of_patches != prod.num_of_patches
16211
                AND rc.rtag_id = nrtagid
16212
                AND rc.pv_id = prod.pv_id
16213
                AND rc.pkg_state = 0
16214
             UNION
16215
             SELECT   prodpp.pv_id
16216
                 FROM release_content rc,
16217
                      package_patches pp,
16218
                      package_dependencies dep,
1373 dpurdie 16219
                      package_versions pv,
3959 dpurdie 16220
                      package_patches prodpp
16221
                WHERE rc.pv_id = pp.pv_id
16222
                  AND rc.rtag_id = nrtagid
16223
                  AND pp.patch_id = dep.dpv_id
1373 dpurdie 16224
                  AND dep.pv_id = pv.pv_id
3959 dpurdie 16225
                  AND pv.is_patch = 'Y'
16226
                  AND pv.dlocked = 'Y'
16227
                  AND prodpp.patch_id = dep.pv_id
16228
             GROUP BY prodpp.pv_id, pp.pv_id
16229
             MINUS
16230
             SELECT   pp.pv_id
16231
                 FROM release_content rc, package_patches pp
16232
                WHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagid
16233
             GROUP BY pp.pv_id);
16234
END check_new_patches;
4040 dpurdie 16235
 
1374 dpurdie 16236
/
4040 dpurdie 16237
--------------------------------------------------------
16238
--  DDL for Procedure CLEAN_ADVISORY_RIPPLE
16239
--------------------------------------------------------
16240
set define off;
16241
 
5172 dpurdie 16242
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAN_ADVISORY_RIPPLE" (nrtagid IN NUMBER)
3959 dpurdie 16243
IS
16244
/******************************************************************************
16245
   NAME:       clean_advisory_ripple
1373 dpurdie 16246
 
3959 dpurdie 16247
   PURPOSE:    To delete entries from the advisory_ripple table based upon
16248
               an RTAG_ID only
1373 dpurdie 16249
 
3959 dpurdie 16250
               This is a tidy-up operation performed against the advisory_ripple
16251
               table, ensuring that the table does not have rtag_id/pv_id
16252
               combinations that cannot be found in the release's wip/pending/release
16253
               tabs.
16254
 
16255
******************************************************************************/
1373 dpurdie 16256
BEGIN
3959 dpurdie 16257
   -- Delete any invalid rtag_id/pv_id combination from the advisory_ripple table.
16258
   -- An invalid rtag_id/pv_id combination is one that cannot be found in the
16259
   -- work_in_progress, planned, or release_content table.
16260
   -- NOTE: Planned operations that represent pending additive/subtractive merge
16261
   -- operations are ignored because they have not been approved yet and so
16262
   -- cannot be said to be "in the release".
16263
   DELETE FROM advisory_ripple
16264
         WHERE rtag_id = nrtagid
16265
           AND pv_id not in
16266
               ((SELECT pv_id FROM release_content WHERE rtag_id = nrtagid)
16267
                 UNION
16268
                (SELECT pv_id FROM work_in_progress WHERE rtag_id = nrtagid)
16269
                 UNION
16270
                (SELECT pv_id FROM planned WHERE rtag_id = nrtagid AND (operation is null OR operation = 'R'))
16271
               );
16272
END clean_advisory_ripple;
4040 dpurdie 16273
 
3959 dpurdie 16274
/
4040 dpurdie 16275
--------------------------------------------------------
16276
--  DDL for Procedure CLEAN_DO_NOT_RIPPLE
16277
--------------------------------------------------------
16278
set define off;
16279
 
5172 dpurdie 16280
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAN_DO_NOT_RIPPLE" (nrtagid IN NUMBER)
3959 dpurdie 16281
IS
16282
/******************************************************************************
16283
   NAME:       clean_do_not_ripple
1373 dpurdie 16284
 
3959 dpurdie 16285
   PURPOSE:    To delete entries from the do_not_ripple table based upon
16286
               an RTAG_ID only
16287
 
16288
               This is a tidy-up operation performed against the do_not_ripple
16289
               table, ensuring that the table does not have rtag_id/pv_id
16290
               combinations that cannot be found in the release's wip/pending/release
16291
               tabs.
16292
 
16293
******************************************************************************/
16294
BEGIN
16295
   -- Delete any invalid rtag_id/pv_id combination from the do_not_ripple table.
16296
   -- An invalid rtag_id/pv_id combination is one that cannot be found in the
16297
   -- work_in_progress, planned, or release_content table.
16298
   -- NOTE: Planned operations that represent pending additive/subtractive merge
16299
   -- operations are ignored because they have not been approved yet and so
16300
   -- cannot be said to be "in the release".
16301
   DELETE FROM do_not_ripple
16302
         WHERE rtag_id = nrtagid
16303
           AND pv_id not in
16304
               ((SELECT pv_id FROM release_content WHERE rtag_id = nrtagid)
16305
                 UNION
16306
                (SELECT pv_id FROM work_in_progress WHERE rtag_id = nrtagid)
16307
                 UNION
16308
                (SELECT pv_id FROM planned WHERE rtag_id = nrtagid AND (operation is null OR operation = 'R'))
16309
               );
16310
END clean_do_not_ripple;
4040 dpurdie 16311
 
1374 dpurdie 16312
/
4040 dpurdie 16313
--------------------------------------------------------
16314
--  DDL for Procedure CLEAR_ADVISORY_RIPPLE
16315
--------------------------------------------------------
16316
set define off;
16317
 
5172 dpurdie 16318
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAR_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 16319
	   	  		  							   nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
16320
											 nUserId IN NUMBER ) IS
1373 dpurdie 16321
/* ---------------------------------------------------------------------------
3959 dpurdie 16322
    Version: 4.0
1373 dpurdie 16323
   --------------------------------------------------------------------------- */
16324
 
16325
BEGIN
16326
 
3959 dpurdie 16327
    -- Clear Advisory Ripple Package
16328
    DELETE FROM ADVISORY_RIPPLE
16329
	WHERE PV_ID = nPvId
16330
	AND RTAG_ID = nRtagId;
1373 dpurdie 16331
 
3959 dpurdie 16332
    /* LOG ACTION */
16333
   	Log_Action ( nPvId, 'clear_advisory_ripple', nUserId );
6031 dpurdie 16334
 
3959 dpurdie 16335
	/*Rebuild_Environment(nRtagId);*/
1373 dpurdie 16336
 
3959 dpurdie 16337
END Clear_Advisory_Ripple;
4040 dpurdie 16338
 
1374 dpurdie 16339
/
4040 dpurdie 16340
--------------------------------------------------------
16341
--  DDL for Procedure CLONED_PACKAGE_PROCESSES
16342
--------------------------------------------------------
16343
set define off;
16344
 
5172 dpurdie 16345
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLONED_PACKAGE_PROCESSES" 
3959 dpurdie 16346
IS
1373 dpurdie 16347
 
3959 dpurdie 16348
proc_id NUMBER;
1373 dpurdie 16349
/******************************************************************************
3959 dpurdie 16350
   NAME:       DELETE_DO_NOT_RIPPLE
16351
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
16352
               IS RELEASED
1373 dpurdie 16353
 
16354
   REVISIONS:
16355
   Ver        Date        Author           Description
16356
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 16357
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
1373 dpurdie 16358
 
16359
   NOTES:
16360
 
16361
   Automatically available Auto Replace Keywords:
3959 dpurdie 16362
      Object Name:     DELETE_DO_NOT_RIPPLE
16363
      Sysdate:         21/04/2006
16364
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
1373 dpurdie 16365
      Username:         (set in TOAD Options, Procedure Editor)
16366
      Table Name:       (set in the "New PL/SQL Object" dialog)
16367
 
16368
******************************************************************************/
3959 dpurdie 16369
   CURSOR ripple_cur
16370
   IS
16371
      select distinct proc_id, prod_id from deployment_manager.processes_config;
16372
 
16373
   ripple_rec   ripple_cur%ROWTYPE;
1373 dpurdie 16374
BEGIN
3959 dpurdie 16375
   OPEN ripple_cur;
1373 dpurdie 16376
 
3959 dpurdie 16377
   FETCH ripple_cur
16378
    INTO ripple_rec;
1373 dpurdie 16379
 
3959 dpurdie 16380
   WHILE ripple_cur%FOUND
16381
   LOOP
1373 dpurdie 16382
 
6031 dpurdie 16383
 
16384
 
16385
insert into package_processes (PROC_ID, PV_ID)
3959 dpurdie 16386
values( ripple_rec.proc_id, ripple_rec.prod_id);
16387
 
16388
      FETCH ripple_cur
16389
       INTO ripple_rec;
16390
   END LOOP;
16391
END CLONED_PACKAGE_PROCESSES;
4040 dpurdie 16392
 
1374 dpurdie 16393
/
4040 dpurdie 16394
--------------------------------------------------------
16395
--  DDL for Procedure CLONED_PROCESSES
16396
--------------------------------------------------------
16397
set define off;
16398
 
5172 dpurdie 16399
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLONED_PROCESSES" 
3959 dpurdie 16400
IS
16401
 
16402
proc_id NUMBER;
16403
/******************************************************************************
16404
   NAME:       DELETE_DO_NOT_RIPPLE
16405
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
16406
               IS RELEASED
16407
 
16408
   REVISIONS:
16409
   Ver        Date        Author           Description
16410
   ---------  ----------  ---------------  ------------------------------------
16411
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
16412
 
16413
   NOTES:
16414
 
16415
   Automatically available Auto Replace Keywords:
16416
      Object Name:     DELETE_DO_NOT_RIPPLE
16417
      Sysdate:         21/04/2006
16418
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
16419
      Username:         (set in TOAD Options, Procedure Editor)
16420
      Table Name:       (set in the "New PL/SQL Object" dialog)
16421
 
16422
******************************************************************************/
16423
   CURSOR ripple_cur
16424
   IS
16425
      select distinct pkg_health_tag, cmd_interface, pkg_owner, is_interface from deployment_manager.processes_config;
16426
 
16427
   ripple_rec   ripple_cur%ROWTYPE;
1373 dpurdie 16428
BEGIN
3959 dpurdie 16429
   OPEN ripple_cur;
1373 dpurdie 16430
 
3959 dpurdie 16431
   FETCH ripple_cur
16432
    INTO ripple_rec;
1373 dpurdie 16433
 
3959 dpurdie 16434
   WHILE ripple_cur%FOUND
16435
   LOOP
6031 dpurdie 16436
 
3959 dpurdie 16437
   select deployment_manager.seq_proc_id.nextval into proc_id from dual;
6031 dpurdie 16438
 
16439
insert into processes (PROC_ID, PROC_NAME, RUN_AS, PKG_OWNER, IS_INTERFACE)
3959 dpurdie 16440
values(proc_id, ripple_rec.pkg_health_tag, ripple_rec.cmd_interface, ripple_rec.pkg_owner, ripple_rec.is_interface);
1373 dpurdie 16441
 
3959 dpurdie 16442
      FETCH ripple_cur
16443
       INTO ripple_rec;
16444
   END LOOP;
16445
END CLONED_PROCESSES;
4040 dpurdie 16446
 
1374 dpurdie 16447
/
4040 dpurdie 16448
--------------------------------------------------------
16449
--  DDL for Procedure DELETE_AUTOBUILD_FAILURE_INFO
16450
--------------------------------------------------------
16451
set define off;
16452
 
5172 dpurdie 16453
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DELETE_AUTOBUILD_FAILURE_INFO" 
3959 dpurdie 16454
IS
1373 dpurdie 16455
/******************************************************************************
3959 dpurdie 16456
   NAME:       DELETE_AUTOBUILD_FAILURE_INFO
16457
   PURPOSE:
1373 dpurdie 16458
 
16459
   REVISIONS:
3959 dpurdie 16460
   Ver        Date        Author           Description
1373 dpurdie 16461
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 16462
   1.0        2/06/2006    Rupesh Solanki      1. Created this procedure.
1373 dpurdie 16463
 
16464
   NOTES:
16465
 
16466
   Automatically available Auto Replace Keywords:
3959 dpurdie 16467
      Object Name:     DELETE_AUTOBUILD_FAILURE_INFO
16468
      Sysdate:         2/06/2006
16469
      Date and Time:   2/06/2006, 8:44:25 AM, and 2/06/2006 8:44:25 AM
1373 dpurdie 16470
      Username:         (set in TOAD Options, Procedure Editor)
16471
      Table Name:       (set in the "New PL/SQL Object" dialog)
16472
 
16473
******************************************************************************/
16474
BEGIN
3959 dpurdie 16475
   DELETE FROM autobuild_failure
16476
         WHERE group_email_id NOT IN (SELECT group_email_id
16477
                                        FROM members_group);
16478
END delete_autobuild_failure_info;
4040 dpurdie 16479
 
1374 dpurdie 16480
/
4040 dpurdie 16481
--------------------------------------------------------
16482
--  DDL for Procedure DEPRECATE_PACKAGE
16483
--------------------------------------------------------
16484
set define off;
16485
 
5384 dpurdie 16486
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DEPRECATE_PACKAGE" (
16487
    nPvId     IN PACKAGE_VERSIONS.PV_ID%TYPE,
16488
    nRtagId   IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,
16489
    nPkgId    IN DEPRECATED_PACKAGES.PKG_ID%TYPE,
16490
    sComments IN DEPRECATED_PACKAGES.COMMENTS%TYPE,
16491
    nUserId   IN NUMBER)
16492
IS
16493
  ext VARCHAR2(50);
1373 dpurdie 16494
BEGIN
5384 dpurdie 16495
  --Extract the package version extension
16496
  SELECT V_EXT INTO ext
16497
  FROM PACKAGE_VERSIONS
16498
  WHERE PV_ID = nPvId;
6031 dpurdie 16499
 
5384 dpurdie 16500
  -- Deprecate Package
16501
  INSERT INTO DEPRECATED_PACKAGES
16502
    ( RTAG_ID, PKG_ID, COMMENTS, V_EXT )
16503
    VALUES ( nRtagId, nPkgId, sComments, ext );
6031 dpurdie 16504
 
5384 dpurdie 16505
  -- Update Release Contents entry
16506
  -- Process PackageName.ext for the package. ie: Allow multiple
16507
  -- versions of the package to be in the release.
16508
    UPDATE RELEASE_CONTENT
6031 dpurdie 16509
    SET
5384 dpurdie 16510
      DEPRECATED_STATE = 6
16511
    WHERE RTAG_ID      = nRtagId
16512
    AND PV_ID IN (
16513
      SELECT PV.PV_ID
16514
      FROM PACKAGE_VERSIONS PV
16515
      WHERE PV.PKG_ID   = nPkgId
16516
      AND NVL(PV.V_EXT, '.NULL') = NVL(ext,'.NULL')
16517
      );
1373 dpurdie 16518
 
5384 dpurdie 16519
  -- Update consumers of the package
16520
  --  Update ALL packages in the Release
6031 dpurdie 16521
 
5384 dpurdie 16522
  REBUILD_DEPRECATE_STATE(nRtagId);
1373 dpurdie 16523
 
5384 dpurdie 16524
  /* LOG ACTION */
16525
  /*Log_Action ( nPkgId, 'deprecated_package', nUserId );*/
3959 dpurdie 16526
END Deprecate_Package;
4040 dpurdie 16527
 
1374 dpurdie 16528
/
4040 dpurdie 16529
--------------------------------------------------------
16530
--  DDL for Procedure DT_DROPUSEROBJECTBYID
16531
--------------------------------------------------------
16532
set define off;
16533
 
5172 dpurdie 16534
  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 16535
 
1374 dpurdie 16536
/
4040 dpurdie 16537
--------------------------------------------------------
16538
--  DDL for Procedure DT_SETPROPERTYBYID
16539
--------------------------------------------------------
16540
set define off;
16541
 
5384 dpurdie 16542
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DT_SETPROPERTYBYID" (
16543
    PARAM_ID       IN NUMBER,
16544
    PARAM_PROPERTY IN VARCHAR2,
16545
    PARAM_VALUE    IN VARCHAR2,
16546
    PARAM_LVALUE   IN LONG RAW )
16547
AS
16548
BEGIN
16549
  DECLARE
16550
    X NUMBER(38);
16551
  BEGIN
16552
    SELECT COUNT(*)
16553
    INTO X
16554
    FROM MICROSOFTDTPROPERTIES
16555
    WHERE OBJECTID=PARAM_ID
16556
    AND PROPERTY  =PARAM_PROPERTY;
16557
    IF X          = 0 THEN
16558
      INSERT
16559
      INTO MICROSOFTDTPROPERTIES
16560
        (
16561
          ID,
16562
          PROPERTY,
16563
          OBJECTID,
16564
          VALUE,
16565
          LVALUE,
16566
          VERSION
16567
        )
16568
        VALUES
16569
        (
16570
          MICROSOFTSEQDTPROPERTIES.NEXTVAL,
16571
          PARAM_PROPERTY,
16572
          PARAM_ID,
16573
          PARAM_VALUE,
16574
          PARAM_LVALUE,
16575
 
16576
        );
16577
    ELSE
16578
      UPDATE MICROSOFTDTPROPERTIES
16579
      SET VALUE     =PARAM_VALUE,
16580
        LVALUE      =PARAM_LVALUE,
16581
        VERSION     =VERSION+1
16582
      WHERE OBJECTID=PARAM_ID
16583
      AND PROPERTY  =PARAM_PROPERTY;
16584
    END IF;
16585
  END;
16586
END DT_SETPROPERTYBYID;
4040 dpurdie 16587
 
3959 dpurdie 16588
/
4040 dpurdie 16589
--------------------------------------------------------
16590
--  DDL for Procedure IGNORE_DEPENDENCY_WARNINGS
16591
--------------------------------------------------------
16592
set define off;
16593
 
5172 dpurdie 16594
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."IGNORE_DEPENDENCY_WARNINGS" ( nRtagId IN IGNORE_WARNINGS.RTAG_ID%TYPE,
3959 dpurdie 16595
                                                         nPvId IN IGNORE_WARNINGS.PV_ID%TYPE,
16596
                                                         sIgnoreIdList IN VARCHAR2,
16597
                                                         bDoPatchIgnore IN BOOLEAN DEFAULT FALSE,
16598
                                                         nUserId IN NUMBER DEFAULT NULL ) IS
16599
/* ---------------------------------------------------------------------------
16600
    Updates the ignore warnings table - this is really two functions in one.
16601
 
16602
    1) One function updates the table based on a list of dependent PV_IDs and a parent PV_ID
16603
       and is called from the RM website's SetIgnoreWarnings() function after a user changes
16604
       the ignore warnings checkboxes and submits the form.
16605
       This can (at time of writing this) only be done within releases that are not build
16606
       daemon enabled. The ignore warnings feature is a feature we would like to see the end
16607
       of in an ideal world.
16608
       The SetIgnoreWarnings() website function now calls Touch_Release so there is no need to
16609
       do so in this stored procedure, thereby making this stored procedure much more precise in
16610
       that it only updates the ignore_warnings table (action log table too although that is just
16611
       a log and doesn't affect any subsequent business rules behaviour) and it cares nothing
16612
       about website presentation layer states, etc.
16613
 
16614
    2) The other function updates the table for out of sync dependencies that have in fact
16615
       been satisfied by patches made to some other product in the release.
16616
       This seems to be a seldom used feature in current projects.
16617
       It is probably the most often taken path through this function given that it occurs when
16618
       this function is called from Rebuild_Environment, and that is called in many circumstances
16619
       from the RM website whenever the seems to be a possibility that the state of a package
16620
       in a release might have changed and therefore affects the state of other packages in
16621
       that same release.
16622
 
16623
    Parameter Usage:
16624
                        when called from    | when called from
16625
                        Rebuild_Environment | SetIgnoreWarnings()
16626
                        stored procedure.   | in the Website
16627
      --------------------------------------+----------------------------
16628
      nRtagId           RTAG_ID             | RTAG_ID
16629
      nPvId             NULL                | PV_ID
16630
      sIgnoreIdList     NULL                | list of dependent PV_ID's
16631
      bDoPatchIgnore    TRUE                | FALSE
16632
      nUserId           NULL                | current user ID
16633
   --------------------------------------------------------------------------- */
16634
 
16635
oIgnoreIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
16636
ReleaseLocation VARCHAR2(4000);
16637
ActionTypeId NUMBER;
16638
 
1373 dpurdie 16639
BEGIN
16640
 
3959 dpurdie 16641
   IF (NOT bDoPatchIgnore) THEN
16642
      /* Manual Ignore Warnings - this execution path is the one taken when called from SetIgnoreWarnings() in the Website
16643
      */
16644
      oIgnoreIdCollector := IN_LIST_NUMBER ( sIgnoreIdList );
1373 dpurdie 16645
 
16646
 
3959 dpurdie 16647
      /* Log Action */
16648
      -- Get Release Location
16649
      SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
16650
        FROM PROJECTS proj,
16651
             RELEASE_TAGS rt
16652
       WHERE rt.PROJ_ID = proj.PROJ_ID
16653
         AND rt.RTAG_ID = nRtagId;
1373 dpurdie 16654
 
3959 dpurdie 16655
      -- Get Action Type Id for IGNORE_ON
16656
      SELECT act.ACTTYPE_ID INTO ActionTypeId
16657
        FROM ACTION_TYPE act
16658
       WHERE act.NAME = 'ignore_on';
16659
 
16660
      -- Get Ignored (Current MINUS Old)
5172 dpurdie 16661
      INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
16662
      SELECT nUserId, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeId
3959 dpurdie 16663
        FROM (
16664
              SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_ID
16665
                FROM PACKAGE_VERSIONS pv
16666
               WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
16667
              MINUS
16668
              SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_ID
16669
                FROM IGNORE_WARNINGS igw
16670
               WHERE igw.RTAG_ID = nRtagId
16671
                 AND igw.PV_ID = nPvId
16672
             ) qry,
16673
             PACKAGE_VERSIONS pv,
16674
             PACKAGES pkg,
16675
             RELEASE_CONTENT rc,
16676
             PACKAGE_VERSIONS rpv
16677
       WHERE pv.PKG_ID = pkg.PKG_ID
16678
         AND rc.RTAG_ID = nRtagId
16679
         AND rc.PV_ID = rpv.PV_ID
16680
         AND rpv.PKG_ID = pv.PKG_ID
16681
         AND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )
16682
         AND qry.DPV_ID = pv.PV_ID;
16683
 
16684
 
16685
      -- Get Action Type Id for IGNORE_OFF
16686
      SELECT act.ACTTYPE_ID INTO ActionTypeId
16687
        FROM ACTION_TYPE act
16688
       WHERE act.NAME = 'ignore_off';
16689
 
16690
      -- Get UnIgnored (Old MINUS Current)
5172 dpurdie 16691
      INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
16692
      SELECT nUserId, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeId
3959 dpurdie 16693
        FROM (
16694
              SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_ID
16695
                FROM IGNORE_WARNINGS igw
16696
               WHERE igw.RTAG_ID = nRtagId
16697
                 AND igw.PV_ID = nPvId
16698
              MINUS
16699
              SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_ID
16700
                FROM PACKAGE_VERSIONS pv
16701
               WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
16702
             ) qry,
16703
             PACKAGE_VERSIONS pv,
16704
             PACKAGES pkg,
16705
             RELEASE_CONTENT rc,
16706
             PACKAGE_VERSIONS rpv
16707
       WHERE pv.PKG_ID = pkg.PKG_ID
16708
         AND rc.RTAG_ID = nRtagId
16709
         AND rc.PV_ID = rpv.PV_ID
16710
         AND rpv.PKG_ID = pv.PKG_ID
16711
         AND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )
16712
         AND qry.DPV_ID = pv.PV_ID;
16713
 
16714
 
16715
      -- Delete Current Ignore Warnings
16716
      DELETE
16717
        FROM IGNORE_WARNINGS igw
16718
       WHERE igw.RTAG_ID = nRtagId
16719
         AND igw.PV_ID = nPvId
16720
         AND igw.IS_PATCH_IGNORE IS NULL;
16721
 
16722
 
16723
      IF (oIgnoreIdCollector.COUNT > 0) THEN
16724
         -- Insert Ignore Warnings
16725
         INSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID )
16726
         SELECT nRtagId,
16727
                nPvId,
16728
                pv.PV_ID AS DPV_ID
16729
           FROM PACKAGE_VERSIONS pv
16730
          WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
16731
      END IF;
16732
 
16733
   ELSE
16734
      /* Patch Ignore Warnings - this execution path is the one taken when called from the Rebuild_Environment stored procedure */
16735
 
16736
      -- Delete Current Patch Ignore Warnings
16737
      DELETE
16738
        FROM IGNORE_WARNINGS igw
16739
       WHERE igw.RTAG_ID = nRtagId
16740
         AND igw.IS_PATCH_IGNORE = 'Y';
16741
 
16742
 
16743
      -- Delete Manual Ignores that need to be Patch Ignores
16744
      DELETE
16745
        FROM IGNORE_WARNINGS igw
16746
       WHERE ( RTAG_ID, PV_ID, DPV_ID ) IN
16747
             (
16748
              SELECT DISTINCT
16749
                     nRtagId,
16750
                     err.PV_ID,
16751
                     err.ERR_DPV AS DPV_ID
16752
               FROM  (
16753
                      /* Full Release Contents used for reference*/
16754
                      SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext
16755
                        FROM release_content rel, package_versions rpv
16756
                       WHERE rel.pv_id = rpv.pv_id
16757
                         AND rtag_id = nRtagId
16758
                     ) frc,
16759
                     (
16760
                      /* DPV_IDs not fount in release*/
16761
                      SELECT dep.pv_id, dep.dpv_id AS err_dpv
16762
                        FROM package_dependencies dep
16763
                       WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
16764
                         AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
16765
                     ) err,
16766
                     (
16767
                      SELECT DISTINCT pp.PV_ID, dep.DPV_ID
16768
                        FROM PACKAGE_PATCHES pp,
16769
                             PACKAGE_DEPENDENCIES dep,
16770
                             RELEASE_CONTENT rc
16771
                       WHERE rc.RTAG_ID = nRtagId
16772
                         AND rc.PV_ID = pp.PV_ID
16773
                         AND dep.PV_ID = pp.PATCH_ID
16774
                     ) pp,
16775
                     package_versions errpkg,
16776
                     package_versions errpv
16777
               WHERE err.err_dpv = errpv.pv_id
16778
                 AND errpv.pkg_id = frc.pkg_id(+)
16779
                 AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
16780
                 AND err.pv_id = errpkg.pv_id
16781
                 AND err.PV_ID = pp.PV_ID
16782
                 AND frc.PV_ID = pp.DPV_ID
16783
             );
16784
 
16785
      /*
16786
      ---------------------------------------------------
16787
      --  Make sure that select statement above and below are same
16788
      ---------------------------------------------------
16789
      */
16790
 
16791
      -- Insert Patch Ignores
16792
      INSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE )
16793
      SELECT DISTINCT
16794
             nRtagId,
16795
             err.PV_ID,
16796
             err.ERR_DPV AS DPV_ID,
16797
             'Y'
16798
        FROM (
16799
              /* Full Release Contents used for reference*/
16800
              SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext
16801
                FROM release_content rel, package_versions rpv
16802
               WHERE rel.pv_id = rpv.pv_id
16803
                 AND rtag_id = nRtagId
16804
             ) frc,
16805
             (
16806
               /* DPV_IDs not fount in release*/
16807
               SELECT dep.pv_id, dep.dpv_id AS err_dpv
16808
                 FROM package_dependencies dep
16809
                WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
16810
                  AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
16811
             ) err,
16812
             (
16813
              SELECT DISTINCT pp.PV_ID, dep.DPV_ID
16814
                FROM PACKAGE_PATCHES pp,
16815
                     PACKAGE_DEPENDENCIES dep,
16816
                     RELEASE_CONTENT rc
16817
               WHERE rc.RTAG_ID = nRtagId
16818
                 AND rc.PV_ID = pp.PV_ID
16819
                 AND dep.PV_ID = pp.PATCH_ID
16820
             ) pp,
16821
             package_versions errpkg,
16822
             package_versions errpv
16823
       WHERE err.err_dpv = errpv.pv_id
16824
         AND errpv.pkg_id = frc.pkg_id(+)
16825
         AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
16826
         AND err.pv_id = errpkg.pv_id
16827
         AND err.PV_ID = pp.PV_ID
16828
         AND frc.PV_ID = pp.DPV_ID;
16829
 
16830
    END IF;
16831
 
16832
END Ignore_Dependency_Warnings;
4040 dpurdie 16833
 
1374 dpurdie 16834
/
4040 dpurdie 16835
--------------------------------------------------------
16836
--  DDL for Procedure INSERT_INTO_PACKAGE_BUILD_INFO
16837
--------------------------------------------------------
16838
set define off;
16839
 
5172 dpurdie 16840
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."INSERT_INTO_PACKAGE_BUILD_INFO" IS
1373 dpurdie 16841
 
16842
/******************************************************************************
3959 dpurdie 16843
   NAME:       INSERT_INTO_PACKAGE_BUILD_INFO
6031 dpurdie 16844
   PURPOSE:
1373 dpurdie 16845
 
16846
   REVISIONS:
16847
   Ver        Date        Author           Description
16848
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 16849
   1.0        6/12/2006          1. Created this procedure.
1373 dpurdie 16850
 
16851
   NOTES:
16852
 
16853
   Automatically available Auto Replace Keywords:
3959 dpurdie 16854
      Object Name:     INSERT_INTO_PACKAGE_BUILD_INFO
16855
      Sysdate:         6/12/2006
16856
      Date and Time:   6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PM
1373 dpurdie 16857
      Username:         (set in TOAD Options, Procedure Editor)
16858
      Table Name:       (set in the "New PL/SQL Object" dialog)
16859
 
16860
******************************************************************************/
16861
 
16862
	CURSOR curInfo IS
3959 dpurdie 16863
    SELECT PV_ID
16864
	FROM PACKAGE_BUILD_ENV
16865
	WHERE BE_ID IN (11, 12);
1373 dpurdie 16866
    recInfo curInfo%ROWTYPE;
6031 dpurdie 16867
 
16868
 
1373 dpurdie 16869
BEGIN
16870
 
16871
	OPEN curInfo;
16872
    FETCH curInfo INTO recInfo;
6031 dpurdie 16873
 
1373 dpurdie 16874
	WHILE curInfo%FOUND
16875
	LOOP
16876
 
3959 dpurdie 16877
		INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID, BSA_ID )
16878
		VALUES( recInfo.PV_ID, 2, 5);
6031 dpurdie 16879
 
3959 dpurdie 16880
		UPDATE PACKAGE_VERSIONS SET BS_ID = 2 WHERE PV_ID = recInfo.PV_ID;
6031 dpurdie 16881
 
1373 dpurdie 16882
		FETCH curInfo INTO recInfo;
6031 dpurdie 16883
 
1373 dpurdie 16884
	END LOOP;
16885
 
16886
	CLOSE curInfo;
16887
 
16888
 
16889
 
16890
 
3959 dpurdie 16891
END INSERT_INTO_PACKAGE_BUILD_INFO;
4040 dpurdie 16892
 
1374 dpurdie 16893
/
4040 dpurdie 16894
--------------------------------------------------------
16895
--  DDL for Procedure INSERT_MULTIPLE_STICKY_NOTES
16896
--------------------------------------------------------
16897
set define off;
16898
 
5172 dpurdie 16899
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."INSERT_MULTIPLE_STICKY_NOTES" IS
1373 dpurdie 16900
 
3959 dpurdie 16901
/******************************************************************************
16902
   NAME:       INSERT_MULTIPLE_STICKY_NOTES
6031 dpurdie 16903
   PURPOSE:
1373 dpurdie 16904
 
3959 dpurdie 16905
   REVISIONS:
16906
   Ver        Date        Author           Description
16907
   ---------  ----------  ---------------  ------------------------------------
16908
   1.0        6/12/2006          1. Created this procedure.
1373 dpurdie 16909
 
3959 dpurdie 16910
   NOTES:
1373 dpurdie 16911
 
3959 dpurdie 16912
   Automatically available Auto Replace Keywords:
16913
      Object Name:     INSERT_MULTIPLE_STICKY_NOTES
16914
      Sysdate:         6/12/2006
16915
      Date and Time:   6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PM
16916
      Username:         (set in TOAD Options, Procedure Editor)
16917
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 16918
 
3959 dpurdie 16919
******************************************************************************/
1373 dpurdie 16920
 
3959 dpurdie 16921
	CURSOR curInfo IS
16922
    SELECT PV_ID
16923
	FROM PACKAGE_BUILD_ENV
16924
	WHERE BE_ID IN (11, 12);
16925
    recInfo curInfo%ROWTYPE;
6031 dpurdie 16926
 
16927
 
1373 dpurdie 16928
BEGIN
16929
 
3959 dpurdie 16930
	OPEN curInfo;
16931
    FETCH curInfo INTO recInfo;
6031 dpurdie 16932
 
3959 dpurdie 16933
	WHILE curInfo%FOUND
16934
	LOOP
1373 dpurdie 16935
 
3959 dpurdie 16936
		INSERT INTO NOTE_MANAGER ( NID, LAST_USER, LAST_DATE, DESCRIPTION )
16937
		VALUES( recInfo.PV_ID, 'awehalle', ORA_SYSDATETIME, '' );
6031 dpurdie 16938
 
3959 dpurdie 16939
		FETCH curInfo INTO recInfo;
6031 dpurdie 16940
 
3959 dpurdie 16941
	END LOOP;
1373 dpurdie 16942
 
3959 dpurdie 16943
	CLOSE curInfo;
1373 dpurdie 16944
 
16945
 
16946
 
16947
 
3959 dpurdie 16948
END INSERT_MULTIPLE_STICKY_NOTES;
4040 dpurdie 16949
 
1374 dpurdie 16950
/
4040 dpurdie 16951
--------------------------------------------------------
16952
--  DDL for Procedure LEVEL_N_CONFLICTS
16953
--------------------------------------------------------
16954
set define off;
16955
 
5172 dpurdie 16956
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LEVEL_N_CONFLICTS" (
3959 dpurdie 16957
   nnrtag_id       IN       NUMBER,
16958
   nnsession_num   IN       NUMBER,
16959
   nnrowcnt        OUT      NUMBER,
16960
   nniteration     IN       NUMBER
16961
)
16962
IS
1373 dpurdie 16963
/* ---------------------------------------------------------------------------
3959 dpurdie 16964
    Version: 3.0.1
1373 dpurdie 16965
   --------------------------------------------------------------------------- */
3959 dpurdie 16966
   previteration   NUMBER := nniteration - 1;
1373 dpurdie 16967
BEGIN
5384 dpurdie 16968
  -- Map broken dependency information from a package into a consumer
16969
  -- package. ie: Ripple need-to-build info up the dependency tree.
16970
 
3959 dpurdie 16971
   /* ---------  LEVEL 1 CONFILCTS -----------
16972
   || Following states are used:
16973
   || 0 -> NOT FOUND
16974
   || 1 -> MAJOR
16975
   || 2 -> MINOR MINOR
16976
   */
16977
   INSERT INTO temp_env_states
5384 dpurdie 16978
               SELECT DISTINCT nnsession_num AS session_num, nniteration AS level_num,
16979
                      dpv.pv_id, dpv.pkg_id, dpv.v_ext,
6031 dpurdie 16980
                      DECODE (tes.tes_state, 2, 2, 1) AS MESSAGE,
16981
                      'X'
5384 dpurdie 16982
                 FROM TEMP_ENV_DEPS dpv,
3959 dpurdie 16983
                      temp_env_states tes
5384 dpurdie 16984
                WHERE dpv.SESSION_NUM = nnsession_num
16985
                  AND dpv.dpkg_id = tes.pkg_id
16986
                  AND NVL (dpv.dv_ext, '|LINK_A_NULL|') = NVL (tes.v_ext, '|LINK_A_NULL|')
3959 dpurdie 16987
                  AND tes.session_num = nnsession_num
5384 dpurdie 16988
                  AND tes.level_num = previteration;
1373 dpurdie 16989
 
3959 dpurdie 16990
   nnrowcnt := SQL%ROWCOUNT;
16991
END level_n_conflicts;
4040 dpurdie 16992
 
1374 dpurdie 16993
/
4040 dpurdie 16994
--------------------------------------------------------
16995
--  DDL for Procedure LEVEL_ONE_CONFLICTS
16996
--------------------------------------------------------
16997
set define off;
16998
 
5172 dpurdie 16999
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LEVEL_ONE_CONFLICTS" (
1373 dpurdie 17000
   nnrtag_id       IN   NUMBER,
17001
   nnsession_num   IN   NUMBER
17002
)
17003
IS
17004
BEGIN
5384 dpurdie 17005
  --  Prepare the TEMP_ENV_DEPS table
17006
  --  This table maps package-versions to their dependencies and is
17007
  --  used to walk up the dependency tree.
17008
  --  This table consists of PV_ID -> DPV_ID in the release in which we are interested
17009
  --  ie: Those that ARE NOT a part of:
17010
  --    Pegged Package
17011
  --    SDK imported package
17012
  --    Marked with an ignore warnings
17013
  --    Marked as an advisory ripple
17014
  --
17015
  --  This table speeds up the process by a huge (really huge) amount
17016
  --
17017
      INSERT into TEMP_ENV_DEPS
17018
      (
17019
      SELECT DISTINCT nnsession_num AS session_num,
17020
                      pv.pv_id, pv.pkg_id, pv.v_ext,
17021
                      dpv.pv_id as dpv_id, dpv.pkg_id as dpkg_id, dpv.v_ext as dv_ext
6031 dpurdie 17022
 
5384 dpurdie 17023
                 FROM release_content rel,
17024
                      package_dependencies dep,
17025
                      package_versions dpv,
17026
                      package_versions pv
6031 dpurdie 17027
 
5384 dpurdie 17028
                WHERE rel.pv_id = dep.pv_id
17029
                  AND rel.rtag_id = nnrtag_id
17030
                  AND dep.pv_id = pv.pv_id
17031
                  AND dep.dpv_id = dpv.pv_id
17032
                  --AND rel.SDKTAG_ID is null
17033
                  --AND NOT dep.pv_id IN (SELECT pegv.pv_id FROM PEGGED_VERSIONS pegv WHERE pegv.rtag_id = nnrtag_id)
17034
                  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)
17035
                  );
17036
 
1373 dpurdie 17037
   /* ---------  LEVEL 1 CONFILCTS -----------
17038
   || Following states are used:
17039
   || 0 -> NOT FOUND
17040
   || 1 -> MAJOR
17041
   || 2 -> MINOR MINOR
17042
   */
17043
   INSERT INTO temp_env_states
17044
      SELECT DISTINCT nnsession_num AS session_num, 1 AS level_num,
17045
                      err.pv_id, errpkg.pkg_id, errpkg.v_ext,
17046
                      DECODE (frc.v_nmm,
17047
                              NULL, 0,
17048
                              errpv.v_nmm, DECODE (frc.v_mm,
6031 dpurdie 17049
                                                   errpv.v_mm, 0,
1373 dpurdie 17050
                                                   2
17051
                                                  ),
17052
                              1
6031 dpurdie 17053
                             ) AS MESSAGE,
17054
                             frc.build_type
1373 dpurdie 17055
                 FROM (
17056
                       /* Full Release Contents used for reference*/
17057
                        SELECT rel.rtag_id, rpv.pv_id, rpv.pkg_id,
17058
                                NVL (rpv.v_ext, '|LINK_A_NULL|') AS v_ext,
17059
                                rpv.pkg_version, rpv.v_nmm, rpv.v_mm,
6031 dpurdie 17060
                                (SELECT COUNT(*) FROM ADVISORY_RIPPLE avr WHERE avr.rtag_id = rel.rtag_id AND avr.pv_id = rel.pv_id ) AS IsAvr,
17061
                                rpv.build_type
1373 dpurdie 17062
                          FROM release_content rel,
17063
                                package_versions rpv
17064
                          WHERE rel.pv_id = rpv.pv_id
17065
                             AND rtag_id = nnrtag_id
17066
                      ) frc,
17067
 
17068
                      (
5384 dpurdie 17069
                       /* DPV_IDs not found in release. Excluding:
17070
                              Those from pegged versions
17071
                              Those from packages imported via an SDK
17072
                              */
1373 dpurdie 17073
                       SELECT dep.pv_id, dep.dpv_id AS err_dpv
5384 dpurdie 17074
                         FROM package_dependencies dep
17075
                        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 17076
                          AND NOT dep.pv_id IN (SELECT pegv.pv_id FROM PEGGED_VERSIONS pegv WHERE pegv.rtag_id = nnrtag_id)
17077
                          AND NOT dep.dpv_id IN (SELECT pv_id FROM release_content WHERE rtag_id = nnrtag_id)
5384 dpurdie 17078
 
6031 dpurdie 17079
                       /* INCLUDE Unbuildable packages to force missing */
17080
                       UNION
17081
                       SELECT bpv.pv_id, bpv.pv_id as err_dpv
17082
                        FROM package_versions bpv, release_content brc
17083
                        WHERE bpv.build_type = 'U' AND brc.rtag_id = nnrtag_id AND bpv.pv_id = brc.pv_id
17084
 
1373 dpurdie 17085
                       MINUS
17086
                       /* MINUS Dependencies to be ignored */
17087
                       SELECT igw.pv_id, igw.dpv_id AS err_dpv
5384 dpurdie 17088
                         FROM ignore_warnings igw
17089
                        WHERE igw.rtag_id = nnrtag_id
6031 dpurdie 17090
 
1373 dpurdie 17091
                      ) err,
17092
                      package_versions errpkg,
17093
                      package_versions errpv
17094
                WHERE err.err_dpv = errpv.pv_id
17095
                  AND errpv.pkg_id = frc.pkg_id(+)
17096
                  AND NVL (errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
17097
                  AND err.pv_id = errpkg.pv_id
5384 dpurdie 17098
                  AND NVL(frc.IsAvr,0) = 0;
1373 dpurdie 17099
END level_one_conflicts;
4040 dpurdie 17100
 
1374 dpurdie 17101
/
4040 dpurdie 17102
--------------------------------------------------------
17103
--  DDL for Procedure LOCK_PACKAGE
17104
--------------------------------------------------------
17105
set define off;
17106
 
5172 dpurdie 17107
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
1373 dpurdie 17108
											 nUserId IN NUMBER ) IS
17109
/* ---------------------------------------------------------------------------
17110
    Version: 4.0
17111
   --------------------------------------------------------------------------- */
17112
 
17113
BEGIN
17114
 
17115
    -- Lock Package
17116
    UPDATE PACKAGE_VERSIONS pv SET
17117
    	pv.DLOCKED = 'Y'
17118
    WHERE pv.PV_ID = nPvId;
17119
 
17120
    /* LOG ACTION */
17121
   	Log_Action ( nPvId, 'lock_package', nUserId );
17122
 
17123
END Lock_Package;
4040 dpurdie 17124
 
1374 dpurdie 17125
/
4040 dpurdie 17126
--------------------------------------------------------
17127
--  DDL for Procedure LOG_ACTION
17128
--------------------------------------------------------
17129
set define off;
17130
 
5172 dpurdie 17131
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 17132
										 enumActionTypeName IN ACTION_TYPE.NAME%TYPE,
17133
                                         nUserId IN ACTION_LOG.USER_ID%TYPE,
17134
										 sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL  ) IS
1373 dpurdie 17135
/* ---------------------------------------------------------------------------
17136
    Version: 3.0
17137
   --------------------------------------------------------------------------- */
17138
 
3959 dpurdie 17139
    ActionTypeId NUMBER;
1373 dpurdie 17140
 
17141
BEGIN
17142
 
3959 dpurdie 17143
    -- Get Action Type FK
17144
    SELECT act.ACTTYPE_ID INTO ActionTypeId
17145
      FROM ACTION_TYPE act
17146
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 17147
 
17148
 
5172 dpurdie 17149
    INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
17150
    VALUES ( nUserId, nPvId, sAdditionalComments, ActionTypeId );
1373 dpurdie 17151
 
17152
 
3959 dpurdie 17153
END Log_Action;
4040 dpurdie 17154
 
1374 dpurdie 17155
/
4040 dpurdie 17156
--------------------------------------------------------
17157
--  DDL for Procedure LOG_ACTION_BULK
17158
--------------------------------------------------------
17159
set define off;
17160
 
5172 dpurdie 17161
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION_BULK" ( nPvIdList IN VARCHAR2,
3959 dpurdie 17162
										 	  enumActionTypeName IN ACTION_TYPE.NAME%TYPE,
17163
                                         	  nUserId IN ACTION_LOG.USER_ID%TYPE,
17164
										 	  sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL  ) IS
1373 dpurdie 17165
/* ---------------------------------------------------------------------------
3959 dpurdie 17166
    Version: 3.0
1373 dpurdie 17167
   --------------------------------------------------------------------------- */
17168
 
3959 dpurdie 17169
    ActionTypeId NUMBER;
17170
    oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
1373 dpurdie 17171
 
17172
BEGIN
17173
 
3959 dpurdie 17174
    oPvIdCollector := IN_LIST_NUMBER ( nPvIdList );
1373 dpurdie 17175
 
3959 dpurdie 17176
    -- Get Action Type FK
17177
    SELECT act.ACTTYPE_ID INTO ActionTypeId
17178
      FROM ACTION_TYPE act
17179
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 17180
 
3959 dpurdie 17181
    -- Log Action
5172 dpurdie 17182
    INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
3959 dpurdie 17183
    SELECT nUserId,
5172 dpurdie 17184
    	     pv.PV_ID,
3959 dpurdie 17185
           sAdditionalComments,
17186
           ActionTypeId
17187
      FROM PACKAGE_VERSIONS pv
17188
     WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
1373 dpurdie 17189
 
17190
 
3959 dpurdie 17191
END Log_Action_Bulk;
4040 dpurdie 17192
 
1374 dpurdie 17193
/
4040 dpurdie 17194
--------------------------------------------------------
17195
--  DDL for Procedure LOG_DAEMON_ACTION
17196
--------------------------------------------------------
17197
set define off;
17198
 
5172 dpurdie 17199
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_DAEMON_ACTION" ( nRconId IN NUMBER,
3959 dpurdie 17200
												 enumActionTypeName IN VARCHAR2,
17201
		                                         nUserId IN NUMBER,
17202
												 sAdditionalComments IN VARCHAR2 DEFAULT NULL  ) IS
17203
/* ---------------------------------------------------------------------------
17204
    Version: 3.0
17205
   --------------------------------------------------------------------------- */
1373 dpurdie 17206
 
3959 dpurdie 17207
    ActionTypeId NUMBER;
1373 dpurdie 17208
 
17209
BEGIN
17210
 
3959 dpurdie 17211
    -- Get Action Type FK
17212
    SELECT act.ACTTYPE_ID INTO ActionTypeId
17213
      FROM ACTION_TYPE act
17214
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 17215
 
17216
 
3959 dpurdie 17217
    INSERT INTO DAEMON_ACTION_LOG
17218
    VALUES ( nUserId, ORA_SYSDATETIME, nRconId, sAdditionalComments, ActionTypeId );
1373 dpurdie 17219
 
17220
 
3959 dpurdie 17221
END Log_Daemon_Action;
4040 dpurdie 17222
 
1374 dpurdie 17223
/
4040 dpurdie 17224
--------------------------------------------------------
17225
--  DDL for Procedure LOG_PROJECT_ACTION
17226
--------------------------------------------------------
17227
set define off;
17228
 
5172 dpurdie 17229
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_PROJECT_ACTION" ( nProjId IN NUMBER,
3959 dpurdie 17230
												 enumActionTypeName IN VARCHAR2,
17231
		                                         nUserId IN NUMBER,
17232
												 sAdditionalComments IN VARCHAR2 DEFAULT NULL,
17233
												 nRtagId IN NUMBER  ) IS
1373 dpurdie 17234
/* ---------------------------------------------------------------------------
3959 dpurdie 17235
    Version: 3.0
1373 dpurdie 17236
   --------------------------------------------------------------------------- */
17237
 
3959 dpurdie 17238
    ActionTypeId NUMBER;
1373 dpurdie 17239
 
17240
BEGIN
17241
 
3959 dpurdie 17242
    -- Get Action Type FK
17243
    SELECT act.ACTTYPE_ID INTO ActionTypeId
17244
      FROM ACTION_TYPE act
17245
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 17246
 
17247
 
3959 dpurdie 17248
    INSERT INTO PROJECT_ACTION_LOG ( USER_ID, ACTION_DATETIME, PROJ_ID, DESCRIPTION, ACTTYPE_ID, RTAG_ID)
17249
    VALUES ( nUserId, ORA_SYSDATETIME, nProjId, sAdditionalComments, ActionTypeId, nRtagId);
1373 dpurdie 17250
 
17251
 
3959 dpurdie 17252
END Log_Project_Action;
4040 dpurdie 17253
 
1374 dpurdie 17254
/
4040 dpurdie 17255
--------------------------------------------------------
17256
--  DDL for Procedure NEW_ADDITIONAL_NOTE
17257
--------------------------------------------------------
17258
set define off;
17259
 
5172 dpurdie 17260
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_ADDITIONAL_NOTE" ( pnPv_id IN NUMBER,
3959 dpurdie 17261
                                                  psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,
17262
                                                  psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,
17263
                                                  pnUser_id IN NUMBER,
17264
                                                  outErrCode OUT NUMBER
17265
                                                 ) IS
1373 dpurdie 17266
/* ---------------------------------------------------------------------------
3959 dpurdie 17267
    Version: 3.0.0
1373 dpurdie 17268
   --------------------------------------------------------------------------- */
17269
 
17270
    newID NUMBER;
17271
 
17272
	CURSOR an_duplicate_cur IS
3959 dpurdie 17273
        SELECT note_id
1373 dpurdie 17274
          FROM ADDITIONAL_NOTES
17275
         WHERE pv_id = pnPv_id
17276
           AND note_title = psNote_title;
17277
    an_duplicate_rec an_duplicate_cur%ROWTYPE;
17278
 
17279
BEGIN
17280
	outErrCode := -1;		-- Set default return error code to ERROR state
17281
 
17282
	OPEN an_duplicate_cur;
17283
    FETCH an_duplicate_cur INTO an_duplicate_rec;
17284
 
3959 dpurdie 17285
    IF an_duplicate_cur%NOTFOUND
1373 dpurdie 17286
    THEN
3959 dpurdie 17287
		/* No duplicate titles */
17288
		-- Get new ID --
17289
    	SELECT SEQ_ADDITIONAL_NOTES.NEXTVAL INTO newID FROM DUAL;
17290
 
17291
		--- Add Additional Note ---
17292
	    INSERT INTO ADDITIONAL_NOTES ( note_id, pv_id, note_title, note_body, mod_date, mod_user  )
17293
	    VALUES (  newID, pnPv_id, psNote_title, psNote_body, Ora_Sysdate, pnUser_id );
1373 dpurdie 17294
		outErrCode := 0;		-- Set return to SUCCESS
17295
	END IF;
17296
 
17297
	CLOSE an_duplicate_cur;
3959 dpurdie 17298
END New_Additional_Note;
4040 dpurdie 17299
 
1374 dpurdie 17300
/
4040 dpurdie 17301
--------------------------------------------------------
17302
--  DDL for Procedure NEW_PACKAGE_NAME
17303
--------------------------------------------------------
17304
set define off;
17305
 
5172 dpurdie 17306
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_PACKAGE_NAME" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
3959 dpurdie 17307
                                               retPKG_ID OUT NUMBER ) IS
1373 dpurdie 17308
/* ---------------------------------------------------------------------------
3959 dpurdie 17309
    Version: 3.0.0
1373 dpurdie 17310
   --------------------------------------------------------------------------- */
17311
 
3959 dpurdie 17312
    CURSOR packages_cur IS
17313
        SELECT pkg.pkg_id
17314
          FROM packages pkg
17315
         WHERE pkg.pkg_name = SSpkg_name;
17316
    packages_rec packages_cur%ROWTYPE;
1373 dpurdie 17317
 
17318
 
17319
BEGIN
17320
 
3959 dpurdie 17321
    /* ---------------------------------------------------- */
17322
    /* Find if package name exists                          */
17323
    /* ---------------------------------------------------- */
1373 dpurdie 17324
 
3959 dpurdie 17325
    OPEN packages_cur;
17326
    FETCH packages_cur INTO packages_rec;
1373 dpurdie 17327
 
3959 dpurdie 17328
    IF packages_cur%NOTFOUND
17329
    THEN
17330
        -- Create new pkg_name --
17331
        SELECT SEQ_PKG_ID.nextval INTO retPKG_ID FROM DUAL;
1373 dpurdie 17332
 
3959 dpurdie 17333
        INSERT INTO packages ( pkg_id, pkg_name )
17334
        VALUES ( retPKG_ID, SSpkg_name );
1373 dpurdie 17335
 
3959 dpurdie 17336
    ELSE
17337
        retPKG_ID := packages_rec.pkg_id;
1373 dpurdie 17338
 
3959 dpurdie 17339
    END IF;
1373 dpurdie 17340
 
17341
 
3959 dpurdie 17342
    CLOSE packages_cur;
1373 dpurdie 17343
 
3959 dpurdie 17344
END New_Package_Name;
4040 dpurdie 17345
 
1374 dpurdie 17346
/
4040 dpurdie 17347
--------------------------------------------------------
17348
--  DDL for Procedure NEW_PATCH
17349
--------------------------------------------------------
17350
set define off;
17351
 
5172 dpurdie 17352
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_PATCH" ( SSpatch_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
1373 dpurdie 17353
 	   	  		  					  	NNparent_id IN NUMBER,
17354
                                        sPatchIdList IN VARCHAR2,
17355
										NNuser_id IN NUMBER ) IS
17356
/* ---------------------------------------------------------------------------
17357
    Version: 3.5
17358
   --------------------------------------------------------------------------- */
17359
 
17360
    patchPv_id    NUMBER;
17361
	parPkg_id	  NUMBER;
17362
    LastInstallOrder NUMBER;
17363
    isPatchDlocked PACKAGE_VERSIONS.DLOCKED%TYPE;
17364
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
17365
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
17366
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
17367
	oPatchDepCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
17368
 
17369
	CURSOR parent_cur IS
17370
        SELECT pv.*, pkg.pkg_name
17371
          FROM package_versions pv,
17372
		       packages pkg
17373
         WHERE pv.pv_id = NNparent_id
17374
		   AND pv.pkg_id = pkg.pkg_id;
17375
    parent_rec parent_cur%ROWTYPE;
17376
 
17377
    CURSOR patch_cur IS
17378
        SELECT pv.*, pg.pkg_name
17379
          FROM package_versions pv,
17380
		       packages pg
17381
         WHERE pv.pkg_id = parPkg_id
17382
		   AND pv.pkg_version = SSpatch_version
17383
		   AND pv.pkg_id = pg.pkg_id;
17384
    patch_rec patch_cur%ROWTYPE;
17385
 
17386
	CURSOR releases_cur IS
17387
        SELECT rc.pv_id
17388
		  FROM release_content rc
17389
		 WHERE rc.pv_id = patch_rec.pv_id;
17390
    releases_rec releases_cur%ROWTYPE;
17391
 
17392
 
17393
BEGIN
17394
 
17395
	-- Get Last Install Order
17396
    SELECT Count(*) INTO LastInstallOrder
17397
	  FROM PACKAGE_PATCHES pp
17398
	 WHERE pp.PV_ID = NNparent_id;
17399
 
17400
 
17401
    -- Get parent details
17402
	OPEN parent_cur;
17403
    FETCH parent_cur INTO parent_rec;
17404
	parPkg_id := parent_rec.pkg_id;
17405
 
17406
 
17407
	-- Find if patch exists in database
17408
    OPEN patch_cur;
17409
    FETCH patch_cur INTO patch_rec;
17410
 
17411
 
17412
    -- Parent must be official
17413
    IF parent_rec.dlocked = 'Y' THEN
17414
 
17415
	    IF patch_cur%NOTFOUND
17416
	    THEN
17417
        	isPatchDlocked := 'N';
17418
 
17419
	        -- Create new patch version --
17420
	        SELECT SEQ_PV_ID.nextval INTO patchPv_id FROM DUAL;
17421
 
17422
 
17423
	        Split_version ( SSpatch_version, SSV_MM, SSV_NMM, SSV_EXT );
17424
 
17425
	        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 )
17426
				   VALUES (
17427
						   patchPv_id,
17428
	                       parPkg_id,
17429
	                       SSpatch_version,
17430
	                       isPatchDlocked,
17431
	                       ORA_SYSDATE,
17432
	                       NNuser_id,
17433
	                       ORA_SYSDATETIME,
17434
	                       NNuser_id,
17435
	                       SSV_MM,
17436
	                       SSV_NMM,
17437
	                       SSV_EXT,
17438
	                       parent_rec.src_path,
17439
	                       'This is a patch to ' || parent_rec.pkg_name || ' ' || parent_rec.pkg_version,
17440
	                       NNuser_id,
17441
						   'Y',
17442
                           patchPv_id,
17443
						   parent_rec.bs_id,
17444
						   parent_rec.is_autobuildable,
17445
						   parent_rec.ripple_field
6031 dpurdie 17446
 
1373 dpurdie 17447
						   );
17448
 
17449
			INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )
17450
		    	   ( SELECT NNparent_id AS pv_id,
17451
				            pv.pv_id AS patch_id,
17452
	                        LastInstallOrder + 1 AS INSTALL_ORDER
17453
				       FROM package_versions pv
17454
					  WHERE pv.pv_id = patchPv_id
17455
					    AND pv.is_patch = 'Y' );
17456
 
17457
	        /* LOG ACTION */
17458
            Log_Action ( patchPv_id, 'new_version', NNuser_id,
17459
        			     'Patch version created: '|| SSpatch_version );
17460
 
17461
        	Log_Action ( NNparent_id, 'patch_add', NNuser_id,
17462
        			     'New patch created and attached: '|| SSpatch_version );
17463
 
17464
 
17465
	    ELSE
17466
 
17467
		    patchPv_id := patch_rec.pv_id;
17468
	    	isPatchDlocked := patch_rec.dlocked;
17469
 
17470
			-- Find if pv_id exists in release content (i.e. it cannot be a patch)
17471
		    OPEN releases_cur;
17472
		    FETCH releases_cur INTO releases_rec;
17473
 
17474
			IF releases_cur%NOTFOUND
17475
	   		THEN
17476
				-- This pv_id is trully a patch, hence add Y to column IS_PATCH
17477
				UPDATE package_versions SET
17478
					   is_patch = 'Y'
17479
					   WHERE pv_id = patchPv_id;
17480
 
17481
				INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )
17482
			    	   ( SELECT NNparent_id AS pv_id,
17483
					            pv.pv_id AS patch_id,
17484
	                            LastInstallOrder + 1 AS INSTALL_ORDER
17485
					       FROM package_versions pv
17486
						  WHERE pv.pv_id = patchPv_id
17487
						    AND pv.is_patch = 'Y' );
17488
 
17489
			END IF;
17490
 
17491
			CLOSE releases_cur;
17492
 
17493
            /* LOG ACTION */
17494
        	Log_Action ( NNparent_id, 'patch_add', NNuser_id,
17495
        			     'Patch version was found and attached: '|| SSpatch_version );
17496
 
17497
	    END IF;
17498
 
17499
 
17500
 
17501
 
17502
    END IF;
17503
 
17504
 
17505
 
17506
    /* Create Patch Dependencies */
17507
    oPatchDepCollector := IN_LIST_NUMBER ( sPatchIdList );
17508
 
17509
 
17510
    -- Make sure patch is unofficial before altering its dependencies
17511
    IF (oPatchDepCollector.COUNT > 0) AND (isPatchDlocked = 'N') THEN
17512
    	-- Delete Existing Dependencies
17513
        DELETE
17514
          FROM PACKAGE_DEPENDENCIES dep
17515
         WHERE dep.PV_ID = patchPv_id;
17516
 
17517
 
17518
        -- Insert new dependencies
17519
        INSERT INTO PACKAGE_DEPENDENCIES ( PV_ID, DPV_ID, PKG_ID, DPKG_ID, BUILD_TYPE )
17520
        SELECT patchPv_id AS PV_ID,
17521
        	   pv.PV_ID AS DPV_ID,
17522
               parPkg_id AS PKG_ID,
17523
               pv.PKG_ID AS DPKG_ID,
17524
               'L' AS BUILD_TYPE
17525
          FROM PACKAGE_VERSIONS pv
17526
         WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPatchDepCollector AS RELMGR_NUMBER_TAB_t ) ) );
17527
 
17528
 
17529
    END IF;
17530
 
17531
 
17532
    CLOSE parent_cur;
17533
    CLOSE patch_cur;
17534
END New_Patch;
4040 dpurdie 17535
 
1374 dpurdie 17536
/
4040 dpurdie 17537
--------------------------------------------------------
17538
--  DDL for Procedure NEW_UNIT_TEST
17539
--------------------------------------------------------
17540
set define off;
17541
 
5172 dpurdie 17542
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_UNIT_TEST" ( nPv_id IN NUMBER,
3959 dpurdie 17543
                                            nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,
17544
                                            sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
17545
                                            sNumOfTest IN UNIT_TESTS.NUMOF_TEST%TYPE,
17546
                                            sDpkg_path IN VARCHAR2,
17547
                                            sResults IN VARCHAR2,
17548
                                            sCompletion_date IN VARCHAR2,
17549
                                            nCompleted_by IN NUMBER,
17550
											enumTEST_TYPE_AUTOMATIC IN NUMBER,
17551
											enumTEST_TYPE_NOT_DONE IN NUMBER,
17552
											outFileName OUT VARCHAR2
17553
                                           ) IS
17554
/* ---------------------------------------------------------------------------
17555
    Version: 3.2.0
17556
   --------------------------------------------------------------------------- */
1373 dpurdie 17557
 
3959 dpurdie 17558
   	FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
1373 dpurdie 17559
 
3959 dpurdie 17560
    newID NUMBER;
17561
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
17562
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
1373 dpurdie 17563
 
3959 dpurdie 17564
BEGIN
1373 dpurdie 17565
 
3959 dpurdie 17566
	-- Get new ID --
17567
   	SELECT SEQ_UNIT_TESTS.NEXTVAL INTO newID FROM DUAL;
1373 dpurdie 17568
 
3959 dpurdie 17569
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
17570
       	ResultsURL := sResults;
17571
       ELSE
17572
       	IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
17573
        	outFileName := FILENAME_PREFIX || newID ||'_'|| sResults;
17574
    		ResultsAttachment := sDpkg_path || '/' || outFileName;
17575
           END IF;
17576
       END IF;
1373 dpurdie 17577
 
3959 dpurdie 17578
	-- Remove NOT_DONE entry if exists
17579
	DELETE FROM UNIT_TESTS
17580
	 WHERE pv_id = nPv_id
17581
	   AND test_types_fk = enumTEST_TYPE_NOT_DONE;
1373 dpurdie 17582
 
3959 dpurdie 17583
	--- Add Additional Note ---
17584
    INSERT INTO UNIT_TESTS ( TEST_ID,
17585
								PV_ID,
17586
								TEST_TYPES_FK,
17587
								TEST_SUMMARY,
17588
								COMPLETION_DATE,
17589
								COMPLETED_BY,
17590
								RESULTS_URL,
17591
								RESULTS_ATTACHMENT_NAME,
17592
								NUMOF_TEST )
17593
    VALUES (
17594
       	newID,
17595
           nPv_id,
17596
           nTestTypeId,
17597
           sTest_summary,
17598
           TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
17599
           nCompleted_by,
17600
           ResultsURL,
17601
           ResultsAttachment,
17602
		   sNumOfTest );
1373 dpurdie 17603
 
3959 dpurdie 17604
END New_Unit_Test;
4040 dpurdie 17605
 
1374 dpurdie 17606
/
4040 dpurdie 17607
--------------------------------------------------------
17608
--  DDL for Procedure PAOLO_BUILD_TREE
17609
--------------------------------------------------------
17610
set define off;
17611
 
5172 dpurdie 17612
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."PAOLO_BUILD_TREE" ( nRtag_id IN NUMBER ) IS
1373 dpurdie 17613
 
3959 dpurdie 17614
    sessionNumber NUMBER := 0;
6031 dpurdie 17615
    iteration NUMBER := 1;
3959 dpurdie 17616
    rowCnt NUMBER := 0;
17617
    maxIterations 	NUMBER := 50;
6031 dpurdie 17618
 
1373 dpurdie 17619
BEGIN
6031 dpurdie 17620
 
17621
 
3959 dpurdie 17622
    INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
17623
    SELECT sessionNumber, iteration, rc.PV_ID
17624
      FROM RELEASE_CONTENT rc
17625
     WHERE rc.RTAG_ID = nRtag_id;
6031 dpurdie 17626
 
3959 dpurdie 17627
    iteration := iteration + 1;
17628
    LOOP
6031 dpurdie 17629
 
3959 dpurdie 17630
        INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
6031 dpurdie 17631
		SELECT sessionNumber,
3959 dpurdie 17632
               iteration,
17633
               dep.DPV_ID
17634
          FROM TEMP_TREE_BROWSE ttb,
17635
               PACKAGE_DEPENDENCIES dep
6031 dpurdie 17636
         WHERE dep.PV_ID = ttb.PV_ID
17637
           AND ttb.LEVEL_NUM = iteration - 1
17638
 
17639
         MINUS
17640
 
3959 dpurdie 17641
        SELECT sessionNumber, iteration, ttb.PV_ID
6031 dpurdie 17642
          FROM TEMP_TREE_BROWSE ttb;
17643
 
17644
 
17645
 
17646
 
3959 dpurdie 17647
		rowCnt := SQL%ROWCOUNT;
17648
		IF rowCnt > 0 THEN
17649
           iteration := iteration + 1;
17650
		END IF;
17651
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
6031 dpurdie 17652
    END LOOP;
17653
 
3959 dpurdie 17654
END PAOLO_Build_Tree;
4040 dpurdie 17655
 
1374 dpurdie 17656
/
4040 dpurdie 17657
--------------------------------------------------------
5384 dpurdie 17658
--  DDL for Procedure REBUILD_DEPRECATE_STATE
17659
--------------------------------------------------------
17660
set define off;
17661
 
6031 dpurdie 17662
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REBUILD_DEPRECATE_STATE" ( nRtagId IN INT ) AS
5384 dpurdie 17663
BEGIN
6031 dpurdie 17664
 
5384 dpurdie 17665
  --  Clear the 'calculated' values from the Release Conetnts
17666
  --
17667
  UPDATE RELEASE_CONTENT
17668
      SET DEPRECATED_STATE = NULL
17669
  WHERE RTAG_ID =  nRtagId
6031 dpurdie 17670
  AND DEPRECATED_STATE != 6
5384 dpurdie 17671
  AND DEPRECATED_STATE is NOT NULL;
6031 dpurdie 17672
 
5384 dpurdie 17673
  --
17674
  --  Insert new calculated values into the table
17675
  --  Use of 'AAA' speeds up the CONNECT BY PRIOR query (lots)
17676
  UPDATE RELEASE_CONTENT
17677
      SET DEPRECATED_STATE = 7
17678
  WHERE RTAG_ID =  nRtagId
17679
  AND DEPRECATED_STATE is null
17680
  AND PV_ID in (
17681
        WITH AAA AS
17682
          (SELECT pd.*
17683
          FROM PACKAGE_DEPENDENCIES pd,
17684
            RELEASE_CONTENT RC1
17685
          WHERE rc1.rtag_id = nRtagId
17686
          AND RC1.PV_ID     = pd.PV_ID
17687
          )
17688
      SELECT DISTINCT qry.PV_ID
17689
      FROM
17690
        (SELECT dep.*,
17691
          LEVEL AS LEVEL_NUM
17692
        FROM AAA dep
6031 dpurdie 17693
          START WITH dep.DPV_ID IN (
5384 dpurdie 17694
                SELECT rc.pv_id as pv_id
17695
                FROM RELEASE_CONTENT rc
17696
                WHERE rc.rtag_id  = nRtagId
17697
                AND rc.DEPRECATED_STATE = 6 )
17698
          CONNECT BY PRIOR dep.PV_ID = dep.DPV_ID
17699
        ) qry,
17700
        PACKAGES pkg,
17701
        PACKAGE_VERSIONS pv,
17702
        RELEASE_CONTENT rc
17703
      WHERE qry.PV_ID          = pv.PV_ID
17704
      AND pv.PKG_ID            = pkg.PKG_ID
17705
      AND rc.RTAG_ID           = nRtagId
17706
      AND rc.PV_ID             = qry.PV_ID
17707
      );
17708
END REBUILD_DEPRECATE_STATE;
17709
 
17710
/
17711
--------------------------------------------------------
4040 dpurdie 17712
--  DDL for Procedure REBUILD_ENVIRONMENT
17713
--------------------------------------------------------
17714
set define off;
17715
 
5172 dpurdie 17716
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REBUILD_ENVIRONMENT" ( NNrtag_id IN NUMBER ) IS
5384 dpurdie 17717
  --
17718
  --  Recalculate the package_state
17719
  --  Triggered by the Web Interface
17720
  --
1373 dpurdie 17721
    rowCnt NUMBER := 0;
17722
    iteration NUMBER := 2;          -- Iterations counter
5384 dpurdie 17723
    maxIterations NUMBER := 30;     -- Maximum number of iterations allowed.
1373 dpurdie 17724
                                    -- This will prevent infinite loops if cyrcular dependencies are found
17725
    sessionNum NUMBER;
17726
BEGIN
17727
    SELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;
17728
 
17729
 
17730
    -- Redo Patch Ignore warnings
17731
    Ignore_Dependency_Warnings ( NNrtag_id, NULL, NULL, TRUE );
17732
 
5384 dpurdie 17733
    Level_One_Conflicts ( NNrtag_id, sessionNum );
17734
    --commit;
1373 dpurdie 17735
 
17736
    LOOP
17737
        Level_N_Conflicts ( NNrtag_id, sessionNum, rowCnt, iteration );
5384 dpurdie 17738
        --commit;
1373 dpurdie 17739
        iteration := iteration + 1;
17740
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
17741
    END LOOP;
6031 dpurdie 17742
 
1373 dpurdie 17743
    Update_Package_States ( NNrtag_id, sessionNum );
17744
 
5384 dpurdie 17745
    DELETE FROM temp_env_states WHERE session_num = sessionNum;
17746
    DELETE FROM TEMP_ENV_DEPS WHERE session_num = sessionNum;
1373 dpurdie 17747
 
17748
    -- Flag Packages with New Patches Available
17749
    Check_New_Patches ( NNrtag_id );
6031 dpurdie 17750
 
1373 dpurdie 17751
	Clean_Do_Not_Ripple( NNrtag_id );
17752
 
17753
 
17754
	/* Circular Dependency Flag */
17755
    /*
17756
	IF iteration > maxIterations
17757
	THEN
17758
		UPDATE release_tags SET
17759
		   	   circular_dependency = 'Y'
17760
		 WHERE rtag_id = NNrtag_id;
17761
	ELSE
17762
		UPDATE release_tags SET
17763
		   	   circular_dependency = NULL
17764
		 WHERE rtag_id = NNrtag_id;
17765
	END IF;
17766
    */
17767
END Rebuild_Environment;
4040 dpurdie 17768
 
1374 dpurdie 17769
/
4040 dpurdie 17770
--------------------------------------------------------
17771
--  DDL for Procedure REMOVE_COMPONENTS
17772
--------------------------------------------------------
17773
set define off;
17774
 
5172 dpurdie 17775
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_COMPONENTS" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE ) IS
3959 dpurdie 17776
/* ---------------------------------------------------------------------------
17777
    Version: 3.0.0
17778
   --------------------------------------------------------------------------- */
17779
 
17780
 
17781
BEGIN
17782
 
17783
	 --- Delete From RELEASE_COMPONENTS
17784
	 DELETE FROM RELEASE_COMPONENTS
17785
	 WHERE PV_ID = nPvId;
17786
 
17787
END Remove_Components;
4040 dpurdie 17788
 
3959 dpurdie 17789
/
4040 dpurdie 17790
--------------------------------------------------------
17791
--  DDL for Procedure REMOVE_DOCUMENT
17792
--------------------------------------------------------
17793
set define off;
17794
 
5172 dpurdie 17795
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_DOCUMENT" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 17796
											  nDocId IN PACKAGE_DOCUMENTS.DOC_ID%TYPE,
17797
                                              nUserId IN NUMBER ) IS
17798
/* ---------------------------------------------------------------------------
17799
    Version: 3.0
17800
   --------------------------------------------------------------------------- */
17801
 
17802
   DocNumber PACKAGE_DOCUMENTS.DOC_NUM%TYPE;
17803
 
17804
BEGIN
17805
 
17806
	-- Get Doc Num
17807
    SELECT pd.DOC_NUM INTO DocNumber
17808
      FROM PACKAGE_DOCUMENTS pd
17809
     WHERE pd.PV_ID = nPvId
17810
       AND pd.DOC_ID = nDocId;
17811
 
17812
 
17813
	-- Delete Document
17814
    DELETE
17815
      FROM PACKAGE_DOCUMENTS pd
17816
     WHERE pd.PV_ID = nPvId
17817
       AND pd.DOC_ID = nDocId;
17818
 
17819
 
17820
    /* LOG ACTION */
17821
   	Log_Action ( nPvId, 'document_remove', nUserId,
17822
   			     'Document number: '|| DocNumber );
17823
 
17824
 
17825
END Remove_Document;
4040 dpurdie 17826
 
3959 dpurdie 17827
/
4040 dpurdie 17828
--------------------------------------------------------
17829
--  DDL for Procedure REMOVE_PACKAGE_INTEREST
17830
--------------------------------------------------------
17831
set define off;
17832
 
5172 dpurdie 17833
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PACKAGE_INTEREST" (nProjId IN PROJECTS.PROJ_ID%TYPE,
3959 dpurdie 17834
	   	  		  								  	nPkgId IN PACKAGES.PKG_ID%TYPE,
17835
												  	nUserId IN NUMBER
17836
	   	  		  									) IS
17837
 
1373 dpurdie 17838
/******************************************************************************
3959 dpurdie 17839
   NAME:       REMOVE_PACKAGE_INTEREST
17840
   PURPOSE:    To remove interest in a given package per project
1373 dpurdie 17841
 
17842
   REVISIONS:
17843
   Ver        Date        Author           Description
17844
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 17845
   1.0        12/05/2006  Rupesh Solanki      1. Created this procedure.
1373 dpurdie 17846
 
17847
   NOTES:
17848
 
17849
   Automatically available Auto Replace Keywords:
3959 dpurdie 17850
      Object Name:     REMOVE_PACKAGE_INTEREST
17851
      Sysdate:         12/05/2006
17852
      Date and Time:   12/05/2006, 11:28:50 AM, and 12/05/2006 11:28:50 AM
1373 dpurdie 17853
      Username:         (set in TOAD Options, Procedure Editor)
17854
      Table Name:       (set in the "New PL/SQL Object" dialog)
17855
 
17856
******************************************************************************/
17857
BEGIN
17858
 
3959 dpurdie 17859
	 --Delete from PACKAGE_INTEREST
17860
	 DELETE FROM PACKAGE_INTEREST
17861
	 WHERE PROJ_ID = nProjId
17862
	 AND PKG_ID = nPkgId
17863
	 AND USER_ID = nUserId;
6031 dpurdie 17864
 
3959 dpurdie 17865
END REMOVE_PACKAGE_INTEREST;
4040 dpurdie 17866
 
1374 dpurdie 17867
/
4040 dpurdie 17868
--------------------------------------------------------
17869
--  DDL for Procedure REMOVE_PATCH
17870
--------------------------------------------------------
17871
set define off;
17872
 
5172 dpurdie 17873
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PATCH" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
3959 dpurdie 17874
										   nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
17875
                                           nUserId IN NUMBER ) IS
1373 dpurdie 17876
/* ---------------------------------------------------------------------------
3959 dpurdie 17877
    Version: 4.0
1373 dpurdie 17878
   --------------------------------------------------------------------------- */
17879
 
3959 dpurdie 17880
PatchVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
1373 dpurdie 17881
 
3959 dpurdie 17882
CURSOR curPatch IS
17883
	SELECT pp.PV_ID,
17884
		   pp.PATCH_ID,
17885
	       ROWNUM AS NEW_INSTALL_ORDER
17886
	  FROM PACKAGE_PATCHES pp
17887
	 WHERE pp.PV_ID = nPvId
17888
	ORDER BY pp.INSTALL_ORDER;
17889
recPatch curPatch%ROWTYPE;
17890
 
1373 dpurdie 17891
BEGIN
17892
 
3959 dpurdie 17893
	 -- Delete Patch
17894
     DELETE
17895
       FROM PACKAGE_PATCHES pp
17896
      WHERE pp.PV_ID = nPvId
17897
        AND pp.PATCH_ID = nPatchId;
1373 dpurdie 17898
 
17899
 
3959 dpurdie 17900
	-- Redo Install Order
17901
    OPEN curPatch;
17902
	FETCH curPatch INTO recPatch;
17903
 
17904
	WHILE curPatch%FOUND
17905
	LOOP
17906
 
17907
		UPDATE PACKAGE_PATCHES pp SET
17908
			pp.INSTALL_ORDER = recPatch.NEW_INSTALL_ORDER
17909
		WHERE pp.PV_ID = nPvId
17910
		  AND pp.PATCH_ID = recPatch.PATCH_ID;
17911
 
17912
		FETCH curPatch INTO recPatch;
17913
	END LOOP;
17914
 
17915
	CLOSE curPatch;
17916
 
17917
 
17918
 
17919
 
17920
    /* LOG ACTION */
17921
    SELECT pv.PKG_VERSION INTO PatchVersion
1373 dpurdie 17922
      FROM PACKAGE_VERSIONS pv
3959 dpurdie 17923
     WHERE pv.PV_ID = nPatchId;
1373 dpurdie 17924
 
3959 dpurdie 17925
   	Log_Action ( nPvId, 'patch_remove', nUserId,
17926
   			     'Version: '|| PatchVersion );
1373 dpurdie 17927
 
3959 dpurdie 17928
END Remove_Patch;
4040 dpurdie 17929
 
1374 dpurdie 17930
/
4040 dpurdie 17931
--------------------------------------------------------
17932
--  DDL for Procedure REMOVE_PROJECT_VIEW_OWNER
17933
--------------------------------------------------------
17934
set define off;
17935
 
5172 dpurdie 17936
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PROJECT_VIEW_OWNER" (nProjId IN NUMBER,
3959 dpurdie 17937
	   	  		  						 			  nViewId IN NUMBER,
17938
										 			  sUserIdList IN VARCHAR2,
17939
										 			  nUserId IN NUMBER ) IS
1373 dpurdie 17940
 
6031 dpurdie 17941
GroupId NUMBER;
3959 dpurdie 17942
 
6031 dpurdie 17943
 
17944
 
1373 dpurdie 17945
/******************************************************************************
3959 dpurdie 17946
   NAME:       UPDATE_VIEW
6031 dpurdie 17947
   PURPOSE:
1373 dpurdie 17948
 
17949
   REVISIONS:
3959 dpurdie 17950
   Ver        Date        Author           		Description
1373 dpurdie 17951
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 17952
   1.0        10/04/2006     Rupesh Solanki     1. Created this procedure.
1373 dpurdie 17953
 
17954
   NOTES:
17955
 
17956
   Automatically available Auto Replace Keywords:
3959 dpurdie 17957
      Object Name:     UPDATE_VIEW
17958
      Sysdate:         10/04/2006
17959
      Date and Time:   10/04/2006, 1:55:19 PM, and 10/04/2006 1:55:19 PM
1373 dpurdie 17960
      Username:         (set in TOAD Options, Procedure Editor)
17961
      Table Name:       (set in the "New PL/SQL Object" dialog)
17962
 
17963
******************************************************************************/
17964
 
17965
BEGIN
3959 dpurdie 17966
	 SELECT GROUP_EMAIL_ID into GroupId
17967
	 FROM AUTOBUILD_FAILURE
17968
	 WHERE PROJ_ID = nProjId
17969
	 AND VIEW_ID = nViewId;
6031 dpurdie 17970
 
3959 dpurdie 17971
	 DELETE FROM MEMBERS_GROUP
17972
	 WHERE GROUP_EMAIL_ID = GroupId
17973
	 AND USER_ID IN (
6031 dpurdie 17974
	 SELECT * FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
3959 dpurdie 17975
	 );
1373 dpurdie 17976
 
6031 dpurdie 17977
 
17978
 
3959 dpurdie 17979
END REMOVE_PROJECT_VIEW_OWNER;
4040 dpurdie 17980
 
3959 dpurdie 17981
/
4040 dpurdie 17982
--------------------------------------------------------
17983
--  DDL for Procedure REMOVE_RELEASE_CONTENT
17984
--------------------------------------------------------
17985
set define off;
17986
 
5172 dpurdie 17987
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_RELEASE_CONTENT" ( sPvIdList IN VARCHAR2,
3959 dpurdie 17988
													 sNotPvIdList IN VARCHAR2,
17989
                                                     nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS
17990
/* ---------------------------------------------------------------------------
17991
    Version: 3.0
17992
   --------------------------------------------------------------------------- */
1373 dpurdie 17993
 
3959 dpurdie 17994
oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
17995
oNotPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
1373 dpurdie 17996
 
3959 dpurdie 17997
BEGIN
17998
	oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
17999
    oNotPvIdCollector := IN_LIST_NUMBER ( sNotPvIdList );
18000
 
18001
    -- Delete From Release Content
18002
    DELETE
18003
      FROM RELEASE_CONTENT
18004
	 WHERE rtag_id = nRTagId
18005
	   AND pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
18006
	   AND NOT pv_id IN ( SELECT * FROM TABLE ( CAST ( oNotPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
18007
 
18008
 
18009
 
18010
END Remove_Release_Content;
4040 dpurdie 18011
 
1374 dpurdie 18012
/
4040 dpurdie 18013
--------------------------------------------------------
18014
--  DDL for Procedure REMOVE_RUNTIME
18015
--------------------------------------------------------
18016
set define off;
18017
 
5172 dpurdie 18018
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_RUNTIME" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 18019
											 nRuntimeId IN RUNTIME_DEPENDENCIES.RTD_ID%TYPE,
18020
                                             nUserId IN NUMBER ) IS
18021
/* ---------------------------------------------------------------------------
18022
    Version: 3.0
18023
   --------------------------------------------------------------------------- */
18024
 
18025
   RuntimeDependency VARCHAR2(4000);
18026
 
18027
BEGIN
18028
 
18029
	-- Get Runtime dependency
18030
    SELECT pkg.PKG_NAME ||' '|| pv.PKG_VERSION  INTO RuntimeDependency
18031
	  FROM RUNTIME_DEPENDENCIES rtd,
18032
	  	   PACKAGES pkg,
18033
	       PACKAGE_VERSIONS pv
18034
	 WHERE rtd.PV_ID = nPvId
18035
	   AND pv.PKG_ID = pkg.PKG_ID
18036
	   AND rtd.RTD_ID = pv.PV_ID
18037
	   AND rtd.RTD_ID = nRuntimeId;
18038
 
18039
 
18040
	-- Delete Document
18041
    DELETE
18042
      FROM RUNTIME_DEPENDENCIES rtd
18043
     WHERE rtd.PV_ID = nPvId
18044
       AND rtd.RTD_ID = nRuntimeId;
18045
 
18046
 
18047
    /* LOG ACTION */
18048
   	Log_Action ( nPvId, 'runtime_remove', nUserId,
18049
   			     'Runtime package: '|| RuntimeDependency );
18050
 
18051
 
18052
END Remove_Runtime;
4040 dpurdie 18053
 
3959 dpurdie 18054
/
4040 dpurdie 18055
--------------------------------------------------------
18056
--  DDL for Procedure RENAME_PACKAGE_VERSION
18057
--------------------------------------------------------
18058
set define off;
18059
 
5172 dpurdie 18060
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RENAME_PACKAGE_VERSION" ( NNpv_id IN NUMBER,
4211 dpurdie 18061
                                  SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
18062
                                  cBuildType IN CHAR,
18063
                                  cChangeType IN CHAR,
18064
                                  NNuser_id IN NUMBER,
18065
                                  errMessage OUT VARCHAR2 ) IS
3959 dpurdie 18066
/* ---------------------------------------------------------------------------
18067
    Version: 3.2
18068
   --------------------------------------------------------------------------- */
18069
 
18070
    sPackageVersion VARCHAR2(4000);
4211 dpurdie 18071
    sLabel VARCHAR2(4000) := NULL;
18072
    sChangeType VARCHAR2(100) := NULL;
18073
    uChangeType CHAR := cChangeType;
3959 dpurdie 18074
    OldPkgVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
18075
 
18076
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
18077
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
18078
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
18079
 
18080
    CURSOR package_versions_cur IS
18081
        SELECT pv_id
4211 dpurdie 18082
          FROM package_versions
18083
         WHERE pkg_id IN ( SELECT pkg_id FROM package_versions WHERE pv_id = NNpv_id )
18084
           AND pkg_version = SSpkg_version;
3959 dpurdie 18085
    package_versions_rec package_versions_cur%ROWTYPE;
18086
 
18087
 
18088
BEGIN
18089
 
18090
    /* ---------------------------------------------------- */
18091
    /* Find if package_version exists                       */
18092
    /* ---------------------------------------------------- */
18093
 
4211 dpurdie 18094
    errMessage := NULL;
3959 dpurdie 18095
 
4211 dpurdie 18096
    -- Get previous version
18097
    SELECT pv.PKG_VERSION INTO OldPkgVersion
3959 dpurdie 18098
      FROM PACKAGE_VERSIONS pv
18099
     WHERE pv.PV_ID = NNpv_id;
18100
 
4211 dpurdie 18101
    sPackageVersion := SSpkg_version;
3959 dpurdie 18102
 
4211 dpurdie 18103
    IF OldPkgVersion != sPackageVersion THEN
3959 dpurdie 18104
 
4211 dpurdie 18105
        OPEN package_versions_cur;
18106
        FETCH package_versions_cur INTO package_versions_rec;
3959 dpurdie 18107
 
4211 dpurdie 18108
        IF package_versions_cur%NOTFOUND
18109
        THEN
3959 dpurdie 18110
 
4211 dpurdie 18111
            -- Split current version in parts
18112
            Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
3959 dpurdie 18113
 
18114
 
4211 dpurdie 18115
                -- Automated built config
18116
                IF ( cBuildType = 'M' ) THEN
18117
                    uChangeType := 'F';
6031 dpurdie 18118
                END IF;
18119
 
4211 dpurdie 18120
                -- Automated version numbering
18121
                -- Make sure that version is still unique
18122
                IF (uChangeType != 'F') THEN
18123
                    sPackageVersion := '('|| NNpv_id ||')'|| SSV_EXT;
18124
                END IF;
3959 dpurdie 18125
 
4211 dpurdie 18126
                -- Packge version not found, hence rename it.
18127
                UPDATE package_versions
18128
                   SET pkg_version = sPackageVersion,
18129
                       v_mm = SSV_MM,
18130
                       v_nmm = SSV_NMM,
18131
                       v_ext = SSV_EXT,
18132
                       modified_stamp = ORA_SYSDATETIME,
18133
                       modifier_id = NNuser_id,
18134
                       build_type = cBuildType,
18135
                       change_type = uChangeType,
18136
                       pkg_label = NULL
18137
                 WHERE pv_id = NNpv_id;
6031 dpurdie 18138
 
4211 dpurdie 18139
                sLabel := GET_AUTOMATED_LABEL( NNpv_id );
18140
                UPDATE PACKAGE_VERSIONS pv SET
18141
                    pv.PKG_LABEL = sLabel
18142
                WHERE pv_id = NNpv_id;
3959 dpurdie 18143
 
18144
 
4211 dpurdie 18145
              /* LOG ACTION */
18146
              IF (cChangeType = 'F') THEN
18147
                  Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| sPackageVersion );
6031 dpurdie 18148
              ELSE
18149
 
4211 dpurdie 18150
                  IF cChangeType = 'M' THEN
18151
                    sChangeType := 'Major Change';
6031 dpurdie 18152
                  ELSIF cChangeType = 'N' THEN
4211 dpurdie 18153
                    sChangeType := 'Minor Change';
6031 dpurdie 18154
                  ELSIF cChangeType = 'P' THEN
4211 dpurdie 18155
                    sChangeType := 'Patch Change';
18156
                  ELSE
18157
                    sChangeType := 'Unknown Change';
18158
                  END IF;
3959 dpurdie 18159
 
4211 dpurdie 18160
                  Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| sPackageVersion || ',' || sChangeType );
18161
              END IF;
3959 dpurdie 18162
 
4211 dpurdie 18163
        ELSE
18164
            -- Package version exists. Cannot proceed.
18165
            errMessage := 'enum_MSG_VERSION_EXISTS';
3959 dpurdie 18166
 
4211 dpurdie 18167
        END IF;
3959 dpurdie 18168
 
4211 dpurdie 18169
        CLOSE package_versions_cur;
3959 dpurdie 18170
 
4211 dpurdie 18171
    END IF;
3959 dpurdie 18172
 
18173
END Rename_Package_Version;
4040 dpurdie 18174
 
3959 dpurdie 18175
/
4040 dpurdie 18176
--------------------------------------------------------
18177
--  DDL for Procedure RESET_IGNORE_WARNINGS
18178
--------------------------------------------------------
18179
set define off;
18180
 
5172 dpurdie 18181
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RESET_IGNORE_WARNINGS" ( sPvIdList IN VARCHAR2,
3959 dpurdie 18182
                                                    nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS
18183
/* ---------------------------------------------------------------------------
18184
    Version: 5.0
18185
   --------------------------------------------------------------------------- */
18186
 
18187
oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
18188
 
18189
BEGIN
18190
	oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
18191
 
18192
    -- Remove Ignore Warnings
18193
     DELETE
18194
       FROM ignore_warnings
18195
	  WHERE (rtag_id, pv_id, dpv_id) IN
18196
	     (
18197
	      SELECT igw.rtag_id, igw.pv_id, igw.dpv_id
18198
	        FROM ignore_warnings igw,
18199
	             package_versions dpv,
18200
	             package_versions pv
18201
	       WHERE igw.dpv_id = dpv.pv_id
18202
	         AND igw.rtag_id = nRTagId
18203
	         AND dpv.pkg_id = pv.pkg_id
18204
	         AND NVL(dpv.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|')
18205
	         AND pv.pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
18206
         );
18207
 
18208
END Reset_Ignore_Warnings;
4040 dpurdie 18209
 
3959 dpurdie 18210
/
4040 dpurdie 18211
--------------------------------------------------------
18212
--  DDL for Procedure RIPPLE_PACKAGE
18213
--------------------------------------------------------
18214
set define off;
18215
 
5172 dpurdie 18216
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RIPPLE_PACKAGE" (
3959 dpurdie 18217
        sPvIdList IN VARCHAR2,
18218
        nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
18219
        nUserId IN NUMBER
18220
    ) IS
18221
/* ---------------------------------------------------------------------------
18222
    Version: 4.1
18223
   --------------------------------------------------------------------------- */
18224
 
18225
BEGIN
18226
 
18227
    IF (sPvIdList IS NULL) THEN
18228
        RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
18229
    END IF;
18230
 
18231
    -- Ripple Package
18232
    DELETE FROM DO_NOT_RIPPLE
18233
    WHERE RTAG_ID = nRtagId
18234
    AND PV_ID IN (
18235
        SELECT *
18236
        FROM THE (
18237
            SELECT CAST( IN_LIST_NUMBER( sPvIdList )
18238
            AS RELMGR_NUMBER_TAB_t )
18239
            FROM DUAL
18240
        )
18241
    );
18242
 
5172 dpurdie 18243
    -- Mark Release Changed for build
18244
    PK_RELEASE.SET_RELEASE_MODIFIED(nRtagId);
6031 dpurdie 18245
 
3959 dpurdie 18246
    /* LOG ACTION */
18247
    Log_Action_Bulk ( sPvIdList, 'ripple_package', nUserId );
18248
 
18249
END Ripple_Package;
4040 dpurdie 18250
 
3959 dpurdie 18251
/
4040 dpurdie 18252
--------------------------------------------------------
18253
--  DDL for Procedure SEED_PACKAGE_NAMES_VERSIONS
18254
--------------------------------------------------------
18255
set define off;
18256
 
5172 dpurdie 18257
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
4585 dpurdie 18258
                                          SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
18259
                                          NNuser_id IN NUMBER,
18260
                                          retPV_ID OUT NUMBER,
18261
                                          nCloneFromPvId IN NUMBER DEFAULT NULL,
6031 dpurdie 18262
                                          nBuildType IN CHAR DEFAULT 'U',
4585 dpurdie 18263
                                          nChangeType IN CHAR DEFAULT 'F') IS
3959 dpurdie 18264
/* ---------------------------------------------------------------------------
5172 dpurdie 18265
    Version: 5.0
3959 dpurdie 18266
   --------------------------------------------------------------------------- */
18267
 
18268
    parPkg_id   NUMBER;
18269
    parPv_id    NUMBER;
18270
    cloneFrom_pv_id NUMBER;
18271
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
18272
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
18273
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
18274
    spackageversion VARCHAR2 (4000);
4211 dpurdie 18275
    slabel VARCHAR2 (4000) := NULL;
6031 dpurdie 18276
 
3959 dpurdie 18277
    CURSOR packages_cur IS
18278
        SELECT pkg_id FROM PACKAGES
18279
        WHERE pkg_name = SSpkg_name;
18280
    packages_rec packages_cur%ROWTYPE;
18281
 
18282
    CURSOR package_versions_cur IS
18283
        SELECT pv_id FROM PACKAGE_VERSIONS
18284
        WHERE pkg_id = parPkg_id
18285
        AND pkg_version = SSpkg_version;
18286
    package_versions_rec package_versions_cur%ROWTYPE;
18287
 
18288
    CURSOR clone_package_versions_cur IS
18289
        SELECT MAX(pv_id) AS pv_id
18290
          FROM PACKAGE_VERSIONS
18291
         WHERE pkg_id = parPkg_id
18292
           AND NVL(v_ext,'LINK_A_NULL') = NVL(SSV_EXT,'LINK_A_NULL');
18293
    clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
18294
 
18295
BEGIN
18296
    /* -------------------------------------------- */
18297
    /* Find if pkg_name exists and seed if required */
18298
    /* -------------------------------------------- */
18299
    OPEN packages_cur;
18300
    FETCH packages_cur INTO packages_rec;
18301
 
18302
    IF packages_cur%NOTFOUND
18303
    THEN
18304
        /* INSERT into packages table */
18305
        SELECT SEQ_PKG_ID.NEXTVAL INTO parPkg_id FROM DUAL;
18306
        INSERT INTO PACKAGES ( pkg_id, pkg_name ) VALUES ( parPkg_id, SSpkg_name );
18307
 
18308
    ELSE
18309
        parPkg_id := packages_rec.pkg_id;
18310
 
18311
    END IF;
18312
 
18313
    CLOSE packages_cur;
18314
 
18315
 
18316
    /* ---------------------------------------------------- */
18317
    /* Find if package_version exists and seed if required  */
18318
    /* ---------------------------------------------------- */
18319
    OPEN package_versions_cur;
18320
    FETCH package_versions_cur INTO package_versions_rec;
18321
 
18322
    IF package_versions_cur%NOTFOUND
18323
    THEN
18324
        SELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;
18325
 
18326
        /* Generate automated version Number */
18327
        Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
18328
        spackageversion := SSpkg_version;
6031 dpurdie 18329
 
4211 dpurdie 18330
        IF ( nChangeType <> 'F' )
3959 dpurdie 18331
        THEN
18332
            spackageversion := '(' || parPv_id || ')' || SSV_EXT;
18333
        END If;
18334
 
4585 dpurdie 18335
        /*  Determine clone source for new package-version
18336
            Use nCloneFromPvId - iff provided
18337
            Use most recently created pkgName/pkgExtension - if it exists
18338
            Else create a brand new package-version
18339
        */
3959 dpurdie 18340
 
4585 dpurdie 18341
        IF ( NOT nCloneFromPvId IS NULL) THEN
18342
            cloneFrom_pv_id := nCloneFromPvId;
18343
        ELSE
18344
            /* Find similar pkg_name + ext to clone from */
18345
            OPEN clone_package_versions_cur;
18346
            FETCH clone_package_versions_cur INTO clone_package_versions_rec;
18347
            CLOSE clone_package_versions_cur;
3959 dpurdie 18348
 
4585 dpurdie 18349
            IF ( NOT clone_package_versions_rec.pv_id IS NULL) THEN
18350
                cloneFrom_pv_id := clone_package_versions_rec.pv_id;
3959 dpurdie 18351
            ELSE
4585 dpurdie 18352
                cloneFrom_pv_id := NULL;
3959 dpurdie 18353
            END IF;
18354
 
4585 dpurdie 18355
        END IF;
18356
 
18357
        IF NOT cloneFrom_pv_id IS NULL
18358
        THEN
3959 dpurdie 18359
            -- Clone Package Version Details --
18360
            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,
18361
                                           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  )
18362
                SELECT parPv_id         AS pv_id,
18363
                       parPkg_id        AS pkg_id,
18364
                       spackageversion  AS pkg_version,
18365
                       'N'              AS dlocked,
18366
                       Ora_Sysdate      AS created_stamp,
18367
                       NNuser_id        AS creator_id,
18368
                       Ora_Sysdatetime  AS modified_stamp,
18369
                       NNuser_id        AS modifier_id,
18370
                       SSV_MM           AS V_MM,
18371
                       SSV_NMM          AS V_NMM,
18372
                       SSV_EXT          AS V_EXT,
18373
                       pv.src_path,
18374
                       pv.pv_description,
18375
                       pv.PV_OVERVIEW,
18376
                       cloneFrom_pv_id  AS LAST_PV_ID,
18377
                       pv.owner_id,
18378
                       nBuildType       AS BUILD_TYPE,
18379
                       pv.IS_BUILD_ENV_REQUIRED,
18380
                       pv.BS_ID,
18381
                       pv.is_autobuildable,
6031 dpurdie 18382
                       pv.IS_DEPLOYABLE,
3959 dpurdie 18383
                       pv.ripple_field,
18384
                       nChangeType       AS change_type
18385
                  FROM PACKAGE_VERSIONS pv
18386
                 WHERE pv.pv_id = cloneFrom_pv_id;
18387
 
18388
            Basic_Clone ( cloneFrom_pv_id, parPv_id, NULL, NNuser_id, parPkg_id, 0 );
18389
 
18390
        ELSE
18391
            /* BRAND NEW version + ext */
18392
            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 )
18393
            VALUES (
18394
                    parPv_id,
18395
                    parPkg_id,
18396
                    spackageversion,
18397
                    'N',
18398
                    Ora_Sysdate,
18399
                    NNuser_id,
18400
                    Ora_Sysdatetime,
18401
                    NNuser_id,
18402
                    SSV_MM,
18403
                    SSV_NMM,
18404
                    SSV_EXT,
18405
                    NNuser_id,
18406
                    parPv_id,
18407
                    nBuildType,
18408
                    'b',
18409
                    nChangeType
18410
                   );
18411
        END IF;
18412
 
4211 dpurdie 18413
        /* Insert initial package label */
18414
        slabel := get_automated_label (parPv_id);
18415
        UPDATE package_versions pv
18416
        SET pv.pkg_label = slabel
18417
        WHERE pv.pv_id = parPv_id;
18418
 
3959 dpurdie 18419
        retPV_ID := parPv_id;
6031 dpurdie 18420
 
18421
        /* LOG ACTION */
18422
        Log_Action ( parPv_id, 'new_version', NNuser_id,
18423
                     'New package version: '|| spackageversion );
3959 dpurdie 18424
 
18425
    ELSE
18426
        retPV_ID := package_versions_rec.pv_id;
18427
 
18428
    END IF;
18429
 
18430
    CLOSE package_versions_cur;
18431
 
18432
END Seed_Package_Names_Versions;
4040 dpurdie 18433
 
3959 dpurdie 18434
/
5892 dpurdie 18435
 
18436
  GRANT EXECUTE ON "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 18437
--------------------------------------------------------
18438
--  DDL for Procedure SET_ADVISORY_RIPPLE
18439
--------------------------------------------------------
18440
set define off;
18441
 
5172 dpurdie 18442
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
1373 dpurdie 18443
	   	  		  							   nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
18444
											 nUserId IN NUMBER ) IS
18445
/* ---------------------------------------------------------------------------
18446
    Version: 4.0
18447
   --------------------------------------------------------------------------- */
18448
 
18449
BEGIN
18450
 
3959 dpurdie 18451
    -- Set Advisory Ripple Package
18452
    INSERT INTO ADVISORY_RIPPLE (RTAG_ID, PV_ID)
18453
	VALUES (nRtagId, nPvId);
1373 dpurdie 18454
 
18455
    /* LOG ACTION */
3959 dpurdie 18456
   	Log_Action ( nPvId, 'set_advisory_ripple', nUserId );
6031 dpurdie 18457
 
1373 dpurdie 18458
	/*Rebuild_Environment(nRtagId);*/
18459
 
3959 dpurdie 18460
END Set_Advisory_Ripple;
4040 dpurdie 18461
 
1374 dpurdie 18462
/
4040 dpurdie 18463
--------------------------------------------------------
18464
--  DDL for Procedure SET_PACKAGE_BUILD_ENV
18465
--------------------------------------------------------
18466
set define off;
18467
 
5172 dpurdie 18468
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,
3959 dpurdie 18469
	   	  		  								  	sBuildEnvIdList IN VARCHAR2 ) IS
1373 dpurdie 18470
/* ---------------------------------------------------------------------------
3959 dpurdie 18471
    Last Modified: Rupesh Solanki
18472
	Version: 3.0.1
1373 dpurdie 18473
   --------------------------------------------------------------------------- */
18474
 
18475
 
18476
BEGIN
18477
 
3959 dpurdie 18478
   -- Delete Current Build Env settings
18479
   DELETE FROM PACKAGE_BUILD_ENV
18480
   WHERE pv_id = nPvId;
6031 dpurdie 18481
 
3959 dpurdie 18482
   -- Delet Current Package Build Info Settings
18483
   DELETE FROM PACKAGE_BUILD_INFO
18484
   WHERE pv_id = nPvId;
1373 dpurdie 18485
 
3959 dpurdie 18486
   -- Reset flag to N
18487
   UPDATE PACKAGE_VERSIONS SET
18488
	   IS_BUILD_ENV_REQUIRED = 'N'
18489
   WHERE PV_ID = nPvId;
1373 dpurdie 18490
 
18491
 
3959 dpurdie 18492
   -- Set new Build Env
18493
   IF NOT sBuildEnvIdList IS NULL THEN
18494
   	  -- Insert into PACKAGE_BUILD_ENV
18495
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
18496
	  SELECT nPvId AS PV_ID,
18497
	  		 be.BE_ID
18498
	    FROM BUILD_ENVIRONMENTS be
18499
	   WHERE be.BE_ID IN (
18500
	   		 		  	   SELECT *
18501
					   	     FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
18502
	   		 		  	 );
6031 dpurdie 18503
 
3959 dpurdie 18504
   	  -- Insert into PACKAGE_BUILD_INFO
18505
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
18506
	  SELECT nPvId AS PV_ID,
18507
	  		 be.BM_ID
18508
	    FROM BUILD_MACHINES be
18509
	   WHERE be.BM_ID IN (
18510
	   		 		  	   SELECT *
18511
					   	     FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
6031 dpurdie 18512
	   		 		  	 );
1373 dpurdie 18513
 
3959 dpurdie 18514
	   -- Set flag to Y
18515
	   UPDATE PACKAGE_VERSIONS SET
18516
		   IS_BUILD_ENV_REQUIRED = 'Y'
18517
	   WHERE PV_ID = nPvId;
1373 dpurdie 18518
 
3959 dpurdie 18519
   END IF;
1373 dpurdie 18520
 
18521
 
3959 dpurdie 18522
END Set_Package_Build_Env;
4040 dpurdie 18523
 
1374 dpurdie 18524
/
4040 dpurdie 18525
--------------------------------------------------------
18526
--  DDL for Procedure SET_PACKAGE_BUILD_ENV_TEMP
18527
--------------------------------------------------------
18528
set define off;
18529
 
5172 dpurdie 18530
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV_TEMP" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,
1373 dpurdie 18531
	   	  		  								  	   	 sBuildEnvIdList IN VARCHAR2,
6031 dpurdie 18532
														 nBuildStandard IN PACKAGE_VERSIONS.BS_ID%TYPE
1373 dpurdie 18533
														 ) IS
18534
/* ---------------------------------------------------------------------------
18535
    Last Modified: Rupesh Solanki
18536
	Version: 3.0.1
18537
   --------------------------------------------------------------------------- */
6031 dpurdie 18538
 
18539
   nBsCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
1373 dpurdie 18540
   BsId NUMBER;
18541
   HackBsId NUMBER;
18542
 
18543
 
18544
BEGIN
18545
 
18546
   nBsCollector := IN_LIST_NUMBER ( sBuildEnvIdList );
18547
 
18548
   -- Delete Current Build Env settings
18549
   DELETE FROM PACKAGE_BUILD_ENV
18550
   WHERE pv_id = nPvId;
6031 dpurdie 18551
 
1373 dpurdie 18552
   -- Delet Current Package Build Info Settings
18553
   DELETE FROM PACKAGE_BUILD_INFO
18554
   WHERE pv_id = nPvId;
18555
 
18556
   -- Reset flag to N
18557
   UPDATE PACKAGE_VERSIONS SET
18558
	   IS_BUILD_ENV_REQUIRED = 'N'
18559
   WHERE PV_ID = nPvId;
18560
 
18561
 
18562
   -- Set new Build Env
18563
   IF NOT sBuildEnvIdList IS NULL THEN
18564
	FOR i IN 1..nBsCollector.COUNT
6031 dpurdie 18565
	LOOP
18566
 
1373 dpurdie 18567
	BsId := nBsCollector(i);
6031 dpurdie 18568
 
1373 dpurdie 18569
	IF nBuildStandard = 2 THEN
18570
	   IF BsId = 1 THEN
18571
	   	  HackBsId := 11;
18572
	   ELSE
18573
	   	  HackBsId := 12;
18574
	   END IF;
6031 dpurdie 18575
 
1373 dpurdie 18576
   	  -- Insert into PACKAGE_BUILD_ENV
18577
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
18578
	  SELECT nPvId AS PV_ID,
18579
	  		 be.BE_ID
18580
	    FROM BUILD_ENVIRONMENTS be
18581
	   WHERE be.BE_ID IN ( HackBsId );
6031 dpurdie 18582
 
1373 dpurdie 18583
   	  -- Insert into PACKAGE_BUILD_INFO
18584
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
18585
	  SELECT nPvId AS PV_ID,
18586
	  		 be.BM_ID
18587
	    FROM BUILD_MACHINES be
6031 dpurdie 18588
	   WHERE be.BM_ID IN ( BsId );
1373 dpurdie 18589
 
18590
	   -- Set flag to Y
18591
	   UPDATE PACKAGE_VERSIONS SET
18592
		   IS_BUILD_ENV_REQUIRED = 'Y'
6031 dpurdie 18593
	   WHERE PV_ID = nPvId;
18594
 
18595
 
1373 dpurdie 18596
	ELSE
6031 dpurdie 18597
 
1373 dpurdie 18598
   	  -- Insert into PACKAGE_BUILD_ENV
18599
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
18600
	  SELECT nPvId AS PV_ID,
18601
	  		 be.BE_ID
18602
	    FROM BUILD_ENVIRONMENTS be
18603
	   WHERE be.BE_ID IN ( BsId );
6031 dpurdie 18604
 
1373 dpurdie 18605
   	  -- Insert into PACKAGE_BUILD_INFO
18606
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
18607
	  SELECT nPvId AS PV_ID,
18608
	  		 be.BM_ID
18609
	    FROM BUILD_MACHINES be
6031 dpurdie 18610
	   WHERE be.BM_ID IN ( BsId );
1373 dpurdie 18611
 
18612
	   -- Set flag to Y
18613
	   UPDATE PACKAGE_VERSIONS SET
18614
		   IS_BUILD_ENV_REQUIRED = 'Y'
18615
	   WHERE PV_ID = nPvId;
18616
 
6031 dpurdie 18617
	END IF;
18618
 
18619
 
18620
	END LOOP;
18621
 
1373 dpurdie 18622
   END IF;
18623
 
18624
 
18625
END Set_Package_Build_Env_Temp;
4040 dpurdie 18626
 
1374 dpurdie 18627
/
4040 dpurdie 18628
--------------------------------------------------------
18629
--  DDL for Procedure SET_TO_AUTOBUILDABLE
18630
--------------------------------------------------------
18631
set define off;
18632
 
5172 dpurdie 18633
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_TO_AUTOBUILDABLE" (
3959 dpurdie 18634
   nrtagid     IN   NUMBER,
18635
   spvidlist   IN   VARCHAR2
18636
)
18637
IS
18638
/******************************************************************************
18639
   NAME:       SET_TO_AUTOBUILDABLE
18640
   PURPOSE:
1373 dpurdie 18641
 
3959 dpurdie 18642
   REVISIONS:
18643
   Ver        Date        Author           Description
18644
   ---------  ----------  ---------------  ------------------------------------
18645
   1.0        15/12/2006   Rupesh Solanki       1. Created this procedure.
1373 dpurdie 18646
 
3959 dpurdie 18647
   NOTES:
1373 dpurdie 18648
 
3959 dpurdie 18649
   Automatically available Auto Replace Keywords:
18650
      Object Name:     SET_TO_AUTOBUILDABLE
18651
      Sysdate:         15/12/2006
18652
      Date and Time:   15/12/2006, 11:42:29 AM, and 15/12/2006 11:42:29 AM
18653
      Username:         (set in TOAD Options, Procedure Editor)
18654
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 18655
 
3959 dpurdie 18656
******************************************************************************/
18657
   npvidcollector   relmgr_number_tab_t := relmgr_number_tab_t ();
18658
   PvId NUMBER;
1373 dpurdie 18659
BEGIN
18660
 
3959 dpurdie 18661
   npvidcollector := in_list_number2 (spvidlist);
6031 dpurdie 18662
 
3959 dpurdie 18663
   UPDATE package_versions
18664
      SET is_autobuildable = 'N'
18665
    WHERE pv_id IN (SELECT pv_id
18666
                      FROM release_content
18667
                     WHERE rtag_id = nrtagid);
1373 dpurdie 18668
 
6031 dpurdie 18669
 
18670
 
3959 dpurdie 18671
   	FOR i IN 1..npvidcollector.COUNT
18672
	LOOP
18673
		PvId := npvidcollector(i);
1373 dpurdie 18674
 
3959 dpurdie 18675
		UPDATE package_versions
18676
		set is_autobuildable = 'Y'
18677
		where pv_id = PvId;
1373 dpurdie 18678
 
3959 dpurdie 18679
	END LOOP;
6031 dpurdie 18680
 
18681
 
3959 dpurdie 18682
END set_to_autobuildable;
4040 dpurdie 18683
 
3959 dpurdie 18684
/
4040 dpurdie 18685
--------------------------------------------------------
18686
--  DDL for Procedure SHIFT_INSTALL_ORDER
18687
--------------------------------------------------------
18688
set define off;
18689
 
5172 dpurdie 18690
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SHIFT_INSTALL_ORDER" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
3959 dpurdie 18691
												  nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
18692
                                                  nToInstallOrder IN PACKAGE_PATCHES.INSTALL_ORDER%TYPE ) IS
18693
/* ---------------------------------------------------------------------------
18694
    Version: 3.0
18695
   --------------------------------------------------------------------------- */
1373 dpurdie 18696
 
3959 dpurdie 18697
currInstallOrder NUMBER;
18698
FromInstallOrder NUMBER;
1373 dpurdie 18699
 
3959 dpurdie 18700
BEGIN
1373 dpurdie 18701
 
3959 dpurdie 18702
	 -- Get Current Install Order
18703
     SELECT pp.INSTALL_ORDER INTO currInstallOrder
18704
       FROM PACKAGE_PATCHES pp
18705
      WHERE pp.PV_ID = nPvId
18706
        AND pp.PATCH_ID = nPatchId;
1373 dpurdie 18707
 
18708
 
3959 dpurdie 18709
	 IF currInstallOrder > nToInstallOrder
18710
	 THEN
1373 dpurdie 18711
 
3959 dpurdie 18712
		FromInstallOrder := nToInstallOrder;
1373 dpurdie 18713
 
3959 dpurdie 18714
	    -- Shift others Up
18715
		UPDATE PACKAGE_PATCHES pp SET
18716
			   pp.INSTALL_ORDER = pp.INSTALL_ORDER + 1
18717
		 WHERE pp.PV_ID = nPvId
18718
           AND pp.PATCH_ID != nPatchId
18719
		   AND pp.INSTALL_ORDER BETWEEN  FromInstallOrder  AND  currInstallOrder - 1;
1373 dpurdie 18720
 
18721
 
3959 dpurdie 18722
	 ELSIF currInstallOrder < nToInstallOrder
18723
	 THEN
1373 dpurdie 18724
 
3959 dpurdie 18725
		FromInstallOrder := currInstallOrder + 1;
1373 dpurdie 18726
 
3959 dpurdie 18727
		-- Shift others Down
18728
        UPDATE PACKAGE_PATCHES pp SET
18729
			   pp.INSTALL_ORDER = pp.INSTALL_ORDER - 1
18730
		 WHERE pp.PV_ID = nPvId
18731
           AND pp.PATCH_ID != nPatchId
18732
		   AND pp.INSTALL_ORDER BETWEEN  FromInstallOrder  AND  nToInstallOrder;
1373 dpurdie 18733
 
3959 dpurdie 18734
	 END IF;
1373 dpurdie 18735
 
18736
 
3959 dpurdie 18737
	 -- Move Patch to new install order
18738
     UPDATE PACKAGE_PATCHES pp SET
18739
		    pp.INSTALL_ORDER = nToInstallOrder
18740
	  WHERE pp.PV_ID = nPvId
18741
	    AND pp.PATCH_ID = nPatchId;
1373 dpurdie 18742
 
18743
 
3959 dpurdie 18744
END Shift_Install_Order;
4040 dpurdie 18745
 
1374 dpurdie 18746
/
4040 dpurdie 18747
--------------------------------------------------------
18748
--  DDL for Procedure SPLIT_VERSION
18749
--------------------------------------------------------
18750
set define off;
18751
 
5172 dpurdie 18752
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SPLIT_VERSION" ( SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
3959 dpurdie 18753
                                            SSV_MM OUT PACKAGE_VERSIONS.V_MM%TYPE,
18754
                                            SSV_NMM OUT PACKAGE_VERSIONS.V_NMM%TYPE,
18755
                                            SSV_EXT OUT PACKAGE_VERSIONS.V_EXT%TYPE  ) IS
1373 dpurdie 18756
/* ---------------------------------------------------------------------------
3959 dpurdie 18757
    Version: 3.0.0
1373 dpurdie 18758
   --------------------------------------------------------------------------- */
18759
 
3959 dpurdie 18760
    TYPE VERSION_COMPONENTS_TYPE IS TABLE OF VARCHAR2(50)
18761
        INDEX BY BINARY_INTEGER;
1373 dpurdie 18762
 
3959 dpurdie 18763
    version_components VERSION_COMPONENTS_TYPE;
18764
    lastDot NUMBER := 0;
18765
    currDot NUMBER := 0;
1373 dpurdie 18766
 
18767
BEGIN
3959 dpurdie 18768
    currDot := INSTR ( SSpkg_version, '.', -1 );      -- Find 1st dot from the right
1373 dpurdie 18769
 
3959 dpurdie 18770
    IF ( currDot > 0 )
1373 dpurdie 18771
    THEN
3959 dpurdie 18772
        -- YES dot separator found --
18773
        SSV_EXT := GET_V_EXT( SSpkg_version );
1373 dpurdie 18774
 
3959 dpurdie 18775
        IF NOT SSV_EXT IS NULL
1373 dpurdie 18776
        THEN
3959 dpurdie 18777
            lastDot := currDot;
18778
            currDot := INSTR ( SSpkg_version, '.', -1, 2 );   -- Find 2nd dot from the right
1373 dpurdie 18779
 
3959 dpurdie 18780
            IF ( currDot > 0 )
18781
            THEN
18782
                -- XXXX.M.E
18783
                SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, lastDot - currDot - 1);
18784
                SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot ) || SSV_EXT;
18785
            ELSE
18786
                -- XXXX.E
18787
                SSV_MM := NULL;
18788
                SSV_NMM := SSpkg_version;
18789
            END IF;
1373 dpurdie 18790
 
18791
        ELSE
3959 dpurdie 18792
            -- XXXX.M
18793
            SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, LENGTH(SSpkg_version) - currDot );
18794
            SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot );
1373 dpurdie 18795
 
18796
        END IF;
18797
 
18798
    ELSE
3959 dpurdie 18799
        -- NO dot separator found --
18800
        -- XXXXXX
18801
        SSV_MM  := NULL;
18802
        SSV_NMM := SSpkg_version;
18803
        SSV_EXT := NULL;
1373 dpurdie 18804
 
18805
    END IF;
18806
 
3959 dpurdie 18807
END Split_Version;
4040 dpurdie 18808
 
1374 dpurdie 18809
/
4040 dpurdie 18810
--------------------------------------------------------
18811
--  DDL for Procedure SWITCH_REPRODUCIBLE_PACKAGE
18812
--------------------------------------------------------
18813
set define off;
18814
 
5172 dpurdie 18815
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SWITCH_REPRODUCIBLE_PACKAGE" (nPvId IN NUMBER, nUserId IN NUMBER)IS
3959 dpurdie 18816
Auto CHAR;
18817
/******************************************************************************
18818
   NAME:       SWITCH_REPRODUCIBLE_PACKAGE
6031 dpurdie 18819
   PURPOSE:
1373 dpurdie 18820
 
3959 dpurdie 18821
   REVISIONS:
18822
   Ver        Date        Author           Description
18823
   ---------  ----------  ---------------  ------------------------------------
18824
   1.0        14/12/2006   Rupesh Solanki       1. Created this procedure.
1373 dpurdie 18825
 
3959 dpurdie 18826
   NOTES:
1373 dpurdie 18827
 
3959 dpurdie 18828
   Automatically available Auto Replace Keywords:
18829
      Object Name:     SWITCH_REPRODUCIBLE_PACKAGE
18830
      Sysdate:         14/12/2006
18831
      Date and Time:   14/12/2006, 11:35:15 AM, and 14/12/2006 11:35:15 AM
18832
      Username:         (set in TOAD Options, Procedure Editor)
18833
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 18834
 
3959 dpurdie 18835
******************************************************************************/
1373 dpurdie 18836
BEGIN
18837
 
3959 dpurdie 18838
	 SELECT IS_AUTOBUILDABLE into Auto
6031 dpurdie 18839
	 FROM PACKAGE_VERSIONS
3959 dpurdie 18840
	 WHERE PV_ID = nPvId;
1373 dpurdie 18841
 
3959 dpurdie 18842
	 IF Auto = 'N' Then
6031 dpurdie 18843
 
3959 dpurdie 18844
	 	UPDATE PACKAGE_VERSIONS
18845
	 	SET IS_AUTOBUILDABLE = 'Y'
18846
	 	WHERE PV_ID = nPvId;
6031 dpurdie 18847
 
18848
 
3959 dpurdie 18849
	 	/* LOG ACTION */
6031 dpurdie 18850
   		Log_Action ( nPvId, 'reproducible_package', nUserId );
18851
 
3959 dpurdie 18852
	 Else
6031 dpurdie 18853
 
3959 dpurdie 18854
		 UPDATE PACKAGE_VERSIONS
18855
		 SET IS_AUTOBUILDABLE = 'N'
18856
		 WHERE PV_ID = nPvId;
6031 dpurdie 18857
 
18858
 
3959 dpurdie 18859
	 	 /* LOG ACTION */
6031 dpurdie 18860
   	 	 Log_Action ( nPvId, 'unreproducible_package', nUserId );
18861
 
3959 dpurdie 18862
	 End If;
1373 dpurdie 18863
 
18864
 
18865
 
18866
 
18867
 
6031 dpurdie 18868
 
18869
 
18870
 
3959 dpurdie 18871
END SWITCH_REPRODUCIBLE_PACKAGE;
4040 dpurdie 18872
 
1374 dpurdie 18873
/
4040 dpurdie 18874
--------------------------------------------------------
18875
--  DDL for Procedure SYNC_PROJECTS_NEW_VERSION
18876
--------------------------------------------------------
18877
set define off;
18878
 
5172 dpurdie 18879
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SYNC_PROJECTS_NEW_VERSION" ( nPv_id 				IN NUMBER,
3959 dpurdie 18880
														  sSyncRtagsInList		IN VARCHAR2,
18881
				                                          nUser_id 				IN NUMBER ) IS
1373 dpurdie 18882
/* ---------------------------------------------------------------------------
18883
    Version: 3.0.0
18884
   --------------------------------------------------------------------------- */
18885
 
3959 dpurdie 18886
	CURSOR sync_rtags_cur IS
18887
        SELECT rc.RTAG_ID, rc.BASE_VIEW_ID, pv.pv_id
18888
		  FROM release_content rc,
18889
		  	   package_versions pv,
18890
		       package_versions opv
18891
		 WHERE rc.pv_id = pv.pv_id
18892
		   AND opv.pkg_id = pv.pkg_id
18893
		   AND NVL(opv.v_ext, '|LINK_A_NULL|') = NVL(pv.v_ext, '|LINK_A_NULL|')
18894
		   AND opv.pv_id = nPv_id
18895
		   AND rtag_id IN ( SELECT *
18896
		   	   		   	      FROM THE (
18897
					   	   		   	    SELECT CAST( IN_LIST_NUMBER( sSyncRtagsInList ) AS RELMGR_NUMBER_TAB_t )
18898
					       		   	    FROM dual
18899
									   )
18900
						  );
18901
    sync_rtags_rec sync_rtags_cur%ROWTYPE;
1373 dpurdie 18902
 
18903
BEGIN
18904
 
3959 dpurdie 18905
	OPEN sync_rtags_cur;
18906
	FETCH sync_rtags_cur INTO sync_rtags_rec;
1373 dpurdie 18907
 
3959 dpurdie 18908
	WHILE sync_rtags_cur%FOUND
18909
	LOOP
18910
		DELETE FROM RELEASE_CONTENT
18911
		 WHERE rtag_id = sync_rtags_rec.rtag_id
18912
	       AND pv_id = sync_rtags_rec.pv_id;
1373 dpurdie 18913
 
3959 dpurdie 18914
		INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )
18915
	   		   VALUES ( sync_rtags_rec.rtag_id,
18916
		       		  	nPv_id,
18917
						sync_rtags_rec.BASE_VIEW_ID,
18918
	           			Ora_Sysdate,
18919
	           			nUser_id,
18920
 
18921
	      	   		   );
1373 dpurdie 18922
 
3959 dpurdie 18923
-- 		UPDATE RELEASE_CONTENT
18924
-- 	       SET pv_id = nPv_id,
18925
-- 	           insert_stamp = Ora_Sysdate,
18926
-- 	           insertor_id = nUser_id
18927
-- 	     WHERE rtag_id = sync_rtags_rec.rtag_id
18928
-- 	       AND pv_id = sync_rtags_rec.pv_id;
1373 dpurdie 18929
 
3959 dpurdie 18930
		FETCH sync_rtags_cur INTO sync_rtags_rec;
18931
	END LOOP;
1373 dpurdie 18932
 
3959 dpurdie 18933
	CLOSE sync_rtags_cur;
18934
 
18935
END Sync_Projects_New_Version;
4040 dpurdie 18936
 
1374 dpurdie 18937
/
4040 dpurdie 18938
--------------------------------------------------------
18939
--  DDL for Procedure TOUCH_RELEASE
18940
--------------------------------------------------------
18941
set define off;
18942
 
5172 dpurdie 18943
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE" ( nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS
3959 dpurdie 18944
/* ---------------------------------------------------------------------------
18945
    The purpose of this procedure is to flag in the database that the specified
18946
    release has changed to an extent that the procedure Rebuild_Environment
18947
    should be called at the next opportunity in order that the package state
18948
    icons are all re-evaluated.
18949
    The package state icons are controlled using the pkg_state column in the
18950
    release_content table, and Rebuild_Environment updates that column.
18951
    It will be through user action in the website that Rebuild_Environment will
18952
    be called, for example:
18953
      a) when setting/clearing ignore warnings checkboxes
18954
      b) when someone opens a page upon a rtag/pvid and rebuild_en flag is set
18955
      c) when someone opens the build order report form
18956
      d) when someone modifies dependencies of a package
18957
      + other scenarios (?)
18958
   --------------------------------------------------------------------------- */
18959
BEGIN
18960
   -- Touch Release for Rebuild
18961
   UPDATE RELEASE_TAGS rt SET
18962
          rt.REBUILD_ENV = 'Y',
18963
          rt.REBUILD_STAMP = 0
18964
    WHERE rt.RTAG_ID = nRtagId;
1373 dpurdie 18965
 
3959 dpurdie 18966
END Touch_Release;
4040 dpurdie 18967
 
1374 dpurdie 18968
/
4040 dpurdie 18969
--------------------------------------------------------
18970
--  DDL for Procedure TOUCH_RELEASE_BULK
18971
--------------------------------------------------------
18972
set define off;
18973
 
5172 dpurdie 18974
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE_BULK" ( nRtagIdList IN VARCHAR2 ) IS
1373 dpurdie 18975
/* ---------------------------------------------------------------------------
18976
    Version: 3.0
18977
   --------------------------------------------------------------------------- */
18978
 
18979
oRTagIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
18980
 
18981
BEGIN
18982
	 oRTagIdCollector := IN_LIST_NUMBER ( nRtagIdList );
18983
 
18984
	 -- Touch Release for Rebuild
18985
     UPDATE RELEASE_TAGS rt SET
18986
     	rt.REBUILD_ENV = 'Y',
18987
        rt.REBUILD_STAMP = 0
18988
      WHERE rt.RTAG_ID IN ( SELECT * FROM TABLE ( CAST ( oRTagIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
18989
 
18990
 
18991
END Touch_Release_Bulk;
4040 dpurdie 18992
 
1374 dpurdie 18993
/
4040 dpurdie 18994
--------------------------------------------------------
18995
--  DDL for Procedure TO_INSERT_VTREE_ID
18996
--------------------------------------------------------
18997
set define off;
18998
 
5172 dpurdie 18999
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TO_INSERT_VTREE_ID" IS
1373 dpurdie 19000
 
3959 dpurdie 19001
/******************************************************************************
19002
   NAME:       TO_INSERT_VTREE_ID
6031 dpurdie 19003
   PURPOSE:
1373 dpurdie 19004
 
3959 dpurdie 19005
   REVISIONS:
19006
   Ver        Date        Author           Description
19007
   ---------  ----------  ---------------  ------------------------------------
19008
   1.0        2/02/2007          1. Created this procedure.
1373 dpurdie 19009
 
3959 dpurdie 19010
   NOTES:
1373 dpurdie 19011
 
3959 dpurdie 19012
   Automatically available Auto Replace Keywords:
19013
      Object Name:     TO_INSERT_VTREE_ID
19014
      Sysdate:         2/02/2007
19015
      Date and Time:   2/02/2007, 8:42:56 AM, and 2/02/2007 8:42:56 AM
19016
      Username:         (set in TOAD Options, Procedure Editor)
19017
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 19018
 
3959 dpurdie 19019
******************************************************************************/
6031 dpurdie 19020
VTreeId NUMBER;
1373 dpurdie 19021
 
19022
 
3959 dpurdie 19023
	CURSOR curInfo IS
19024
    SELECT RTAG_ID
19025
	FROM RELEASE_TAGS
19026
	WHERE VTREE_ID IS NULL;
19027
    recInfo curInfo%ROWTYPE;
6031 dpurdie 19028
 
19029
 
1373 dpurdie 19030
BEGIN
19031
 
3959 dpurdie 19032
	OPEN curInfo;
19033
    FETCH curInfo INTO recInfo;
6031 dpurdie 19034
 
3959 dpurdie 19035
	WHILE curInfo%FOUND
19036
	LOOP
19037
		SELECT SEQ_VTREE_ID.nextval INTO VTreeId FROM DUAL;
1373 dpurdie 19038
 
3959 dpurdie 19039
		UPDATE RELEASE_TAGS
19040
		SET VTREE_ID = VTreeId
19041
		WHERE RTAG_ID = recInfo.RTAG_ID;
1373 dpurdie 19042
 
3959 dpurdie 19043
		FETCH curInfo INTO recInfo;
19044
	END LOOP;
1373 dpurdie 19045
 
3959 dpurdie 19046
	CLOSE curInfo;
1373 dpurdie 19047
 
3959 dpurdie 19048
END TO_INSERT_VTREE_ID;
4040 dpurdie 19049
 
1374 dpurdie 19050
/
4040 dpurdie 19051
--------------------------------------------------------
19052
--  DDL for Procedure UNDEPRECATE_PACKAGE
19053
--------------------------------------------------------
19054
set define off;
19055
 
5384 dpurdie 19056
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNDEPRECATE_PACKAGE" (
19057
    nPvId   IN PACKAGE_VERSIONS.PV_ID%TYPE,
19058
    nRtagId IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,
19059
    nPkgId  IN DEPRECATED_PACKAGES.PKG_ID%TYPE,
19060
    nUserId IN NUMBER)
19061
IS
19062
  ext      VARCHAR2(50);
19063
 
1373 dpurdie 19064
BEGIN
5384 dpurdie 19065
  --Extract the package extension
6031 dpurdie 19066
  SELECT V_EXT INTO ext
5384 dpurdie 19067
  FROM PACKAGE_VERSIONS
19068
  WHERE PV_ID = nPvId;
1373 dpurdie 19069
 
5384 dpurdie 19070
    -- Undeprecate Package
19071
    DELETE
19072
    FROM DEPRECATED_PACKAGES
19073
    WHERE RTAG_ID = nRtagId
19074
    AND PKG_ID    = nPkgId
19075
    AND NVL(V_EXT,'.NULL') = NVL(ext,'.NULL');
6031 dpurdie 19076
 
5384 dpurdie 19077
    -- Update Release Contents entry
19078
    -- Process PackageName.ext for the package. ie: Allow multiple
19079
    -- versions of the package to be in the release.
6031 dpurdie 19080
 
5384 dpurdie 19081
    UPDATE RELEASE_CONTENT
6031 dpurdie 19082
    SET
5384 dpurdie 19083
      DEPRECATED_STATE = NULL
19084
    WHERE RTAG_ID      = nRtagId
19085
    AND PV_ID IN (
19086
      SELECT PV.PV_ID
19087
      FROM PACKAGE_VERSIONS PV
19088
      WHERE PV.PKG_ID   = nPkgId
19089
      AND NVL(PV.V_EXT, '.NULL') = NVL(ext,'.NULL')
19090
      );
1373 dpurdie 19091
 
5384 dpurdie 19092
  -- Update consumers of the package
19093
  --  Update ALL packages in the Release
1373 dpurdie 19094
 
6031 dpurdie 19095
  REBUILD_DEPRECATE_STATE(nRtagId);
1373 dpurdie 19096
 
19097
END Undeprecate_Package;
4040 dpurdie 19098
 
1374 dpurdie 19099
/
4040 dpurdie 19100
--------------------------------------------------------
19101
--  DDL for Procedure UNLOCK_PACKAGE
19102
--------------------------------------------------------
19103
set define off;
19104
 
5172 dpurdie 19105
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNLOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 19106
											 nUserId IN NUMBER ) IS
19107
/* ---------------------------------------------------------------------------
19108
    Author: Rupesh Solanki
6031 dpurdie 19109
 
3959 dpurdie 19110
	Version: 4.0
19111
   --------------------------------------------------------------------------- */
19112
   STATE CHAR;
6031 dpurdie 19113
 
3959 dpurdie 19114
BEGIN
6031 dpurdie 19115
 
3959 dpurdie 19116
	SELECT DLOCKED INTO STATE
19117
	FROM PACKAGE_VERSIONS
6031 dpurdie 19118
	WHERE PV_ID = nPvId;
1373 dpurdie 19119
 
3959 dpurdie 19120
	IF STATE = 'A' THEN --It was made official for autobuilds
19121
		-- Unlock Package
19122
		UPDATE PACKAGE_VERSIONS pv SET
19123
		pv.DLOCKED = 'P'
6031 dpurdie 19124
		WHERE pv.PV_ID = nPvId;
3959 dpurdie 19125
	ELSE
19126
		-- Unlock Package
19127
		UPDATE PACKAGE_VERSIONS pv SET
19128
		pv.DLOCKED = 'N'
6031 dpurdie 19129
		WHERE pv.PV_ID = nPvId;
3959 dpurdie 19130
 
6031 dpurdie 19131
	END IF;
19132
 
3959 dpurdie 19133
    /* LOG ACTION */
19134
   	Log_Action ( nPvId, 'unlock_package', nUserId );
19135
 
19136
END Unlock_Package;
4040 dpurdie 19137
 
3959 dpurdie 19138
/
4040 dpurdie 19139
--------------------------------------------------------
19140
--  DDL for Procedure UNRIPPLE_PACKAGE
19141
--------------------------------------------------------
19142
set define off;
19143
 
5172 dpurdie 19144
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE" (
3959 dpurdie 19145
        sPvIdList IN VARCHAR2,
19146
        nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
19147
        nUserId IN NUMBER
19148
    ) IS
19149
/* ---------------------------------------------------------------------------
19150
    Version: 4.1
19151
   --------------------------------------------------------------------------- */
19152
 
19153
    oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
19154
 
19155
BEGIN
19156
 
19157
    IF (sPvIdList IS NULL) THEN
19158
        RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
19159
    END IF;
19160
 
19161
    oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
19162
 
19163
    -- UnRipple Package
19164
    INSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID )
19165
    SELECT nRtagId, pv.PV_ID
19166
    FROM PACKAGE_VERSIONS pv
19167
    WHERE pv.PV_ID IN (
19168
        SELECT *
19169
        FROM TABLE (
19170
            CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t )
19171
        )
19172
    );
6031 dpurdie 19173
 
3959 dpurdie 19174
    /* LOG ACTION */
19175
    Log_Action_Bulk ( sPvIdList, 'unripple_package', nUserId );
19176
 
19177
END UnRipple_Package;
4040 dpurdie 19178
 
3959 dpurdie 19179
/
4040 dpurdie 19180
--------------------------------------------------------
19181
--  DDL for Procedure UNRIPPLE_PACKAGE_INDIRECT
19182
--------------------------------------------------------
19183
set define off;
19184
 
5172 dpurdie 19185
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE_INDIRECT" (
3959 dpurdie 19186
        nPvId IN NUMBER,
19187
        nRtagId IN NUMBER,
19188
        nUserId IN NUMBER,
19189
        nrootCausePvId IN NUMBER,
19190
        srootCause IN VARCHAR2,
19191
        srootFile IN VARCHAR2
19192
    ) IS
19193
    ReleaseLocation VARCHAR2(4000);
19194
BEGIN
19195
 
19196
    -- UnRipple Package
19197
    delete from do_not_ripple where rtag_id=nRtagId and pv_id=nPvId;
19198
    INSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID, ROOT_PV_ID, ROOT_CAUSE, ROOT_FILE ) values (nRtagId, nPvId, nrootCausePvId, srootCause, srootFile);
19199
 
19200
    /* LOG ACTION */
19201
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
19202
              FROM PROJECTS proj,
19203
                   RELEASE_TAGS rt
19204
             WHERE rt.RTAG_ID = nRtagId
19205
               AND rt.PROJ_ID = proj.PROJ_ID;
19206
 
19207
    /* LOG ACTION */
19208
    Log_Action ( nPvId, 'unripple_package', nUserId, 'Location: '|| ReleaseLocation );
19209
 
19210
END UnRipple_Package_Indirect;
4040 dpurdie 19211
 
3959 dpurdie 19212
/
4040 dpurdie 19213
--------------------------------------------------------
19214
--  DDL for Procedure UPDATE_ADDITIONAL_NOTE
19215
--------------------------------------------------------
19216
set define off;
19217
 
5172 dpurdie 19218
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_ADDITIONAL_NOTE" ( pnNote_id IN NUMBER,
3959 dpurdie 19219
													 pnPv_id IN NUMBER,
19220
                                                     psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,
19221
                                                     psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,
19222
                                                     pnUser_id IN NUMBER,
19223
                                                     outErrCode OUT NUMBER
19224
                                                    ) IS
19225
/* ---------------------------------------------------------------------------
19226
    Version: 3.0.1
19227
   --------------------------------------------------------------------------- */
19228
 
19229
    newID NUMBER;
19230
 
19231
    /* Disallow duplicate Note Titles */
19232
	CURSOR an_duplicate_cur IS
19233
        SELECT COUNT(*) AS cnt_note
19234
          FROM ADDITIONAL_NOTES
19235
         WHERE pv_id = pnPv_id
19236
           AND note_id != pnNote_id
19237
           AND note_title = psNote_title;
19238
    an_duplicate_rec an_duplicate_cur%ROWTYPE;
19239
 
19240
BEGIN
19241
	outErrCode := -1;		-- Set default return error code to ERROR state
19242
 
19243
	OPEN an_duplicate_cur;
19244
    FETCH an_duplicate_cur INTO an_duplicate_rec;
19245
 
19246
    IF an_duplicate_rec.cnt_note < 1
19247
    THEN
19248
		--- Update Additional Note ---
19249
	    UPDATE ADDITIONAL_NOTES SET
19250
		       note_title = psNote_title,
19251
		       note_body = psNote_body,
19252
		       mod_date = Ora_Sysdate,
19253
		       mod_user = pnUser_id
19254
         WHERE note_id = pnNote_id
19255
           AND pv_id = pnPv_id;
19256
		outErrCode := 0;		-- Set return to SUCCESS
19257
	END IF;
19258
 
19259
	CLOSE an_duplicate_cur;
19260
END Update_Additional_Note;
4040 dpurdie 19261
 
3959 dpurdie 19262
/
4040 dpurdie 19263
--------------------------------------------------------
19264
--  DDL for Procedure UPDATE_DEPRECATION_STATE
19265
--------------------------------------------------------
19266
set define off;
19267
 
5172 dpurdie 19268
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_DEPRECATION_STATE" (nnrtag_id IN NUMBER) AS
3959 dpurdie 19269
 
19270
recno NUMBER;
19271
 
19272
CURSOR deprecate_cur IS
19273
 
19274
SELECT rc.pv_id
19275
FROM release_content rc
19276
WHERE rtag_id = nnrtag_id
19277
 AND deprecated_state IN(7);
19278
 
19279
deprecate_rec deprecate_cur % rowtype;
19280
 
19281
BEGIN
19282
 
19283
  OPEN deprecate_cur;
19284
 
19285
  FETCH deprecate_cur
19286
  INTO deprecate_rec;
19287
 
19288
  WHILE deprecate_cur % FOUND
19289
  LOOP
19290
 
19291
    SELECT COUNT(*)
19292
    INTO recno
19293
    FROM package_dependencies pd,
19294
      release_content rc
19295
    WHERE pd.pv_id = deprecate_rec.pv_id
19296
     AND rc.pv_id = pd.dpv_id
19297
     AND rc.rtag_id = nnrtag_id
19298
     AND rc.deprecated_state IN(6,   7);
19299
 
19300
    IF recno = 0 THEN
19301
 
19302
      UPDATE release_content
19303
      SET pkg_id = NULL, deprecated_state = NULL
19304
      WHERE pv_id = deprecate_rec.pv_id
19305
       AND rtag_id = nnrtag_id;
19306
 
19307
    END IF;
19308
 
19309
    FETCH deprecate_cur
19310
    INTO deprecate_rec;
19311
  END LOOP;
19312
 
19313
END;
4040 dpurdie 19314
 
3959 dpurdie 19315
/
4040 dpurdie 19316
--------------------------------------------------------
19317
--  DDL for Procedure UPDATE_MISC_VIEW
19318
--------------------------------------------------------
19319
set define off;
19320
 
5172 dpurdie 19321
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_MISC_VIEW" IS
1373 dpurdie 19322
/******************************************************************************
3959 dpurdie 19323
   NAME:       UPDATE_MISC_VIEW
6031 dpurdie 19324
   PURPOSE:
1373 dpurdie 19325
 
19326
   REVISIONS:
19327
   Ver        Date        Author           Description
19328
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 19329
   1.0        16/03/2007          1. Created this procedure.
1373 dpurdie 19330
 
19331
   NOTES:
19332
 
19333
   Automatically available Auto Replace Keywords:
3959 dpurdie 19334
      Object Name:     UPDATE_MISC_VIEW
19335
      Sysdate:         16/03/2007
19336
      Date and Time:   16/03/2007, 8:56:29 AM, and 16/03/2007 8:56:29 AM
1373 dpurdie 19337
      Username:         (set in TOAD Options, Procedure Editor)
19338
      Table Name:       (set in the "New PL/SQL Object" dialog)
19339
 
19340
******************************************************************************/
3959 dpurdie 19341
   CURSOR view_cur /*Create a record set to store the ripple data*/
19342
   IS
6031 dpurdie 19343
   	 SELECT pkg.pkg_id, rc.base_view_id
3959 dpurdie 19344
	 FROM package_versions pv, packages pkg, release_content rc
19345
	 where rc.rtag_id = 2362
19346
	 and rc.pv_id = pv.pv_id
19347
	 and pv.pkg_id = pkg.pkg_id;
19348
   view_rec   view_cur%ROWTYPE;
19349
 
19350
 
19351
 
1373 dpurdie 19352
BEGIN
3959 dpurdie 19353
   OPEN view_cur;
1373 dpurdie 19354
 
3959 dpurdie 19355
   FETCH view_cur
19356
    INTO view_rec;
1373 dpurdie 19357
 
3959 dpurdie 19358
   WHILE view_cur%FOUND
19359
   LOOP
1373 dpurdie 19360
 
6031 dpurdie 19361
 
3959 dpurdie 19362
	   update release_content
19363
	   set base_view_id = view_rec.base_view_id
19364
	   where rtag_id = 8027
6031 dpurdie 19365
	   and pv_id IN
3959 dpurdie 19366
	   (
19367
	   	select pv.pv_id from release_content rc, package_versions pv
19368
		where rc.rtag_id = 8027
19369
		and pv.pv_id = rc.pv_id
6031 dpurdie 19370
		and pv.pkg_id = view_rec.pkg_id
19371
 
3959 dpurdie 19372
	   );
1373 dpurdie 19373
 
19374
 
6031 dpurdie 19375
 
19376
 
19377
 
19378
 
19379
 
19380
 
19381
 
3959 dpurdie 19382
   FETCH view_cur
19383
   		 INTO view_rec;
6031 dpurdie 19384
   END LOOP;
1373 dpurdie 19385
 
19386
 
19387
 
19388
 
3959 dpurdie 19389
 
6031 dpurdie 19390
END UPDATE_MISC_VIEW;
4040 dpurdie 19391
 
1374 dpurdie 19392
/
4040 dpurdie 19393
--------------------------------------------------------
19394
--  DDL for Procedure UPDATE_PACKAGE_DEPENDENCY
19395
--------------------------------------------------------
19396
set define off;
19397
 
5172 dpurdie 19398
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_DEPENDENCY" ( NNpv_id IN NUMBER,
3959 dpurdie 19399
                                                        SSdep_name IN PACKAGES.pkg_name%TYPE,
19400
                                                        SSdep_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
19401
                                                        CCbuild_type IN PACKAGE_DEPENDENCIES.build_type%TYPE,
19402
                                                        NNuser_id IN NUMBER,
19403
                                                        NNdelete_old_dependency IN NUMBER
19404
                                                       ) IS
1373 dpurdie 19405
/* ---------------------------------------------------------------------------
3959 dpurdie 19406
    Version: 3.3
1373 dpurdie 19407
   --------------------------------------------------------------------------- */
19408
 
3959 dpurdie 19409
    retPV_ID NUMBER;
19410
    SSV_EXT PACKAGE_VERSIONS.v_ext%TYPE;
19411
	DepIsPatch	PACKAGE_VERSIONS.is_patch%TYPE;
19412
    PvIsPatch	PACKAGE_VERSIONS.is_patch%TYPE;
19413
    NNpkg_id NUMBER;
19414
    NNdpkg_id NUMBER;
1373 dpurdie 19415
 
19416
BEGIN
3959 dpurdie 19417
    --- Seed database with package_name and version if required ---
19418
    Seed_Package_Names_Versions ( SSdep_name, SSdep_version, NNuser_id, retPV_ID );
1373 dpurdie 19419
 
3959 dpurdie 19420
    -- get v_ext,pkg_id of current dependency
19421
    SELECT v_ext, pkg_id, is_patch INTO SSV_EXT, NNdpkg_id, DepIsPatch
19422
      FROM PACKAGE_VERSIONS
19423
     WHERE pv_id = retPV_ID;
1373 dpurdie 19424
 
3959 dpurdie 19425
    -- get pkg_id of parent package
19426
    SELECT pkg_id, is_patch INTO NNpkg_id, PvIsPatch
19427
      FROM PACKAGE_VERSIONS
19428
     WHERE pv_id = NNpv_id;
1373 dpurdie 19429
 
19430
 
3959 dpurdie 19431
	IF ( (PvIsPatch IS NULL) AND (DepIsPatch IS NULL) ) OR
19432
    	( (PvIsPatch IS NOT NULL) )THEN
1373 dpurdie 19433
 
3959 dpurdie 19434
	    IF NNdelete_old_dependency = 1 THEN
19435
	        /* Used for CUSTOM dependency add/edit */
1373 dpurdie 19436
 
3959 dpurdie 19437
	        --- Remove old dependency ---
19438
            IF (PvIsPatch IS NULL) THEN
19439
            	-- Do it for Packages
19440
		        DELETE FROM PACKAGE_DEPENDENCIES
19441
		         WHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN
19442
		            (
19443
		            SELECT dep.*
19444
		              FROM PACKAGE_DEPENDENCIES dep,
19445
		                   PACKAGE_VERSIONS dpv,
19446
		                   PACKAGE_VERSIONS pv
19447
		             WHERE dep.dpv_id = dpv.pv_id
19448
		               AND dep.pv_id = NNpv_id
19449
		               AND pv.pv_id = retPV_ID
19450
		               AND dpv.pkg_id = pv.pkg_id
19451
		               AND NVL(dpv.v_ext, '|LINK_A_NULL|') = NVL(SSV_EXT, '|LINK_A_NULL|')
19452
		            );
19453
            ELSE
19454
            	-- Do it for Patches
19455
                DELETE FROM PACKAGE_DEPENDENCIES
19456
		         WHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN
19457
		            (
19458
		            SELECT dep.*
19459
		              FROM PACKAGE_DEPENDENCIES dep
19460
		             WHERE dep.dpv_id = retPV_ID
19461
		               AND dep.pv_id = NNpv_id
19462
		            );
19463
			END IF;
1373 dpurdie 19464
 
3959 dpurdie 19465
	    END IF;
1373 dpurdie 19466
 
3959 dpurdie 19467
	    /* NOTE: for JATS, ANTS dependency update, it is expected that all dependencies are removed. */
19468
 
19469
	    --- Add new dependency ---
19470
	    INSERT INTO PACKAGE_DEPENDENCIES ( pv_id, dpv_id, pkg_id, dpkg_id, build_type )
19471
	    VALUES ( NNpv_id, retPV_ID, NNpkg_id, NNdpkg_id, CCbuild_type );
19472
 
19473
	END IF;
19474
 
19475
END Update_Package_Dependency;
4040 dpurdie 19476
 
1374 dpurdie 19477
/
4040 dpurdie 19478
--------------------------------------------------------
19479
--  DDL for Procedure UPDATE_PACKAGE_STATES
19480
--------------------------------------------------------
19481
set define off;
19482
 
5172 dpurdie 19483
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_STATES" ( NNrtag_id IN NUMBER,
3959 dpurdie 19484
                                                    NNsession_num IN NUMBER ) IS
19485
/* =============  STATE RULES =================== */
19486
/*
19487
   MNR   MRR   MN   MR    |   pkg_state
19488
   ------------------------------------
19489
 
19490
 
19491
 
19492
 
19493
   ------------------------------------
19494
 
19495
 
19496
 
19497
 
19498
   ------------------------------------
19499
    1     0     0     0   |      MINOR_READY
19500
    1     0     0     1   |      MAJOR
19501
    1     0     1     0   |      MINOR
19502
    1     0     1     1   |      MAJOR
19503
   ------------------------------------
19504
    1     1     0     0   |      MAJOR_READY
19505
    1     1     0     1   |      MAJOR
19506
    1     1     1     0   |      MAJOR
19507
    1     1     1     1   |      MAJOR
19508
   ------------------------------------
19509
*/
19510
BEGIN
19511
    /*----------------------------------------------
19512
    ||              MINOR READY
19513
    */----------------------------------------------
1373 dpurdie 19514
 
3959 dpurdie 19515
    UPDATE release_content
19516
       SET pkg_state = 4
19517
     WHERE rtag_id = NNrtag_id
19518
       AND pv_id IN
19519
           (
19520
           SELECT DISTINCT pv_id
19521
           FROM temp_env_states
19522
           WHERE session_num = NNsession_num
19523
             AND level_num = 1
19524
             AND tes_state = 2
19525
           );
1373 dpurdie 19526
 
3959 dpurdie 19527
    /*----------------------------------------------
19528
    ||              MAJOR READY
19529
    */----------------------------------------------
19530
    UPDATE release_content
19531
       SET pkg_state = 3
19532
     WHERE rtag_id = NNrtag_id
19533
       AND pv_id IN
19534
           (
19535
           SELECT DISTINCT pv_id
19536
           FROM temp_env_states
19537
           WHERE session_num = NNsession_num
19538
             AND level_num = 1
19539
             AND tes_state IN (0,1)
19540
           );
1373 dpurdie 19541
 
3959 dpurdie 19542
    /*----------------------------------------------
19543
    ||                MINOR
19544
    */----------------------------------------------
19545
    UPDATE release_content
19546
       SET pkg_state = 2
19547
     WHERE rtag_id = NNrtag_id
19548
       AND pv_id IN
19549
           (
19550
           SELECT DISTINCT pv_id
19551
            FROM temp_env_states
19552
            WHERE session_num = NNsession_num
19553
              AND level_num >= 2
19554
              AND tes_state = 2
19555
            MINUS
19556
           SELECT pv_id
19557
             FROM release_content
19558
            WHERE rtag_id = NNrtag_id
19559
              AND pkg_state = 3
19560
           );
1373 dpurdie 19561
 
3959 dpurdie 19562
    /*----------------------------------------------
19563
    ||                MAJOR
19564
    */----------------------------------------------
19565
    UPDATE release_content
19566
       SET pkg_state = 1
19567
     WHERE rtag_id = NNrtag_id
19568
       AND pv_id IN
19569
           (
19570
           SELECT DISTINCT pv_id
19571
           FROM temp_env_states
19572
           WHERE session_num = NNsession_num
19573
             AND level_num >= 2
19574
             AND tes_state IN (0,1)
19575
           /* MAJOR EXCEPTION - When package has Major Ready and Minor */
19576
           UNION
19577
           SELECT DISTINCT tes.pv_id
19578
           FROM temp_env_states tes,
19579
                release_content rc
19580
           WHERE tes.session_num = NNsession_num
19581
             AND tes.level_num >= 2
19582
             AND tes.tes_state = 2
19583
             AND rtag_id = NNrtag_id
19584
             AND rc.pv_id = tes.pv_id
19585
             AND rc.pkg_state = 3
19586
           );
1373 dpurdie 19587
 
3959 dpurdie 19588
    /*----------------------------------------------
19589
    ||                 OK
19590
    */----------------------------------------------
19591
    UPDATE release_content
19592
       SET pkg_state = 0
19593
     WHERE rtag_id = NNrtag_id
19594
       AND pv_id IN
19595
           (
19596
           SELECT rc.pv_id
19597
             FROM release_content rc
19598
            WHERE rc.rtag_id = NNrtag_id
19599
              AND NOT rc.pv_id IN
19600
                    (
19601
                     SELECT DISTINCT pv_id
19602
                     FROM temp_env_states WHERE session_num = NNsession_num
19603
                    )
19604
           );
1373 dpurdie 19605
 
3959 dpurdie 19606
      Update_Deprecation_State (NNrtag_id);
1373 dpurdie 19607
 
3959 dpurdie 19608
    /*----------------------------------------------
19609
    ||              PEGGED VERSIONS DEPENDENT
19610
    */----------------------------------------------
19611
    UPDATE release_content
19612
       SET pkg_state = 10
19613
     WHERE rtag_id = NNrtag_id
19614
       AND pv_id IN
19615
           (
19616
           SELECT DISTINCT pv_id
19617
           FROM pegged_versions pegv
19618
           WHERE pegv.rtag_id = NNrtag_id
19619
           );
1373 dpurdie 19620
 
3959 dpurdie 19621
    /*----------------------------------------------
19622
    ||              ADVISORY RIPPLE
19623
    */----------------------------------------------
19624
    UPDATE release_content
19625
       SET pkg_state = 8
19626
     WHERE rtag_id = NNrtag_id
19627
       AND pv_id IN
19628
           (
19629
           SELECT DISTINCT pv_id
19630
           FROM advisory_ripple ar
19631
           WHERE ar.rtag_id = NNrtag_id
19632
           )
19633
       AND pv_id IN
19634
           (
19635
           SELECT DISTINCT pv_id
19636
           FROM release_content rc
19637
           WHERE rc.rtag_id = NNrtag_id
19638
           );
6031 dpurdie 19639
 
5172 dpurdie 19640
    /*----------------------------------------------
19641
    ||              SDK Imported
19642
    */----------------------------------------------
19643
    UPDATE release_content
19644
       SET pkg_state = 11
19645
     WHERE rtag_id = NNrtag_id
6031 dpurdie 19646
       AND sdktag_id is not null;
1373 dpurdie 19647
 
6031 dpurdie 19648
   /*----------------------------------------------
19649
    ||              UnBuildable
19650
    */----------------------------------------------
19651
    UPDATE release_content
19652
       SET pkg_state = 13
19653
     WHERE rtag_id = NNrtag_id
19654
       AND pv_id in (select pv_id from temp_env_states WHERE session_num = NNsession_num AND build_type = 'U');
19655
 
3959 dpurdie 19656
END Update_Package_States;
4040 dpurdie 19657
 
3959 dpurdie 19658
/
4040 dpurdie 19659
--------------------------------------------------------
19660
--  DDL for Procedure UPDATE_PROCESSES
19661
--------------------------------------------------------
19662
set define off;
19663
 
5172 dpurdie 19664
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PROCESSES" 
3959 dpurdie 19665
IS
1373 dpurdie 19666
 
3959 dpurdie 19667
proc_id NUMBER;
19668
/******************************************************************************
19669
   NAME:       DELETE_DO_NOT_RIPPLE
19670
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
19671
               IS RELEASED
1373 dpurdie 19672
 
3959 dpurdie 19673
   REVISIONS:
19674
   Ver        Date        Author           Description
19675
   ---------  ----------  ---------------  ------------------------------------
19676
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
1373 dpurdie 19677
 
3959 dpurdie 19678
   NOTES:
1373 dpurdie 19679
 
3959 dpurdie 19680
   Automatically available Auto Replace Keywords:
19681
      Object Name:     DELETE_DO_NOT_RIPPLE
19682
      Sysdate:         21/04/2006
19683
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
19684
      Username:         (set in TOAD Options, Procedure Editor)
19685
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 19686
 
3959 dpurdie 19687
******************************************************************************/
19688
   CURSOR ripple_cur
19689
   IS
19690
      select proc_id,  proc_name, run_as, pkg_owner, is_interface from processes;
1373 dpurdie 19691
 
3959 dpurdie 19692
   ripple_rec   ripple_cur%ROWTYPE;
19693
BEGIN
19694
   OPEN ripple_cur;
19695
 
19696
   FETCH ripple_cur
19697
    INTO ripple_rec;
19698
 
19699
   WHILE ripple_cur%FOUND
19700
   LOOP
19701
 
6031 dpurdie 19702
 
19703
update deployment_manager.processes_config
3959 dpurdie 19704
set proc_id = ripple_rec.proc_id
19705
where pkg_health_tag = ripple_rec.proc_name
19706
and cmd_interface IS NULL
19707
and pkg_owner IS NULL
6031 dpurdie 19708
and is_interface IS NULL;
3959 dpurdie 19709
 
6031 dpurdie 19710
 
3959 dpurdie 19711
      FETCH ripple_cur
19712
       INTO ripple_rec;
19713
   END LOOP;
19714
END UPDATE_PROCESSES;
4040 dpurdie 19715
 
1374 dpurdie 19716
/
4040 dpurdie 19717
--------------------------------------------------------
19718
--  DDL for Procedure UPDATE_RUNTIME_DEPENDENCY
19719
--------------------------------------------------------
19720
set define off;
19721
 
5172 dpurdie 19722
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_RUNTIME_DEPENDENCY" ( NNpv_id IN RUNTIME_DEPENDENCIES.pv_id%TYPE,
3959 dpurdie 19723
				   	  		  						    NNrtd_id IN RUNTIME_DEPENDENCIES.rtd_id%TYPE,
19724
				   	  		  						    SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
19725
													    SSrtd_url IN RUNTIME_DEPENDENCIES.rtd_url%TYPE,
19726
													    SSrtd_comments IN RUNTIME_DEPENDENCIES.rtd_comments%TYPE,
19727
													    NNuser_id IN NUMBER ) IS
1373 dpurdie 19728
/* ---------------------------------------------------------------------------
3959 dpurdie 19729
    Version: 3.0.1
1373 dpurdie 19730
   --------------------------------------------------------------------------- */
19731
 
3959 dpurdie 19732
    retRTD_ID	NUMBER;
19733
	CURSOR rtd_cur IS
19734
	    SELECT pv.pkg_version, pkg.pkg_name
19735
		  FROM runtime_dependencies rtd,
19736
		       package_versions pv,
19737
			   packages pkg
19738
		 WHERE rtd.rtd_id = pv.pv_id
19739
		   AND pv.pkg_id = pkg.pkg_id
19740
		   AND rtd.pv_id = NNpv_id
19741
		   AND rtd.rtd_id = NNrtd_id;
19742
	   rtd_rec rtd_cur%ROWTYPE;
1373 dpurdie 19743
 
3959 dpurdie 19744
	CURSOR old_rtd_cur IS
19745
	    SELECT pv.pv_id
19746
		  FROM package_versions pv
19747
		 WHERE pv.pkg_id IN ( SELECT rtdpv.pkg_id
19748
		 	   			 	    FROM package_versions rtdpv
19749
							   WHERE rtdpv.pv_id = NNrtd_id )
19750
		   AND pv.pkg_version = SSrtd_version;
19751
	old_rtd_rec old_rtd_cur%ROWTYPE;
1373 dpurdie 19752
 
3959 dpurdie 19753
 
1373 dpurdie 19754
BEGIN
19755
 
3959 dpurdie 19756
    -- Get current runtime dependency details
19757
	OPEN rtd_cur;
19758
    FETCH rtd_cur INTO rtd_rec;
1373 dpurdie 19759
 
19760
 
19761
 
19762
 
3959 dpurdie 19763
	IF rtd_rec.pkg_version != SSrtd_version THEN
19764
           -- Version has changed, hence create new runtime dependency --
19765
	    /* NOTE: You must create new version as updating just a version will affect
19766
		        all packages using this runtime dependency and user does not expect that.
19767
		        It is safer to create new version */
19768
		OPEN old_rtd_cur;
19769
		FETCH old_rtd_cur INTO old_rtd_rec;
1373 dpurdie 19770
 
19771
 
3959 dpurdie 19772
		IF old_rtd_cur%NOTFOUND
19773
		THEN
19774
			-- Version not found, hence Create New version --
19775
    		Seed_Package_Names_Versions ( rtd_rec.pkg_name, SSrtd_version, NNuser_id, retRTD_ID );
1373 dpurdie 19776
 
3959 dpurdie 19777
			-- Update runtime dependency table --
19778
			UPDATE runtime_dependencies SET
19779
				   rtd_id = retRTD_ID,
19780
				   rtd_url = SSrtd_url,
19781
				   rtd_comments = SSrtd_comments
19782
			 WHERE pv_id = NNpv_id
19783
			   AND rtd_id = NNrtd_id;
1373 dpurdie 19784
 
3959 dpurdie 19785
		ELSE
19786
			-- Update runtime dependency table --
19787
			UPDATE runtime_dependencies SET
19788
				   rtd_id = old_rtd_rec.pv_id,
19789
				   rtd_url = SSrtd_url,
19790
				   rtd_comments = SSrtd_comments
19791
			 WHERE pv_id = NNpv_id
19792
			   AND rtd_id = NNrtd_id;
19793
 
19794
		END IF;
19795
 
19796
 
19797
		CLOSE old_rtd_cur;
19798
 
19799
	ELSE
19800
		--  Version has not changed, hence update everithing except	version --
19801
		UPDATE runtime_dependencies SET
19802
			   rtd_url = SSrtd_url,
19803
			   rtd_comments = SSrtd_comments
19804
		 WHERE pv_id = NNpv_id
19805
		   AND rtd_id = NNrtd_id;
19806
 
19807
 
19808
 
19809
	END IF;
19810
 
19811
 
19812
	CLOSE rtd_cur;
19813
 
19814
END Update_Runtime_Dependency;
4040 dpurdie 19815
 
1374 dpurdie 19816
/
4040 dpurdie 19817
--------------------------------------------------------
19818
--  DDL for Procedure UPDATE_UNIT_TEST
19819
--------------------------------------------------------
19820
set define off;
19821
 
5172 dpurdie 19822
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST" ( nTest_id IN NUMBER,
6031 dpurdie 19823
	   	  		  							   nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,
3959 dpurdie 19824
											   nPv_id IN NUMBER,
19825
											   nUserId IN NUMBER,
19826
	                                           sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
19827
											   sNumof_test IN UNIT_TESTS.NUMOF_TEST%TYPE,
19828
	                                           sCompletion_date IN VARCHAR2,
19829
											   sDpkg_path IN VARCHAR2,
19830
											   enumTEST_TYPE_AUTOMATIC IN NUMBER,
19831
											   sResults IN VARCHAR2,
19832
											   outFileName OUT VARCHAR2
19833
                                              ) IS
1373 dpurdie 19834
/* ---------------------------------------------------------------------------
3959 dpurdie 19835
    Version: 3.1.0
1373 dpurdie 19836
   --------------------------------------------------------------------------- */
6031 dpurdie 19837
 
3959 dpurdie 19838
   	FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
1373 dpurdie 19839
 
3959 dpurdie 19840
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
19841
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
1373 dpurdie 19842
 
3959 dpurdie 19843
 
1373 dpurdie 19844
BEGIN
19845
 
3959 dpurdie 19846
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
19847
       	ResultsURL := sResults;
19848
       ELSE
19849
       	IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
19850
        	outFileName := FILENAME_PREFIX || nTest_id ||'_'|| sResults;
19851
    		ResultsAttachment := sDpkg_path || '/' || outFileName;
19852
           END IF;
19853
       END IF;
1373 dpurdie 19854
 
3959 dpurdie 19855
	--- Update Unit Test ---
19856
    UPDATE UNIT_TESTS SET
19857
           TEST_SUMMARY = sTest_summary,
19858
		   NUMOF_TEST = sNumof_test,
19859
           COMPLETION_DATE = TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
19860
		   COMPLETED_BY = nUserId,
19861
		   RESULTS_URL = ResultsURL,
19862
		   RESULTS_ATTACHMENT_NAME = ResultsAttachment
19863
     WHERE TEST_ID = nTest_id
19864
       AND PV_ID = nPv_id;
1373 dpurdie 19865
 
3959 dpurdie 19866
END Update_Unit_Test;
4040 dpurdie 19867
 
3959 dpurdie 19868
/
4040 dpurdie 19869
--------------------------------------------------------
19870
--  DDL for Procedure UPDATE_UNIT_TEST_ACCEPTANCE
19871
--------------------------------------------------------
19872
set define off;
19873
 
5172 dpurdie 19874
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST_ACCEPTANCE" ( pnTest_id IN NUMBER,
3959 dpurdie 19875
														  pnPv_id IN NUMBER,
19876
					                                      sAccepted IN UNIT_TESTS.TEST_ACCEPTED%TYPE,
19877
														  sAcceptanceDate IN VARCHAR2,
19878
														  sAcceptedBy IN NUMBER,
19879
					                                      sReviewComments IN UNIT_TESTS.REVIEW_COMMENTS%TYPE,
19880
														  cUpdateAcceptedStateOnly IN CHAR
19881
					                                     ) IS
19882
/* ---------------------------------------------------------------------------
19883
    Version: 3.0.0
19884
   --------------------------------------------------------------------------- */
1373 dpurdie 19885
 
19886
 
19887
 
3959 dpurdie 19888
BEGIN
19889
	IF cUpdateAcceptedStateOnly = 'Y'
19890
	THEN
19891
		--- Update Accepted State Only ---
19892
		IF ( sAccepted IS NULL )
19893
		THEN
19894
			-- Clear alleptance
19895
			UPDATE UNIT_TESTS SET
19896
		           TEST_ACCEPTED = NULL,
19897
		           ACCEPTANCE_DATE = NULL,
19898
				   ACCEPTED_BY = NULL,
19899
				   REVIEW_COMMENTS = NULL
19900
		     WHERE TEST_ID = pnTest_id
19901
		       AND PV_ID = pnPv_id;
19902
 
19903
	    ELSE
19904
			UPDATE UNIT_TESTS SET
19905
		           TEST_ACCEPTED = sAccepted,
19906
		           ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),
19907
				   ACCEPTED_BY = sAcceptedBy
19908
		     WHERE TEST_ID = pnTest_id
19909
		       AND PV_ID = pnPv_id;
19910
 
19911
		END IF;
19912
 
19913
 
19914
	ELSE
19915
		--- Update Unit Test Acceptance ---
19916
	    UPDATE UNIT_TESTS SET
19917
	           TEST_ACCEPTED = sAccepted,
19918
			   REVIEW_COMMENTS = sReviewComments,
19919
	           ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),
19920
			   ACCEPTED_BY = sAcceptedBy
19921
	     WHERE TEST_ID = pnTest_id
19922
	       AND PV_ID = pnPv_id;
19923
 
19924
	END IF;
19925
 
19926
END Update_Unit_Test_Acceptance;
4040 dpurdie 19927
 
1374 dpurdie 19928
/
4040 dpurdie 19929
--------------------------------------------------------
19930
--  DDL for Synonymn APPLICATIONS
19931
--------------------------------------------------------
19932
 
5172 dpurdie 19933
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."APPLICATIONS" FOR "ACCESS_MANAGER"."APPLICATIONS";
4040 dpurdie 19934
--------------------------------------------------------
19935
--  DDL for Synonymn APPLICATION_PAGES
19936
--------------------------------------------------------
19937
 
5172 dpurdie 19938
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."APPLICATION_PAGES" FOR "ACCESS_MANAGER"."APPLICATION_PAGES";
4040 dpurdie 19939
--------------------------------------------------------
19940
--  DDL for Synonymn CONTROL_OBJECTS
19941
--------------------------------------------------------
19942
 
5172 dpurdie 19943
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."CONTROL_OBJECTS";
4040 dpurdie 19944
--------------------------------------------------------
19945
--  DDL for Synonymn DATA_PERMISSIONS
19946
--------------------------------------------------------
19947
 
5172 dpurdie 19948
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."DATA_PERMISSIONS" FOR "ACCESS_MANAGER"."DATA_PERMISSIONS";
4040 dpurdie 19949
--------------------------------------------------------
19950
--  DDL for Synonymn DATA_TABLES
19951
--------------------------------------------------------
19952
 
5172 dpurdie 19953
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."DATA_TABLES" FOR "ACCESS_MANAGER"."DATA_TABLES";
4040 dpurdie 19954
--------------------------------------------------------
19955
--  DDL for Synonymn PAGE_CONTROL_OBJECTS
19956
--------------------------------------------------------
19957
 
5172 dpurdie 19958
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PAGE_CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."PAGE_CONTROL_OBJECTS";
4040 dpurdie 19959
--------------------------------------------------------
19960
--  DDL for Synonymn PERMISSION_TYPES
19961
--------------------------------------------------------
19962
 
5172 dpurdie 19963
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PERMISSION_TYPES" FOR "ACCESS_MANAGER"."PERMISSION_TYPES";
4040 dpurdie 19964
--------------------------------------------------------
19965
--  DDL for Synonymn PK_AMUTILS
19966
--------------------------------------------------------
19967
 
5172 dpurdie 19968
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PK_AMUTILS" FOR "ACCESS_MANAGER"."PK_AMUTILS";
4040 dpurdie 19969
--------------------------------------------------------
19970
--  DDL for Synonymn PK_SECURITY
19971
--------------------------------------------------------
19972
 
5172 dpurdie 19973
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PK_SECURITY" FOR "ACCESS_MANAGER"."PK_SECURITY";
4040 dpurdie 19974
--------------------------------------------------------
19975
--  DDL for Synonymn ROLES
19976
--------------------------------------------------------
19977
 
5172 dpurdie 19978
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."ROLES" FOR "ACCESS_MANAGER"."ROLES";
4040 dpurdie 19979
--------------------------------------------------------
19980
--  DDL for Synonymn ROLE_PRIVILEGES
19981
--------------------------------------------------------
19982
 
5172 dpurdie 19983
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."ROLE_PRIVILEGES" FOR "ACCESS_MANAGER"."ROLE_PRIVILEGES";
4040 dpurdie 19984
--------------------------------------------------------
19985
--  DDL for Synonymn USERS
19986
--------------------------------------------------------
19987
 
5172 dpurdie 19988
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USERS" FOR "ACCESS_MANAGER"."USERS";
4040 dpurdie 19989
--------------------------------------------------------
19990
--  DDL for Synonymn USER_APPLICATIONS
19991
--------------------------------------------------------
19992
 
5172 dpurdie 19993
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USER_APPLICATIONS" FOR "ACCESS_MANAGER"."USER_APPLICATIONS";
4040 dpurdie 19994
--------------------------------------------------------
19995
--  DDL for Synonymn USER_ROLES
19996
--------------------------------------------------------
19997
 
5172 dpurdie 19998
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USER_ROLES" FOR "ACCESS_MANAGER"."USER_ROLES";