Subversion Repositories DevTools

Rev

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

Rev Author Line No. Line
1374 dpurdie 1
--------------------------------------------------------
6600 dpurdie 2
--  File created - Thursday-July-26-2018   
1374 dpurdie 3
--------------------------------------------------------
4040 dpurdie 4
--------------------------------------------------------
5
--  DDL for Type RELMGR_NUMBER_TAB_T
6
--------------------------------------------------------
1373 dpurdie 7
 
5172 dpurdie 8
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_NUMBER_TAB_T" as TABLE of NUMBER
1373 dpurdie 9
 
4040 dpurdie 10
/
6031 dpurdie 11
--------------------------------------------------------
12
--  DDL for Type RELMGR_PKG_DESTROY_ERR_T
13
--------------------------------------------------------
14
 
15
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_PKG_DESTROY_ERR_T" AS OBJECT 
16
( msg VARCHAR(200),
17
  mtype CHAR(1)
18
)
19
 
20
/
21
--------------------------------------------------------
22
--  DDL for Type RELMGR_PKG_DESTROY_ERR_TAB_T
23
--------------------------------------------------------
24
 
25
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_PKG_DESTROY_ERR_TAB_T" 
26
AS TABLE OF RELMGR_PKG_DESTROY_ERR_T;
27
 
28
/
4040 dpurdie 29
--------------------------------------------------------
30
--  DDL for Type RELMGR_VARCHAR2_TAB_T
31
--------------------------------------------------------
32
 
5172 dpurdie 33
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."RELMGR_VARCHAR2_TAB_T" 
4040 dpurdie 34
as TABLE of VARCHAR2(4000)
35
 
36
/
37
--------------------------------------------------------
38
--  DDL for Type TDICTIONARY
39
--------------------------------------------------------
40
 
5892 dpurdie 41
  CREATE OR REPLACE TYPE "RELEASE_MANAGER"."TDICTIONARY" AS
42
  TABLE OF VARCHAR2(4000)
4040 dpurdie 43
 
44
/
45
--------------------------------------------------------
46
--  DDL for Sequence MICROSOFTSEQDTPROPERTIES
47
--------------------------------------------------------
48
 
5172 dpurdie 49
   CREATE SEQUENCE  "RELEASE_MANAGER"."MICROSOFTSEQDTPROPERTIES"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 50 NOORDER  NOCYCLE ;
4040 dpurdie 50
--------------------------------------------------------
51
--  DDL for Sequence SEQ_ADDITIONAL_NOTES
52
--------------------------------------------------------
53
 
6600 dpurdie 54
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_ADDITIONAL_NOTES"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 37313 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 55
--------------------------------------------------------
56
--  DDL for Sequence SEQ_BMCON_ID
57
--------------------------------------------------------
58
 
6600 dpurdie 59
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BMCON_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 401 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 60
--------------------------------------------------------
61
--  DDL for Sequence SEQ_BM_ID
62
--------------------------------------------------------
63
 
6031 dpurdie 64
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BM_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 6 NOCACHE  ORDER  NOCYCLE ;
5172 dpurdie 65
--------------------------------------------------------
66
--  DDL for Sequence SEQ_BSA_ID
67
--------------------------------------------------------
68
 
6031 dpurdie 69
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BSA_ID"  MINVALUE 8 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 48 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 70
--------------------------------------------------------
5172 dpurdie 71
--  DDL for Sequence SEQ_BUILD_INSTANCE
72
--------------------------------------------------------
73
 
6600 dpurdie 74
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_BUILD_INSTANCE"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 254039 CACHE 20 ORDER  NOCYCLE ;
5172 dpurdie 75
--------------------------------------------------------
4040 dpurdie 76
--  DDL for Sequence SEQ_CR_ID
77
--------------------------------------------------------
78
 
6600 dpurdie 79
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_CR_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 96052 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 80
--------------------------------------------------------
81
--  DDL for Sequence SEQ_DAEMON_INSTRUCTION_ID
82
--------------------------------------------------------
83
 
6600 dpurdie 84
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_DAEMON_INSTRUCTION_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 169770 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 85
--------------------------------------------------------
86
--  DDL for Sequence SEQ_GBE_ID
87
--------------------------------------------------------
88
 
6600 dpurdie 89
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_GBE_ID"  MINVALUE 40 MAXVALUE 9999999999999999999999990 INCREMENT BY 1 START WITH 1245 NOCACHE  ORDER  NOCYCLE ;
4040 dpurdie 90
--------------------------------------------------------
91
--  DDL for Sequence SEQ_GROUP_EMAIL_ID
92
--------------------------------------------------------
93
 
6031 dpurdie 94
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_GROUP_EMAIL_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999 INCREMENT BY 1 START WITH 1186 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 95
--------------------------------------------------------
96
--  DDL for Sequence SEQ_MSG_ID
97
--------------------------------------------------------
98
 
6031 dpurdie 99
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_MSG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 582 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 100
--------------------------------------------------------
101
--  DDL for Sequence SEQ_PKG_ID
102
--------------------------------------------------------
103
 
6600 dpurdie 104
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PKG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 66589 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 105
--------------------------------------------------------
106
--  DDL for Sequence SEQ_PROJ_ID
107
--------------------------------------------------------
108
 
6600 dpurdie 109
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PROJ_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 941 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 110
--------------------------------------------------------
111
--  DDL for Sequence SEQ_PV_ID
112
--------------------------------------------------------
113
 
6600 dpurdie 114
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_PV_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1259965 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 115
--------------------------------------------------------
116
--  DDL for Sequence SEQ_RCON_ID
117
--------------------------------------------------------
118
 
6600 dpurdie 119
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RCON_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 33943 CACHE 20 ORDER  NOCYCLE ;
5172 dpurdie 120
--------------------------------------------------------
121
--  DDL for Sequence SEQ_RELEASE_MOD
122
--------------------------------------------------------
123
 
6600 dpurdie 124
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RELEASE_MOD"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 342814 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 125
--------------------------------------------------------
126
--  DDL for Sequence SEQ_RTAG_ID
127
--------------------------------------------------------
128
 
6600 dpurdie 129
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_RTAG_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 37029 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 130
--------------------------------------------------------
131
--  DDL for Sequence SEQ_SCHEDULED_ID
132
--------------------------------------------------------
133
 
6600 dpurdie 134
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SCHEDULED_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999990 INCREMENT BY 1 START WITH 29733 CACHE 20 ORDER  NOCYCLE ;
5172 dpurdie 135
--------------------------------------------------------
136
--  DDL for Sequence SEQ_SDKTAG_ID
137
--------------------------------------------------------
138
 
6600 dpurdie 139
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SDKTAG_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 883 CACHE 20 NOORDER  NOCYCLE ;
4040 dpurdie 140
--------------------------------------------------------
5172 dpurdie 141
--  DDL for Sequence SEQ_SDK_ID
142
--------------------------------------------------------
143
 
6600 dpurdie 144
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SDK_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 163 CACHE 20 NOORDER  NOCYCLE ;
5172 dpurdie 145
--------------------------------------------------------
4040 dpurdie 146
--  DDL for Sequence SEQ_SESSION_NUM
147
--------------------------------------------------------
148
 
6600 dpurdie 149
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_SESSION_NUM"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1103850 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 150
--------------------------------------------------------
5892 dpurdie 151
--  DDL for Sequence SEQ_TESTRUN_ID
152
--------------------------------------------------------
153
 
6600 dpurdie 154
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_TESTRUN_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 2948677 CACHE 20 NOORDER  NOCYCLE ;
5892 dpurdie 155
--------------------------------------------------------
4040 dpurdie 156
--  DDL for Sequence SEQ_UNIT_TESTS
157
--------------------------------------------------------
158
 
6600 dpurdie 159
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_UNIT_TESTS"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 368596 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 160
--------------------------------------------------------
161
--  DDL for Sequence SEQ_USER_ID
162
--------------------------------------------------------
163
 
5172 dpurdie 164
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_USER_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 3961 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 165
--------------------------------------------------------
166
--  DDL for Sequence SEQ_VCS_TYPE
167
--------------------------------------------------------
168
 
6031 dpurdie 169
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VCS_TYPE"  MINVALUE 1 MAXVALUE 255 INCREMENT BY 1 START WITH 63 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 170
--------------------------------------------------------
171
--  DDL for Sequence SEQ_VIEW_ID
172
--------------------------------------------------------
173
 
6600 dpurdie 174
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VIEW_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 10221 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 175
--------------------------------------------------------
176
--  DDL for Sequence SEQ_VTREE_ID
177
--------------------------------------------------------
178
 
6600 dpurdie 179
   CREATE SEQUENCE  "RELEASE_MANAGER"."SEQ_VTREE_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 33848 CACHE 20 ORDER  NOCYCLE ;
4040 dpurdie 180
--------------------------------------------------------
181
--  DDL for Table ABT_ACTION_LOG
182
--------------------------------------------------------
183
 
5172 dpurdie 184
  CREATE TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" 
4040 dpurdie 185
   (	"RCON_ID" NUMBER, 
186
	"ACTION_DATETIME" DATE, 
5172 dpurdie 187
	"ACTION" VARCHAR2(4000 BYTE)
188
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 189
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
190
 NOCOMPRESS LOGGING
5172 dpurdie 191
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 192
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
193
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
194
  TABLESPACE "RELEASE_MANAGER_DATA" ;
195
  GRANT SELECT ON "RELEASE_MANAGER"."ABT_ACTION_LOG" TO "RM_READONLY";
196
  GRANT SELECT ON "RELEASE_MANAGER"."ABT_ACTION_LOG" TO "MS_READONLY";
5892 dpurdie 197
  GRANT SELECT ON "RELEASE_MANAGER"."ABT_ACTION_LOG" TO "DM_READONLY";
4040 dpurdie 198
--------------------------------------------------------
199
--  DDL for Table ACTION_LOG
200
--------------------------------------------------------
201
 
5172 dpurdie 202
  CREATE TABLE "RELEASE_MANAGER"."ACTION_LOG" 
4040 dpurdie 203
   (	"USER_ID" NUMBER, 
5172 dpurdie 204
	"ACTION_DATETIME" DATE DEFAULT SYSDATE, 
4040 dpurdie 205
	"PV_ID" NUMBER, 
5172 dpurdie 206
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
207
	"ACTTYPE_ID" NUMBER, 
208
	"ACTION_TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP
209
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 210
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
211
 NOCOMPRESS LOGGING
5172 dpurdie 212
  STORAGE(INITIAL 308281344 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 213
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
214
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
215
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 216
 
217
   COMMENT ON COLUMN "RELEASE_MANAGER"."ACTION_LOG"."ACTION_DATETIME" IS 'To be deprecated. Use timestamp instead';
6031 dpurdie 218
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "RM_READONLY";
219
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "MS_READONLY";
5892 dpurdie 220
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "DM_READONLY";
221
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "RELEASE_MANAGER_READ";
6031 dpurdie 222
  GRANT DELETE ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";
223
  GRANT UPDATE ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";
224
  GRANT INSERT ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";
225
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_LOG" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 226
--------------------------------------------------------
227
--  DDL for Table ACTION_TYPE
228
--------------------------------------------------------
229
 
5172 dpurdie 230
  CREATE TABLE "RELEASE_MANAGER"."ACTION_TYPE" 
4040 dpurdie 231
   (	"ACTTYPE_ID" NUMBER, 
5172 dpurdie 232
	"NAME" VARCHAR2(255 BYTE), 
233
	"DESCRIPTION" VARCHAR2(4000 BYTE)
234
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 235
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
236
 NOCOMPRESS LOGGING
5172 dpurdie 237
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 238
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
239
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
240
  TABLESPACE "RELEASE_MANAGER_DATA" ;
241
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "RM_READONLY";
242
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "MS_READONLY";
5892 dpurdie 243
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "DM_READONLY";
244
  GRANT SELECT ON "RELEASE_MANAGER"."ACTION_TYPE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 245
--------------------------------------------------------
246
--  DDL for Table ADDITIONAL_NOTES
247
--------------------------------------------------------
248
 
5172 dpurdie 249
  CREATE TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" 
4040 dpurdie 250
   (	"NOTE_ID" NUMBER, 
251
	"PV_ID" NUMBER, 
5172 dpurdie 252
	"NOTE_TITLE" VARCHAR2(2000 BYTE), 
253
	"NOTE_BODY" VARCHAR2(4000 BYTE), 
4040 dpurdie 254
	"MOD_DATE" DATE, 
255
	"MOD_USER" NUMBER
5172 dpurdie 256
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 257
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
258
 NOCOMPRESS LOGGING
5172 dpurdie 259
  STORAGE(INITIAL 55574528 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 260
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
261
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
262
  TABLESPACE "RELEASE_MANAGER_DATA" ;
263
  GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "RM_READONLY";
264
  GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "MS_READONLY";
5892 dpurdie 265
  GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "DM_READONLY";
266
  GRANT SELECT ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 267
--------------------------------------------------------
268
--  DDL for Table ADVISORY_RIPPLE
269
--------------------------------------------------------
270
 
5172 dpurdie 271
  CREATE TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" 
4040 dpurdie 272
   (	"RTAG_ID" NUMBER, 
273
	"PV_ID" NUMBER
5172 dpurdie 274
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 275
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
276
 NOCOMPRESS LOGGING
5172 dpurdie 277
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 278
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
279
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
280
  TABLESPACE "RELEASE_MANAGER_DATA" ;
281
  GRANT SELECT ON "RELEASE_MANAGER"."ADVISORY_RIPPLE" TO "RM_READONLY";
282
  GRANT SELECT ON "RELEASE_MANAGER"."ADVISORY_RIPPLE" TO "MS_READONLY";
5892 dpurdie 283
  GRANT SELECT ON "RELEASE_MANAGER"."ADVISORY_RIPPLE" TO "DM_READONLY";
4040 dpurdie 284
--------------------------------------------------------
285
--  DDL for Table ARCHIVE_ACTION_LOG
286
--------------------------------------------------------
287
 
5172 dpurdie 288
  CREATE TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" 
4040 dpurdie 289
   (	"USER_ID" NUMBER, 
290
	"DATE_TIME_STAMP" DATE, 
291
	"RTAG_ID" NUMBER, 
5172 dpurdie 292
	"DESCRIPTION" VARCHAR2(4000 BYTE)
293
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 294
  PCTFREE 10 PCTUSED 0 INITRANS 1 MAXTRANS 255 
295
 NOCOMPRESS LOGGING
5172 dpurdie 296
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 297
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
298
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
299
  TABLESPACE "RELEASE_MANAGER_DATA" ;
300
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" TO "RM_READONLY";
301
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" TO "MS_READONLY";
5892 dpurdie 302
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" TO "DM_READONLY";
4040 dpurdie 303
--------------------------------------------------------
304
--  DDL for Table ARCHIVE_DATA
305
--------------------------------------------------------
306
 
5172 dpurdie 307
  CREATE TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" 
4040 dpurdie 308
   (	"RTAG_ID" NUMBER(*,0), 
309
	"PV_ID" NUMBER(*,0)
5172 dpurdie 310
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 311
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
312
 NOCOMPRESS LOGGING
5172 dpurdie 313
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 314
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
315
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
316
  TABLESPACE "RELEASE_MANAGER_DATA" ;
317
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_DATA" TO "RM_READONLY";
318
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_DATA" TO "MS_READONLY";
5892 dpurdie 319
  GRANT SELECT ON "RELEASE_MANAGER"."ARCHIVE_DATA" TO "DM_READONLY";
4040 dpurdie 320
--------------------------------------------------------
321
--  DDL for Table AUTOBUILD_FAILURE
322
--------------------------------------------------------
323
 
5172 dpurdie 324
  CREATE TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" 
4040 dpurdie 325
   (	"GROUP_EMAIL_ID" NUMBER, 
326
	"PROJ_ID" NUMBER, 
327
	"VIEW_ID" NUMBER
5172 dpurdie 328
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 329
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
330
 NOCOMPRESS LOGGING
5172 dpurdie 331
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 332
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
333
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
334
  TABLESPACE "RELEASE_MANAGER_DATA" ;
335
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "RM_READONLY";
336
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "MS_READONLY";
5892 dpurdie 337
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "DM_READONLY";
338
  GRANT SELECT ON "RELEASE_MANAGER"."AUTOBUILD_FAILURE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 339
--------------------------------------------------------
340
--  DDL for Table BUILD_ENVIRONMENTS
341
--------------------------------------------------------
342
 
5172 dpurdie 343
  CREATE TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" 
4040 dpurdie 344
   (	"BE_ID" NUMBER, 
5172 dpurdie 345
	"BE_NAME" VARCHAR2(255 BYTE)
346
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 347
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
348
 NOCOMPRESS LOGGING
5172 dpurdie 349
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 350
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
351
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
352
  TABLESPACE "RELEASE_MANAGER_DATA" ;
353
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "RM_READONLY";
354
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "MS_READONLY";
5892 dpurdie 355
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DM_READONLY";
356
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "RELEASE_MANAGER_READ";
6031 dpurdie 357
  GRANT UPDATE ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";
358
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";
359
  GRANT INSERT ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";
360
  GRANT DELETE ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 361
--------------------------------------------------------
362
--  DDL for Table BUILD_ENV_DOCUMENTS
363
--------------------------------------------------------
364
 
5172 dpurdie 365
  CREATE TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" 
4040 dpurdie 366
   (	"BE_ID" NUMBER, 
5172 dpurdie 367
	"DOC_NUM" VARCHAR2(255 BYTE)
368
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 369
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
370
 NOCOMPRESS LOGGING
5172 dpurdie 371
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 372
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
373
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
374
  TABLESPACE "RELEASE_MANAGER_DATA" ;
375
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "RM_READONLY";
376
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "MS_READONLY";
5892 dpurdie 377
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "DM_READONLY";
378
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" TO "RELEASE_MANAGER_READ";
5172 dpurdie 379
--------------------------------------------------------
380
--  DDL for Table BUILD_INSTANCES
381
--------------------------------------------------------
382
 
383
  CREATE TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" 
384
   (	"BUILD_ID" NUMBER, 
385
	"RTAG_ID" NUMBER, 
386
	"PV_ID" NUMBER, 
387
	"TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP, 
388
	"REASON" CHAR(1 BYTE), 
389
	"STATE" CHAR(1 BYTE) DEFAULT 'B'
390
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 391
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
392
 NOCOMPRESS LOGGING
5172 dpurdie 393
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 394
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
395
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
396
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 397
 
398
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."BUILD_ID" IS 'Unique. Auto generated when row is created.';
399
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."RTAG_ID" IS 'Link the build to a Release';
400
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."PV_ID" IS 'Link the build to a Package';
401
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."TIMESTAMP" IS 'When the instance is created';
402
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."REASON" IS 'Reason for the build. Ripple(''R''), Test(''T''), NewVersion(''N''), Restore(''P'')';
403
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_INSTANCES"."STATE" IS 'Result of the build. ''B'', ''Buiding'', ''C'', ''Complete'', ''E'', ''Error'', ''S'', ''SysErr''';
4040 dpurdie 404
--------------------------------------------------------
405
--  DDL for Table BUILD_MACHINES
406
--------------------------------------------------------
407
 
5172 dpurdie 408
  CREATE TABLE "RELEASE_MANAGER"."BUILD_MACHINES" 
4040 dpurdie 409
   (	"BM_ID" NUMBER, 
5172 dpurdie 410
	"BM_NAME" VARCHAR2(20 BYTE)
411
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 412
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
413
 NOCOMPRESS LOGGING
5172 dpurdie 414
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 415
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
416
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
417
  TABLESPACE "RELEASE_MANAGER_DATA" ;
418
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "RM_READONLY";
419
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "MS_READONLY";
5892 dpurdie 420
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "DM_READONLY";
421
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 422
--------------------------------------------------------
423
--  DDL for Table BUILD_MACHINE_CONFIG
424
--------------------------------------------------------
425
 
5172 dpurdie 426
  CREATE TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" 
4040 dpurdie 427
   (	"BMCON_ID" NUMBER, 
5172 dpurdie 428
	"DISPLAY_NAME" VARCHAR2(50 BYTE), 
429
	"MACHINE_HOSTNAME" VARCHAR2(50 BYTE), 
430
	"DESCRIPTION" VARCHAR2(512 BYTE), 
431
	"GBE_ID" NUMBER, 
432
	"ACTIVE" CHAR(1 BYTE) DEFAULT 'Y'
433
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 434
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
435
 NOCOMPRESS LOGGING
5172 dpurdie 436
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 437
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
438
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
439
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 440
 
441
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG"."ACTIVE" IS 'Allows user to select deamon, otherwise its not shown unless already in use.';
6031 dpurdie 442
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "RM_READONLY";
443
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "MS_READONLY";
5892 dpurdie 444
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "DM_READONLY";
445
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 446
--------------------------------------------------------
447
--  DDL for Table BUILD_ORDER
448
--------------------------------------------------------
449
 
5172 dpurdie 450
  CREATE TABLE "RELEASE_MANAGER"."BUILD_ORDER" 
4040 dpurdie 451
   (	"RTAG_ID" NUMBER, 
452
	"STEP_NUM" NUMBER, 
453
	"PV_ID" NUMBER, 
5172 dpurdie 454
	"UNRESOLVED" CHAR(1 BYTE)
455
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 456
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
457
 NOCOMPRESS LOGGING
5172 dpurdie 458
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 459
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
460
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
461
  TABLESPACE "RELEASE_MANAGER_DATA" ;
462
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "RM_READONLY";
463
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "MS_READONLY";
5892 dpurdie 464
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "DM_READONLY";
465
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_ORDER" TO "RELEASE_MANAGER_READ";
466
--------------------------------------------------------
467
--  DDL for Table BUILD_PLAN
468
--------------------------------------------------------
469
 
470
  CREATE TABLE "RELEASE_MANAGER"."BUILD_PLAN" 
471
   (	"RTAG_ID" NUMBER, 
472
	"BUILD_ORDER" NUMBER, 
473
	"PV_ID" NUMBER
474
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 475
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
476
 NOCOMPRESS LOGGING
5892 dpurdie 477
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 478
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
479
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
480
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5892 dpurdie 481
 
482
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_PLAN"."RTAG_ID" IS 'Identify target Release';
483
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_PLAN"."BUILD_ORDER" IS 'Sequence for build';
484
   COMMENT ON COLUMN "RELEASE_MANAGER"."BUILD_PLAN"."PV_ID" IS 'Package to build';
4040 dpurdie 485
--------------------------------------------------------
486
--  DDL for Table BUILD_SERVICE_CONFIG
487
--------------------------------------------------------
488
 
5172 dpurdie 489
  CREATE TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" 
490
   (	"SERVICE" VARCHAR2(50 BYTE), 
491
	"CONFIG" VARCHAR2(2000 BYTE)
492
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 493
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
494
 NOCOMPRESS LOGGING
5172 dpurdie 495
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 496
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
497
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
498
  TABLESPACE "RELEASE_MANAGER_DATA" ;
499
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "RM_READONLY";
500
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "MS_READONLY";
5892 dpurdie 501
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "DM_READONLY";
502
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 503
--------------------------------------------------------
504
--  DDL for Table BUILD_STANDARDS
505
--------------------------------------------------------
506
 
5172 dpurdie 507
  CREATE TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" 
4040 dpurdie 508
   (	"BS_ID" NUMBER, 
5172 dpurdie 509
	"BS_NAME" VARCHAR2(20 BYTE)
510
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 511
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
512
 NOCOMPRESS LOGGING
5172 dpurdie 513
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 514
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
515
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
516
  TABLESPACE "RELEASE_MANAGER_DATA" ;
517
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "RM_READONLY";
518
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "MS_READONLY";
5892 dpurdie 519
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "DM_READONLY";
520
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 521
--------------------------------------------------------
522
--  DDL for Table BUILD_STANDARDS_ADDENDUM
523
--------------------------------------------------------
524
 
5172 dpurdie 525
  CREATE TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" 
4040 dpurdie 526
   (	"BSA_ID" NUMBER, 
5172 dpurdie 527
	"BSA_NAME" VARCHAR2(4000 BYTE), 
4040 dpurdie 528
	"BS_ID" NUMBER
5172 dpurdie 529
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 530
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
531
 NOCOMPRESS LOGGING
5172 dpurdie 532
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 533
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
534
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
535
  TABLESPACE "RELEASE_MANAGER_DATA" ;
536
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "RM_READONLY";
537
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "MS_READONLY";
5892 dpurdie 538
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "DM_READONLY";
539
  GRANT SELECT ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 540
--------------------------------------------------------
541
--  DDL for Table CODE_REVIEWS
542
--------------------------------------------------------
543
 
5172 dpurdie 544
  CREATE TABLE "RELEASE_MANAGER"."CODE_REVIEWS" 
4040 dpurdie 545
   (	"PV_ID" NUMBER, 
546
	"DATE_OF_REVIEW" DATE, 
547
	"TIME_SPENT" FLOAT(126), 
5172 dpurdie 548
	"REVIEW_REASON" VARCHAR2(4000 BYTE), 
549
	"RTEAM_DOMAIN_EXPERT" VARCHAR2(4000 BYTE), 
550
	"RTEAM_LANGUAGE_EXPERT" VARCHAR2(4000 BYTE), 
551
	"RTEAM_PEER_DEVELOPER" VARCHAR2(4000 BYTE), 
552
	"RTEAM_AUTHOR" VARCHAR2(4000 BYTE), 
553
	"FILES_REVIEWED" VARCHAR2(4000 BYTE), 
4040 dpurdie 554
	"REVIEW_RESULTS" NUMBER, 
5172 dpurdie 555
	"ISSUES_RAISED" VARCHAR2(4000 BYTE), 
556
	"REVIEW_COMMENTS" VARCHAR2(4000 BYTE), 
557
	"FNC_S_MEETS_FUNCTIONALITY" CHAR(1 BYTE), 
558
	"FNC_C_MEETS_FUNCTIONALITY" VARCHAR2(4000 BYTE), 
559
	"RBS_S_BOUND_COND_HANDLED" CHAR(1 BYTE), 
560
	"RBS_C_BOUND_COND_HANDLED" VARCHAR2(4000 BYTE), 
561
	"RBS_S_CLASS_INTERF_PRECOND" CHAR(1 BYTE), 
562
	"RBS_C_CLASS_INTERF_PRECOND" VARCHAR2(4000 BYTE), 
563
	"RBS_S_NO_UNITIALISED_DATE" CHAR(1 BYTE), 
564
	"RBS_C_NO_UNITIALISED_DATE" VARCHAR2(4000 BYTE), 
565
	"RBS_S_EXCEP_HANDING" CHAR(1 BYTE), 
566
	"RBS_C_EXCEP_HANDING" VARCHAR2(4000 BYTE), 
567
	"RBS_S_RESOURCE_MNG" CHAR(1 BYTE), 
568
	"RBS_C_RESOURCE_MNG" VARCHAR2(4000 BYTE), 
569
	"RBS_S_TRANS_COMPLET" CHAR(1 BYTE), 
570
	"RBS_C_TRANS_COMPLET" VARCHAR2(4000 BYTE), 
571
	"RBS_S_THREADSAFETY" CHAR(1 BYTE), 
572
	"RBS_C_THREADSAFETY" VARCHAR2(4000 BYTE), 
573
	"RBS_S_RET_VALS" CHAR(1 BYTE), 
574
	"RBS_C_RET_VALS" VARCHAR2(4000 BYTE), 
575
	"RBS_S_CORR_ERR_HANDLING" CHAR(1 BYTE), 
576
	"RBS_C_CORR_ERR_HANDLING" VARCHAR2(4000 BYTE), 
577
	"RBS_S_SQL_STD" CHAR(1 BYTE), 
578
	"RBS_C_SQL_STD" VARCHAR2(4000 BYTE), 
579
	"MNT_S_EXT_REF" CHAR(1 BYTE), 
580
	"MNT_C_EXT_REF" VARCHAR2(4000 BYTE), 
581
	"MNT_S_CLASS_SIZE" CHAR(1 BYTE), 
582
	"MNT_C_CLASS_SIZE" VARCHAR2(4000 BYTE), 
583
	"MNT_S_METHOD_SIZE" CHAR(1 BYTE), 
584
	"MNT_C_METHOD_SIZE" VARCHAR2(4000 BYTE), 
585
	"MNT_S_APPROP_COMM" CHAR(1 BYTE), 
586
	"MNT_C_APPROP_COMM" VARCHAR2(4000 BYTE), 
587
	"MNT_S_IDENT_NAME_STD" CHAR(1 BYTE), 
588
	"MNT_C_IDENT_NAME_STD" VARCHAR2(4000 BYTE), 
589
	"MNT_S_SWITCH_HAVE_DEFAULTS" CHAR(1 BYTE), 
590
	"MNT_C_SWITCH_HAVE_DEFAULTS" VARCHAR2(4000 BYTE), 
591
	"MNT_S_NO_LIT_NUM" CHAR(1 BYTE), 
592
	"MNT_C_NO_LIT_NUM" VARCHAR2(4000 BYTE), 
593
	"MNT_S_NO_DEAD_CODE" CHAR(1 BYTE), 
594
	"MNT_C_NO_DEAD_CODE" VARCHAR2(4000 BYTE), 
595
	"DEI_S_STD_DES_PATT" CHAR(1 BYTE), 
596
	"DEI_C_STD_DES_PATT" VARCHAR2(4000 BYTE), 
597
	"DEI_S_APPROP_ALGOR" CHAR(1 BYTE), 
598
	"DEI_C_APPROP_ALGOR" VARCHAR2(4000 BYTE), 
599
	"DEI_S_APPROP_OBJ" CHAR(1 BYTE), 
600
	"DEI_C_APPROP_OBJ" VARCHAR2(4000 BYTE), 
601
	"DEI_S_APPROP_ERR_MSG" CHAR(1 BYTE), 
602
	"DEI_C_APPROP_ERR_MSG" VARCHAR2(4000 BYTE), 
603
	"DEI_S_STD_FRAMEW_COMP" CHAR(1 BYTE), 
604
	"DEI_C_STD_FRAMEW_COMP" VARCHAR2(4000 BYTE), 
605
	"DEI_S_APPROP_LOGGING" CHAR(1 BYTE), 
606
	"DEI_C_APPROP_LOGGING" VARCHAR2(4000 BYTE)
607
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 608
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
609
 NOCOMPRESS LOGGING
5172 dpurdie 610
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 611
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
612
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
613
  TABLESPACE "RELEASE_MANAGER_DATA" ;
614
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "RM_READONLY";
615
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "MS_READONLY";
5892 dpurdie 616
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "DM_READONLY";
617
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEWS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 618
--------------------------------------------------------
619
--  DDL for Table CODE_REVIEW_URL
620
--------------------------------------------------------
621
 
5172 dpurdie 622
  CREATE TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" 
4040 dpurdie 623
   (	"CR_ID" NUMBER, 
624
	"PV_ID" NUMBER, 
625
	"PROJ_ID" NUMBER, 
5172 dpurdie 626
	"URL" VARCHAR2(4000 BYTE), 
627
	"REASON" VARCHAR2(4000 BYTE), 
4040 dpurdie 628
	"DATE_OF_REVIEW" DATE, 
629
	"LAST_MODIFIED" DATE
5172 dpurdie 630
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 631
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
632
 NOCOMPRESS LOGGING
5172 dpurdie 633
  STORAGE(INITIAL 983040 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 634
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
635
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
636
  TABLESPACE "RELEASE_MANAGER_DATA" ;
637
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEW_URL" TO "RM_READONLY";
638
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEW_URL" TO "MS_READONLY";
5892 dpurdie 639
  GRANT SELECT ON "RELEASE_MANAGER"."CODE_REVIEW_URL" TO "DM_READONLY";
4040 dpurdie 640
--------------------------------------------------------
4585 dpurdie 641
--  DDL for Table CQ_HISTORY
642
--------------------------------------------------------
643
 
5172 dpurdie 644
  CREATE TABLE "RELEASE_MANAGER"."CQ_HISTORY" 
4585 dpurdie 645
   (	"DBID" NUMBER(10,0), 
646
	"ENTITY_DBID" NUMBER(10,0), 
647
	"ENTITYDEF_ID" NUMBER(10,0), 
648
	"ENTITYDEF_NAME" VARCHAR2(30 CHAR), 
649
	"ACTION_TIMESTAMP" DATE, 
650
	"USER_NAME" VARCHAR2(30 CHAR), 
651
	"ACTION_NAME" VARCHAR2(30 CHAR), 
652
	"OLD_STATE" VARCHAR2(30 CHAR), 
653
	"NEW_STATE" VARCHAR2(30 CHAR), 
654
	"EXPIRED_TIMESTAMP" DATE
5172 dpurdie 655
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 656
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
657
 NOCOMPRESS LOGGING
5172 dpurdie 658
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 659
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
660
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
661
  TABLESPACE "RELEASE_MANAGER_DATA" ;
662
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "RM_READONLY";
663
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "MS_READONLY";
5892 dpurdie 664
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "DM_READONLY";
665
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "DEPLOYMENT_MANAGER";
666
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_HISTORY" TO "ACCESS_MANAGER";
4585 dpurdie 667
--------------------------------------------------------
4040 dpurdie 668
--  DDL for Table CQ_ISSUES
669
--------------------------------------------------------
670
 
5172 dpurdie 671
  CREATE TABLE "RELEASE_MANAGER"."CQ_ISSUES" 
4040 dpurdie 672
   (	"PV_ID" NUMBER, 
673
	"ISS_DB" NUMBER, 
674
	"ISS_ID" NUMBER, 
675
	"ISS_STATE" NUMBER, 
676
	"MOD_DATE" DATE, 
5172 dpurdie 677
	"NOTES" VARCHAR2(255 BYTE)
678
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 679
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
680
 NOCOMPRESS LOGGING
5172 dpurdie 681
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 682
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
683
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
684
  TABLESPACE "RELEASE_MANAGER_DATA" ;
685
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "RM_READONLY";
686
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "MS_READONLY";
5892 dpurdie 687
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "DM_READONLY";
688
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "RELEASE_MANAGER_READ";
689
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_ISSUES" TO "DEPLOYMENT_MANAGER";
4585 dpurdie 690
--------------------------------------------------------
691
--  DDL for Table CQ_SOFTWARE_ISSUE
692
--------------------------------------------------------
693
 
5172 dpurdie 694
  CREATE TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" 
4585 dpurdie 695
   (	"RATL_MASTERSHIP" NUMBER(10,0), 
696
	"DBID" NUMBER(10,0), 
697
	"IS_ACTIVE" NUMBER(10,0), 
698
	"ID" VARCHAR2(13 CHAR), 
699
	"STATE" NUMBER(10,0), 
700
	"VERSION" NUMBER(10,0), 
701
	"LOCK_VERSION" NUMBER(10,0), 
702
	"LOCKED_BY" NUMBER(10,0), 
703
	"IS_DUPLICATE" NUMBER(10,0), 
704
	"UNDUPLICATE_STATE" VARCHAR2(50 CHAR), 
705
	"HEADLINE" VARCHAR2(150 CHAR), 
706
	"DESCRIPTION" CLOB, 
707
	"PRIORITY" VARCHAR2(50 CHAR), 
708
	"SUBMITTER" NUMBER(10,0), 
709
	"SUBMIT_DATE" DATE, 
710
	"OWNER" NUMBER(10,0), 
711
	"APPROVER" NUMBER(10,0), 
712
	"NOTE_ENTRY" CLOB, 
713
	"NOTES_LOG" CLOB, 
714
	"RESOLUTION_DATE" DATE, 
715
	"ISSUE_TYPE" VARCHAR2(50 CHAR), 
716
	"PACKAGE_REF" VARCHAR2(50 CHAR), 
717
	"SOLUTION_APPROVED_DATE" DATE, 
718
	"CLOSE_DATE" DATE, 
719
	"BUILD_NUMBER" VARCHAR2(50 CHAR), 
720
	"NEW_NUM" VARCHAR2(50 CHAR), 
721
	"FOR_INFORMATION" CLOB, 
722
	"PROP_SOL_DATE" DATE, 
723
	"ARTIFACTS_TO_BE_UPDATED_1" CLOB, 
724
	"ISSUE_ID" NUMBER(10,0), 
725
	"SOLUTION_DATE" DATE, 
726
	"KPI_SOLUTION_DATE" DATE, 
727
	"TITLE" VARCHAR2(80 CHAR), 
728
	"PROJECT" VARCHAR2(50 CHAR), 
729
	"ORIGINATING_AREA" VARCHAR2(50 CHAR), 
730
	"ESTIMATED_TIME_INHOURS" NUMBER(10,0), 
731
	"RELEASE_PART1" NUMBER(10,0), 
732
	"RELEASE_PART2" NUMBER(10,0), 
733
	"RELEASE_PART3" NUMBER(10,0), 
734
	"SOLUTION_RELEASE_PART1" NUMBER(10,0), 
735
	"SOLUTION_RELEASE_PART2" NUMBER(10,0), 
736
	"SOLUTION_RELEASE_PART3" NUMBER(10,0), 
737
	"ORIGINAL_IMPLEMENT_DATE" DATE, 
738
	"ISSUE_LABEL" VARCHAR2(50 CHAR), 
739
	"PRODUCT" VARCHAR2(50 CHAR), 
740
	"ORIGIN" VARCHAR2(50 CHAR), 
741
	"CLONE_NOTE" CLOB, 
742
	"SOLUTION_LABEL" VARCHAR2(50 CHAR), 
743
	"REQUIRED_BY" DATE, 
744
	"ITERATION_AFFECTED" VARCHAR2(50 CHAR), 
745
	"MERGE_OLD_ID" VARCHAR2(150 CHAR), 
746
	"COMMENTS" CLOB, 
747
	"CHANGE_CONTROL" VARCHAR2(50 CHAR), 
748
	"MERGE_COMMENTS" CLOB, 
749
	"MERGE_CHANGE_CONTROL" VARCHAR2(50 CHAR), 
750
	"AWAITING_INFO_DESC" CLOB, 
751
	"REQUEST_CLOSE_DESC" CLOB, 
752
	"ROOT_CAUSE" VARCHAR2(50 CHAR), 
753
	"FLAGA" VARCHAR2(50 CHAR), 
754
	"FLAGB" VARCHAR2(50 CHAR), 
755
	"FLAGC" VARCHAR2(50 CHAR), 
756
	"SCHEDULED_RELEASE" VARCHAR2(60 CHAR), 
757
	"SEVERITY" VARCHAR2(50 CHAR), 
758
	"CUSTOM_FIELD_01" CLOB, 
759
	"CUSTOM_FIELD_02" CLOB, 
760
	"CUSTOM_FIELD_03" CLOB, 
761
	"CUSTOMER_REFERENCE" VARCHAR2(254 CHAR), 
762
	"TEAMLEADER" NUMBER(10,0), 
763
	"WIP" CLOB, 
764
	"RELEASEINFO" CLOB, 
765
	"SBOM" VARCHAR2(254 CHAR), 
766
	"NEW_EXTERNAL_NOTE" CLOB, 
767
	"EXTERNAL_NOTE_LOG" CLOB, 
768
	"CUSTOMER_REFERENCE_2" VARCHAR2(50 CHAR), 
769
	"CUSTOMER_REFERENCE_3" VARCHAR2(50 CHAR), 
770
	"CUSTOMER_REFERENCE_4" VARCHAR2(50 CHAR), 
771
	"CUSTOMER_REFERENCE_5" VARCHAR2(50 CHAR), 
772
	"TEST_CASES" CLOB, 
773
	"INTEGRATION_NOTES" CLOB, 
774
	"UPDATED_DESIGN_NOTES" VARCHAR2(50 CHAR), 
775
	"RELATED_DATABASE_PATCHES" VARCHAR2(50 CHAR), 
776
	"AFFECTED_PACKAGES" VARCHAR2(50 CHAR), 
777
	"CODEREVIEW_REFERENCE" CLOB, 
778
	"RISK" VARCHAR2(50 CHAR), 
779
	"DEPENDANT_DEVIS" VARCHAR2(50 CHAR), 
780
	"CUSTOM_FIELD_04" CLOB, 
781
	"CUSTOM_FIELD_05" CLOB, 
782
	"ITERATION_FOUND" VARCHAR2(50 CHAR)
5172 dpurdie 783
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 784
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
785
 NOCOMPRESS LOGGING
5172 dpurdie 786
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 787
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
788
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
789
  TABLESPACE "RELEASE_MANAGER_DATA" 
5172 dpurdie 790
 LOB ("DESCRIPTION") STORE AS BASICFILE (
6031 dpurdie 791
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 792
  NOCACHE LOGGING 
793
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 794
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
795
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 796
 LOB ("NOTE_ENTRY") STORE AS BASICFILE (
6031 dpurdie 797
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 798
  NOCACHE LOGGING 
799
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 800
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
801
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 802
 LOB ("NOTES_LOG") STORE AS BASICFILE (
6031 dpurdie 803
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 804
  NOCACHE LOGGING 
805
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 806
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
807
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 808
 LOB ("FOR_INFORMATION") STORE AS BASICFILE (
6031 dpurdie 809
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 810
  NOCACHE LOGGING 
811
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 812
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
813
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 814
 LOB ("ARTIFACTS_TO_BE_UPDATED_1") STORE AS BASICFILE (
6031 dpurdie 815
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 816
  NOCACHE LOGGING 
817
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 818
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
819
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 820
 LOB ("CLONE_NOTE") STORE AS BASICFILE (
6031 dpurdie 821
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 822
  NOCACHE LOGGING 
823
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 824
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
825
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 826
 LOB ("COMMENTS") STORE AS BASICFILE (
6031 dpurdie 827
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 828
  NOCACHE LOGGING 
829
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 830
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
831
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 832
 LOB ("MERGE_COMMENTS") STORE AS BASICFILE (
6031 dpurdie 833
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 834
  NOCACHE LOGGING 
835
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 836
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
837
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 838
 LOB ("AWAITING_INFO_DESC") STORE AS BASICFILE (
6031 dpurdie 839
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 840
  NOCACHE LOGGING 
841
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 842
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
843
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 844
 LOB ("REQUEST_CLOSE_DESC") STORE AS BASICFILE (
6031 dpurdie 845
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 846
  NOCACHE LOGGING 
847
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 848
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
849
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 850
 LOB ("CUSTOM_FIELD_01") STORE AS BASICFILE (
6031 dpurdie 851
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 852
  NOCACHE LOGGING 
853
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 854
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
855
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 856
 LOB ("CUSTOM_FIELD_02") STORE AS BASICFILE (
6031 dpurdie 857
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 858
  NOCACHE LOGGING 
859
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 860
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
861
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 862
 LOB ("CUSTOM_FIELD_03") STORE AS BASICFILE (
6031 dpurdie 863
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 864
  NOCACHE LOGGING 
865
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 866
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
867
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 868
 LOB ("WIP") STORE AS BASICFILE (
6031 dpurdie 869
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 870
  NOCACHE LOGGING 
871
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 872
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
873
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 874
 LOB ("RELEASEINFO") STORE AS BASICFILE (
6031 dpurdie 875
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 876
  NOCACHE LOGGING 
877
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 878
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
879
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 880
 LOB ("NEW_EXTERNAL_NOTE") STORE AS BASICFILE (
6031 dpurdie 881
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 882
  NOCACHE LOGGING 
883
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 884
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
885
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 886
 LOB ("EXTERNAL_NOTE_LOG") STORE AS BASICFILE (
6031 dpurdie 887
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 888
  NOCACHE LOGGING 
889
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 890
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
891
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 892
 LOB ("TEST_CASES") STORE AS BASICFILE (
6031 dpurdie 893
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 894
  NOCACHE LOGGING 
895
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 896
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
897
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 898
 LOB ("INTEGRATION_NOTES") STORE AS BASICFILE (
6031 dpurdie 899
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 900
  NOCACHE LOGGING 
901
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 902
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
903
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 904
 LOB ("CODEREVIEW_REFERENCE") STORE AS BASICFILE (
6031 dpurdie 905
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 906
  NOCACHE LOGGING 
907
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 908
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
909
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 910
 LOB ("CUSTOM_FIELD_04") STORE AS BASICFILE (
6031 dpurdie 911
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 912
  NOCACHE LOGGING 
913
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 914
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
915
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
5172 dpurdie 916
 LOB ("CUSTOM_FIELD_05") STORE AS BASICFILE (
6031 dpurdie 917
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 918
  NOCACHE LOGGING 
919
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 920
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
921
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
922
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "RM_READONLY";
923
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "MS_READONLY";
5892 dpurdie 924
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "DM_READONLY";
925
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "DEPLOYMENT_MANAGER";
926
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" TO "ACCESS_MANAGER";
4585 dpurdie 927
--------------------------------------------------------
928
--  DDL for Table CQ_STATEDEF
929
--------------------------------------------------------
930
 
5172 dpurdie 931
  CREATE TABLE "RELEASE_MANAGER"."CQ_STATEDEF" 
4585 dpurdie 932
   (	"ID" NUMBER(10,0), 
933
	"PACKAGE_OWNERSHIP" NUMBER(10,0), 
934
	"NAME" VARCHAR2(255 CHAR), 
935
	"ENTITYDEF_ID" NUMBER(10,0), 
936
	"ORDINAL" NUMBER(10,0)
5172 dpurdie 937
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 938
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
939
 NOCOMPRESS LOGGING
5172 dpurdie 940
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 941
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
942
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
943
  TABLESPACE "RELEASE_MANAGER_DATA" ;
944
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "RM_READONLY";
945
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "MS_READONLY";
5892 dpurdie 946
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "DM_READONLY";
947
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "DEPLOYMENT_MANAGER";
948
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_STATEDEF" TO "ACCESS_MANAGER";
4585 dpurdie 949
--------------------------------------------------------
950
--  DDL for Table CQ_USERS
951
--------------------------------------------------------
952
 
5172 dpurdie 953
  CREATE TABLE "RELEASE_MANAGER"."CQ_USERS" 
954
   (	"DBID" VARCHAR2(8 BYTE), 
955
	"LOGIN_NAME" VARCHAR2(17 BYTE), 
956
	"FULLNAME" VARCHAR2(30 BYTE)
957
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 958
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
959
 NOCOMPRESS LOGGING
5172 dpurdie 960
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 961
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
962
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
963
  TABLESPACE "RELEASE_MANAGER_DATA" ;
964
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "RM_READONLY";
965
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "MS_READONLY";
5892 dpurdie 966
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "DM_READONLY";
967
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "DEPLOYMENT_MANAGER";
968
  GRANT SELECT ON "RELEASE_MANAGER"."CQ_USERS" TO "ACCESS_MANAGER";
4040 dpurdie 969
--------------------------------------------------------
970
--  DDL for Table DAEMON_ACTION_LOG
971
--------------------------------------------------------
972
 
5172 dpurdie 973
  CREATE TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" 
4040 dpurdie 974
   (	"USER_ID" NUMBER, 
975
	"ACTION_DATETIME" DATE, 
976
	"RCON_ID" NUMBER, 
5172 dpurdie 977
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 978
	"ACTTYPE_ID" NUMBER
5172 dpurdie 979
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 980
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
981
 NOCOMPRESS LOGGING
5172 dpurdie 982
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 983
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
984
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
985
  TABLESPACE "RELEASE_MANAGER_DATA" ;
986
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_ACTION_LOG" TO "RM_READONLY";
987
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_ACTION_LOG" TO "MS_READONLY";
5892 dpurdie 988
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_ACTION_LOG" TO "DM_READONLY";
4040 dpurdie 989
--------------------------------------------------------
990
--  DDL for Table DAEMON_INSTRUCTIONS
991
--------------------------------------------------------
992
 
5172 dpurdie 993
  CREATE TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" 
4040 dpurdie 994
   (	"DAEMON_INSTRUCTIONS_ID" NUMBER, 
995
	"OP_CODE" NUMBER(*,0), 
996
	"RTAG_ID" NUMBER, 
997
	"PV_ID" NUMBER, 
998
	"SCHEDULED_DATETIME" DATE, 
999
	"REPEAT_SECS" NUMBER(*,0), 
1000
	"ADDED_DATETIME" DATE, 
1001
	"USER_ID" NUMBER, 
5172 dpurdie 1002
	"IN_PROGRESS" CHAR(1 BYTE)
1003
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1004
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1005
 NOCOMPRESS LOGGING
5172 dpurdie 1006
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1007
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1008
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1009
  TABLESPACE "RELEASE_MANAGER_DATA" ;
4040 dpurdie 1010
 
5172 dpurdie 1011
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."OP_CODE" IS 'The instruction op-code';
1012
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."SCHEDULED_DATETIME" IS 'The datetime after which the instruction can be carried out.';
1013
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."REPEAT_SECS" IS 'The number of seconds to add to scheduled_datetime when instruction is repeating';
1014
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."ADDED_DATETIME" IS 'The datetime the instruction was added to the table - informational only';
1015
   COMMENT ON COLUMN "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS"."USER_ID" IS 'The user who added the instruction to the table  - informational only';
6031 dpurdie 1016
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" TO "RM_READONLY";
1017
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" TO "MS_READONLY";
5892 dpurdie 1018
  GRANT SELECT ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" TO "DM_READONLY";
4040 dpurdie 1019
--------------------------------------------------------
1020
--  DDL for Table DASH_BOARD
1021
--------------------------------------------------------
1022
 
5172 dpurdie 1023
  CREATE TABLE "RELEASE_MANAGER"."DASH_BOARD" 
4040 dpurdie 1024
   (	"PROJ_ID" NUMBER, 
1025
	"RTAG_ID" NUMBER, 
1026
	"LAST_BUILD_TIME" DATE, 
1027
	"AUTOMATED_PACKAGES" NUMBER, 
1028
	"TOTAL_PACKAGES" NUMBER
5172 dpurdie 1029
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1030
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1031
 NOCOMPRESS LOGGING
5172 dpurdie 1032
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1033
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1034
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1035
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1036
  GRANT SELECT ON "RELEASE_MANAGER"."DASH_BOARD" TO "RM_READONLY";
1037
  GRANT SELECT ON "RELEASE_MANAGER"."DASH_BOARD" TO "MS_READONLY";
5892 dpurdie 1038
  GRANT SELECT ON "RELEASE_MANAGER"."DASH_BOARD" TO "DM_READONLY";
4040 dpurdie 1039
--------------------------------------------------------
1040
--  DDL for Table DEPRECATED_PACKAGES
1041
--------------------------------------------------------
1042
 
5172 dpurdie 1043
  CREATE TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" 
4040 dpurdie 1044
   (	"RTAG_ID" NUMBER, 
1045
	"PKG_ID" NUMBER, 
5172 dpurdie 1046
	"COMMENTS" VARCHAR2(4000 BYTE), 
1047
	"V_EXT" VARCHAR2(50 BYTE)
1048
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1049
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1050
 NOCOMPRESS LOGGING
5172 dpurdie 1051
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1052
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1053
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1054
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1055
  GRANT SELECT ON "RELEASE_MANAGER"."DEPRECATED_PACKAGES" TO "RM_READONLY";
1056
  GRANT SELECT ON "RELEASE_MANAGER"."DEPRECATED_PACKAGES" TO "MS_READONLY";
5892 dpurdie 1057
  GRANT SELECT ON "RELEASE_MANAGER"."DEPRECATED_PACKAGES" TO "DM_READONLY";
4040 dpurdie 1058
--------------------------------------------------------
1059
--  DDL for Table DO_NOT_RIPPLE
1060
--------------------------------------------------------
1061
 
5172 dpurdie 1062
  CREATE TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" 
4040 dpurdie 1063
   (	"RTAG_ID" NUMBER, 
1064
	"PV_ID" NUMBER, 
1065
	"ROOT_PV_ID" NUMBER, 
5172 dpurdie 1066
	"ROOT_CAUSE" VARCHAR2(50 BYTE), 
1067
	"ROOT_FILE" VARCHAR2(100 BYTE)
1068
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1069
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1070
 NOCOMPRESS LOGGING
5172 dpurdie 1071
  STORAGE(INITIAL 655360 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1072
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1073
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1074
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1075
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "RM_READONLY";
1076
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "MS_READONLY";
5892 dpurdie 1077
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "DM_READONLY";
1078
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "RELEASE_MANAGER_READ";
1079
  GRANT SELECT ON "RELEASE_MANAGER"."DO_NOT_RIPPLE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1080
--------------------------------------------------------
1081
--  DDL for Table GBE_MACHTYPE
1082
--------------------------------------------------------
1083
 
5172 dpurdie 1084
  CREATE TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" 
4040 dpurdie 1085
   (	"GBE_ID" NUMBER, 
5172 dpurdie 1086
	"GBE_VALUE" VARCHAR2(20 BYTE), 
4040 dpurdie 1087
	"BM_ID" NUMBER
5172 dpurdie 1088
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1089
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1090
 NOCOMPRESS LOGGING
5172 dpurdie 1091
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1092
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1093
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1094
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1095
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "RM_READONLY";
1096
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "MS_READONLY";
5892 dpurdie 1097
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "DM_READONLY";
1098
  GRANT SELECT ON "RELEASE_MANAGER"."GBE_MACHTYPE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1099
--------------------------------------------------------
1100
--  DDL for Table IGNORE_WARNINGS
1101
--------------------------------------------------------
1102
 
5172 dpurdie 1103
  CREATE TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" 
4040 dpurdie 1104
   (	"RTAG_ID" NUMBER, 
1105
	"PV_ID" NUMBER, 
1106
	"DPV_ID" NUMBER, 
5172 dpurdie 1107
	"IS_PATCH_IGNORE" CHAR(1 BYTE)
1108
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1109
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1110
 NOCOMPRESS LOGGING
5172 dpurdie 1111
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1112
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1113
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1114
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1115
  GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "RM_READONLY";
1116
  GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "MS_READONLY";
5892 dpurdie 1117
  GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "DM_READONLY";
1118
  GRANT SELECT ON "RELEASE_MANAGER"."IGNORE_WARNINGS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1119
--------------------------------------------------------
1120
--  DDL for Table JIRA_ISSUES
1121
--------------------------------------------------------
1122
 
5172 dpurdie 1123
  CREATE TABLE "RELEASE_MANAGER"."JIRA_ISSUES" 
4040 dpurdie 1124
   (	"PV_ID" NUMBER, 
5172 dpurdie 1125
	"ISS_KEY" VARCHAR2(4000 BYTE), 
4040 dpurdie 1126
	"DATE_TIME_STAMP" DATE
5172 dpurdie 1127
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1128
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1129
 NOCOMPRESS LOGGING
5172 dpurdie 1130
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1131
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1132
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1133
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1134
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "RM_READONLY";
1135
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "MS_READONLY";
5892 dpurdie 1136
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "DM_READONLY";
1137
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "RELEASE_MANAGER_READ";
1138
  GRANT SELECT ON "RELEASE_MANAGER"."JIRA_ISSUES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1139
--------------------------------------------------------
1140
--  DDL for Table LICENCES
1141
--------------------------------------------------------
1142
 
5172 dpurdie 1143
  CREATE TABLE "RELEASE_MANAGER"."LICENCES" 
4040 dpurdie 1144
   (	"LICENCE" NUMBER, 
5172 dpurdie 1145
	"NAME" VARCHAR2(50 BYTE)
1146
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1147
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1148
 NOCOMPRESS LOGGING
5172 dpurdie 1149
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1150
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1151
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1152
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1153
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCES" TO "RM_READONLY";
1154
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCES" TO "MS_READONLY";
5892 dpurdie 1155
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCES" TO "DM_READONLY";
4040 dpurdie 1156
--------------------------------------------------------
1157
--  DDL for Table LICENCING
1158
--------------------------------------------------------
1159
 
5172 dpurdie 1160
  CREATE TABLE "RELEASE_MANAGER"."LICENCING" 
4040 dpurdie 1161
   (	"PV_ID" NUMBER, 
1162
	"LICENCE" NUMBER
5172 dpurdie 1163
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1164
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1165
 NOCOMPRESS LOGGING
5172 dpurdie 1166
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1167
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1168
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1169
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1170
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCING" TO "RM_READONLY";
1171
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCING" TO "MS_READONLY";
5892 dpurdie 1172
  GRANT SELECT ON "RELEASE_MANAGER"."LICENCING" TO "DM_READONLY";
4040 dpurdie 1173
--------------------------------------------------------
5384 dpurdie 1174
--  DDL for Table LXR_STATE
1175
--------------------------------------------------------
1176
 
1177
  CREATE TABLE "RELEASE_MANAGER"."LXR_STATE" 
1178
   (	"RTAG_ID" NUMBER, 
1179
	"LXRSERVER" CHAR(1 BYTE) DEFAULT 'N'
1180
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1181
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1182
 NOCOMPRESS LOGGING
5384 dpurdie 1183
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1184
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1185
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1186
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5384 dpurdie 1187
 
1188
   COMMENT ON COLUMN "RELEASE_MANAGER"."LXR_STATE"."RTAG_ID" IS 'Link to Release_Tags';
1189
   COMMENT ON COLUMN "RELEASE_MANAGER"."LXR_STATE"."LXRSERVER" IS 'Written by server - I:Indexed, C:Closing, N:Not Known. May be InProgress.';
1190
   COMMENT ON TABLE "RELEASE_MANAGER"."LXR_STATE"  IS 'Contains data updated by the LXR server.
1191
This table is writable by a user known to the LXR Server';
6031 dpurdie 1192
  GRANT UPDATE ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
1193
  GRANT SELECT ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
1194
  GRANT INSERT ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
1195
  GRANT DELETE ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
1196
  GRANT ALTER ON "RELEASE_MANAGER"."LXR_STATE" TO "RM_READONLY";
5384 dpurdie 1197
--------------------------------------------------------
4040 dpurdie 1198
--  DDL for Table MEMBERS_GROUP
1199
--------------------------------------------------------
1200
 
5172 dpurdie 1201
  CREATE TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" 
4040 dpurdie 1202
   (	"GROUP_EMAIL_ID" NUMBER, 
1203
	"USER_ID" NUMBER
5172 dpurdie 1204
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1205
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1206
 NOCOMPRESS LOGGING
5172 dpurdie 1207
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1208
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1209
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1210
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1211
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "RM_READONLY";
1212
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "MS_READONLY";
5892 dpurdie 1213
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "DM_READONLY";
1214
  GRANT SELECT ON "RELEASE_MANAGER"."MEMBERS_GROUP" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1215
--------------------------------------------------------
1216
--  DDL for Table MESSAGE_BOARD
1217
--------------------------------------------------------
1218
 
5172 dpurdie 1219
  CREATE TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" 
4040 dpurdie 1220
   (	"MSG_ID" NUMBER, 
5172 dpurdie 1221
	"MSG_DETAILS" VARCHAR2(2000 BYTE), 
4040 dpurdie 1222
	"SUBMITION_DATE" DATE, 
1223
	"EXPIRY_DATE" DATE, 
1224
	"DUE_DATE" DATE
5172 dpurdie 1225
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1226
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1227
 NOCOMPRESS LOGGING
5172 dpurdie 1228
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1229
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1230
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1231
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1232
  GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "RM_READONLY";
1233
  GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "MS_READONLY";
5892 dpurdie 1234
  GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "DM_READONLY";
1235
  GRANT SELECT ON "RELEASE_MANAGER"."MESSAGE_BOARD" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1236
--------------------------------------------------------
1237
--  DDL for Table MICROSOFTDTPROPERTIES
1238
--------------------------------------------------------
1239
 
5172 dpurdie 1240
  CREATE TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" 
4040 dpurdie 1241
   (	"ID" NUMBER, 
1242
	"OBJECTID" NUMBER, 
5172 dpurdie 1243
	"PROPERTY" VARCHAR2(64 BYTE), 
1244
	"VALUE" VARCHAR2(255 BYTE), 
4040 dpurdie 1245
	"LVALUE" LONG RAW, 
1246
	"VERSION" NUMBER DEFAULT (0)
5172 dpurdie 1247
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1248
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1249
 NOCOMPRESS LOGGING
5172 dpurdie 1250
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1251
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1252
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1253
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1254
  GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "RM_READONLY";
1255
  GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "MS_READONLY";
5892 dpurdie 1256
  GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "DM_READONLY";
1257
  GRANT SELECT ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1258
--------------------------------------------------------
1259
--  DDL for Table NOTE_MANAGER
1260
--------------------------------------------------------
1261
 
5172 dpurdie 1262
  CREATE TABLE "RELEASE_MANAGER"."NOTE_MANAGER" 
1263
   (	"NID" VARCHAR2(30 BYTE), 
1264
	"LAST_USER" VARCHAR2(20 BYTE), 
4040 dpurdie 1265
	"LAST_DATE" DATE, 
5172 dpurdie 1266
	"DESCRIPTION" VARCHAR2(4000 BYTE)
1267
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1268
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1269
 NOCOMPRESS LOGGING
5172 dpurdie 1270
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1271
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1272
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1273
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1274
  GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "RM_READONLY";
1275
  GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "MS_READONLY";
5892 dpurdie 1276
  GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "DM_READONLY";
1277
  GRANT SELECT ON "RELEASE_MANAGER"."NOTE_MANAGER" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1278
--------------------------------------------------------
1279
--  DDL for Table NOTIFICATION_HISTORY
1280
--------------------------------------------------------
1281
 
5172 dpurdie 1282
  CREATE TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" 
4040 dpurdie 1283
   (	"RTAG_ID" NUMBER, 
1284
	"PV_ID" NUMBER, 
1285
	"USER_ID" NUMBER, 
1286
	"DATE_TIME_STAMP" DATE
5172 dpurdie 1287
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1288
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1289
 NOCOMPRESS LOGGING
5172 dpurdie 1290
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1291
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1292
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1293
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1294
  GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "RM_READONLY";
1295
  GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "MS_READONLY";
5892 dpurdie 1296
  GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "DM_READONLY";
1297
  GRANT SELECT ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1298
--------------------------------------------------------
1299
--  DDL for Table PACKAGES
1300
--------------------------------------------------------
1301
 
5172 dpurdie 1302
  CREATE TABLE "RELEASE_MANAGER"."PACKAGES" 
4040 dpurdie 1303
   (	"PKG_ID" NUMBER, 
5172 dpurdie 1304
	"PKG_NAME" VARCHAR2(255 BYTE), 
1305
	"SUNOS_ELECTRONIC_NAME" VARCHAR2(255 BYTE), 
1306
	"WIN_ELECTRONIC_NAME" VARCHAR2(255 BYTE), 
1307
	"DEFAULT_PEGGED" CHAR(1 BYTE), 
1308
	"DEFAULT_ADVISORY_RIPPLE" CHAR(1 BYTE)
1309
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1310
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1311
 NOCOMPRESS LOGGING
5172 dpurdie 1312
  STORAGE(INITIAL 196608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1313
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1314
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1315
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 1316
 
1317
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGES"."DEFAULT_PEGGED" IS 'Default pegged state for packages that are added to a release.';
1318
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGES"."DEFAULT_ADVISORY_RIPPLE" IS 'Default advisiory ripple state for packages that are added to a release.';
6031 dpurdie 1319
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "RM_READONLY";
1320
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "MS_READONLY";
5892 dpurdie 1321
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "DM_READONLY";
1322
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "RELEASE_MANAGER_READ";
1323
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER_READ";
6031 dpurdie 1324
  GRANT UPDATE ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";
1325
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";
1326
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";
1327
  GRANT DELETE ON "RELEASE_MANAGER"."PACKAGES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1328
--------------------------------------------------------
1329
--  DDL for Table PACKAGE_BUILD_ENV
1330
--------------------------------------------------------
1331
 
5172 dpurdie 1332
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" 
4040 dpurdie 1333
   (	"PV_ID" NUMBER, 
1334
	"BE_ID" NUMBER, 
1335
	"BUILD_TYPE" NUMBER
5172 dpurdie 1336
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1337
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1338
 NOCOMPRESS LOGGING
5172 dpurdie 1339
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1340
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1341
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1342
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1343
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "RM_READONLY";
1344
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "MS_READONLY";
5892 dpurdie 1345
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DM_READONLY";
1346
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "RELEASE_MANAGER_READ";
6031 dpurdie 1347
  GRANT UPDATE ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";
1348
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";
1349
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";
1350
  GRANT DELETE ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1351
--------------------------------------------------------
1352
--  DDL for Table PACKAGE_BUILD_INFO
1353
--------------------------------------------------------
1354
 
5172 dpurdie 1355
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" 
4040 dpurdie 1356
   (	"PV_ID" NUMBER, 
1357
	"BM_ID" NUMBER, 
1358
	"BSA_ID" NUMBER
5172 dpurdie 1359
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1360
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1361
 NOCOMPRESS LOGGING
5172 dpurdie 1362
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1363
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1364
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1365
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1366
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "RM_READONLY";
1367
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "MS_READONLY";
5892 dpurdie 1368
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "DM_READONLY";
1369
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1370
--------------------------------------------------------
1371
--  DDL for Table PACKAGE_DEPENDENCIES
1372
--------------------------------------------------------
1373
 
5172 dpurdie 1374
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" 
4040 dpurdie 1375
   (	"PV_ID" NUMBER, 
1376
	"DPV_ID" NUMBER, 
1377
	"PKG_ID" NUMBER, 
1378
	"DPKG_ID" NUMBER, 
5172 dpurdie 1379
	"BUILD_TYPE" CHAR(1 BYTE), 
4040 dpurdie 1380
	"DISPLAY_ORDER" NUMBER
5172 dpurdie 1381
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1382
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1383
 NOCOMPRESS LOGGING
5172 dpurdie 1384
  STORAGE(INITIAL 100663296 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1385
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1386
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1387
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5384 dpurdie 1388
 
1389
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."PV_ID" IS 'Package Version Identifier';
1390
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."DPV_ID" IS 'Depends on this package version';
1391
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES"."BUILD_TYPE" IS 'B:BuildPkgArchive, L:LinkPkgArchive';
6031 dpurdie 1392
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "RM_READONLY";
1393
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "MS_READONLY";
5892 dpurdie 1394
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "DM_READONLY";
1395
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "RELEASE_MANAGER_READ";
1396
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1397
--------------------------------------------------------
1398
--  DDL for Table PACKAGE_DOCUMENTS
1399
--------------------------------------------------------
1400
 
5172 dpurdie 1401
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" 
4040 dpurdie 1402
   (	"PV_ID" NUMBER, 
1403
	"TEST_ID" NUMBER, 
1404
	"DOC_ID" NUMBER, 
5172 dpurdie 1405
	"DOC_NUM" VARCHAR2(50 BYTE), 
1406
	"IS_LATEST" CHAR(1 BYTE)
1407
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1408
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1409
 NOCOMPRESS LOGGING
5172 dpurdie 1410
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1411
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1412
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1413
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1414
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "RM_READONLY";
1415
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "MS_READONLY";
5892 dpurdie 1416
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "DM_READONLY";
1417
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1418
--------------------------------------------------------
1419
--  DDL for Table PACKAGE_INTEREST
1420
--------------------------------------------------------
1421
 
5172 dpurdie 1422
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" 
4040 dpurdie 1423
   (	"PKG_ID" NUMBER, 
1424
	"PROJ_ID" NUMBER, 
1425
	"USER_ID" NUMBER
5172 dpurdie 1426
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1427
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1428
 NOCOMPRESS LOGGING
5172 dpurdie 1429
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1430
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1431
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1432
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1433
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_INTEREST" TO "RM_READONLY";
1434
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_INTEREST" TO "MS_READONLY";
5892 dpurdie 1435
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_INTEREST" TO "DM_READONLY";
4040 dpurdie 1436
--------------------------------------------------------
1437
--  DDL for Table PACKAGE_METRICS
1438
--------------------------------------------------------
1439
 
5172 dpurdie 1440
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" 
4040 dpurdie 1441
   (	"PV_ID" NUMBER, 
1442
	"BRANCHES" NUMBER, 
5172 dpurdie 1443
	"BRANCH_LIST" VARCHAR2(4000 BYTE), 
4040 dpurdie 1444
	"CODE_FILES" NUMBER, 
1445
	"IGNORED_FILES" NUMBER, 
1446
	"DIRECTORIES" NUMBER, 
1447
	"DIRECTORY_DEPTH" NUMBER, 
1448
	"TOTAL_FILES" NUMBER, 
1449
	"MAKEFILES" NUMBER, 
1450
	"BLANK_LINES" NUMBER, 
1451
	"CODE_LINES" NUMBER, 
1452
	"COMMENT_LINES" NUMBER, 
1453
	"CREATED_STAMP" DATE
5172 dpurdie 1454
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1455
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1456
 NOCOMPRESS LOGGING
5172 dpurdie 1457
  STORAGE(INITIAL 12582912 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1458
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1459
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1460
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1461
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_METRICS" TO "RM_READONLY";
1462
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_METRICS" TO "MS_READONLY";
5892 dpurdie 1463
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_METRICS" TO "DM_READONLY";
4040 dpurdie 1464
--------------------------------------------------------
1465
--  DDL for Table PACKAGE_PATCHES
1466
--------------------------------------------------------
1467
 
5172 dpurdie 1468
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" 
4040 dpurdie 1469
   (	"PV_ID" NUMBER, 
1470
	"PATCH_ID" NUMBER, 
1471
	"INSTALL_ORDER" NUMBER, 
1472
	"PATCH_OBSOLETED_BY" NUMBER
5172 dpurdie 1473
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1474
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1475
 NOCOMPRESS LOGGING
5172 dpurdie 1476
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1477
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1478
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1479
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1480
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "RM_READONLY";
1481
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "MS_READONLY";
5892 dpurdie 1482
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "DM_READONLY";
1483
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "RELEASE_MANAGER_READ";
1484
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PATCHES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1485
--------------------------------------------------------
1486
--  DDL for Table PACKAGE_PROCESSES
1487
--------------------------------------------------------
1488
 
5172 dpurdie 1489
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" 
4040 dpurdie 1490
   (	"PV_ID" NUMBER, 
1491
	"PROC_ID" NUMBER
5172 dpurdie 1492
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1493
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1494
 NOCOMPRESS LOGGING
5172 dpurdie 1495
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1496
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1497
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1498
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1499
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "RM_READONLY";
1500
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "MS_READONLY";
5892 dpurdie 1501
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DM_READONLY";
6031 dpurdie 1502
  GRANT UPDATE ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";
1503
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";
1504
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";
1505
  GRANT DELETE ON "RELEASE_MANAGER"."PACKAGE_PROCESSES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1506
--------------------------------------------------------
1507
--  DDL for Table PACKAGE_VERSIONS
1508
--------------------------------------------------------
1509
 
5172 dpurdie 1510
  CREATE TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" 
4040 dpurdie 1511
   (	"PV_ID" NUMBER, 
1512
	"PKG_ID" NUMBER, 
5172 dpurdie 1513
	"PKG_VERSION" VARCHAR2(50 BYTE), 
1514
	"DLOCKED" CHAR(1 BYTE), 
4040 dpurdie 1515
	"RELEASED_AT" NUMBER, 
1516
	"MODIFIED_STAMP" DATE, 
1517
	"MODIFIER_ID" NUMBER, 
1518
	"CREATED_STAMP" DATE, 
1519
	"CREATOR_ID" NUMBER, 
5172 dpurdie 1520
	"COMMENTS" VARCHAR2(4000 BYTE), 
1521
	"V_MM" VARCHAR2(50 BYTE), 
1522
	"V_NMM" VARCHAR2(50 BYTE), 
1523
	"V_EXT" VARCHAR2(50 BYTE), 
1524
	"PKG_LABEL" VARCHAR2(60 BYTE), 
1525
	"SRC_PATH" VARCHAR2(2000 BYTE), 
1526
	"PV_DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1527
	"OWNER_ID" NUMBER, 
5172 dpurdie 1528
	"PV_OVERVIEW" VARCHAR2(4000 BYTE), 
1529
	"IS_PATCH" CHAR(1 BYTE), 
4040 dpurdie 1530
	"LAST_PV_ID" NUMBER, 
5172 dpurdie 1531
	"RELEASE_NOTES_INFO" VARCHAR2(1000 BYTE), 
1532
	"IS_DEPLOYABLE" CHAR(1 BYTE), 
1533
	"IS_BUILD_ENV_REQUIRED" CHAR(1 BYTE), 
1534
	"IS_OBSOLETE" CHAR(1 BYTE), 
1535
	"OBSOLETE_COMMENTS" VARCHAR2(4000 BYTE), 
1536
	"BUILD_TYPE" CHAR(1 BYTE), 
1537
	"CHANGE_TYPE" CHAR(1 BYTE), 
1538
	"LINK" VARCHAR2(4000 BYTE), 
1539
	"PATCH_ELECTRONIC_NAME" VARCHAR2(4000 BYTE), 
4040 dpurdie 1540
	"BS_ID" NUMBER, 
5172 dpurdie 1541
	"IS_AUTOBUILDABLE" CHAR(1 BYTE), 
1542
	"SBOM_PRIORITY" CHAR(1 BYTE), 
4040 dpurdie 1543
	"RIPPLE_FIELD" CHAR(1 CHAR), 
1544
	"MAXIMUM_BUILD_TIME" NUMBER, 
5892 dpurdie 1545
	"BUILD_TIME" NUMBER, 
4040 dpurdie 1546
	"MAJOR_LIMIT" NUMBER(10,0), 
1547
	"MINOR_LIMIT" NUMBER(10,0), 
1548
	"PATCH_LIMIT" NUMBER(10,0), 
1549
	"BUILD_NUMBER_LIMIT" NUMBER(10,0), 
5384 dpurdie 1550
	"VCS_TYPE_ID" NUMBER, 
1551
	"PKG_IDEXT" VARCHAR2(70 BYTE)
5172 dpurdie 1552
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1553
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1554
 NOCOMPRESS LOGGING
5172 dpurdie 1555
  STORAGE(INITIAL 134217728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1556
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1557
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1558
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 1559
 
1560
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."RELEASED_AT" IS 'No longer used';
5892 dpurdie 1561
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."IS_DEPLOYABLE" IS 'null:No, NonNull:Yes Y:Yes';
6031 dpurdie 1562
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."BUILD_TYPE" IS 'A:Auto, M:Manual, U:UnBuildable';
5892 dpurdie 1563
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."IS_AUTOBUILDABLE" IS 'Y: Indicates that the package has been built on a build machine';
1564
   COMMENT ON COLUMN "RELEASE_MANAGER"."PACKAGE_VERSIONS"."BUILD_TIME" IS 'Duration of last build';
6031 dpurdie 1565
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "RM_READONLY";
1566
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "MS_READONLY";
5892 dpurdie 1567
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DM_READONLY";
1568
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "RELEASE_MANAGER_READ";
6031 dpurdie 1569
  GRANT UPDATE ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";
1570
  GRANT SELECT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";
1571
  GRANT INSERT ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";
1572
  GRANT DELETE ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1573
--------------------------------------------------------
1574
--  DDL for Table PEGGED_VERSIONS
1575
--------------------------------------------------------
1576
 
5172 dpurdie 1577
  CREATE TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" 
4040 dpurdie 1578
   (	"RTAG_ID" NUMBER, 
1579
	"PV_ID" NUMBER
5172 dpurdie 1580
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1581
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1582
 NOCOMPRESS LOGGING
5172 dpurdie 1583
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1584
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1585
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1586
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1587
  GRANT SELECT ON "RELEASE_MANAGER"."PEGGED_VERSIONS" TO "RM_READONLY";
1588
  GRANT SELECT ON "RELEASE_MANAGER"."PEGGED_VERSIONS" TO "MS_READONLY";
5892 dpurdie 1589
  GRANT SELECT ON "RELEASE_MANAGER"."PEGGED_VERSIONS" TO "DM_READONLY";
4040 dpurdie 1590
--------------------------------------------------------
1591
--  DDL for Table PLANNED
1592
--------------------------------------------------------
1593
 
5172 dpurdie 1594
  CREATE TABLE "RELEASE_MANAGER"."PLANNED" 
4040 dpurdie 1595
   (	"RTAG_ID" NUMBER, 
1596
	"PV_ID" NUMBER, 
1597
	"VIEW_ID" NUMBER, 
5172 dpurdie 1598
	"OPERATION" CHAR(1 BYTE)
1599
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1600
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1601
 NOCOMPRESS LOGGING
5172 dpurdie 1602
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1603
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1604
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1605
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 1606
 
1607
   COMMENT ON COLUMN "RELEASE_MANAGER"."PLANNED"."OPERATION" IS 'A: Add existing version.
1608
 
6031 dpurdie 1609
S:Subtract existing Version.
5172 dpurdie 1610
 
1611
R:Add New Version';
1612
   COMMENT ON TABLE "RELEASE_MANAGER"."PLANNED"  IS 'This table contains WORK IN PROGRESS packages';
6031 dpurdie 1613
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "RM_READONLY";
1614
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "MS_READONLY";
5892 dpurdie 1615
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "DM_READONLY";
1616
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "RELEASE_MANAGER_READ";
1617
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1618
--------------------------------------------------------
1619
--  DDL for Table PLANNED_VERSIONS
1620
--------------------------------------------------------
1621
 
5172 dpurdie 1622
  CREATE TABLE "RELEASE_MANAGER"."PLANNED_VERSIONS" 
4040 dpurdie 1623
   (	"PKG_ID" NUMBER, 
5172 dpurdie 1624
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 1625
	"PLANNED_TIME" DATE
5172 dpurdie 1626
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1627
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1628
 NOCOMPRESS LOGGING
5172 dpurdie 1629
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1630
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1631
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1632
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1633
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED_VERSIONS" TO "RM_READONLY";
1634
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED_VERSIONS" TO "MS_READONLY";
5892 dpurdie 1635
  GRANT SELECT ON "RELEASE_MANAGER"."PLANNED_VERSIONS" TO "DM_READONLY";
4040 dpurdie 1636
--------------------------------------------------------
1637
--  DDL for Table PLATFORMS
1638
--------------------------------------------------------
1639
 
5172 dpurdie 1640
  CREATE TABLE "RELEASE_MANAGER"."PLATFORMS" 
4040 dpurdie 1641
   (	"CODE" NUMBER, 
5172 dpurdie 1642
	"NAME" VARCHAR2(255 BYTE)
1643
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1644
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1645
 NOCOMPRESS LOGGING
5172 dpurdie 1646
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1647
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1648
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1649
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1650
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "RM_READONLY";
1651
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "MS_READONLY";
5892 dpurdie 1652
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "DM_READONLY";
1653
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "RELEASE_MANAGER_READ";
1654
  GRANT SELECT ON "RELEASE_MANAGER"."PLATFORMS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1655
--------------------------------------------------------
1656
--  DDL for Table PROCESSES
1657
--------------------------------------------------------
1658
 
5172 dpurdie 1659
  CREATE TABLE "RELEASE_MANAGER"."PROCESSES" 
4040 dpurdie 1660
   (	"PROC_ID" NUMBER, 
5172 dpurdie 1661
	"PROC_NAME" VARCHAR2(255 BYTE), 
1662
	"PROC_DESCRIPTION" VARCHAR2(255 BYTE), 
1663
	"RUN_AS" VARCHAR2(255 BYTE), 
1664
	"PKG_OWNER" VARCHAR2(4000 BYTE), 
1665
	"IS_INTERFACE" CHAR(1 BYTE)
1666
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1667
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1668
 NOCOMPRESS LOGGING
5172 dpurdie 1669
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1670
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1671
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1672
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1673
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "RM_READONLY";
1674
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "MS_READONLY";
5892 dpurdie 1675
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "DM_READONLY";
1676
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "RELEASE_MANAGER_READ";
6031 dpurdie 1677
  GRANT UPDATE ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";
1678
  GRANT SELECT ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";
1679
  GRANT INSERT ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";
1680
  GRANT DELETE ON "RELEASE_MANAGER"."PROCESSES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1681
--------------------------------------------------------
1682
--  DDL for Table PRODUCT_COMPONENTS
1683
--------------------------------------------------------
1684
 
5172 dpurdie 1685
  CREATE TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" 
4040 dpurdie 1686
   (	"PV_ID" NUMBER, 
1687
	"OS_ID" NUMBER, 
5172 dpurdie 1688
	"FILE_PATH" VARCHAR2(4000 BYTE), 
1689
	"FILE_NAME" VARCHAR2(4000 BYTE), 
1690
	"DESTINATION_PATH" VARCHAR2(4000 BYTE), 
4040 dpurdie 1691
	"BYTE_SIZE" NUMBER, 
5172 dpurdie 1692
	"CRC_CKSUM" VARCHAR2(2000 BYTE)
1693
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1694
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1695
 NOCOMPRESS LOGGING
5172 dpurdie 1696
  STORAGE(INITIAL 31457280 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1697
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1698
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1699
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1700
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "RM_READONLY";
1701
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "MS_READONLY";
5892 dpurdie 1702
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "DM_READONLY";
1703
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "RELEASE_MANAGER_READ";
1704
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1705
--------------------------------------------------------
1706
--  DDL for Table PRODUCT_STATES
1707
--------------------------------------------------------
1708
 
5172 dpurdie 1709
  CREATE TABLE "RELEASE_MANAGER"."PRODUCT_STATES" 
4040 dpurdie 1710
   (	"STATE_ID" NUMBER, 
5172 dpurdie 1711
	"STATE" VARCHAR2(4000 BYTE)
1712
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1713
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1714
 NOCOMPRESS LOGGING
5172 dpurdie 1715
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1716
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1717
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1718
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1719
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_STATES" TO "RM_READONLY";
1720
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_STATES" TO "MS_READONLY";
5892 dpurdie 1721
  GRANT SELECT ON "RELEASE_MANAGER"."PRODUCT_STATES" TO "DM_READONLY";
4040 dpurdie 1722
--------------------------------------------------------
1723
--  DDL for Table PROJECTS
1724
--------------------------------------------------------
1725
 
5172 dpurdie 1726
  CREATE TABLE "RELEASE_MANAGER"."PROJECTS" 
4040 dpurdie 1727
   (	"PROJ_ID" NUMBER, 
5172 dpurdie 1728
	"PROJ_NAME" VARCHAR2(50 BYTE), 
1729
	"BASE_URL" VARCHAR2(4000 BYTE), 
1730
	"JIRA_KEY" VARCHAR2(16 BYTE)
1731
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1732
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1733
 NOCOMPRESS LOGGING
5172 dpurdie 1734
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1735
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1736
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1737
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1738
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "RM_READONLY";
1739
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "MS_READONLY";
5892 dpurdie 1740
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "DM_READONLY";
1741
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "RELEASE_MANAGER_READ";
1742
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER_READ";
6031 dpurdie 1743
  GRANT UPDATE ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";
1744
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";
1745
  GRANT INSERT ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";
1746
  GRANT DELETE ON "RELEASE_MANAGER"."PROJECTS" TO "DEPLOYMENT_MANAGER";
5892 dpurdie 1747
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECTS" TO "ACCESS_MANAGER";
4040 dpurdie 1748
--------------------------------------------------------
1749
--  DDL for Table PROJECT_ACTION_LOG
1750
--------------------------------------------------------
1751
 
5172 dpurdie 1752
  CREATE TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" 
4040 dpurdie 1753
   (	"USER_ID" NUMBER, 
1754
	"ACTION_DATETIME" DATE, 
1755
	"PROJ_ID" NUMBER, 
5172 dpurdie 1756
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1757
	"ACTTYPE_ID" NUMBER, 
1758
	"RTAG_ID" NUMBER
5172 dpurdie 1759
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1760
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1761
 NOCOMPRESS LOGGING
5172 dpurdie 1762
  STORAGE(INITIAL 851968 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1763
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1764
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1765
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1766
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "RM_READONLY";
1767
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "MS_READONLY";
5892 dpurdie 1768
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "DM_READONLY";
1769
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1770
--------------------------------------------------------
1771
--  DDL for Table PROJECT_EXTENTIONS
1772
--------------------------------------------------------
1773
 
5172 dpurdie 1774
  CREATE TABLE "RELEASE_MANAGER"."PROJECT_EXTENTIONS" 
4040 dpurdie 1775
   (	"PROJ_ID" NUMBER, 
5172 dpurdie 1776
	"EXT_NAME" VARCHAR2(10 BYTE), 
1777
	"UCOMMENT" VARCHAR2(120 BYTE), 
1778
	"IS_VISIBLE" CHAR(1 BYTE) DEFAULT 'Y', 
1779
	"IS_COTS" CHAR(1 BYTE) DEFAULT 'N'
1780
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1781
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1782
 NOCOMPRESS LOGGING
5172 dpurdie 1783
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1784
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1785
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1786
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1787
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "RM_READONLY";
1788
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "MS_READONLY";
5892 dpurdie 1789
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "DM_READONLY";
1790
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "RELEASE_MANAGER_READ";
1791
  GRANT SELECT ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1792
--------------------------------------------------------
1793
--  DDL for Table RELEASE_COMPONENTS
1794
--------------------------------------------------------
1795
 
5172 dpurdie 1796
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" 
4040 dpurdie 1797
   (	"PV_ID" NUMBER, 
5172 dpurdie 1798
	"FILE_NAME" VARCHAR2(255 BYTE), 
1799
	"FILE_PATH" VARCHAR2(2000 BYTE), 
4040 dpurdie 1800
	"BYTE_SIZE" NUMBER, 
5172 dpurdie 1801
	"CRC_CKSUM" VARCHAR2(50 BYTE), 
1802
	"CRC_MODCRC" VARCHAR2(50 BYTE)
1803
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1804
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1805
 NOCOMPRESS LOGGING
5172 dpurdie 1806
  STORAGE(INITIAL 2828009472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1807
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1808
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1809
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1810
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "RM_READONLY";
1811
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "MS_READONLY";
5892 dpurdie 1812
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "DM_READONLY";
1813
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1814
--------------------------------------------------------
1815
--  DDL for Table RELEASE_CONFIG
1816
--------------------------------------------------------
1817
 
5172 dpurdie 1818
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" 
4040 dpurdie 1819
   (	"RCON_ID" NUMBER, 
1820
	"RTAG_ID" NUMBER, 
1821
	"GBE_ID" NUMBER, 
5172 dpurdie 1822
	"DAEMON_HOSTNAME" VARCHAR2(50 BYTE), 
4040 dpurdie 1823
	"DAEMON_MODE" CHAR(1 CHAR), 
5172 dpurdie 1824
	"GBE_BUILDFILTER" VARCHAR2(255 BYTE), 
4308 dpurdie 1825
	"BMCON_ID" NUMBER
5172 dpurdie 1826
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1827
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1828
 NOCOMPRESS LOGGING
5172 dpurdie 1829
  STORAGE(INITIAL 196608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1830
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1831
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1832
  TABLESPACE "RELEASE_MANAGER_DATA" ;
4308 dpurdie 1833
 
5172 dpurdie 1834
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."GBE_ID" IS 'Do not use. Data should come from build_machine_config';
1835
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."DAEMON_HOSTNAME" IS 'Do not use. Data should come from build_machine_config';
1836
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONFIG"."BMCON_ID" IS 'Link to the build_machine_config table';
6031 dpurdie 1837
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "RM_READONLY";
1838
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "MS_READONLY";
5892 dpurdie 1839
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "DM_READONLY";
1840
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONFIG" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1841
--------------------------------------------------------
1842
--  DDL for Table RELEASE_CONTENT
1843
--------------------------------------------------------
1844
 
5172 dpurdie 1845
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" 
4040 dpurdie 1846
   (	"RTAG_ID" NUMBER, 
1847
	"PV_ID" NUMBER, 
1848
	"BASE_VIEW_ID" NUMBER, 
1849
	"INSERT_STAMP" DATE, 
1850
	"INSERTOR_ID" NUMBER, 
1851
	"PKG_STATE" NUMBER, 
1852
	"PKG_ID" NUMBER, 
1853
	"DEPRECATED_STATE" NUMBER, 
5172 dpurdie 1854
	"PRODUCT_STATE" NUMBER, 
6600 dpurdie 1855
	"SDKTAG_ID" NUMBER, 
1856
	"RIPPLE_STOP" CHAR(1 BYTE), 
1857
	"PERSIST_RIPPLE_STOP" CHAR(1 BYTE)
5172 dpurdie 1858
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1859
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1860
 NOCOMPRESS LOGGING
5172 dpurdie 1861
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1862
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1863
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1864
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 1865
 
5384 dpurdie 1866
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."PKG_ID" IS 'NotUsed any more. Was:Package that has been deprecated';
5172 dpurdie 1867
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."DEPRECATED_STATE" IS '6: Deprecated Package, 7: Deprecated Dependent';
1868
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."SDKTAG_ID" IS 'Pkg imported via SDK';
6600 dpurdie 1869
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."RIPPLE_STOP" IS 's: Stop Ripple, w:Wait for Reset, g:GoBuild';
1870
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_CONTENT"."PERSIST_RIPPLE_STOP" IS 'Null:No';
6031 dpurdie 1871
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "RM_READONLY";
1872
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "MS_READONLY";
5892 dpurdie 1873
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "DM_READONLY";
1874
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "RELEASE_MANAGER_READ";
1875
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_CONTENT" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1876
--------------------------------------------------------
1877
--  DDL for Table RELEASE_LINKS
1878
--------------------------------------------------------
1879
 
5172 dpurdie 1880
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_LINKS" 
4040 dpurdie 1881
   (	"RTAG_ID" NUMBER, 
1882
	"REF_RTAG_ID" NUMBER
5172 dpurdie 1883
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1884
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1885
 NOCOMPRESS LOGGING
5172 dpurdie 1886
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1887
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1888
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1889
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1890
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "RM_READONLY";
1891
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "MS_READONLY";
5892 dpurdie 1892
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "DM_READONLY";
1893
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_LINKS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 1894
--------------------------------------------------------
1895
--  DDL for Table RELEASE_METRICS
1896
--------------------------------------------------------
1897
 
5172 dpurdie 1898
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_METRICS" 
4040 dpurdie 1899
   (	"RTAG_ID" NUMBER, 
1900
	"TOTAL_PACKAGES" NUMBER, 
1901
	"AUTOBUILT" NUMBER, 
1902
	"LINES_OF_CODE" NUMBER, 
1903
	"UNIT_TESTED" NUMBER, 
1904
	"AUTOTESTED" NUMBER, 
1905
	"BRANCHES" NUMBER, 
1906
	"LAST_BUILD_TIME" DATE
5172 dpurdie 1907
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1908
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1909
 NOCOMPRESS LOGGING
5172 dpurdie 1910
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1911
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1912
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1913
  TABLESPACE "RELEASE_MANAGER_DATA" ;
1914
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "RM_READONLY";
1915
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "MS_READONLY";
5892 dpurdie 1916
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_METRICS" TO "DM_READONLY";
5172 dpurdie 1917
--------------------------------------------------------
1918
--  DDL for Table RELEASE_MODIFIED
1919
--------------------------------------------------------
1920
 
1921
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" 
1922
   (	"RTAG_ID" NUMBER, 
1923
	"TIMESTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP, 
1924
	"SEQNUM" NUMBER
1925
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1926
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1927
 NOCOMPRESS LOGGING
5172 dpurdie 1928
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1929
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1930
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1931
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 1932
 
1933
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."RTAG_ID" IS 'Link to Release';
1934
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."TIMESTAMP" IS 'Time of the modification';
1935
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_MODIFIED"."SEQNUM" IS 'Unique number indicating change';
1936
   COMMENT ON TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED"  IS 'This table conatins a single entry for each RELEASE_TAG.
1937
It is used by the build system to help detect changes to the content of a Release.
1938
A stored proceedure simplifies the use of this table: PK_RELEASE.SET_RELEASE_MODIFIED
1939
 
1940
This should be called whenever the package_versions in the release have changed in such
1941
a manner that the build daemons should examine the release. This includes:
1942
 - Packages added and removed
1943
 - Packages build status changed (re-included in the release )
1944
 - Packages made Pending Build';
4040 dpurdie 1945
--------------------------------------------------------
1946
--  DDL for Table RELEASE_TAGS
1947
--------------------------------------------------------
1948
 
5172 dpurdie 1949
  CREATE TABLE "RELEASE_MANAGER"."RELEASE_TAGS" 
4040 dpurdie 1950
   (	"RTAG_ID" NUMBER, 
1951
	"VTREE_ID" NUMBER, 
5172 dpurdie 1952
	"RTAG_NAME" VARCHAR2(50 BYTE), 
1953
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1954
	"CREATED_STAMP" DATE, 
1955
	"CREATOR_ID" NUMBER, 
1956
	"OFFICIAL_STAMP" DATE, 
1957
	"RELEASOR_ID" NUMBER, 
5172 dpurdie 1958
	"OFFICIAL" CHAR(1 BYTE), 
1959
	"REBUILD_ENV" CHAR(1 BYTE), 
4040 dpurdie 1960
	"REBUILD_STAMP" NUMBER, 
5172 dpurdie 1961
	"RTAG_VERSION" VARCHAR2(4000 BYTE), 
4040 dpurdie 1962
	"RTAG_LIFE_CYCLE" NUMBER, 
1963
	"PARENT_RTAG_ID" NUMBER, 
1964
	"PROJ_ID" NUMBER, 
1965
	"DISPLAY_ORDER" NUMBER, 
5172 dpurdie 1966
	"OWNER_EMAIL" VARCHAR2(1000 BYTE), 
4040 dpurdie 1967
	"ASSOC_MASS_REF" NUMBER, 
5172 dpurdie 1968
	"OWNER_PERSONAL_EMAIL" VARCHAR2(1000 BYTE), 
1969
	"CONFIG_SPEC_BRANCH" VARCHAR2(4000 BYTE), 
1970
	"PRODUCT_STATE_USED" CHAR(1 BYTE), 
1971
	"OFFICIAL_ID" NUMBER, 
5384 dpurdie 1972
	"BUILD_AGE" NUMBER DEFAULT 31, 
1973
	"LXR" CHAR(1 BYTE) DEFAULT 'N'
5172 dpurdie 1974
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 1975
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
1976
 NOCOMPRESS LOGGING
5172 dpurdie 1977
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 1978
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
1979
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
1980
  TABLESPACE "RELEASE_MANAGER_DATA" ;
4040 dpurdie 1981
 
5384 dpurdie 1982
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."CREATED_STAMP" IS 'Date Release was created';
1983
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."CREATOR_ID" IS 'User who created the release';
1984
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL_STAMP" IS 'Date OFFICIAL state was changed';
1985
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."RELEASOR_ID" IS 'Not Used';
1986
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL" IS 'State of release. A:Archived, Y:Closed, C:CCB Mode, R:Restricted, N: Open';
1987
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."REBUILD_ENV" IS 'Y: Rebuild Package State';
1988
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."REBUILD_STAMP" IS 'Not used ?';
1989
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."OFFICIAL_ID" IS 'User last changed OFFICIAL state';
5172 dpurdie 1990
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."BUILD_AGE" IS 'Days without building before warning is shown';
5384 dpurdie 1991
   COMMENT ON COLUMN "RELEASE_MANAGER"."RELEASE_TAGS"."LXR" IS 'Y:Enable LXR';
6031 dpurdie 1992
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "RM_READONLY";
5892 dpurdie 1993
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "MS_READONLY";
6031 dpurdie 1994
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "DM_READONLY";
5892 dpurdie 1995
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "RELEASE_MANAGER_READ";
1996
  GRANT SELECT ON "RELEASE_MANAGER"."RELEASE_TAGS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 1997
--------------------------------------------------------
6031 dpurdie 1998
--  DDL for Table RM_PACKAGE_ISSUES_DELETE_ME
4040 dpurdie 1999
--------------------------------------------------------
2000
 
6031 dpurdie 2001
  CREATE TABLE "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" 
4040 dpurdie 2002
   (	"PKG_ID" NUMBER, 
5172 dpurdie 2003
	"PKG_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 2004
	"PV_ID" NUMBER, 
5172 dpurdie 2005
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 2006
	"DPV_ID" NUMBER, 
5172 dpurdie 2007
	"DPKG_NAME" VARCHAR2(50 BYTE), 
2008
	"DPKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 2009
	"ISS_DB" NUMBER, 
2010
	"ISS_ID" NUMBER
5172 dpurdie 2011
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2012
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2013
 NOCOMPRESS LOGGING
5172 dpurdie 2014
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2015
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2016
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2017
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2018
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "RM_READONLY";
2019
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "MS_READONLY";
2020
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "DM_READONLY";
2021
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PACKAGE_ISSUES_DELETE_ME" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2022
--------------------------------------------------------
2023
--  DDL for Table RM_PKG_ISSUES
2024
--------------------------------------------------------
2025
 
5172 dpurdie 2026
  CREATE GLOBAL TEMPORARY TABLE "RELEASE_MANAGER"."RM_PKG_ISSUES" 
4040 dpurdie 2027
   (	"PKG_ID" NUMBER, 
5172 dpurdie 2028
	"PKG_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 2029
	"PV_ID" NUMBER, 
5172 dpurdie 2030
	"PKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 2031
	"DPV_ID" NUMBER, 
5172 dpurdie 2032
	"DPKG_NAME" VARCHAR2(50 BYTE), 
2033
	"DPKG_VERSION" VARCHAR2(50 BYTE), 
4040 dpurdie 2034
	"ISS_DB" NUMBER, 
2035
	"ISS_ID" NUMBER
2036
   ) ON COMMIT PRESERVE ROWS ;
6031 dpurdie 2037
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "RM_READONLY";
2038
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "MS_READONLY";
5892 dpurdie 2039
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "DM_READONLY";
2040
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2041
--------------------------------------------------------
2042
--  DDL for Table RUNTIME_DEPENDENCIES
2043
--------------------------------------------------------
2044
 
5172 dpurdie 2045
  CREATE TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" 
4040 dpurdie 2046
   (	"PV_ID" NUMBER, 
2047
	"RTD_ID" NUMBER, 
5172 dpurdie 2048
	"RTD_COMMENTS" VARCHAR2(2000 BYTE), 
2049
	"RTD_URL" VARCHAR2(2000 BYTE), 
4040 dpurdie 2050
	"MOD_DATE" DATE, 
2051
	"MOD_USER" NUMBER
5172 dpurdie 2052
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2053
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2054
 NOCOMPRESS LOGGING
5172 dpurdie 2055
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2056
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2057
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2058
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2059
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "RM_READONLY";
2060
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "MS_READONLY";
5892 dpurdie 2061
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "DM_READONLY";
2062
  GRANT SELECT ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2063
--------------------------------------------------------
2064
--  DDL for Table RUN_LEVEL
2065
--------------------------------------------------------
2066
 
5172 dpurdie 2067
  CREATE TABLE "RELEASE_MANAGER"."RUN_LEVEL" 
4040 dpurdie 2068
   (	"RCON_ID" NUMBER, 
2069
	"CURRENT_BUILD_FILES" CLOB, 
2070
	"CURRENT_RUN_LEVEL" NUMBER, 
2071
	"PAUSE" NUMBER, 
2072
	"CURRENT_PKG_ID_BEING_BUILT" NUMBER, 
4553 dpurdie 2073
	"KEEP_ALIVE" DATE, 
2074
	"CURRENT_PV_ID" NUMBER, 
2075
	"LAST_BUILD" DATE DEFAULT sysdate
5172 dpurdie 2076
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2077
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2078
 NOCOMPRESS LOGGING
5172 dpurdie 2079
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2080
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2081
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2082
  TABLESPACE "RELEASE_MANAGER_DATA" 
5172 dpurdie 2083
 LOB ("CURRENT_BUILD_FILES") STORE AS BASICFILE (
6031 dpurdie 2084
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
5172 dpurdie 2085
  NOCACHE LOGGING 
2086
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2087
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2088
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
4553 dpurdie 2089
 
5172 dpurdie 2090
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."RCON_ID" IS 'Link to the Release_config table';
2091
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_BUILD_FILES" IS 'The current build file. Set by the Master, consumed by the Slaves.';
5892 dpurdie 2092
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_RUN_LEVEL" IS 'Daemon indiactes its current state. 1:Cannot Continue, 2:Paused, 3:Active, 4:Idle, 5:Waiting, 6:Publishing';
5172 dpurdie 2093
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."PAUSE" IS 'The daemon should pause at the end of the current build.Null:Run, 1:Pause, 2:Disable';
2094
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_PKG_ID_BEING_BUILT" IS 'pkg_id of the package currently being built';
2095
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."KEEP_ALIVE" IS 'DateTime of the last database enquiry made by the daemon. Used to locate dead daemons.';
2096
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."CURRENT_PV_ID" IS 'The PV_ID of the package currently being built.';
2097
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL"."LAST_BUILD" IS 'The DateTime that the last build started. This does not include dummy builds. Used to determine unused daemons.';
6031 dpurdie 2098
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "RM_READONLY";
2099
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "MS_READONLY";
5892 dpurdie 2100
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL" TO "DM_READONLY";
4040 dpurdie 2101
--------------------------------------------------------
2102
--  DDL for Table RUN_LEVEL_SCHEDULE
2103
--------------------------------------------------------
2104
 
5172 dpurdie 2105
  CREATE TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" 
4040 dpurdie 2106
   (	"SCHEDULED_ID" NUMBER, 
2107
	"SCHEDULED_PAUSE" DATE, 
2108
	"SCHEDULED_RESUME" DATE, 
5172 dpurdie 2109
	"REPEAT" CHAR(1 BYTE), 
2110
	"INDEFINITE_PAUSE" CHAR(1 BYTE)
2111
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2112
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2113
 NOCOMPRESS LOGGING
5172 dpurdie 2114
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2115
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2116
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2117
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2118
 
2119
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_ID" IS 'Unique entry identifier';
2120
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_PAUSE" IS 'Start DateTime of the outage';
2121
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."SCHEDULED_RESUME" IS 'End DateTime of the outage';
2122
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."REPEAT" IS '0:Once, 1:Daily, 7:Weekly';
2123
   COMMENT ON COLUMN "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE"."INDEFINITE_PAUSE" IS 'Non Null indicates indefinite pause';
6031 dpurdie 2124
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "RM_READONLY";
2125
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "MS_READONLY";
5892 dpurdie 2126
  GRANT SELECT ON "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" TO "DM_READONLY";
5172 dpurdie 2127
--------------------------------------------------------
2128
--  DDL for Table SDK_CONTENT
2129
--------------------------------------------------------
2130
 
2131
  CREATE TABLE "RELEASE_MANAGER"."SDK_CONTENT" 
2132
   (	"SDKTAG_ID" NUMBER, 
2133
	"PV_ID" NUMBER, 
2134
	"SDKPKG_STATE" CHAR(1 BYTE) DEFAULT '-'
2135
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2136
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2137
 NOCOMPRESS LOGGING
5172 dpurdie 2138
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2139
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2140
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2141
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2142
 
2143
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."SDKTAG_ID" IS 'Ref to SDK TAG';
2144
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."PV_ID" IS 'Ref to Package Versions';
2145
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_CONTENT"."SDKPKG_STATE" IS 'Package State: -:Not exposed, E:Exposed';
2146
--------------------------------------------------------
2147
--  DDL for Table SDK_NAMES
2148
--------------------------------------------------------
2149
 
2150
  CREATE TABLE "RELEASE_MANAGER"."SDK_NAMES" 
2151
   (	"SDK_ID" NUMBER, 
2152
	"SDK_NAME" VARCHAR2(50 BYTE), 
2153
	"SDK_COMMENT" VARCHAR2(4000 BYTE), 
2154
	"VIEW_ID" NUMBER, 
2155
	"PROJ_ID" NUMBER
2156
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2157
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2158
 NOCOMPRESS LOGGING
5172 dpurdie 2159
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2160
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2161
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2162
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2163
 
2164
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_ID" IS 'Auto Created when row is created';
2165
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_NAME" IS 'Name of the SDK';
2166
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."SDK_COMMENT" IS 'User comment';
2167
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."VIEW_ID" IS 'Base View for display';
2168
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_NAMES"."PROJ_ID" IS 'Project ID for Security context';
2169
--------------------------------------------------------
2170
--  DDL for Table SDK_TAGS
2171
--------------------------------------------------------
2172
 
2173
  CREATE TABLE "RELEASE_MANAGER"."SDK_TAGS" 
2174
   (	"SDKTAG_ID" NUMBER, 
2175
	"SDKTAG_NAME" VARCHAR2(50 BYTE), 
2176
	"DESCRIPTION" VARCHAR2(4000 BYTE), 
2177
	"SDK_ID" NUMBER, 
2178
	"RTAG_ID" NUMBER, 
2179
	"CREATED_STAMP" TIMESTAMP (6) DEFAULT SYSTIMESTAMP, 
2180
	"CREATOR_ID" NUMBER, 
2181
	"STATE_STAMP" TIMESTAMP (6) DEFAULT SYSTIMESTAMP, 
2182
	"STATE_ID" NUMBER, 
2183
	"SDK_STATE" CHAR(1 BYTE) DEFAULT 'U'
2184
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2185
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2186
 NOCOMPRESS LOGGING
5172 dpurdie 2187
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2188
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2189
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2190
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2191
 
2192
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDKTAG_ID" IS 'Unique ID. Created automatically';
2193
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDKTAG_NAME" IS 'Name of the SDK Version';
2194
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."DESCRIPTION" IS 'General description';
2195
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDK_ID" IS 'Parent SDK';
2196
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."RTAG_ID" IS 'Release within which this SDK is maintained';
2197
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."CREATED_STAMP" IS 'When created';
2198
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."CREATOR_ID" IS 'Who Created the version';
2199
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."STATE_STAMP" IS 'Time of last change to this version';
2200
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."STATE_ID" IS 'User id who made the last state change';
2201
   COMMENT ON COLUMN "RELEASE_MANAGER"."SDK_TAGS"."SDK_STATE" IS 'State: U-Under Development; R-Released; D-Deprecated';
4040 dpurdie 2202
--------------------------------------------------------
5384 dpurdie 2203
--  DDL for Table TEMP_ENV_DEPS
2204
--------------------------------------------------------
2205
 
2206
  CREATE TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" 
2207
   (	"SESSION_NUM" NUMBER, 
2208
	"PV_ID" NUMBER, 
2209
	"PKG_ID" NUMBER, 
2210
	"V_EXT" VARCHAR2(50 BYTE), 
2211
	"DPV_ID" NUMBER, 
2212
	"DPKG_ID" NUMBER, 
2213
	"DV_EXT" VARCHAR2(50 BYTE)
2214
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2215
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2216
 NOCOMPRESS LOGGING
5384 dpurdie 2217
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2218
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2219
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2220
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5384 dpurdie 2221
 
2222
   COMMENT ON TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS"  IS 'This table is used in the creation of the package_state information
2223
Data in the table is temporary. It should be cleared out after its been used.
2224
Data will only be used for a few seconds.
2225
 
2226
The table is used to map DPV_IDs to PV_IDs, but only for DPV_IDs that are of interest';
2227
--------------------------------------------------------
4040 dpurdie 2228
--  DDL for Table TEMP_ENV_STATES
2229
--------------------------------------------------------
2230
 
5172 dpurdie 2231
  CREATE TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" 
4040 dpurdie 2232
   (	"SESSION_NUM" NUMBER, 
2233
	"LEVEL_NUM" NUMBER, 
2234
	"PV_ID" NUMBER, 
2235
	"PKG_ID" NUMBER, 
5172 dpurdie 2236
	"V_EXT" VARCHAR2(50 BYTE), 
6031 dpurdie 2237
	"TES_STATE" NUMBER, 
2238
	"BUILD_TYPE" CHAR(1 BYTE)
5172 dpurdie 2239
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2240
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2241
 NOCOMPRESS LOGGING
5172 dpurdie 2242
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2243
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2244
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2245
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2246
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "RM_READONLY";
2247
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "MS_READONLY";
5892 dpurdie 2248
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "DM_READONLY";
2249
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_ENV_STATES" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2250
--------------------------------------------------------
2251
--  DDL for Table TEMP_SASH
2252
--------------------------------------------------------
2253
 
5172 dpurdie 2254
  CREATE TABLE "RELEASE_MANAGER"."TEMP_SASH" 
4040 dpurdie 2255
   (	"RTAG_ID" NUMBER, 
2256
	"PROJ_ID" NUMBER
5172 dpurdie 2257
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2258
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2259
 NOCOMPRESS LOGGING
5172 dpurdie 2260
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2261
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2262
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2263
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2264
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "RM_READONLY";
2265
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "MS_READONLY";
5892 dpurdie 2266
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "DM_READONLY";
2267
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_SASH" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2268
--------------------------------------------------------
2269
--  DDL for Table TEMP_TREE_BROWSE
2270
--------------------------------------------------------
2271
 
5172 dpurdie 2272
  CREATE TABLE "RELEASE_MANAGER"."TEMP_TREE_BROWSE" 
4040 dpurdie 2273
   (	"SESSION_NUM" NUMBER, 
2274
	"LEVEL_NUM" NUMBER, 
2275
	"PV_ID" NUMBER, 
2276
	"PKG_ID" NUMBER, 
5172 dpurdie 2277
	"V_EXT" VARCHAR2(50 BYTE), 
4040 dpurdie 2278
	"DIRECTION" NUMBER
5172 dpurdie 2279
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2280
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2281
 NOCOMPRESS LOGGING
5172 dpurdie 2282
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2283
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2284
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2285
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2286
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "RM_READONLY";
2287
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "MS_READONLY";
5892 dpurdie 2288
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "DM_READONLY";
2289
  GRANT SELECT ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" TO "RELEASE_MANAGER_READ";
5172 dpurdie 2290
--------------------------------------------------------
2291
--  DDL for Table TEST_RUN
2292
--------------------------------------------------------
2293
 
2294
  CREATE TABLE "RELEASE_MANAGER"."TEST_RUN" 
6031 dpurdie 2295
   (	"TESTRUN_ID" NUMBER, 
2296
	"BUILD_ID" NUMBER, 
5172 dpurdie 2297
	"PLATFORM" VARCHAR2(50 BYTE), 
2298
	"TYPE" VARCHAR2(1 BYTE), 
5384 dpurdie 2299
	"TEST_NAME" VARCHAR2(200 BYTE), 
5172 dpurdie 2300
	"TEST_OUTCOME" VARCHAR2(20 BYTE), 
2301
	"TIME_TAKEN" NUMBER, 
6031 dpurdie 2302
	"FAIL_MESSAGE" CLOB
5172 dpurdie 2303
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2304
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2305
 NOCOMPRESS LOGGING
5172 dpurdie 2306
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2307
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2308
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2309
  TABLESPACE "RELEASE_MANAGER_DATA" 
5172 dpurdie 2310
 LOB ("FAIL_MESSAGE") STORE AS BASICFILE (
6031 dpurdie 2311
  TABLESPACE "RELEASE_MANAGER_DATA" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
5172 dpurdie 2312
  NOCACHE LOGGING 
2313
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2314
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2315
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
5172 dpurdie 2316
 
6031 dpurdie 2317
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TESTRUN_ID" IS 'Unique Id. Used to generate a primary key.';
5172 dpurdie 2318
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."PLATFORM" IS 'Target Platform';
2319
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TYPE" IS 'P or D';
2320
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TEST_OUTCOME" IS 'PASS/FAIL/SKIP';
2321
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."TIME_TAKEN" IS 'Test Duration in milliseconds';
2322
   COMMENT ON COLUMN "RELEASE_MANAGER"."TEST_RUN"."FAIL_MESSAGE" IS 'Failure Message';
4040 dpurdie 2323
--------------------------------------------------------
2324
--  DDL for Table TEST_TYPES
2325
--------------------------------------------------------
2326
 
5172 dpurdie 2327
  CREATE TABLE "RELEASE_MANAGER"."TEST_TYPES" 
4040 dpurdie 2328
   (	"TEST_TYPE_ID" NUMBER, 
5172 dpurdie 2329
	"TEST_TYPE_NAME" VARCHAR2(50 BYTE), 
4040 dpurdie 2330
	"DISPLAY_ORDER" NUMBER
5172 dpurdie 2331
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2332
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2333
 NOCOMPRESS LOGGING
5172 dpurdie 2334
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2335
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2336
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2337
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2338
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "RM_READONLY";
2339
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "MS_READONLY";
5892 dpurdie 2340
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "DM_READONLY";
2341
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "RELEASE_MANAGER_READ";
2342
  GRANT SELECT ON "RELEASE_MANAGER"."TEST_TYPES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2343
--------------------------------------------------------
2344
--  DDL for Table UNIT_TESTS
2345
--------------------------------------------------------
2346
 
5172 dpurdie 2347
  CREATE TABLE "RELEASE_MANAGER"."UNIT_TESTS" 
4040 dpurdie 2348
   (	"TEST_ID" NUMBER, 
2349
	"PV_ID" NUMBER, 
2350
	"TEST_TYPES_FK" NUMBER, 
5172 dpurdie 2351
	"TEST_SUMMARY" VARCHAR2(4000 BYTE), 
4040 dpurdie 2352
	"COMPLETION_DATE" DATE, 
2353
	"COMPLETED_BY" NUMBER, 
5172 dpurdie 2354
	"RESULTS_URL" VARCHAR2(2000 BYTE), 
2355
	"RESULTS_ATTACHMENT_NAME" VARCHAR2(2000 BYTE), 
2356
	"TEST_ACCEPTED" CHAR(1 BYTE), 
4040 dpurdie 2357
	"ACCEPTANCE_DATE" DATE, 
2358
	"ACCEPTED_BY" NUMBER, 
5172 dpurdie 2359
	"REVIEW_COMMENTS" VARCHAR2(4000 BYTE), 
2360
	"NUMOF_TEST" VARCHAR2(50 BYTE)
2361
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2362
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2363
 NOCOMPRESS LOGGING
5172 dpurdie 2364
  STORAGE(INITIAL 31457280 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2365
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2366
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2367
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2368
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "RM_READONLY";
2369
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "MS_READONLY";
5892 dpurdie 2370
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "DM_READONLY";
2371
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "RELEASE_MANAGER_READ";
2372
  GRANT SELECT ON "RELEASE_MANAGER"."UNIT_TESTS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2373
--------------------------------------------------------
6031 dpurdie 2374
--  DDL for Table VALIDATION_RULES_DELETE_ME
4040 dpurdie 2375
--------------------------------------------------------
2376
 
6031 dpurdie 2377
  CREATE TABLE "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" 
5172 dpurdie 2378
   (	"FIELD_NAME" VARCHAR2(1000 BYTE), 
2379
	"IS_REQUIRED" CHAR(1 BYTE), 
2380
	"IS_NUMERIC" CHAR(1 BYTE), 
4040 dpurdie 2381
	"MIN_NUMERIC_VALUE" NUMBER, 
2382
	"MAX_NUMERIC_VALUE" NUMBER, 
5172 dpurdie 2383
	"IS_DATE" CHAR(1 BYTE), 
4040 dpurdie 2384
	"START_DATE" DATE, 
2385
	"END_DATE" DATE, 
2386
	"MIN_STRING_LENGTH" NUMBER, 
2387
	"MAX_STRING_LENGTH" NUMBER, 
5172 dpurdie 2388
	"REGEXP" VARCHAR2(4000 BYTE), 
2389
	"REGEXP_DESCRIPTION" VARCHAR2(50 BYTE)
2390
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2391
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2392
 NOCOMPRESS LOGGING
5172 dpurdie 2393
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2394
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2395
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2396
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2397
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "RM_READONLY";
2398
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "MS_READONLY";
2399
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "DM_READONLY";
2400
  GRANT SELECT ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2401
--------------------------------------------------------
2402
--  DDL for Table VCS_TYPE
2403
--------------------------------------------------------
2404
 
5172 dpurdie 2405
  CREATE TABLE "RELEASE_MANAGER"."VCS_TYPE" 
4040 dpurdie 2406
   (	"VCS_TYPE_ID" NUMBER, 
5172 dpurdie 2407
	"NAME" VARCHAR2(128 BYTE), 
2408
	"TAG" VARCHAR2(32 BYTE)
2409
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2410
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2411
 NOCOMPRESS LOGGING
5172 dpurdie 2412
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2413
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2414
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2415
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2416
  GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "RM_READONLY";
2417
  GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "MS_READONLY";
5892 dpurdie 2418
  GRANT SELECT ON "RELEASE_MANAGER"."VCS_TYPE" TO "DM_READONLY";
4040 dpurdie 2419
--------------------------------------------------------
2420
--  DDL for Table VIEWS
2421
--------------------------------------------------------
2422
 
5172 dpurdie 2423
  CREATE TABLE "RELEASE_MANAGER"."VIEWS" 
4040 dpurdie 2424
   (	"VIEW_ID" NUMBER, 
5172 dpurdie 2425
	"VIEW_NAME" VARCHAR2(30 BYTE), 
4040 dpurdie 2426
	"OWNER_ID" NUMBER, 
5172 dpurdie 2427
	"BASE_VIEW" CHAR(1 BYTE), 
2428
	"PUBLIC_READ" CHAR(1 BYTE)
2429
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2430
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2431
 NOCOMPRESS LOGGING
5172 dpurdie 2432
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2433
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2434
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2435
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2436
 
2437
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEWS"."OWNER_ID" IS '0:Public';
2438
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEWS"."BASE_VIEW" IS 'Y:Base View';
6031 dpurdie 2439
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "RM_READONLY";
2440
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "MS_READONLY";
5892 dpurdie 2441
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "DM_READONLY";
2442
  GRANT SELECT ON "RELEASE_MANAGER"."VIEWS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2443
--------------------------------------------------------
2444
--  DDL for Table VIEW_DEF
2445
--------------------------------------------------------
2446
 
5172 dpurdie 2447
  CREATE TABLE "RELEASE_MANAGER"."VIEW_DEF" 
4040 dpurdie 2448
   (	"VIEW_ID" NUMBER, 
2449
	"PKG_ID" NUMBER
5172 dpurdie 2450
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2451
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2452
 NOCOMPRESS LOGGING
5172 dpurdie 2453
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2454
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2455
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2456
  TABLESPACE "RELEASE_MANAGER_DATA" ;
5172 dpurdie 2457
 
2458
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEW_DEF"."VIEW_ID" IS 'Non Base View ID';
2459
   COMMENT ON COLUMN "RELEASE_MANAGER"."VIEW_DEF"."PKG_ID" IS 'Package ID';
2460
   COMMENT ON TABLE "RELEASE_MANAGER"."VIEW_DEF"  IS 'Packages in a non-baseview';
6031 dpurdie 2461
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "RM_READONLY";
2462
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "MS_READONLY";
5892 dpurdie 2463
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "DM_READONLY";
2464
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_DEF" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2465
--------------------------------------------------------
2466
--  DDL for Table VIEW_SETTINGS
2467
--------------------------------------------------------
2468
 
5172 dpurdie 2469
  CREATE TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" 
4040 dpurdie 2470
   (	"USER_ID" NUMBER, 
2471
	"VIEW_ID" NUMBER
5172 dpurdie 2472
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2473
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2474
 NOCOMPRESS LOGGING
5172 dpurdie 2475
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2476
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2477
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2478
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2479
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "RM_READONLY";
2480
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "MS_READONLY";
5892 dpurdie 2481
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "DM_READONLY";
2482
  GRANT SELECT ON "RELEASE_MANAGER"."VIEW_SETTINGS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2483
--------------------------------------------------------
2484
--  DDL for Table VTREES
2485
--------------------------------------------------------
2486
 
5172 dpurdie 2487
  CREATE TABLE "RELEASE_MANAGER"."VTREES" 
4040 dpurdie 2488
   (	"VTREE_ID" NUMBER, 
2489
	"PROJ_ID" NUMBER, 
5172 dpurdie 2490
	"VTREE_NAME" VARCHAR2(50 BYTE), 
2491
	"HIDE" CHAR(1 BYTE)
2492
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2493
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2494
 NOCOMPRESS LOGGING
5172 dpurdie 2495
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2496
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2497
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2498
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2499
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "RM_READONLY";
2500
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "MS_READONLY";
5892 dpurdie 2501
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "DM_READONLY";
2502
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "RELEASE_MANAGER_READ";
2503
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2504
--------------------------------------------------------
2505
--  DDL for Table VTREES_WORLD
2506
--------------------------------------------------------
2507
 
5172 dpurdie 2508
  CREATE TABLE "RELEASE_MANAGER"."VTREES_WORLD" 
4040 dpurdie 2509
   (	"WORLD_ID" NUMBER, 
2510
	"VTREE_ID" NUMBER
5172 dpurdie 2511
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2512
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2513
 NOCOMPRESS LOGGING
5172 dpurdie 2514
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2515
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2516
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2517
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2518
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "RM_READONLY";
2519
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "MS_READONLY";
5892 dpurdie 2520
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "DM_READONLY";
2521
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "RELEASE_MANAGER_READ";
2522
  GRANT SELECT ON "RELEASE_MANAGER"."VTREES_WORLD" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 2523
--------------------------------------------------------
2524
--  DDL for Table WORK_IN_PROGRESS
2525
--------------------------------------------------------
2526
 
5172 dpurdie 2527
  CREATE TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" 
4040 dpurdie 2528
   (	"RTAG_ID" NUMBER, 
2529
	"PV_ID" NUMBER, 
2530
	"VIEW_ID" NUMBER
5172 dpurdie 2531
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2532
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2533
 NOCOMPRESS LOGGING
5172 dpurdie 2534
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2535
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2536
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2537
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2538
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "RM_READONLY";
2539
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "MS_READONLY";
5892 dpurdie 2540
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "DM_READONLY";
2541
  GRANT SELECT ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2542
--------------------------------------------------------
2543
--  DDL for Table WORLDS
2544
--------------------------------------------------------
2545
 
5172 dpurdie 2546
  CREATE TABLE "RELEASE_MANAGER"."WORLDS" 
4040 dpurdie 2547
   (	"WORLD_ID" NUMBER, 
5172 dpurdie 2548
	"WORLD_NAME" VARCHAR2(30 BYTE), 
2549
	"WORLD_DESC" VARCHAR2(255 BYTE)
2550
   ) SEGMENT CREATION IMMEDIATE 
6031 dpurdie 2551
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
2552
 NOCOMPRESS LOGGING
5172 dpurdie 2553
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2554
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2555
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2556
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2557
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "RM_READONLY";
2558
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "MS_READONLY";
5892 dpurdie 2559
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "DM_READONLY";
2560
  GRANT SELECT ON "RELEASE_MANAGER"."WORLDS" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2561
--------------------------------------------------------
2562
--  DDL for View ENVIRONMENT_VIEW
2563
--------------------------------------------------------
2564
 
5172 dpurdie 2565
  CREATE OR REPLACE FORCE VIEW "RELEASE_MANAGER"."ENVIRONMENT_VIEW" ("ENV_AREA", "PV_ID", "RTAG_ID", "VIEW_ID", "PKG_STATE", "DEPRECATED_STATE", "INSERTOR_ID", "INSERT_STAMP", "OPERATION") AS 
4040 dpurdie 2566
  SELECT 2 AS ENV_AREA,
2567
    rc.PV_ID,
2568
    rc.RTAG_ID,
2569
    rc.BASE_VIEW_ID AS VIEW_ID,
2570
    rc.PKG_STATE,
2571
 rc.DEPRECATED_STATE,
2572
    rc.INSERTOR_ID,
2573
    rc.INSERT_STAMP,
2574
    ' ' AS OPERATION
2575
  FROM RELEASE_CONTENT rc
2576
UNION
2577
SELECT 0 AS ENV_AREA,
2578
    wip.PV_ID,
2579
    wip.RTAG_ID,
2580
    wip.VIEW_ID,
2581
    NULL AS PKG_STATE,
2582
 NULL AS DEPRECATED_STATE,
2583
    NULL AS INSERTOR_ID,
2584
    NULL AS INSERT_STAMP,
2585
    ' ' AS OPERATION
2586
  FROM WORK_IN_PROGRESS wip
2587
UNION
2588
SELECT 1 AS ENV_AREA,
2589
    pl.PV_ID,
2590
    pl.RTAG_ID,
2591
    pl.VIEW_ID,
2592
    NULL AS PKG_STATE,
2593
 NULL AS DEPRECATED_STATE,
2594
    NULL AS INSERTOR_ID,
2595
    NULL AS INSERT_STAMP,
2596
    pl.operation
2597
FROM PLANNED pl;
6031 dpurdie 2598
  GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "RM_READONLY";
5892 dpurdie 2599
  GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "MS_READONLY";
2600
  GRANT SELECT ON "RELEASE_MANAGER"."ENVIRONMENT_VIEW" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2601
--------------------------------------------------------
2602
--  DDL for View RM_PKG_ISSUES_ID
2603
--------------------------------------------------------
2604
 
5172 dpurdie 2605
  CREATE OR REPLACE FORCE VIEW "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" ("ISS_ID", "PKG_VERSION") AS 
4040 dpurdie 2606
  SELECT DISTINCT ISS_ID, PKG_VERSION FROM RM_PACKAGE_ISSUES WHERE ISS_ID IS NOT NULL
2607
 
2608
;
6031 dpurdie 2609
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" TO "RM_READONLY";
5892 dpurdie 2610
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" TO "MS_READONLY";
2611
  GRANT SELECT ON "RELEASE_MANAGER"."RM_PKG_ISSUES_ID" TO "RELEASE_MANAGER_READ";
4040 dpurdie 2612
--------------------------------------------------------
4211 dpurdie 2613
--  DDL for Index PK_LICENCES
4040 dpurdie 2614
--------------------------------------------------------
2615
 
5172 dpurdie 2616
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_LICENCES" ON "RELEASE_MANAGER"."LICENCES" ("LICENCE") 
2617
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2618
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2619
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2620
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2621
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2622
--------------------------------------------------------
4211 dpurdie 2623
--  DDL for Index UNQ_PKG_BUILD_ENV
4040 dpurdie 2624
--------------------------------------------------------
2625
 
5172 dpurdie 2626
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PKG_BUILD_ENV" ON "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ("PV_ID", "BE_ID") 
2627
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2628
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2629
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2630
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2631
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 2632
--------------------------------------------------------
2633
--  DDL for Index SDK_NAMES_UK1
2634
--------------------------------------------------------
2635
 
2636
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_NAMES_UK1" ON "RELEASE_MANAGER"."SDK_NAMES" ("SDK_NAME") 
2637
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2638
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2639
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2640
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2641
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2642
--------------------------------------------------------
4211 dpurdie 2643
--  DDL for Index UNQ_PACKAGES
4040 dpurdie 2644
--------------------------------------------------------
2645
 
5172 dpurdie 2646
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGES" ON "RELEASE_MANAGER"."PACKAGES" ("PKG_NAME") 
2647
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2648
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2649
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2650
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2651
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 2652
--------------------------------------------------------
2653
--  DDL for Index INX_PACKAGES_ALIAS
2654
--------------------------------------------------------
2655
 
5384 dpurdie 2656
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_PACKAGES_ALIAS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID", "PKG_ID", "V_EXT") 
5172 dpurdie 2657
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2658
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2659
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2660
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2661
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2662
--------------------------------------------------------
2663
--  DDL for Index CODE_REVIEW_URL_PK
2664
--------------------------------------------------------
2665
 
5172 dpurdie 2666
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CODE_REVIEW_URL_PK" ON "RELEASE_MANAGER"."CODE_REVIEW_URL" ("CR_ID") 
2667
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2668
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2669
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2670
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2671
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 2672
--------------------------------------------------------
2673
--  DDL for Index SDK_NAMES_PK
2674
--------------------------------------------------------
2675
 
2676
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_NAMES_PK" ON "RELEASE_MANAGER"."SDK_NAMES" ("SDK_ID") 
2677
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2678
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2679
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2680
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2681
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 2682
--------------------------------------------------------
2683
--  DDL for Index INX_ACTION_TIMESTAMP
2684
--------------------------------------------------------
2685
 
2686
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_TIMESTAMP" ON "RELEASE_MANAGER"."ACTION_LOG" ("ACTION_TIMESTAMP") 
2687
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2688
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2689
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2690
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2691
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2692
--------------------------------------------------------
4211 dpurdie 2693
--  DDL for Index INX_UT_COMPLETED
4040 dpurdie 2694
--------------------------------------------------------
2695
 
5172 dpurdie 2696
  CREATE INDEX "RELEASE_MANAGER"."INX_UT_COMPLETED" ON "RELEASE_MANAGER"."UNIT_TESTS" ("COMPLETION_DATE", "COMPLETED_BY") 
2697
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2698
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2699
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2700
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2701
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2702
--------------------------------------------------------
4308 dpurdie 2703
--  DDL for Index INX_PV_ID_PKGDOC
2704
--------------------------------------------------------
4040 dpurdie 2705
 
5172 dpurdie 2706
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_ID_PKGDOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID") 
2707
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2708
  STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2709
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2710
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2711
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2712
--------------------------------------------------------
2713
--  DDL for Index UNQ_VIEW_SETTINGS
2714
--------------------------------------------------------
4040 dpurdie 2715
 
5172 dpurdie 2716
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEW_SETTINGS" ON "RELEASE_MANAGER"."VIEW_SETTINGS" ("USER_ID", "VIEW_ID") 
2717
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2718
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2719
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2720
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2721
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2722
--------------------------------------------------------
2723
--  DDL for Index INX_PP_PV_ID
2724
--------------------------------------------------------
4040 dpurdie 2725
 
5172 dpurdie 2726
  CREATE INDEX "RELEASE_MANAGER"."INX_PP_PV_ID" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PV_ID") 
2727
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2728
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2729
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2730
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2731
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2732
--------------------------------------------------------
2733
--  DDL for Index PK_VIEWS
2734
--------------------------------------------------------
4040 dpurdie 2735
 
5172 dpurdie 2736
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_VIEWS" ON "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") 
2737
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2738
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2739
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2740
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2741
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 2742
--------------------------------------------------------
2743
--  DDL for Index CQ_USERS_PK
2744
--------------------------------------------------------
2745
 
2746
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_USERS_PK" ON "RELEASE_MANAGER"."CQ_USERS" ("DBID") 
2747
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2748
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2749
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2750
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2751
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2752
--------------------------------------------------------
2753
--  DDL for Index PK_PACKAGES
2754
--------------------------------------------------------
4040 dpurdie 2755
 
5172 dpurdie 2756
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PACKAGES" ON "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") 
2757
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2758
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2759
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2760
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2761
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2762
--------------------------------------------------------
2763
--  DDL for Index PK_TEST_TYPES
2764
--------------------------------------------------------
4040 dpurdie 2765
 
5172 dpurdie 2766
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_TEST_TYPES" ON "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_ID") 
2767
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2768
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2769
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2770
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2771
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2772
--------------------------------------------------------
2773
--  DDL for Index UNQ_ACTTYPE_ID
2774
--------------------------------------------------------
4040 dpurdie 2775
 
5172 dpurdie 2776
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_ACTTYPE_ID" ON "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") 
2777
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2778
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2779
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2780
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2781
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2782
--------------------------------------------------------
2783
--  DDL for Index INX_PROJ_ACTION_DATE_TIME
2784
--------------------------------------------------------
4040 dpurdie 2785
 
5172 dpurdie 2786
  CREATE INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_DATE_TIME" ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ("ACTION_DATETIME") 
2787
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2788
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2789
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2790
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2791
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2792
--------------------------------------------------------
2793
--  DDL for Index INX_RC_PKG_STATE
2794
--------------------------------------------------------
4040 dpurdie 2795
 
5172 dpurdie 2796
  CREATE INDEX "RELEASE_MANAGER"."INX_RC_PKG_STATE" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("PKG_STATE") 
2797
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2798
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2799
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2800
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2801
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2802
--------------------------------------------------------
2803
--  DDL for Index PROCESSES_PK
2804
--------------------------------------------------------
4040 dpurdie 2805
 
5172 dpurdie 2806
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PROCESSES_PK" ON "RELEASE_MANAGER"."PROCESSES" ("PROC_ID") 
2807
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2808
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2809
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2810
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2811
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2812
--------------------------------------------------------
2813
--  DDL for Index INX_PACKAGE_DEPS_DPV_ID
2814
--------------------------------------------------------
4040 dpurdie 2815
 
5172 dpurdie 2816
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPV_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPV_ID") 
2817
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2818
  STORAGE(INITIAL 75497472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2819
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2820
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2821
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2822
--------------------------------------------------------
6031 dpurdie 2823
--  DDL for Index PACKAGE_VERSIONS_RNOTE
2824
--------------------------------------------------------
2825
 
2826
  CREATE INDEX "RELEASE_MANAGER"."PACKAGE_VERSIONS_RNOTE" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("RELEASE_NOTES_INFO") 
2827
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2828
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2829
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2830
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2831
  TABLESPACE "RELEASE_MANAGER_DATA" ;
2832
--------------------------------------------------------
4308 dpurdie 2833
--  DDL for Index INX_PACKAGES_PKG_VERSION
2834
--------------------------------------------------------
4040 dpurdie 2835
 
5172 dpurdie 2836
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_VERSION" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_VERSION") 
2837
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
2838
  STORAGE(INITIAL 10485760 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2839
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2840
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2841
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2842
--------------------------------------------------------
2843
--  DDL for Index UNQ_PACKAGE_METRICS
2844
--------------------------------------------------------
4040 dpurdie 2845
 
5172 dpurdie 2846
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_METRICS" ON "RELEASE_MANAGER"."PACKAGE_METRICS" ("PV_ID") 
2847
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2848
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2849
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2850
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2851
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2852
--------------------------------------------------------
2853
--  DDL for Index UNQ_PLATFORM
2854
--------------------------------------------------------
4040 dpurdie 2855
 
5172 dpurdie 2856
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PLATFORM" ON "RELEASE_MANAGER"."PLATFORMS" ("NAME") 
2857
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2858
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2859
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2860
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2861
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2862
--------------------------------------------------------
2863
--  DDL for Index UNQ_VIEWS
2864
--------------------------------------------------------
4040 dpurdie 2865
 
5172 dpurdie 2866
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEWS" ON "RELEASE_MANAGER"."VIEWS" ("VIEW_NAME", "OWNER_ID") 
2867
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2868
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2869
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2870
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2871
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2872
--------------------------------------------------------
4211 dpurdie 2873
--  DDL for Index PRODUCT_STATES_PK
4040 dpurdie 2874
--------------------------------------------------------
2875
 
5172 dpurdie 2876
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PRODUCT_STATES_PK" ON "RELEASE_MANAGER"."PRODUCT_STATES" ("STATE_ID") 
2877
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2878
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2879
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2880
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2881
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2882
--------------------------------------------------------
4211 dpurdie 2883
--  DDL for Index PK_MESSAGE_BOARD
4040 dpurdie 2884
--------------------------------------------------------
2885
 
5172 dpurdie 2886
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_MESSAGE_BOARD" ON "RELEASE_MANAGER"."MESSAGE_BOARD" ("MSG_ID") 
2887
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2888
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2889
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2890
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2891
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2892
--------------------------------------------------------
2893
--  DDL for Index PK_BUILD_MACHINE_CONFIG
2894
--------------------------------------------------------
4040 dpurdie 2895
 
5172 dpurdie 2896
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_BUILD_MACHINE_CONFIG" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ("BMCON_ID") 
2897
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2898
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2899
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2900
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2901
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2902
--------------------------------------------------------
2903
--  DDL for Index INX_MSGBOARD
2904
--------------------------------------------------------
4040 dpurdie 2905
 
5172 dpurdie 2906
  CREATE INDEX "RELEASE_MANAGER"."INX_MSGBOARD" ON "RELEASE_MANAGER"."MESSAGE_BOARD" ("EXPIRY_DATE", "DUE_DATE") 
2907
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2908
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2909
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2910
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2911
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2912
--------------------------------------------------------
2913
--  DDL for Index PK_VTREES
2914
--------------------------------------------------------
4040 dpurdie 2915
 
5172 dpurdie 2916
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_VTREES" ON "RELEASE_MANAGER"."VTREES" ("VTREE_ID") 
2917
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2918
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2919
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2920
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2921
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2922
--------------------------------------------------------
2923
--  DDL for Index UNQ_UT_PART1
2924
--------------------------------------------------------
4040 dpurdie 2925
 
5172 dpurdie 2926
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_UT_PART1" ON "RELEASE_MANAGER"."UNIT_TESTS" ("PV_ID", "TEST_ID") 
2927
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2928
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2929
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2930
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2931
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2932
--------------------------------------------------------
2933
--  DDL for Index UNQ_BUILD_ENV
2934
--------------------------------------------------------
4040 dpurdie 2935
 
5172 dpurdie 2936
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV" ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_NAME") 
2937
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2938
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2939
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2940
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2941
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2942
--------------------------------------------------------
6031 dpurdie 2943
--  DDL for Index PK_RUN_LEVEL
2944
--------------------------------------------------------
2945
 
2946
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_RUN_LEVEL" ON "RELEASE_MANAGER"."RUN_LEVEL" ("RCON_ID") 
2947
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2948
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
2949
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2950
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2951
  TABLESPACE "RELEASE_MANAGER_INDX" ;
2952
--------------------------------------------------------
4211 dpurdie 2953
--  DDL for Index INX_ACTION_DATE_TIME
4040 dpurdie 2954
--------------------------------------------------------
2955
 
5172 dpurdie 2956
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_DATE_TIME" ON "RELEASE_MANAGER"."ACTION_LOG" ("ACTION_DATETIME") 
2957
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2958
  STORAGE(INITIAL 92274688 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2959
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2960
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2961
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 2962
--------------------------------------------------------
4308 dpurdie 2963
--  DDL for Index UNQ_BUILD_MACHINE_CONFIG02
2964
--------------------------------------------------------
4040 dpurdie 2965
 
5172 dpurdie 2966
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_MACHINE_CONFIG02" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ("MACHINE_HOSTNAME") 
2967
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2968
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2969
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2970
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2971
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2972
--------------------------------------------------------
5384 dpurdie 2973
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX6
2974
--------------------------------------------------------
2975
 
2976
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX6" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("NEW_NUM") 
2977
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2978
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2979
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2980
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2981
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 2982
--------------------------------------------------------
4308 dpurdie 2983
--  DDL for Index BUILD_MACHINES_PK
2984
--------------------------------------------------------
4040 dpurdie 2985
 
5172 dpurdie 2986
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_MACHINES_PK" ON "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") 
2987
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2988
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2989
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
2990
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
2991
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 2992
--------------------------------------------------------
2993
--  DDL for Index INX_TTB_SESSION
2994
--------------------------------------------------------
4040 dpurdie 2995
 
5172 dpurdie 2996
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_SESSION" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("SESSION_NUM") 
2997
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
2998
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 2999
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3000
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3001
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3002
--------------------------------------------------------
3003
--  DDL for Index UNQ_RTD
3004
--------------------------------------------------------
4040 dpurdie 3005
 
5172 dpurdie 3006
  CREATE INDEX "RELEASE_MANAGER"."UNQ_RTD" ON "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ("PV_ID", "RTD_ID") 
3007
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3008
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3009
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3010
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3011
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 3012
--------------------------------------------------------
5892 dpurdie 3013
--  DDL for Index BUILD_PLAN_PK
3014
--------------------------------------------------------
3015
 
3016
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_PLAN_PK" ON "RELEASE_MANAGER"."BUILD_PLAN" ("RTAG_ID", "BUILD_ORDER", "PV_ID") 
3017
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3018
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3019
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3020
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3021
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5892 dpurdie 3022
--------------------------------------------------------
5172 dpurdie 3023
--  DDL for Index SDK_CONTENT_INDEX1
3024
--------------------------------------------------------
3025
 
3026
  CREATE INDEX "RELEASE_MANAGER"."SDK_CONTENT_INDEX1" ON "RELEASE_MANAGER"."SDK_CONTENT" ("SDKTAG_ID") 
3027
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3028
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3029
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3030
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3031
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3032
--------------------------------------------------------
3033
--  DDL for Index CQ_STATEDEF_PK
3034
--------------------------------------------------------
3035
 
3036
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_STATEDEF_PK" ON "RELEASE_MANAGER"."CQ_STATEDEF" ("ID") 
3037
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3038
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3039
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3040
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3041
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3042
--------------------------------------------------------
4211 dpurdie 3043
--  DDL for Index INX_RL_RTAG_ID
4040 dpurdie 3044
--------------------------------------------------------
3045
 
5172 dpurdie 3046
  CREATE INDEX "RELEASE_MANAGER"."INX_RL_RTAG_ID" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("RTAG_ID") 
3047
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3048
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3049
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3050
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3051
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3052
--------------------------------------------------------
4211 dpurdie 3053
--  DDL for Index UNQ_VIEW_DEF
4040 dpurdie 3054
--------------------------------------------------------
3055
 
5172 dpurdie 3056
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VIEW_DEF" ON "RELEASE_MANAGER"."VIEW_DEF" ("VIEW_ID", "PKG_ID") 
3057
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3058
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3059
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3060
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3061
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3062
--------------------------------------------------------
4211 dpurdie 3063
--  DDL for Index INX_PACKAGES_PKG_NAME
4040 dpurdie 3064
--------------------------------------------------------
3065
 
5172 dpurdie 3066
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_PKG_NAME" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID") 
3067
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3068
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3069
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3070
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3071
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3072
--------------------------------------------------------
4211 dpurdie 3073
--  DDL for Index INX_PCOMP_FK_PV_ID
4040 dpurdie 3074
--------------------------------------------------------
3075
 
5172 dpurdie 3076
  CREATE INDEX "RELEASE_MANAGER"."INX_PCOMP_FK_PV_ID" ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" ("PV_ID") 
3077
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3078
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3079
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3080
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3081
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3082
--------------------------------------------------------
4211 dpurdie 3083
--  DDL for Index DAEMON_INSTRUCTIONS_UK1
4040 dpurdie 3084
--------------------------------------------------------
3085
 
5172 dpurdie 3086
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS_UK1" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("OP_CODE", "RTAG_ID", "PV_ID") 
3087
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3088
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3089
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3090
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3091
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3092
--------------------------------------------------------
4211 dpurdie 3093
--  DDL for Index INX_FILE_NAME
4040 dpurdie 3094
--------------------------------------------------------
3095
 
5172 dpurdie 3096
  CREATE INDEX "RELEASE_MANAGER"."INX_FILE_NAME" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" (UPPER("FILE_NAME")) 
3097
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3098
  STORAGE(INITIAL 1147142144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3099
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3100
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3101
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3102
--------------------------------------------------------
4211 dpurdie 3103
--  DDL for Index INX_IS_PATCH_IGNORE
4040 dpurdie 3104
--------------------------------------------------------
3105
 
5172 dpurdie 3106
  CREATE INDEX "RELEASE_MANAGER"."INX_IS_PATCH_IGNORE" ON "RELEASE_MANAGER"."IGNORE_WARNINGS" ("IS_PATCH_IGNORE") 
3107
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3108
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3109
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3110
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3111
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3112
--------------------------------------------------------
6031 dpurdie 3113
--  DDL for Index PK_TEST_RUN
3114
--------------------------------------------------------
3115
 
3116
  CREATE INDEX "RELEASE_MANAGER"."PK_TEST_RUN" ON "RELEASE_MANAGER"."TEST_RUN" ("TESTRUN_ID") 
3117
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3118
  STORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3119
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3120
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3121
  TABLESPACE "RELEASE_MANAGER_INDX" ;
3122
--------------------------------------------------------
4211 dpurdie 3123
--  DDL for Index UNQ_BUILD_ENV_DOCS
4040 dpurdie 3124
--------------------------------------------------------
3125
 
5172 dpurdie 3126
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ENV_DOCS" ON "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" ("BE_ID", "DOC_NUM") 
3127
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3128
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3129
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3130
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3131
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3132
--------------------------------------------------------
4211 dpurdie 3133
--  DDL for Index INX_PROJ_ACTION_LOG_PROJ
4040 dpurdie 3134
--------------------------------------------------------
3135
 
5172 dpurdie 3136
  CREATE INDEX "RELEASE_MANAGER"."INX_PROJ_ACTION_LOG_PROJ" ON "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ("PROJ_ID") 
3137
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3138
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3139
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3140
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3141
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 3142
--------------------------------------------------------
5384 dpurdie 3143
--  DDL for Index LICENCING_PK
3144
--------------------------------------------------------
3145
 
3146
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."LICENCING_PK" ON "RELEASE_MANAGER"."LICENCING" ("PV_ID", "LICENCE") 
3147
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3148
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3149
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3150
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3151
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3152
--------------------------------------------------------
5172 dpurdie 3153
--  DDL for Index BUILD_SERVICE_CONFIG_INDEX1
3154
--------------------------------------------------------
3155
 
3156
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG_INDEX1" ON "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" ("SERVICE") 
3157
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3158
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3159
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3160
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3161
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 3162
--------------------------------------------------------
3163
--  DDL for Index RELEASE_MODIFIED_PK
3164
--------------------------------------------------------
3165
 
3166
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."RELEASE_MODIFIED_PK" ON "RELEASE_MANAGER"."RELEASE_MODIFIED" ("RTAG_ID") 
3167
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3168
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3169
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3170
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3171
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3172
--------------------------------------------------------
3173
--  DDL for Index CQ_HISTORY_INDEX2
3174
--------------------------------------------------------
3175
 
3176
  CREATE INDEX "RELEASE_MANAGER"."CQ_HISTORY_INDEX2" ON "RELEASE_MANAGER"."CQ_HISTORY" ("ENTITYDEF_ID") 
3177
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3178
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3179
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3180
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3181
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3182
--------------------------------------------------------
3183
--  DDL for Index INX_TTB_LEVEL_NUM
3184
--------------------------------------------------------
3185
 
5172 dpurdie 3186
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_LEVEL_NUM" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("LEVEL_NUM") 
3187
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3188
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3189
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3190
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3191
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3192
--------------------------------------------------------
4211 dpurdie 3193
--  DDL for Index UNQ_WORK_IN_PROGRESS
4040 dpurdie 3194
--------------------------------------------------------
3195
 
5172 dpurdie 3196
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_WORK_IN_PROGRESS" ON "RELEASE_MANAGER"."WORK_IN_PROGRESS" ("RTAG_ID", "PV_ID") 
3197
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3198
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3199
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3200
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3201
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3202
--------------------------------------------------------
4211 dpurdie 3203
--  DDL for Index INX_PACKAGES_V_NMM
4040 dpurdie 3204
--------------------------------------------------------
3205
 
6600 dpurdie 3206
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_NMM" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_NMM", "PV_ID") 
5172 dpurdie 3207
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3208
  STORAGE(INITIAL 9437184 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3209
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3210
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3211
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3212
--------------------------------------------------------
6031 dpurdie 3213
--  DDL for Index TEST_RUN_IDX_BUILD_ID
3214
--------------------------------------------------------
3215
 
3216
  CREATE INDEX "RELEASE_MANAGER"."TEST_RUN_IDX_BUILD_ID" ON "RELEASE_MANAGER"."TEST_RUN" ("BUILD_ID") 
3217
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3218
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3219
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3220
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3221
  TABLESPACE "RELEASE_MANAGER_DATA" ;
3222
--------------------------------------------------------
4211 dpurdie 3223
--  DDL for Index UNQ_PLANNED
4040 dpurdie 3224
--------------------------------------------------------
3225
 
5172 dpurdie 3226
  CREATE INDEX "RELEASE_MANAGER"."UNQ_PLANNED" ON "RELEASE_MANAGER"."PLANNED" ("RTAG_ID", "PV_ID") 
3227
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3228
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3229
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3230
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3231
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3232
--------------------------------------------------------
4211 dpurdie 3233
--  DDL for Index INX_TES_PKGEXT
4040 dpurdie 3234
--------------------------------------------------------
3235
 
5172 dpurdie 3236
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_PKGEXT" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("PKG_ID", "V_EXT") 
3237
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3238
  STORAGE(INITIAL 524288 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3239
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3240
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3241
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3242
--------------------------------------------------------
3243
--  DDL for Index UNQ_BUILD_MACHINE_CONFIG01
3244
--------------------------------------------------------
4040 dpurdie 3245
 
5172 dpurdie 3246
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_MACHINE_CONFIG01" ON "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" (LOWER("DISPLAY_NAME")) 
3247
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3248
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3249
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3250
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3251
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3252
--------------------------------------------------------
5384 dpurdie 3253
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX2
3254
--------------------------------------------------------
3255
 
3256
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX2" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("STATE") 
3257
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3258
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3259
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3260
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3261
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3262
--------------------------------------------------------
3263
--  DDL for Index TEMP_ENV_DEPS_PK
3264
--------------------------------------------------------
3265
 
3266
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."TEMP_ENV_DEPS_PK" ON "RELEASE_MANAGER"."TEMP_ENV_DEPS" ("PV_ID", "SESSION_NUM", "DPV_ID") 
3267
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3268
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3269
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3270
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3271
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3272
--------------------------------------------------------
4211 dpurdie 3273
--  DDL for Index UNQ_RELEASE_LINKS
4040 dpurdie 3274
--------------------------------------------------------
3275
 
5172 dpurdie 3276
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_LINKS" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("RTAG_ID", "REF_RTAG_ID") 
3277
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3278
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3279
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3280
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3281
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3282
--------------------------------------------------------
3283
--  DDL for Index UNQ_PKG_DOC
3284
--------------------------------------------------------
4040 dpurdie 3285
 
5172 dpurdie 3286
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PKG_DOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID", "DOC_NUM") 
3287
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3288
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3289
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3290
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3291
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3292
--------------------------------------------------------
3293
--  DDL for Index LXR_STATE_PK
3294
--------------------------------------------------------
3295
 
3296
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."LXR_STATE_PK" ON "RELEASE_MANAGER"."LXR_STATE" ("RTAG_ID") 
3297
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3298
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3299
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3300
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3301
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3302
--------------------------------------------------------
4211 dpurdie 3303
--  DDL for Index DAEMON_INSTRUCTIONS_PK
4040 dpurdie 3304
--------------------------------------------------------
3305
 
5172 dpurdie 3306
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS_PK" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("DAEMON_INSTRUCTIONS_ID") 
3307
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3308
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3309
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3310
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3311
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3312
--------------------------------------------------------
3313
--  DDL for Index INX_DAEMON_INST_SCHED_DATETIME
3314
--------------------------------------------------------
4040 dpurdie 3315
 
5172 dpurdie 3316
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_SCHED_DATETIME" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("SCHEDULED_DATETIME") 
3317
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3318
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3319
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3320
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3321
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3322
--------------------------------------------------------
4211 dpurdie 3323
--  DDL for Index INX_TTB_PKG
4040 dpurdie 3324
--------------------------------------------------------
3325
 
5172 dpurdie 3326
  CREATE INDEX "RELEASE_MANAGER"."INX_TTB_PKG" ON "RELEASE_MANAGER"."TEMP_TREE_BROWSE" ("PKG_ID", "V_EXT") 
3327
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3328
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3329
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3330
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3331
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3332
--------------------------------------------------------
3333
--  DDL for Index PACKAGE_VERSIONS_MODIFER_ID
3334
--------------------------------------------------------
3335
 
3336
  CREATE INDEX "RELEASE_MANAGER"."PACKAGE_VERSIONS_MODIFER_ID" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("MODIFIER_ID") 
3337
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3338
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3339
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3340
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3341
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3342
--------------------------------------------------------
4211 dpurdie 3343
--  DDL for Index UNQ_VALIDATION_RULES
4040 dpurdie 3344
--------------------------------------------------------
3345
 
6031 dpurdie 3346
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VALIDATION_RULES" ON "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" ("FIELD_NAME") 
5172 dpurdie 3347
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3348
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3349
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3350
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3351
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3352
--------------------------------------------------------
3353
--  DDL for Index BUILD_STANDARDS_ADDENDUM_PK
3354
--------------------------------------------------------
4040 dpurdie 3355
 
5172 dpurdie 3356
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM_PK" ON "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ("BSA_ID") 
3357
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3358
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3359
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3360
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3361
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3362
--------------------------------------------------------
4211 dpurdie 3363
--  DDL for Index INX_PV_OWNER_ID
4040 dpurdie 3364
--------------------------------------------------------
3365
 
5172 dpurdie 3366
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_OWNER_ID" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("OWNER_ID") 
3367
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3368
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3369
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3370
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3371
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3372
--------------------------------------------------------
4211 dpurdie 3373
--  DDL for Index INX_TES_TES_STATE
4040 dpurdie 3374
--------------------------------------------------------
3375
 
5172 dpurdie 3376
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_TES_STATE" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("TES_STATE") 
3377
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3378
  STORAGE(INITIAL 458752 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3379
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3380
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3381
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3382
--------------------------------------------------------
4308 dpurdie 3383
--  DDL for Index UNQ_AN_PART1
3384
--------------------------------------------------------
4040 dpurdie 3385
 
5172 dpurdie 3386
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_AN_PART1" ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" ("PV_ID", "NOTE_ID") 
3387
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3388
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3389
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3390
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3391
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3392
--------------------------------------------------------
4211 dpurdie 3393
--  DDL for Index UNQ_RELEASE_CONTENTS
4040 dpurdie 3394
--------------------------------------------------------
3395
 
5172 dpurdie 3396
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_CONTENTS" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("RTAG_ID", "PV_ID") 
3397
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3398
  STORAGE(INITIAL 10485760 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3399
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3400
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3401
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3402
--------------------------------------------------------
3403
--  DDL for Index INX_ACTION_LOG_PV_ID
3404
--------------------------------------------------------
4040 dpurdie 3405
 
5172 dpurdie 3406
  CREATE INDEX "RELEASE_MANAGER"."INX_ACTION_LOG_PV_ID" ON "RELEASE_MANAGER"."ACTION_LOG" ("PV_ID") 
3407
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3408
  STORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3409
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3410
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3411
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3412
--------------------------------------------------------
4211 dpurdie 3413
--  DDL for Index UNQ_TEST_TYPE_NAME
4040 dpurdie 3414
--------------------------------------------------------
3415
 
5172 dpurdie 3416
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_TEST_TYPE_NAME" ON "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_NAME") 
3417
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3418
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3419
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3420
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3421
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 3422
--------------------------------------------------------
3423
--  DDL for Index PEGGED_VERSIONS_INDEX1
3424
--------------------------------------------------------
3425
 
3426
  CREATE INDEX "RELEASE_MANAGER"."PEGGED_VERSIONS_INDEX1" ON "RELEASE_MANAGER"."PEGGED_VERSIONS" ("RTAG_ID", "PV_ID") 
3427
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3428
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3429
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3430
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3431
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3432
--------------------------------------------------------
4308 dpurdie 3433
--  DDL for Index PKNOTE_MANAGER1
3434
--------------------------------------------------------
4040 dpurdie 3435
 
5172 dpurdie 3436
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PKNOTE_MANAGER1" ON "RELEASE_MANAGER"."NOTE_MANAGER" ("NID") 
3437
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3438
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3439
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3440
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3441
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3442
--------------------------------------------------------
3443
--  DDL for Index INX_PACKAGES_V_MM
3444
--------------------------------------------------------
4040 dpurdie 3445
 
6600 dpurdie 3446
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_MM" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_MM", "PV_ID") 
5172 dpurdie 3447
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3448
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3449
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3450
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3451
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3452
--------------------------------------------------------
3453
--  DDL for Index INX_CODE_REVIEW
3454
--------------------------------------------------------
4040 dpurdie 3455
 
5172 dpurdie 3456
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."INX_CODE_REVIEW" ON "RELEASE_MANAGER"."CODE_REVIEWS" ("PV_ID") 
3457
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3458
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3459
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3460
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3461
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3462
--------------------------------------------------------
4211 dpurdie 3463
--  DDL for Index UNQ_VTREES
4040 dpurdie 3464
--------------------------------------------------------
3465
 
5172 dpurdie 3466
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VTREES" ON "RELEASE_MANAGER"."VTREES" ("PROJ_ID", "VTREE_NAME") 
3467
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3468
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3469
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3470
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3471
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3472
--------------------------------------------------------
3473
--  DDL for Index INX_PACKAGE_DEPS_PKG_ID
3474
--------------------------------------------------------
4040 dpurdie 3475
 
5172 dpurdie 3476
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PKG_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PKG_ID") 
3477
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3478
  STORAGE(INITIAL 83886080 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3479
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3480
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3481
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3482
--------------------------------------------------------
4211 dpurdie 3483
--  DDL for Index UNQ_PROJECTS
4040 dpurdie 3484
--------------------------------------------------------
3485
 
5172 dpurdie 3486
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PROJECTS" ON "RELEASE_MANAGER"."PROJECTS" ("PROJ_NAME") 
3487
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3488
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3489
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3490
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3491
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3492
--------------------------------------------------------
3493
--  DDL for Index INX_PACKAGES_V_EXT
3494
--------------------------------------------------------
4040 dpurdie 3495
 
5172 dpurdie 3496
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGES_V_EXT" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("V_EXT") 
3497
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3498
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3499
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3500
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3501
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3502
--------------------------------------------------------
4211 dpurdie 3503
--  DDL for Index PK_PROJECTS
4040 dpurdie 3504
--------------------------------------------------------
3505
 
5172 dpurdie 3506
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PROJECTS" ON "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") 
3507
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3508
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3509
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3510
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3511
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3512
--------------------------------------------------------
3513
--  DDL for Index INX_TES_PV
3514
--------------------------------------------------------
4040 dpurdie 3515
 
5172 dpurdie 3516
  CREATE INDEX "RELEASE_MANAGER"."INX_TES_PV" ON "RELEASE_MANAGER"."TEMP_ENV_STATES" ("PV_ID") 
3517
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3518
  STORAGE(INITIAL 851968 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3519
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3520
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3521
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3522
--------------------------------------------------------
5384 dpurdie 3523
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX5
3524
--------------------------------------------------------
3525
 
3526
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX5" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PRODUCT") 
3527
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3528
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3529
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3530
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3531
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3532
--------------------------------------------------------
4211 dpurdie 3533
--  DDL for Index UNQ_VTREE_WORLD
4040 dpurdie 3534
--------------------------------------------------------
3535
 
5172 dpurdie 3536
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_VTREE_WORLD" ON "RELEASE_MANAGER"."VTREES_WORLD" ("WORLD_ID", "VTREE_ID") 
3537
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3538
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3539
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3540
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3541
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3542
--------------------------------------------------------
4308 dpurdie 3543
--  DDL for Index UNQ_IGW
3544
--------------------------------------------------------
4040 dpurdie 3545
 
5172 dpurdie 3546
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_IGW" ON "RELEASE_MANAGER"."IGNORE_WARNINGS" ("RTAG_ID", "PV_ID", "DPV_ID") 
3547
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3548
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3549
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3550
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3551
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3552
--------------------------------------------------------
3553
--  DDL for Index INX_DAEMON_INST_RTAG_ID
3554
--------------------------------------------------------
4040 dpurdie 3555
 
5172 dpurdie 3556
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_RTAG_ID" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("RTAG_ID") 
3557
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3558
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3559
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3560
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3561
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 3562
--------------------------------------------------------
3563
--  DDL for Index SDK_TAGS_PK
3564
--------------------------------------------------------
3565
 
3566
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."SDK_TAGS_PK" ON "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") 
3567
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3568
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3569
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3570
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3571
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3572
--------------------------------------------------------
3573
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX7
3574
--------------------------------------------------------
3575
 
3576
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX7" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("DEPENDANT_DEVIS") 
3577
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3578
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3579
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3580
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3581
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3582
--------------------------------------------------------
3583
--  DDL for Index PK_NOTIFICATION_HISTORY
3584
--------------------------------------------------------
4040 dpurdie 3585
 
5172 dpurdie 3586
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_NOTIFICATION_HISTORY" ON "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ("RTAG_ID", "PV_ID", "USER_ID") 
3587
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3588
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3589
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3590
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3591
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3592
--------------------------------------------------------
3593
--  DDL for Index UNQ_PACKAGE_DEPENDENCIES
3594
--------------------------------------------------------
4040 dpurdie 3595
 
5172 dpurdie 3596
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_DEPENDENCIES" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PV_ID", "DPV_ID") 
3597
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3598
  STORAGE(INITIAL 100663296 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3599
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3600
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3601
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3602
--------------------------------------------------------
6600 dpurdie 3603
--  DDL for Index PACKAGE_PATCHES_INDEX1
3604
--------------------------------------------------------
3605
 
3606
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PACKAGE_PATCHES_INDEX1" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PV_ID", "PATCH_ID") 
3607
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3608
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3609
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3610
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3611
  TABLESPACE "RELEASE_MANAGER_DATA" ;
3612
--------------------------------------------------------
4308 dpurdie 3613
--  DDL for Index INX_PACKAGE_DEPS_PV_ID
3614
--------------------------------------------------------
4040 dpurdie 3615
 
5172 dpurdie 3616
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_PV_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("PV_ID") 
3617
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3618
  STORAGE(INITIAL 75497472 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3619
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3620
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3621
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3622
--------------------------------------------------------
4211 dpurdie 3623
--  DDL for Index BUILD_STANDARDS_PK
4040 dpurdie 3624
--------------------------------------------------------
3625
 
5172 dpurdie 3626
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_STANDARDS_PK" ON "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") 
3627
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3628
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3629
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3630
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3631
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3632
--------------------------------------------------------
3633
--  DDL for Index UNQ_CQ
3634
--------------------------------------------------------
4040 dpurdie 3635
 
5172 dpurdie 3636
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_CQ" ON "RELEASE_MANAGER"."CQ_ISSUES" ("PV_ID", "ISS_ID", "ISS_DB") 
3637
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3638
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3639
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3640
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3641
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3642
--------------------------------------------------------
4211 dpurdie 3643
--  DDL for Index UNQ_PACKAGE_VERSIONS
4040 dpurdie 3644
--------------------------------------------------------
3645
 
5172 dpurdie 3646
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_VERSIONS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PKG_ID", "PKG_VERSION") 
3647
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3648
  STORAGE(INITIAL 11534336 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3649
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3650
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3651
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3652
--------------------------------------------------------
3653
--  DDL for Index INX_PV_ID_TEST_ID_PKGDOC
3654
--------------------------------------------------------
4040 dpurdie 3655
 
5172 dpurdie 3656
  CREATE INDEX "RELEASE_MANAGER"."INX_PV_ID_TEST_ID_PKGDOC" ON "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ("PV_ID", "TEST_ID") 
3657
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3658
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3659
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3660
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3661
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3662
--------------------------------------------------------
4211 dpurdie 3663
--  DDL for Index UNQ_PACKAGE_PATCHES
4040 dpurdie 3664
--------------------------------------------------------
3665
 
5172 dpurdie 3666
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PACKAGE_PATCHES" ON "RELEASE_MANAGER"."PACKAGE_PATCHES" ("PATCH_ID") 
3667
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3668
  STORAGE(INITIAL 327680 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3669
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3670
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3671
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3672
--------------------------------------------------------
5384 dpurdie 3673
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX3
3674
--------------------------------------------------------
3675
 
3676
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX3" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PACKAGE_REF") 
3677
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3678
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3679
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3680
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3681
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3682
--------------------------------------------------------
3683
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX4
3684
--------------------------------------------------------
3685
 
3686
  CREATE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX4" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("PROJECT") 
3687
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3688
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3689
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3690
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3691
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3692
--------------------------------------------------------
4308 dpurdie 3693
--  DDL for Index UNQ_REL_COMPONENTS
3694
--------------------------------------------------------
4040 dpurdie 3695
 
5172 dpurdie 3696
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_REL_COMPONENTS" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" ("PV_ID", "FILE_NAME", "FILE_PATH") 
3697
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3698
  STORAGE(INITIAL 3489660928 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3699
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3700
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3701
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3702
--------------------------------------------------------
3703
--  DDL for Index PK_PACKAGE_VERSIONS
3704
--------------------------------------------------------
4040 dpurdie 3705
 
5172 dpurdie 3706
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_PACKAGE_VERSIONS" ON "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") 
3707
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3708
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3709
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3710
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3711
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3712
--------------------------------------------------------
3713
--  DDL for Index UNQ_RELEASE_METRICS
3714
--------------------------------------------------------
4040 dpurdie 3715
 
5172 dpurdie 3716
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_RELEASE_METRICS" ON "RELEASE_MANAGER"."RELEASE_METRICS" ("RTAG_ID") 
3717
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3718
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3719
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3720
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3721
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3722
--------------------------------------------------------
3723
--  DDL for Index UNQ_BUILD_ORDER
3724
--------------------------------------------------------
4040 dpurdie 3725
 
5172 dpurdie 3726
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_BUILD_ORDER" ON "RELEASE_MANAGER"."BUILD_ORDER" ("RTAG_ID", "PV_ID", "STEP_NUM") 
3727
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3728
  STORAGE(INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3729
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3730
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3731
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3732
--------------------------------------------------------
3733
--  DDL for Index PK_BUILD_ENVIRONMENTS
3734
--------------------------------------------------------
4040 dpurdie 3735
 
5172 dpurdie 3736
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_BUILD_ENVIRONMENTS" ON "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") 
3737
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3738
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3739
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3740
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3741
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3742
--------------------------------------------------------
3743
--  DDL for Index CQ_SOFTWARE_ISSUE_INDEX1
3744
--------------------------------------------------------
3745
 
3746
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE_INDEX1" ON "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ("DBID") 
3747
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3748
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3749
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3750
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3751
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3752
--------------------------------------------------------
3753
--  DDL for Index INX_PACKAGE_DEPS_DPKG_ID
3754
--------------------------------------------------------
4040 dpurdie 3755
 
5172 dpurdie 3756
  CREATE INDEX "RELEASE_MANAGER"."INX_PACKAGE_DEPS_DPKG_ID" ON "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ("DPKG_ID") 
3757
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3758
  STORAGE(INITIAL 83886080 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3759
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3760
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3761
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3762
--------------------------------------------------------
3763
--  DDL for Index INX_RL_REFRTAG_ID
3764
--------------------------------------------------------
4040 dpurdie 3765
 
5172 dpurdie 3766
  CREATE INDEX "RELEASE_MANAGER"."INX_RL_REFRTAG_ID" ON "RELEASE_MANAGER"."RELEASE_LINKS" ("REF_RTAG_ID") 
3767
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3768
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3769
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3770
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3771
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3772
--------------------------------------------------------
3773
--  DDL for Index INX_RC_BASE_VIEW_ID
3774
--------------------------------------------------------
4040 dpurdie 3775
 
5172 dpurdie 3776
  CREATE INDEX "RELEASE_MANAGER"."INX_RC_BASE_VIEW_ID" ON "RELEASE_MANAGER"."RELEASE_CONTENT" ("BASE_VIEW_ID") 
3777
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING 
3778
  STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3779
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3780
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3781
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3782
--------------------------------------------------------
3783
--  DDL for Index INX_DAEMON_INST_PV_ID
3784
--------------------------------------------------------
4211 dpurdie 3785
 
5172 dpurdie 3786
  CREATE INDEX "RELEASE_MANAGER"."INX_DAEMON_INST_PV_ID" ON "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ("PV_ID") 
3787
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3788
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3789
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3790
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3791
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3792
--------------------------------------------------------
4040 dpurdie 3793
--  DDL for Index UNQ_PROJECT_EXT
3794
--------------------------------------------------------
3795
 
5172 dpurdie 3796
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_PROJECT_EXT" ON "RELEASE_MANAGER"."PROJECT_EXTENTIONS" ("PROJ_ID", "EXT_NAME") 
3797
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3798
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3799
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3800
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3801
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3802
--------------------------------------------------------
3803
--  DDL for Index VCS_TYPE_PK
3804
--------------------------------------------------------
4040 dpurdie 3805
 
5172 dpurdie 3806
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."VCS_TYPE_PK" ON "RELEASE_MANAGER"."VCS_TYPE" ("VCS_TYPE_ID") 
3807
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3808
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3809
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3810
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3811
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3812
--------------------------------------------------------
4211 dpurdie 3813
--  DDL for Index INX_PC_FILE_NAME
4040 dpurdie 3814
--------------------------------------------------------
3815
 
5172 dpurdie 3816
  CREATE INDEX "RELEASE_MANAGER"."INX_PC_FILE_NAME" ON "RELEASE_MANAGER"."PRODUCT_COMPONENTS" (UPPER("FILE_NAME")) 
3817
  PCTFREE 10 INITRANS 2 MAXTRANS 167 COMPUTE STATISTICS 
3818
  STORAGE(INITIAL 18874368 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3819
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3820
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3821
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3822
--------------------------------------------------------
3823
--  DDL for Index PK_RELEASE_TAGS
3824
--------------------------------------------------------
4040 dpurdie 3825
 
5172 dpurdie 3826
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_RELEASE_TAGS" ON "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") 
3827
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3828
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3829
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3830
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3831
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3832
--------------------------------------------------------
4211 dpurdie 3833
--  DDL for Index FK_PROJ_ID_RELEASE_TAGS
4040 dpurdie 3834
--------------------------------------------------------
3835
 
5172 dpurdie 3836
  CREATE INDEX "RELEASE_MANAGER"."FK_PROJ_ID_RELEASE_TAGS" ON "RELEASE_MANAGER"."RELEASE_TAGS" ("PROJ_ID") 
3837
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3838
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3839
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3840
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3841
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3842
--------------------------------------------------------
4211 dpurdie 3843
--  DDL for Index INX_RCOMP_PV_ID
4040 dpurdie 3844
--------------------------------------------------------
3845
 
5172 dpurdie 3846
  CREATE INDEX "RELEASE_MANAGER"."INX_RCOMP_PV_ID" ON "RELEASE_MANAGER"."RELEASE_COMPONENTS" ("PV_ID") 
3847
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3848
  STORAGE(INITIAL 724566016 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3849
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3850
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3851
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3852
--------------------------------------------------------
3853
--  DDL for Index MICROSOFT_PK_DTPROPERTIES
3854
--------------------------------------------------------
4040 dpurdie 3855
 
5172 dpurdie 3856
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."MICROSOFT_PK_DTPROPERTIES" ON "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ("ID", "PROPERTY") 
3857
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3858
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3859
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3860
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3861
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5172 dpurdie 3862
--------------------------------------------------------
3863
--  DDL for Index BUILD_ID
3864
--------------------------------------------------------
3865
 
3866
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."BUILD_ID" ON "RELEASE_MANAGER"."BUILD_INSTANCES" ("BUILD_ID") 
3867
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3868
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3869
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3870
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3871
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4040 dpurdie 3872
--------------------------------------------------------
4308 dpurdie 3873
--  DDL for Index INX_UT_PV_TEST_TYPE
3874
--------------------------------------------------------
4040 dpurdie 3875
 
5172 dpurdie 3876
  CREATE INDEX "RELEASE_MANAGER"."INX_UT_PV_TEST_TYPE" ON "RELEASE_MANAGER"."UNIT_TESTS" ("PV_ID", "TEST_TYPES_FK") 
3877
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3878
  STORAGE(INITIAL 7340032 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3879
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3880
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3881
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3882
--------------------------------------------------------
3883
--  DDL for Index PK_WORLDS
3884
--------------------------------------------------------
4040 dpurdie 3885
 
5172 dpurdie 3886
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."PK_WORLDS" ON "RELEASE_MANAGER"."WORLDS" ("WORLD_ID") 
3887
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3888
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3889
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3890
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3891
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5892 dpurdie 3892
--------------------------------------------------------
5384 dpurdie 3893
--  DDL for Index CQ_HISTORY_INDEX1
3894
--------------------------------------------------------
3895
 
3896
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."CQ_HISTORY_INDEX1" ON "RELEASE_MANAGER"."CQ_HISTORY" ("DBID") 
3897
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3898
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3899
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3900
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3901
  TABLESPACE "RELEASE_MANAGER_INDX" ;
5384 dpurdie 3902
--------------------------------------------------------
4308 dpurdie 3903
--  DDL for Index UNQ_AN_PART2
3904
--------------------------------------------------------
4040 dpurdie 3905
 
5172 dpurdie 3906
  CREATE UNIQUE INDEX "RELEASE_MANAGER"."UNQ_AN_PART2" ON "RELEASE_MANAGER"."ADDITIONAL_NOTES" ("PV_ID", "NOTE_TITLE") 
3907
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3908
  STORAGE(INITIAL 6291456 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3909
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3910
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3911
  TABLESPACE "RELEASE_MANAGER_INDX" ;
4308 dpurdie 3912
--------------------------------------------------------
4211 dpurdie 3913
--  Constraints for Table RELEASE_TAGS
4040 dpurdie 3914
--------------------------------------------------------
3915
 
5172 dpurdie 3916
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" ADD CONSTRAINT "PK_RELEASE_TAGS" PRIMARY KEY ("RTAG_ID")
3917
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3918
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3919
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3920
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3921
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 3922
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("PROJ_ID" NOT NULL ENABLE);
3923
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("PARENT_RTAG_ID" NOT NULL ENABLE);
3924
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("REBUILD_STAMP" NOT NULL ENABLE);
3925
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("REBUILD_ENV" NOT NULL ENABLE);
3926
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("OFFICIAL" NOT NULL ENABLE);
3927
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("RTAG_NAME" NOT NULL ENABLE);
3928
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_TAGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
3929
--------------------------------------------------------
6031 dpurdie 3930
--  Constraints for Table PACKAGE_DOCUMENTS
5172 dpurdie 3931
--------------------------------------------------------
3932
 
6031 dpurdie 3933
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("DOC_NUM" NOT NULL ENABLE);
3934
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("DOC_ID" NOT NULL ENABLE);
3935
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3936
--------------------------------------------------------
6031 dpurdie 3937
--  Constraints for Table AUTOBUILD_FAILURE
5172 dpurdie 3938
--------------------------------------------------------
3939
 
6031 dpurdie 3940
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD PRIMARY KEY ("GROUP_EMAIL_ID")
5172 dpurdie 3941
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3942
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3943
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3944
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3945
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
3946
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" MODIFY ("GROUP_EMAIL_ID" NOT NULL ENABLE);
5172 dpurdie 3947
--------------------------------------------------------
6031 dpurdie 3948
--  Constraints for Table RELEASE_METRICS
5384 dpurdie 3949
--------------------------------------------------------
3950
 
6031 dpurdie 3951
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" ADD CONSTRAINT "UNQ_RELEASE_METRICS" UNIQUE ("RTAG_ID")
5384 dpurdie 3952
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3953
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3954
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3955
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3956
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
3957
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 3958
--------------------------------------------------------
6031 dpurdie 3959
--  Constraints for Table RELEASE_COMPONENTS
4308 dpurdie 3960
--------------------------------------------------------
4040 dpurdie 3961
 
6031 dpurdie 3962
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 3963
--------------------------------------------------------
6031 dpurdie 3964
--  Constraints for Table SDK_CONTENT
4040 dpurdie 3965
--------------------------------------------------------
3966
 
6031 dpurdie 3967
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("SDKPKG_STATE" NOT NULL ENABLE);
3968
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("PV_ID" NOT NULL ENABLE);
3969
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" MODIFY ("SDKTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3970
--------------------------------------------------------
6031 dpurdie 3971
--  Constraints for Table ACTION_TYPE
4040 dpurdie 3972
--------------------------------------------------------
3973
 
6031 dpurdie 3974
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" ADD CONSTRAINT "UNQ_ACTTYPE_ID" PRIMARY KEY ("ACTTYPE_ID")
3975
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3976
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
3977
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3978
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3979
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
3980
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" MODIFY ("NAME" NOT NULL ENABLE);
3981
  ALTER TABLE "RELEASE_MANAGER"."ACTION_TYPE" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
4308 dpurdie 3982
--------------------------------------------------------
6031 dpurdie 3983
--  Constraints for Table PLANNED
4308 dpurdie 3984
--------------------------------------------------------
4211 dpurdie 3985
 
6031 dpurdie 3986
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "UNIQUE_PV_RTAG" UNIQUE ("PV_ID", "RTAG_ID")
5172 dpurdie 3987
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
3988
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 3989
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
3990
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
3991
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
3992
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("VIEW_ID" NOT NULL ENABLE);
3993
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("PV_ID" NOT NULL ENABLE);
3994
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 3995
--------------------------------------------------------
6031 dpurdie 3996
--  Constraints for Table SDK_TAGS
4040 dpurdie 3997
--------------------------------------------------------
3998
 
6031 dpurdie 3999
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_PK" PRIMARY KEY ("SDKTAG_ID")
4000
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4001
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4002
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4003
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4004
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4005
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDK_STATE" NOT NULL ENABLE);
4006
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4007
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDK_ID" NOT NULL ENABLE);
4008
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDKTAG_NAME" NOT NULL ENABLE);
4009
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" MODIFY ("SDKTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4010
--------------------------------------------------------
6031 dpurdie 4011
--  Constraints for Table RELEASE_MODIFIED
4040 dpurdie 4012
--------------------------------------------------------
4013
 
6031 dpurdie 4014
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" ADD CONSTRAINT "RELEASE_MODIFIED_PK" PRIMARY KEY ("RTAG_ID")
4015
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4016
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4017
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4018
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4019
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4020
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4021
--------------------------------------------------------
6031 dpurdie 4022
--  Constraints for Table PACKAGE_METRICS
4040 dpurdie 4023
--------------------------------------------------------
4024
 
6031 dpurdie 4025
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" ADD CONSTRAINT "UNQ_PACKAGE_METRICS" UNIQUE ("PV_ID")
4026
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4027
  STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4028
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4029
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4030
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4031
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 4032
--------------------------------------------------------
6031 dpurdie 4033
--  Constraints for Table PACKAGE_BUILD_ENV
4040 dpurdie 4034
--------------------------------------------------------
4035
 
6031 dpurdie 4036
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" MODIFY ("BE_ID" NOT NULL ENABLE);
4037
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 4038
--------------------------------------------------------
6031 dpurdie 4039
--  Constraints for Table PROCESSES
4040 dpurdie 4040
--------------------------------------------------------
4041
 
6031 dpurdie 4042
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" ADD CONSTRAINT "PROCESSES_PK" PRIMARY KEY ("PROC_ID")
5172 dpurdie 4043
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4044
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4045
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4046
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4047
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4048
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" MODIFY ("PROC_NAME" NOT NULL ENABLE);
4049
  ALTER TABLE "RELEASE_MANAGER"."PROCESSES" MODIFY ("PROC_ID" NOT NULL ENABLE);
4308 dpurdie 4050
--------------------------------------------------------
6031 dpurdie 4051
--  Constraints for Table BUILD_SERVICE_CONFIG
4308 dpurdie 4052
--------------------------------------------------------
4040 dpurdie 4053
 
6031 dpurdie 4054
  ALTER TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" MODIFY ("CONFIG" NOT NULL ENABLE);
4055
  ALTER TABLE "RELEASE_MANAGER"."BUILD_SERVICE_CONFIG" MODIFY ("SERVICE" NOT NULL ENABLE);
4308 dpurdie 4056
--------------------------------------------------------
6031 dpurdie 4057
--  Constraints for Table PROJECT_ACTION_LOG
4308 dpurdie 4058
--------------------------------------------------------
4040 dpurdie 4059
 
6031 dpurdie 4060
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
4061
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4062
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("ACTION_DATETIME" NOT NULL ENABLE);
4063
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4308 dpurdie 4064
--------------------------------------------------------
6031 dpurdie 4065
--  Constraints for Table ARCHIVE_ACTION_LOG
4308 dpurdie 4066
--------------------------------------------------------
4040 dpurdie 4067
 
6031 dpurdie 4068
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("DESCRIPTION" NOT NULL ENABLE);
4069
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4070
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("DATE_TIME_STAMP" NOT NULL ENABLE);
4071
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 4072
--------------------------------------------------------
6031 dpurdie 4073
--  Constraints for Table VTREES
4040 dpurdie 4074
--------------------------------------------------------
4075
 
6031 dpurdie 4076
  ALTER TABLE "RELEASE_MANAGER"."VTREES" ADD CONSTRAINT "PK_VTREES" PRIMARY KEY ("VTREE_ID")
5172 dpurdie 4077
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4078
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4079
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4080
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4081
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4082
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("HIDE" NOT NULL ENABLE);
4083
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("VTREE_NAME" NOT NULL ENABLE);
4084
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4085
  ALTER TABLE "RELEASE_MANAGER"."VTREES" MODIFY ("VTREE_ID" NOT NULL ENABLE);
4040 dpurdie 4086
--------------------------------------------------------
4308 dpurdie 4087
--  Constraints for Table GBE_MACHTYPE
4088
--------------------------------------------------------
4040 dpurdie 4089
 
5172 dpurdie 4090
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" ADD PRIMARY KEY ("GBE_ID")
4091
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4092
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4093
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4094
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4095
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4096
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("BM_ID" NOT NULL ENABLE);
5172 dpurdie 4097
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("GBE_VALUE" NOT NULL ENABLE);
4098
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" MODIFY ("GBE_ID" NOT NULL ENABLE);
4308 dpurdie 4099
--------------------------------------------------------
6031 dpurdie 4100
--  Constraints for Table PACKAGE_INTEREST
4040 dpurdie 4101
--------------------------------------------------------
4102
 
6031 dpurdie 4103
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("USER_ID" NOT NULL ENABLE);
4104
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4105
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" MODIFY ("PKG_ID" NOT NULL ENABLE);
5172 dpurdie 4106
--------------------------------------------------------
6031 dpurdie 4107
--  Constraints for Table PACKAGES
5172 dpurdie 4108
--------------------------------------------------------
4109
 
6031 dpurdie 4110
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" ADD CONSTRAINT "PK_PACKAGES" PRIMARY KEY ("PKG_ID")
4111
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4112
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4113
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4114
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4115
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4116
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" MODIFY ("PKG_NAME" NOT NULL ENABLE);
4117
  ALTER TABLE "RELEASE_MANAGER"."PACKAGES" MODIFY ("PKG_ID" NOT NULL ENABLE);
4308 dpurdie 4118
--------------------------------------------------------
6031 dpurdie 4119
--  Constraints for Table IGNORE_WARNINGS
4308 dpurdie 4120
--------------------------------------------------------
4040 dpurdie 4121
 
6031 dpurdie 4122
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("DPV_ID" NOT NULL ENABLE);
4123
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("PV_ID" NOT NULL ENABLE);
4124
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4125
--------------------------------------------------------
6031 dpurdie 4126
--  Constraints for Table PRODUCT_COMPONENTS
4308 dpurdie 4127
--------------------------------------------------------
4040 dpurdie 4128
 
6031 dpurdie 4129
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" MODIFY ("OS_ID" NOT NULL ENABLE);
4130
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 4131
--------------------------------------------------------
4211 dpurdie 4132
--  Constraints for Table TEST_TYPES
4040 dpurdie 4133
--------------------------------------------------------
4134
 
5172 dpurdie 4135
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" ADD CONSTRAINT "PK_TEST_TYPES" PRIMARY KEY ("TEST_TYPE_ID")
4136
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4137
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4138
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4139
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4140
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 4141
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" MODIFY ("TEST_TYPE_NAME" NOT NULL ENABLE);
4142
  ALTER TABLE "RELEASE_MANAGER"."TEST_TYPES" MODIFY ("TEST_TYPE_ID" NOT NULL ENABLE);
4143
--------------------------------------------------------
6031 dpurdie 4144
--  Constraints for Table MICROSOFTDTPROPERTIES
5172 dpurdie 4145
--------------------------------------------------------
4146
 
6031 dpurdie 4147
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" ADD CONSTRAINT "MICROSOFT_PK_DTPROPERTIES" PRIMARY KEY ("ID", "PROPERTY")
5172 dpurdie 4148
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4149
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4150
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4151
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4152
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4153
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("VERSION" CONSTRAINT "MICROSOFT_NN_VERSION" NOT NULL ENABLE);
4154
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("PROPERTY" CONSTRAINT "MICROSOFT_NN_PROPERTY" NOT NULL ENABLE);
4155
  ALTER TABLE "RELEASE_MANAGER"."MICROSOFTDTPROPERTIES" MODIFY ("ID" CONSTRAINT "MICROSOFT_NN_ID" NOT NULL ENABLE);
4040 dpurdie 4156
--------------------------------------------------------
6031 dpurdie 4157
--  Constraints for Table PRODUCT_STATES
4040 dpurdie 4158
--------------------------------------------------------
4159
 
6031 dpurdie 4160
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" ADD CONSTRAINT "PRODUCT_STATES_PK" PRIMARY KEY ("STATE_ID")
4161
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4162
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4163
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4164
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4165
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4166
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" MODIFY ("STATE" NOT NULL ENABLE);
4167
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_STATES" MODIFY ("STATE_ID" NOT NULL ENABLE);
4040 dpurdie 4168
--------------------------------------------------------
6031 dpurdie 4169
--  Constraints for Table CODE_REVIEWS
4040 dpurdie 4170
--------------------------------------------------------
4171
 
6031 dpurdie 4172
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEWS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 4173
--------------------------------------------------------
6031 dpurdie 4174
--  Constraints for Table RELEASE_CONTENT
4040 dpurdie 4175
--------------------------------------------------------
4176
 
6031 dpurdie 4177
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("PKG_STATE" NOT NULL ENABLE);
4178
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("INSERTOR_ID" NOT NULL ENABLE);
4179
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("INSERT_STAMP" NOT NULL ENABLE);
4180
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("BASE_VIEW_ID" NOT NULL ENABLE);
4181
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("PV_ID" NOT NULL ENABLE);
4182
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4183
--------------------------------------------------------
6031 dpurdie 4184
--  Constraints for Table WORLDS
4040 dpurdie 4185
--------------------------------------------------------
4186
 
6031 dpurdie 4187
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" ADD CONSTRAINT "PK_WORLDS" PRIMARY KEY ("WORLD_ID")
5172 dpurdie 4188
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4189
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4190
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4191
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4192
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4193
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" MODIFY ("WORLD_NAME" NOT NULL ENABLE);
4194
  ALTER TABLE "RELEASE_MANAGER"."WORLDS" MODIFY ("WORLD_ID" NOT NULL ENABLE);
4040 dpurdie 4195
--------------------------------------------------------
6031 dpurdie 4196
--  Constraints for Table PEGGED_VERSIONS
4040 dpurdie 4197
--------------------------------------------------------
4198
 
6031 dpurdie 4199
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" MODIFY ("PV_ID" NOT NULL ENABLE);
4200
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 4201
--------------------------------------------------------
6031 dpurdie 4202
--  Constraints for Table ABT_ACTION_LOG
4308 dpurdie 4203
--------------------------------------------------------
4040 dpurdie 4204
 
6031 dpurdie 4205
  ALTER TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" MODIFY ("RCON_ID" NOT NULL ENABLE);
4040 dpurdie 4206
--------------------------------------------------------
6031 dpurdie 4207
--  Constraints for Table LICENCING
4040 dpurdie 4208
--------------------------------------------------------
4209
 
6031 dpurdie 4210
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD CONSTRAINT "LICENCING_PK" PRIMARY KEY ("PV_ID", "LICENCE")
4211
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4212
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4213
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4214
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4215
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4216
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" MODIFY ("LICENCE" NOT NULL ENABLE);
4217
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 4218
--------------------------------------------------------
4211 dpurdie 4219
--  Constraints for Table DASH_BOARD
4040 dpurdie 4220
--------------------------------------------------------
4221
 
5172 dpurdie 4222
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("TOTAL_PACKAGES" NOT NULL ENABLE);
4223
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("AUTOMATED_PACKAGES" NOT NULL ENABLE);
4224
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("LAST_BUILD_TIME" NOT NULL ENABLE);
4225
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4226
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4040 dpurdie 4227
--------------------------------------------------------
6031 dpurdie 4228
--  Constraints for Table BUILD_INSTANCES
4040 dpurdie 4229
--------------------------------------------------------
4230
 
6031 dpurdie 4231
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_ID" PRIMARY KEY ("BUILD_ID")
5172 dpurdie 4232
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4233
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4234
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4235
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4236
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4237
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("STATE" NOT NULL ENABLE);
4238
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("TIMESTAMP" NOT NULL ENABLE);
4239
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("PV_ID" NOT NULL ENABLE);
4240
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4241
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" MODIFY ("BUILD_ID" NOT NULL ENABLE);
4040 dpurdie 4242
--------------------------------------------------------
6031 dpurdie 4243
--  Constraints for Table NOTE_MANAGER
4040 dpurdie 4244
--------------------------------------------------------
4245
 
6031 dpurdie 4246
  ALTER TABLE "RELEASE_MANAGER"."NOTE_MANAGER" ADD CONSTRAINT "PKNOTE_MANAGER1" PRIMARY KEY ("NID")
5172 dpurdie 4247
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4248
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4249
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4250
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4251
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4252
  ALTER TABLE "RELEASE_MANAGER"."NOTE_MANAGER" MODIFY ("NID" NOT NULL ENABLE);
4253
--------------------------------------------------------
4254
--  Constraints for Table NOTIFICATION_HISTORY
4040 dpurdie 4255
--------------------------------------------------------
5384 dpurdie 4256
 
6031 dpurdie 4257
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "PK_NOTIFICATION_HISTORY" PRIMARY KEY ("RTAG_ID", "PV_ID", "USER_ID")
5384 dpurdie 4258
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4259
  STORAGE(INITIAL 2097152 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4260
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4261
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4262
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4263
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("DATE_TIME_STAMP" NOT NULL ENABLE);
4264
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("USER_ID" NOT NULL ENABLE);
4265
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("PV_ID" NOT NULL ENABLE);
4266
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4267
--------------------------------------------------------
6031 dpurdie 4268
--  Constraints for Table ACTION_LOG
4269
--------------------------------------------------------
4040 dpurdie 4270
 
6031 dpurdie 4271
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTION_TIMESTAMP" NOT NULL ENABLE);
4272
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTTYPE_ID" NOT NULL ENABLE);
4273
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("PV_ID" NOT NULL ENABLE);
4274
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("ACTION_DATETIME" NOT NULL ENABLE);
4275
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 4276
--------------------------------------------------------
6031 dpurdie 4277
--  Constraints for Table RELEASE_LINKS
4040 dpurdie 4278
--------------------------------------------------------
4279
 
6031 dpurdie 4280
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" MODIFY ("REF_RTAG_ID" NOT NULL ENABLE);
4281
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4282
--------------------------------------------------------
6031 dpurdie 4283
--  Constraints for Table VTREES_WORLD
4040 dpurdie 4284
--------------------------------------------------------
4285
 
6031 dpurdie 4286
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" MODIFY ("VTREE_ID" NOT NULL ENABLE);
4287
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" MODIFY ("WORLD_ID" NOT NULL ENABLE);
4040 dpurdie 4288
--------------------------------------------------------
6031 dpurdie 4289
--  Constraints for Table DAEMON_ACTION_LOG
4040 dpurdie 4290
--------------------------------------------------------
4291
 
6031 dpurdie 4292
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" MODIFY ("RCON_ID" NOT NULL ENABLE);
4293
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" MODIFY ("USER_ID" NOT NULL ENABLE);
4040 dpurdie 4294
--------------------------------------------------------
6031 dpurdie 4295
--  Constraints for Table BUILD_STANDARDS_ADDENDUM
4296
--------------------------------------------------------
4297
 
4298
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ADD CONSTRAINT "BUILD_STANDARDS_ADDENDUM_PK" PRIMARY KEY ("BSA_ID")
4299
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4300
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4301
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4302
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4303
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4304
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BS_ID" NOT NULL ENABLE);
4305
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BSA_NAME" NOT NULL ENABLE);
4306
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" MODIFY ("BSA_ID" NOT NULL ENABLE);
4307
--------------------------------------------------------
4308
--  Constraints for Table BUILD_MACHINES
5892 dpurdie 4309
--------------------------------------------------------
4310
 
6031 dpurdie 4311
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" ADD CONSTRAINT "BUILD_MACHINES_PK" PRIMARY KEY ("BM_ID")
5892 dpurdie 4312
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4313
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4314
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4315
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4316
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4317
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" MODIFY ("BM_NAME" NOT NULL ENABLE);
4318
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINES" MODIFY ("BM_ID" NOT NULL ENABLE);
4040 dpurdie 4319
--------------------------------------------------------
6031 dpurdie 4320
--  Constraints for Table PLATFORMS
4321
--------------------------------------------------------
4040 dpurdie 4322
 
6031 dpurdie 4323
  ALTER TABLE "RELEASE_MANAGER"."PLATFORMS" MODIFY ("NAME" NOT NULL ENABLE);
4324
  ALTER TABLE "RELEASE_MANAGER"."PLATFORMS" MODIFY ("CODE" NOT NULL ENABLE);
4040 dpurdie 4325
--------------------------------------------------------
6031 dpurdie 4326
--  Constraints for Table WORK_IN_PROGRESS
4040 dpurdie 4327
--------------------------------------------------------
4328
 
6031 dpurdie 4329
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4330
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("PV_ID" NOT NULL ENABLE);
4331
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4040 dpurdie 4332
--------------------------------------------------------
6031 dpurdie 4333
--  Constraints for Table CQ_ISSUES
4040 dpurdie 4334
--------------------------------------------------------
4335
 
6031 dpurdie 4336
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
4337
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_STATE" NOT NULL ENABLE);
4338
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_ID" NOT NULL ENABLE);
4339
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("ISS_DB" NOT NULL ENABLE);
4340
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 4341
--------------------------------------------------------
6031 dpurdie 4342
--  Constraints for Table BUILD_ORDER
4343
--------------------------------------------------------
5384 dpurdie 4344
 
6031 dpurdie 4345
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("PV_ID" NOT NULL ENABLE);
4346
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("STEP_NUM" NOT NULL ENABLE);
4347
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4348
--------------------------------------------------------
4349
--  Constraints for Table VALIDATION_RULES_DELETE_ME
4350
--------------------------------------------------------
4351
 
4352
  ALTER TABLE "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" MODIFY ("IS_REQUIRED" NOT NULL ENABLE);
4353
  ALTER TABLE "RELEASE_MANAGER"."VALIDATION_RULES_DELETE_ME" MODIFY ("FIELD_NAME" NOT NULL ENABLE);
4354
--------------------------------------------------------
4211 dpurdie 4355
--  Constraints for Table CODE_REVIEW_URL
4040 dpurdie 4356
--------------------------------------------------------
4357
 
5172 dpurdie 4358
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PK" PRIMARY KEY ("CR_ID")
4359
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4360
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4361
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4362
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4363
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 4364
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("DATE_OF_REVIEW" NOT NULL ENABLE);
4365
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("URL" NOT NULL ENABLE);
4366
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4367
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("PV_ID" NOT NULL ENABLE);
4368
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" MODIFY ("CR_ID" NOT NULL ENABLE);
5384 dpurdie 4369
--------------------------------------------------------
6031 dpurdie 4370
--  Constraints for Table RELEASE_CONFIG
5384 dpurdie 4371
--------------------------------------------------------
4372
 
6031 dpurdie 4373
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD PRIMARY KEY ("RCON_ID")
5384 dpurdie 4374
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4375
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4376
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4377
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4378
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4379
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4380
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" MODIFY ("RCON_ID" NOT NULL ENABLE);
4381
--------------------------------------------------------
4382
--  Constraints for Table PACKAGE_PROCESSES
4383
--------------------------------------------------------
4040 dpurdie 4384
 
6031 dpurdie 4385
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" MODIFY ("PROC_ID" NOT NULL ENABLE);
4386
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" MODIFY ("PV_ID" NOT NULL ENABLE);
4387
--------------------------------------------------------
4388
--  Constraints for Table PACKAGE_BUILD_INFO
4389
--------------------------------------------------------
4040 dpurdie 4390
 
6031 dpurdie 4391
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" MODIFY ("BM_ID" NOT NULL ENABLE);
4392
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" MODIFY ("PV_ID" NOT NULL ENABLE);
4393
--------------------------------------------------------
4394
--  Constraints for Table VIEW_SETTINGS
4395
--------------------------------------------------------
4396
 
4397
  ALTER TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4398
  ALTER TABLE "RELEASE_MANAGER"."VIEW_SETTINGS" MODIFY ("USER_ID" NOT NULL ENABLE);
4399
--------------------------------------------------------
4400
--  Constraints for Table DEPRECATED_PACKAGES
4401
--------------------------------------------------------
4402
 
4403
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("COMMENTS" NOT NULL ENABLE);
4404
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("PKG_ID" NOT NULL ENABLE);
4405
  ALTER TABLE "RELEASE_MANAGER"."DEPRECATED_PACKAGES" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4406
--------------------------------------------------------
4407
--  Constraints for Table BUILD_PLAN
4408
--------------------------------------------------------
4409
 
4410
  ALTER TABLE "RELEASE_MANAGER"."BUILD_PLAN" ADD CONSTRAINT "BUILD_PLAN_PK" PRIMARY KEY ("RTAG_ID", "BUILD_ORDER", "PV_ID")
5172 dpurdie 4411
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4412
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4413
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4414
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4415
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 4416
--------------------------------------------------------
6031 dpurdie 4417
--  Constraints for Table MESSAGE_BOARD
5172 dpurdie 4418
--------------------------------------------------------
4419
 
6031 dpurdie 4420
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" ADD CONSTRAINT "PK_MESSAGE_BOARD" PRIMARY KEY ("MSG_ID")
5892 dpurdie 4421
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4422
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4423
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4424
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4425
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4426
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("SUBMITION_DATE" NOT NULL ENABLE);
4427
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("MSG_DETAILS" NOT NULL ENABLE);
4428
  ALTER TABLE "RELEASE_MANAGER"."MESSAGE_BOARD" MODIFY ("MSG_ID" NOT NULL ENABLE);
4040 dpurdie 4429
--------------------------------------------------------
6031 dpurdie 4430
--  Constraints for Table VCS_TYPE
4040 dpurdie 4431
--------------------------------------------------------
4432
 
6031 dpurdie 4433
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" ADD CONSTRAINT "VCS_TYPE_PK" PRIMARY KEY ("VCS_TYPE_ID")
5172 dpurdie 4434
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4435
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4436
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4437
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4438
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4439
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("TAG" NOT NULL ENABLE);
4440
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("NAME" NOT NULL ENABLE);
4441
  ALTER TABLE "RELEASE_MANAGER"."VCS_TYPE" MODIFY ("VCS_TYPE_ID" NOT NULL ENABLE);
4308 dpurdie 4442
--------------------------------------------------------
6031 dpurdie 4443
--  Constraints for Table RUN_LEVEL
5172 dpurdie 4444
--------------------------------------------------------
4445
 
6031 dpurdie 4446
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD CONSTRAINT "PK_RUN_LEVEL" PRIMARY KEY ("RCON_ID")
5172 dpurdie 4447
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4448
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4449
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4450
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4451
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4452
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" MODIFY ("RCON_ID" NOT NULL ENABLE);
5384 dpurdie 4453
--------------------------------------------------------
6031 dpurdie 4454
--  Constraints for Table DO_NOT_RIPPLE
4455
--------------------------------------------------------
5384 dpurdie 4456
 
6031 dpurdie 4457
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" MODIFY ("PV_ID" NOT NULL ENABLE);
4458
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4459
--------------------------------------------------------
4460
--  Constraints for Table CQ_SOFTWARE_ISSUE
4461
--------------------------------------------------------
4462
 
4463
  ALTER TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" ADD CONSTRAINT "CQ_SOFTWARE_ISSUE_PK" PRIMARY KEY ("DBID")
5384 dpurdie 4464
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4465
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4466
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4467
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4468
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4469
  ALTER TABLE "RELEASE_MANAGER"."CQ_SOFTWARE_ISSUE" MODIFY ("DBID" NOT NULL ENABLE);
5384 dpurdie 4470
--------------------------------------------------------
6031 dpurdie 4471
--  Constraints for Table LICENCES
4040 dpurdie 4472
--------------------------------------------------------
4473
 
6031 dpurdie 4474
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" ADD CONSTRAINT "PK_LICENCES" PRIMARY KEY ("LICENCE")
5172 dpurdie 4475
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4476
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4477
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4478
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4479
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4480
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" MODIFY ("NAME" NOT NULL ENABLE);
4481
  ALTER TABLE "RELEASE_MANAGER"."LICENCES" MODIFY ("LICENCE" NOT NULL ENABLE);
4482
--------------------------------------------------------
4483
--  Constraints for Table UNIT_TESTS
4484
--------------------------------------------------------
4040 dpurdie 4485
 
6031 dpurdie 4486
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("TEST_TYPES_FK" NOT NULL ENABLE);
4487
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("PV_ID" NOT NULL ENABLE);
4488
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" MODIFY ("TEST_ID" NOT NULL ENABLE);
4489
--------------------------------------------------------
4490
--  Constraints for Table CQ_STATEDEF
4491
--------------------------------------------------------
4040 dpurdie 4492
 
6031 dpurdie 4493
  ALTER TABLE "RELEASE_MANAGER"."CQ_STATEDEF" ADD CONSTRAINT "CQ_STATEDEF_PK" PRIMARY KEY ("ID")
5172 dpurdie 4494
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4495
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4496
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4497
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4498
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4499
  ALTER TABLE "RELEASE_MANAGER"."CQ_STATEDEF" MODIFY ("ID" NOT NULL ENABLE);
4500
--------------------------------------------------------
4501
--  Constraints for Table TEMP_ENV_STATES
4502
--------------------------------------------------------
4040 dpurdie 4503
 
6031 dpurdie 4504
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("TES_STATE" NOT NULL ENABLE);
4505
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("PKG_ID" NOT NULL ENABLE);
4506
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("PV_ID" NOT NULL ENABLE);
4507
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("LEVEL_NUM" NOT NULL ENABLE);
4508
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_STATES" MODIFY ("SESSION_NUM" NOT NULL ENABLE);
4509
--------------------------------------------------------
4510
--  Constraints for Table CQ_USERS
4511
--------------------------------------------------------
4512
 
4513
  ALTER TABLE "RELEASE_MANAGER"."CQ_USERS" ADD CONSTRAINT "CQ_USERS_PK" PRIMARY KEY ("DBID")
5384 dpurdie 4514
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4515
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4516
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4517
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4518
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4519
  ALTER TABLE "RELEASE_MANAGER"."CQ_USERS" MODIFY ("DBID" NOT NULL ENABLE);
4308 dpurdie 4520
--------------------------------------------------------
6031 dpurdie 4521
--  Constraints for Table TEMP_ENV_DEPS
4308 dpurdie 4522
--------------------------------------------------------
4040 dpurdie 4523
 
6031 dpurdie 4524
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" ADD CONSTRAINT "TEMP_ENV_DEPS_PK" PRIMARY KEY ("PV_ID", "SESSION_NUM", "DPV_ID")
5172 dpurdie 4525
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4526
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4527
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4528
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4529
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4530
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("DPKG_ID" NOT NULL ENABLE);
4531
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("DPV_ID" NOT NULL ENABLE);
4532
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("PKG_ID" NOT NULL ENABLE);
4533
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("PV_ID" NOT NULL ENABLE);
4534
  ALTER TABLE "RELEASE_MANAGER"."TEMP_ENV_DEPS" MODIFY ("SESSION_NUM" NOT NULL ENABLE);
5892 dpurdie 4535
--------------------------------------------------------
6031 dpurdie 4536
--  Constraints for Table RUN_LEVEL_SCHEDULE
4537
--------------------------------------------------------
5892 dpurdie 4538
 
6031 dpurdie 4539
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" ADD PRIMARY KEY ("SCHEDULED_ID")
5892 dpurdie 4540
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4541
  STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4542
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4543
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4544
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4545
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL_SCHEDULE" MODIFY ("SCHEDULED_ID" NOT NULL ENABLE);
5892 dpurdie 4546
--------------------------------------------------------
6031 dpurdie 4547
--  Constraints for Table SDK_NAMES
4548
--------------------------------------------------------
4040 dpurdie 4549
 
6031 dpurdie 4550
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_PK" PRIMARY KEY ("SDK_ID")
5172 dpurdie 4551
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4552
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4553
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4554
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4555
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4556
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_UK1" UNIQUE ("SDK_NAME")
4557
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4558
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4559
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4560
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4561
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4562
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4563
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4564
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("SDK_NAME" NOT NULL ENABLE);
4565
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" MODIFY ("SDK_ID" NOT NULL ENABLE);
4308 dpurdie 4566
--------------------------------------------------------
6031 dpurdie 4567
--  Constraints for Table PROJECT_EXTENTIONS
4568
--------------------------------------------------------
4040 dpurdie 4569
 
6031 dpurdie 4570
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_EXTENTIONS" MODIFY ("EXT_NAME" NOT NULL ENABLE);
4571
--------------------------------------------------------
4572
--  Constraints for Table MEMBERS_GROUP
4573
--------------------------------------------------------
4574
 
5172 dpurdie 4575
  ALTER TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" MODIFY ("GROUP_EMAIL_ID" NOT NULL ENABLE);
6031 dpurdie 4576
--------------------------------------------------------
4577
--  Constraints for Table TEST_RUN
4578
--------------------------------------------------------
4040 dpurdie 4579
 
6031 dpurdie 4580
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" ADD CONSTRAINT "PK_TEST_RUN" PRIMARY KEY ("TESTRUN_ID")
5172 dpurdie 4581
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
6031 dpurdie 4582
  STORAGE(INITIAL 109051904 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4583
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4584
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4585
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4586
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TEST_OUTCOME" NOT NULL ENABLE);
4587
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TEST_NAME" NOT NULL ENABLE);
4588
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TYPE" NOT NULL ENABLE);
4589
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("PLATFORM" NOT NULL ENABLE);
4590
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("BUILD_ID" NOT NULL ENABLE);
4591
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" MODIFY ("TESTRUN_ID" NOT NULL ENABLE);
4592
--------------------------------------------------------
4593
--  Constraints for Table BUILD_STANDARDS
4594
--------------------------------------------------------
4040 dpurdie 4595
 
6031 dpurdie 4596
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" ADD CONSTRAINT "BUILD_STANDARDS_PK" PRIMARY KEY ("BS_ID")
5172 dpurdie 4597
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4598
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4599
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4600
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4601
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4602
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" MODIFY ("BS_NAME" NOT NULL ENABLE);
4603
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS" MODIFY ("BS_ID" NOT NULL ENABLE);
4604
--------------------------------------------------------
4605
--  Constraints for Table RUNTIME_DEPENDENCIES
4606
--------------------------------------------------------
4040 dpurdie 4607
 
6031 dpurdie 4608
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("MOD_USER" NOT NULL ENABLE);
4609
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
4610
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" MODIFY ("PV_ID" NOT NULL ENABLE);
4611
--------------------------------------------------------
4308 dpurdie 4612
--  Constraints for Table DAEMON_INSTRUCTIONS
4613
--------------------------------------------------------
4040 dpurdie 4614
 
5172 dpurdie 4615
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_UK1" UNIQUE ("OP_CODE", "RTAG_ID", "PV_ID")
4616
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4617
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4618
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4619
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4620
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 4621
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_PK" PRIMARY KEY ("DAEMON_INSTRUCTIONS_ID")
4622
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4623
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4624
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4625
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4626
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 4627
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" MODIFY ("OP_CODE" NOT NULL ENABLE);
4628
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" MODIFY ("DAEMON_INSTRUCTIONS_ID" NOT NULL ENABLE);
4040 dpurdie 4629
--------------------------------------------------------
6031 dpurdie 4630
--  Constraints for Table PACKAGE_VERSIONS
4040 dpurdie 4631
--------------------------------------------------------
4632
 
6031 dpurdie 4633
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PK_PACKAGE_VERSIONS" PRIMARY KEY ("PV_ID")
4634
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4635
  STORAGE(INITIAL 5242880 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4636
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4637
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4638
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4639
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("BUILD_TYPE" NOT NULL ENABLE);
4640
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("LAST_PV_ID" NOT NULL ENABLE);
4641
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("OWNER_ID" NOT NULL ENABLE);
4642
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("CREATOR_ID" NOT NULL ENABLE);
4643
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("MODIFIER_ID" NOT NULL ENABLE);
4644
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("DLOCKED" NOT NULL ENABLE);
4645
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PKG_VERSION" NOT NULL ENABLE);
4646
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PKG_ID" NOT NULL ENABLE);
4647
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" MODIFY ("PV_ID" NOT NULL ENABLE);
4040 dpurdie 4648
--------------------------------------------------------
4308 dpurdie 4649
--  Constraints for Table BUILD_ENV_DOCUMENTS
4650
--------------------------------------------------------
4040 dpurdie 4651
 
5172 dpurdie 4652
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" MODIFY ("DOC_NUM" NOT NULL ENABLE);
4653
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" MODIFY ("BE_ID" NOT NULL ENABLE);
6031 dpurdie 4654
--------------------------------------------------------
4655
--  Constraints for Table LXR_STATE
4656
--------------------------------------------------------
4657
 
4658
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" ADD CONSTRAINT "LXR_STATE_PK" PRIMARY KEY ("RTAG_ID")
4659
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4660
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4661
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4662
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4663
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4664
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4665
--------------------------------------------------------
4666
--  Constraints for Table BUILD_MACHINE_CONFIG
4667
--------------------------------------------------------
4668
 
4669
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ADD CONSTRAINT "PK_BUILD_MACHINE_CONFIG" PRIMARY KEY ("BMCON_ID")
4670
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4671
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4672
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4673
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4674
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4675
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("ACTIVE" NOT NULL ENABLE);
4676
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("GBE_ID" NOT NULL ENABLE);
4677
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("MACHINE_HOSTNAME" NOT NULL ENABLE);
4678
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("DISPLAY_NAME" NOT NULL ENABLE);
4679
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" MODIFY ("BMCON_ID" NOT NULL ENABLE);
4308 dpurdie 4680
--------------------------------------------------------
6031 dpurdie 4681
--  Constraints for Table ADVISORY_RIPPLE
4040 dpurdie 4682
--------------------------------------------------------
4683
 
6031 dpurdie 4684
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" MODIFY ("PV_ID" NOT NULL ENABLE);
4685
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4686
--------------------------------------------------------
4687
--  Constraints for Table PROJECTS
4688
--------------------------------------------------------
4689
 
4690
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" ADD CONSTRAINT "PK_PROJECTS" PRIMARY KEY ("PROJ_ID")
4691
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4692
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4693
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4694
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4695
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4696
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" MODIFY ("PROJ_NAME" NOT NULL ENABLE);
4697
  ALTER TABLE "RELEASE_MANAGER"."PROJECTS" MODIFY ("PROJ_ID" NOT NULL ENABLE);
4698
--------------------------------------------------------
4699
--  Constraints for Table PACKAGE_PATCHES
4700
--------------------------------------------------------
4701
 
4702
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("INSTALL_ORDER" NOT NULL ENABLE);
4703
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("PATCH_ID" NOT NULL ENABLE);
4704
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 4705
--------------------------------------------------------
4706
--  Constraints for Table PACKAGE_DEPENDENCIES
4707
--------------------------------------------------------
4040 dpurdie 4708
 
5172 dpurdie 4709
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("BUILD_TYPE" NOT NULL ENABLE);
4710
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("DPKG_ID" NOT NULL ENABLE);
4711
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("PKG_ID" NOT NULL ENABLE);
4712
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("DPV_ID" NOT NULL ENABLE);
4713
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" MODIFY ("PV_ID" NOT NULL ENABLE);
4308 dpurdie 4714
--------------------------------------------------------
6031 dpurdie 4715
--  Constraints for Table JIRA_ISSUES
4308 dpurdie 4716
--------------------------------------------------------
4040 dpurdie 4717
 
6031 dpurdie 4718
  ALTER TABLE "RELEASE_MANAGER"."JIRA_ISSUES" MODIFY ("PV_ID" NOT NULL ENABLE);
4719
--------------------------------------------------------
4720
--  Constraints for Table ADDITIONAL_NOTES
4721
--------------------------------------------------------
4722
 
4723
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("MOD_USER" NOT NULL ENABLE);
4724
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("MOD_DATE" NOT NULL ENABLE);
4725
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("NOTE_TITLE" NOT NULL ENABLE);
4726
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("PV_ID" NOT NULL ENABLE);
4727
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" MODIFY ("NOTE_ID" NOT NULL ENABLE);
4728
--------------------------------------------------------
4729
--  Constraints for Table ARCHIVE_DATA
4730
--------------------------------------------------------
4731
 
4732
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" MODIFY ("PV_ID" NOT NULL ENABLE);
4733
  ALTER TABLE "RELEASE_MANAGER"."ARCHIVE_DATA" MODIFY ("RTAG_ID" NOT NULL ENABLE);
4308 dpurdie 4734
--------------------------------------------------------
4735
--  Constraints for Table BUILD_ENVIRONMENTS
4736
--------------------------------------------------------
4040 dpurdie 4737
 
5172 dpurdie 4738
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ADD CONSTRAINT "PK_BUILD_ENVIRONMENTS" PRIMARY KEY ("BE_ID")
4739
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4740
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6031 dpurdie 4741
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4742
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4743
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
5172 dpurdie 4744
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" MODIFY ("BE_NAME" NOT NULL ENABLE);
4745
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" MODIFY ("BE_ID" NOT NULL ENABLE);
4308 dpurdie 4746
--------------------------------------------------------
6031 dpurdie 4747
--  Constraints for Table VIEWS
4308 dpurdie 4748
--------------------------------------------------------
4040 dpurdie 4749
 
6031 dpurdie 4750
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" ADD CONSTRAINT "PK_VIEWS" PRIMARY KEY ("VIEW_ID")
4751
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
4752
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
4753
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
4754
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
4755
  TABLESPACE "RELEASE_MANAGER_INDX"  ENABLE;
4756
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("PUBLIC_READ" NOT NULL ENABLE);
4757
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("BASE_VIEW" NOT NULL ENABLE);
4758
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("OWNER_ID" NOT NULL ENABLE);
4759
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("VIEW_NAME" NOT NULL ENABLE);
4760
  ALTER TABLE "RELEASE_MANAGER"."VIEWS" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4761
--------------------------------------------------------
4762
--  Constraints for Table VIEW_DEF
4763
--------------------------------------------------------
4764
 
4765
  ALTER TABLE "RELEASE_MANAGER"."VIEW_DEF" MODIFY ("PKG_ID" NOT NULL ENABLE);
4766
  ALTER TABLE "RELEASE_MANAGER"."VIEW_DEF" MODIFY ("VIEW_ID" NOT NULL ENABLE);
4040 dpurdie 4767
--------------------------------------------------------
4768
--  Ref Constraints for Table ABT_ACTION_LOG
4769
--------------------------------------------------------
4770
 
5172 dpurdie 4771
  ALTER TABLE "RELEASE_MANAGER"."ABT_ACTION_LOG" ADD FOREIGN KEY ("RCON_ID")
4772
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
4040 dpurdie 4773
--------------------------------------------------------
4774
--  Ref Constraints for Table ACTION_LOG
4775
--------------------------------------------------------
4776
 
6031 dpurdie 4777
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" ADD CONSTRAINT "ACTION_LOG_FK1" FOREIGN KEY ("PV_ID")
4778
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
5172 dpurdie 4779
  ALTER TABLE "RELEASE_MANAGER"."ACTION_LOG" ADD CONSTRAINT "REFACTION_TYPE48" FOREIGN KEY ("ACTTYPE_ID")
4780
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
4040 dpurdie 4781
--------------------------------------------------------
4782
--  Ref Constraints for Table ADDITIONAL_NOTES
4783
--------------------------------------------------------
4784
 
5172 dpurdie 4785
  ALTER TABLE "RELEASE_MANAGER"."ADDITIONAL_NOTES" ADD CONSTRAINT "FK_ADDITION_REF_PV_ID" FOREIGN KEY ("PV_ID")
4786
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4787
--------------------------------------------------------
4788
--  Ref Constraints for Table ADVISORY_RIPPLE
4789
--------------------------------------------------------
4790
 
5172 dpurdie 4791
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" ADD FOREIGN KEY ("RTAG_ID")
4792
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4793
  ALTER TABLE "RELEASE_MANAGER"."ADVISORY_RIPPLE" ADD FOREIGN KEY ("PV_ID")
4794
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4795
--------------------------------------------------------
4796
--  Ref Constraints for Table AUTOBUILD_FAILURE
4797
--------------------------------------------------------
4798
 
5172 dpurdie 4799
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD FOREIGN KEY ("PROJ_ID")
4800
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4801
  ALTER TABLE "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ADD FOREIGN KEY ("VIEW_ID")
4802
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
4040 dpurdie 4803
--------------------------------------------------------
4804
--  Ref Constraints for Table BUILD_ENV_DOCUMENTS
4805
--------------------------------------------------------
4806
 
5172 dpurdie 4807
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ENV_DOCUMENTS" ADD CONSTRAINT "FK_BUILD_E_DOCS_REF_BUILD_ENV" FOREIGN KEY ("BE_ID")
4808
	  REFERENCES "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") ENABLE;
4809
--------------------------------------------------------
4810
--  Ref Constraints for Table BUILD_INSTANCES
4811
--------------------------------------------------------
4812
 
4813
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_INSTANCES_FK1" FOREIGN KEY ("RTAG_ID")
4814
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
4815
  ALTER TABLE "RELEASE_MANAGER"."BUILD_INSTANCES" ADD CONSTRAINT "BUILD_INSTANCES_FK2" FOREIGN KEY ("PV_ID")
4816
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 4817
--------------------------------------------------------
4818
--  Ref Constraints for Table BUILD_MACHINE_CONFIG
4819
--------------------------------------------------------
4820
 
5172 dpurdie 4821
  ALTER TABLE "RELEASE_MANAGER"."BUILD_MACHINE_CONFIG" ADD CONSTRAINT "FK_BM_GBE_ID" FOREIGN KEY ("GBE_ID")
4822
	  REFERENCES "RELEASE_MANAGER"."GBE_MACHTYPE" ("GBE_ID") ENABLE;
4040 dpurdie 4823
--------------------------------------------------------
4824
--  Ref Constraints for Table BUILD_ORDER
4825
--------------------------------------------------------
4826
 
5172 dpurdie 4827
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" ADD CONSTRAINT "FK_BO_PV_ID" FOREIGN KEY ("PV_ID")
6031 dpurdie 4828
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5172 dpurdie 4829
  ALTER TABLE "RELEASE_MANAGER"."BUILD_ORDER" ADD CONSTRAINT "FK_BO_RTAG_ID" FOREIGN KEY ("RTAG_ID")
4830
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5892 dpurdie 4831
--------------------------------------------------------
4832
--  Ref Constraints for Table BUILD_PLAN
4833
--------------------------------------------------------
4834
 
4835
  ALTER TABLE "RELEASE_MANAGER"."BUILD_PLAN" ADD CONSTRAINT "BUILD_PLAN_FK1" FOREIGN KEY ("PV_ID")
4836
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
4837
  ALTER TABLE "RELEASE_MANAGER"."BUILD_PLAN" ADD CONSTRAINT "BUILD_PLAN_FK2" FOREIGN KEY ("RTAG_ID")
4838
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 4839
--------------------------------------------------------
4840
--  Ref Constraints for Table BUILD_STANDARDS_ADDENDUM
4841
--------------------------------------------------------
4842
 
5172 dpurdie 4843
  ALTER TABLE "RELEASE_MANAGER"."BUILD_STANDARDS_ADDENDUM" ADD CONSTRAINT "BUILD_STANDARDS_ADDENDUM_R01" FOREIGN KEY ("BS_ID")
4844
	  REFERENCES "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") ENABLE;
4040 dpurdie 4845
--------------------------------------------------------
4846
--  Ref Constraints for Table CODE_REVIEWS
4847
--------------------------------------------------------
4848
 
5172 dpurdie 4849
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEWS" ADD CONSTRAINT "FK_CODE_REV_REF_PV_ID" FOREIGN KEY ("PV_ID")
4850
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4851
--------------------------------------------------------
4852
--  Ref Constraints for Table CODE_REVIEW_URL
4853
--------------------------------------------------------
4854
 
5172 dpurdie 4855
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PACKAGE_V_FK1" FOREIGN KEY ("PV_ID")
4856
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4857
  ALTER TABLE "RELEASE_MANAGER"."CODE_REVIEW_URL" ADD CONSTRAINT "CODE_REVIEW_URL_PROJECT_V_FK1" FOREIGN KEY ("PROJ_ID")
4858
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4040 dpurdie 4859
--------------------------------------------------------
4860
--  Ref Constraints for Table CQ_ISSUES
4861
--------------------------------------------------------
4862
 
5172 dpurdie 4863
  ALTER TABLE "RELEASE_MANAGER"."CQ_ISSUES" ADD CONSTRAINT "FK_CQ_PV_ID" FOREIGN KEY ("PV_ID")
4864
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4865
--------------------------------------------------------
4866
--  Ref Constraints for Table DAEMON_ACTION_LOG
4867
--------------------------------------------------------
4868
 
5172 dpurdie 4869
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" ADD FOREIGN KEY ("RCON_ID")
4870
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
4871
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_ACTION_LOG" ADD FOREIGN KEY ("ACTTYPE_ID")
4872
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
4040 dpurdie 4873
--------------------------------------------------------
4874
--  Ref Constraints for Table DAEMON_INSTRUCTIONS
4875
--------------------------------------------------------
4876
 
5172 dpurdie 4877
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_PV_ID_FK" FOREIGN KEY ("PV_ID")
4878
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4879
  ALTER TABLE "RELEASE_MANAGER"."DAEMON_INSTRUCTIONS" ADD CONSTRAINT "DAEMON_INSTRUCTIONS_RTAG_ID_FK" FOREIGN KEY ("RTAG_ID")
4880
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4881
--------------------------------------------------------
4882
--  Ref Constraints for Table DASH_BOARD
4883
--------------------------------------------------------
4884
 
5172 dpurdie 4885
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" ADD FOREIGN KEY ("PROJ_ID")
4886
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4887
  ALTER TABLE "RELEASE_MANAGER"."DASH_BOARD" ADD FOREIGN KEY ("RTAG_ID")
4888
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4889
--------------------------------------------------------
4890
--  Ref Constraints for Table DO_NOT_RIPPLE
4891
--------------------------------------------------------
4892
 
5172 dpurdie 4893
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" ADD FOREIGN KEY ("PV_ID")
4894
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4895
  ALTER TABLE "RELEASE_MANAGER"."DO_NOT_RIPPLE" ADD FOREIGN KEY ("RTAG_ID")
4896
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4897
--------------------------------------------------------
4898
--  Ref Constraints for Table GBE_MACHTYPE
4899
--------------------------------------------------------
4900
 
5172 dpurdie 4901
  ALTER TABLE "RELEASE_MANAGER"."GBE_MACHTYPE" ADD CONSTRAINT "GBE_MACHTYPE_BUILD_MACHIN_FK1" FOREIGN KEY ("BM_ID")
4902
	  REFERENCES "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") ENABLE;
4040 dpurdie 4903
--------------------------------------------------------
4904
--  Ref Constraints for Table IGNORE_WARNINGS
4905
--------------------------------------------------------
4906
 
5172 dpurdie 4907
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_DPV_ID" FOREIGN KEY ("DPV_ID")
4908
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4909
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_PV_ID" FOREIGN KEY ("PV_ID")
4910
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4911
  ALTER TABLE "RELEASE_MANAGER"."IGNORE_WARNINGS" ADD CONSTRAINT "FK_IGW_RTAG_ID" FOREIGN KEY ("RTAG_ID")
4912
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 4913
--------------------------------------------------------
4914
--  Ref Constraints for Table JIRA_ISSUES
4915
--------------------------------------------------------
4916
 
5172 dpurdie 4917
  ALTER TABLE "RELEASE_MANAGER"."JIRA_ISSUES" ADD CONSTRAINT "FK_JIRA_PV_ID" FOREIGN KEY ("PV_ID")
4918
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4919
--------------------------------------------------------
4920
--  Ref Constraints for Table LICENCING
4921
--------------------------------------------------------
4922
 
5172 dpurdie 4923
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD FOREIGN KEY ("PV_ID")
4924
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4925
  ALTER TABLE "RELEASE_MANAGER"."LICENCING" ADD FOREIGN KEY ("LICENCE")
4926
	  REFERENCES "RELEASE_MANAGER"."LICENCES" ("LICENCE") ENABLE;
4040 dpurdie 4927
--------------------------------------------------------
5384 dpurdie 4928
--  Ref Constraints for Table LXR_STATE
4929
--------------------------------------------------------
4930
 
4931
  ALTER TABLE "RELEASE_MANAGER"."LXR_STATE" ADD CONSTRAINT "LXR_STATE_FK1" FOREIGN KEY ("RTAG_ID")
4932
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
4933
--------------------------------------------------------
4040 dpurdie 4934
--  Ref Constraints for Table MEMBERS_GROUP
4935
--------------------------------------------------------
4936
 
5172 dpurdie 4937
  ALTER TABLE "RELEASE_MANAGER"."MEMBERS_GROUP" ADD FOREIGN KEY ("GROUP_EMAIL_ID")
4938
	  REFERENCES "RELEASE_MANAGER"."AUTOBUILD_FAILURE" ("GROUP_EMAIL_ID") ENABLE;
4040 dpurdie 4939
--------------------------------------------------------
4940
--  Ref Constraints for Table NOTIFICATION_HISTORY
4941
--------------------------------------------------------
4942
 
5172 dpurdie 4943
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "FK_NH_RTAG_ID" FOREIGN KEY ("RTAG_ID")
4944
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4945
  ALTER TABLE "RELEASE_MANAGER"."NOTIFICATION_HISTORY" ADD CONSTRAINT "FK_NK_PV_ID" FOREIGN KEY ("PV_ID")
4946
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") DISABLE;
4040 dpurdie 4947
--------------------------------------------------------
4948
--  Ref Constraints for Table PACKAGE_BUILD_ENV
4949
--------------------------------------------------------
4950
 
5172 dpurdie 4951
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ADD CONSTRAINT "FK_PKG_BUILD_E_REF_BUILD_ENV" FOREIGN KEY ("BE_ID")
4952
	  REFERENCES "RELEASE_MANAGER"."BUILD_ENVIRONMENTS" ("BE_ID") ENABLE;
4953
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_ENV" ADD CONSTRAINT "FK_PKG_BUILD_E_REF_PKG_VERSION" FOREIGN KEY ("PV_ID")
4954
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4955
--------------------------------------------------------
4956
--  Ref Constraints for Table PACKAGE_BUILD_INFO
4957
--------------------------------------------------------
4958
 
5172 dpurdie 4959
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" ADD FOREIGN KEY ("PV_ID")
4960
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4961
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_BUILD_INFO" ADD FOREIGN KEY ("BM_ID")
4962
	  REFERENCES "RELEASE_MANAGER"."BUILD_MACHINES" ("BM_ID") ENABLE;
4040 dpurdie 4963
--------------------------------------------------------
5892 dpurdie 4964
--  Ref Constraints for Table PACKAGE_DEPENDENCIES
4965
--------------------------------------------------------
4966
 
4967
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK1" FOREIGN KEY ("PV_ID")
4968
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
4969
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK2" FOREIGN KEY ("DPV_ID")
4970
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ON DELETE CASCADE ENABLE;
4971
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK3" FOREIGN KEY ("DPKG_ID")
4972
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ON DELETE CASCADE ENABLE;
4973
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DEPENDENCIES" ADD CONSTRAINT "PACKAGE_DEPENDENCIES_FK4" FOREIGN KEY ("PKG_ID")
4974
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ON DELETE CASCADE ENABLE;
4975
--------------------------------------------------------
4040 dpurdie 4976
--  Ref Constraints for Table PACKAGE_DOCUMENTS
4977
--------------------------------------------------------
4978
 
5172 dpurdie 4979
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_DOCUMENTS" ADD CONSTRAINT "FK_PKGDOCS_REF_PV" FOREIGN KEY ("PV_ID")
4980
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4981
--------------------------------------------------------
4982
--  Ref Constraints for Table PACKAGE_INTEREST
4983
--------------------------------------------------------
4984
 
5172 dpurdie 4985
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_INTEREST" ADD FOREIGN KEY ("PROJ_ID")
4986
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
4040 dpurdie 4987
--------------------------------------------------------
4988
--  Ref Constraints for Table PACKAGE_METRICS
4989
--------------------------------------------------------
4990
 
5172 dpurdie 4991
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_METRICS" ADD CONSTRAINT "FK_PACKAGE_METRICS_PV_ID" FOREIGN KEY ("PV_ID")
4992
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 4993
--------------------------------------------------------
4994
--  Ref Constraints for Table PACKAGE_PATCHES
4995
--------------------------------------------------------
4996
 
5172 dpurdie 4997
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" ADD CONSTRAINT "FK_PP_PATCH_ID" FOREIGN KEY ("PATCH_ID")
4998
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4999
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PATCHES" ADD CONSTRAINT "FK_PP_PV_ID" FOREIGN KEY ("PV_ID")
5000
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 5001
--------------------------------------------------------
5002
--  Ref Constraints for Table PACKAGE_PROCESSES
5003
--------------------------------------------------------
5004
 
5172 dpurdie 5005
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" ADD CONSTRAINT "PACKAGE_PROCESSES_R01" FOREIGN KEY ("PV_ID")
5006
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5007
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_PROCESSES" ADD CONSTRAINT "PACKAGE_PROCESSES_R02" FOREIGN KEY ("PROC_ID")
5008
	  REFERENCES "RELEASE_MANAGER"."PROCESSES" ("PROC_ID") ENABLE;
4040 dpurdie 5009
--------------------------------------------------------
5010
--  Ref Constraints for Table PACKAGE_VERSIONS
5011
--------------------------------------------------------
5012
 
5172 dpurdie 5013
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PACKAGE_VERSIONS_VCS_TYPE" FOREIGN KEY ("VCS_TYPE_ID")
5014
	  REFERENCES "RELEASE_MANAGER"."VCS_TYPE" ("VCS_TYPE_ID") ENABLE;
6600 dpurdie 5015
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD CONSTRAINT "PKG_NAME_EXISTS" FOREIGN KEY ("PKG_ID")
5016
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
5172 dpurdie 5017
  ALTER TABLE "RELEASE_MANAGER"."PACKAGE_VERSIONS" ADD FOREIGN KEY ("BS_ID")
5018
	  REFERENCES "RELEASE_MANAGER"."BUILD_STANDARDS" ("BS_ID") ENABLE;
4040 dpurdie 5019
--------------------------------------------------------
5020
--  Ref Constraints for Table PEGGED_VERSIONS
5021
--------------------------------------------------------
5022
 
5172 dpurdie 5023
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" ADD CONSTRAINT "PEGGED_VERSIONS_PACKAG_FK1" FOREIGN KEY ("PV_ID")
5024
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5025
  ALTER TABLE "RELEASE_MANAGER"."PEGGED_VERSIONS" ADD CONSTRAINT "PEGGED_VERSIONS_RELEAS_FK1" FOREIGN KEY ("RTAG_ID")
5026
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 5027
--------------------------------------------------------
5028
--  Ref Constraints for Table PLANNED
5029
--------------------------------------------------------
5030
 
5172 dpurdie 5031
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFPACKAGE_VERSIONS54" FOREIGN KEY ("PV_ID")
5032
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5033
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFRELEASE_TAGS53" FOREIGN KEY ("RTAG_ID")
5034
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5035
  ALTER TABLE "RELEASE_MANAGER"."PLANNED" ADD CONSTRAINT "REFVIEWS55" FOREIGN KEY ("VIEW_ID")
5036
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
4040 dpurdie 5037
--------------------------------------------------------
5038
--  Ref Constraints for Table PLANNED_VERSIONS
5039
--------------------------------------------------------
5040
 
5172 dpurdie 5041
  ALTER TABLE "RELEASE_MANAGER"."PLANNED_VERSIONS" ADD FOREIGN KEY ("PKG_ID")
5042
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
4040 dpurdie 5043
--------------------------------------------------------
5044
--  Ref Constraints for Table PRODUCT_COMPONENTS
5045
--------------------------------------------------------
5046
 
5172 dpurdie 5047
  ALTER TABLE "RELEASE_MANAGER"."PRODUCT_COMPONENTS" ADD CONSTRAINT "REFPACKAGE_VERSIONS49" FOREIGN KEY ("PV_ID")
5048
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 5049
--------------------------------------------------------
5050
--  Ref Constraints for Table PROJECT_ACTION_LOG
5051
--------------------------------------------------------
5052
 
5172 dpurdie 5053
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ADD CONSTRAINT "REFACTION_TYPE63" FOREIGN KEY ("ACTTYPE_ID")
5054
	  REFERENCES "RELEASE_MANAGER"."ACTION_TYPE" ("ACTTYPE_ID") ENABLE;
5055
  ALTER TABLE "RELEASE_MANAGER"."PROJECT_ACTION_LOG" ADD FOREIGN KEY ("RTAG_ID")
5056
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") DISABLE;
4040 dpurdie 5057
--------------------------------------------------------
5058
--  Ref Constraints for Table RELEASE_COMPONENTS
5059
--------------------------------------------------------
5060
 
5172 dpurdie 5061
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_COMPONENTS" ADD CONSTRAINT "FK_RCONT_PV_ID" FOREIGN KEY ("PV_ID")
5062
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 5063
--------------------------------------------------------
5064
--  Ref Constraints for Table RELEASE_CONFIG
5065
--------------------------------------------------------
5066
 
5172 dpurdie 5067
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD FOREIGN KEY ("RTAG_ID")
5068
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5069
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONFIG" ADD FOREIGN KEY ("GBE_ID")
5070
	  REFERENCES "RELEASE_MANAGER"."GBE_MACHTYPE" ("GBE_ID") ENABLE;
4040 dpurdie 5071
--------------------------------------------------------
5072
--  Ref Constraints for Table RELEASE_CONTENT
5073
--------------------------------------------------------
5074
 
5172 dpurdie 5075
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD CONSTRAINT "RELEASE_CONTENT_FK1" FOREIGN KEY ("SDKTAG_ID")
5076
	  REFERENCES "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") ENABLE;
5077
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD FOREIGN KEY ("PKG_ID")
5078
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
5079
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_CONTENT" ADD FOREIGN KEY ("PRODUCT_STATE")
5080
	  REFERENCES "RELEASE_MANAGER"."PRODUCT_STATES" ("STATE_ID") ENABLE;
4040 dpurdie 5081
--------------------------------------------------------
5082
--  Ref Constraints for Table RELEASE_LINKS
5083
--------------------------------------------------------
5084
 
5172 dpurdie 5085
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" ADD CONSTRAINT "REFRELEASE_TAGS56" FOREIGN KEY ("RTAG_ID")
5086
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5087
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_LINKS" ADD CONSTRAINT "REFRELEASE_TAGS58" FOREIGN KEY ("REF_RTAG_ID")
5088
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
4040 dpurdie 5089
--------------------------------------------------------
5090
--  Ref Constraints for Table RELEASE_METRICS
5091
--------------------------------------------------------
5092
 
5172 dpurdie 5093
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_METRICS" ADD CONSTRAINT "FK_RELEASE_METRICS_RTAG_ID" FOREIGN KEY ("RTAG_ID")
5094
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5095
--------------------------------------------------------
5096
--  Ref Constraints for Table RELEASE_MODIFIED
5097
--------------------------------------------------------
5098
 
5099
  ALTER TABLE "RELEASE_MANAGER"."RELEASE_MODIFIED" ADD CONSTRAINT "RELEASE_MODIFIED_RELEASE__FK1" FOREIGN KEY ("RTAG_ID")
5100
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 5101
--------------------------------------------------------
5102
--  Ref Constraints for Table RUNTIME_DEPENDENCIES
5103
--------------------------------------------------------
5104
 
5172 dpurdie 5105
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ADD CONSTRAINT "FK_RTD_PV_ID" FOREIGN KEY ("PV_ID")
5106
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5107
  ALTER TABLE "RELEASE_MANAGER"."RUNTIME_DEPENDENCIES" ADD CONSTRAINT "FK_RTD_RTD_ID" FOREIGN KEY ("RTD_ID")
5108
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
4040 dpurdie 5109
--------------------------------------------------------
5110
--  Ref Constraints for Table RUN_LEVEL
5111
--------------------------------------------------------
5112
 
5172 dpurdie 5113
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD FOREIGN KEY ("RCON_ID")
5114
	  REFERENCES "RELEASE_MANAGER"."RELEASE_CONFIG" ("RCON_ID") ENABLE;
5115
  ALTER TABLE "RELEASE_MANAGER"."RUN_LEVEL" ADD FOREIGN KEY ("CURRENT_PKG_ID_BEING_BUILT")
5116
	  REFERENCES "RELEASE_MANAGER"."PACKAGES" ("PKG_ID") ENABLE;
5117
--------------------------------------------------------
5118
--  Ref Constraints for Table SDK_CONTENT
5119
--------------------------------------------------------
5120
 
5121
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" ADD CONSTRAINT "SDK_CONTENT_FK1" FOREIGN KEY ("PV_ID")
5122
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5123
  ALTER TABLE "RELEASE_MANAGER"."SDK_CONTENT" ADD CONSTRAINT "SDK_CONTENT_FK2" FOREIGN KEY ("SDKTAG_ID")
5124
	  REFERENCES "RELEASE_MANAGER"."SDK_TAGS" ("SDKTAG_ID") ENABLE;
5125
--------------------------------------------------------
5126
--  Ref Constraints for Table SDK_NAMES
5127
--------------------------------------------------------
5128
 
5129
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_FK1" FOREIGN KEY ("VIEW_ID")
5130
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
5131
  ALTER TABLE "RELEASE_MANAGER"."SDK_NAMES" ADD CONSTRAINT "SDK_NAMES_FK2" FOREIGN KEY ("PROJ_ID")
5132
	  REFERENCES "RELEASE_MANAGER"."PROJECTS" ("PROJ_ID") ENABLE;
5133
--------------------------------------------------------
5134
--  Ref Constraints for Table SDK_TAGS
5135
--------------------------------------------------------
5136
 
5137
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_FK1" FOREIGN KEY ("SDK_ID")
5138
	  REFERENCES "RELEASE_MANAGER"."SDK_NAMES" ("SDK_ID") ENABLE;
5139
  ALTER TABLE "RELEASE_MANAGER"."SDK_TAGS" ADD CONSTRAINT "SDK_TAGS_FK2" FOREIGN KEY ("RTAG_ID")
5140
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5141
--------------------------------------------------------
5142
--  Ref Constraints for Table TEST_RUN
5143
--------------------------------------------------------
5144
 
5145
  ALTER TABLE "RELEASE_MANAGER"."TEST_RUN" ADD CONSTRAINT "TEST_RUN_FK1" FOREIGN KEY ("BUILD_ID")
5146
	  REFERENCES "RELEASE_MANAGER"."BUILD_INSTANCES" ("BUILD_ID") ON DELETE CASCADE ENABLE;
4040 dpurdie 5147
--------------------------------------------------------
5148
--  Ref Constraints for Table UNIT_TESTS
5149
--------------------------------------------------------
5150
 
5172 dpurdie 5151
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" ADD CONSTRAINT "FK_UT_REF_PV_ID" FOREIGN KEY ("PV_ID")
5152
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5153
  ALTER TABLE "RELEASE_MANAGER"."UNIT_TESTS" ADD CONSTRAINT "FK_UT_REF_TEST_TYPES" FOREIGN KEY ("TEST_TYPES_FK")
5154
	  REFERENCES "RELEASE_MANAGER"."TEST_TYPES" ("TEST_TYPE_ID") ENABLE;
4040 dpurdie 5155
--------------------------------------------------------
5156
--  Ref Constraints for Table VTREES_WORLD
5157
--------------------------------------------------------
5158
 
5172 dpurdie 5159
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" ADD CONSTRAINT "FK_VW_REF_VTREE_ID" FOREIGN KEY ("VTREE_ID")
5160
	  REFERENCES "RELEASE_MANAGER"."VTREES" ("VTREE_ID") ENABLE;
5161
  ALTER TABLE "RELEASE_MANAGER"."VTREES_WORLD" ADD CONSTRAINT "FK_VW_REF_WORLD_ID" FOREIGN KEY ("WORLD_ID")
5162
	  REFERENCES "RELEASE_MANAGER"."WORLDS" ("WORLD_ID") ENABLE;
4040 dpurdie 5163
--------------------------------------------------------
5164
--  Ref Constraints for Table WORK_IN_PROGRESS
5165
--------------------------------------------------------
5166
 
5172 dpurdie 5167
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFPACKAGE_VERSIONS51" FOREIGN KEY ("PV_ID")
5168
	  REFERENCES "RELEASE_MANAGER"."PACKAGE_VERSIONS" ("PV_ID") ENABLE;
5169
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFRELEASE_TAGS50" FOREIGN KEY ("RTAG_ID")
5170
	  REFERENCES "RELEASE_MANAGER"."RELEASE_TAGS" ("RTAG_ID") ENABLE;
5171
  ALTER TABLE "RELEASE_MANAGER"."WORK_IN_PROGRESS" ADD CONSTRAINT "REFVIEWS52" FOREIGN KEY ("VIEW_ID")
5172
	  REFERENCES "RELEASE_MANAGER"."VIEWS" ("VIEW_ID") ENABLE;
5173
--------------------------------------------------------
5174
--  DDL for Trigger TRIGGER_BSA_ID
5175
--------------------------------------------------------
5176
 
5177
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_BSA_ID" 
6031 dpurdie 5178
BEFORE INSERT ON BUILD_STANDARDS_ADDENDUM
5172 dpurdie 5179
for each row
5180
BEGIN
5181
  select SEQ_BSA_ID.nextval
5182
  into :new.BSA_ID
5183
  from DUAL;
5184
END;
4040 dpurdie 5185
/
5172 dpurdie 5186
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_BSA_ID" ENABLE;
5187
--------------------------------------------------------
5188
--  DDL for Trigger TRIGGER_BUILD_INSTANCE
5189
--------------------------------------------------------
5190
 
5191
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_BUILD_INSTANCE" 
6031 dpurdie 5192
BEFORE INSERT ON BUILD_INSTANCES
5172 dpurdie 5193
for each row
5194
BEGIN
5195
  select SEQ_BUILD_INSTANCE.nextval
5196
  into :new.BUILD_ID
5197
  from DUAL;
5198
END;
5199
/
5200
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_BUILD_INSTANCE" ENABLE;
5201
--------------------------------------------------------
5202
--  DDL for Trigger TRIGGER_SDK_NAMES
5203
--------------------------------------------------------
5204
 
5205
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_NAMES" 
6031 dpurdie 5206
BEFORE INSERT ON SDK_NAMES
5172 dpurdie 5207
for each row
5208
BEGIN
5209
  select SEQ_SDK_ID.nextval
5210
  into :new.SDK_ID
5211
  from DUAL;
5212
END;
5213
/
5214
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_NAMES" ENABLE;
5215
--------------------------------------------------------
5216
--  DDL for Trigger TRIGGER_SDK_TAGS
5217
--------------------------------------------------------
5218
 
5219
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_TAGS" 
6031 dpurdie 5220
BEFORE INSERT ON SDK_TAGS
5172 dpurdie 5221
for each row
5222
BEGIN
5223
  select SEQ_SDKTAG_ID.nextval
5224
  into :new.SDKTAG_ID
5225
  from DUAL;
5226
END;
5227
/
5228
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_SDK_TAGS" ENABLE;
4040 dpurdie 5229
--------------------------------------------------------
5892 dpurdie 5230
--  DDL for Trigger TRIGGER_TEST_RUNS
5231
--------------------------------------------------------
5232
 
5233
  CREATE OR REPLACE TRIGGER "RELEASE_MANAGER"."TRIGGER_TEST_RUNS" 
6031 dpurdie 5234
  BEFORE INSERT ON TEST_RUN
5235
  for each row
5892 dpurdie 5236
BEGIN
5237
  select SEQ_TESTRUN_ID.nextval
6031 dpurdie 5238
    into :new.TESTRUN_ID
5892 dpurdie 5239
  from DUAL;
5240
END;
5241
/
5242
ALTER TRIGGER "RELEASE_MANAGER"."TRIGGER_TEST_RUNS" ENABLE;
5243
--------------------------------------------------------
4040 dpurdie 5244
--  DDL for Function CAN_EDIT_PKG_IN_PROJECT
5245
--------------------------------------------------------
5246
 
5172 dpurdie 5247
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."CAN_EDIT_PKG_IN_PROJECT" ( nPvId IN NUMBER, nRtagId IN NUMBER ) RETURN NUMBER IS
5384 dpurdie 5248
-- Returns 0 : Package is not editable in this Release
5249
--         1 : Package is editable in this release
1373 dpurdie 5250
/* ---------------------------------------------------------------------------
5251
    Version: 3.0.0
5252
   --------------------------------------------------------------------------- */
5253
 
5384 dpurdie 5254
  VExt PACKAGE_VERSIONS.V_EXT%TYPE;
5255
  ProjId NUMBER;
5256
  RowCount NUMBER;
5257
  cReleaseMode CHAR(1);
1373 dpurdie 5258
 
5259
BEGIN
6031 dpurdie 5260
 
5384 dpurdie 5261
  /*--------------- Business Rules Here -------------------*/
5262
  IF (nRtagId IS NULL)  OR  (nRtagId < 1)THEN
5263
    RETURN 0;
5264
  END IF;
5265
  /*-------------------------------------------------------*/
6031 dpurdie 5266
 
5384 dpurdie 5267
  /*-- First Check. See if package is used through release reference --*/
5268
  SELECT COUNT(rc.PV_ID) INTO RowCount
5269
    FROM (
5270
        SELECT rl.REF_RTAG_ID
5271
        FROM RELEASE_LINKS rl
5272
       WHERE rl.RTAG_ID = nRtagId
5273
        ) rl,
5274
      RELEASE_CONTENT rc
5275
    WHERE rc.RTAG_ID = rl.REF_RTAG_ID
6031 dpurdie 5276
      AND rc.PV_ID = nPvId;
5277
 
5278
  -- Decide if package can be edited
5384 dpurdie 5279
  IF RowCount > 0 THEN
5280
    -- Package is referenced from other release, hence cannot be edited
6031 dpurdie 5281
    RETURN 0;
5282
  END IF;
5283
 
5172 dpurdie 5284
-- Check if the package is included through an SDK reference
5285
  SELECT count(*) INTO RowCount
5286
    FROM RELEASE_CONTENT rc
5287
   WHERE rc.RTAG_ID = nRtagId
5384 dpurdie 5288
      AND rc.PV_ID = nPvId
5172 dpurdie 5289
      AND rc.SDKTAG_ID is not NULL ;
5290
 
5384 dpurdie 5291
  IF RowCount > 0 THEN
5292
    -- Package is imported via SDK
6031 dpurdie 5293
    RETURN 0;
5294
  END IF;
5295
 
5384 dpurdie 5296
--  Pegged packages can be edited. Other checking needs to be done
5297
--  -- Check if the package is pegged
5298
--  SELECT count(*) INTO RowCount
5299
--    FROM pegged_versions
5300
--   WHERE RTAG_ID = nRtagId
5301
--      AND PV_ID = nPvId;
5172 dpurdie 5302
 
5384 dpurdie 5303
--  IF RowCount > 0 THEN
5304
--    -- Package is Pegged
6031 dpurdie 5305
--    RETURN 0;
5306
--  END IF;
5307
 
5384 dpurdie 5308
  -- Check is only done for releases in restrictive mode
5309
  SELECT rt.OFFICIAL INTO cReleaseMode
5310
    FROM RELEASE_TAGS rt
5311
   WHERE rt.RTAG_ID = nRtagId;
6031 dpurdie 5312
 
5384 dpurdie 5313
  IF cReleaseMode = 'N' OR cReleaseMode = 'R'  OR cReleaseMode = 'C' THEN
5314
    -- Do not do any further checking,
5315
    -- Package is editable here
5316
    RETURN 1;
6031 dpurdie 5317
  END IF;
5172 dpurdie 5318
 
6031 dpurdie 5319
 
5384 dpurdie 5320
  /*-- Further checking --*/
5321
  -- Get proj_id
5322
  SELECT rt.PROJ_ID  INTO  ProjId
5323
    FROM RELEASE_TAGS rt
5324
   WHERE rt.RTAG_ID = nRtagId;
5172 dpurdie 5325
 
5384 dpurdie 5326
  BEGIN
5327
    -- Get v_ext
5328
    SELECT pv.V_EXT  INTO  Vext
5329
      FROM PACKAGE_VERSIONS pv
6031 dpurdie 5330
     WHERE pv.PV_ID = nPvId;
1373 dpurdie 5331
 
5384 dpurdie 5332
    EXCEPTION
5333
        WHEN NO_DATA_FOUND THEN
5334
            Vext := NULL;
6031 dpurdie 5335
  END;
5336
 
5384 dpurdie 5337
  --Temp Hack for Step Project
5338
  IF ProjId != 281 THEN
5339
    -- Find if package can be edited in this project
5340
      SELECT COUNT(pe.EXT_NAME) INTO RowCount
5341
      FROM PROJECT_EXTENTIONS pe
6031 dpurdie 5342
      WHERE pe.PROJ_ID != ProjId
5384 dpurdie 5343
        AND pe.EXT_NAME = VExt;
6031 dpurdie 5344
  END IF;
5345
 
5346
  -- Decide if package can be edited
5384 dpurdie 5347
  IF RowCount > 0 THEN
5348
    -- Package extension is found in other projects, hence NOT EDITABLE
5349
    RETURN 0;
5350
  ELSE
6031 dpurdie 5351
    RETURN 1;
5384 dpurdie 5352
  END IF;
1373 dpurdie 5353
 
6031 dpurdie 5354
 
1373 dpurdie 5355
END CAN_EDIT_PKG_IN_PROJECT;
4040 dpurdie 5356
 
1374 dpurdie 5357
/
4040 dpurdie 5358
--------------------------------------------------------
5359
--  DDL for Function DT_ADDUSEROBJECT
5360
--------------------------------------------------------
5361
 
5172 dpurdie 5362
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."DT_ADDUSEROBJECT" RETURN NUMBER IS NEWOBJECTID NUMBER; BEGIN /* GET THE NEXT VALUE FROM THE SEQUENCE FOR THE OBJECT ID */ SELECT MICROSOFTSEQDTPROPERTIES.NEXTVAL INTO NEWOBJECTID FROM DUAL; /* ADD THE PARENT NODE FOR THE NEW OBJECT */ INSERT INTO MICROSOFTDTPROPERTIES ( ID, OBJECTID, PROPERTY ) VALUES ( NEWOBJECTID, NEWOBJECTID, 'DtgSchemaOBJECT' ); RETURN( NEWOBJECTID ); END DT_ADDUSEROBJECT;
4040 dpurdie 5363
 
3959 dpurdie 5364
/
4040 dpurdie 5365
--------------------------------------------------------
5366
--  DDL for Function GET_AUTOMATED_LABEL
5367
--------------------------------------------------------
5368
 
5172 dpurdie 5369
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_AUTOMATED_LABEL" ( nPvId IN NUMBER ) RETURN VARCHAR2 IS
3959 dpurdie 5370
 
5371
/* ---------------------------------------------------------------------------
5372
    Version: 3.0.0
5373
   --------------------------------------------------------------------------- */
5374
 
4211 dpurdie 5375
  sPkgName VARCHAR2(4000);
5376
  sPkgVersion VARCHAR2(4000);
5377
  sVext VARCHAR2(4000);
5378
  cChangeType CHAR;
5379
  cBuildType CHAR;
3959 dpurdie 5380
 
6031 dpurdie 5381
 
1373 dpurdie 5382
BEGIN
5383
 
3959 dpurdie 5384
	-- Get package details
6031 dpurdie 5385
	SELECT pkg.PKG_NAME, pv.V_EXT, pv.build_type, pv.change_type, pv.pkg_version INTO sPkgName, sVext,cBuildType, cChangeType, sPkgVersion
3959 dpurdie 5386
	  FROM PACKAGE_VERSIONS pv,
5387
	  	   PACKAGES pkg
5388
	 WHERE pv.PKG_ID = pkg.PKG_ID
5389
	   AND pv.PV_ID = nPvId;
5390
 
4211 dpurdie 5391
  -- Generate Label for manually built package
5392
  If cBuildType = 'M' Then
5393
    return (sPkgName ||'_'|| sPkgVersion );
5394
  End If;
3959 dpurdie 5395
 
4211 dpurdie 5396
  -- Generate Label for automated build with specified package version
5397
  IF cchangetype = 'F' Then
5398
    return (sPkgName ||'_'|| sPkgVersion ||'.WIP');
5399
  End If;
5400
 
3959 dpurdie 5401
	-- Generate Label for automated build
5402
	RETURN UPPER( sPkgName ||'.'|| nPvId || sVext ||'.WIP' );
5403
 
5404
END GET_AUTOMATED_LABEL;
4040 dpurdie 5405
 
1374 dpurdie 5406
/
4040 dpurdie 5407
--------------------------------------------------------
5408
--  DDL for Function GET_BUILD_NUMBER
5409
--------------------------------------------------------
5410
 
5172 dpurdie 5411
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_BUILD_NUMBER" (s_version IN VARCHAR2) RETURN VARCHAR2
1373 dpurdie 5412
IS
5413
/* ---------------------------------------------------------------------------
5414
    Version: 1.0.0
5415
   --------------------------------------------------------------------------- */
5416
BEGIN
5417
    IF is_number(s_version) AND LENGTH(s_version) > 3
5418
    THEN
5419
        RETURN MOD(TO_NUMBER(s_version), 1000);
5420
    ELSE
5421
        RETURN 0;
5422
    END IF;
5423
END get_build_number;
4040 dpurdie 5424
 
1374 dpurdie 5425
/
4040 dpurdie 5426
--------------------------------------------------------
5427
--  DDL for Function GET_PATCH_VERSION
5428
--------------------------------------------------------
5429
 
5172 dpurdie 5430
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_PATCH_VERSION" (s_version IN VARCHAR2) RETURN VARCHAR2
1373 dpurdie 5431
IS
5432
/* ---------------------------------------------------------------------------
3959 dpurdie 5433
    Version: 1.0.0
1373 dpurdie 5434
   --------------------------------------------------------------------------- */
5435
BEGIN
3959 dpurdie 5436
    IF is_number(s_version) AND LENGTH(s_version) > 3
1373 dpurdie 5437
    THEN
3959 dpurdie 5438
        RETURN FLOOR(TO_NUMBER(s_version) / 1000);
1373 dpurdie 5439
    ELSE
3959 dpurdie 5440
        RETURN s_version;
1373 dpurdie 5441
    END IF;
3959 dpurdie 5442
END get_patch_version;
4040 dpurdie 5443
 
1374 dpurdie 5444
/
4040 dpurdie 5445
--------------------------------------------------------
5446
--  DDL for Function GET_PV_FIRST_MODIFIED
5447
--------------------------------------------------------
5448
 
5172 dpurdie 5449
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" (v_pv_id NUMBER) RETURN DATE IS
3959 dpurdie 5450
  ret DATE;
1373 dpurdie 5451
BEGIN
3959 dpurdie 5452
  SELECT q.modified_stamp
5453
    INTO ret
5454
    FROM (
5455
            SELECT level AS lvl, pvc.pv_id, pvc.modified_stamp, pvc.change_type
5456
              FROM package_versions pvc
5457
              START WITH pvc.pv_id = v_pv_id
5458
            CONNECT BY NOCYCLE pvc.pv_id = PRIOR pvc.last_pv_id
5459
          ) Q
5460
  WHERE q.change_type IS NOT NULL
5461
    AND rownum = 1
5462
  ORDER BY q.lvl;
5463
 
5464
  RETURN ret;
5465
END;
4040 dpurdie 5466
 
1374 dpurdie 5467
/
5892 dpurdie 5468
 
6031 dpurdie 5469
  GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "RM_READONLY";
5892 dpurdie 5470
  GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "DM_READONLY";
5471
  GRANT EXECUTE ON "RELEASE_MANAGER"."GET_PV_FIRST_MODIFIED" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 5472
--------------------------------------------------------
5473
--  DDL for Function GET_V_EXT
5474
--------------------------------------------------------
5475
 
5172 dpurdie 5476
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."GET_V_EXT" (SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE) RETURN VARCHAR2 IS
3959 dpurdie 5477
 
1373 dpurdie 5478
/* ---------------------------------------------------------------------------
3959 dpurdie 5479
    Version: 3.0.0
1373 dpurdie 5480
   --------------------------------------------------------------------------- */
3959 dpurdie 5481
 
5482
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
5483
    lastDot NUMBER;
5484
 
1373 dpurdie 5485
BEGIN
3959 dpurdie 5486
    lastDot := INSTR (SSpkg_version, '.', -1);
5487
 
5488
    IF ( lastDot > 0 ) AND ( lastDot != LENGTH(SSpkg_version) )
1373 dpurdie 5489
    THEN
3959 dpurdie 5490
        -- YES dot separator found --
5491
        SSV_EXT := SUBSTR (SSpkg_version, lastDot, LENGTH(SSpkg_version)-lastDot+1);
5492
 
5493
        IF IS_VERSION_EXTENSION ( SSV_EXT )
5494
        THEN
5495
            RETURN SSV_EXT;
5496
        ELSE
5497
            RETURN NULL;
5498
        END IF;
5499
 
1373 dpurdie 5500
    ELSE
3959 dpurdie 5501
        -- NO dot separator found --
5502
        RETURN NULL;
1373 dpurdie 5503
    END IF;
3959 dpurdie 5504
 
5505
END GET_V_EXT;
4040 dpurdie 5506
 
1374 dpurdie 5507
/
4040 dpurdie 5508
--------------------------------------------------------
5509
--  DDL for Function IN_LIST_NUMBER
5510
--------------------------------------------------------
5511
 
5172 dpurdie 5512
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER" ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS
1373 dpurdie 5513
 
5514
/* ---------------------------------------------------------------------------
5515
    Version: 3.0.0
5516
   --------------------------------------------------------------------------- */
5517
 
5518
    sync_rtags		   RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
5519
	pos				   NUMBER;
3959 dpurdie 5520
	in_list			   VARCHAR2(4000) := sInList || ',';
1373 dpurdie 5521
 
5522
BEGIN
5523
 
5524
	IF NOT sInList IS NULL
5525
	THEN
5526
		LOOP
5527
	        EXIT WHEN in_list IS NULL;
5528
	        pos := INSTR ( in_list, ',' );
5529
	        sync_rtags.extend;
5530
	        sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
5531
	        in_list := SUBSTR ( in_list, pos+1 );
5532
		END LOOP;
5533
	END IF;
5534
 
5535
	RETURN sync_rtags;
3959 dpurdie 5536
END IN_LIST_NUMBER;
4040 dpurdie 5537
 
1374 dpurdie 5538
/
4040 dpurdie 5539
--------------------------------------------------------
5540
--  DDL for Function IN_LIST_NUMBER2
5541
--------------------------------------------------------
5542
 
5172 dpurdie 5543
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_NUMBER2" ( sInList IN VARCHAR2 ) RETURN RELMGR_NUMBER_TAB_t IS
1373 dpurdie 5544
 
5545
/* ---------------------------------------------------------------------------
5546
    Version: 3.0.0
5547
   --------------------------------------------------------------------------- */
5548
 
5549
    sync_rtags		   RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
5550
	pos				   NUMBER;
3959 dpurdie 5551
	in_list			   VARCHAR2(32767) := sInList || ',';
1373 dpurdie 5552
 
5553
BEGIN
5554
 
5555
	IF NOT sInList IS NULL
5556
	THEN
5557
		LOOP
5558
	        EXIT WHEN in_list IS NULL;
5559
	        pos := INSTR ( in_list, ',' );
5560
	        sync_rtags.extend;
5561
	        sync_rtags(sync_rtags.count) := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
5562
	        in_list := SUBSTR ( in_list, pos+1 );
5563
		END LOOP;
5564
	END IF;
5565
 
5566
	RETURN sync_rtags;
3959 dpurdie 5567
END IN_LIST_NUMBER2;
4040 dpurdie 5568
 
1374 dpurdie 5569
/
4040 dpurdie 5570
--------------------------------------------------------
5571
--  DDL for Function IN_LIST_VARCHAR2
5572
--------------------------------------------------------
5573
 
5172 dpurdie 5574
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IN_LIST_VARCHAR2" ( sInList IN VARCHAR2, cSeparator IN VARCHAR2 ) RETURN RELMGR_VARCHAR2_TAB_t IS
1373 dpurdie 5575
 
5576
/* ---------------------------------------------------------------------------
5577
    Version: 3.1
5578
   --------------------------------------------------------------------------- */
5579
 
5580
    cItemCollection	   RELMGR_VARCHAR2_TAB_t := RELMGR_VARCHAR2_TAB_t();
5581
	pos				   NUMBER;
5582
	in_list			   VARCHAR2(4000) := sInList || cSeparator;
5583
	val				   VARCHAR2(4000);
5584
 
5585
BEGIN
5586
 
5587
	IF NOT sInList IS NULL
5588
	THEN
5589
		LOOP
5590
	        EXIT WHEN in_list IS NULL;
5591
	        pos := INSTR ( in_list, cSeparator );
5592
			val := LTRIM ( RTRIM ( SUBSTR ( in_list, 1, pos-1 ) ) );
6031 dpurdie 5593
 
1373 dpurdie 5594
			IF (NOT val IS NULL) THEN
5595
		        cItemCollection.extend;
5596
		        cItemCollection(cItemCollection.count) := val;
5597
			END IF;
6031 dpurdie 5598
 
1373 dpurdie 5599
	        in_list := SUBSTR ( in_list, pos+1 );
5600
		END LOOP;
5601
	END IF;
5602
 
5603
	RETURN cItemCollection;
5604
END IN_LIST_VARCHAR2;
4040 dpurdie 5605
 
1374 dpurdie 5606
/
4040 dpurdie 5607
--------------------------------------------------------
5608
--  DDL for Function IS_NUMBER
5609
--------------------------------------------------------
5610
 
5172 dpurdie 5611
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IS_NUMBER" (p_val IN VARCHAR2) RETURN BOOLEAN
3959 dpurdie 5612
IS
5613
   temp_num NUMBER;
5614
/* ---------------------------------------------------------------------------
5615
    Version: 1.0.0
5616
   --------------------------------------------------------------------------- */
5617
BEGIN
5618
   temp_num := TO_NUMBER(p_val);
5619
   RETURN true;
5620
EXCEPTION WHEN VALUE_ERROR THEN
5621
   RETURN false;
5622
END IS_NUMBER;
4040 dpurdie 5623
 
3959 dpurdie 5624
/
4040 dpurdie 5625
--------------------------------------------------------
5626
--  DDL for Function IS_VERSION_EXTENSION
5627
--------------------------------------------------------
5628
 
5172 dpurdie 5629
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."IS_VERSION_EXTENSION" (SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE) RETURN BOOLEAN
3959 dpurdie 5630
IS
5631
/* ---------------------------------------------------------------------------
5632
    Version: 3.0.0
5633
   --------------------------------------------------------------------------- */
1373 dpurdie 5634
 
3959 dpurdie 5635
BEGIN
5636
    IF LENGTH ( TRIM (TRANSLATE (SSV_EXT, '.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',' ') ) ) > 0
5637
    THEN
5638
        RETURN FALSE;
5639
    ELSE
5640
        RETURN TRUE;
5641
    END IF;
1373 dpurdie 5642
 
3959 dpurdie 5643
END IS_VERSION_EXTENSION;
4040 dpurdie 5644
 
1374 dpurdie 5645
/
4040 dpurdie 5646
--------------------------------------------------------
5647
--  DDL for Function ORA_SYSDATE
5648
--------------------------------------------------------
5649
 
5172 dpurdie 5650
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."ORA_SYSDATE" 
3959 dpurdie 5651
RETURN DATE
1373 dpurdie 5652
IS
3959 dpurdie 5653
/* ---------------------------------------------------------------------------
5654
    Version: 3.0.0
5655
   --------------------------------------------------------------------------- */
5656
BEGIN
1373 dpurdie 5657
 
3959 dpurdie 5658
    RETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY' ),'DD-MON-YYYY' );
5659
END ORA_SYSDATE;
4040 dpurdie 5660
 
3959 dpurdie 5661
/
4040 dpurdie 5662
--------------------------------------------------------
5663
--  DDL for Function ORA_SYSDATETIME
5664
--------------------------------------------------------
5665
 
5172 dpurdie 5666
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."ORA_SYSDATETIME" 
3959 dpurdie 5667
RETURN DATE
5668
IS
5669
/* ---------------------------------------------------------------------------
5670
    Version: 3.0.0
5671
   --------------------------------------------------------------------------- */
5672
BEGIN
1373 dpurdie 5673
 
3959 dpurdie 5674
    RETURN TO_DATE( TO_CHAR( SYSDATE,'DD-MON-YYYY HH24:MI:SS' ),'DD-MON-YYYY HH24:MI:SS' );
5675
END ORA_SYSDATETIME;
4040 dpurdie 5676
 
3959 dpurdie 5677
/
4040 dpurdie 5678
--------------------------------------------------------
5679
--  DDL for Function PERL_DBD_TESTFUNC
5680
--------------------------------------------------------
5681
 
5172 dpurdie 5682
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."PERL_DBD_TESTFUNC" (a in integer, b in integer) return integer is c integer; begin if b is null then c := 0; else c := b; end if; return a * c + 1; end;
4040 dpurdie 5683
 
1374 dpurdie 5684
/
4040 dpurdie 5685
--------------------------------------------------------
5686
--  DDL for Function RELEASE_MODE
5687
--------------------------------------------------------
5688
 
5172 dpurdie 5689
  CREATE OR REPLACE FUNCTION "RELEASE_MANAGER"."RELEASE_MODE" ( nRtagId IN NUMBER ) RETURN CHAR IS
1373 dpurdie 5690
 
3959 dpurdie 5691
/* ---------------------------------------------------------------------------
5692
    Version: 3.0.0
5693
   --------------------------------------------------------------------------- */
1373 dpurdie 5694
 
3959 dpurdie 5695
   returnValue CHAR(1);
1373 dpurdie 5696
 
3959 dpurdie 5697
BEGIN
1373 dpurdie 5698
 
3959 dpurdie 5699
    /*--------------- Business Rules Here -------------------*/
5700
	/*-------------------------------------------------------*/
6031 dpurdie 5701
 
3959 dpurdie 5702
	-- Get release mode
5703
	SELECT rt.OFFICIAL INTO returnValue
5704
	  FROM RELEASE_TAGS rt
5705
	 WHERE rt.RTAG_ID = nRtagId;
6031 dpurdie 5706
 
3959 dpurdie 5707
	RETURN returnValue;
6031 dpurdie 5708
 
3959 dpurdie 5709
END RELEASE_MODE;
4040 dpurdie 5710
 
1374 dpurdie 5711
/
4040 dpurdie 5712
--------------------------------------------------------
5713
--  DDL for Package PK_APP_UTILS
5714
--------------------------------------------------------
5715
 
5172 dpurdie 5716
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_APP_UTILS" IS
1373 dpurdie 5717
/*
5718
------------------------------
5719
||  Last Modified:  S.Vukovic
5720
||  Modified Date:  26/Apr/2005
5721
||  Spec Version:   1.0
5722
------------------------------
5723
*/
5724
 
5725
	TYPE typeCur IS REF CURSOR;
5726
 
5727
    /*================================================================================================*/
5728
 
5729
	PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur);
5730
 
5731
	/*================================================================================================*/
5732
 
5733
END PK_APP_UTILS;
4040 dpurdie 5734
 
1374 dpurdie 5735
/
4040 dpurdie 5736
 
5892 dpurdie 5737
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_APP_UTILS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 5738
--------------------------------------------------------
5739
--  DDL for Package PK_BUILDAPI
5740
--------------------------------------------------------
5741
 
5172 dpurdie 5742
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_BUILDAPI" 
1373 dpurdie 5743
IS
5744
   /*================================================================================================*/
5745
   PROCEDURE add_product_component (
5746
      npvid           IN   NUMBER,
5747
      sosname         IN   VARCHAR2,
5748
      sorigfilepath   IN   VARCHAR2,
5749
      sfilename       IN   VARCHAR2,
5750
      sdestfilepath   IN   VARCHAR2,
5751
      nbytesize       IN   NUMBER,
5752
      scrccksum       IN   VARCHAR2
5753
   );
5754
 
5755
   PROCEDURE remove_all_product_components (
5756
      npvid     IN   NUMBER,
5757
      sosname   IN   VARCHAR2
5758
   );
5759
 
5760
   /*================================================================================================*/
5761
   FUNCTION get_osid (sosname IN VARCHAR2)
5762
      RETURN NUMBER;
5763
 
4308 dpurdie 5764
  /*================================================================================================*/
5765
    PROCEDURE update_build_service_info (
1373 dpurdie 5766
      sdatabaseserver   IN   VARCHAR2,
5767
      sarchiveserver    IN   VARCHAR2,
5768
      smailserver       IN   VARCHAR2,
5769
      smailsender       IN   VARCHAR2,
4211 dpurdie 5770
      faultmlist        IN   VARCHAR2,
1373 dpurdie 5771
      sdiskspace        IN   VARCHAR2,
6600 dpurdie 5772
      ssbommanagement   IN   VARCHAR2,
5773
      lxrserver         IN   VARCHAR2
1373 dpurdie 5774
   );
5775
 
5776
   /*================================================================================================*/
4040 dpurdie 5777
   PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2, sgbeclass IN NUMBER);
1373 dpurdie 5778
 
5779
   /*================================================================================================*/
5780
   PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER);
5781
 
5782
   /*================================================================================================*/
4040 dpurdie 5783
   PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2, sgbeclass IN NUMBER);
1373 dpurdie 5784
 
4040 dpurdie 5785
  /*================================================================================================*/
5786
   PROCEDURE add_buildmachine (sbmvalue IN VARCHAR2);
5787
 
1373 dpurdie 5788
   /*================================================================================================*/
4040 dpurdie 5789
   PROCEDURE remove_buildmachine (nbm_id IN NUMBER);
5790
 
5791
   /*================================================================================================*/
5792
   PROCEDURE update_buildmachine (nbm_id IN NUMBER, sbmvalue IN VARCHAR2);
6031 dpurdie 5793
 
4040 dpurdie 5794
   /*================================================================================================*/
1373 dpurdie 5795
   PROCEDURE delete_daemon (srconidlist IN VARCHAR2);
6031 dpurdie 5796
 
1373 dpurdie 5797
   /*================================================================================================*/
4308 dpurdie 5798
   PROCEDURE remove_daemon (srconidlist IN VARCHAR2);
1373 dpurdie 5799
 
5800
   /*================================================================================================*/
5801
   PROCEDURE insert_schedule_info (
5802
      dschedulepause     IN   DATE,
5803
      dscheduleresume    IN   DATE,
5804
      crepeat            IN   VARCHAR2,
5805
      cindefinitepause   IN   VARCHAR2
5806
   );
5807
 
5808
   /*================================================================================================*/
5809
   PROCEDURE delete_schedule (nscheduleid IN NUMBER);
5810
 
5811
   /*================================================================================================*/
5812
   PROCEDURE set_infinite_pause;
5813
 
5814
   /*================================================================================================*/
5815
   PROCEDURE set_resume;
5816
 
5817
   /*================================================================================================*/
5818
   PROCEDURE delete_out_of_date_schedule;
5819
 
5820
   /*================================================================================================*/
5821
   PROCEDURE set_daemon_resume (nrconid IN NUMBER);
5822
 
5823
   /*================================================================================================*/
5824
   PROCEDURE set_daemon_pause (nrconid IN NUMBER);
5825
 
5826
   /*================================================================================================*/
5827
   PROCEDURE set_daemon_disable (nrconid NUMBER);
5828
 
5829
   /*================================================================================================*/
5830
   PROCEDURE set_daemon_states (nrtagid NUMBER, nstate NUMBER);
5831
 
5832
   /*================================================================================================*/
5833
   PROCEDURE mark_daemon_inst_in_progress( nInstId IN NUMBER );
5834
   /*================================================================================================*/
5835
   PROCEDURE mark_daemon_inst_completed( nInstId IN NUMBER );
5836
   /*================================================================================================*/
5837
   FUNCTION get_daemon_inst(
5838
      nRtag_id IN NUMBER,
5839
      nInst_id IN OUT NUMBER,
5840
      nOp_code IN OUT NUMBER,
5841
      nPv_id OUT NUMBER,
5842
      nUser_id OUT NUMBER,
5843
      nInProgress OUT NUMBER
5844
   ) RETURN NUMBER;
5845
   /*================================================================================================*/
5846
   PROCEDURE cleanup_stranded_daemon_insts;
5847
   /*================================================================================================*/
5848
   PROCEDURE insert_daemon_inst(
5849
      nOp_code IN NUMBER,
5850
      nRtag_id IN NUMBER,
5851
      nPv_id IN NUMBER,
5852
      nSchedDate IN DATE,
5853
      nRepeatSecs IN NUMBER,
5854
      nAddedDate IN DATE,
5855
      nUser_id IN NUMBER
5856
   );
5857
   /*================================================================================================*/
5858
   PROCEDURE del_daemon_inst( nInstId IN NUMBER );
5859
   /*================================================================================================*/
5860
   PROCEDURE del_daemon_inst_by_rtag_pvid(
5861
      nOp_code IN NUMBER,
5862
      nRtag_id IN NUMBER,
5863
      nPv_id IN NUMBER
5864
   );
5865
   /*================================================================================================*/
5866
   PROCEDURE update_daemon_inst(
5867
      nInstId IN NUMBER,
5868
      nOp_code IN NUMBER,
5869
      nRtag_id IN NUMBER,
5870
      nPv_id IN NUMBER,
5871
      nSchedDate IN DATE,
5872
      nRepeatSecs IN NUMBER,
5873
      nAddedDate IN DATE,
5874
      nUser_id IN NUMBER
5875
   );
5876
   /*================================================================================================*/
5877
   FUNCTION daemon_ops_for_rtag_pvid(
5878
      nRtag_id IN NUMBER,
5879
      nPv_id IN NUMBER
5880
   ) RETURN VARCHAR2;
5881
   /*================================================================================================*/
5882
   FUNCTION daemon_ops_for_rtag(
5883
      nRtag_id IN NUMBER
5884
   ) RETURN VARCHAR2;
5885
   /*================================================================================================*/
5886
   PROCEDURE add_daemon_config (
5887
      nrtagid           IN   NUMBER,
5888
      nbmcon_id         IN   NUMBER,
5889
      sdaemon_mode      IN   VARCHAR2,
5890
      sgbebuildfilter   IN   VARCHAR2
5891
   );
5892
   /*================================================================================================*/
5893
   PROCEDURE update_daemon_config (
5894
      nrconid           IN   NUMBER,
5895
      nbmcon_id         IN   NUMBER,
5896
      sdaemon_mode      IN   VARCHAR2,
5897
      sgbebuildfilter   IN   VARCHAR2
5898
   );
5899
 
4308 dpurdie 5900
 /*================================================================================================*/
5901
   PROCEDURE duplicate_daemon_config (
5902
      nrtagid           IN   NUMBER,
5903
      nbmcon_id         IN   NUMBER,
5904
      sdaemonhostname   IN   VARCHAR2,
5905
      ngbe_id           IN   NUMBER,
5906
      sdaemon_mode      IN   VARCHAR2,
5907
      sgbebuildfilter   IN   VARCHAR2
5908
   );
6031 dpurdie 5909
 
1373 dpurdie 5910
   /*================================================================================================*/
5911
   PROCEDURE add_build_machine (
5912
      sdisplay_name          IN   VARCHAR2,
5913
      smachine_hostname      IN   VARCHAR2,
5914
      ngbeid                 IN   NUMBER,
5172 dpurdie 5915
      sdescription           IN   VARCHAR2,
5916
      sactive                IN CHAR
1373 dpurdie 5917
   );
5918
   /*================================================================================================*/
5919
   PROCEDURE delete_build_machine (sbmcon_id_list IN VARCHAR2);
5920
   /*================================================================================================*/
5921
   PROCEDURE update_build_machine (
5922
      nbmcon_id              IN   NUMBER,
5923
      sdisplay_name          IN   VARCHAR2,
5924
      smachine_hostname      IN   VARCHAR2,
5925
      ngbeid                 IN   NUMBER,
5172 dpurdie 5926
      sdescription           IN   VARCHAR2,
5927
      sactive                IN CHAR
1373 dpurdie 5928
   );
4553 dpurdie 5929
   /*================================================================================================*/
5930
   PROCEDURE import_daemons ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER  );
5172 dpurdie 5931
   /*================================================================================================*/
5892 dpurdie 5932
   PROCEDURE set_finite_pause ( duration IN NUMBER  );
5933
   PROCEDURE set_build_plan (rtagId IN NUMBER, nStartIndex IN NUMBER, pvList IN VARCHAR2);
5172 dpurdie 5934
 
1373 dpurdie 5935
END pk_buildapi;
4040 dpurdie 5936
 
1374 dpurdie 5937
/
4040 dpurdie 5938
--------------------------------------------------------
5939
--  DDL for Package PK_ENVIRONMENT
5940
--------------------------------------------------------
5941
 
5172 dpurdie 5942
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_ENVIRONMENT" IS
1373 dpurdie 5943
/*
5944
------------------------------
3959 dpurdie 5945
||  Last Modified:  G.Huddy
5946
||  Modified Date:  28/May/2008
5947
||  Spec Version:   1.2
1373 dpurdie 5948
------------------------------
5949
*/
5950
 
3959 dpurdie 5951
	TYPE typeCur IS REF CURSOR;
5952
 
1373 dpurdie 5953
	/*================================================================================================*/
5954
 
3959 dpurdie 5955
	FUNCTION SELECT_ENVIRONMENT_AREA ( cDlock IN PACKAGE_VERSIONS.DLOCKED%TYPE ) RETURN NUMBER;
5956
	FUNCTION GET_PACKAGE_AREA ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5957
	FUNCTION GET_VIEW_LOCATION ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5384 dpurdie 5958
	PROCEDURE ADD_PACKAGE ( PvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, imode IN   CHAR default NULL );
5959
	PROCEDURE ADD_PACKAGE_BULK ( PvIdList IN VARCHAR2, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, imode IN CHAR default NULL );
3959 dpurdie 5960
	PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5961
	FUNCTION REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, ForceRemove IN CHAR ) RETURN NUMBER;
5962
 
5963
	PROCEDURE GET_ENVIRONMENT_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5964
	PROCEDURE GET_RELEASED_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5965
	PROCEDURE GET_PENDING_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5966
	PROCEDURE GET_WORK_IN_PROGRESS_ITEMS ( ViewType IN NUMBER, UserId IN NUMBER, RtagId IN NUMBER,  sViewIdShowList IN VARCHAR2, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5967
 
5968
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
5969
 
5970
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
5971
 
5972
 
5973
	PROCEDURE MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5974
	PROCEDURE MAKE_UNRELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5975
 
5976
	PROCEDURE MAKE_PENDING ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5977
	PROCEDURE MAKE_APPROVED ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5978
	PROCEDURE MAKE_REJECT ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5979
	PROCEDURE APPROVE_MERGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
5980
 
5981
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
5982
 
5983
	PROCEDURE FIND_PACKAGE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, RecordSet OUT typeCur );
5984
	PROCEDURE FIND_FILE ( sKeyword IN VARCHAR2, nRtagId IN NUMBER, nSearchArea IN NUMBER, nPageSize IN NUMBER, RecordSet OUT typeCur );
5985
 
5986
	PROCEDURE AUTO_MAKE_RELEASE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, VExt IN
5987
							 PACKAGE_VERSIONS.V_EXT%TYPE, SSV_EXT IN PACKAGE_VERSIONS.V_EXT%TYPE,
5988
							 CloneFromPvId IN NUMBER );
5989
 
5990
	PROCEDURE GET_PRODRELEASE_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5991
 
5992
	PROCEDURE GET_INTEGRATION_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5993
 
5994
	PROCEDURE GET_TEST_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5995
 
5996
	PROCEDURE GET_DEPLOY_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
5997
 
5998
	PROCEDURE GET_REJECT_ITEMS ( RtagId IN NUMBER, nTrueRecordCount OUT NUMBER, RecordSet OUT typeCur );
1373 dpurdie 5999
	/*================================================================================================*/
3959 dpurdie 6000
 
6001
END PK_ENVIRONMENT;
4040 dpurdie 6002
 
1374 dpurdie 6003
/
4040 dpurdie 6004
--------------------------------------------------------
6005
--  DDL for Package PK_LICENCING
6006
--------------------------------------------------------
6007
 
5172 dpurdie 6008
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_LICENCING" IS
3959 dpurdie 6009
/*
6010
------------------------------
6011
||  Last Modified:  G.Huddy
6012
||  Modified Date:  19/Aug/2008
6013
||  Spec Version:   1.0
6014
------------------------------
6015
*/
6016
 
6017
   TYPE typeCur IS REF CURSOR;
6018
 
6019
    /*================================================================================================*/
6020
   PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER );
6021
   PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER );
6022
   PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER );
6023
   FUNCTION  IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER;
6024
   PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER );
6025
   /*================================================================================================*/
6026
 
6027
END PK_LICENCING;
4040 dpurdie 6028
 
3959 dpurdie 6029
/
4040 dpurdie 6030
--------------------------------------------------------
6031
--  DDL for Package PK_PACKAGE
6032
--------------------------------------------------------
6033
 
5172 dpurdie 6034
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PACKAGE" 
1373 dpurdie 6035
IS
6036
/*
6037
------------------------------
3959 dpurdie 6038
||  Last Modified:  Jeremy Tweddle
6039
||  Modified Date:  24/08/2007
1373 dpurdie 6040
||
6041
------------------------------
6042
*/
6043
   TYPE typecur IS REF CURSOR;
6031 dpurdie 6044
 
5502 dpurdie 6045
   /*
6046
    * Carriage-return line-feed character sequence.
6047
    */
6048
   CRLF CONSTANT VARCHAR2(2 CHAR) := unistr('\000D\000A');
1373 dpurdie 6049
 
6050
/*================================================================================================*/
6051
   PROCEDURE new_version (
6052
      nlastpvid                   IN       NUMBER,
6053
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
6054
      cbuildtype                  IN       CHAR,
4211 dpurdie 6055
      cchangetype                 IN       CHAR,
1373 dpurdie 6056
      nsettopvid                  IN       NUMBER DEFAULT NULL,
6057
      nrtagid                     IN       NUMBER,
6058
      nuserid                     IN       NUMBER,
6059
      enumissues_state_imported   IN       NUMBER,
6060
      returnpvid                  OUT      NUMBER
6061
   );
6062
 
6063
   PROCEDURE change_state (
6064
      pvid       IN   NUMBER,
6065
      newstate   IN   package_versions.dlocked%TYPE,
6066
      userid     IN   NUMBER
6067
   );
6068
 
6069
   PROCEDURE new_patch (
6070
      snewpatchversion   IN       package_versions.pkg_version%TYPE,
6071
      nparentpvid        IN       NUMBER,
6072
      spatchidlist       IN       VARCHAR2,
6073
      nuserid            IN       NUMBER,
6074
      returnpatchid      OUT      NUMBER
6075
   );
6076
 
6077
   PROCEDURE obsolete_patch (
6078
      patchid            IN   NUMBER,
6079
      isobsolete         IN   CHAR,
6080
      obsoletecomments   IN   VARCHAR2,
6081
      userid             IN   NUMBER
6082
   );
6083
 
6084
   PROCEDURE obsolete_patches (
6085
      spatchidlist       IN   VARCHAR2,
6086
      isobsolete         IN   CHAR,
6087
      obsoletecomments   IN   VARCHAR2,
6088
      userid             IN   NUMBER
6089
   );
6090
 
6091
   PROCEDURE destroy_package (
6092
      pvid               IN       NUMBER,
6093
      overridewarnings   IN       CHAR DEFAULT 'N',
6094
      problemstring      OUT      VARCHAR2
6095
   );
6031 dpurdie 6096
 
6097
   PROCEDURE destroy_package_extended (
6098
      pvid               IN       NUMBER,
6099
      rtagid             IN       NUMBER,
6100
      overridewarnings   IN       NUMBER DEFAULT 0,
6101
      RESULTS            OUT      SYS_REFCURSOR
6102
);
1373 dpurdie 6103
   PROCEDURE add_process (
6104
      nprocid         IN   processes.proc_id%TYPE,
6105
      shealthtag      IN   processes.proc_name%TYPE,
6106
      sprocdesc       IN   processes.proc_description%TYPE,
6107
      scmdinterface   IN   processes.run_as%TYPE,
6108
      spkgowner       IN   processes.pkg_owner%TYPE,
6109
      sisinterface    IN   processes.is_interface%TYPE,
6110
      npvid           IN   package_processes.pv_id%TYPE,
6111
      nuserid         IN   NUMBER
6112
   );
6113
 
6114
   PROCEDURE add_package_process (
6115
      nprocidlist   IN   VARCHAR2,
6116
      npvid         IN   package_processes.pv_id%TYPE,
6117
      nuserid       IN   NUMBER
6118
   );
6119
 
6031 dpurdie 6120
 
6121
 
1373 dpurdie 6122
   PROCEDURE remove_process (
6123
      nprocid   IN   package_processes.proc_id%TYPE,
6124
      npvid     IN   package_processes.pv_id%TYPE,
6125
      nuserid   IN   NUMBER
6126
   );
6031 dpurdie 6127
 
1373 dpurdie 6128
   PROCEDURE move_package (
6129
   	  npvid  			  IN package_versions.pv_id%TYPE,
6130
	  nrtagid 			  IN release_tags.rtag_id%TYPE,
6131
	  nnewrtagid 		  IN release_tags.rtag_id%TYPE,
6031 dpurdie 6132
	  nuserid			  IN NUMBER
6133
   );
6134
 
3959 dpurdie 6135
   PROCEDURE modify_product_state (
1373 dpurdie 6136
   	  npvid IN package_versions.pv_id%TYPE,
3959 dpurdie 6137
	  nrtagid IN release_tags.rtag_id%TYPE,
1373 dpurdie 6138
	  nstateid IN product_states.state_id%TYPE,
6139
	  nuserid IN NUMBER
6140
   );
6031 dpurdie 6141
 
3959 dpurdie 6142
   PROCEDURE add_code_review_url (
6143
        npvid           IN    NUMBER,
6144
        nprojid         IN    NUMBER,
6145
        surl            IN    VARCHAR2,
6146
        sreason         IN    VARCHAR2,
4553 dpurdie 6147
        ddateofreview   IN    VARCHAR2
3959 dpurdie 6148
   );
6031 dpurdie 6149
 
3959 dpurdie 6150
   PROCEDURE update_code_review_url (
6151
        ncrid           IN    NUMBER,
6152
        nprojid         IN    NUMBER,
6153
        surl            IN    VARCHAR2,
4553 dpurdie 6154
        sreason         IN    VARCHAR2,
6155
        ddateofreview   IN    VARCHAR2
3959 dpurdie 6156
   );
6031 dpurdie 6157
 
3959 dpurdie 6158
   PROCEDURE remove_code_review_url (
6159
        ncrid           IN    NUMBER
6160
   );
6600 dpurdie 6161
 
6162
   PROCEDURE SET_RIPPLE_STOP (
6163
    nPVID IN RELEASE_CONTENT.PV_ID%TYPE,
6164
    nRtagId IN RELEASE_CONTENT.RTAG_ID%TYPE,
6165
    nUserId IN NUMBER,
6166
    cMode IN CHAR
6167
);
1373 dpurdie 6168
/*================================================================================================*/
3959 dpurdie 6169
END pk_package;
4040 dpurdie 6170
 
1374 dpurdie 6171
/
5892 dpurdie 6172
 
6031 dpurdie 6173
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
6174
  GRANT DEBUG ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 6175
--------------------------------------------------------
6176
--  DDL for Package PK_PLANNED
6177
--------------------------------------------------------
6178
 
5172 dpurdie 6179
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PLANNED" IS
1373 dpurdie 6180
/*
6181
------------------------------
6182
||  Last Modified:  G.Huddy
6183
||  Modified Date:  28/May/2008
6184
||  Spec Version:   1.1
6185
------------------------------
6186
*/
6187
 
6188
	TYPE typeCur IS REF CURSOR;
6189
 
6190
    /*================================================================================================*/
5384 dpurdie 6191
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, OPR IN CHAR DEFAULT 'R'  );
1373 dpurdie 6192
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6193
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
6194
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
6195
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
6196
	PROCEDURE MERGE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, mergeOperation IN CHAR);
6197
	/*================================================================================================*/
6198
 
6199
END PK_PLANNED;
4040 dpurdie 6200
 
1374 dpurdie 6201
/
4040 dpurdie 6202
--------------------------------------------------------
6203
--  DDL for Package PK_PROJECT
6204
--------------------------------------------------------
6205
 
5172 dpurdie 6206
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_PROJECT" IS
1373 dpurdie 6207
 
3959 dpurdie 6208
    TYPE typecur IS REF CURSOR;
1373 dpurdie 6209
 
3959 dpurdie 6210
    /*------------------------------------------------------------------------*/
6211
    PROCEDURE update_base_url (
6212
        nprojid   IN  projects.proj_id%TYPE,
6213
        sbaseurl  IN  VARCHAR2
6214
    );
6215
    /*------------------------------------------------------------------------*/
6216
    PROCEDURE update_project_config (
6217
    nprojid   IN  projects.proj_id%TYPE,
6218
    sbaseurl  IN  VARCHAR2,
6219
    sjirakey  IN  VARCHAR2
6220
    );
6221
    /*------------------------------------------------------------------------*/
1373 dpurdie 6222
 
3959 dpurdie 6223
    END pk_project;
4040 dpurdie 6224
 
1374 dpurdie 6225
/
4040 dpurdie 6226
--------------------------------------------------------
6227
--  DDL for Package PK_RELEASE
6228
--------------------------------------------------------
6229
 
5172 dpurdie 6230
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_RELEASE" IS
1373 dpurdie 6231
/*
6232
------------------------------
6233
||  Last Modified:  S.Vukovic
6234
||  Modified Date:  12/Sep/2005
6235
||  Body Version:   3.0
6236
------------------------------
6237
*/
6238
 
6239
	TYPE typeCur IS REF CURSOR;
6240
 
6241
    /*================================================================================================*/
5502 dpurdie 6242
	PROCEDURE New_Release ( sReleaseName IN VARCHAR2, sReleaseComments IN VARCHAR2, nProjId IN NUMBER, nSourceRtagId IN NUMBER, sIsBranched IN CHAR, nUserId IN NUMBER,cOfficial IN CHAR DEFAULT 'N' );
5384 dpurdie 6243
	PROCEDURE Update_Release ( nRtagId IN NUMBER, sReleaseName IN VARCHAR2, sReleaseComments IN VARCHAR2, nParentRtagId IN NUMBER, nMASSRtagId IN NUMBER, nConfigSpecBranch IN VARCHAR2, sOwnerEmail IN VARCHAR2, nUserId IN NUMBER, cState IN VARCHAR, nBuildAge in NUMBER,cLxr in CHAR );
1373 dpurdie 6244
	PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER  );
6245
	PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER );
5502 dpurdie 6246
	PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER,nMode IN NUMBER default 0 );
1373 dpurdie 6247
	PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER );
6248
	FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR ) RETURN NUMBER;
6249
	PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER );
5502 dpurdie 6250
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
1373 dpurdie 6251
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6252
	--PROCEDURE ADD_DEPRECATE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, nPkgId IN NUMBER );
6253
	PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6254
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6255
	PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6256
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
6257
	PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER );
6258
	PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER );
6259
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
6260
	PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 );
6261
	PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER );
6262
	PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR );
5172 dpurdie 6263
  PROCEDURE SET_RELEASE_MODIFIED (nRtagId IN NUMBER );
6264
  PROCEDURE ADD_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER, nUserId IN NUMBER, bDelete IN  NUMBER, nInsertCount OUT NUMBER, curReturn OUT typeCur );
6265
  PROCEDURE REMOVE_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER );
6266
  FUNCTION CAN_ADD_PKG_TO_RELEASE ( nRtagId IN NUMBER, nPvid in NUMBER ) RETURN NUMBER;
5502 dpurdie 6267
 
1373 dpurdie 6268
	/*================================================================================================*/
5384 dpurdie 6269
 
1373 dpurdie 6270
END PK_RELEASE;
4040 dpurdie 6271
 
1374 dpurdie 6272
/
4040 dpurdie 6273
--------------------------------------------------------
6274
--  DDL for Package PK_RMAPI
6275
--------------------------------------------------------
6276
 
5172 dpurdie 6277
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_RMAPI" 
3959 dpurdie 6278
IS
6279
   TYPE typecur IS REF CURSOR;
1373 dpurdie 6280
 
3959 dpurdie 6281
   FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)
6282
      RETURN typecur;
1373 dpurdie 6283
 
3959 dpurdie 6284
   FUNCTION wip_iteration_package (
6285
      projname        VARCHAR2,
6286
      iterationname   VARCHAR2,
6287
      pkgname         VARCHAR2
6288
   )
6289
      RETURN typecur;
1373 dpurdie 6290
 
3959 dpurdie 6291
   FUNCTION auto_make_vcsrelease (
6292
      rtagid                   IN   NUMBER,
6293
      pkgname                  IN   VARCHAR2,
6294
      vext                     IN   VARCHAR2,
6295
      newpkgversion            IN   VARCHAR2,
6296
      vcstag                   IN   VARCHAR2,
6297
      dependenciesimportlist   IN   VARCHAR2,
6298
      isrippled                IN   NUMBER,
6299
      username                 IN   VARCHAR2
6300
   )
6301
      RETURN NUMBER;
6600 dpurdie 6302
 
6303
FUNCTION auto_make_vcsrelease2 (
6304
      rtagid                   IN   NUMBER,
6305
      pkgname                  IN   VARCHAR2,
6306
      vext                     IN   VARCHAR2,
6307
      newpkgversion            IN   VARCHAR2,
6308
      vcstag                   IN   VARCHAR2,
6309
      dependenciesimportlist   IN   relmgr_varchar2_tab_t,
6310
      isrippled                IN   NUMBER,
6311
      username                 IN   VARCHAR2
6312
   )      
6313
      RETURN NUMBER;
1373 dpurdie 6314
 
3959 dpurdie 6315
   PROCEDURE import_dependencies (
6316
      pvid                     IN   NUMBER,
6317
      dependenciesimportlist   IN   VARCHAR2,
6318
      userid                   IN   NUMBER
6319
   );
6600 dpurdie 6320
 
6321
    PROCEDURE import_dependencies2 (
6322
    pvid                     IN   NUMBER,
6323
    dependenciesimportlist   IN   relmgr_varchar2_tab_t,
6324
    userid                   IN   NUMBER
6325
    );
1373 dpurdie 6326
 
3959 dpurdie 6327
   FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)
6328
      RETURN VARCHAR2;
1373 dpurdie 6329
 
3959 dpurdie 6330
   FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)
6331
      RETURN VARCHAR2;
1373 dpurdie 6332
 
3959 dpurdie 6333
   PROCEDURE update_dash_board (rtagid IN NUMBER);
1373 dpurdie 6334
 
3959 dpurdie 6335
   FUNCTION exclude_from_build (
6336
      pvid          IN   NUMBER,
6337
      spkgversion   IN   VARCHAR2,
6338
      rtagid        IN   NUMBER,
6339
      username      IN   VARCHAR2
6340
   )
6341
      RETURN NUMBER;
1373 dpurdie 6342
 
3959 dpurdie 6343
   FUNCTION exclude_indirect_from_build (
6344
      pvid          IN   NUMBER,
6345
      spkgversion   IN   VARCHAR2,
6346
      rtagid        IN   NUMBER,
6347
      username      IN   VARCHAR2,
6348
      rootpvid      IN   NUMBER,
6349
      rootcause     IN   VARCHAR2,
6350
      rootfile      IN   VARCHAR2
6351
   )
6352
      RETURN NUMBER;
1373 dpurdie 6353
 
3959 dpurdie 6354
   PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2);
1373 dpurdie 6355
 
3959 dpurdie 6356
   FUNCTION insert_package_metrics (
6357
      rtagid IN NUMBER,
6358
      pkgname IN VARCHAR2,
6359
      vext IN VARCHAR2,
6360
      metricstring IN VARCHAR2
6361
   )
6362
      RETURN NUMBER;
1373 dpurdie 6363
 
3959 dpurdie 6364
   PROCEDURE update_release_metrics (rtagid IN NUMBER);
1373 dpurdie 6365
 
3959 dpurdie 6366
   FUNCTION return_vcs_tag(pvid IN NUMBER) RETURN VARCHAR2;
6367
 
6368
   PROCEDURE update_vcs_details(ipv_id IN NUMBER, vcstag IN VARCHAR2, user_id IN NUMBER);
6031 dpurdie 6369
 
3959 dpurdie 6370
   FUNCTION isSVN( pkgid IN NUMBER ) RETURN NUMBER;
6031 dpurdie 6371
 
3959 dpurdie 6372
   FUNCTION isSVNbyName( pkgname IN VARCHAR2 ) RETURN NUMBER;
6373
 
5172 dpurdie 6374
   FUNCTION new_build_instance( rtag_id IN NUMBER, pv_id IN NUMBER, reason IN CHAR ) return NUMBER;
6031 dpurdie 6375
 
5172 dpurdie 6376
   FUNCTION update_build_instance( nbuild_id IN NUMBER, npv_id IN NUMBER default null, nstate IN CHAR default null ) return NUMBER;
6031 dpurdie 6377
 
5172 dpurdie 6378
   FUNCTION insert_test_run( build_id IN NUMBER, name IN VARCHAR2, outcome IN VARCHAR2, platform IN VARCHAR2, stype IN VARCHAR2, duration IN NUMBER default null, message IN CLOB default null) return NUMBER;
6379
 
6380
 
3959 dpurdie 6381
END pk_rmapi;
4040 dpurdie 6382
 
1374 dpurdie 6383
/
5892 dpurdie 6384
 
6031 dpurdie 6385
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "RM_READONLY";
6386
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "MS_READONLY";
5892 dpurdie 6387
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "DM_READONLY";
4040 dpurdie 6388
--------------------------------------------------------
6389
--  DDL for Package PK_WORK_IN_PROGRESS
6390
--------------------------------------------------------
6391
 
5172 dpurdie 6392
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS
1373 dpurdie 6393
/*
6394
------------------------------
6395
||  Last Modified:  S.Vukovic
3959 dpurdie 6396
||  Modified Date:  2/May/2005
6397
||  Spec Version:   1.0
1373 dpurdie 6398
------------------------------
6399
*/
6400
 
6401
	TYPE typeCur IS REF CURSOR;
6402
 
6403
    /*================================================================================================*/
6404
	PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
6405
	PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER );
3959 dpurdie 6406
	PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER );
6407
 
1373 dpurdie 6408
	FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER;
6031 dpurdie 6409
	PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur );
1373 dpurdie 6410
	PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER );
6411
	/*================================================================================================*/
3959 dpurdie 6412
 
6413
END PK_WORK_IN_PROGRESS;
4040 dpurdie 6414
 
1374 dpurdie 6415
/
4040 dpurdie 6416
--------------------------------------------------------
6417
--  DDL for Package RM_ISSUES
6418
--------------------------------------------------------
6419
 
5172 dpurdie 6420
  CREATE OR REPLACE PACKAGE "RELEASE_MANAGER"."RM_ISSUES" AS
1373 dpurdie 6421
 
3959 dpurdie 6422
	TYPE T_Cur IS REF CURSOR;
1373 dpurdie 6423
 
3959 dpurdie 6424
	FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;
6425
	FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBER;
6426
	FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER;
6427
	FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBER;
1373 dpurdie 6428
 
3959 dpurdie 6429
	PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );
6430
	PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 );
6431
	PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 );
1373 dpurdie 6432
 
3959 dpurdie 6433
END Rm_Issues;
4040 dpurdie 6434
 
3959 dpurdie 6435
/
4040 dpurdie 6436
--------------------------------------------------------
6437
--  DDL for Package Body PK_APP_UTILS
6438
--------------------------------------------------------
6439
 
5172 dpurdie 6440
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_APP_UTILS" IS
1373 dpurdie 6441
 
3959 dpurdie 6442
/*
6443
------------------------------
6444
||  Last Modified:  S.Vukovic
6445
||  Modified Date:  26/Apr/2005
6446
||  Body Version:   1.0
6447
------------------------------
6448
*/
1373 dpurdie 6449
 
6450
 
6451
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 6452
PROCEDURE GET_CURRENT_PARAMETERS ( ProjId IN VARCHAR2, RtagId IN VARCHAR2, records OUT typeCur)   IS
1373 dpurdie 6453
 
6454
 
6455
BEGIN
6456
 
6457
 
3959 dpurdie 6458
	IF (NOT RtagId IS NULL) THEN
6459
		-- Case with RTAG_ID present
6460
		OPEN records FOR
6461
		SELECT rt.PROJ_ID,
6462
			   rt.RTAG_ID AS RTAG_ID
6463
		  FROM RELEASE_TAGS rt
6464
		 WHERE rt.RTAG_ID = TO_NUMBER(RtagId);
1373 dpurdie 6465
 
3959 dpurdie 6466
	ELSIF (NOT ProjId IS NULL) THEN
6467
		-- Case with PROJ_ID present
6468
		OPEN records FOR
6469
		SELECT TO_NUMBER(ProjId) AS PROJ_ID,
6470
			   -1 AS RTAG_ID
6471
		  FROM DUAL;
1373 dpurdie 6472
 
3959 dpurdie 6473
	ELSE
6474
		-- Case with none present
6475
		OPEN records FOR
6476
		SELECT -1 AS PROJ_ID,
6477
			   -1 AS RTAG_ID
6478
		  FROM DUAL;
1373 dpurdie 6479
 
3959 dpurdie 6480
	END IF;
1373 dpurdie 6481
 
6482
 
6483
 
6484
 
3959 dpurdie 6485
   	--RETURN records;
1373 dpurdie 6486
 
6487
END;
6488
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 6489
END PK_APP_UTILS;
4040 dpurdie 6490
 
1374 dpurdie 6491
/
4040 dpurdie 6492
 
5892 dpurdie 6493
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_APP_UTILS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 6494
--------------------------------------------------------
6495
--  DDL for Package Body PK_BUILDAPI
6496
--------------------------------------------------------
6497
 
5172 dpurdie 6498
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_BUILDAPI" 
1373 dpurdie 6499
IS
6500
   /*-------------------------------------------------------------------------------------------------------*/
6501
   PROCEDURE add_product_component (
6502
      npvid           IN   NUMBER,
6503
      sosname         IN   VARCHAR2,
6504
      sorigfilepath   IN   VARCHAR2,
6505
      sfilename       IN   VARCHAR2,
6506
      sdestfilepath   IN   VARCHAR2,
6507
      nbytesize       IN   NUMBER,
6508
      scrccksum       IN   VARCHAR2
6509
   )
6510
   IS
6511
      nosid   NUMBER;
6512
   BEGIN
6513
      /*--------------- Business Rules Here -------------------*/
6514
      -- OS Name Requirements --
6515
      IF (sosname IS NULL)
6516
      THEN
6517
         raise_application_error (-20000, 'OsName cannot be NULL.');
6518
      END IF;
6519
 
6520
      -- File Requirements --
6521
      IF (NOT sfilename IS NULL)
6522
      THEN
6523
         IF (nbytesize IS NULL)
6524
         THEN
6525
            raise_application_error (-20000, 'Byte Size cannot be NULL.');
6526
         ELSIF (scrccksum IS NULL)
6527
         THEN
6528
            raise_application_error (-20000, 'CRC CKSUM cannot be NULL.');
6529
         END IF;
6530
      END IF;
6531
 
6532
      -- Folder Requirements --
6533
      -- No requirements for now.
6534
 
6535
      /*-------------------------------------------------------*/
6536
 
6537
      -- Get OsId
6538
      nosid := get_osid (sosname);
6539
 
6540
      -- Insert component entry
6541
      INSERT INTO product_components
6542
                  (pv_id, os_id, file_path, file_name, destination_path,
6543
                  byte_size, crc_cksum
6544
                  )
6545
         VALUES (npvid, nosid, sorigfilepath, sfilename, sdestfilepath,
6546
                  nbytesize, scrccksum
6547
                  );
6548
   EXCEPTION
6549
      WHEN DUP_VAL_ON_INDEX
6550
      THEN
6551
         raise_application_error (-20000,
6552
                                 'Cannot have duplicate product components.'
6553
                                 );
6554
   END;
6555
 
6556
/*-------------------------------------------------------------------------------------------------------*/
6557
   PROCEDURE remove_all_product_components (
6558
      npvid     IN   NUMBER,
6559
      sosname   IN   VARCHAR2
6560
   )
6561
   IS
6562
      nosid   NUMBER;
6563
   BEGIN
6564
/*--------------- Business Rules Here -------------------*/
6565
/*-------------------------------------------------------*/
6566
 
6567
      -- Get OsId
6568
      nosid := get_osid (sosname);
6569
 
6570
      -- Delete component entry
6571
      DELETE FROM product_components pc
6572
            WHERE pc.pv_id = npvid AND pc.os_id = nosid;
6573
   END;
6574
 
6575
/*-------------------------------------------------------------------------------------------------------*/
6576
   FUNCTION get_osid (sosname IN VARCHAR2)
6577
      RETURN NUMBER
6578
   IS
6579
      code   NUMBER;
6580
   BEGIN
6581
      -- Get Platform Code --
6582
      SELECT pf.code
6583
      INTO code
6584
      FROM platforms pf
6585
      WHERE UPPER (pf.NAME) = UPPER (sosname);
6586
 
6587
      RETURN code;
6588
   EXCEPTION
6589
      WHEN NO_DATA_FOUND
6590
      THEN
6591
         raise_application_error
6592
            (-20000,
6593
               'Platform '
6594
            || sosname
6595
            || ' is not valid. It needs to be added to PLATFORMS table in Release Manager.'
6596
            );
6597
         RAISE;
6598
   END;
6599
 
6600
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 6601
 PROCEDURE update_build_service_info (
1373 dpurdie 6602
      sdatabaseserver   IN   VARCHAR2,
6603
      sarchiveserver    IN   VARCHAR2,
6604
      smailserver       IN   VARCHAR2,
6605
      smailsender       IN   VARCHAR2,
4211 dpurdie 6606
      faultmlist        IN   VARCHAR2,
1373 dpurdie 6607
      sdiskspace        IN   VARCHAR2,
6600 dpurdie 6608
      ssbommanagement   IN   VARCHAR2,
6609
      lxrserver         IN   VARCHAR2
1373 dpurdie 6610
   )
6611
   IS
6612
   BEGIN
6613
      UPDATE build_service_config
6614
         SET config = sdatabaseserver
6615
      WHERE service = 'DATABASE SERVER';
6616
 
6617
      UPDATE build_service_config
6618
         SET config = sarchiveserver
6619
      WHERE service = 'ARCHIVE SERVER';
6620
 
6621
      UPDATE build_service_config
6622
         SET config = smailserver
6623
      WHERE service = 'MAIL SERVER';
6624
 
6625
      UPDATE build_service_config
6626
         SET config = smailsender
6627
      WHERE service = 'BUILD FAILURE MAIL SENDER';
6628
 
6629
      UPDATE build_service_config
4211 dpurdie 6630
         SET config = faultmlist
6631
      WHERE service = 'FAULT EMAIL ADDRESS LIST';
6031 dpurdie 6632
 
4211 dpurdie 6633
      UPDATE build_service_config
1373 dpurdie 6634
         SET config = sdiskspace
6635
      WHERE service = 'DPKG_ARCHIVE DISK SPACE USED';
6636
 
6637
      UPDATE build_service_config
6638
         SET config = ssbommanagement
6639
      WHERE service = 'SBOM MANAGEMENT';
6600 dpurdie 6640
 
6641
      UPDATE build_service_config
6642
         SET config = lxrserver
6643
      WHERE service = 'LXR SERVER';
1373 dpurdie 6644
   END;
6645
 
6646
 
6031 dpurdie 6647
 
1373 dpurdie 6648
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 6649
   PROCEDURE add_gbe_machtype (sgbevalue IN VARCHAR2, sgbeclass IN NUMBER)
1373 dpurdie 6650
   IS
6651
      gbe_id   NUMBER;
6652
   BEGIN
6653
      -- Get GBE_ID
6654
      SELECT seq_gbe_id.NEXTVAL
6655
      INTO gbe_id
6656
      FROM DUAL;
6657
 
6658
      INSERT INTO gbe_machtype
4040 dpurdie 6659
                  (gbe_id, gbe_value, bm_id )
6660
         VALUES (gbe_id, sgbevalue, sgbeclass );
1373 dpurdie 6661
   END;
6662
 
6663
/*-------------------------------------------------------------------------------------------------------*/
6664
   PROCEDURE remove_gbe_machtype (ngbe_id IN NUMBER)
6665
   IS
6666
   BEGIN
6667
      DELETE FROM gbe_machtype
6668
            WHERE gbe_id = ngbe_id;
6669
   END;
6670
 
6671
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 6672
   PROCEDURE update_gbe_machtype (ngbe_id IN NUMBER, sgbevalue IN VARCHAR2, sgbeclass IN NUMBER)
1373 dpurdie 6673
   IS
6674
   BEGIN
6675
      UPDATE gbe_machtype
4040 dpurdie 6676
         SET gbe_value = sgbevalue,
6677
             bm_id = sgbeclass
1373 dpurdie 6678
      WHERE gbe_id = ngbe_id;
6679
   END;
6680
 
6681
/*-------------------------------------------------------------------------------------------------------*/
4040 dpurdie 6682
PROCEDURE add_buildmachine (sbmvalue IN VARCHAR2)
6683
   IS
6684
      bm_id   NUMBER;
6685
   BEGIN
6686
      -- Get BM_ID
6687
      SELECT seq_bm_id.NEXTVAL
6688
      INTO bm_id
6689
      FROM DUAL;
6690
 
6691
      INSERT INTO build_machines
6692
                  (bm_id, bm_name)
6693
         VALUES (bm_id, sbmvalue );
6694
   END;
6695
 
6696
/*-------------------------------------------------------------------------------------------------------*/
6697
   PROCEDURE remove_buildmachine (nbm_id IN NUMBER)
6698
   IS
6699
   BEGIN
6700
      DELETE FROM build_machines
6701
            WHERE bm_id = nbm_id;
6702
   END;
6703
 
6704
/*-------------------------------------------------------------------------------------------------------*/
6031 dpurdie 6705
   PROCEDURE update_buildmachine (nbm_id IN NUMBER, sbmvalue IN VARCHAR2)
4040 dpurdie 6706
   IS
6707
   BEGIN
6708
      UPDATE build_machines
6709
         SET bm_name = sbmvalue
6710
         WHERE bm_id = nbm_id;
6711
   END;
6712
 
6713
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 6714
   PROCEDURE delete_daemon (srconidlist IN VARCHAR2)
6715
   IS
6716
   BEGIN
6717
      -- Entries in the daemon_action_log, run_level and abt_action_log tables must be deleted first.
6718
      DELETE FROM daemon_action_log
6719
            WHERE rcon_id IN (
6720
                     SELECT *
6721
                     FROM THE
6722
                              (SELECT CAST
6723
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6724
                                          )
6725
                                 FROM DUAL
6726
                              ));
6727
 
6728
      DELETE FROM run_level
6729
            WHERE rcon_id IN (
6730
                     SELECT *
6731
                     FROM THE
6732
                              (SELECT CAST
6733
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6734
                                          )
6735
                                 FROM DUAL
6736
                              ));
6737
 
6738
      DELETE FROM abt_action_log
6739
            WHERE rcon_id IN (
6740
                     SELECT *
6741
                     FROM THE
6742
                              (SELECT CAST
6743
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6744
                                          )
6745
                                 FROM DUAL
6746
                              ));
6747
 
6748
      -- Once entries in daemon_action_log, run_level and abt_action_log are removed, the daemon is deleted.
6749
      DELETE FROM release_config
6750
            WHERE rcon_id IN (
6751
                     SELECT *
6752
                     FROM THE
6753
                              (SELECT CAST
6754
                                          (in_list_number (srconidlist) AS relmgr_number_tab_t
6755
                                          )
6756
                                 FROM DUAL
6757
                              ));
6758
   END;
6759
 
6760
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 6761
   PROCEDURE remove_daemon (srconidlist IN VARCHAR2)
1373 dpurdie 6762
   IS
4308 dpurdie 6763
   oRconIdList RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
6764
 
1373 dpurdie 6765
   BEGIN
6031 dpurdie 6766
 
4308 dpurdie 6767
   oRconIdList := IN_LIST_NUMBER ( srconidlist );
6768
 
6769
      -- Break the linkage between the release_config and the build_machine_config
6031 dpurdie 6770
 
4308 dpurdie 6771
      -- Delete the linkage between the two tables.
6772
       UPDATE release_config
6773
         SET daemon_hostname = NULL,
6031 dpurdie 6774
             bmcon_id = NULL
4308 dpurdie 6775
      WHERE rcon_id IN ( SELECT * FROM TABLE ( CAST ( oRconIdList AS RELMGR_NUMBER_TAB_t ) ) );
1373 dpurdie 6776
   END;
6777
 
6778
/*-------------------------------------------------------------------------------------------------------*/
6779
   PROCEDURE insert_schedule_info (
6780
      dschedulepause     IN   DATE,
6781
      dscheduleresume    IN   DATE,
6782
      crepeat            IN   VARCHAR2,
6783
      cindefinitepause   IN   VARCHAR2
6784
   )
6785
   IS
6786
      nscheduledid   NUMBER;
6787
   BEGIN
6788
      -- Get Next Available Scheduled Id
6789
      SELECT seq_scheduled_id.NEXTVAL
6790
      INTO nscheduledid
6791
      FROM DUAL;
6792
 
6793
      INSERT INTO run_level_schedule
6794
         VALUES (nscheduledid, dschedulepause, dscheduleresume, crepeat,
6795
                  cindefinitepause);
6796
   END;
6797
 
6798
/*-------------------------------------------------------------------------------------------------------*/
6799
   PROCEDURE delete_schedule (nscheduleid IN NUMBER)
6800
   IS
6801
   BEGIN
6802
      DELETE FROM run_level_schedule
6803
            WHERE scheduled_id = nscheduleid;
6804
   END;
6805
 
6806
/*-------------------------------------------------------------------------------------------------------*/
6807
   PROCEDURE set_infinite_pause
6808
   IS
6809
      nscheduledid   NUMBER;
6810
   BEGIN
6811
      -- Get Next Available Scheduled Id
6812
      SELECT seq_scheduled_id.NEXTVAL
6813
      INTO nscheduledid
6814
      FROM DUAL;
6815
 
6816
      INSERT INTO run_level_schedule
5172 dpurdie 6817
         VALUES (nscheduledid, ora_sysdatetime, NULL, NULL, 'P');
1373 dpurdie 6818
   END;
6031 dpurdie 6819
 
5172 dpurdie 6820
/*-------------------------------------------------------------------------------------------------------*/
6821
   PROCEDURE set_finite_pause (duration IN NUMBER)
6822
   IS
6823
      nscheduledid   NUMBER;
6824
      currentDate    DATE := ora_sysdatetime;
6825
   BEGIN
6031 dpurdie 6826
 
5172 dpurdie 6827
      -- Get Next Available Scheduled Id
6828
      SELECT seq_scheduled_id.NEXTVAL
6829
      INTO nscheduledid
6830
      FROM DUAL;
1373 dpurdie 6831
 
5172 dpurdie 6832
      INSERT INTO run_level_schedule
6833
         VALUES (nscheduledid, currentDate, currentDate + duration/(24*60), 0, 'F');
6031 dpurdie 6834
      COMMIT;
6835
 
5172 dpurdie 6836
      -- Ensure that we have only ONE finite pause by deleting all old ones
6837
      -- Under race conditions the last one wins
6031 dpurdie 6838
      DELETE FROM run_level_schedule
5172 dpurdie 6839
        WHERE SCHEDULED_ID < nscheduledid
6840
        AND INDEFINITE_PAUSE = 'F';
6031 dpurdie 6841
   END;
5172 dpurdie 6842
 
1373 dpurdie 6843
/*-------------------------------------------------------------------------------------------------------*/
6844
   PROCEDURE set_resume
6845
   IS
6846
   BEGIN
6847
      DELETE FROM run_level_schedule
5172 dpurdie 6848
            WHERE indefinite_pause in ('F', 'P' );
1373 dpurdie 6849
   END;
6850
 
6851
/*-------------------------------------------------------------------------------------------------------*/
6852
   PROCEDURE delete_out_of_date_schedule
6853
   IS
6854
   BEGIN
6855
      DELETE FROM run_level_schedule
6856
            WHERE scheduled_resume < ora_sysdatetime AND repeat = 0;
6857
   END;
6858
 
6859
/*-------------------------------------------------------------------------------------------------------*/
6860
   PROCEDURE set_daemon_resume (nrconid IN NUMBER)
6861
   IS
6862
   BEGIN
6863
      UPDATE run_level
6864
         SET PAUSE = NULL
6865
      WHERE rcon_id = nrconid;
6866
   END;
6867
 
6868
/*-------------------------------------------------------------------------------------------------------*/
6869
   PROCEDURE set_daemon_pause (nrconid IN NUMBER)
6870
   IS
6871
   BEGIN
6872
      UPDATE run_level
6873
         SET PAUSE = 1
6874
      WHERE rcon_id = nrconid;
6875
   END;
6876
/*-------------------------------------------------------------------------------------------------------*/
6877
   PROCEDURE set_daemon_disable (nrconid NUMBER)
6878
   IS
6879
   BEGIN
6880
      UPDATE run_level
6881
         SET PAUSE = 2
6882
      WHERE rcon_id = nrconid;
6883
   END;
6884
 
6885
/*-------------------------------------------------------------------------------------------------------*/
6886
   PROCEDURE set_daemon_states (nrtagid NUMBER, nstate NUMBER)
6887
   IS
6888
   BEGIN
6889
     UPDATE run_level
6890
     SET pause = nstate
6891
     WHERE rcon_id IN
6892
     (SELECT rc.rcon_id FROM release_config rc WHERE rc.rtag_id = nrtagid);
6893
   END;
6894
 
6895
/*-------------------------------------------------------------------------------------------------------*/
6896
   -- inserts a new daemon instruction
6897
   -- This is for use by the Release Manager Website code.
6898
   --
6899
   PROCEDURE insert_daemon_inst
6900
   ( nOp_code IN NUMBER
6901
   , nRtag_id IN NUMBER
6902
   , nPv_id IN NUMBER
6903
   , nSchedDate IN DATE
6904
   , nRepeatSecs IN NUMBER
6905
   , nAddedDate IN DATE
6906
   , nUser_id IN NUMBER
6907
   ) IS
6908
      nInstId   NUMBER;
6909
   BEGIN
6910
      -- Get Next Available Scheduled Id
6911
      SELECT seq_daemon_instruction_id.NEXTVAL
6912
      INTO nInstId
6913
      FROM DUAL;
6914
 
6915
      INSERT INTO Daemon_Instructions
6916
         VALUES (nInstId, nOp_code, nRtag_id,
6917
                  nPv_id, nSchedDate, nRepeatSecs,
6918
                  nAddedDate, nUser_id, '0');
6031 dpurdie 6919
 
6920
   -- Mark the Release as modified for build purposes
6921
   PK_RELEASE.SET_RELEASE_MODIFIED(nRtag_id);
6922
 
1373 dpurdie 6923
   EXCEPTION
6924
      WHEN DUP_VAL_ON_INDEX
6925
      THEN
6926
         raise_application_error (-20000,
6927
                                 'Table already contains a record with the specified OPERATION, RELEASE, and PACKAGE VERSION'
6928
                                 );
6929
      WHEN OTHERS
6930
      THEN
6931
         raise;
5172 dpurdie 6932
 
1373 dpurdie 6933
   END insert_daemon_inst;
6934
 
6935
/*-------------------------------------------------------------------------------------------------------*/
6936
   -- Deletes a daemon instruction matching the specified instruction ID
6937
   --
6938
   PROCEDURE del_daemon_inst
6939
   ( nInstId IN NUMBER
6940
   ) IS
6941
 
6942
   BEGIN
6943
      DELETE FROM Daemon_Instructions
6944
      WHERE DAEMON_INSTRUCTIONS_ID = nInstId;
6945
 
6946
   END del_daemon_inst;
6947
 
6948
/*-------------------------------------------------------------------------------------------------------*/
6949
   -- Deletes a daemon instruction matching the specified op-code, ratag, and pv_id
6950
   --
6951
   PROCEDURE del_daemon_inst_by_rtag_pvid(
6952
      nOp_code IN NUMBER,
6953
      nRtag_id IN NUMBER,
6954
      nPv_id IN NUMBER
6955
   ) IS
6956
   BEGIN
6957
      DELETE FROM Daemon_Instructions
6958
      WHERE OP_CODE = nOp_code
6959
      AND RTAG_ID = nRtag_id
6960
      AND PV_ID   = nPv_id;
6961
 
6962
   END del_daemon_inst_by_rtag_pvid;
6963
 
6964
/*-------------------------------------------------------------------------------------------------------*/
6965
   -- Updates a daemon instruction
6966
   -- This is for use by the Release Manager Website code.
6967
   --
6968
   PROCEDURE update_daemon_inst
6969
   ( nInstId IN NUMBER
6970
   , nOp_code IN NUMBER
6971
   , nRtag_id IN NUMBER
6972
   , nPv_id IN NUMBER
6973
   , nSchedDate IN DATE
6974
   , nRepeatSecs IN NUMBER
6975
   , nAddedDate IN DATE
6976
   , nUser_id IN NUMBER
6977
   ) IS
6978
      CURSOR daemon_inst_cur IS
6979
         SELECT *
6980
         FROM daemon_instructions di
6981
         WHERE di.DAEMON_INSTRUCTIONS_ID = nInstId;
6982
 
6983
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
6984
 
6985
      exc_inst_removed EXCEPTION;
6986
   BEGIN
6987
      OPEN daemon_inst_cur;
6988
 
6989
      FETCH daemon_inst_cur
6990
      INTO daemon_inst_rec;
6991
 
6992
      IF daemon_inst_cur%FOUND THEN
6993
 
6994
         UPDATE Daemon_Instructions
6995
         SET op_code = nOp_code,
6996
            rtag_id = nRtag_id,
6997
            pv_id   = nPv_id,
6998
            scheduled_datetime = nSchedDate,
6999
            repeat_secs = nRepeatSecs,
7000
            added_datetime = nAddedDate,
7001
            user_id = nUser_id,
7002
            in_progress = '0'
7003
         WHERE daemon_instructions_id = nInstId;
7004
      ELSE
7005
         raise exc_inst_removed;
7006
      END IF;
7007
 
7008
      CLOSE daemon_inst_cur;
6031 dpurdie 7009
 
7010
      -- Mark the Release as modified for build purposes
7011
      PK_RELEASE.SET_RELEASE_MODIFIED(nRtag_id);
7012
 
1373 dpurdie 7013
   EXCEPTION
7014
      WHEN DUP_VAL_ON_INDEX
7015
      THEN
7016
         raise_application_error (-20000,
7017
                                 'Table already contains a record with the specified OPERATION, RELEASE, and PACKAGE VERSION'
7018
                                 );
7019
      WHEN exc_inst_removed
7020
      THEN
7021
         raise_application_error (-20000,
7022
                                 'Record was probably deleted by the Buildtool during your edit-form session. Please create a new Daemon Instruction.'
7023
                                 );
7024
      WHEN OTHERS
7025
      THEN
7026
         raise;
5172 dpurdie 7027
 
1373 dpurdie 7028
   END update_daemon_inst;
7029
 
7030
/*-------------------------------------------------------------------------------------------------------*/
7031
   -- Returns a comma-separated list of operation codes found for a given rtag and pv_id combination
7032
   -- This is for use by the Release Manager Website code.
7033
   --
7034
   FUNCTION daemon_ops_for_rtag_pvid(
7035
      nRtag_id IN NUMBER,
7036
      nPv_id IN NUMBER
7037
   ) RETURN VARCHAR2
7038
   IS
7039
      CURSOR daemon_inst_cur IS
7040
         SELECT di.OP_CODE
7041
         FROM daemon_instructions di
7042
         WHERE di.RTAG_ID = nRtag_id
7043
            AND di.PV_ID = nPv_id;
7044
 
7045
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
7046
 
7047
      sRetList VARCHAR2(4000) := '';
7048
 
7049
   BEGIN
7050
      OPEN daemon_inst_cur;
7051
 
7052
      FETCH daemon_inst_cur
7053
      INTO daemon_inst_rec;
7054
 
7055
      WHILE daemon_inst_cur%FOUND
7056
      LOOP
7057
         sRetList := sRetList || daemon_inst_rec.op_code || ',';
7058
 
7059
         FETCH daemon_inst_cur
7060
         INTO daemon_inst_rec;
7061
      END LOOP;
7062
 
7063
      CLOSE daemon_inst_cur;
7064
 
7065
      RETURN sRetList;
7066
   END daemon_ops_for_rtag_pvid;
7067
/*-------------------------------------------------------------------------------------------------------*/
7068
   -- Returns a comma-separated list of operation codes found for a given rtag
7069
   -- This is for use by the Release Manager Website code.
7070
   --
7071
   FUNCTION daemon_ops_for_rtag(
7072
      nRtag_id IN NUMBER
7073
   ) RETURN VARCHAR2
7074
   IS
7075
      CURSOR daemon_inst_cur IS
7076
         SELECT di.OP_CODE
7077
         FROM daemon_instructions di
7078
         WHERE di.RTAG_ID = nRtag_id;
7079
 
7080
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
7081
 
7082
      sRetList VARCHAR2(4000) := '';
7083
 
7084
   BEGIN
7085
      OPEN daemon_inst_cur;
7086
 
7087
      FETCH daemon_inst_cur
7088
      INTO daemon_inst_rec;
7089
 
7090
      WHILE daemon_inst_cur%FOUND
7091
      LOOP
7092
         sRetList := sRetList || daemon_inst_rec.op_code || ',';
7093
 
7094
         FETCH daemon_inst_cur
7095
         INTO daemon_inst_rec;
7096
      END LOOP;
7097
 
7098
      CLOSE daemon_inst_cur;
7099
 
7100
      RETURN sRetList;
7101
   END daemon_ops_for_rtag;
7102
/*-------------------------------------------------------------------------------------------------------*/
7103
   -- Gets a record from the daemon instruction table that can be carried out now and returns the fields
7104
   -- in the record a daemon will need
7105
   -- The Buildtool should use this to find a job to do for a particular release. It should then call
7106
   -- mark_daemon_inst_in_progress(inst_id) before carrying out the work, and then call
7107
   -- mark_daemon_inst_completed(inst_id) to signal its completion.
7108
   -- Can be called repeatedly to get a full list of all instructions for a release, by passing back in
7109
   -- the instruction ID obtained from the previous call (the 1st call should use 0)
7110
   -- Can be called repeatedly to get a full list of all instructions of a specific op-code value for a release,
7111
   -- by passing back in an op-code value of 0 or higher (use -1 if no op-code filtering is needed)
7112
   -- Returns 1 if a record was found, else 0.
7113
   --
7114
   FUNCTION get_daemon_inst(
7115
      nRtag_id IN NUMBER,
7116
      nInst_id IN OUT NUMBER,
7117
      nOp_code IN OUT NUMBER,
7118
      nPv_id OUT NUMBER,
7119
      nUser_id OUT NUMBER,
7120
      nInProgress OUT NUMBER
7121
   ) RETURN NUMBER
7122
   IS
7123
      CURSOR daemon_inst_cur IS
7124
         SELECT di.daemon_instructions_id, di.op_code, di.pv_id ,di.user_id, di.in_progress
7125
           FROM daemon_instructions di
7126
          WHERE di.rtag_id = nRtag_id
7127
            AND di.daemon_instructions_id > nInst_id
7128
            AND di.scheduled_datetime <= ora_sysdatetime
7129
            AND ((nOp_code = -1) OR (nOp_code = di.op_code))
7130
            AND rownum <= 1
7131
       ORDER BY di.daemon_instructions_id;
7132
 
7133
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
7134
   BEGIN
7135
      OPEN daemon_inst_cur;
7136
 
7137
      FETCH daemon_inst_cur
7138
      INTO daemon_inst_rec;
7139
 
7140
      -- If we found a record, return it.
7141
      IF daemon_inst_cur%FOUND THEN
7142
         nInst_id := daemon_inst_rec.daemon_instructions_id;
7143
         nOp_code := daemon_inst_rec.op_code;
7144
         nPv_id   := daemon_inst_rec.pv_id;
7145
         nUser_id := daemon_inst_rec.user_id;
7146
         IF daemon_inst_rec.in_progress = '1' THEN
7147
            nInProgress := 1;
7148
         ELSE
7149
            nInProgress := 0;
7150
         END IF;
7151
         CLOSE daemon_inst_cur;
7152
         RETURN 1;
7153
      END IF;
7154
 
7155
      CLOSE daemon_inst_cur;
7156
      RETURN 0;
7157
 
7158
   END get_daemon_inst;
7159
/*-------------------------------------------------------------------------------------------------------*/
7160
   -- Marks a daemon instruction as being processed by a daemon
7161
   -- The Buildtool should use this before it embarks on the work the instruction commands
7162
   --
7163
   PROCEDURE mark_daemon_inst_in_progress( nInstId IN NUMBER )
7164
   IS
7165
   BEGIN
7166
      UPDATE Daemon_Instructions
7167
      SET in_progress = '1'
7168
      WHERE daemon_instructions_id = nInstId;
7169
 
7170
   END mark_daemon_inst_in_progress;
7171
 
7172
/*-------------------------------------------------------------------------------------------------------*/
7173
   -- Once the Buildtool has finished carrying out the daemon instruction, it should call this stored
7174
   -- procedure in order to either delete the instruction or update it in the case where it is a repeating
7175
   -- instruction.
7176
   --
7177
   PROCEDURE mark_daemon_inst_completed( nInstId IN NUMBER )
7178
   IS
7179
      repSecs NUMBER;
7180
      schedDate  DATE;
7181
 
7182
      CURSOR daemon_inst_cur IS
7183
         SELECT di.REPEAT_SECS AS repSecs, di.SCHEDULED_DATETIME AS schedDate
7184
         FROM daemon_instructions di
7185
         WHERE di.daemon_instructions_id = nInstId;
7186
 
7187
      daemon_inst_rec   daemon_inst_cur%ROWTYPE;
7188
   BEGIN
7189
      OPEN daemon_inst_cur;
7190
 
7191
      FETCH daemon_inst_cur
7192
      INTO daemon_inst_rec;
7193
 
7194
      IF daemon_inst_cur%FOUND THEN
7195
 
7196
         -- if instruction repeats daily, add 1 day to the scheduled time and update the record
7197
         IF daemon_inst_rec.repSecs = 86400 THEN
7198
            UPDATE Daemon_Instructions
7199
               SET scheduled_datetime = daemon_inst_rec.schedDate + 1,
7200
                  in_progress = '0'
7201
            WHERE daemon_instructions_id = nInstId;
7202
         ELSE
7203
            -- Delete the daemon instruction, we are done with it
7204
            del_daemon_inst(nInstId);
7205
         END IF;
7206
      END IF;
7207
 
7208
      CLOSE daemon_inst_cur;
7209
 
7210
   EXCEPTION
7211
      WHEN OTHERS
7212
      THEN
7213
         raise;
7214
 
7215
   END mark_daemon_inst_completed;
7216
/*-------------------------------------------------------------------------------------------------------*/
7217
   -- This function deletes any old daemon instruction that appears stranded due to a problem that might
7218
   -- have occured during buildtool operation such as might occur if the buildtool or the machine it was
7219
   -- hosted on came down whilst it was processing a daemon instruction.
7220
   PROCEDURE cleanup_stranded_daemon_insts
7221
   IS
7222
   BEGIN
7223
      -- delete records at least two days old
7224
      DELETE FROM daemon_instructions di
7225
      WHERE  (di.scheduled_datetime + 5) <= ora_sysdatetime;
7226
 
7227
   END cleanup_stranded_daemon_insts;
7228
/*-------------------------------------------------------------------------------------------------------*/
7229
  --This function supersedes function, add_daemon. Done for DEVI-046806
7230
   PROCEDURE add_daemon_config (
7231
      nrtagid           IN   NUMBER,
7232
      nbmcon_id         IN   NUMBER,
7233
      sdaemon_mode      IN   VARCHAR2,
7234
      sgbebuildfilter   IN   VARCHAR2
7235
   )
7236
   IS
7237
      nrecordnumber   NUMBER;
7238
      nrconid         NUMBER;
7239
      sdaemonhostname VARCHAR2(50);
7240
      ngbeid         NUMBER;
7241
   BEGIN
7242
      -- Get RCON_ID
7243
      SELECT seq_rcon_id.NEXTVAL
7244
      INTO nrconid
7245
      FROM DUAL;
7246
 
7247
      SELECT COUNT (*)
7248
      INTO nrecordnumber
7249
      FROM release_config
7250
      WHERE rtag_id = nrtagid;
7251
 
7252
      SELECT machine_hostname,gbe_id INTO sdaemonhostname,ngbeid
7253
      FROM build_machine_config
7254
      WHERE bmcon_id = nbmcon_id;
7255
 
7256
      INSERT INTO release_config
7257
             (rcon_id, rtag_id, daemon_hostname, daemon_mode,
4308 dpurdie 7258
                gbe_id, gbe_buildfilter, bmcon_id)
1373 dpurdie 7259
      VALUES (nrconid, nrtagid, sdaemonhostname, sdaemon_mode,
4308 dpurdie 7260
                ngbeid, sgbebuildfilter, nbmcon_id);
1373 dpurdie 7261
 
7262
      -- A newly configured daemon should initially be paused (DEVI-047277)
7263
      INSERT INTO run_level
7264
                  (rcon_id, pause)
7265
           VALUES (nrconid, 2);
7266
 
7267
   END;
7268
 
7269
/*-------------------------------------------------------------------------------------------------------*/
7270
  --This function supersedes function, update_daemon. Done for DEVI-046806
7271
   PROCEDURE update_daemon_config (
7272
      nrconid           IN   NUMBER,
7273
      nbmcon_id         IN   NUMBER,
7274
      sdaemon_mode      IN   VARCHAR2,
7275
      sgbebuildfilter   IN   VARCHAR2
7276
   )
7277
   IS
7278
      sdaemonhostname VARCHAR2(50);
7279
      ngbeid         NUMBER;
7280
   BEGIN
7281
 
7282
      SELECT machine_hostname,gbe_id INTO sdaemonhostname,ngbeid
7283
      FROM build_machine_config
7284
      WHERE bmcon_id = nbmcon_id;
7285
 
7286
      UPDATE release_config
7287
         SET daemon_hostname = sdaemonhostname,
7288
            gbe_id = ngbeid,
7289
            daemon_mode = sdaemon_mode,
4308 dpurdie 7290
            gbe_buildfilter = sgbebuildfilter,
6031 dpurdie 7291
            bmcon_id = nbmcon_id
1373 dpurdie 7292
      WHERE rcon_id = nrconid;
7293
   END;
7294
 
7295
 
7296
/*-------------------------------------------------------------------------------------------------------*/
7297
   PROCEDURE add_build_machine (
7298
      sdisplay_name          IN   VARCHAR2,
7299
      smachine_hostname      IN   VARCHAR2,
7300
      ngbeid                 IN   NUMBER,
5172 dpurdie 7301
      sdescription           IN   VARCHAR2,
7302
      sactive                IN   CHAR
1373 dpurdie 7303
   )
7304
   IS
7305
      nrecordnumber   NUMBER;
7306
      nbmcon_id       NUMBER;
7307
   BEGIN
7308
      -- Get BMCON_ID
7309
      SELECT seq_bmcon_id.NEXTVAL INTO nbmcon_id FROM DUAL;
7310
 
5172 dpurdie 7311
      INSERT INTO build_machine_config(bmcon_id, display_name, machine_hostname,gbe_id,description,active)
7312
            VALUES (nbmcon_id,sdisplay_name,smachine_hostname,ngbeid,sdescription, NVL(sactive,'N'));
1373 dpurdie 7313
 
7314
   EXCEPTION
7315
      WHEN DUP_VAL_ON_INDEX
7316
      THEN
7317
         raise_application_error (-20000,
7318
                                 'Cannot have duplicate machines.'
7319
                                 );
7320
 
7321
   END;
7322
 
7323
/*-------------------------------------------------------------------------------------------------------*/
4308 dpurdie 7324
 PROCEDURE duplicate_daemon_config (
7325
      nrtagid           IN   NUMBER,
7326
      nbmcon_id         IN   NUMBER,
7327
      sdaemonhostname   IN   VARCHAR2,
7328
      ngbe_id           IN   NUMBER,
7329
      sdaemon_mode      IN   VARCHAR2,
7330
      sgbebuildfilter   IN   VARCHAR2
7331
   )
7332
   IS
7333
      nrecordnumber   NUMBER;
7334
      nrconid         NUMBER;
7335
    BEGIN
6031 dpurdie 7336
 
4308 dpurdie 7337
      -- Get RCON_ID
7338
      SELECT seq_rcon_id.NEXTVAL
7339
      INTO nrconid
7340
      FROM DUAL;
7341
 
7342
      INSERT INTO release_config
7343
             (rcon_id, rtag_id, daemon_hostname, daemon_mode,
7344
                gbe_id, gbe_buildfilter, bmcon_id)
7345
      VALUES (nrconid, nrtagid, sdaemonhostname, sdaemon_mode,
7346
                ngbe_id, sgbebuildfilter, nbmcon_id);
6031 dpurdie 7347
 
4308 dpurdie 7348
    -- A newly configured daemon should initially be disabled (DEVI-047277)
7349
      INSERT INTO run_level
7350
                  (rcon_id, pause)
7351
           VALUES (nrconid, 2);
7352
 
7353
   END;
7354
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 7355
   PROCEDURE delete_build_machine (sbmcon_id_list IN VARCHAR2)
7356
   IS
7357
   BEGIN
7358
      DELETE FROM build_machine_config
7359
            WHERE bmcon_id IN (
7360
                     SELECT * FROM THE
7361
                              (SELECT CAST
7362
                                          (in_list_number (sbmcon_id_list) AS relmgr_number_tab_t
7363
                                          )
7364
                                 FROM DUAL
7365
                              ));
7366
   END;
7367
 
7368
 
7369
/*-------------------------------------------------------------------------------------------------------*/
7370
   PROCEDURE update_build_machine (
7371
      nbmcon_id              IN   NUMBER,
7372
      sdisplay_name          IN   VARCHAR2,
7373
      smachine_hostname      IN   VARCHAR2,
7374
      ngbeid                 IN   NUMBER,
5172 dpurdie 7375
      sdescription           IN   VARCHAR2,
7376
      sactive                IN   CHAR
1373 dpurdie 7377
   )
7378
   IS
7379
   BEGIN
7380
      UPDATE build_machine_config
7381
         SET display_name = sdisplay_name,
7382
             machine_hostname = smachine_hostname,
7383
             gbe_id = ngbeid,
5172 dpurdie 7384
             description = sdescription,
7385
             active = NVL(sactive, 'N')
1373 dpurdie 7386
      WHERE bmcon_id = nbmcon_id;
7387
   EXCEPTION
7388
      WHEN DUP_VAL_ON_INDEX
7389
      THEN
7390
         raise_application_error (-20000,
7391
                                 'Cannot have duplicate machines.'
7392
                                 );
7393
   END;
6031 dpurdie 7394
 
4553 dpurdie 7395
/*-------------------------------------------------------------------------------------------------------*/
7396
PROCEDURE import_daemons ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER  ) IS
7397
 
7398
   sSourceLocation VARCHAR2(4000);
7399
   sTargetLocation VARCHAR2(4000);
7400
   ProjId NUMBER;
7401
   cReleaseMode CHAR(1);
7402
   RconId NUMBER;
7403
 
7404
   -- this cursor gets the source release daemon configurations, ensuring that the
7405
   -- first record will be the master daemon, and subsequent records will be the slaves.
7406
   CURSOR curSrcReleaseConfigs IS
7407
    SELECT daemon_hostname, gbe_id, gbe_buildfilter, bmcon_id, daemon_mode
7408
     FROM RELEASE_CONFIG rc
7409
    WHERE rc.RTAG_ID = nSourceRtagId
7410
    ORDER BY rc.daemon_mode;
7411
    recSrcReleaseConfigs curSrcReleaseConfigs%ROWTYPE;
7412
 
7413
    -- this cursor looks for target release daemons
7414
   CURSOR curTgtReleaseConfigs IS
7415
    SELECT rcon_id
7416
     FROM RELEASE_CONFIG rc
7417
    WHERE rc.RTAG_ID = nTargetRtagId;
7418
    recTgtReleaseConfigs curTgtReleaseConfigs%ROWTYPE;
7419
 
7420
    -- this cursor looks for target release daemon run level entries
7421
   CURSOR curTgtReleaseConfigRunLevel IS
7422
    SELECT current_run_level
7423
     FROM RUN_LEVEL rl
7424
    WHERE rl.RCON_ID = recTgtReleaseConfigs.rcon_id;
7425
    recTgtReleaseConfigRunLevel curTgtReleaseConfigRunLevel%ROWTYPE;
7426
 
7427
BEGIN
7428
   /*--------------- Business Rules Here -------------------*/
7429
   IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)
7430
   THEN
7431
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );
7432
   END IF;
7433
 
7434
   IF (nSourceRtagId = nTargetRtagId) THEN
7435
      RAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );
7436
   END IF;
7437
 
7438
   -- Check if Target release is in OPEN mode
7439
   SELECT rt.OFFICIAL  INTO  cReleaseMode
7440
     FROM RELEASE_TAGS rt
7441
    WHERE rt.RTAG_ID = nTargetRtagId;
7442
 
7443
   IF (cReleaseMode != 'N') THEN
7444
      RAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the contents.' );
7445
   END IF;
7446
 
7447
   -- check that the target release's daemons are all paused before we allow an import operation
7448
   OPEN curTgtReleaseConfigs;
7449
   FETCH curtgtReleaseConfigs INTO recTgtReleaseConfigs;
7450
 
7451
   WHILE curTgtReleaseConfigs%FOUND
7452
   LOOP
7453
      OPEN curTgtReleaseConfigRunLevel;
7454
      FETCH curTgtReleaseConfigRunLevel INTO recTgtReleaseConfigRunLevel;
7455
      IF curTgtReleaseConfigRunLevel%FOUND THEN
7456
         IF (recTgtReleaseConfigRunLevel.current_run_level IS NULL) OR
7457
            (recTgtReleaseConfigRunLevel.current_run_level <> 2) THEN
7458
            RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
7459
         END IF;
7460
      ELSE
7461
         -- we don't know what the daemon run level is so err on the side of caution
7462
         RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
7463
      END IF;
7464
      CLOSE curTgtReleaseConfigRunLevel;
7465
 
7466
      FETCH curTgtReleaseConfigs INTO recTgtReleaseConfigs;
7467
   END LOOP;
7468
 
7469
   CLOSE curTgtReleaseConfigs;
7470
 
7471
 
7472
   /*-------------------------------------------------------*/
7473
 
7474
   --Import Release Configuration Information
7475
   OPEN curSrcReleaseConfigs;
7476
   FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
7477
 
7478
     WHILE curSrcReleaseConfigs%FOUND
7479
   LOOP
7480
      -- add a daemon to the target release
6031 dpurdie 7481
      PK_BUILDAPI.duplicate_daemon_config( nTargetRtagId,
7482
                                     recSrcReleaseConfigs.bmcon_id,
7483
                                     recSrcReleaseConfigs.daemon_hostname,
7484
                                     recSrcReleaseConfigs.gbe_id,
4553 dpurdie 7485
                                     recSrcReleaseConfigs.daemon_mode ,
7486
                                     recSrcReleaseConfigs.gbe_buildfilter );
7487
 
7488
      FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
7489
   END LOOP;
7490
 
7491
   CLOSE curSrcReleaseConfigs;
7492
 
6031 dpurdie 7493
 
4553 dpurdie 7494
   /* Log Project Action */
7495
   -- Get Source Location
7496
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sSourceLocation
7497
     FROM RELEASE_TAGS rt,
7498
           PROJECTS pr
7499
    WHERE rt.PROJ_ID = pr.PROJ_ID
7500
      AND rt.RTAG_ID = nSourceRtagId;
7501
 
7502
   -- Get Target Location
7503
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sTargetLocation
7504
     FROM RELEASE_TAGS rt,
7505
           PROJECTS pr
7506
    WHERE rt.PROJ_ID = pr.PROJ_ID
7507
      AND rt.RTAG_ID = nTargetRtagId;
7508
 
7509
   -- Get project id
7510
   SELECT rt.PROJ_ID  INTO  ProjId
7511
     FROM RELEASE_TAGS rt
7512
    WHERE rt.RTAG_ID = nTargetRtagId;
7513
 
7514
   Log_Project_Action ( ProjId, 'import_daemon_configuration', nUserId, 'SOURCE: '|| sSourceLocation ||'   TARGET: '|| sTargetLocation, nTargetRtagId );
7515
END;
7516
 
5892 dpurdie 7517
/*-------------------------------------------------------------------------------------------------------*/
7518
PROCEDURE set_build_plan (rtagId IN NUMBER, nStartIndex IN NUMBER, pvList IN VARCHAR2)
7519
   IS
7520
    nPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
7521
    SeqNum NUMBER;
6031 dpurdie 7522
 
5892 dpurdie 7523
   BEGIN
6031 dpurdie 7524
 
5892 dpurdie 7525
   -- Remove all the old entries, on first usage
7526
   IF nStartIndex = 0 then
7527
    DELETE BUILD_PLAN WHERE RTAG_ID = rtagId;
7528
    SeqNum := 0;
7529
   ELSE
7530
    SELECT COUNT(*) into SeqNum from BUILD_PLAN WHERE RTAG_ID = rtagId;
7531
   END IF;
6031 dpurdie 7532
 
5892 dpurdie 7533
   -- Set start sequence number
7534
   nPvIdCollector := IN_LIST_NUMBER ( pvList );
7535
 
7536
   FOR i IN 1..nPvIdCollector.COUNT
7537
   LOOP
7538
      -- Update build plan with order
7539
      INSERT INTO BUILD_PLAN (RTAG_ID, BUILD_ORDER, PV_ID) VALUES (rtagId, SeqNum, nPvIdCollector(i));
7540
      SeqNum := SeqNum + 1;
7541
 
7542
   END LOOP;
7543
END;
7544
 
1373 dpurdie 7545
END pk_buildapi;
4040 dpurdie 7546
 
1374 dpurdie 7547
/
4040 dpurdie 7548
--------------------------------------------------------
7549
--  DDL for Package Body PK_ENVIRONMENT
7550
--------------------------------------------------------
7551
 
5172 dpurdie 7552
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_ENVIRONMENT" 
1373 dpurdie 7553
IS
7554
 
7555
   /*-------------------------------------------------------------------------------------------------------*/
7556
   FUNCTION select_environment_area (cdlock IN package_versions.dlocked%TYPE)
7557
     RETURN NUMBER
7558
   IS
7559
   BEGIN
7560
      /*
7561
     || N - unlocked
7562
     || Y - release and locked
7563
     || P - penging approval
7564
     || A - approved package ready for auto-build
7565
     */
7566
     IF cdlock = 'N' OR cdlock = 'R'
7567
     THEN
7568
       -- WORK IN PROGRESS --
7569
       RETURN 0;
7570
     ELSIF cdlock = 'P' OR cdlock = 'A'
7571
     THEN
7572
       -- PENDING --
7573
       RETURN 1;
7574
     ELSIF cdlock = 'Y'
7575
     THEN
7576
       -- RELEASED --
7577
       RETURN 2;
7578
     ELSE
7579
       -- NOT FOUND --
7580
       raise_application_error
7581
                   (-20000,
7582
                      'Cannot decide where to place package. [cDlock='
7583
                    || cdlock
7584
                    || ']'
7585
                   );
7586
     END IF;
7587
   END;
7588
 
7589
/*-------------------------------------------------------------------------------------------------------*/
7590
   FUNCTION get_package_area (pvid IN NUMBER, rtagid IN NUMBER)
7591
     RETURN NUMBER
7592
   IS
7593
     envtab   NUMBER         := -1;
7594
 
7595
     CURSOR curarea
7596
     IS
7597
       SELECT 2 AS envtab
7598
         FROM release_content rc
7599
        WHERE rc.rtag_id = rtagid AND rc.pv_id = pvid
7600
       UNION
7601
       SELECT 0 AS envtab
7602
         FROM work_in_progress wip
7603
        WHERE wip.rtag_id = rtagid AND wip.pv_id = pvid
7604
       UNION
7605
       SELECT 1 AS envtab
7606
         FROM planned pl
7607
        WHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;
7608
 
7609
     recarea   curarea%ROWTYPE;
7610
   BEGIN
7611
     OPEN curarea;
7612
 
7613
     FETCH curarea
7614
      INTO recarea;
7615
 
7616
     IF curarea%FOUND
7617
     THEN
7618
       envtab := recarea.envtab;
7619
     END IF;
7620
 
7621
     CLOSE curarea;
7622
 
7623
     RETURN envtab;
7624
   END;
7625
 
7626
/*-------------------------------------------------------------------------------------------------------*/
7627
   FUNCTION get_view_location (pvid IN NUMBER, rtagid IN NUMBER)
7628
     RETURN NUMBER
7629
   IS
7630
     ispatch   package_versions.dlocked%TYPE;
7631
     viewid   NUMBER                    := -1;
7632
 
7633
     CURSOR curview
7634
     IS
7635
       SELECT rc.base_view_id AS view_id
7636
         FROM release_content rc
7637
        WHERE rc.rtag_id = rtagid AND rc.pv_id = pvid
7638
       UNION
7639
       SELECT wip.view_id AS view_id
7640
         FROM work_in_progress wip
7641
        WHERE wip.rtag_id = rtagid AND wip.pv_id = pvid
7642
       UNION
7643
       SELECT pl.view_id AS view_id
7644
         FROM planned pl
7645
        WHERE pl.rtag_id = rtagid AND pl.pv_id = pvid;
7646
 
7647
     recview   curview%ROWTYPE;
7648
   BEGIN
7649
     -- Get dlock state
7650
     SELECT pv.is_patch
7651
      INTO ispatch
7652
      FROM package_versions pv
7653
      WHERE pv.pv_id = pvid;
7654
 
7655
     -- Decide which view id should package go under.
7656
     IF (ispatch != 'Y') OR (ispatch IS NULL)
7657
     THEN
7658
       -- Get VIEW ID of Package
7659
       OPEN curview;
7660
 
7661
       FETCH curview
7662
        INTO recview;
7663
 
7664
       IF curview%FOUND
7665
       THEN
7666
         viewid := recview.view_id;
7667
       ELSE
7668
         raise_application_error
7669
            (-20000,
7670
               'Cannot find view_id to proceed. [PvId='
7671
            || pvid
7672
            || ']. The current version may not exist in the release anymore.'
7673
            );
7674
       END IF;
7675
 
7676
       CLOSE curview;
7677
     ELSE
7678
       -- Get VIEW ID of Patch (view id of parent package)
7679
       SELECT rc.base_view_id
7680
         INTO viewid
7681
         FROM release_content rc, package_patches ppv
7682
        WHERE rc.rtag_id = rtagid
7683
         AND rc.pv_id = ppv.pv_id
7684
         AND ppv.patch_id = pvid;
7685
     END IF;
7686
 
7687
     RETURN viewid;
7688
   END;
7689
 
7690
/*-------------------------------------------------------------------------------------------------------*/
5384 dpurdie 7691
--  Add a package to the specified release
7692
--  Default imode: Will determine the tab ( WIP, PENDING, RELEASE ) to add the package
7693
--  Otherwise will Add the package to the PENDING set
7694
--
1373 dpurdie 7695
   PROCEDURE add_package (
7696
     pvid    IN   NUMBER,
5384 dpurdie 7697
     viewid  IN   NUMBER,
7698
     rtagid  IN   NUMBER,
7699
     userid  IN   NUMBER,
7700
     imode   IN   CHAR default NULL
1373 dpurdie 7701
   )
7702
   IS
7703
     dlocked   package_versions.dlocked%TYPE;
7704
     envtab   NUMBER;
5384 dpurdie 7705
     pendOpr CHAR := 'R';
1373 dpurdie 7706
   BEGIN
7707
     IF can_edit_pkg_in_project (pvid, rtagid) = 1
7708
     THEN
5384 dpurdie 7709
       IF iMode IS NULL THEN
7710
         -- Determine the tab to use based on the package lock state
7711
         -- Get dlock state
7712
         SELECT pv.dlocked
7713
           INTO dlocked
7714
           FROM package_versions pv
7715
          WHERE pv.pv_id = pvid;
6031 dpurdie 7716
 
5384 dpurdie 7717
         -- Get which area should go under
7718
         envtab := select_environment_area (dlocked);
7719
       ELSE
7720
        -- Assume that the package is to be added to Pending
7721
        envtab := 1;
7722
        pendOpr := 'A';
7723
       END IF;
1373 dpurdie 7724
 
5384 dpurdie 7725
       -- Add Package
1373 dpurdie 7726
       IF envtab = 0
7727
       THEN
7728
         -- WORK IN PROGRESS --
7729
         pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
7730
       ELSIF envtab = 1
7731
       THEN
7732
         -- PENDING --
5384 dpurdie 7733
         pk_planned.add_package (pvid, viewid, rtagid, userid, pendOpr);
1373 dpurdie 7734
       ELSIF envtab = 2
7735
       THEN
7736
         -- RELEASED --
7737
         -- NOTE: this package will be replaced with matching package
7738
         pk_release.add_package (pvid, viewid, rtagid, userid);
7739
         -- Now do post Release Actions
7740
         pk_release.run_post_actions (pvid, rtagid);
7741
       END IF;
7742
     END IF;
7743
   END;
7744
 
7745
/*-------------------------------------------------------------------------------------------------------*/
7746
   PROCEDURE add_package_bulk (
7747
     pvidlist   IN   VARCHAR2,
7748
     viewid    IN   NUMBER,
7749
     rtagid    IN   NUMBER,
5384 dpurdie 7750
     userid    IN   NUMBER,
7751
     imode     IN   CHAR DEFAULT NULL
1373 dpurdie 7752
   )
7753
   IS
5384 dpurdie 7754
     nidcollector relmgr_number_tab_t         := relmgr_number_tab_t();
1373 dpurdie 7755
     dlocked      package_versions.dlocked%TYPE;
7756
     pvid         NUMBER;
7757
     envtab       NUMBER;
7758
   BEGIN
7759
     /*--------------- Business Rules Here -------------------*/
7760
     IF (pvidlist IS NULL)
7761
     THEN
7762
       raise_application_error (-20000,
7763
                          'Please select at least one package.'
7764
                         );
7765
     END IF;
7766
 
7767
/*-------------------------------------------------------*/
7768
     nidcollector := in_list_number (pvidlist);
7769
 
7770
     FOR i IN 1 .. nidcollector.COUNT
7771
     LOOP
7772
       pvid := nidcollector (i);
5384 dpurdie 7773
       add_package (pvid, viewid, rtagid, userid, imode);
1373 dpurdie 7774
     END LOOP;
7775
   END;
7776
 
7777
/*-------------------------------------------------------------------------------------------------------*/
7778
   PROCEDURE replace_package (
7779
     newpvid  IN   NUMBER,
7780
     oldpvid  IN   NUMBER,
7781
     rtagid   IN   NUMBER,
7782
     userid   IN   NUMBER
7783
   )
7784
   IS
7785
     dlocked      package_versions.dlocked%TYPE;
7786
     viewid       NUMBER;
7787
     envtab       NUMBER;
7788
     ROWCOUNT     NUMBER;
7789
     creleasemode CHAR (1);
7790
     npkgid       NUMBER;
7791
   BEGIN
7792
     /*--------------- Business Rules Here -------------------*/
7793
     -- Check if oldPvId exists. It could have been removed
7794
     SELECT COUNT (pv.pv_id)
7795
       INTO ROWCOUNT
7796
       FROM package_versions pv
7797
      WHERE pv.pv_id = oldpvid;
7798
 
7799
/*-------------------------------------------------------*/
7800
 
7801
     /* This procedure is usually used by "History" option in Release Manager */
7802
 
7803
     -- Get dlock state
7804
     SELECT pv.dlocked
7805
       INTO dlocked
7806
       FROM package_versions pv
7807
      WHERE pv.pv_id = newpvid;
7808
 
7809
     -- Get VIEW_ID ---
7810
     IF ROWCOUNT = 1
7811
     THEN
7812
       viewid := get_view_location (oldpvid, rtagid);
7813
     ELSE
7814
       -- Set ViewID to default
7815
       viewid := 7;
7816
     END IF;
7817
 
7818
     -- Get which area should go under
7819
     envtab := select_environment_area (dlocked);
7820
 
7821
     -- Replace package
7822
     IF envtab = 0
7823
     THEN
7824
       -- WORK IN PROGRESS --
7825
 
7826
       -- Delete old package
7827
       pk_work_in_progress.remove_package (oldpvid, rtagid, userid);
7828
 
7829
       -- Add new package
7830
       pk_work_in_progress.add_package (newpvid, viewid, rtagid, userid);
7831
     ELSIF envtab = 1
7832
     THEN
7833
       -- PENDING --
7834
 
7835
       -- Delete old package
7836
       pk_planned.remove_package (oldpvid, rtagid, userid);
7837
 
7838
       -- Add new package
7839
       pk_planned.add_package (newpvid, viewid, rtagid, userid);
7840
     ELSIF envtab = 2
7841
     THEN
7842
       -- RELEASED --
6031 dpurdie 7843
 
5172 dpurdie 7844
       -- Replace Package
7845
       pk_release.replace_package(newpvid, oldpvid, rtagid, userid);
6031 dpurdie 7846
 
1373 dpurdie 7847
       -- Now do post Release Actions
7848
       pk_release.run_post_actions (newpvid, rtagid);
7849
     END IF;
7850
 
7851
   END;
7852
 
7853
/*-------------------------------------------------------------------------------------------------------*/
7854
   FUNCTION remove_package (
7855
     pvid        IN   NUMBER,
7856
     rtagid      IN   NUMBER,
7857
     userid      IN   NUMBER,
7858
     forceremove IN   CHAR
7859
   )
7860
     RETURN NUMBER
7861
   IS
7862
     envtab      NUMBER;
7863
     isused      BOOLEAN;
7864
     recordcount   NUMBER;
7865
   BEGIN
7866
/*--------------- Business Rules Here -------------------*/
7867
/*-------------------------------------------------------*/
7868
 
7869
     -- Find location of package
7870
     envtab := get_package_area (pvid, rtagid);
7871
 
7872
     -- Remove Package
7873
     IF envtab = 0
7874
     THEN
7875
       -- WORK IN PROGRESS --
7876
       -- Delete package
7877
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
7878
 
7879
       RETURN 0;
7880
     ELSIF envtab = 1
7881
     THEN
7882
       -- PENDING --
7883
       -- Delete package
7884
       pk_planned.remove_package (pvid, rtagid, userid);
7885
 
7886
       RETURN 0;
7887
     ELSIF envtab = 2
7888
     THEN
7889
       -- RELEASED --
7890
 
7891
       -- Check if is used by other packages
7892
       isused := TRUE;
7893
 
7894
       IF forceremove = 'N'
7895
       THEN
6031 dpurdie 7896
          select count(dpv.PKG_ID) INTO recordcount from
5172 dpurdie 7897
          (SELECT  rc.pv_id
7898
          FROM RELEASE_CONTENT rc, PEGGED_VERSIONS peg
7899
            WHERE rc.rtag_id = rtagid
7900
            AND peg.RTAG_ID(+) = rc.RTAG_ID
7901
            AND peg.PV_ID(+) = rc.PV_ID
7902
            AND peg.rtag_id is null
7903
            AND rc.SDKTAG_ID is null
7904
            ) arc,
7905
          PACKAGE_DEPENDENCIES dep,
7906
          PACKAGE_VERSIONS pv,
7907
          PACKAGE_VERSIONS dpv,
7908
          PACKAGE_VERSIONS bpv
7909
          where dep.PV_ID = arc.pv_id
7910
          AND dep.pv_id = pv.pv_id
7911
          AND dep.dpv_id = dpv.PV_ID
7912
          AND dpv.PKG_ID = bpv.PKG_ID
7913
          AND NVL(dpv.V_EXT, '.NULL') = NVL(bpv.V_EXT, '.NULL')
7914
          AND bpv.pv_id = pvid;
1373 dpurdie 7915
 
7916
         IF recordcount > 0
7917
         THEN
7918
            RETURN 1;               -- Return 1 as package being used
7919
         ELSE
7920
            isused := FALSE;
7921
         END IF;
7922
       END IF;
7923
 
7924
       IF forceremove = 'Y' OR NOT isused
7925
       THEN
7926
         -- Delete old package
7927
         pk_release.remove_package (pvid, rtagid, userid);
7928
 
7929
         -- Delete old package's pegging info
7930
         DELETE FROM PEGGED_VERSIONS pegv WHERE pegv.RTAG_ID = rtagid AND pegv.PV_ID = pvid;
7931
 
7932
         -- Delete old package's advisory ripple info
7933
         DELETE FROM ADVISORY_RIPPLE avr WHERE avr.RTAG_ID = rtagid AND avr.PV_ID = pvid;
7934
 
7935
         -- Now do post Release Actions
7936
         pk_release.run_post_actions (pvid, rtagid);
7937
         RETURN 0;
7938
       END IF;
7939
     END IF;
7940
   END;
7941
 
7942
/*-------------------------------------------------------------------------------------------------------*/
7943
   -- DEVI-45275 added the return of the new "operation" column in the recordset.
7944
 
7945
   PROCEDURE get_environment_items (
7946
     viewtype         IN      NUMBER,
7947
     userid           IN      NUMBER,
7948
     rtagid           IN      NUMBER,
7949
     sviewidshowlist  IN      VARCHAR2,
7950
     ntruerecordcount OUT     NUMBER,
7951
     recordset        OUT     typecur
7952
   )
7953
   IS
7954
   BEGIN
7955
     -- Get true record count because views can give false count
7956
     SELECT COUNT (pl.pv_id)
7957
      INTO ntruerecordcount
7958
      FROM environment_view pl
7959
      WHERE pl.rtag_id = rtagid;
7960
 
7961
     IF viewtype = 1
7962
     THEN
7963
       /*--- GUEST VIEW ---*/
7964
       OPEN recordset FOR
7965
         SELECT   *
7966
            FROM (
7967
                 /* Base Views collapsed */
7968
                 SELECT DISTINCT vi.view_id, vi.view_name,
7969
                             TO_NUMBER (NULL) AS pkg_state,
7970
                             TO_NUMBER (NULL) AS deprecated_state,
7971
                             TO_NUMBER (NULL) AS pv_id,
7972
                             NULL AS pkg_name, NULL AS pkg_version,
7973
                             NULL AS dlocked, NULL AS pv_description,
7974
                             rel.operation
7975
                         FROM environment_view rel, views vi
7976
                        WHERE rel.view_id = vi.view_id
7977
                          AND rtag_id = rtagid
7978
                          AND rel.view_id NOT IN (
7979
                               SELECT *
7980
                                 FROM THE
7981
                                       (SELECT CAST
7982
                                               (in_list_number
7983
                                                  (sviewidshowlist
7984
                                                  ) AS relmgr_number_tab_t
7985
                                               )
7986
                                         FROM DUAL
7987
                                       ))
7988
                 UNION
7989
                 /* Base Views expanded */
7990
                 SELECT vi.view_id, vi.view_name,
7991
                      DECODE (rel.pkg_state,
7992
                            NULL, 0,
7993
                            rel.pkg_state
7994
                           ) AS pkg_state,
7995
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
7996
                      pv.pkg_version, pv.dlocked, pv.pv_description,
7997
                      rel.operation
7998
                  FROM environment_view rel,
7999
                      PACKAGES pkg,
8000
                      package_versions pv,
8001
                      views vi
8002
                  WHERE pv.pkg_id = pkg.pkg_id
8003
                   AND rel.pv_id = pv.pv_id
8004
                   AND rel.view_id = vi.view_id
8005
                   AND rel.view_id IN (
8006
                        SELECT *
8007
                          FROM THE
8008
                                (SELECT CAST
8009
                                        (in_list_number
8010
                                               (sviewidshowlist) AS relmgr_number_tab_t
8011
                                        )
8012
                                  FROM DUAL
8013
                                ))
8014
                   AND rtag_id = rtagid) ord
8015
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8016
     ELSIF viewtype = 2
8017
     THEN
8018
       /*--- PERSONAL VIEW ---*/
8019
       OPEN recordset FOR
8020
         SELECT   *
8021
            FROM (
8022
                 /* Base Views collapsed */
8023
                 SELECT DISTINCT vi.view_id, vi.view_name,
8024
                             TO_NUMBER (NULL) AS pkg_state,
8025
                             TO_NUMBER (NULL) AS deprecated_state,
8026
                             TO_NUMBER (NULL) AS pv_id,
8027
                             NULL AS pkg_name, NULL AS pkg_version,
8028
                             NULL AS dlocked, NULL AS pv_description,
8029
                             rel.operation
8030
                         FROM environment_view rel,
8031
                             view_settings vs,
8032
                             views vi
8033
                        WHERE rel.view_id = vi.view_id
8034
                          AND vs.view_id = rel.view_id
8035
                          AND vs.user_id = userid
8036
                          AND rtag_id = rtagid
8037
                          AND rel.view_id NOT IN (
8038
                               SELECT *
8039
                                 FROM THE
8040
                                       (SELECT CAST
8041
                                               (in_list_number
8042
                                                  (sviewidshowlist
8043
                                                  ) AS relmgr_number_tab_t
8044
                                               )
8045
                                         FROM DUAL
8046
                                       ))
8047
                 UNION
8048
                 /* Base Views expanded */
8049
                 SELECT vi.view_id, vi.view_name,
8050
                      DECODE (rel.pkg_state,
8051
                            NULL, 0,
8052
                            rel.pkg_state
8053
                           ) AS pkg_state,
8054
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8055
                      pv.pkg_version, pv.dlocked, pv.pv_description,
8056
                      rel.operation
8057
                  FROM environment_view rel,
8058
                      PACKAGES pkg,
8059
                      package_versions pv,
8060
                      views vi,
8061
                      view_settings vs
8062
                  WHERE pv.pkg_id = pkg.pkg_id
8063
                   AND rel.pv_id = pv.pv_id
8064
                   AND rel.view_id = vi.view_id
8065
                   AND vs.view_id = vi.view_id
8066
                   AND vs.user_id = userid
8067
                   AND rel.view_id IN (
8068
                        SELECT *
8069
                          FROM THE
8070
                                (SELECT CAST
8071
                                        (in_list_number
8072
                                               (sviewidshowlist) AS relmgr_number_tab_t
8073
                                        )
8074
                                  FROM DUAL
8075
                                ))
8076
                   AND rtag_id = rtagid
8077
                 UNION
8078
                 /* Private Views collapsed */
8079
                 SELECT vi.view_id, vi.view_name,
8080
                      TO_NUMBER (NULL) AS pkg_state,
8081
                      TO_NUMBER (NULL) AS deprecated_state,
8082
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
8083
                      NULL AS pkg_version, NULL AS dlocked,
8084
                      NULL AS pv_description,
8085
                      rel.operation
8086
                  FROM view_settings vs,
8087
                      view_def vd,
8088
                      views vi,
8089
                      environment_view rel,
8090
                      package_versions pv
8091
                  WHERE vs.view_id = vi.view_id
8092
                   AND rel.pv_id = pv.pv_id
8093
                   AND vd.pkg_id = pv.pkg_id
8094
                   AND vd.view_id = vi.view_id
8095
                   AND vi.base_view = 'N'
8096
                   AND rel.rtag_id = rtagid
8097
                   AND vs.user_id = userid
8098
                   AND vi.view_id NOT IN (
8099
                        SELECT *
8100
                          FROM THE
8101
                                (SELECT CAST
8102
                                        (in_list_number
8103
                                               (sviewidshowlist) AS relmgr_number_tab_t
8104
                                        )
8105
                                  FROM DUAL
8106
                                ))
8107
                 UNION
8108
                 /* Private Views expanded */
8109
                 SELECT vi.view_id, vi.view_name,
8110
                      DECODE (rel.pkg_state,
8111
                            NULL, 0,
8112
                            rel.pkg_state
8113
                           ) AS pkg_state,
8114
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8115
                      pv.pkg_version, pv.dlocked, pv.pv_description,
8116
                      rel.operation
8117
                  FROM users usr,
8118
                      view_settings vs,
8119
                      view_def vd,
8120
                      views vi,
8121
                      environment_view rel,
8122
                      PACKAGES pkg,
8123
                      package_versions pv
8124
                  WHERE vs.user_id = usr.user_id
8125
                   AND vs.view_id = vi.view_id
8126
                   AND vd.view_id = vi.view_id
8127
                   AND pv.pkg_id = pkg.pkg_id
8128
                   AND rel.pv_id = pv.pv_id
8129
                   AND rel.rtag_id = rtagid
8130
                   AND vd.pkg_id = pkg.pkg_id
8131
                   AND vi.base_view = 'N'
8132
                   AND vi.view_id IN (
8133
                        SELECT *
8134
                          FROM THE
8135
                                (SELECT CAST
8136
                                        (in_list_number
8137
                                               (sviewidshowlist) AS relmgr_number_tab_t
8138
                                        )
8139
                                  FROM DUAL
8140
                                ))
8141
                   AND usr.user_id = userid) ord
8142
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8143
     END IF;
8144
   END;
8145
 
8146
/*-------------------------------------------------------------------------------------------------------*/
8147
   PROCEDURE get_released_items (
8148
     viewtype         IN      NUMBER,
8149
     userid           IN      NUMBER,
8150
     rtagid           IN      NUMBER,
8151
     sviewidshowlist  IN      VARCHAR2,
8152
     ntruerecordcount OUT     NUMBER,
8153
     recordset        OUT     typecur
8154
   )
8155
   IS
8156
   BEGIN
8157
     -- Get true record count because views can give false count
8158
     SELECT COUNT (rc.pv_id)
8159
      INTO ntruerecordcount
8160
      FROM release_content rc
8161
      WHERE rc.rtag_id = rtagid;
8162
 
8163
     IF viewtype = 1
8164
     THEN
8165
       /*--- GUEST VIEW ---*/
8166
       OPEN recordset FOR
8167
         SELECT   *
8168
            FROM (
8169
                 /* Base Views collapsed */
8170
                 SELECT DISTINCT vi.view_id, vi.view_name,
8171
                             TO_NUMBER (NULL) AS pkg_state,
8172
                             TO_NUMBER (NULL) AS deprecated_state,
8173
                             TO_NUMBER (NULL) AS pv_id,
8174
                             NULL AS pkg_name, NULL AS pkg_version,
8175
                             NULL AS dlocked, NULL AS pv_description
8176
                         FROM release_content rel, views vi
8177
                        WHERE rel.base_view_id = vi.view_id
8178
                          AND rtag_id = rtagid
8179
                          AND rel.base_view_id NOT IN (
8180
                               SELECT *
8181
                                 FROM THE
8182
                                       (SELECT CAST
8183
                                               (in_list_number
8184
                                                  (sviewidshowlist
8185
                                                  ) AS relmgr_number_tab_t
8186
                                               )
8187
                                         FROM DUAL
8188
                                       ))
8189
                 UNION
8190
                 /* Base Views expanded */
8191
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
8192
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8193
                      pv.pkg_version, pv.dlocked, pv.pv_description
8194
                  FROM release_content rel,
8195
                      PACKAGES pkg,
8196
                      package_versions pv,
8197
                      views vi
8198
                  WHERE pv.pkg_id = pkg.pkg_id
8199
                   AND rel.pv_id = pv.pv_id
8200
                   AND rel.base_view_id = vi.view_id
8201
                   AND rel.base_view_id IN (
8202
                        SELECT *
8203
                          FROM THE
8204
                                (SELECT CAST
8205
                                        (in_list_number
8206
                                               (sviewidshowlist) AS relmgr_number_tab_t
8207
                                        )
8208
                                  FROM DUAL
8209
                                ))
8210
                   AND rtag_id = rtagid) ord
8211
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8212
     ELSIF viewtype = 2
8213
     THEN
8214
       /*--- PERSONAL VIEW ---*/
8215
       OPEN recordset FOR
8216
         SELECT   *
8217
            FROM (
8218
                 /* Base Views collapsed */
8219
                 SELECT DISTINCT vi.view_id, vi.view_name,
8220
                             TO_NUMBER (NULL) AS pkg_state,
8221
                             TO_NUMBER (NULL) AS deprecated_state,
8222
                             TO_NUMBER (NULL) AS pv_id,
8223
                             NULL AS pkg_name, NULL AS pkg_version,
8224
                             NULL AS dlocked, NULL AS pv_description
8225
                         FROM release_content rel,
8226
                             view_settings vs,
8227
                             views vi
8228
                        WHERE rel.base_view_id = vi.view_id
8229
                          AND vs.view_id = rel.base_view_id
8230
                          AND vs.user_id = userid
8231
                          AND rtag_id = rtagid
8232
                          AND rel.base_view_id NOT IN (
8233
                               SELECT *
8234
                                 FROM THE
8235
                                       (SELECT CAST
8236
                                               (in_list_number
8237
                                                  (sviewidshowlist
8238
                                                  ) AS relmgr_number_tab_t
8239
                                               )
8240
                                         FROM DUAL
8241
                                       ))
8242
                 UNION
8243
                 /* Base Views expanded */
8244
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
8245
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8246
                      pv.pkg_version, pv.dlocked, pv.pv_description
8247
                  FROM release_content rel,
8248
                      PACKAGES pkg,
8249
                      package_versions pv,
8250
                      views vi,
8251
                      view_settings vs
8252
                  WHERE pv.pkg_id = pkg.pkg_id
8253
                   AND rel.pv_id = pv.pv_id
8254
                   AND rel.base_view_id = vi.view_id
8255
                   AND vs.view_id = vi.view_id
8256
                   AND vs.user_id = userid
8257
                   AND rel.base_view_id IN (
8258
                        SELECT *
8259
                          FROM THE
8260
                                (SELECT CAST
8261
                                        (in_list_number
8262
                                               (sviewidshowlist) AS relmgr_number_tab_t
8263
                                        )
8264
                                  FROM DUAL
8265
                                ))
8266
                   AND rtag_id = rtagid
8267
                 UNION
8268
                 /* Private Views collapsed */
8269
                 SELECT vi.view_id, vi.view_name,
8270
                      TO_NUMBER (NULL) AS pkg_state,
8271
                      TO_NUMBER (NULL) AS deprecated_state,
8272
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
8273
                      NULL AS pkg_version, NULL AS dlocked,
8274
                      NULL AS pv_description
8275
                  FROM view_settings vs,
8276
                      view_def vd,
8277
                      views vi,
8278
                      release_content rel,
8279
                      package_versions pv
8280
                  WHERE vs.view_id = vi.view_id
8281
                   AND rel.pv_id = pv.pv_id
8282
                   AND vd.pkg_id = pv.pkg_id
8283
                   AND vd.view_id = vi.view_id
8284
                   AND vi.base_view = 'N'
8285
                   AND rel.rtag_id = rtagid
8286
                   AND vs.user_id = userid
8287
                   AND vi.view_id NOT IN (
8288
                        SELECT *
8289
                          FROM THE
8290
                                (SELECT CAST
8291
                                        (in_list_number
8292
                                               (sviewidshowlist) AS relmgr_number_tab_t
8293
                                        )
8294
                                  FROM DUAL
8295
                                ))
8296
                 UNION
8297
                 /* Private Views expanded */
8298
                 SELECT vi.view_id, vi.view_name, rel.pkg_state,
8299
                      rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8300
                      pv.pkg_version, pv.dlocked, pv.pv_description
8301
                  FROM users usr,
8302
                      view_settings vs,
8303
                      view_def vd,
8304
                      views vi,
8305
                      release_content rel,
8306
                      PACKAGES pkg,
8307
                      package_versions pv
8308
                  WHERE vs.user_id = usr.user_id
8309
                   AND vs.view_id = vi.view_id
8310
                   AND vd.view_id = vi.view_id
8311
                   AND pv.pkg_id = pkg.pkg_id
8312
                   AND rel.pv_id = pv.pv_id
8313
                   AND rel.rtag_id = rtagid
8314
                   AND vd.pkg_id = pkg.pkg_id
8315
                   AND vi.base_view = 'N'
8316
                   AND vi.view_id IN (
8317
                        SELECT *
8318
                          FROM THE
8319
                                (SELECT CAST
8320
                                        (in_list_number
8321
                                               (sviewidshowlist) AS relmgr_number_tab_t
8322
                                        )
8323
                                  FROM DUAL
8324
                                ))
8325
                   AND usr.user_id = userid) ord
8326
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8327
     END IF;
8328
   END;
8329
 
8330
/*-------------------------------------------------------------------------------------------------------*/
8331
   PROCEDURE get_work_in_progress_items (
8332
     viewtype         IN      NUMBER,
8333
     userid           IN      NUMBER,
8334
     rtagid           IN      NUMBER,
8335
     sviewidshowlist  IN      VARCHAR2,
8336
     ntruerecordcount OUT     NUMBER,
8337
     recordset        OUT     typecur
8338
   )
8339
   IS
8340
   BEGIN
8341
     -- Get true record count because views can give false count
8342
     SELECT COUNT (wip.pv_id)
8343
      INTO ntruerecordcount
8344
      FROM work_in_progress wip
8345
      WHERE wip.rtag_id = rtagid;
8346
 
8347
     IF viewtype = 1
8348
     THEN
8349
       /*--- GUEST VIEW ---*/
8350
       OPEN recordset FOR
8351
         SELECT   *
8352
            FROM (
8353
                 /* Base Views collapsed */
8354
                 SELECT DISTINCT vi.view_id, vi.view_name,
8355
                             TO_NUMBER (NULL) AS pkg_state,
8356
                             TO_NUMBER (NULL) AS deprecated_state,
8357
                             TO_NUMBER (NULL) AS pv_id,
8358
                             NULL AS pkg_name, NULL AS pkg_version,
8359
                             NULL AS dlocked, NULL AS pv_description
8360
                         FROM work_in_progress rel, views vi
8361
                        WHERE rel.view_id = vi.view_id
8362
                          AND rtag_id = rtagid
8363
                          AND rel.view_id NOT IN (
8364
                               SELECT *
8365
                                 FROM THE
8366
                                       (SELECT CAST
8367
                                               (in_list_number
8368
                                                  (sviewidshowlist
8369
                                                  ) AS relmgr_number_tab_t
8370
                                               )
8371
                                         FROM DUAL
8372
                                       ))
8373
                 UNION
8374
                 /* Base Views expanded */
8375
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8376
 
8377
                      --rel.pkg_state,
8378
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8379
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8380
                      pv.pv_description
8381
                  FROM work_in_progress rel,
8382
                      PACKAGES pkg,
8383
                      package_versions pv,
8384
                      views vi
8385
                  WHERE pv.pkg_id = pkg.pkg_id
8386
                   AND rel.pv_id = pv.pv_id
8387
                   AND rel.view_id = vi.view_id
8388
                   AND rel.view_id IN (
8389
                        SELECT *
8390
                          FROM THE
8391
                                (SELECT CAST
8392
                                        (in_list_number
8393
                                               (sviewidshowlist) AS relmgr_number_tab_t
8394
                                        )
8395
                                  FROM DUAL
8396
                                ))
8397
                   AND rtag_id = rtagid) ord
8398
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8399
     ELSIF viewtype = 2
8400
     THEN
8401
       /*--- PERSONAL VIEW ---*/
8402
       OPEN recordset FOR
8403
         SELECT   *
8404
            FROM (
8405
                 /* Base Views collapsed */
8406
                 SELECT DISTINCT vi.view_id, vi.view_name,
8407
                             TO_NUMBER (NULL) AS pkg_state,
8408
                             TO_NUMBER (NULL) AS deprecated_state,
8409
                             TO_NUMBER (NULL) AS pv_id,
8410
                             NULL AS pkg_name, NULL AS pkg_version,
8411
                             NULL AS dlocked, NULL AS pv_description
8412
                         FROM work_in_progress rel,
8413
                             view_settings vs,
8414
                             views vi
8415
                        WHERE rel.view_id = vi.view_id
8416
                          AND vs.view_id = rel.view_id
8417
                          AND vs.user_id = userid
8418
                          AND rtag_id = rtagid
8419
                          AND rel.view_id NOT IN (
8420
                               SELECT *
8421
                                 FROM THE
8422
                                       (SELECT CAST
8423
                                               (in_list_number
8424
                                                  (sviewidshowlist
8425
                                                  ) AS relmgr_number_tab_t
8426
                                               )
8427
                                         FROM DUAL
8428
                                       ))
8429
                 UNION
8430
                 /* Base Views expanded */
8431
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8432
 
8433
                      --rel.pkg_state,
8434
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8435
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8436
                      pv.pv_description
8437
                  FROM work_in_progress rel,
8438
                      PACKAGES pkg,
8439
                      package_versions pv,
8440
                      views vi,
8441
                      view_settings vs
8442
                  WHERE pv.pkg_id = pkg.pkg_id
8443
                   AND rel.pv_id = pv.pv_id
8444
                   AND rel.view_id = vi.view_id
8445
                   AND vs.view_id = vi.view_id
8446
                   AND vs.user_id = userid
8447
                   AND rel.view_id IN (
8448
                        SELECT *
8449
                          FROM THE
8450
                                (SELECT CAST
8451
                                        (in_list_number
8452
                                               (sviewidshowlist) AS relmgr_number_tab_t
8453
                                        )
8454
                                  FROM DUAL
8455
                                ))
8456
                   AND rtag_id = rtagid
8457
                 UNION
8458
                 /* Private Views collapsed */
8459
                 SELECT vi.view_id, vi.view_name,
8460
                      TO_NUMBER (NULL) AS pkg_state,
8461
                      TO_NUMBER (NULL) AS deprecated_state,
8462
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
8463
                      NULL AS pkg_version, NULL AS dlocked,
8464
                      NULL AS pv_description
8465
                  FROM view_settings vs,
8466
                      view_def vd,
8467
                      views vi,
8468
                      work_in_progress rel,
8469
                      package_versions pv
8470
                  WHERE vs.view_id = vi.view_id
8471
                   AND rel.pv_id = pv.pv_id
8472
                   AND vd.pkg_id = pv.pkg_id
8473
                   AND vd.view_id = vi.view_id
8474
                   AND vi.base_view = 'N'
8475
                   AND rel.rtag_id = rtagid
8476
                   AND vs.user_id = userid
8477
                   AND vi.view_id NOT IN (
8478
                        SELECT *
8479
                          FROM THE
8480
                                (SELECT CAST
8481
                                        (in_list_number
8482
                                               (sviewidshowlist) AS relmgr_number_tab_t
8483
                                        )
8484
                                  FROM DUAL
8485
                                ))
8486
                 UNION
8487
                 /* Private Views expanded */
8488
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8489
 
8490
                      --rel.pkg_state,
8491
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8492
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8493
                      pv.pv_description
8494
                  FROM users usr,
8495
                      view_settings vs,
8496
                      view_def vd,
8497
                      views vi,
8498
                      work_in_progress rel,
8499
                      PACKAGES pkg,
8500
                      package_versions pv
8501
                  WHERE vs.user_id = usr.user_id
8502
                   AND vs.view_id = vi.view_id
8503
                   AND vd.view_id = vi.view_id
8504
                   AND pv.pkg_id = pkg.pkg_id
8505
                   AND rel.pv_id = pv.pv_id
8506
                   AND rel.rtag_id = rtagid
8507
                   AND vd.pkg_id = pkg.pkg_id
8508
                   AND vi.base_view = 'N'
8509
                   AND vi.view_id IN (
8510
                        SELECT *
8511
                          FROM THE
8512
                                (SELECT CAST
8513
                                        (in_list_number
8514
                                               (sviewidshowlist) AS relmgr_number_tab_t
8515
                                        )
8516
                                  FROM DUAL
8517
                                ))
8518
                   AND usr.user_id = userid) ord
8519
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8520
     END IF;
8521
   END;
8522
 
8523
/*-------------------------------------------------------------------------------------------------------*/
8524
   -- DEVI-45275 added the return of the new "operation" column in the recordset.
8525
 
8526
   PROCEDURE get_pending_items (
8527
     viewtype         IN      NUMBER,
8528
     userid           IN      NUMBER,
8529
     rtagid           IN      NUMBER,
8530
     sviewidshowlist  IN      VARCHAR2,
8531
     ntruerecordcount OUT     NUMBER,
8532
     recordset        OUT     typecur
8533
   )
8534
   IS
8535
   BEGIN
8536
     -- Get true record count because views can give false count
8537
     SELECT COUNT (pl.pv_id)
8538
      INTO ntruerecordcount
8539
      FROM planned pl
8540
      WHERE pl.rtag_id = rtagid;
8541
 
8542
     IF viewtype = 1
8543
     THEN
8544
       /*--- GUEST VIEW ---*/
8545
       OPEN recordset FOR
8546
         SELECT   *
8547
            FROM (
8548
                 /* Base Views collapsed */
8549
                 SELECT DISTINCT vi.view_id, vi.view_name,
8550
                             TO_NUMBER (NULL) AS pkg_state,
8551
                             TO_NUMBER (NULL) AS deprecated_state,
8552
                             TO_NUMBER (NULL) AS pv_id,
8553
                             NULL AS pkg_name, NULL AS pkg_version,
8554
                             NULL AS dlocked, NULL AS pv_description,
8555
                             rel.operation
8556
                         FROM planned rel, views vi
8557
                        WHERE rel.view_id = vi.view_id
8558
                          AND rtag_id = rtagid
8559
                          AND rel.view_id NOT IN (
8560
                               SELECT *
8561
                                 FROM THE
8562
                                       (SELECT CAST
8563
                                               (in_list_number
8564
                                                  (sviewidshowlist
8565
                                                  ) AS relmgr_number_tab_t
8566
                                               )
8567
                                         FROM DUAL
8568
                                       ))
8569
                 UNION
8570
                 /* Base Views expanded */
8571
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8572
 
8573
                      --rel.pkg_state,
8574
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8575
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8576
                      pv.pv_description,
8577
                      rel.operation
8578
                  FROM planned rel,
8579
                      PACKAGES pkg,
8580
                      package_versions pv,
8581
                      views vi
8582
                  WHERE pv.pkg_id = pkg.pkg_id
8583
                   AND rel.pv_id = pv.pv_id
8584
                   AND rel.view_id = vi.view_id
8585
                   AND rel.view_id IN (
8586
                        SELECT *
8587
                          FROM THE
8588
                                (SELECT CAST
8589
                                        (in_list_number
8590
                                               (sviewidshowlist) AS relmgr_number_tab_t
8591
                                        )
8592
                                  FROM DUAL
8593
                                ))
8594
                   AND rtag_id = rtagid) ord
8595
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8596
     ELSIF viewtype = 2
8597
     THEN
8598
       /*--- PERSONAL VIEW ---*/
8599
       OPEN recordset FOR
8600
         SELECT   *
8601
            FROM (
8602
                 /* Base Views collapsed */
8603
                 SELECT DISTINCT vi.view_id, vi.view_name,
8604
                             TO_NUMBER (NULL) AS pkg_state,
8605
                             TO_NUMBER (NULL) AS deprecated_state,
8606
                             TO_NUMBER (NULL) AS pv_id,
8607
                             NULL AS pkg_name, NULL AS pkg_version,
8608
                             NULL AS dlocked, NULL AS pv_description,
8609
                             rel.operation
8610
                         FROM planned rel, view_settings vs, views vi
8611
                        WHERE rel.view_id = vi.view_id
8612
                          AND vs.view_id = rel.view_id
8613
                          AND vs.user_id = userid
8614
                          AND rtag_id = rtagid
8615
                          AND rel.view_id NOT IN (
8616
                               SELECT *
8617
                                 FROM THE
8618
                                       (SELECT CAST
8619
                                               (in_list_number
8620
                                                  (sviewidshowlist
8621
                                                  ) AS relmgr_number_tab_t
8622
                                               )
8623
                                         FROM DUAL
8624
                                       ))
8625
                 UNION
8626
                 /* Base Views expanded */
8627
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8628
 
8629
                      --rel.pkg_state,
8630
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8631
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8632
                      pv.pv_description,
8633
                      rel.operation
8634
                  FROM planned rel,
8635
                      PACKAGES pkg,
8636
                      package_versions pv,
8637
                      views vi,
8638
                      view_settings vs
8639
                  WHERE pv.pkg_id = pkg.pkg_id
8640
                   AND rel.pv_id = pv.pv_id
8641
                   AND rel.view_id = vi.view_id
8642
                   AND vs.view_id = vi.view_id
8643
                   AND vs.user_id = userid
8644
                   AND rel.view_id IN (
8645
                        SELECT *
8646
                          FROM THE
8647
                                (SELECT CAST
8648
                                        (in_list_number
8649
                                               (sviewidshowlist) AS relmgr_number_tab_t
8650
                                        )
8651
                                  FROM DUAL
8652
                                ))
8653
                   AND rtag_id = rtagid
8654
                 UNION
8655
                 /* Private Views collapsed */
8656
                 SELECT vi.view_id, vi.view_name,
8657
                      TO_NUMBER (NULL) AS pkg_state,
8658
                      TO_NUMBER (NULL) AS deprecated_state,
8659
                      TO_NUMBER (NULL) AS pv_id, NULL AS pkg_name,
8660
                      NULL AS pkg_version, NULL AS dlocked,
8661
                      NULL AS pv_description,
8662
                      rel.operation
8663
                  FROM view_settings vs,
8664
                      view_def vd,
8665
                      views vi,
8666
                      planned rel,
8667
                      package_versions pv
8668
                  WHERE vs.view_id = vi.view_id
8669
                   AND rel.pv_id = pv.pv_id
8670
                   AND vd.pkg_id = pv.pkg_id
8671
                   AND vd.view_id = vi.view_id
8672
                   AND vi.base_view = 'N'
8673
                   AND rel.rtag_id = rtagid
8674
                   AND vs.user_id = userid
8675
                   AND vi.view_id NOT IN (
8676
                        SELECT *
8677
                          FROM THE
8678
                                (SELECT CAST
8679
                                        (in_list_number
8680
                                               (sviewidshowlist) AS relmgr_number_tab_t
8681
                                        )
8682
                                  FROM DUAL
8683
                                ))
8684
                 UNION
8685
                 /* Private Views expanded */
8686
                 SELECT vi.view_id, vi.view_name, 0 AS pkg_state,
8687
 
8688
                      --rel.pkg_state,
8689
                      TO_NUMBER (NULL) AS deprecated_state, pv.pv_id,
8690
                      pkg.pkg_name, pv.pkg_version, pv.dlocked,
8691
                      pv.pv_description,
8692
                      rel.operation
8693
                  FROM users usr,
8694
                      view_settings vs,
8695
                      view_def vd,
8696
                      views vi,
8697
                      planned rel,
8698
                      PACKAGES pkg,
8699
                      package_versions pv
8700
                  WHERE vs.user_id = usr.user_id
8701
                   AND vs.view_id = vi.view_id
8702
                   AND vd.view_id = vi.view_id
8703
                   AND pv.pkg_id = pkg.pkg_id
8704
                   AND rel.pv_id = pv.pv_id
8705
                   AND rel.rtag_id = rtagid
8706
                   AND vd.pkg_id = pkg.pkg_id
8707
                   AND vi.base_view = 'N'
8708
                   AND vi.view_id IN (
8709
                        SELECT *
8710
                          FROM THE
8711
                                (SELECT CAST
8712
                                        (in_list_number
8713
                                               (sviewidshowlist) AS relmgr_number_tab_t
8714
                                        )
8715
                                  FROM DUAL
8716
                                ))
8717
                   AND usr.user_id = userid) ord
8718
         ORDER BY UPPER (ord.view_name), UPPER (ord.pkg_name);
8719
     END IF;
8720
   END;
8721
 
8722
/*-------------------------------------------------------------------------------------------------------*/
8723
   PROCEDURE get_view_content (
8724
     rtagid     IN      NUMBER,
8725
     viewid     IN      NUMBER,
8726
     recordset OUT     typecur
8727
   )
8728
   IS
8729
     isbaseview   CHAR (1);
8730
   BEGIN
8731
     -- Check if the view is BASE VIEW
8732
     SELECT vi.base_view
8733
      INTO isbaseview
8734
      FROM views vi
8735
      WHERE vi.view_id = viewid;
8736
 
5172 dpurdie 8737
     IF (IsBaseView IN ('Y', 'S'))
1373 dpurdie 8738
     THEN
8739
       -- Get Base view content
8740
       OPEN recordset FOR
8741
         SELECT   DECODE (rel.pkg_state,
8742
                      NULL, 0,
8743
                      rel.pkg_state
8744
                     ) AS pkg_state,
8745
                rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8746
                pv.pkg_version, pv.dlocked, pv.pv_description,
8747
                pv.build_type,
8748
                rel.operation
8749
            FROM environment_view rel, PACKAGES pkg, package_versions pv
8750
            WHERE pv.pkg_id = pkg.pkg_id
8751
             AND rel.pv_id = pv.pv_id
8752
             AND rel.view_id = viewid
8753
             AND rel.rtag_id = rtagid
8754
         ORDER BY UPPER (pkg.pkg_name);
8755
     ELSE
8756
       -- Get non base view content
8757
       OPEN recordset FOR
8758
         SELECT   DECODE (rel.pkg_state,
8759
                      NULL, 0,
8760
                      rel.pkg_state
8761
                     ) AS pkg_state,
8762
                rel.deprecated_state, pv.pv_id, pkg.pkg_name,
8763
                pv.pkg_version, pv.dlocked, pv.pv_description,
8764
                pv.build_type,
8765
                rel.operation
8766
            FROM environment_view rel,
8767
                PACKAGES pkg,
8768
                package_versions pv,
8769
                view_def vd
8770
            WHERE pv.pkg_id = pkg.pkg_id
8771
             AND rel.pv_id = pv.pv_id
8772
             AND rel.rtag_id = rtagid
8773
             AND vd.view_id = viewid
8774
             AND vd.pkg_id = pv.pkg_id
8775
         ORDER BY UPPER (pkg.pkg_name);
8776
     END IF;
8777
   END;
8778
 
8779
/*-------------------------------------------------------------------------------------------------------*/
8780
   FUNCTION get_package_view (pvid IN NUMBER, rtagid IN NUMBER)
8781
     RETURN NUMBER
8782
   IS
8783
     envtab           NUMBER;
8784
     returnvalue      NUMBER;
8785
     return_not_found NUMBER := -1;
8786
   BEGIN
8787
     envtab := get_package_area (pvid, rtagid);
8788
 
8789
     IF envtab = 0
8790
     THEN
8791
       -- WORK IN PROGRESS --
8792
       returnvalue := pk_work_in_progress.get_package_view (pvid, rtagid);
8793
     ELSIF envtab = 1
8794
     THEN
8795
       -- PENDING --
8796
       returnvalue := pk_planned.get_package_view (pvid, rtagid);
8797
     ELSIF envtab = 2
8798
     THEN
8799
       -- RELEASED --
8800
       returnvalue := pk_release.get_package_view (pvid, rtagid);
8801
     ELSE
8802
       -- This may be a Patch not located anywhere but unlocked
8803
       returnvalue := return_not_found;
8804
     END IF;
8805
 
8806
     RETURN returnvalue;
8807
   END;
8808
 
8809
/*-------------------------------------------------------------------------------------------------------*/
5172 dpurdie 8810
  PROCEDURE make_release (
4585 dpurdie 8811
     pvid          IN   NUMBER,                         -- NEW  PKG pvid
8812
     rtagid        IN   NUMBER,                         -- Release Id
8813
     userid        IN   NUMBER                          -- User performing Release
8814
   )
1373 dpurdie 8815
   IS
8816
     viewid        NUMBER;
8817
     envtab        NUMBER;
8818
     ispatch       CHAR (1) := NULL;
8819
     buildtype     CHAR (1) := NULL;
8820
   BEGIN
8821
     -- Check if package is patch
8822
     SELECT pv.is_patch, pv.build_type
8823
      INTO ispatch, buildtype
8824
      FROM package_versions pv
8825
      WHERE pv.pv_id = pvid;
8826
 
8827
     -- Get ViewId
8828
     viewid := get_package_view (pvid, rtagid);
8829
     -- Remove from current area
8830
     envtab := pk_environment.get_package_area (pvid, rtagid);
8831
 
8832
     -- Make sure that package was in work-in-progress or pending before makeing it release
8833
     -- Exclude patches, ripple builds
8834
     IF (envtab < 0)
8835
     THEN
8836
       -- Not found in work-in-progress or pending
8837
       IF (ispatch IS NULL) AND (buildtype = 'M')
8838
       THEN
8839
         raise_application_error (-20000,
8840
                            'This package cannot be released here.'
8841
                           );
8842
       END IF;
8843
     END IF;
8844
 
8845
     IF envtab = 0
8846
     THEN
8847
       -- WORK IN PROGRESS --
8848
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
8849
     ELSIF envtab = 1
8850
     THEN
8851
       -- PENDING --
8852
       pk_planned.remove_package (pvid, rtagid, userid);
8853
     END IF;
8854
 
8855
     -- Change package state
4585 dpurdie 8856
     -- Set dlocked state to mark the package a 'Released and Locked'
1373 dpurdie 8857
     pk_package.change_state (pvid, 'Y', userid);
8858
 
8859
     -- Make sure it is valid BASE VIEW
8860
     IF viewid < 1
8861
     THEN
8862
       viewid := 7;                     -- This is default base view
8863
     END IF;
8864
 
8865
     IF (ispatch IS NULL)
8866
     THEN
4585 dpurdie 8867
       -- Add (Replace) package to new area
1373 dpurdie 8868
       pk_release.add_package (pvid, viewid, rtagid, userid);
8869
     END IF;
8870
 
8871
     -- Now do post Release Actions
8872
     pk_release.run_post_actions (pvid, rtagid);
8873
 
8874
     -- The release has changed and there may now be invalid rtag_id/pv_id combinations in
8875
     -- the DO_NOT_RIPPLE and ADVISORY_RIPPLE Tables so perform a clean-up operation upon them.
8876
     clean_do_not_ripple(rtagid);
8877
     clean_advisory_ripple(rtagid);
8878
 
8879
   END;
8880
 
8881
/*-------------------------------------------------------------------------------------------------------*/
4585 dpurdie 8882
  --  Release a specified package into a specified release
8883
  --
8884
  --  Similar to 'make_release', but it attempts to handle the case where a package-version
8885
  --  is being replaced with one with a different package-suffix, but it doesn't
6031 dpurdie 8886
  --  handle all the cases well.
4585 dpurdie 8887
  --
8888
  --  The current build system cannot do this automatically - yet
8889
  --
8890
  --
1373 dpurdie 8891
   PROCEDURE auto_make_release (
4585 dpurdie 8892
     pvid          IN   NUMBER,                         -- NEW  PKG pvid
8893
     rtagid        IN   NUMBER,                         -- Release Id
8894
     userid        IN   NUMBER,                         -- User performing Release
8895
     vext          IN   package_versions.v_ext%TYPE,    -- Package Extension for original pkg
8896
     ssv_ext       IN   package_versions.v_ext%TYPE,    -- Package Extension for new package
8897
     clonefrompvid IN   NUMBER                          -- PVID of Original
1373 dpurdie 8898
   )
8899
   IS
8900
     viewid        NUMBER;
8901
     envtab        NUMBER;
4585 dpurdie 8902
 
8903
     clone_removal NUMBER := 0;
8904
     clone_viewid  NUMBER := -1;
8905
     clone_envtab  NUMBER := -1;
8906
 
1373 dpurdie 8907
     ispatch       CHAR (1) := NULL;
4585 dpurdie 8908
     buildtype     CHAR (1) := NULL;
8909
 
1373 dpurdie 8910
   BEGIN
8911
     -- Check if package is patch
8912
     SELECT pv.is_patch, pv.build_type
8913
      INTO ispatch, buildtype
8914
      FROM package_versions pv
8915
      WHERE pv.pv_id = pvid;
8916
 
4585 dpurdie 8917
     --
8918
     -- Determine the viewid and environment for the new package
8919
     --
8920
     viewid := get_package_view (pvid, rtagid);
8921
     envtab := pk_environment.get_package_area (pvid, rtagid);
8922
 
8923
     --
8924
     -- If changing pkgExt, then we need to delete the orig package, not just replace it
8925
     --
8926
     IF (clonefrompvid is NOT NULL) AND (vext <> ssv_ext)
1373 dpurdie 8927
     THEN
4585 dpurdie 8928
        clone_removal := 1;
8929
        clone_viewid := get_package_view (clonefrompvid, rtagid);
8930
        clone_envtab := pk_environment.get_package_area (clonefrompvid, rtagid);
1373 dpurdie 8931
     END IF;
8932
 
4585 dpurdie 8933
     --
1373 dpurdie 8934
     -- Make sure that package was in work-in-progress or pending before makeing it release
8935
     -- Exclude patches, ripple builds
4585 dpurdie 8936
     --
1373 dpurdie 8937
     IF (envtab < 0)
8938
     THEN
8939
       -- Not found in work-in-progress or pending
8940
       IF (ispatch IS NULL) AND (buildtype = 'M')
8941
       THEN
8942
         raise_application_error (-20000,
8943
                            'This package cannot be released here.'
8944
                           );
8945
       END IF;
8946
     END IF;
8947
 
4585 dpurdie 8948
     --
8949
     -- Remove the package from the WIP or PENDING tab
6031 dpurdie 8950
     -- Do NOT remove from the release area.
4585 dpurdie 8951
     --     This will be handled later with a process that
8952
     --     will do a 'replace' so that meta data is not lost
8953
     --
8954
    IF envtab = 0
8955
    THEN
8956
        -- WORK IN PROGRESS --
8957
        pk_work_in_progress.remove_package (pvid, rtagid, userid);
8958
    ELSIF envtab = 1
8959
    THEN
8960
        -- PENDING --
8961
        pk_planned.remove_package (pvid, rtagid, userid);
8962
    END IF;
8963
 
8964
    --
8965
    --  If we are changing the pkgExt, then fully remove the base package
8966
    --  This includes removing it from the 'release' area.
8967
    --
8968
    IF clone_removal = 1
8969
    THEN
8970
        IF clone_envtab = 0
8971
        THEN
8972
            -- WORK IN PROGRESS --
8973
            pk_work_in_progress.remove_package (clonefrompvid, rtagid, userid);
8974
        ELSIF clone_envtab = 1
8975
        THEN
8976
            -- PENDING --
8977
            pk_planned.remove_package (clonefrompvid, rtagid, userid);
8978
        ELSIF clone_envtab = 2
8979
        THEN
8980
            -- RELEASED --
8981
            pk_release.remove_package (clonefrompvid, rtagid, userid);
1373 dpurdie 8982
       END IF;
4585 dpurdie 8983
    END IF;
1373 dpurdie 8984
 
8985
     -- Change package state
4585 dpurdie 8986
     -- Set dlocked state to mark the package a 'Released and Locked'
1373 dpurdie 8987
     pk_package.change_state (pvid, 'Y', userid);
8988
 
8989
     -- Make sure it is valid BASE VIEW
4585 dpurdie 8990
     -- If its not specified, give it a default (7) view
1373 dpurdie 8991
     IF viewid < 1
8992
     THEN
4585 dpurdie 8993
        IF clone_viewid >= 0
8994
        THEN
6031 dpurdie 8995
            viewid := clone_viewid;
4585 dpurdie 8996
        ELSE
8997
            viewid := 7;
8998
        END IF;
1373 dpurdie 8999
     END IF;
9000
 
9001
     IF (ispatch IS NULL)
9002
     THEN
4585 dpurdie 9003
       -- Add (Replace) package to new area
1373 dpurdie 9004
       pk_release.add_package (pvid, viewid, rtagid, userid);
9005
     END IF;
9006
 
9007
     -- Now do post Release Actions
9008
     pk_release.run_post_actions (pvid, rtagid);
9009
     -- Now update the Dash_Board Table (DEPRECATED)
9010
     pk_rmapi.update_dash_board (rtagid);
9011
 
9012
     -- The release has changed and there may now be invalid rtag_id/pv_id combinations in
9013
     -- the DO_NOT_RIPPLE and ADVISORY_RIPPLE Tables so perform a clean-up operation upon them.
9014
     clean_do_not_ripple(rtagid);
9015
     clean_advisory_ripple(rtagid);
9016
 
9017
   END;
9018
 
5172 dpurdie 9019
 
1373 dpurdie 9020
/*-------------------------------------------------------------------------------------------------------*/
9021
   PROCEDURE make_unrelease (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
9022
   IS
9023
     viewid   NUMBER;
9024
     envtab   NUMBER;
9025
   BEGIN
9026
     -- Get ViewId
9027
     --ViewId := PK_RELEASE.GET_PACKAGE_VIEW ( PvId, RtagId );
9028
     viewid := get_package_view (pvid, rtagid);
9029
     -- Remove from current area
9030
     envtab := pk_environment.get_package_area (pvid, rtagid);
9031
 
9032
     IF envtab = 2
9033
     THEN
9034
       -- RELEASE AREA --
9035
       pk_release.remove_package (pvid, rtagid, userid);
9036
     ELSIF envtab = 1
9037
     THEN
9038
       -- PENDING --
9039
       pk_planned.remove_package (pvid, rtagid, userid);
9040
     END IF;
9041
 
9042
     -- Change package state
9043
     pk_package.change_state (pvid, 'N', userid);
9044
 
9045
     -- Make sure it is valid BASE VIEW
9046
     IF viewid < 1
9047
     THEN
9048
       viewid := 7;                     -- This is default base view
9049
     END IF;
9050
 
9051
     -- Add package to new area
9052
     pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
9053
     -- Now do post Release Actions
9054
     pk_release.run_post_actions (pvid, rtagid);
9055
   END;
9056
 
9057
/*-------------------------------------------------------------------------------------------------------*/
9058
   PROCEDURE make_pending (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
9059
   IS
9060
     viewid     NUMBER;
9061
     ispatch    CHAR (1) := NULL;
9062
     buildtype  CHAR (1) := NULL;
9063
   BEGIN
9064
     -- Check if package is patch
9065
     SELECT pv.is_patch, pv.build_type
9066
      INTO ispatch, buildtype
9067
      FROM package_versions pv
9068
      WHERE pv.pv_id = pvid;
9069
 
9070
     -- Get ViewId
9071
     viewid := get_package_view (pvid, rtagid);
9072
     --ViewId := PK_WORK_IN_PROGRESS.GET_PACKAGE_VIEW ( PvId, RtagId );
9073
 
9074
     IF (ispatch IS NULL)
9075
     THEN
9076
       -- Remove from current area
9077
       pk_work_in_progress.remove_package (pvid, rtagid, userid);
9078
       -- Change package state
9079
       pk_package.change_state (pvid, 'P', userid);
9080
       -- Add package to new area
9081
       pk_planned.add_package (pvid, viewid, rtagid, userid);
9082
     END IF;
9083
   END;
9084
 
9085
/*-------------------------------------------------------------------------------------------------------*/
9086
   PROCEDURE make_approved (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
9087
   IS
9088
   BEGIN
9089
     -- Change package state
9090
     pk_package.change_state (pvid, 'A', userid);
6031 dpurdie 9091
 
5172 dpurdie 9092
     -- Flag Release has changed for the purposes of building
9093
     PK_RELEASE.SET_RELEASE_MODIFIED(rtagid);
1373 dpurdie 9094
   END;
9095
 
9096
/*-------------------------------------------------------------------------------------------------------*/
9097
   PROCEDURE make_reject (pvid IN NUMBER, rtagid IN NUMBER, userid IN NUMBER)
9098
   IS
9099
     viewid   NUMBER;
9100
     operation CHAR;
9101
   BEGIN
9102
     -- Get ViewId
9103
     viewid := get_package_view (pvid, rtagid);
9104
     -- ViewId := PK_PLANNED.GET_PACKAGE_VIEW ( PvId, RtagId );
9105
 
9106
     -- DEVI-45275
9107
     -- If the package version is an official version that is to be rejected from a merge operation
9108
     -- then find out in order to prevent it being added back to work-in-progress table . This will
9109
     -- be denoted by the operation field in the planned table being A or S
9110
     operation := ' ';
9111
     SELECT
9112
     (CASE WHEN pl.operation IS NOT NULL THEN pl.operation ELSE ' ' END) INTO operation
9113
     FROM planned pl
9114
     WHERE pl.PV_ID = pvid
9115
     AND pl.RTAG_ID = rtagid;
9116
 
9117
     -- Remove from current area
9118
     pk_planned.remove_package (pvid, rtagid, userid);
9119
 
9120
     -- DEVI-45275 - Prevent merge candidate from being added back to work-in-progress table .
9121
     IF operation <> 'A' AND operation <> 'S'
9122
     THEN
9123
     -- Change package state
9124
     pk_package.change_state (pvid, 'R', userid);
9125
     -- Add package to new area
9126
     pk_work_in_progress.add_package (pvid, viewid, rtagid, userid);
9127
     ELSE
9128
      log_action (pvid, 'action', userid, 'Rejected Package Merge');
9129
     END IF;
9130
   END;
9131
 
9132
/*-------------------------------------------------------------------------------------------------------*/
9133
   PROCEDURE change_package_view (
9134
     pvid       IN   NUMBER,
9135
     rtagid     IN   NUMBER,
9136
     newviewid  IN   NUMBER
9137
   )
9138
   IS
9139
     envtab   NUMBER;
9140
   BEGIN
9141
     envtab := pk_environment.get_package_area (pvid, rtagid);
9142
 
9143
     IF envtab = 0
9144
     THEN
9145
       -- WORK IN PROGRESS --
9146
       pk_work_in_progress.change_package_view (pvid, rtagid, newviewid);
9147
     ELSIF envtab = 1
9148
     THEN
9149
       -- PENDING --
9150
       pk_planned.change_package_view (pvid, rtagid, newviewid);
9151
     ELSIF envtab = 2
9152
     THEN
9153
       -- RELEASED --
9154
       pk_release.change_package_view (pvid, rtagid, newviewid);
9155
     END IF;
9156
   END;
9157
 
9158
/*-------------------------------------------------------------------------------------------------------*/
9159
   PROCEDURE find_package (
9160
     skeyword     IN      VARCHAR2,
9161
     nrtagid      IN      NUMBER,
9162
     nsearcharea  IN      NUMBER,
9163
     recordset    OUT     typecur
9164
   )
9165
   IS
9166
   BEGIN
9167
     IF nsearcharea = 0
9168
     THEN
9169
       /* Search Work In Progress */
9170
       OPEN recordset FOR
9171
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
9172
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
9173
                pv.modified_stamp, usr.full_name, usr.user_email
9174
           FROM views vi,
9175
                work_in_progress rc,
9176
                PACKAGES pkg,
9177
                package_versions pv,
9178
                users usr
9179
          WHERE rc.view_id = vi.view_id
9180
            AND rc.pv_id = pv.pv_id
9181
            AND pkg.pkg_id = pv.pkg_id
9182
            AND pv.modifier_id = usr.user_id
9183
            AND rc.rtag_id = nrtagid
9184
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
9185
       ORDER BY UPPER (pkg.pkg_name);
9186
     ELSIF nsearcharea = 1
9187
     THEN
9188
       /* Search Pending */
9189
       OPEN recordset FOR
9190
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
9191
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
9192
                pv.modified_stamp, usr.full_name, usr.user_email
9193
           FROM views vi,
9194
                planned rc,
9195
                PACKAGES pkg,
9196
                package_versions pv,
9197
                users usr
9198
          WHERE rc.view_id = vi.view_id
9199
            AND rc.pv_id = pv.pv_id
9200
            AND pkg.pkg_id = pv.pkg_id
9201
            AND pv.modifier_id = usr.user_id
9202
            AND rc.rtag_id = nrtagid
9203
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
9204
       ORDER BY UPPER (pkg.pkg_name);
9205
     ELSIF nsearcharea = 2
9206
     THEN
9207
       /* Search Released */
9208
       OPEN recordset FOR
9209
         SELECT nsearcharea AS env_area, vi.view_name, pv.dlocked,
9210
                pkg.pkg_name, pv.pv_id, pv.pkg_version, pv.comments,
9211
                pv.modified_stamp, usr.full_name, usr.user_email
9212
           FROM views vi,
9213
                release_content rc,
9214
                PACKAGES pkg,
9215
                package_versions pv,
9216
                users usr
9217
          WHERE rc.base_view_id = vi.view_id
9218
            AND rc.pv_id = pv.pv_id
9219
            AND pkg.pkg_id = pv.pkg_id
9220
            AND pv.modifier_id = usr.user_id
9221
            AND rc.rtag_id = nrtagid
9222
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
9223
         ORDER BY UPPER (pkg.pkg_name);
9224
     ELSIF nsearcharea = 3
9225
     THEN
9226
       /* Search ALL */
9227
       OPEN recordset FOR
9228
         SELECT rc.env_area, vi.view_name, pv.dlocked, pkg.pkg_name,
9229
                pv.pv_id, pv.pkg_version, pv.comments,
9230
                pv.modified_stamp, usr.full_name, usr.user_email
9231
           FROM views vi,
9232
                environment_view rc,
9233
                PACKAGES pkg,
9234
                package_versions pv,
9235
                users usr
9236
          WHERE rc.view_id = vi.view_id
9237
            AND rc.pv_id = pv.pv_id
9238
            AND pkg.pkg_id = pv.pkg_id
9239
            AND pv.modifier_id = usr.user_id
9240
            AND rc.rtag_id = nrtagid
9241
            AND UPPER (pkg.pkg_name) LIKE UPPER (skeyword)
9242
         ORDER BY UPPER (pkg.pkg_name);
9243
     END IF;
9244
   END;
9245
 
9246
/*-------------------------------------------------------------------------------------------------------*/
9247
   PROCEDURE find_file (
9248
     skeyword     IN      VARCHAR2,
9249
     nrtagid      IN      NUMBER,
9250
     nsearcharea  IN      NUMBER,
9251
     npagesize    IN      NUMBER,
9252
     recordset    OUT     typecur
9253
   )
9254
   IS
9255
   BEGIN
9256
     IF nsearcharea = 0
9257
     THEN
9258
       /* Search Work In Progress */
9259
       OPEN recordset FOR
9260
         SELECT   qry.*
9261
            FROM (
9262
                 /* File search on Packages */
9263
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9264
                        pv.pv_id, pv.pkg_version, art.crc_cksum
9265
                   FROM work_in_progress rc,
9266
                        PACKAGES pkg,
9267
                        package_versions pv,
9268
                        release_components art
9269
                  WHERE rc.pv_id = art.pv_id
9270
                    AND pv.pkg_id = pkg.pkg_id
9271
                    AND rc.pv_id = pv.pv_id
9272
                    AND rc.rtag_id = nrtagid
9273
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9274
                 UNION ALL
9275
                 /* File search on Products */
9276
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9277
                        pv.pv_id, pv.pkg_version, art.crc_cksum
9278
                   FROM work_in_progress rc,
9279
                        PACKAGES pkg,
9280
                        package_versions pv,
9281
                        product_components art
9282
                  WHERE rc.pv_id = art.pv_id
9283
                    AND pv.pkg_id = pkg.pkg_id
9284
                    AND rc.pv_id = pv.pv_id
9285
                    AND rc.rtag_id = nrtagid
9286
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
9287
            WHERE ROWNUM <= npagesize
9288
         ORDER BY UPPER (qry.pkg_name);
9289
     ELSIF nsearcharea = 1
9290
     THEN
9291
       /* Search Pending */
9292
       OPEN recordset FOR
9293
         SELECT   qry.*
9294
            FROM (
9295
                 /* File search on Packages */
9296
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9297
                        pv.pv_id, pv.pkg_version, art.crc_cksum
9298
                   FROM planned rc,
9299
                        PACKAGES pkg,
9300
                        package_versions pv,
9301
                        release_components art
9302
                  WHERE rc.pv_id = art.pv_id
9303
                    AND pv.pkg_id = pkg.pkg_id
9304
                    AND rc.pv_id = pv.pv_id
9305
                    AND rc.rtag_id = nrtagid
9306
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9307
                 UNION ALL
9308
                 /* File search on Products */
9309
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9310
                        pv.pv_id, pv.pkg_version, art.crc_cksum
9311
                   FROM planned rc,
9312
                        PACKAGES pkg,
9313
                        package_versions pv,
9314
                        product_components art
9315
                  WHERE rc.pv_id = art.pv_id
9316
                    AND pv.pkg_id = pkg.pkg_id
9317
                    AND rc.pv_id = pv.pv_id
9318
                    AND rc.rtag_id = nrtagid
9319
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
9320
            WHERE ROWNUM <= npagesize
9321
         ORDER BY UPPER (qry.pkg_name);
9322
     ELSIF nsearcharea = 2
9323
     THEN
9324
       /* Search Released */
9325
       OPEN recordset FOR
9326
         SELECT   qry.*
9327
            FROM (
9328
                 /* File search on Packages */
9329
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9330
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9331
                        NULL AS patch_id
9332
                   FROM release_content rc,
9333
                        PACKAGES pkg,
9334
                        package_versions pv,
9335
                        release_components art
9336
                  WHERE rc.pv_id = art.pv_id
9337
                    AND pv.pkg_id = pkg.pkg_id
9338
                    AND rc.pv_id = pv.pv_id
9339
                    AND rc.rtag_id = nrtagid
9340
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9341
                 UNION ALL
9342
                 /* File search on Products */
9343
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9344
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9345
                        NULL AS patch_id
9346
                   FROM release_content rc,
9347
                        PACKAGES pkg,
9348
                        package_versions pv,
9349
                        product_components art
9350
                  WHERE rc.pv_id = art.pv_id
9351
                    AND pv.pkg_id = pkg.pkg_id
9352
                    AND rc.pv_id = pv.pv_id
9353
                    AND rc.rtag_id = nrtagid
9354
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9355
                 UNION ALL
9356
                 /* File search on Patches */
9357
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9358
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9359
                        DECODE (art.file_path,
9360
                                NULL, pp.patch_id,
9361
                                NULL
9362
                                ) AS patch_id
9363
                   FROM release_content rc,
9364
                        PACKAGES pkg,
9365
                        package_versions pv,
9366
                        release_components art,
9367
                        package_patches pp
9368
                  WHERE pv.pv_id = pp.pv_id
9369
                    AND pv.pkg_id = pkg.pkg_id
9370
                    AND rc.rtag_id = nrtagid
9371
                    AND art.pv_id = pp.patch_id
9372
                    AND rc.pv_id = pp.pv_id
9373
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
9374
            WHERE ROWNUM <= npagesize
9375
         ORDER BY UPPER (qry.pkg_name);
9376
     ELSIF nsearcharea = 3
9377
     THEN
9378
       /* Search ALL */
9379
       OPEN recordset FOR
9380
         SELECT   qry.*
9381
            FROM (
9382
                 /* File search on Packages */
9383
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9384
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9385
                        NULL AS patch_id
9386
                   FROM environment_view rc,
9387
                        PACKAGES pkg,
9388
                        package_versions pv,
9389
                        release_components art
9390
                  WHERE rc.pv_id = art.pv_id
9391
                    AND pv.pkg_id = pkg.pkg_id
9392
                    AND rc.pv_id = pv.pv_id
9393
                    AND rc.rtag_id = nrtagid
9394
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9395
                 UNION ALL
9396
                 /* File search on Products */
9397
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9398
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9399
                        NULL AS patch_id
9400
                   FROM environment_view rc,
9401
                        PACKAGES pkg,
9402
                        package_versions pv,
9403
                        product_components art
9404
                  WHERE rc.pv_id = art.pv_id
9405
                    AND pv.pkg_id = pkg.pkg_id
9406
                    AND rc.pv_id = pv.pv_id
9407
                    AND rc.rtag_id = nrtagid
9408
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)
9409
                 UNION ALL
9410
                 /* File search on Patches */
9411
                 SELECT art.file_name, art.file_path, pkg.pkg_name,
9412
                        pv.pv_id, pv.pkg_version, art.crc_cksum,
9413
                        DECODE (art.file_path,
9414
                                NULL, pp.patch_id,
9415
                                NULL
9416
                               ) AS patch_id
9417
                   FROM release_content rc,
9418
                        PACKAGES pkg,
9419
                        package_versions pv,
9420
                        release_components art,
9421
                        package_patches pp
9422
                  WHERE pv.pv_id = pp.pv_id
9423
                    AND pv.pkg_id = pkg.pkg_id
9424
                    AND rc.rtag_id = nrtagid
9425
                    AND art.pv_id = pp.patch_id
9426
                    AND rc.pv_id = pp.pv_id
9427
                    AND UPPER (art.file_name) LIKE UPPER (skeyword)) qry
9428
            WHERE ROWNUM <= npagesize
9429
         ORDER BY UPPER (qry.pkg_name);
9430
     END IF;
9431
   END;
9432
 
9433
/*-------------------------------------------------------------------------------------------------------*/
9434
   PROCEDURE get_prodrelease_items (
9435
     rtagid           IN      NUMBER,
9436
     ntruerecordcount OUT     NUMBER,
9437
     recordset        OUT     typecur
9438
   )
9439
   IS
9440
   BEGIN
9441
     -- Get true record count n the number of integration products
9442
     SELECT COUNT (rc.pv_id)
9443
      INTO ntruerecordcount
9444
      FROM release_content rc
9445
      WHERE rc.rtag_id = rtagid;
9446
 
9447
     OPEN recordset FOR
9448
       SELECT vi.view_id, vi.view_name, rel.pkg_state,   --rel.pkg_state,
9449
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9450
              pv.pkg_version, pv.dlocked, pv.pv_description
9451
         FROM release_content rel,
9452
              PACKAGES pkg,
9453
              package_versions pv,
9454
              views vi
9455
        WHERE pv.pkg_id = pkg.pkg_id
9456
          AND rel.pv_id = pv.pv_id
9457
          AND rel.base_view_id = vi.view_id
9458
          AND pv.is_deployable = 'Y'
9459
          AND rtag_id = rtagid
9460
          AND pv.pv_id NOT IN (SELECT DISTINCT prod_id
9461
                                 FROM deployment_manager.os_contents)
9462
          AND rel.product_state IS NULL
9463
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9464
   END;
9465
 
9466
/*-------------------------------------------------------------------------------------------------------*/
9467
   PROCEDURE get_integration_items (
9468
     rtagid           IN      NUMBER,
9469
     ntruerecordcount OUT     NUMBER,
9470
     recordset        OUT     typecur
9471
   )
9472
   IS
9473
   BEGIN
9474
     -- Get true record count n the number of integration products
9475
     SELECT COUNT (rc.pv_id)
9476
      INTO ntruerecordcount
9477
      FROM release_content rc
9478
      WHERE rc.rtag_id = rtagid AND rc.product_state = 1;
9479
 
9480
     OPEN recordset FOR
9481
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9482
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9483
              pv.pkg_version, pv.dlocked, pv.pv_description
9484
         FROM release_content rel,
9485
              PACKAGES pkg,
9486
              package_versions pv,
9487
              views vi
9488
        WHERE pv.pkg_id = pkg.pkg_id
9489
          AND rel.pv_id = pv.pv_id
9490
          AND rel.base_view_id = vi.view_id
9491
          AND pv.is_deployable = 'Y'
9492
          AND rtag_id = rtagid
9493
          AND rel.product_state IN (1, 5)
9494
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9495
   END;
9496
 
9497
/*-------------------------------------------------------------------------------------------------------*/
9498
   PROCEDURE get_test_items (
9499
     rtagid           IN      NUMBER,
9500
     ntruerecordcount OUT     NUMBER,
9501
     recordset        OUT     typecur
9502
   )
9503
   IS
9504
   BEGIN
9505
     -- Get true record count n the number of test products
9506
     SELECT COUNT (rc.pv_id)
9507
      INTO ntruerecordcount
9508
      FROM release_content rc
9509
      WHERE rc.rtag_id = rtagid AND rc.product_state = 2;
9510
 
9511
     OPEN recordset FOR
9512
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9513
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9514
              pv.pkg_version, pv.dlocked, pv.pv_description
9515
         FROM release_content rel,
9516
              PACKAGES pkg,
9517
              package_versions pv,
9518
              views vi
9519
        WHERE pv.pkg_id = pkg.pkg_id
9520
          AND rel.pv_id = pv.pv_id
9521
          AND rel.base_view_id = vi.view_id
9522
          AND pv.is_deployable = 'Y'
9523
          AND rtag_id = rtagid
9524
          AND rel.product_state = 2
9525
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9526
   END;
9527
 
9528
/*-------------------------------------------------------------------------------------------------------*/
9529
   PROCEDURE get_deploy_items (
9530
     rtagid           IN      NUMBER,
9531
     ntruerecordcount OUT     NUMBER,
9532
     recordset        OUT     typecur
9533
   )
9534
   IS
9535
   BEGIN
9536
     -- Get true record count n the number of deploy products
9537
     SELECT COUNT (rc.pv_id)
9538
      INTO ntruerecordcount
9539
      FROM release_content rc
9540
      WHERE rc.rtag_id = rtagid AND rc.product_state = 3;
9541
 
9542
     OPEN recordset FOR
9543
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9544
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9545
              pv.pkg_version, pv.dlocked, pv.pv_description
9546
         FROM release_content rel,
9547
              PACKAGES pkg,
9548
              package_versions pv,
9549
              views vi
9550
        WHERE pv.pkg_id = pkg.pkg_id
9551
          AND rel.pv_id = pv.pv_id
9552
          AND rel.base_view_id = vi.view_id
9553
          AND pv.is_deployable = 'Y'
9554
          AND rtag_id = rtagid
9555
          AND rel.product_state IN (3, 5)
9556
          AND pv.pv_id NOT IN (SELECT DISTINCT prod_id
9557
                                 FROM deployment_manager.os_contents)
9558
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9559
   END;
9560
 
9561
/*-------------------------------------------------------------------------------------------------------*/
9562
   PROCEDURE get_reject_items (
9563
     rtagid           IN      NUMBER,
9564
     ntruerecordcount OUT     NUMBER,
9565
     recordset        OUT     typecur
9566
   )
9567
   IS
9568
   BEGIN
9569
     -- Get true record count n the number of reject products
9570
     SELECT COUNT (rc.pv_id)
9571
       INTO ntruerecordcount
9572
       FROM release_content rc
9573
      WHERE rc.rtag_id = rtagid AND rc.product_state = 4;
9574
 
9575
     OPEN recordset FOR
9576
       SELECT vi.view_id, vi.view_name, rel.pkg_state,
9577
              rel.deprecated_state, pv.pv_id, pkg.pkg_name,
9578
              pv.pkg_version, pv.dlocked, pv.pv_description
9579
         FROM release_content rel,
9580
              PACKAGES pkg,
9581
              package_versions pv,
9582
              views vi
9583
        WHERE pv.pkg_id = pkg.pkg_id
9584
          AND rel.pv_id = pv.pv_id
9585
          AND rel.base_view_id = vi.view_id
9586
          AND pv.is_deployable = 'Y'
9587
          AND rtag_id = rtagid
9588
          AND rel.product_state = 4
9589
     ORDER BY UPPER (vi.view_name), UPPER (pkg.pkg_name);
9590
   END;
9591
/*-------------------------------------------------------------------------------------------------------*/
9592
   -- DEVI-45275 - this procedure performs the merge of an existing package version in the planned table
9593
   -- to the release_content table.
9594
 
9595
  PROCEDURE approve_merge (
9596
   PvId    IN NUMBER,
9597
   RtagId  IN NUMBER,
9598
   UserId  IN NUMBER
9599
  )
9600
  IS
9601
   viewid        NUMBER;
9602
   envtab        NUMBER;
9603
   oper         CHAR;
9604
  BEGIN
9605
      -- Get ViewId
9606
     viewid := get_package_view (pvid, rtagid);
9607
 
9608
     -- Get the view tab
9609
     envtab := pk_environment.get_package_area (pvid, rtagid);
9610
 
9611
     -- Make sure that package was in pending before merging it to released
9612
     IF (envtab <> 1)
9613
     THEN
9614
       -- Not found in pending
9615
       raise_application_error (-20000,
9616
                          'This package cannot be released here.'
9617
                         );
9618
     END IF;
9619
 
9620
     -- Get the planned operation type A=Add, S=Subtract
9621
     SELECT ev.operation INTO oper
9622
       FROM environment_view ev
9623
      WHERE ev.rtag_id = RtagId
9624
        AND ev.pv_id = PvId
9625
        AND (ev.operation = 'A' OR ev.operation = 'S');
9626
 
9627
     -- Remove from Pending
9628
     pk_planned.remove_package (PvId, RtagId, UserId);
9629
 
9630
     -- Either add to the release, or remove from the release as the operation commands
9631
     IF oper = 'A'
9632
     THEN
9633
       pk_release.add_package(PvId, viewId, RtagId, UserId);
9634
 
9635
     ELSIF oper = 'S'
9636
     THEN
9637
       pk_release.remove_package(PvId, RtagId, UserId);
9638
 
9639
       -- Delete old package's pegging info
9640
       DELETE FROM PEGGED_VERSIONS pegv WHERE pegv.RTAG_ID = RtagId AND pegv.PV_ID = PvId;
9641
 
9642
       -- Delete old package's advisory ripple info
9643
       DELETE FROM ADVISORY_RIPPLE avr WHERE avr.RTAG_ID = RtagId AND avr.PV_ID = PvId;
9644
     END IF;
9645
 
9646
     touch_release(RtagId);
9647
  END;
9648
/*-------------------------------------------------------------------------------------------------------*/
9649
END pk_environment;
4040 dpurdie 9650
 
1374 dpurdie 9651
/
4040 dpurdie 9652
--------------------------------------------------------
9653
--  DDL for Package Body PK_LICENCING
9654
--------------------------------------------------------
9655
 
5172 dpurdie 9656
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_LICENCING" IS
1373 dpurdie 9657
 
9658
/*
9659
------------------------------
3959 dpurdie 9660
||  Last Modified:  G.Huddy
9661
||  Modified Date:  19/Aug/2008
1373 dpurdie 9662
||  Body Version:   1.0
9663
------------------------------
9664
*/
9665
 
3959 dpurdie 9666
   PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) IS
9667
   BEGIN
9668
      IF IS_LICENCED(PvId, licenceId) = 0 THEN
9669
         -- Add entry to licencing table
9670
         INSERT INTO licencing (pv_id, licence)
9671
         VALUES (PvId, licenceId);
1373 dpurdie 9672
 
3959 dpurdie 9673
         -- log action
9674
         -- TODO
9675
      END IF;
1373 dpurdie 9676
 
3959 dpurdie 9677
   END;
1373 dpurdie 9678
 
9679
/*-------------------------------------------------------------------------------------------------------*/
9680
 
3959 dpurdie 9681
   PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) IS
9682
   BEGIN
9683
      IF NOT IS_LICENCED(PvId, licenceId) = 0 THEN
9684
         -- Delete entry from licencing table
9685
         DELETE FROM licencing
9686
         WHERE pv_id = PvId
9687
         AND licence = licenceId;
1373 dpurdie 9688
 
3959 dpurdie 9689
         -- log action
9690
         -- TODO
9691
      END IF;
9692
   END;
1373 dpurdie 9693
 
9694
/*-------------------------------------------------------------------------------------------------------*/
9695
 
3959 dpurdie 9696
   PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 9697
 
3959 dpurdie 9698
      CURSOR licencing_cur
9699
      IS
9700
         SELECT *
9701
         FROM licencing
9702
         WHERE pv_id = fromPvId;
1373 dpurdie 9703
 
3959 dpurdie 9704
      licencing_rec licencing_cur%ROWTYPE;
1373 dpurdie 9705
 
9706
   BEGIN
3959 dpurdie 9707
      -- For each licence association that the Last PV_ID had, create a similar
9708
      -- arrangement for the new PV_ID
9709
      -- NOTE that any additional licencing associations the new PV_ID has that the old one
9710
      -- does not have, are retained. The assumption is that the user has made those and so we do not
9711
      -- have any right to destroy them without asking them.
9712
      OPEN licencing_cur;
1373 dpurdie 9713
 
3959 dpurdie 9714
      FETCH licencing_cur
9715
      INTO licencing_rec;
1373 dpurdie 9716
 
3959 dpurdie 9717
      WHILE licencing_cur%FOUND
1373 dpurdie 9718
      LOOP
3959 dpurdie 9719
         ADD_LICENCE ( toPvId, licencing_rec.licence, UserId );
1373 dpurdie 9720
 
3959 dpurdie 9721
         FETCH licencing_cur
9722
         INTO licencing_rec;
1373 dpurdie 9723
      END LOOP;
9724
   END;
9725
 
9726
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 9727
 
9728
   FUNCTION IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER IS
9729
      found NUMBER;
1373 dpurdie 9730
   BEGIN
9731
 
3959 dpurdie 9732
      SELECT COUNT(*) INTO found
9733
      FROM licencing
9734
      WHERE pv_id = PvId
9735
      AND licence = LicenceId;
1373 dpurdie 9736
 
3959 dpurdie 9737
      RETURN found;
1373 dpurdie 9738
   END;
9739
 
9740
/*-------------------------------------------------------------------------------------------------------*/
9741
 
3959 dpurdie 9742
   PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 9743
 
3959 dpurdie 9744
      CURSOR licencing_cur
9745
      IS
1373 dpurdie 9746
         SELECT *
3959 dpurdie 9747
         FROM licencing
9748
         WHERE pv_id = PvId;
1373 dpurdie 9749
 
3959 dpurdie 9750
      licencing_rec licencing_cur%ROWTYPE;
9751
   BEGIN
9752
      -- For each licence association that the PV_ID had, remove it
9753
      OPEN licencing_cur;
1373 dpurdie 9754
 
3959 dpurdie 9755
      FETCH licencing_cur
9756
      INTO licencing_rec;
1373 dpurdie 9757
 
3959 dpurdie 9758
      WHILE licencing_cur%FOUND
9759
      LOOP
9760
         REMOVE_LICENCE ( PvId, licencing_rec.licence, UserId );
1373 dpurdie 9761
 
3959 dpurdie 9762
         FETCH licencing_cur
9763
         INTO licencing_rec;
9764
      END LOOP;
1373 dpurdie 9765
   END;
9766
 
9767
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 9768
END PK_LICENCING;
4040 dpurdie 9769
 
1374 dpurdie 9770
/
4040 dpurdie 9771
--------------------------------------------------------
9772
--  DDL for Package Body PK_PACKAGE
9773
--------------------------------------------------------
9774
 
5172 dpurdie 9775
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PACKAGE" 
1373 dpurdie 9776
IS
9777
   /*-------------------------------------------------------------------------------------------------------*/
9778
   PROCEDURE new_version (
9779
      nlastpvid                   IN       NUMBER,
9780
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
9781
      cbuildtype                  IN       CHAR,
4211 dpurdie 9782
      cchangetype                 IN       CHAR,
1373 dpurdie 9783
      nsettopvid                  IN       NUMBER DEFAULT NULL,
9784
      nrtagid                     IN       NUMBER,
9785
      nuserid                     IN       NUMBER,
9786
      enumissues_state_imported   IN       NUMBER,
9787
      returnpvid                  OUT      NUMBER
9788
   )
9789
   IS
3959 dpurdie 9790
      origpkg_id                  package_versions.pkg_id%TYPE;
9791
      origdlocked                 package_versions.dlocked%TYPE;
9792
      ssv_mm                      package_versions.v_mm%TYPE;
9793
      ssv_nmm                     package_versions.v_nmm%TYPE;
9794
      ssv_ext                     package_versions.v_ext%TYPE;
9795
      spackageversion             VARCHAR2 (4000);
9796
      nissuestypes                NUMBER;
9797
      nviewid                     NUMBER;
9798
      reccount                    NUMBER;
9799
      isreleased                  package_versions.dlocked%TYPE := 'N';
9800
      slabel                      VARCHAR2 (4000)               := NULL;
4211 dpurdie 9801
      uchangetype                 CHAR := cchangetype;
1373 dpurdie 9802
 
9803
      CURSOR package_versions_cur
9804
      IS
9805
         SELECT pv.pv_id, pv.is_patch, pv.dlocked
9806
           FROM package_versions pv
9807
          WHERE pv.pkg_version = snewpkgversion
9808
            AND pv.pkg_id IN (SELECT DISTINCT origpv.pkg_id
9809
                                         FROM package_versions origpv
9810
                                        WHERE origpv.pv_id = nlastpvid);
9811
 
3959 dpurdie 9812
      package_versions_rec package_versions_cur%ROWTYPE;
1373 dpurdie 9813
 
9814
      CURSOR clone_package_versions_cur
9815
      IS
9816
         SELECT DISTINCT pkg_id, dlocked
9817
                    FROM package_versions
9818
                   WHERE pv_id = nlastpvid;
9819
 
3959 dpurdie 9820
      clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
1373 dpurdie 9821
   BEGIN
9822
      spackageversion := snewpkgversion;
9823
 
9824
      IF nsettopvid IS NULL
9825
      THEN
9826
         -- SetToPv_id is not supplied, hence proceed.
9827
 
9828
         /* ---------------------------------------------------- */
3959 dpurdie 9829
         /* Find id package_version exists                       */
9830
         /* ---------------------------------------------------- */
1373 dpurdie 9831
         OPEN package_versions_cur;
9832
 
9833
         FETCH package_versions_cur
9834
          INTO package_versions_rec;
9835
 
9836
         IF package_versions_cur%NOTFOUND
9837
         THEN
9838
            ---  Create brand new package ---
9839
            SELECT seq_pv_id.NEXTVAL
9840
              INTO returnpvid
9841
              FROM DUAL;
9842
 
9843
            -- Split Version to get extention + other
9844
            split_version (spackageversion, ssv_mm, ssv_nmm, ssv_ext);
9845
 
9846
            -- Get previous package to clone from
9847
            OPEN clone_package_versions_cur;
9848
 
9849
            FETCH clone_package_versions_cur
9850
             INTO clone_package_versions_rec;
9851
 
9852
            origpkg_id := clone_package_versions_rec.pkg_id;
9853
            origdlocked := clone_package_versions_rec.dlocked;
9854
 
9855
            CLOSE clone_package_versions_cur;
9856
 
9857
            -- Automated built config
4211 dpurdie 9858
            IF ( cbuildtype = 'M' ) THEN
9859
              uchangetype := 'F';
6031 dpurdie 9860
            END IF;
9861
 
4211 dpurdie 9862
            -- Automated version numbering
9863
            -- Make sure that version is still unique
9864
            IF (uchangetype != 'F') THEN
9865
              spackageversion := '(' || returnpvid || ')' || ssv_ext;
1373 dpurdie 9866
            END IF;
9867
 
6031 dpurdie 9868
 
1373 dpurdie 9869
            -- Clone Package Version Details --
3959 dpurdie 9870
            INSERT INTO package_versions(pv_id, pkg_id, pkg_version, dlocked, created_stamp,
9871
                                         creator_id, modified_stamp, modifier_id, v_mm, v_nmm,
9872
                                         v_ext, src_path, pv_description, pv_overview,
9873
                                         last_pv_id, owner_id, is_deployable,
6031 dpurdie 9874
                                         is_build_env_required, build_type, change_type,
5892 dpurdie 9875
                                         bs_id, is_autobuildable, ripple_field, build_time)
3959 dpurdie 9876
                 SELECT returnpvid AS pv_id, origpkg_id AS pkg_id,
9877
                        spackageversion AS pkg_version, 'N' AS dlocked,
9878
                        ora_sysdate AS created_stamp, nuserid AS creator_id,
9879
                        ora_sysdatetime AS modified_stamp,
9880
                        nuserid AS modifier_id, ssv_mm AS v_mm,
9881
                        ssv_nmm AS v_nmm, ssv_ext AS v_ext, pv.src_path,
9882
                        pv.pv_description, pv.pv_overview,
9883
                        nlastpvid AS last_pv_id, pv.owner_id, pv.is_deployable,
6031 dpurdie 9884
                        pv.is_build_env_required, cbuildtype, uchangetype,
5892 dpurdie 9885
                        pv.bs_id, pv.is_autobuildable, pv.ripple_field, pv.build_time
3959 dpurdie 9886
                   FROM package_versions pv
9887
                  WHERE pv.pv_id = nlastpvid;
1373 dpurdie 9888
 
9889
            -- Set Issues Type for cloning ---
9890
            IF origdlocked = 'Y'
9891
            THEN
9892
               nissuestypes := enumissues_state_imported;
9893
            ELSE
9894
               nissuestypes := NULL;
9895
            END IF;
9896
 
9897
            basic_clone (nlastpvid,
9898
                         returnpvid,
9899
                         nrtagid,
9900
                         nuserid,
9901
                         origpkg_id,
9902
                         nissuestypes
9903
                        );
6031 dpurdie 9904
 
4211 dpurdie 9905
            -- Update Label for versioning purposes
9906
            slabel := get_automated_label (returnpvid);
9907
            UPDATE package_versions pv
9908
            SET pv.pkg_label = slabel
9909
            WHERE pv.pv_id = returnpvid;
6031 dpurdie 9910
 
1373 dpurdie 9911
         ELSE
9912
            --- Package already exists, hence reuse ---
9913
            returnpvid := package_versions_rec.pv_id;
9914
            isreleased := package_versions_rec.dlocked;
9915
         END IF;
9916
 
9917
         CLOSE package_versions_cur;
9918
      ELSE
9919
         returnpvid := nsettopvid;
9920
      END IF;
9921
   END new_version;
9922
 
9923
/*-------------------------------------------------------------------------------------------------------*/
9924
   PROCEDURE change_state (
9925
      pvid       IN   NUMBER,
9926
      newstate   IN   package_versions.dlocked%TYPE,
9927
      userid     IN   NUMBER
9928
   )
9929
   IS
9930
   BEGIN
9931
      -- Set package in Released mode
9932
      UPDATE package_versions pv
9933
         SET pv.dlocked = newstate,
9934
             pv.modified_stamp = ora_sysdatetime,
9935
             pv.modifier_id = userid
9936
       WHERE pv.pv_id = pvid;
9937
 
9938
      -- Log action --
9939
      IF newstate = 'Y'
9940
      THEN
9941
         -- RELEASED --
6916 dpurdie 9942
         log_action (pvid, 'makeofficial', userid, 'Package state change to: Released');
1373 dpurdie 9943
      ELSIF newstate = 'N'
9944
      THEN
9945
         -- UNLOCKED --
6916 dpurdie 9946
         log_action (pvid, 'makeunofficial',userid, 'Package state change to: Ulocked');
1373 dpurdie 9947
      ELSIF newstate = 'P'
9948
      THEN
9949
         -- PENDING APPROVAL --
6916 dpurdie 9950
         log_action (pvid, 'add_to_planned',userid,'Package state change to: Pending Approval');
1373 dpurdie 9951
      ELSIF newstate = 'R'
9952
      THEN
9953
         -- REJECTED --
6916 dpurdie 9954
         log_action (pvid,'reject_package',userid,'Package state change to: Rejected');
1373 dpurdie 9955
      ELSIF newstate = 'A'
9956
      THEN
9957
         -- APPROVED --
6916 dpurdie 9958
         log_action (pvid, 'approve_package', userid, 'Package state change to: Approved');
1373 dpurdie 9959
      END IF;
9960
   END;
9961
 
9962
/*-------------------------------------------------------------------------------------------------------*/
6031 dpurdie 9963
-- This function has been deprecated and can be deleted
9964
-- Replaced with destroy_package_extended
1373 dpurdie 9965
   PROCEDURE destroy_package (
9966
      pvid               IN       NUMBER,
9967
      overridewarnings   IN       CHAR DEFAULT 'N',
9968
      problemstring      OUT      VARCHAR2
9969
   )
9970
   IS
9971
      LOCKED     CHAR;
9972
      pkgid      NUMBER;
9973
      ROWCOUNT   NUMBER;
6031 dpurdie 9974
      lastPvid   NUMBER;
1373 dpurdie 9975
   BEGIN
9976
      /*
9977
      || This will destroy all package details from database.
9978
      || It will only be used to remove unwanted work in progress packages,
6031 dpurdie 9979
      || or mistaken versions
1373 dpurdie 9980
      */
9981
 
9982
      /*--------------- Business Rules Here -------------------*/
9983
      problemstring := NULL;
9984
 
9985
      IF overridewarnings = 'N'
9986
      THEN
9987
         -- Package must not be official
9988
         SELECT pv.dlocked
9989
           INTO LOCKED
9990
           FROM package_versions pv
9991
          WHERE pv.pv_id = pvid;
9992
 
9993
         IF LOCKED = 'Y'
9994
         THEN
9995
            problemstring :=
9996
                  problemstring
9997
               || '- Package is locked and released.'
5892 dpurdie 9998
               ||PK_PACKAGE.crlf;
1373 dpurdie 9999
         END IF;
10000
 
10001
         -- Cannot remove if used in BOMs
10002
         SELECT COUNT (osc.prod_id)
10003
           INTO ROWCOUNT
10004
           FROM deployment_manager.os_contents osc
10005
          WHERE osc.prod_id = pvid;
10006
 
10007
         IF ROWCOUNT > 0
10008
         THEN
10009
            problemstring :=
10010
                  problemstring
10011
               || '- Package is part of Bill-Of-Material (BOM) in Deployment Manager.'
5892 dpurdie 10012
               ||PK_PACKAGE.crlf;
1373 dpurdie 10013
         END IF;
6031 dpurdie 10014
 
10015
         -- Cannot remove if used in an SDK
10016
         SELECT COUNT (sc.pv_id)
10017
           INTO ROWCOUNT
10018
           FROM sdk_content sc
10019
          WHERE sc.pv_id = pvid;
1373 dpurdie 10020
 
6031 dpurdie 10021
         IF ROWCOUNT > 0
10022
         THEN
10023
            problemstring :=
10024
                  problemstring
10025
               || '- Package is part of an SDK.'
10026
               ||PK_PACKAGE.crlf;
10027
         END IF;
10028
 
1373 dpurdie 10029
         -- Cannot remove if Referenced as build dependency
10030
         SELECT COUNT (dep.pv_id)
10031
           INTO ROWCOUNT
10032
           FROM package_dependencies dep
10033
          WHERE dep.dpv_id = pvid;
10034
 
10035
         IF ROWCOUNT > 0
10036
         THEN
10037
            problemstring :=
10038
                  problemstring
10039
               || '- Package is referenced by other package as build dependency.'
5892 dpurdie 10040
               ||PK_PACKAGE.crlf;
1373 dpurdie 10041
         END IF;
10042
 
10043
         -- Cannot remove if Referenced as runtime dependency
10044
         SELECT COUNT (rd.pv_id)
10045
           INTO ROWCOUNT
10046
           FROM runtime_dependencies rd
10047
          WHERE rd.rtd_id = pvid;
10048
 
10049
         IF ROWCOUNT > 0
10050
         THEN
10051
            problemstring :=
10052
                  problemstring
10053
               || '- Package is referenced by other package as runtime dependency.'
5892 dpurdie 10054
               ||PK_PACKAGE.crlf;
1373 dpurdie 10055
         END IF;
10056
 
10057
         -- Cannot remove if Referenced as patch
10058
         SELECT COUNT (pp.pv_id)
10059
           INTO ROWCOUNT
10060
           FROM package_patches pp
10061
          WHERE pp.patch_id = pvid;
10062
 
10063
         IF ROWCOUNT > 0
10064
         THEN
10065
            problemstring :=
10066
                  problemstring
10067
               || '- Package is used as patch by other package.'
5892 dpurdie 10068
               ||PK_PACKAGE.crlf;
1373 dpurdie 10069
         END IF;
6031 dpurdie 10070
 
10071
         -- Cannot remove if a Daemon Instruction
10072
         SELECT COUNT (di.pv_id)
10073
           INTO ROWCOUNT
10074
           FROM DAEMON_INSTRUCTIONS di
10075
          WHERE di.pv_id = pvid;
1373 dpurdie 10076
 
6031 dpurdie 10077
         IF ROWCOUNT > 0
10078
         THEN
10079
            problemstring :=
10080
                  problemstring
10081
               || '- Package is in use for a Daemon Instruction.'
10082
               ||PK_PACKAGE.crlf;
10083
         END IF;
10084
 
10085
 
10086
      END IF;      
10087
 
1373 dpurdie 10088
/*-------------------------------------------------------*/
10089
      IF (problemstring IS NULL)
10090
      THEN
10091
         --- Remove From Work in Progress
10092
         DELETE FROM work_in_progress wip
10093
               WHERE wip.pv_id = pvid;
10094
 
10095
         --- Remove From Pending
10096
         DELETE FROM planned pl
10097
               WHERE pl.pv_id = pvid;
10098
 
10099
         --- Remove From Released area
10100
         DELETE FROM release_content rc
10101
               WHERE rc.pv_id = pvid;
10102
 
10103
         ---Remove From Package Processes
10104
         DELETE FROM package_processes pp
10105
               WHERE pp.pv_id = pvid;
10106
 
10107
         --- Remove Dependencies
10108
         DELETE FROM package_dependencies dep
10109
               WHERE dep.pv_id = pvid;
10110
 
10111
         DELETE FROM package_dependencies dep
10112
               WHERE dep.dpv_id = pvid;
10113
 
10114
         --- Remove Runtime dependencies
10115
         DELETE FROM runtime_dependencies rtd
10116
               WHERE rtd.pv_id = pvid;
10117
 
10118
         DELETE FROM runtime_dependencies rtd
10119
               WHERE rtd.rtd_id = pvid;
10120
 
10121
         --- Remove components
10122
         DELETE FROM product_components pc
10123
               WHERE pc.pv_id = pvid;
10124
 
10125
         DELETE FROM release_components rc
10126
               WHERE rc.pv_id = pvid;
10127
 
10128
         --- Remove From Notification History
10129
         DELETE FROM notification_history nh
10130
               WHERE nh.pv_id = pvid;
10131
 
10132
         --- Remove From Ignore Warnings
10133
         DELETE FROM ignore_warnings iw
10134
               WHERE iw.pv_id = pvid;
10135
 
10136
         --- Remove From Additional Notes
10137
         DELETE FROM additional_notes an
10138
               WHERE an.pv_id = pvid;
10139
 
10140
         --- Remove From CQ Issues
10141
         DELETE FROM cq_issues cq
10142
               WHERE cq.pv_id = pvid;
10143
 
10144
         --- Remove from Package Patches
10145
         DELETE FROM package_patches pp
10146
               WHERE pp.pv_id = pvid;
10147
 
10148
         DELETE FROM package_patches pp
10149
               WHERE pp.patch_id = pvid;
10150
 
10151
         --- Remove From Package Documents
10152
         DELETE FROM package_documents pd
10153
               WHERE pd.pv_id = pvid;
10154
 
10155
         --- Remove from Code Review
10156
         DELETE FROM code_reviews cr
10157
               WHERE cr.pv_id = pvid;
10158
 
3959 dpurdie 10159
         --- Remove from Code Review URL
10160
         DELETE FROM code_review_url cru
10161
               WHERE cru.pv_id = pvid;
10162
 
1373 dpurdie 10163
         --- Remove from Unit Tests
10164
         DELETE FROM unit_tests ut
10165
               WHERE ut.pv_id = pvid;
10166
 
10167
         --- Remove from Package BuildEnv
10168
         DELETE FROM package_build_env pbe
10169
               WHERE pbe.pv_id = pvid;
10170
 
3959 dpurdie 10171
         --- Remove from Package Build Info
10172
         DELETE FROM package_build_info pbi
10173
               WHERE pbi.pv_id = pvid;
6031 dpurdie 10174
 
10175
        --- Remove from Build Plan
10176
         DELETE FROM BUILD_PLAN bp
10177
               WHERE bp.pv_id = pvid;
10178
 
10179
         --- Remove from Build Instances
10180
         DELETE FROM BUILD_INSTANCES bi
10181
               WHERE bi.pv_id = pvid;
3959 dpurdie 10182
 
1373 dpurdie 10183
         --- Remove from Build Order
10184
         DELETE FROM build_order bo
10185
               WHERE bo.pv_id = pvid;
10186
 
3959 dpurdie 10187
         --- Remove from Licencing
10188
         PK_LICENCING.REMOVE_ALL_LICENCING( pvid, 0 );
10189
 
1373 dpurdie 10190
         --- Remove from Note Manager
10191
         DELETE FROM note_manager nm
10192
               WHERE nm.nid = pvid;
10193
 
10194
         --- Remove from Action log
10195
         DELETE FROM action_log al
10196
               WHERE al.pv_id = pvid;
3959 dpurdie 10197
 
10198
         --- Remove from Do Not Ripple
10199
         DELETE FROM DO_NOT_RIPPLE dnr
10200
               WHERE dnr.PV_ID = pvid;
6031 dpurdie 10201
 
10202
        --- Remove from SDK
10203
        DELETE FROM SDK_CONTENT sc
10204
            WHERE sc.PV_ID = pvid;
10205
 
10206
        -- Remove from daemon Instruction
10207
        DELETE FROM DAEMON_INSTRUCTIONS di
10208
          WHERE di.PV_ID = pvid;
3959 dpurdie 10209
 
10210
         --- Remove from Advisory Ripple
10211
         DELETE FROM ADVISORY_RIPPLE ar
10212
               WHERE ar.PV_ID = pvid;
10213
 
10214
         --- Remove from Jira Issues
10215
         DELETE FROM JIRA_ISSUES jira
10216
               WHERE jira.PV_ID = pvid;
10217
 
10218
         --- Remove from Package Metrics
10219
         DELETE FROM package_metrics pm
10220
              WHERE pm.pv_id = pvid;
10221
 
10222
         -- Delete from Pegged Versions
10223
         DELETE FROM pegged_versions pegv
10224
              WHERE pegv.pv_id = pvid;
10225
 
1373 dpurdie 10226
         --- Finally Remove From Package Versions
10227
         --- Get Package name
6031 dpurdie 10228
         SELECT pv.pkg_id, pv.LAST_PV_ID
10229
           INTO pkgid, lastPvid
1373 dpurdie 10230
           FROM package_versions pv
10231
          WHERE pv.pv_id = pvid;
6031 dpurdie 10232
 
10233
          --- Relink packages last_pv_id
10234
          IF lastPvid is NOT NULL AND pvid !=  lastPvid THEN
10235
            UPDATE package_versions pv
10236
               SET pv.LAST_PV_ID = lastPvid
10237
             WHERE pv.LAST_PV_ID = pvid;
10238
          END IF;
10239
 
10240
         --- Delete the version
1373 dpurdie 10241
         DELETE FROM package_versions pv
10242
               WHERE pv.pv_id = pvid;
10243
 
10244
         --- Remove package name if not used any more
10245
         SELECT COUNT (pv.pv_id)
10246
           INTO ROWCOUNT
10247
           FROM package_versions pv
10248
          WHERE pv.pkg_id = pkgid;
10249
 
10250
         IF ROWCOUNT < 1
10251
         THEN
10252
            DELETE FROM PACKAGES pkg
10253
                  WHERE pkg.pkg_id = pkgid;
10254
         END IF;
10255
      END IF;
10256
   END;
10257
 
10258
/*-------------------------------------------------------------------------------------------------------*/
6031 dpurdie 10259
    PROCEDURE destroy_package_extended (
10260
      pvid               IN       NUMBER,
10261
      rtagid             IN       NUMBER,
10262
      overridewarnings   IN       NUMBER DEFAULT 0,
10263
      RESULTS            OUT      SYS_REFCURSOR
10264
      -- pvid - The pvid of the package to delete
10265
 
10266
      -- rtagid - Package is allowed to exist in this release
10267
 
10268
      -- overridewarnings
10269
      --    0   - Do not delete, just test
10270
      --    1   - Delete package if there are only advisory warnings
10271
      --    2   - Delete package even if there are FoolHardy warnings
10272
 
10273
      -- Results [OUTPUT]
10274
      --    Message Text, Error Level
10275
      --    Where error Level is
10276
      --        'A' - Advisory.
10277
      --        'F' - Foolhardy. Will damage releases, SBOMs and other packages
10278
   )
10279
   IS
10280
      LOCKED     CHAR;
10281
      pkgid      NUMBER;
10282
      ROWCOUNT   NUMBER;
10283
      lastPvid   NUMBER;
10284
 
10285
      vartbl RELMGR_PKG_DESTROY_ERR_TAB_T := RELMGR_PKG_DESTROY_ERR_TAB_T();
10286
      ii NUMBER;
10287
 
10288
      -- Add message to table that will be returned
10289
      PROCEDURE ADD_MESSAGE( p1 IN VARCHAR2, p2 IN CHAR)
10290
      IS
10291
      BEGIN
10292
        ii := ii + 1;
10293
        vartbl.extend;
10294
        vartbl(ii) := RELMGR_PKG_DESTROY_ERR_T(p1,UPPER(p2));
10295
      END; 
10296
 
10297
   BEGIN
10298
      /*
10299
      || This will destroy all package details from database.
10300
      || It will only be used to remove unwanted work in progress packages,
10301
      || or mistaken versions
10302
      */
10303
 
10304
      /*--------------- Business Rules Here -------------------*/
10305
      ii := 0;
10306
 
10307
      IF overridewarnings < 1
10308
      THEN
10309
         -- Package must not be official
10310
         SELECT pv.dlocked
10311
           INTO LOCKED
10312
           FROM package_versions pv
10313
          WHERE pv.pv_id = pvid;
10314
 
10315
         IF LOCKED = 'Y'
10316
         THEN
10317
            ADD_MESSAGE ('Package Version is locked and released.', 'A');
10318
         END IF;
10319
 
10320
         -- Cannot remove if a WIP
10321
         SELECT COUNT (pv_id)
10322
           INTO ROWCOUNT
10323
           FROM work_in_progress wip
10324
          WHERE wip.pv_id = pvid AND wip.RTAG_ID != rtagid;
10325
 
10326
         IF ROWCOUNT > 0
10327
         THEN
10328
            ADD_MESSAGE ('Version is in use as a WIP.', 'A');
10329
         END IF;
10330
 
10331
         -- Cannot remove if a PENDING
10332
         SELECT COUNT (pv_id)
10333
           INTO ROWCOUNT
10334
           FROM planned pl
10335
          WHERE pl.pv_id = pvid AND pl.RTAG_ID != rtagid;
10336
 
10337
         IF ROWCOUNT > 0
10338
         THEN
10339
            ADD_MESSAGE ('Version is Pending in a release.', 'A');
10340
         END IF;
10341
 
10342
         -- Cannot remove if in a Release
10343
         SELECT COUNT (pv_id)
10344
           INTO ROWCOUNT
10345
           FROM release_content rc
10346
          WHERE pv_id = pvid AND rc.RTAG_ID != rtagid;
10347
 
10348
         IF ROWCOUNT > 1
10349
         THEN
10350
            ADD_MESSAGE ('Version is a part of another Releases.', 'A');
10351
         END IF;
10352
 
10353
 
10354
         -- Cannot remove if a Daemon Instruction
10355
         SELECT COUNT (di.pv_id)
10356
           INTO ROWCOUNT
10357
           FROM DAEMON_INSTRUCTIONS di
10358
          WHERE di.pv_id = pvid;
10359
 
10360
         IF ROWCOUNT > 0
10361
         THEN
10362
            ADD_MESSAGE ('Version has outstanding Daemon Instruction.', 'A');
10363
         END IF;
10364
 
10365
      END IF;
10366
 
10367
      IF overridewarnings < 2
10368
      THEN
10369
         -- Cannot remove if used in BOMs
10370
         SELECT COUNT (osc.prod_id)
10371
           INTO ROWCOUNT
10372
           FROM deployment_manager.os_contents osc
10373
          WHERE osc.prod_id = pvid;
10374
 
10375
         IF ROWCOUNT > 0
10376
         THEN
10377
            ADD_MESSAGE ('Version is part of Bill-Of-Material (BOM) in Deployment Manager.', 'F');
10378
         END IF;
10379
 
10380
         -- Cannot remove if used in BOMs - Base Env
10381
         SELECT COUNT (bec.prod_id)
10382
           INTO ROWCOUNT
10383
           FROM deployment_manager.base_env_contents bec
10384
          WHERE bec.prod_id = pvid;
10385
 
10386
         IF ROWCOUNT > 0
10387
         THEN
10388
            ADD_MESSAGE ('Version is part of Base Environment in Deployment Manager.', 'F');
10389
         END IF;
10390
 
10391
         -- Cannot remove if used in an SDK
10392
         SELECT COUNT (sc.pv_id)
10393
           INTO ROWCOUNT
10394
           FROM sdk_content sc
10395
          WHERE sc.pv_id = pvid;
10396
 
10397
         IF ROWCOUNT > 0
10398
         THEN
10399
            ADD_MESSAGE ('Version is part of an SDK', 'F');
10400
         END IF;
10401
 
10402
         -- Cannot remove if Referenced as build dependency
10403
         SELECT COUNT (dep.pv_id)
10404
           INTO ROWCOUNT
10405
           FROM package_dependencies dep
10406
          WHERE dep.dpv_id = pvid;
10407
 
10408
         IF ROWCOUNT > 0
10409
         THEN
10410
            ADD_MESSAGE ('Version is referenced by a package as build dependency.', 'F');
10411
         END IF;
10412
 
10413
         -- Cannot remove if Referenced as runtime dependency
10414
         SELECT COUNT (rd.pv_id)
10415
           INTO ROWCOUNT
10416
           FROM runtime_dependencies rd
10417
          WHERE rd.rtd_id = pvid;
10418
 
10419
         IF ROWCOUNT > 0
10420
         THEN
10421
            ADD_MESSAGE ('Version is referenced by other package as a runtime dependency.', 'F');
10422
         END IF;
10423
 
10424
         -- Cannot remove if Referenced as patch
10425
         SELECT COUNT (pp.pv_id)
10426
           INTO ROWCOUNT
10427
           FROM package_patches pp
10428
          WHERE pp.patch_id = pvid;
10429
 
10430
         IF ROWCOUNT > 0
10431
         THEN
10432
            ADD_MESSAGE ('Version is used as a patch by other package.', 'F');
10433
         END IF;
10434
 
10435
      END IF;
10436
 
10437
/*-------------------------------------------------------*/
10438
      IF (ii = 0 AND overridewarnings > 0)
10439
      THEN
10440
         --- Remove From Work in Progress
10441
         DELETE FROM work_in_progress wip
10442
               WHERE wip.pv_id = pvid;
10443
 
10444
         --- Remove From Pending
10445
         DELETE FROM planned pl
10446
               WHERE pl.pv_id = pvid;
10447
 
10448
         --- Remove From Released area
10449
         DELETE FROM release_content rc
10450
               WHERE rc.pv_id = pvid;
10451
 
10452
         ---Remove From Package Processes
10453
         DELETE FROM package_processes pp
10454
               WHERE pp.pv_id = pvid;
10455
 
10456
         --- Remove Dependencies
10457
         DELETE FROM package_dependencies dep
10458
               WHERE dep.pv_id = pvid;
10459
 
10460
         DELETE FROM package_dependencies dep
10461
               WHERE dep.dpv_id = pvid;
10462
 
10463
         --- Remove Runtime dependencies
10464
         DELETE FROM runtime_dependencies rtd
10465
               WHERE rtd.pv_id = pvid;
10466
 
10467
         DELETE FROM runtime_dependencies rtd
10468
               WHERE rtd.rtd_id = pvid;
10469
 
10470
         --- Remove components
10471
         DELETE FROM product_components pc
10472
               WHERE pc.pv_id = pvid;
10473
 
10474
         DELETE FROM release_components rc
10475
               WHERE rc.pv_id = pvid;
10476
 
10477
         --- Remove From Notification History
10478
         DELETE FROM notification_history nh
10479
               WHERE nh.pv_id = pvid;
10480
 
10481
         --- Remove From Ignore Warnings
10482
         DELETE FROM ignore_warnings iw
10483
               WHERE iw.pv_id = pvid;
10484
 
10485
         --- Remove From Additional Notes
10486
         DELETE FROM additional_notes an
10487
               WHERE an.pv_id = pvid;
10488
 
10489
         --- Remove From CQ Issues
10490
         DELETE FROM cq_issues cq
10491
               WHERE cq.pv_id = pvid;
10492
 
10493
         --- Remove from Package Patches
10494
         DELETE FROM package_patches pp
10495
               WHERE pp.pv_id = pvid;
10496
 
10497
         DELETE FROM package_patches pp
10498
               WHERE pp.patch_id = pvid;
10499
 
10500
         --- Remove From Package Documents
10501
         DELETE FROM package_documents pd
10502
               WHERE pd.pv_id = pvid;
10503
 
10504
         --- Remove from Code Review
10505
         DELETE FROM code_reviews cr
10506
               WHERE cr.pv_id = pvid;
10507
 
10508
         --- Remove from Code Review URL
10509
         DELETE FROM code_review_url cru
10510
               WHERE cru.pv_id = pvid;
10511
 
10512
         --- Remove from Unit Tests
10513
         DELETE FROM unit_tests ut
10514
               WHERE ut.pv_id = pvid;
10515
 
10516
         --- Remove from Package BuildEnv
10517
         DELETE FROM package_build_env pbe
10518
               WHERE pbe.pv_id = pvid;
10519
 
10520
         --- Remove from Package Build Info
10521
         DELETE FROM package_build_info pbi
10522
               WHERE pbi.pv_id = pvid;
10523
 
10524
        --- Remove from Build Plan
10525
         DELETE FROM BUILD_PLAN bp
10526
               WHERE bp.pv_id = pvid;
10527
 
10528
         --- Remove from Build Instances
10529
         DELETE FROM BUILD_INSTANCES bi
10530
               WHERE bi.pv_id = pvid;
10531
 
10532
         --- Remove from Build Order
10533
         DELETE FROM build_order bo
10534
               WHERE bo.pv_id = pvid;
10535
 
10536
         --- Remove from Licencing
10537
         PK_LICENCING.REMOVE_ALL_LICENCING( pvid, 0 );
10538
 
10539
         --- Remove from Note Manager
10540
         DELETE FROM note_manager nm
10541
               WHERE nm.nid = pvid;
10542
 
10543
         --- Remove from Action log
10544
         DELETE FROM action_log al
10545
               WHERE al.pv_id = pvid;
10546
 
10547
         --- Remove from Do Not Ripple
10548
         DELETE FROM DO_NOT_RIPPLE dnr
10549
               WHERE dnr.PV_ID = pvid;
10550
 
10551
        --- Remove from SDK
10552
        DELETE FROM SDK_CONTENT sc
10553
            WHERE sc.PV_ID = pvid;
10554
 
10555
        -- Remove from daemon Instruction
10556
        DELETE FROM DAEMON_INSTRUCTIONS di
10557
          WHERE di.PV_ID = pvid;
10558
 
10559
         --- Remove from Advisory Ripple
10560
         DELETE FROM ADVISORY_RIPPLE ar
10561
               WHERE ar.PV_ID = pvid;
10562
 
10563
         --- Remove from Jira Issues
10564
         DELETE FROM JIRA_ISSUES jira
10565
               WHERE jira.PV_ID = pvid;
10566
 
10567
         --- Remove from Package Metrics
10568
         DELETE FROM package_metrics pm
10569
              WHERE pm.pv_id = pvid;
10570
 
10571
         -- Delete from Pegged Versions
10572
         DELETE FROM pegged_versions pegv
10573
              WHERE pegv.pv_id = pvid;
10574
 
10575
         --- Finally Remove From Package Versions
10576
         --- Get Package name
10577
         SELECT pv.pkg_id, pv.LAST_PV_ID
10578
           INTO pkgid, lastPvid
10579
           FROM package_versions pv
10580
          WHERE pv.pv_id = pvid;
10581
 
10582
          --- Relink packages last_pv_id
10583
          IF lastPvid is NOT NULL AND pvid !=  lastPvid THEN
10584
            UPDATE package_versions pv
10585
               SET pv.LAST_PV_ID = lastPvid
10586
             WHERE pv.LAST_PV_ID = pvid;
10587
          END IF;
10588
 
10589
         --- Delete the version
10590
         DELETE FROM package_versions pv
10591
               WHERE pv.pv_id = pvid;
10592
 
10593
         --- Remove package name if not used any more
10594
         SELECT COUNT (pv.pv_id)
10595
           INTO ROWCOUNT
10596
           FROM package_versions pv
10597
          WHERE pv.pkg_id = pkgid;
10598
 
10599
         IF ROWCOUNT < 1
10600
         THEN
10601
            DELETE FROM PACKAGES pkg
10602
                  WHERE pkg.pkg_id = pkgid;
10603
         END IF;
10604
      END IF;
10605
 
10606
      --- Return table of reasons the package shouldn't be destroyed
10607
       open RESULTS for select * from table(vartbl);
10608
 
10609
   END;
10610
 
10611
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 10612
   PROCEDURE new_patch (
10613
      snewpatchversion   IN       package_versions.pkg_version%TYPE,
10614
      nparentpvid        IN       NUMBER,
10615
      spatchidlist       IN       VARCHAR2,
10616
      nuserid            IN       NUMBER,
10617
      returnpatchid      OUT      NUMBER
10618
   )
10619
   IS
10620
      patchpv_id           NUMBER;
10621
      parpkg_id            NUMBER;
10622
      lastinstallorder     NUMBER;
10623
      ispatchdlocked       package_versions.dlocked%TYPE;
10624
      ssv_mm               package_versions.v_mm%TYPE;
10625
      ssv_nmm              package_versions.v_nmm%TYPE;
10626
      ssv_ext              package_versions.v_ext%TYPE;
3959 dpurdie 10627
      opatchdepcollector   relmgr_number_tab_t  := relmgr_number_tab_t ();
1373 dpurdie 10628
 
10629
      CURSOR parent_cur
10630
      IS
10631
         SELECT pv.*, pkg.pkg_name
10632
           FROM package_versions pv, PACKAGES pkg
10633
          WHERE pv.pv_id = nparentpvid AND pv.pkg_id = pkg.pkg_id;
10634
 
3959 dpurdie 10635
      parent_rec parent_cur%ROWTYPE;
1373 dpurdie 10636
 
10637
      CURSOR patch_cur
10638
      IS
10639
         SELECT pv.*, pg.pkg_name
10640
           FROM package_versions pv, PACKAGES pg
10641
          WHERE pv.pkg_id = parpkg_id
10642
            AND pv.pkg_version = snewpatchversion
10643
            AND pv.pkg_id = pg.pkg_id;
10644
 
3959 dpurdie 10645
      patch_rec  patch_cur%ROWTYPE;
1373 dpurdie 10646
 
10647
      CURSOR releases_cur
10648
      IS
10649
         SELECT rc.pv_id
10650
           FROM release_content rc
10651
          WHERE rc.pv_id = patch_rec.pv_id;
10652
 
3959 dpurdie 10653
      releases_rec releases_cur%ROWTYPE;
1373 dpurdie 10654
   BEGIN
10655
      -- Get Last Install Order
10656
      SELECT COUNT (*)
10657
        INTO lastinstallorder
10658
        FROM package_patches pp
10659
       WHERE pp.pv_id = nparentpvid;
10660
 
10661
      -- Get parent details
10662
      OPEN parent_cur;
10663
 
10664
      FETCH parent_cur
10665
       INTO parent_rec;
10666
 
10667
      parpkg_id := parent_rec.pkg_id;
10668
 
10669
      -- Find if patch exists in database
10670
      OPEN patch_cur;
10671
 
10672
      FETCH patch_cur
10673
       INTO patch_rec;
10674
 
10675
      -- Parent must be official
10676
      IF parent_rec.dlocked = 'Y'
10677
      THEN
10678
         IF patch_cur%NOTFOUND
10679
         THEN
10680
            ispatchdlocked := 'N';
10681
 
10682
            -- Create new patch version --
10683
            SELECT seq_pv_id.NEXTVAL
10684
              INTO patchpv_id
10685
              FROM DUAL;
10686
 
10687
            split_version (snewpatchversion, ssv_mm, ssv_nmm, ssv_ext);
10688
 
10689
            INSERT INTO package_versions
10690
                        (pv_id, pkg_id, pkg_version,
10691
                         dlocked, created_stamp, creator_id,
10692
                         modified_stamp, modifier_id, v_mm, v_nmm, v_ext,
10693
                         src_path,
10694
                         pv_description,
10695
                         owner_id, is_patch, last_pv_id, build_type, is_build_env_required, bs_id,
3959 dpurdie 10696
                         is_autobuildable, ripple_field
1373 dpurdie 10697
                        )
10698
                 VALUES (patchpv_id, parpkg_id, snewpatchversion,
10699
                         ispatchdlocked, ora_sysdate, nuserid,
10700
                         ora_sysdatetime, nuserid, ssv_mm, ssv_nmm, ssv_ext,
10701
                         parent_rec.src_path,
10702
                            'This is a patch to '
10703
                         || parent_rec.pkg_name
10704
                         || ' '
10705
                         || parent_rec.pkg_version,
3959 dpurdie 10706
                         nuserid, 'Y', patchpv_id, 'M', 'N', 3, 'N', parent_rec.ripple_field
1373 dpurdie 10707
                        );
10708
 
10709
            INSERT INTO package_patches
10710
                        (pv_id, patch_id, install_order)
3959 dpurdie 10711
                (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
10712
                        lastinstallorder + 1 AS install_order
10713
                   FROM package_versions pv
10714
                  WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
1373 dpurdie 10715
 
10716
            /* LOG ACTION */
6916 dpurdie 10717
            log_action (patchpv_id, 'new_version', nuserid, 'Patch version created: ' || snewpatchversion );
10718
            log_action (nparentpvid, 'patch_add', nuserid, 'New patch created and attached: ' || snewpatchversion );
1373 dpurdie 10719
         ELSE
10720
            patchpv_id := patch_rec.pv_id;
10721
            ispatchdlocked := patch_rec.dlocked;
10722
 
10723
            -- Find if pv_id exists in release content (i.e. it cannot be a patch)
10724
            OPEN releases_cur;
10725
 
10726
            FETCH releases_cur
10727
             INTO releases_rec;
10728
 
10729
            IF releases_cur%NOTFOUND
10730
            THEN
10731
               -- This pv_id is trully a patch, hence add Y to column IS_PATCH
10732
               UPDATE package_versions
10733
                  SET is_patch = 'Y'
10734
                WHERE pv_id = patchpv_id;
10735
 
10736
               INSERT INTO package_patches
10737
                           (pv_id, patch_id, install_order)
3959 dpurdie 10738
                   (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
10739
                           lastinstallorder + 1 AS install_order
10740
                      FROM package_versions pv
10741
                     WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
1373 dpurdie 10742
            END IF;
10743
 
10744
            CLOSE releases_cur;
10745
 
10746
            /* LOG ACTION */
6916 dpurdie 10747
            log_action (nparentpvid, 'patch_add', nuserid, 'Patch version was found and attached: ' || snewpatchversion );
1373 dpurdie 10748
         END IF;
10749
      END IF;
10750
 
10751
      /* Create Patch Dependencies */
10752
      opatchdepcollector := in_list_number (spatchidlist);
10753
 
10754
      -- Make sure patch is unofficial before altering its dependencies
10755
      IF (opatchdepcollector.COUNT > 0) AND (ispatchdlocked = 'N')
10756
      THEN
10757
         -- Delete Existing Dependencies
10758
         DELETE FROM package_dependencies dep
10759
               WHERE dep.pv_id = patchpv_id;
10760
 
10761
         -- Insert new dependencies
10762
         INSERT INTO package_dependencies
10763
                     (pv_id, dpv_id, pkg_id, dpkg_id, build_type)
3959 dpurdie 10764
              SELECT patchpv_id AS pv_id, pv.pv_id AS dpv_id,
10765
                     parpkg_id AS pkg_id, pv.pkg_id AS dpkg_id,
10766
                     'L' AS build_type
10767
                FROM package_versions pv
10768
               WHERE pv.pv_id IN (
1373 dpurdie 10769
                      SELECT *
10770
                        FROM TABLE
10771
                                (CAST
10772
                                    (opatchdepcollector AS relmgr_number_tab_t)
10773
                                ));
10774
      END IF;
10775
 
10776
      -- Return patch_id
10777
      returnpatchid := patchpv_id;
10778
 
10779
      CLOSE parent_cur;
10780
 
10781
      CLOSE patch_cur;
10782
   EXCEPTION
10783
      WHEN DUP_VAL_ON_INDEX
10784
      THEN
10785
         raise_application_error (-20000,
10786
                                     'Patch version '
10787
                                  || snewpatchversion
10788
                                  || ' already exist.'
10789
                                 );
10790
   END;
10791
 
10792
/*-------------------------------------------------------------------------------------------------------*/
10793
   PROCEDURE obsolete_patch (
10794
      patchid            IN   NUMBER,
10795
      isobsolete         IN   CHAR,
10796
      obsoletecomments   IN   VARCHAR2,
10797
      userid             IN   NUMBER
10798
   )
10799
   IS
10800
   BEGIN
10801
      -- Update patch
10802
      UPDATE package_versions pv
10803
         SET pv.is_obsolete = isobsolete,
10804
             pv.obsolete_comments = obsoletecomments
10805
       WHERE pv.pv_id = patchid;
10806
 
10807
      /*
10808
      -- Update patch children
10809
      UPDATE PACKAGE_VERSIONS pv SET
10810
      pv.IS_OBSOLETE = IsObsolete,
10811
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10812
      WHERE pv.PV_ID IN (
10813
                     SELECT DISTINCT dep.DPV_ID
10814
                       FROM PACKAGE_DEPENDENCIES dep
10815
                      WHERE dep.PV_ID = PatchId
10816
                     );
10817
 
10818
 
10819
      -- Update patch parent
10820
      UPDATE PACKAGE_VERSIONS pv SET
10821
      pv.IS_OBSOLETE = IsObsolete,
10822
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10823
      WHERE pv.PV_ID IN (
10824
                     SELECT DISTINCT dep.PV_ID
10825
                       FROM PACKAGE_DEPENDENCIES dep
10826
                      WHERE dep.DPV_ID = PatchId
10827
                     );
10828
 
3959 dpurdie 10829
      */
1373 dpurdie 10830
 
10831
      /* LOG ACTION */
10832
      IF isobsolete IS NOT NULL
10833
      THEN
6916 dpurdie 10834
         log_action (patchid, 'patch_obsolete', userid, 'Obsolete patch. ' || obsoletecomments );
1373 dpurdie 10835
      ELSE
6916 dpurdie 10836
         log_action (patchid, 'patch_obsolete', userid, 'Undo patch obsolete.' );
1373 dpurdie 10837
      END IF;
10838
   END;
10839
 
10840
/*-------------------------------------------------------------------------------------------------------*/
10841
   PROCEDURE obsolete_patches (
10842
      spatchidlist       IN   VARCHAR2,
10843
      isobsolete         IN   CHAR,
10844
      obsoletecomments   IN   VARCHAR2,
10845
      userid             IN   NUMBER
10846
   )
10847
   IS
10848
   BEGIN
10849
      /*--------------- Business Rules Here -------------------*/
10850
      IF spatchidlist IS NULL
10851
      THEN
10852
         raise_application_error (-20000,
10853
                                  'Please select one or more Patches.'
10854
                                 );
10855
      END IF;
10856
 
10857
/*-------------------------------------------------------*/
10858
 
10859
      -- Update patch
10860
      UPDATE package_versions pv
10861
         SET pv.is_obsolete = isobsolete,
10862
             pv.obsolete_comments = obsoletecomments
10863
       WHERE pv.pv_id IN (
10864
                SELECT *
10865
                  FROM THE
10866
                          (SELECT CAST
10867
                                     (in_list_number (spatchidlist) AS relmgr_number_tab_t
10868
                                     )
10869
                             FROM DUAL
10870
                          ));
3959 dpurdie 10871
      /*
10872
      -- Update patch children
10873
      UPDATE PACKAGE_VERSIONS pv SET
10874
      pv.IS_OBSOLETE = IsObsolete,
10875
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10876
      WHERE pv.PV_ID IN (
10877
                     SELECT DISTINCT dep.DPV_ID
10878
                       FROM PACKAGE_DEPENDENCIES dep
10879
                      WHERE dep.PV_ID = PatchId
10880
                     );
1373 dpurdie 10881
 
10882
 
3959 dpurdie 10883
      -- Update patch parent
10884
      UPDATE PACKAGE_VERSIONS pv SET
10885
      pv.IS_OBSOLETE = IsObsolete,
10886
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10887
      WHERE pv.PV_ID IN (
10888
                     SELECT DISTINCT dep.PV_ID
10889
                       FROM PACKAGE_DEPENDENCIES dep
10890
                      WHERE dep.DPV_ID = PatchId
10891
                     );
1373 dpurdie 10892
 
10893
      */
10894
 
3959 dpurdie 10895
      /* LOG ACTION
10896
      IF IsObsolete IS NOT NULL THEN
6916 dpurdie 10897
         Log_Action ( PatchId, 'patch_obsolete', UserId, 'Obsolete patch. '|| ObsoleteComments );
3959 dpurdie 10898
      ELSE
6916 dpurdie 10899
         Log_Action ( PatchId, 'patch_obsolete', UserId, 'Undo patch obsolete.' );
3959 dpurdie 10900
      END IF;  */
1373 dpurdie 10901
   END;
10902
 
10903
/*-------------------------------------------------------------------------------------------------------*/
10904
   PROCEDURE add_process (
10905
      nprocid         IN   processes.proc_id%TYPE,
10906
      shealthtag      IN   processes.proc_name%TYPE,
10907
      sprocdesc       IN   processes.proc_description%TYPE,
10908
      scmdinterface   IN   processes.run_as%TYPE,
10909
      spkgowner       IN   processes.pkg_owner%TYPE,
10910
      sisinterface    IN   processes.is_interface%TYPE,
10911
      npvid           IN   package_processes.pv_id%TYPE,
10912
      nuserid         IN   NUMBER
10913
   )
10914
   IS
10915
      pkgname   VARCHAR2 (100);
3959 dpurdie 10916
 
1373 dpurdie 10917
   BEGIN
10918
      INSERT INTO processes
10919
                  (proc_id, proc_name, proc_description, run_as, pkg_owner,
10920
                   is_interface
10921
                  )
10922
           VALUES (nprocid, shealthtag, sprocdesc, scmdinterface, spkgowner,
10923
                   sisinterface
10924
                  );
10925
 
10926
      pk_package.add_package_process (nprocid, npvid, nuserid);
10927
   END;
10928
 
10929
/*-------------------------------------------------------------------------------------------------------*/
10930
   PROCEDURE add_package_process (
10931
      nprocidlist   IN   VARCHAR2,
10932
      npvid         IN   package_processes.pv_id%TYPE,
10933
      nuserid       IN   NUMBER
10934
   )
10935
   IS
10936
      processname   VARCHAR2 (4000);
10937
 
10938
      CURSOR proc_cur
10939
      IS
10940
         SELECT prc.proc_id
10941
           FROM processes prc
10942
          WHERE prc.proc_id IN (
10943
                   SELECT *
10944
                     FROM THE
10945
                             (SELECT CAST
10946
                                        (in_list_number (nprocidlist) AS relmgr_number_tab_t
10947
                                        )
10948
                                FROM DUAL
10949
                             ));
10950
 
3959 dpurdie 10951
      proc_rec  proc_cur%ROWTYPE;
1373 dpurdie 10952
   BEGIN
10953
      OPEN proc_cur;
10954
 
10955
      FETCH proc_cur
10956
       INTO proc_rec;
10957
 
10958
      WHILE proc_cur%FOUND
10959
      LOOP
3959 dpurdie 10960
         INSERT INTO package_processes (proc_id, pv_id)
10961
              VALUES (proc_rec.proc_id, npvid);
1373 dpurdie 10962
 
10963
         SELECT prc.proc_name
10964
           INTO processname
10965
           FROM processes prc
10966
          WHERE prc.proc_id = proc_rec.proc_id;
10967
 
10968
         -- Log Action --
6916 dpurdie 10969
         log_action (npvid, 'process_add', nuserid, 'Added process with health tag ' || processname );
1373 dpurdie 10970
 
10971
         FETCH proc_cur
10972
          INTO proc_rec;
10973
      END LOOP;
3959 dpurdie 10974
 
10975
      CLOSE proc_cur;
1373 dpurdie 10976
   END;
10977
 
10978
/*-------------------------------------------------------------------------------------------------------*/
10979
   PROCEDURE remove_process (
10980
      nprocid   IN   package_processes.proc_id%TYPE,
10981
      npvid     IN   package_processes.pv_id%TYPE,
10982
      nuserid   IN   NUMBER
10983
   )
10984
   IS
10985
      processname   VARCHAR2 (4000);
10986
   BEGIN
10987
      SELECT prc.proc_name
10988
        INTO processname
10989
        FROM processes prc
10990
       WHERE prc.proc_id = nprocid;
10991
 
10992
      DELETE FROM package_processes
10993
            WHERE proc_id = nprocid AND pv_id = npvid;
10994
 
10995
      -- Log Action --
6916 dpurdie 10996
      log_action (npvid, 'process_remove', nuserid, 'Removed process with health tag ' || processname );
1373 dpurdie 10997
   END;
10998
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 10999
   /*
11000
   ** Author: Rupesh Solanki
11001
   ** Purpose: To move package versions from one release to another
11002
   ** Release: 4th September 2006
11003
   */
11004
   PROCEDURE move_package (
11005
      npvid        IN package_versions.pv_id%TYPE,
11006
      nrtagid      IN release_tags.rtag_id%TYPE,
11007
      nnewrtagid   IN release_tags.rtag_id%TYPE,
11008
      nuserid      IN NUMBER
11009
   )
11010
   IS
1373 dpurdie 11011
 
3959 dpurdie 11012
      oldrtag_name VARCHAR2(4000);newrtag_name VARCHAR2(4000);
11013
 
11014
   BEGIN
11015
      SELECT rtag_name into oldrtag_name
11016
      FROM RELEASE_TAGS
11017
      WHERE rtag_id = nrtagid;
11018
 
11019
      SELECT rtag_name into newrtag_name
11020
      FROM RELEASE_TAGS
11021
      WHERE rtag_id = nnewrtagid;
11022
 
11023
      /* Table Work In Progress*/
11024
      UPDATE WORK_IN_PROGRESS
11025
      SET RTAG_ID = nnewrtagid
11026
      WHERE RTAG_ID = nrtagid
11027
      AND PV_ID = npvid;
11028
 
11029
      /* Table PLANNED*/
11030
      UPDATE PLANNED
11031
      SET RTAG_ID = nnewrtagid
11032
      WHERE RTAG_ID = nrtagid
11033
      AND PV_ID = npvid;
11034
 
11035
      /* Table PEGGED_VERSIONS */
11036
      DELETE FROM PEGGED_VERSIONS pegv
11037
      WHERE pegv.RTAG_ID = nrtagid
11038
      AND pegv.PV_ID = npvid;
11039
 
11040
      /* Table ADVISORY_RIPPLE*/
11041
      DELETE FROM ADVISORY_RIPPLE
11042
      WHERE RTAG_ID = nrtagid
11043
      AND PV_ID = npvid;
11044
 
11045
 
1373 dpurdie 11046
      -- Log Action --
6916 dpurdie 11047
      log_action (npvid, 'move_package_version', nuserid, 'Moved package version from ' || oldrtag_name || ' to ' || newrtag_name );
3959 dpurdie 11048
   END;
11049
 
1373 dpurdie 11050
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11051
   /*
11052
   ** Author: Rupesh Solanki
11053
   ** Purpose: To modify the product state from integration to test to deployment
11054
   ** Release: 25th January 2006
11055
   */
11056
   PROCEDURE modify_product_state (
11057
      npvid    IN package_versions.pv_id%TYPE,
11058
      nrtagid  IN release_tags.rtag_id%TYPE,
11059
      nstateid IN product_states.state_id%TYPE,
11060
      nuserid  IN NUMBER
1373 dpurdie 11061
   ) IS
3959 dpurdie 11062
 
11063
      sStateName VARCHAR2(4000);
11064
      sRtagName VARCHAR2(4000);
11065
 
11066
   BEGIN
11067
 
11068
      UPDATE RELEASE_CONTENT
11069
      SET PRODUCT_STATE = nstateid
11070
      WHERE PV_ID = npvid
11071
      AND RTAG_ID = nrtagid;
11072
 
11073
 
11074
      SELECT STATE INTO sStateName
11075
      FROM PRODUCT_STATES
11076
      WHERE STATE_ID = nstateid;
11077
 
11078
      SELECT RTAG_NAME into sRtagName
11079
      FROM RELEASE_TAGS
11080
      WHERE RTAG_ID = nrtagid;
11081
 
11082
 
11083
      -- Log Action --
6916 dpurdie 11084
      log_action (npvid, 'modify_product_state', nuserid, sStateName || ' in '|| sRtagName );
3959 dpurdie 11085
   END;
11086
/*-------------------------------------------------------------------------------------------------------*/
11087
   /*
11088
   ** Author: Jeremy Tweddle
11089
   ** Date: 24/Aug/2007
11090
   */
11091
   PROCEDURE add_code_review_url (
11092
      npvid           IN    NUMBER,
11093
      nprojid         IN    NUMBER,
11094
      surl            IN    VARCHAR2,
11095
      sreason         IN    VARCHAR2,
4553 dpurdie 11096
      ddateofreview   IN    VARCHAR2
3959 dpurdie 11097
   ) IS
11098
 
11099
      ncrid NUMBER;
11100
 
11101
   BEGIN
11102
 
11103
      SELECT seq_cr_id.NEXTVAL INTO ncrid FROM DUAL;
11104
 
4553 dpurdie 11105
      INSERT INTO code_review_url ( cr_id, pv_id, proj_id, url, reason, date_of_review, last_modified )
11106
      VALUES ( ncrid, npvid, nprojid, surl, sreason, TO_DATE( ddateofreview,'DD/MM/YYYY' ), ora_sysdate );
3959 dpurdie 11107
 
11108
   END;
11109
/*-------------------------------------------------------------------------------------------------------*/
11110
   /*
11111
   ** Author: Jeremy Tweddle
11112
   ** Date: 22/Aug/2007
11113
   */
11114
   PROCEDURE update_code_review_url (
11115
      ncrid           IN    NUMBER,
11116
      nprojid         IN    NUMBER,
11117
      surl            IN    VARCHAR2,
4553 dpurdie 11118
      sreason         IN    VARCHAR2,
11119
      ddateofreview   IN    VARCHAR2
3959 dpurdie 11120
   ) IS
11121
 
11122
   BEGIN
11123
 
11124
      UPDATE code_review_url
11125
      SET url = surl,
11126
          proj_id = nprojid,
11127
          reason = sreason,
6031 dpurdie 11128
          date_of_review = TO_DATE( ddateofreview,'DD/MM/YYYY' ),
3959 dpurdie 11129
          last_modified = ora_sysdate
11130
      WHERE cr_id = ncrid;
11131
 
11132
   END;
4553 dpurdie 11133
 
3959 dpurdie 11134
/*-------------------------------------------------------------------------------------------------------*/
11135
   /*
11136
   ** Author: Jeremy Tweddle
11137
   ** Date: 22/Aug/2007
11138
   */
11139
   PROCEDURE remove_code_review_url (
11140
      ncrid  IN    NUMBER
11141
   ) IS
11142
 
11143
   BEGIN
11144
      DELETE FROM code_review_url
11145
      WHERE cr_id = ncrid;
11146
   END;
11147
/*-------------------------------------------------------------------------------------------------------*/
6600 dpurdie 11148
 
11149
PROCEDURE
11150
        SET_RIPPLE_STOP (
11151
        nPVID IN RELEASE_CONTENT.PV_ID%TYPE,
11152
        nRtagId IN RELEASE_CONTENT.RTAG_ID%TYPE,
11153
        nUserId IN NUMBER,
11154
        cMode IN CHAR
11155
    ) IS
11156
    ReleaseLocation VARCHAR2(4000);
11157
    sMode VARCHAR(100);
11158
    cData CHAR;
11159
 
11160
 
11161
BEGIN
11162
 
11163
    IF (nPVID IS NULL) THEN
11164
        RAISE_APPLICATION_ERROR (-20000, 'PvId not set' );
11165
    END IF;
11166
 
11167
    IF (nRtagId IS NULL) THEN
11168
        RAISE_APPLICATION_ERROR (-20001, 'rTagId not set' );
11169
    END IF;
11170
 
11171
    cData := cMode;
11172
    If cMode = 's' THEN
11173
        sMode := 'ripple_stop';
11174
 
11175
    ELSIF cMode = 'w' THEN
11176
        sMode := 'ripple_wait';
11177
 
11178
    ELSIF cMode = 'r' THEN
11179
        sMode := 'ripple_removed';
11180
        cData := NULL;
11181
 
11182
    ELSIF cMode = 'g' THEN
11183
        sMode := 'ripple_resume';
11184
 
11185
    ELSE
11186
       RAISE_APPLICATION_ERROR (-20002, 'Unknown mode:' || cMode );
11187
 
11188
    END IF;
11189
 
11190
    -- Update the value
11191
    UPDATE RELEASE_CONTENT 
11192
    SET RIPPLE_STOP = cData
11193
    WHERE RTAG_ID = nRtagId
11194
    AND PV_ID = nPVID;
11195
 
11196
    -- Mark Release Changed for build
11197
    PK_RELEASE.SET_RELEASE_MODIFIED(nRtagId);
11198
 
11199
    /* LOG ACTION */
11200
    SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11201
    FROM PROJECTS proj,RELEASE_TAGS rt
11202
    WHERE rt.PROJ_ID = proj.PROJ_ID
11203
    AND rt.RTAG_ID = nRtagId;
11204
 
11205
    Log_Action ( nPVID, sMode, nUserId, 'Location: '|| ReleaseLocation);
11206
 
11207
END SET_RIPPLE_STOP;
11208
 
3959 dpurdie 11209
END pk_package;
4040 dpurdie 11210
 
1374 dpurdie 11211
/
5892 dpurdie 11212
 
6031 dpurdie 11213
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
11214
  GRANT DEBUG ON "RELEASE_MANAGER"."PK_PACKAGE" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 11215
--------------------------------------------------------
11216
--  DDL for Package Body PK_PLANNED
11217
--------------------------------------------------------
11218
 
5172 dpurdie 11219
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PLANNED" IS
3959 dpurdie 11220
 
1373 dpurdie 11221
/*
11222
------------------------------
3959 dpurdie 11223
||  Last Modified:  G.Huddy
11224
||  Modified Date:  05/Aug/2008
11225
||  Body Version:   1.2
1373 dpurdie 11226
------------------------------
11227
*/
11228
 
11229
 
11230
/*-------------------------------------------------------------------------------------------------------*/
5384 dpurdie 11231
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, OPR IN CHAR DEFAULT 'R' ) IS
1373 dpurdie 11232
 
3959 dpurdie 11233
    oldPvId NUMBER;
11234
    ReleaseLocation VARCHAR2(4000);
11235
    IsPatch CHAR(1) := NULL;
11236
    sLocation VARCHAR2(4000) := NULL;
11237
    nRtagIdLocation NUMBER;
1373 dpurdie 11238
 
11239
 
11240
 
3959 dpurdie 11241
BEGIN
11242
    /*--------------- Business Rules Here -------------------*/
11243
    /*-------------------------------------------------------*/
6031 dpurdie 11244
 
5384 dpurdie 11245
    IF OPR = 'R' THEN
11246
      BEGIN
11247
          -- Check if Exists in "Work in progress" anywhere in the world, except "Closed mode" releases
11248
          SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME, rt.RTAG_ID  INTO sLocation, nRtagIdLocation
11249
            FROM PLANNED pl,
11250
                 RELEASE_TAGS rt,
11251
                 PROJECTS proj
11252
           WHERE pl.PV_ID = newPvId
11253
             AND pl.RTAG_ID = rt.RTAG_ID
11254
             AND rt.OFFICIAL != 'Y'
11255
             AND rt.PROJ_ID = proj.PROJ_ID;
6031 dpurdie 11256
 
5384 dpurdie 11257
          EXCEPTION
11258
              WHEN NO_DATA_FOUND THEN
11259
                  sLocation := NULL;
11260
      END;
6031 dpurdie 11261
 
5384 dpurdie 11262
      IF (sLocation IS NULL) OR (nRtagIdLocation = RtagId) THEN
6031 dpurdie 11263
 
5384 dpurdie 11264
          -- Add to "Pending" area
11265
          INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )
11266
          VALUES( RtagId, newPvId, ViewId, OPR );
6031 dpurdie 11267
 
5384 dpurdie 11268
          /* LOG ACTION */
11269
          SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11270
            FROM PROJECTS proj,
11271
                 RELEASE_TAGS rt
11272
           WHERE rt.PROJ_ID = proj.PROJ_ID
11273
             AND rt.RTAG_ID = RtagId;
6031 dpurdie 11274
 
5384 dpurdie 11275
          Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
6031 dpurdie 11276
 
5384 dpurdie 11277
      ELSE
11278
            RAISE_APPLICATION_ERROR (-20000, 'This version is already in Pending Area at '|| sLocation ||'.' );
11279
        END IF;
6031 dpurdie 11280
 
3959 dpurdie 11281
    ELSE
6031 dpurdie 11282
      -- Not adding a WIP. Merging a package version
5384 dpurdie 11283
      MERGE_PACKAGE ( newPvId, ViewId, RtagId, UserId, OPR );
3959 dpurdie 11284
    END IF;
11285
 
11286
END;
1373 dpurdie 11287
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11288
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 11289
 
3959 dpurdie 11290
    ReleaseLocation VARCHAR2(4000);
1373 dpurdie 11291
 
3959 dpurdie 11292
BEGIN
1373 dpurdie 11293
 
3959 dpurdie 11294
    /*--------------- Business Rules Here -------------------*/
11295
    /*-------------------------------------------------------*/
1373 dpurdie 11296
 
11297
 
3959 dpurdie 11298
    -- Get release location for logging pusposes
11299
    SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11300
      FROM PROJECTS proj,
11301
           RELEASE_TAGS rt
11302
     WHERE rt.PROJ_ID = proj.PROJ_ID
11303
       AND rt.RTAG_ID = RtagId;
1373 dpurdie 11304
 
6031 dpurdie 11305
    -- Ensure that package is not marked as Pending any more
11306
    UPDATE package_versions
11307
       SET DLOCKED  = 'N'
11308
     WHERE PV_ID  = PvId
11309
       AND DLOCKED != 'Y';
1373 dpurdie 11310
 
3959 dpurdie 11311
    -- Delete from Work In Progress
11312
    DELETE
11313
      FROM PLANNED pl
11314
     WHERE pl.RTAG_ID = RtagId
11315
       AND pl.PV_ID = PvId;
1373 dpurdie 11316
 
3959 dpurdie 11317
    Log_Action ( PvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
11318
 
11319
 
11320
 
11321
 
11322
END;
1373 dpurdie 11323
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11324
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
1373 dpurdie 11325
 
3959 dpurdie 11326
    ReturnValue NUMBER;
1373 dpurdie 11327
 
3959 dpurdie 11328
BEGIN
11329
    SELECT pl.VIEW_ID INTO ReturnValue
11330
      FROM PLANNED pl
11331
     WHERE pl.RTAG_ID = RtagId
11332
       AND pl.PV_ID = PvId;
11333
 
11334
    RETURN ReturnValue;
11335
END;
11336
/*-------------------------------------------------------------------------------------------------------*/
11337
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
11338
 
11339
    IsBaseView CHAR(1);
11340
 
11341
BEGIN
11342
 
11343
    -- Check if the view is BASE VIEW
11344
    SELECT vi.BASE_VIEW INTO IsBaseView
11345
      FROM VIEWS vi
11346
     WHERE vi.VIEW_ID = ViewId;
11347
 
11348
 
5172 dpurdie 11349
    IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 11350
        -- Get Base view content
11351
        OPEN RecordSet FOR
11352
        SELECT 0 AS PKG_STATE,
11353
               NULL AS DEPRECATED_STATE,
11354
               pv.pv_id,
11355
               pkg.pkg_name,
11356
               pv.pkg_version,
11357
               pv.dlocked,
11358
               pv.pv_description,
11359
               pv.BUILD_TYPE,
11360
               rel.operation
11361
          FROM PLANNED rel,
11362
               packages pkg,
11363
               package_versions pv
11364
         WHERE pv.pkg_id = pkg.pkg_id
11365
           AND rel.pv_id = pv.pv_id
11366
           AND rel.VIEW_ID = ViewId
11367
           AND rel.RTAG_ID = RtagId
11368
         ORDER BY UPPER(pkg.PKG_NAME);
11369
 
11370
    ELSE
11371
 
11372
        -- Get non base view content
11373
        OPEN RecordSet FOR
11374
        SELECT 0 AS PKG_STATE,
11375
               NULL AS DEPRECATED_STATE,
11376
               pv.pv_id,
11377
               pkg.pkg_name,
11378
               pv.pkg_version,
11379
               pv.dlocked,
11380
               pv.pv_description,
11381
               pv.BUILD_TYPE,
11382
               rel.operation
11383
          FROM PLANNED rel,
11384
               packages pkg,
11385
               package_versions pv,
11386
               VIEW_DEF vd
11387
         WHERE pv.pkg_id = pkg.pkg_id
11388
           AND rel.pv_id = pv.pv_id
11389
           AND rel.RTAG_ID = RtagId
11390
           AND vd.VIEW_ID = ViewId
11391
           AND vd.PKG_ID = pv.PKG_ID
11392
         ORDER BY UPPER(pkg.PKG_NAME);
11393
 
11394
    END IF;
11395
 
11396
 
11397
END;
11398
/*-------------------------------------------------------------------------------------------------------*/
11399
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
11400
 
11401
BEGIN
11402
 
11403
    UPDATE PLANNED pl SET
11404
    pl.VIEW_ID = NewViewId
11405
    WHERE pl.PV_ID = PvId
11406
      AND pl.RTAG_ID = RtagId;
11407
 
11408
END;
11409
/*-------------------------------------------------------------------------------------------------------*/
11410
-- DEVI-45275 This new function supports the ability to insert into the planned table, and existing
11411
-- version of a package as part of a release-to-release merge operation carried out within release manager.
11412
-- DEVI-49594 This function has subsequently been changed to allow a merge operation to cancel its
11413
-- opposite operation, if the opposite already exists in the planned table. This supports user activity
11414
-- via the Release Manager merge manager display
11415
 
11416
PROCEDURE MERGE_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER, mergeOperation IN CHAR ) IS
11417
 
11418
    ReleaseLocation VARCHAR2(4000);
11419
 
11420
        entryExists NUMBER;
11421
        existingOperation CHAR;
11422
BEGIN
11423
    /*--------------- Business Rules Here -------------------*/
11424
    /*-------------------------------------------------------*/
11425
 
11426
      -- Determine if the specified PV_ID already exists in the planned table....
11427
      SELECT COUNT (pl.pv_id) INTO entryExists
11428
      FROM PLANNED pl
11429
      WHERE pl.pv_id = newPvId
11430
      AND pl.rtag_id = RtagId
11431
      AND pl.view_id = ViewId;
11432
 
11433
      -- If the specified PV_ID already exists in the planned table....
11434
      IF entryExists = 1 THEN
11435
 
11436
         -- Get the operation for the existing entry
11437
         SELECT pl.operation INTO existingOperation
11438
         FROM PLANNED pl
11439
         WHERE pl.pv_id = newPvId
11440
         AND pl.rtag_id = RtagId
11441
         AND pl.view_id = ViewId;
11442
 
11443
         -- Is the specified merge operation the opposite of the existing entry?
11444
         -- If it is not, then there is nothing to do, otherwise...
11445
         -- NOTE: A = Add, S = Subtract
11446
         IF (mergeOperation = 'S' AND existingOperation = 'A')
11447
            OR (mergeOperation = 'A' AND existingOperation = 'S') THEN
11448
 
11449
           -- It is the opposite, so effectively it cancels the existing entry
11450
           -- Remove the entry from the planned table
11451
           DELETE
11452
            FROM PLANNED pl
11453
           WHERE pl.pv_id = newPvId
11454
             AND pl.rtag_id = RtagId
11455
             AND pl.view_id = ViewId;
11456
 
11457
           -- Log action
11458
           SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11459
             FROM PROJECTS proj,
11460
                  RELEASE_TAGS rt
11461
            WHERE rt.PROJ_ID = proj.PROJ_ID
11462
              AND rt.RTAG_ID = RtagId;
11463
 
11464
           Log_Action ( newPvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 11465
         END IF;
3959 dpurdie 11466
      ELSE
11467
         -- Add to Planned tabled
11468
         INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )
11469
         VALUES( RtagId, newPvId, ViewId, mergeOperation );
1373 dpurdie 11470
 
3959 dpurdie 11471
         -- Log Action
11472
         SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
11473
          FROM PROJECTS proj,
11474
               RELEASE_TAGS rt
11475
         WHERE rt.PROJ_ID = proj.PROJ_ID
11476
         AND   rt.RTAG_ID = RtagId;
11477
 
11478
         Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 11479
      END IF;
11480
 
3959 dpurdie 11481
END;
1373 dpurdie 11482
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11483
END PK_PLANNED;
4040 dpurdie 11484
 
3959 dpurdie 11485
/
4040 dpurdie 11486
--------------------------------------------------------
11487
--  DDL for Package Body PK_PROJECT
11488
--------------------------------------------------------
11489
 
5172 dpurdie 11490
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_PROJECT" IS
1373 dpurdie 11491
 
3959 dpurdie 11492
    /*------------------------------------------------------------------------*/
11493
    PROCEDURE update_base_url (
11494
    nprojid   IN  projects.proj_id%TYPE,
11495
    sbaseurl  IN  VARCHAR2
11496
    ) IS
11497
    BEGIN
1373 dpurdie 11498
 
3959 dpurdie 11499
    UPDATE projects
11500
    SET base_url = sbaseurl
11501
    WHERE proj_id = nprojid;
11502
 
11503
    END update_base_url;
11504
 
11505
/*------------------------------------------------------------------------*/
11506
    PROCEDURE update_project_config (
11507
    nprojid   IN  projects.proj_id%TYPE,
11508
    sbaseurl  IN  VARCHAR2,
11509
    sjirakey  IN  VARCHAR2
11510
    ) IS
11511
    BEGIN
11512
 
11513
    UPDATE projects
11514
    SET base_url = sbaseurl,
11515
        jira_key = sjirakey
11516
    WHERE proj_id = nprojid;
11517
 
11518
    END update_project_config;
11519
    /*------------------------------------------------------------------------*/
11520
 
11521
    END pk_project;
4040 dpurdie 11522
 
3959 dpurdie 11523
/
4040 dpurdie 11524
--------------------------------------------------------
11525
--  DDL for Package Body PK_RELEASE
11526
--------------------------------------------------------
11527
 
5172 dpurdie 11528
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_RELEASE" IS
3959 dpurdie 11529
 
1373 dpurdie 11530
/*-------------------------------------------------------------------------------------------------------*/
6031 dpurdie 11531
PROCEDURE New_Release ( sReleaseName IN VARCHAR2,
11532
                        sReleaseComments IN VARCHAR2,
11533
                        nProjId IN NUMBER,
11534
                        nSourceRtagId IN NUMBER,
11535
                        sIsBranched IN CHAR,
5502 dpurdie 11536
                        nUserId IN NUMBER,
11537
                        cOfficial IN CHAR DEFAULT 'N'
11538
                        ) IS
1373 dpurdie 11539
 
3959 dpurdie 11540
RtagId NUMBER;
11541
ParentRtagId NUMBER;
11542
RecCount NUMBER := 0;
11543
VtreeId NUMBER;
1373 dpurdie 11544
 
3959 dpurdie 11545
BEGIN
11546
   /*--------------- Business Rules Here -------------------*/
11547
   -- Check for missing parameters
11548
   IF (sReleaseName IS NULL) OR (nUserId IS NULL)
11549
   THEN
11550
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId );
1373 dpurdie 11551
 
3959 dpurdie 11552
   END IF;
1373 dpurdie 11553
 
3959 dpurdie 11554
 
11555
   -- Check for duplicate Release Names
11556
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
11557
     FROM RELEASE_TAGS rt
11558
    WHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )
11559
      AND rt.PROJ_ID = nProjId;
11560
 
11561
   IF (RecCount > 0) THEN
11562
      RAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');
11563
   END IF;
11564
   /*-------------------------------------------------------*/
11565
 
11566
 
11567
   -- Get rtag_id
11568
   SELECT SEQ_RTAG_ID.NEXTVAL INTO RtagId FROM DUAL;
11569
 
11570
   SELECT SEQ_VTREE_ID.NEXTVAL INTO VtreeId FROM DUAL;
11571
 
11572
 
11573
 
11574
   -- Get Parent RtagId
11575
   ParentRtagId := GET_PARENT_RTAG ( RtagId, nSourceRtagId, sIsBranched );
11576
 
11577
   -- If the parent RTAG is NOT in this project then we cannot use it.
11578
   -- We must re-assign the parent to be the new release's RTAG_ID instead
11579
   -- else it will not show up in the projects release tree (DEVI-55480)
11580
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
11581
     FROM RELEASE_TAGS rt
11582
    WHERE rt.RTAG_ID = ParentRtagId
11583
      AND rt.PROJ_ID = nProjId;
11584
 
11585
   IF (RecCount = 0) THEN
11586
     ParentRtagId := RtagId;
11587
   END IF;
11588
 
11589
   -- Create new release
11590
   INSERT INTO RELEASE_TAGS ( RTAG_ID, RTAG_NAME, DESCRIPTION, CREATED_STAMP, CREATOR_ID,
11591
                        OFFICIAL, REBUILD_ENV, REBUILD_STAMP,
11592
                        PARENT_RTAG_ID, PROJ_ID, VTREE_ID )
11593
   VALUES ( RtagId,
11594
          sReleaseName,
11595
          sReleaseComments,
11596
          ORA_SYSDATE,
11597
          nUserId,
5502 dpurdie 11598
          cOfficial,
3959 dpurdie 11599
          'N',
11600
          0,
11601
          ParentRtagId,
11602
          nProjId,
11603
          VtreeId );
11604
 
11605
   -- If a source release is provided, clone its config spec branch information into the new release (DEVI-56650)
11606
   IF (NOT nSourceRtagId IS NULL)
11607
   THEN
11608
      UPDATE RELEASE_TAGS rtd
11609
      SET rtd.config_spec_branch = (SELECT rts.CONFIG_SPEC_BRANCH FROM RELEASE_TAGS rts WHERE rts.RTAG_ID = nSourceRtagId)
11610
      WHERE rtd.RTAG_ID = RtagId;
11611
   END IF;
11612
 
11613
   -- Update display Order
11614
   UPDATE_DISPLAY_ORDER ( nProjId );
11615
 
11616
   /* Log Project Action */
11617
   Log_Project_Action ( nProjId, 'new_release', nUserId, sReleaseName, RtagId );
11618
 
11619
 
11620
   -- Import Release Contents
11621
   IF (NOT nSourceRtagId IS NULL) THEN
5502 dpurdie 11622
      Import_Release_Contents ( nSourceRtagId, RtagId, nUserId, 1 );
3959 dpurdie 11623
   END IF;
11624
 
11625
END;
11626
/*-------------------------------------------------------------------------------------------------------*/
11627
PROCEDURE UPDATE_DISPLAY_ORDER ( nProjId IN NUMBER ) IS
11628
 
11629
 
11630
BEGIN
11631
 
11632
 
11633
   /*--------------- Business Rules Here -------------------*/
11634
   /*-------------------------------------------------------*/
11635
 
11636
   UPDATE RELEASE_TAGS urt SET
11637
   urt.DISPLAY_ORDER = (
11638
                  SELECT qry.REC_NUM
11639
                    FROM (
11640
                        SELECT rel.*, ROWNUM AS REC_NUM
11641
                          FROM (
11642
 
11643
                                SELECT rt.RTAG_ID,
11644
                                    rt.DISPLAY_ORDER,
11645
                                     DECODE( rt.PARENT_RTAG_ID,
11646
                                             rt.RTAG_ID, 0, rt.PARENT_RTAG_ID ) AS PARENT_RTAG_ID
11647
                                FROM RELEASE_TAGS rt
11648
                               WHERE rt.PROJ_ID = nProjId
11649
 
11650
                                ) rel
11651
                        START WITH rel.PARENT_RTAG_ID = 0
11652
                        CONNECT BY PRIOR rel.RTAG_ID = rel.PARENT_RTAG_ID
11653
                        ORDER SIBLINGS BY rel.DISPLAY_ORDER
11654
                        ) qry
11655
                     WHERE qry.RTAG_ID = urt.RTAG_ID
11656
                  )
11657
   WHERE urt.PROJ_ID = nProjId;
11658
 
11659
END;
11660
/*-------------------------------------------------------------------------------------------------------*/
11661
PROCEDURE MOVE_RELEASE ( sRtagIdList IN VARCHAR2, nProjId IN NUMBER, nUserId IN NUMBER  ) IS
11662
 
11663
   nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
11664
   SeqNum NUMBER;
11665
 
11666
BEGIN
11667
 
11668
 
11669
   /*--------------- Business Rules Here -------------------*/
11670
   /*-------------------------------------------------------*/
11671
 
11672
   nIdCollector := IN_LIST_NUMBER ( sRtagIdList );
11673
 
11674
   -- Set start sequence number
11675
   SeqNum := 1;
11676
 
11677
   FOR i IN 1..nIdCollector.COUNT
11678
   LOOP
11679
 
11680
      -- Update new display order
11681
      UPDATE RELEASE_TAGS rt SET
11682
         rt.DISPLAY_ORDER = SeqNum
11683
       WHERE rt.PROJ_ID = nProjId
11684
         AND rt.RTAG_ID = nIdCollector(i);
11685
 
11686
      SeqNum := SeqNum + 1;
11687
 
11688
   END LOOP;
11689
 
11690
END;
11691
/*-------------------------------------------------------------------------------------------------------*/
5502 dpurdie 11692
PROCEDURE Update_Release ( nRtagId IN NUMBER,
11693
                           sReleaseName IN VARCHAR2,
11694
                           sReleaseComments IN VARCHAR2,
11695
                           nParentRtagId IN NUMBER,
11696
                           nMASSRtagId IN NUMBER,
11697
                           nConfigSpecBranch IN VARCHAR2,
11698
                           sOwnerEmail IN VARCHAR2,
11699
                           nUserId IN NUMBER,
11700
                           cState IN VARCHAR,
5384 dpurdie 11701
                           nBuildAge in NUMBER,
11702
                           cLxr in CHAR) IS
3959 dpurdie 11703
 
11704
RecCount NUMBER := 0;
11705
ProjId NUMBER;
11706
 
11707
BEGIN
11708
 
11709
 
11710
   /*--------------- Business Rules Here -------------------*/
11711
   -- Check for missing parameters
11712
   IF (sReleaseName IS NULL) OR (nUserId IS NULL) OR (nRtagId IS NULL)
11713
   THEN
11714
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! sReleaseName= '|| sReleaseName ||', nUserId='|| nUserId ||', nRtagId='|| nRtagId);
11715
 
11716
   END IF;
11717
 
11718
 
11719
   -- Check for duplicate Release Names
11720
   SELECT rt.PROJ_ID INTO ProjId
11721
     FROM RELEASE_TAGS rt
11722
    WHERE rt.RTAG_ID = nRtagId;
11723
 
11724
   SELECT COUNT(rt.RTAG_ID) INTO RecCount
11725
     FROM RELEASE_TAGS rt
11726
    WHERE UPPER( rt.RTAG_NAME ) = UPPER( sReleaseName )
11727
      AND rt.RTAG_ID != nRtagId
11728
      AND rt.PROJ_ID = ProjId;
11729
 
11730
 
11731
   IF (RecCount > 0) THEN
11732
      RAISE_APPLICATION_ERROR (-20000, 'Release Name '|| sReleaseName ||' is Already Used in this Project.');
11733
   END IF;
11734
   /*-------------------------------------------------------*/
11735
 
11736
 
11737
 
11738
   -- Update release details
11739
   UPDATE RELEASE_TAGS rt SET
11740
   rt.RTAG_NAME = sReleaseName,
11741
   rt.DESCRIPTION = sReleaseComments,
11742
   rt.PARENT_RTAG_ID = nParentRtagId,
11743
   rt.ASSOC_MASS_REF = nMASSRtagId,
11744
   rt.CONFIG_SPEC_BRANCH = nConfigSpecBranch,
11745
   rt.OWNER_EMAIL = sOwnerEmail,
5172 dpurdie 11746
   rt.PRODUCT_STATE_USED = cState,
5384 dpurdie 11747
   rt.BUILD_AGE = nBuildAge,
11748
   rt.LXR = cLxr
3959 dpurdie 11749
   WHERE rt.RTAG_ID = nRtagId;
11750
 
11751
   -- Update display Order
11752
   UPDATE_DISPLAY_ORDER ( ProjId );
11753
 
11754
   /* Log Project Action */
11755
   Log_Project_Action ( ProjId, 'update_release', nUserId, 'Release Name: <br>Release Comments:', nRtagId );
11756
 
11757
 
11758
 
11759
 
11760
END;
11761
/*-------------------------------------------------------------------------------------------------------*/
11762
PROCEDURE Destroy_Release ( nRtagId IN NUMBER, nUserId IN NUMBER ) IS
11763
 
11764
   RecCount NUMBER := 0;
11765
   sReleaseId VARCHAR2(4000);
11766
   ProjId NUMBER;
11767
 
11768
BEGIN
11769
   /*--------------- Business Rules Here -------------------*/
11770
   IF (nRtagId IS NULL)
11771
   THEN
11772
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId  );
11773
   END IF;
11774
 
11775
 
11776
 
11777
   -- Check for any kids
11778
   SELECT COUNT( rt.RTAG_ID ) INTO RecCount
11779
     FROM RELEASE_TAGS rt
11780
    WHERE rt.PARENT_RTAG_ID = nRtagId
11781
      AND rt.RTAG_ID != rt.PARENT_RTAG_ID;
11782
 
11783
   IF (RecCount > 0) THEN
11784
      RAISE_APPLICATION_ERROR (-20000, 'Cannot destroy this release. You need to destroy its children releases first.'  );
11785
   END IF;
11786
   /*-------------------------------------------------------*/
11787
 
11788
   -- Clear the release contents
11789
   Clean_Release_Contents ( nRtagId, nUserId );
11790
 
11791
   /* Log Project Action */
11792
   SELECT rt.PROJ_ID, rt.RTAG_NAME ||'['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']' INTO ProjId, sReleaseId
11793
     FROM RELEASE_TAGS rt
11794
    WHERE rt.RTAG_ID = nRtagId;
11795
 
11796
   Log_Project_Action ( ProjId, 'destroy_release', nUserId, sReleaseId, nRtagId );
11797
 
11798
 
11799
   -- Remove Release
11800
   DELETE
11801
     FROM RELEASE_TAGS rt
11802
    WHERE rt.RTAG_ID = nRtagId;
11803
 
11804
 
11805
 
11806
END;
11807
/*-------------------------------------------------------------------------------------------------------*/
5502 dpurdie 11808
PROCEDURE Import_Release_Contents ( nSourceRtagId IN NUMBER, nTargetRtagId IN NUMBER, nUserId IN NUMBER, nMode IN NUMBER default 0 ) IS
3959 dpurdie 11809
 
11810
   sSourceLocation VARCHAR2(4000);
11811
   sTargetLocation VARCHAR2(4000);
11812
   ProjId NUMBER;
11813
   cReleaseMode CHAR(1);
11814
   RconId NUMBER;
11815
 
11816
   -- this cursor gets the source release daemon configurations, ensuring that the
11817
   -- first record will be the master daemon, and subsequent records will be the slaves.
11818
   CURSOR curSrcReleaseConfigs IS
4308 dpurdie 11819
    SELECT daemon_hostname, gbe_id, gbe_buildfilter, bmcon_id, daemon_mode
3959 dpurdie 11820
     FROM RELEASE_CONFIG rc
11821
    WHERE rc.RTAG_ID = nSourceRtagId
11822
    ORDER BY rc.daemon_mode;
11823
    recSrcReleaseConfigs curSrcReleaseConfigs%ROWTYPE;
11824
 
11825
    -- this cursor looks for target release daemons
11826
   CURSOR curTgtReleaseConfigs IS
11827
    SELECT rcon_id
11828
     FROM RELEASE_CONFIG rc
11829
    WHERE rc.RTAG_ID = nTargetRtagId;
11830
    recTgtReleaseConfigs curTgtReleaseConfigs%ROWTYPE;
11831
 
11832
    -- this cursor looks for target release daemon run level entries
11833
   CURSOR curTgtReleaseConfigRunLevel IS
11834
    SELECT current_run_level
11835
     FROM RUN_LEVEL rl
11836
    WHERE rl.RCON_ID = recTgtReleaseConfigs.rcon_id;
11837
    recTgtReleaseConfigRunLevel curTgtReleaseConfigRunLevel%ROWTYPE;
11838
 
11839
BEGIN
11840
   /*--------------- Business Rules Here -------------------*/
11841
   IF (nSourceRtagId IS NULL) OR (nTargetRtagId IS NULL)
11842
   THEN
11843
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nSourceRtagId= '|| nSourceRtagId ||', nTargetRtagId='|| nTargetRtagId );
11844
   END IF;
11845
 
11846
   IF (nSourceRtagId = nTargetRtagId) THEN
11847
      RAISE_APPLICATION_ERROR (-20000, 'Cannot import release contents from same release.' );
11848
   END IF;
11849
 
11850
 
11851
   -- Check if Target release is in OPEN mode
5502 dpurdie 11852
   IF nMode = 0 THEN
11853
     SELECT rt.OFFICIAL  INTO  cReleaseMode
11854
       FROM RELEASE_TAGS rt
11855
      WHERE rt.RTAG_ID = nTargetRtagId;
6031 dpurdie 11856
 
5502 dpurdie 11857
     IF (cReleaseMode != 'N') THEN
11858
        RAISE_APPLICATION_ERROR (-20000, 'Release must be in OPEN mode to import the contents.' );
11859
     END IF;
11860
  END IF;
3959 dpurdie 11861
 
11862
   -- check that the target release's daemons are all paused before we allow an import operation
11863
   OPEN curTgtReleaseConfigs;
11864
   FETCH curtgtReleaseConfigs INTO recTgtReleaseConfigs;
11865
 
11866
   WHILE curTgtReleaseConfigs%FOUND
11867
   LOOP
11868
      OPEN curTgtReleaseConfigRunLevel;
11869
      FETCH curTgtReleaseConfigRunLevel INTO recTgtReleaseConfigRunLevel;
11870
      IF curTgtReleaseConfigRunLevel%FOUND THEN
11871
         IF (recTgtReleaseConfigRunLevel.current_run_level IS NULL) OR
11872
            (recTgtReleaseConfigRunLevel.current_run_level <> 2) THEN
11873
            RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
11874
         END IF;
1373 dpurdie 11875
      ELSE
3959 dpurdie 11876
         -- we don't know what the daemon run level is so err on the side of caution
11877
         RAISE_APPLICATION_ERROR (-20000, 'Destination release daemon run levels must be paused before operation can proceed.' );
1373 dpurdie 11878
      END IF;
3959 dpurdie 11879
      CLOSE curTgtReleaseConfigRunLevel;
1373 dpurdie 11880
 
3959 dpurdie 11881
      FETCH curTgtReleaseConfigs INTO recTgtReleaseConfigs;
11882
   END LOOP;
1373 dpurdie 11883
 
3959 dpurdie 11884
   CLOSE curTgtReleaseConfigs;
1373 dpurdie 11885
 
11886
 
3959 dpurdie 11887
   /*-------------------------------------------------------*/
1373 dpurdie 11888
 
3959 dpurdie 11889
   -- Clean target contents
11890
   Clean_Release_Contents ( nTargetRtagId, nUserId );
1373 dpurdie 11891
 
11892
 
3959 dpurdie 11893
   -- Import Released Area Contents
5502 dpurdie 11894
   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 11895
   SELECT nTargetRtagId AS RTAG_ID,
11896
         rc.PV_ID,
11897
         rc.BASE_VIEW_ID,
11898
         rc.INSERT_STAMP,
11899
         rc.INSERTOR_ID,
11900
         rc.PKG_STATE,
11901
         rc.PKG_ID,
5384 dpurdie 11902
         rc.DEPRECATED_STATE,
11903
         rc.PRODUCT_STATE,
11904
         rc.SDKTAG_ID
3959 dpurdie 11905
     FROM RELEASE_CONTENT rc
11906
    WHERE rc.RTAG_ID = nSourceRtagId;
11907
 
11908
 
11909
   -- Import any Pegged Version settings from the source release
11910
   INSERT INTO PEGGED_VERSIONS ( RTAG_ID, PV_ID )
11911
   SELECT nTargetRtagId AS RTAG_ID,
11912
          pegv.PV_ID
11913
     FROM PEGGED_VERSIONS pegv
11914
    WHERE pegv.RTAG_ID = nSourceRtagId;
11915
 
11916
   -- Import any Advisory Ripple settings from the source release
11917
   INSERT INTO ADVISORY_RIPPLE ( RTAG_ID, PV_ID )
11918
   SELECT nTargetRtagId AS RTAG_ID,
11919
          avr.PV_ID
11920
     FROM ADVISORY_RIPPLE avr
11921
    WHERE avr.RTAG_ID = nSourceRtagId;
11922
 
11923
 
11924
   --Import Release Configuration Information
11925
   OPEN curSrcReleaseConfigs;
11926
   FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
11927
 
4308 dpurdie 11928
     WHILE curSrcReleaseConfigs%FOUND
3959 dpurdie 11929
   LOOP
11930
      -- add a daemon to the target release
5502 dpurdie 11931
      PK_BUILDAPI.duplicate_daemon_config( nTargetRtagId,
11932
                                     recSrcReleaseConfigs.bmcon_id,
11933
                                     recSrcReleaseConfigs.daemon_hostname,
11934
                                     recSrcReleaseConfigs.gbe_id,
4308 dpurdie 11935
                                     recSrcReleaseConfigs.daemon_mode ,
11936
                                     recSrcReleaseConfigs.gbe_buildfilter );
3959 dpurdie 11937
 
11938
      FETCH curSrcReleaseConfigs INTO recSrcReleaseConfigs;
11939
   END LOOP;
11940
 
11941
   CLOSE curSrcReleaseConfigs;
11942
 
11943
 
11944
 
11945
   -- Import Ignore Warning states
11946
   INSERT INTO IGNORE_WARNINGS ( RTAG_ID, PV_ID, DPV_ID )
11947
   SELECT nTargetRtagId AS RTAG_ID,
11948
          igw.PV_ID,
11949
          igw.DPV_ID
11950
     FROM IGNORE_WARNINGS igw
11951
    WHERE igw.rtag_id = nSourceRtagId;
11952
 
11953
 
11954
   /* Log Project Action */
11955
   -- Get Source Location
11956
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sSourceLocation
11957
     FROM RELEASE_TAGS rt,
11958
           PROJECTS pr
11959
    WHERE rt.PROJ_ID = pr.PROJ_ID
11960
      AND rt.RTAG_ID = nSourceRtagId;
11961
 
11962
   -- Get Target Location
11963
   SELECT pr.PROJ_NAME ||' > '|| rt.RTAG_NAME ||' ['|| rt.RTAG_VERSION ||'.'|| rt.RTAG_LIFE_CYCLE ||']'  INTO sTargetLocation
11964
     FROM RELEASE_TAGS rt,
11965
           PROJECTS pr
11966
    WHERE rt.PROJ_ID = pr.PROJ_ID
11967
      AND rt.RTAG_ID = nTargetRtagId;
11968
 
11969
   -- Get project id
11970
   SELECT rt.PROJ_ID  INTO  ProjId
11971
     FROM RELEASE_TAGS rt
11972
    WHERE rt.RTAG_ID = nTargetRtagId;
11973
 
11974
   Log_Project_Action ( ProjId, 'import_release_contents', nUserId, 'SOURCE: '|| sSourceLocation ||'   TARGET: '|| sTargetLocation, nTargetRtagId );
11975
END;
11976
 
11977
 
11978
 
1373 dpurdie 11979
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 11980
PROCEDURE Clean_Release_Contents ( nRtagId IN NUMBER, nUserId IN NUMBER ) IS
1373 dpurdie 11981
 
3959 dpurdie 11982
   RecCount NUMBER;
11983
        rconIdList VARCHAR2(4000);
1373 dpurdie 11984
 
3959 dpurdie 11985
BEGIN
11986
   /*--------------- Business Rules Here -------------------*/
11987
   IF (nRtagId IS NULL)
11988
   THEN
11989
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId  );
11990
   END IF;
1373 dpurdie 11991
 
11992
 
3959 dpurdie 11993
   -- Check if other release references this release
11994
   SELECT COUNT( rl.RTAG_ID ) INTO RecCount
11995
     FROM RELEASE_LINKS rl
11996
    WHERE rl.REF_RTAG_ID = nRtagId;
1373 dpurdie 11997
 
3959 dpurdie 11998
   IF (RecCount > 0) THEN
11999
      RAISE_APPLICATION_ERROR (-20000, 'This release is referenced by other release and cannot be destroyed.'  );
12000
   END IF;
12001
   /*-------------------------------------------------------*/
1373 dpurdie 12002
 
3959 dpurdie 12003
   -- Delete Release links
12004
   DELETE
12005
     FROM RELEASE_LINKS rl
12006
    WHERE rl.RTAG_ID = nRtagId;
12007
 
12008
   -- Delete ignore warning
12009
   DELETE
12010
     FROM IGNORE_WARNINGS iw
12011
    WHERE iw.RTAG_ID = nRtagId;
12012
 
12013
 
12014
   -- Delete Build Order cached calculations
12015
   DELETE
12016
     FROM BUILD_ORDER bo
12017
    WHERE bo.RTAG_ID = nRtagId;
12018
 
12019
 
12020
   -- Delete Notification History
12021
   DELETE
12022
     FROM NOTIFICATION_HISTORY nh
12023
    WHERE nh.RTAG_ID = nRtagId;
12024
 
12025
 
12026
   -- Delete Released Area Contents
12027
   DELETE
12028
     FROM RELEASE_CONTENT rc
12029
    WHERE rc.RTAG_ID = nRtagId;
12030
 
12031
 
12032
   -- Delete Work In Progress Area Contents
12033
   DELETE
12034
     FROM WORK_IN_PROGRESS wip
12035
    WHERE wip.RTAG_ID = nRtagId;
12036
 
12037
 
12038
   -- Delete Pending Area Contents
12039
   DELETE
12040
     FROM PLANNED pl
12041
    WHERE pl.RTAG_ID = nRtagId;
12042
 
12043
   -- Delete Deprecated Packages
12044
   DELETE
12045
     FROM DEPRECATED_PACKAGES dp
12046
    WHERE dp.RTAG_ID = nRtagId;
12047
 
12048
   -- Delete Project Action Log
12049
   DELETE
12050
     FROM PROJECT_ACTION_LOG pal
12051
    WHERE pal.RTAG_ID = nRtagId;
12052
 
12053
   -- Delete Do Not Ripple Contents
12054
   DELETE
12055
     FROM DO_NOT_RIPPLE dnr
12056
    WHERE dnr.RTAG_ID = nRtagId;
12057
 
12058
   -- Delete Dash Board Contents
12059
   DELETE
12060
     FROM DASH_BOARD db
12061
    WHERE db.RTAG_ID = nRtagId;
12062
 
12063
   -- Delete Advisory Ripple Contents
12064
   DELETE
12065
     FROM ADVISORY_RIPPLE adr
12066
    WHERE adr.RTAG_ID = nRtagId;
12067
 
12068
   -- Delete Archive Action Log
12069
   DELETE
12070
     FROM ARCHIVE_ACTION_LOG aal
12071
    WHERE aal.RTAG_ID = nRtagId;
12072
 
12073
   -- Delete Daemons For This Release
12074
   FOR rcon IN (SELECT rc.RCON_ID FROM RELEASE_CONFIG rc WHERE rc.RTAG_ID = nRtagId )
12075
   LOOP
12076
      rconIdList := rconIdList || rcon.RCON_ID || ',';
12077
   END LOOP;
12078
 
12079
   pk_buildapi.DELETE_DAEMON(rconIdList);
12080
 
12081
   -- Delete Release Metrics Contents
12082
   DELETE
12083
     FROM RELEASE_METRICS rm
12084
    WHERE rm.RTAG_ID = nRtagId;
12085
 
12086
   -- Delete Release Configuration Contents
12087
   DELETE
12088
     FROM RELEASE_CONFIG rc
12089
    WHERE rc.RTAG_ID = nRtagId;
12090
 
12091
   -- Delete Pegged Version Contents
12092
   DELETE
12093
     FROM PEGGED_VERSIONS pegv
12094
    WHERE pegv.RTAG_ID = nRtagId;
12095
 
12096
END;
12097
/*-------------------------------------------------------------------------------------------------------*/
12098
FUNCTION GET_PARENT_RTAG ( nRtagId IN NUMBER, nSourceRtagId IN NUMBER, cIsBranch IN CHAR )  RETURN NUMBER IS
12099
 
12100
   nSourceParentRtagId NUMBER;
12101
 
12102
BEGIN
12103
   /*--------------- Business Rules Here -------------------*/
12104
   IF (nRtagId IS NULL) OR (cIsBranch IS NULL)
12105
   THEN
12106
      RAISE_APPLICATION_ERROR (-20000, 'Missing some parameters! nRtagId= '|| nRtagId ||', cIsBranch= '|| cIsBranch );
12107
   END IF;
12108
   /*-------------------------------------------------------*/
12109
 
12110
 
12111
   IF ( nSourceRtagId IS NULL ) THEN
12112
      -- Create new on main branch
12113
      RETURN nRtagId;
12114
 
12115
   ELSE
12116
      -- Create from source rtag_id
12117
 
12118
      -- Find parent of Source RtagId
12119
      SELECT rt.PARENT_RTAG_ID INTO nSourceParentRtagId
12120
        FROM RELEASE_TAGS rt
12121
       WHERE rt.RTAG_ID = nSourceRtagId;
12122
 
12123
      IF (UPPER(cIsBranch) = 'Y') THEN
12124
         RETURN nSourceRtagId;
12125
      ELSE
12126
         IF (nSourceRtagId = nSourceParentRtagId) THEN
12127
            RETURN nRtagId;
12128
         ELSE
12129
            RETURN nSourceParentRtagId;
1373 dpurdie 12130
         END IF;
12131
      END IF;
12132
 
3959 dpurdie 12133
 
12134
   END IF;
12135
 
12136
 
12137
END;
1373 dpurdie 12138
/*-------------------------------------------------------------------------------------------------------*/
12139
 
3959 dpurdie 12140
-- PROCEDURE Get_Next_Version ( nSourceRtagId IN NUMBER,
12141
--                       sNextVersion OUT VARCHAR2,
12142
--                       nNextLifeCycle OUT NUMBER,
12143
--                       nParentRtagId OUT NUMBER,
12144
--                       nProjId IN NUMBER ) IS
12145
--
12146
-- SourceBranchCount NUMBER;
12147
-- ProjRootVersion VARCHAR2(4000);
12148
-- LastLifeCycle NUMBER;
12149
-- ROOT_VERSION_NOT_FOUND NUMBER := -1;
12150
-- SET_PARENT_AS_YOURSELF NUMBER := -1;
12151
--
12152
-- SourceProjId NUMBER;
12153
-- SourceVersion RELEASE_TAGS.RTAG_VERSION%TYPE;
12154
-- SourceLifeCycle RELEASE_TAGS.RTAG_LIFE_CYCLE%TYPE;
12155
--
12156
-- BEGIN
12157
--    /*--------------- Business Rules Here -------------------*/
12158
--    /*-------------------------------------------------------*/
12159
--
12160
--
12161
--    BEGIN
12162
--       -- Get Project root version
12163
--       SELECT rt.RTAG_VERSION INTO ProjRootVersion
12164
--         FROM RELEASE_TAGS rt
12165
--        WHERE rt.PROJ_ID = nProjId
12166
--          AND rt.RTAG_ID = rt.PARENT_RTAG_ID;
12167
--
12168
--       EXCEPTION
12169
--       WHEN NO_DATA_FOUND THEN
12170
--       ProjRootVersion := ROOT_VERSION_NOT_FOUND;
12171
--    END;
12172
--
12173
--
12174
--
12175
--
12176
--    BEGIN
12177
--       -- Get info for source rtagid
12178
--       SELECT rt.PROJ_ID, rt.RTAG_VERSION, rt.RTAG_LIFE_CYCLE  INTO  SourceProjId, SourceVersion, SourceLifeCycle
12179
--         FROM RELEASE_TAGS rt
12180
--        WHERE rt.RTAG_ID = nSourceRtagId;
12181
--
12182
--       EXCEPTION
12183
--       WHEN NO_DATA_FOUND THEN
12184
--       SourceProjId := NULL;
12185
--       SourceVersion := NULL;
12186
--       SourceLifeCycle := NULL;
12187
--    END;
12188
--
12189
--
12190
--    IF (nSourceRtagId IS NULL)  OR  ( SourceProjId != nProjId ) THEN
12191
--
12192
--       /* Blank Release Required  OR  Release imported from other project */
12193
--
12194
--       IF (ProjRootVersion = ROOT_VERSION_NOT_FOUND) THEN
12195
--          /* No Releases found in the project, hence calculate next version available.  */
12196
--
12197
--          -- Set parent rtag
12198
--          nParentRtagId := SET_PARENT_AS_YOURSELF;
12199
--
12200
--
12201
--          BEGIN
12202
--             -- Get Next Available Global Root Version
12203
--             SELECT MAX( TO_NUMBER( rt.RTAG_VERSION ) )  INTO  ProjRootVersion
12204
--               FROM RELEASE_TAGS rt
12205
--              WHERE rt.RTAG_ID = rt.PARENT_RTAG_ID;
12206
--
12207
--             -- Set Next Rtag Version
12208
--             sNextVersion := CAST( ProjRootVersion + 1 AS VARCHAR2 );
12209
--
12210
--             -- Restart Lifecycle
12211
--             nNextLifeCycle := 0;
12212
--
12213
--
12214
--             EXCEPTION
12215
--             WHEN NO_DATA_FOUND THEN
12216
--             -- Release Manager has no releases, hence start from 1
12217
--             sNextVersion := '1';
12218
--             nNextLifeCycle := 0;
12219
--
12220
--          END;
12221
--
12222
--
12223
--
12224
--       ELSE
12225
--          /* Releases found in this project. */
12226
--
12227
--          SELECT qry.RTAG_ID, qry.RTAG_LIFE_CYCLE  INTO nParentRtagId, LastLifeCycle
12228
--            FROM (
12229
--                SELECT rt.RTAG_ID, rt.RTAG_LIFE_CYCLE
12230
--                  FROM RELEASE_TAGS rt
12231
--                 WHERE rt.PROJ_ID = nProjId
12232
--                   AND rt.RTAG_VERSION = ProjRootVersion
12233
--                 ORDER BY rt.RTAG_LIFE_CYCLE DESC
12234
--                  ) qry
12235
--           WHERE ROWNUM = 1;
12236
--
12237
--
12238
--          -- Set same Rtag Version
12239
--          sNextVersion := ProjRootVersion;
12240
--
12241
--          -- Increase Lifecycle
12242
--          nNextLifeCycle := LastLifeCycle + 1;
12243
--
12244
--       END IF;
12245
--
12246
--
12247
--
12248
--    ELSE
12249
--       /* Create Release From other release within this project */
12250
--
12251
--       -- Set parent id
12252
--       nParentRtagId := nSourceRtagId;
12253
--
12254
--
12255
--       -- Get number of source branches
12256
--       SELECT COUNT(rt.RTAG_ID) INTO SourceBranchCount
12257
--         FROM RELEASE_TAGS rt
12258
--        WHERE rt.PROJ_ID = nProjId
12259
--          AND rt.PARENT_RTAG_ID = nSourceRtagId;
12260
--
12261
--
12262
--       IF SourceBranchCount = 0 THEN
12263
--          /* Release is Head (i.e. Tip on its branch ) */
12264
--
12265
--          -- Set Next Rtag Version
12266
--          sNextVersion := SourceVersion;
12267
--
12268
--          -- Increase Lifecycle
12269
--          nNextLifeCycle := SourceLifeCycle + 1;
12270
--
12271
--
12272
--       ELSIF SourceBranchCount = 1 THEN
12273
--          /* Release IS NOT Head, but can be branched */
12274
--
12275
--          -- Set Next Rtag Version
12276
--          sNextVersion := SourceVersion ||'.'|| SourceLifeCycle;
12277
--
12278
--          -- Reset Lifecycle to 1
12279
--          nNextLifeCycle := 1;
12280
--
12281
--
12282
--       ELSE
12283
--          -- Limit of two branches is reached
12284
--          RAISE_APPLICATION_ERROR (-20000, 'This release is already branched and cannot be branched again. ');
12285
--
12286
--       END IF;
12287
--
12288
--
12289
--
12290
--
12291
--
12292
--
12293
--    END IF;
12294
--
12295
--
12296
-- END;
12297
 
12298
/*-------------------------------------------------------------------------------------------------------*/
12299
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
12300
 
12301
   IsBaseView CHAR(1);
12302
 
12303
BEGIN
12304
 
12305
   -- Check if the view is BASE VIEW
12306
   SELECT vi.BASE_VIEW INTO IsBaseView
12307
     FROM VIEWS vi
12308
    WHERE vi.VIEW_ID = ViewId;
12309
 
5172 dpurdie 12310
   IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 12311
      -- Get Base view content
12312
      OPEN RecordSet FOR
12313
      SELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,
12314
            rel.deprecated_state,
12315
            pv.pv_id,
12316
            pkg.pkg_name,
12317
            pv.pkg_version,
12318
            pv.dlocked,
12319
            pv.pv_description,
12320
            pv.BUILD_TYPE
12321
        FROM release_content rel,
12322
             packages pkg,
12323
             package_versions pv
12324
       WHERE pv.pkg_id = pkg.pkg_id
12325
         AND rel.pv_id = pv.pv_id
12326
         AND rel.BASE_VIEW_ID = ViewId
12327
         AND rel.RTAG_ID = RtagId
12328
       ORDER BY UPPER(pkg.PKG_NAME);
12329
 
12330
   ELSE
12331
 
12332
       -- Get non base view content
12333
      OPEN RecordSet FOR
12334
      SELECT DECODE ( rel.pkg_state, NULL, 0, rel.pkg_state ) AS PKG_STATE,
12335
            rel.deprecated_state,
12336
            pv.pv_id,
12337
            pkg.pkg_name,
12338
            pv.pkg_version,
12339
            pv.dlocked,
12340
            pv.pv_description,
12341
            pv.BUILD_TYPE
12342
        FROM release_content rel,
12343
             packages pkg,
12344
             package_versions pv,
12345
            VIEW_DEF vd
12346
       WHERE pv.pkg_id = pkg.pkg_id
12347
         AND rel.pv_id = pv.pv_id
12348
         AND vd.VIEW_ID = ViewId
12349
         AND vd.PKG_ID = pv.PKG_ID
12350
         AND rel.RTAG_ID = RtagId
12351
       ORDER BY UPPER(pkg.PKG_NAME);
12352
 
12353
   END IF;
12354
 
12355
 
12356
 
12357
 
12358
END;
12359
/*-------------------------------------------------------------------------------------------------------*/
4585 dpurdie 12360
  -- Add or Replace a package to the specified release
3959 dpurdie 12361
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
12362
   ReleaseLocation VARCHAR2(4000);
12363
   nPkgId NUMBER;
12364
   sVExt VARCHAR2(4000);
12365
   IsPatch PACKAGE_VERSIONS.IS_PATCH%TYPE := 'N';
5172 dpurdie 12366
   default_pegged CHAR := 'N';
12367
   default_advisory_ripple CHAR := 'N';
3959 dpurdie 12368
 
12369
   -- Find package for replacement
12370
   CURSOR curReplacePkg IS
12371
    SELECT pv.PV_ID
12372
     FROM RELEASE_CONTENT rc,
12373
           PACKAGE_VERSIONS pv
12374
    WHERE rc.PV_ID = pv.PV_ID
12375
      AND rc.RTAG_ID = RtagId
12376
      AND pv.PKG_ID = nPkgId
12377
      AND NVL( pv.V_EXT, 'LINK_A_NULL' ) = NVL( sVExt, 'LINK_A_NULL' );
12378
    recReplacePkg curReplacePkg%ROWTYPE;
12379
 
12380
BEGIN
12381
   -- Get is_patch, pkg_id and v_ext
5502 dpurdie 12382
   SELECT pv.IS_PATCH, pv.PKG_ID, pv.V_EXT
5172 dpurdie 12383
     INTO IsPatch, nPkgId, sVExt
3959 dpurdie 12384
     FROM PACKAGE_VERSIONS pv
12385
    WHERE pv.PV_ID = newPvId;
12386
 
12387
   -- Never put patch in relesed area
12388
   IF (IsPatch != 'Y') OR (IsPatch IS NULL) THEN
12389
 
12390
      -- Try to get a package to be replaced with this new one.
12391
      -- Use unique constraint of PKG_ID and V_EXT
12392
      OPEN curReplacePkg;
12393
       FETCH curReplacePkg INTO recReplacePkg;
12394
 
12395
       IF curReplacePkg%FOUND THEN
12396
         -- Replace package
12397
         REPLACE_PACKAGE ( newPvId, recReplacePkg.PV_ID, RtagId, UserId );
12398
 
12399
      ELSE
12400
         -- Add new package
12401
         INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )
12402
         VALUES( RtagId, newPvId, ViewId, Ora_Sysdate, UserId, 0);
5502 dpurdie 12403
 
5172 dpurdie 12404
        -- Insert default package flags
12405
        -- Get Package Level defaults
5502 dpurdie 12406
 
12407
        SELECT pkg.default_pegged, pkg.DEFAULT_ADVISORY_RIPPLE
5172 dpurdie 12408
         INTO  default_pegged, default_advisory_ripple
12409
         FROM  PACKAGES pkg
5502 dpurdie 12410
        WHERE  pkg.PKG_ID = nPkgId;
3959 dpurdie 12411
 
5172 dpurdie 12412
        -- Apply to the newly inserted package
12413
        IF default_pegged = 'Y' THEN
12414
          INSERT INTO PEGGED_VERSIONS ( RTAG_ID, PV_ID ) VALUES (RtagId, newPvId);
12415
          -- Log_Action ( newPvId, 'action', UserId, 'Set default package peg' );
12416
        END IF;
5502 dpurdie 12417
 
5172 dpurdie 12418
        IF default_advisory_ripple = 'Y' THEN
12419
          INSERT INTO ADVISORY_RIPPLE ( RTAG_ID, PV_ID ) VALUES (RtagId, newPvId);
12420
          -- Log_Action ( newPvId, 'action', UserId, 'Set default advisory ripple' );
12421
        END IF;
3959 dpurdie 12422
 
6600 dpurdie 12423
        -- Mark Release as changed
5172 dpurdie 12424
        SET_RELEASE_MODIFIED(RtagId);
12425
        RUN_POST_ACTIONS(newPvId, RtagId);
5502 dpurdie 12426
 
3959 dpurdie 12427
          /* LOG ACTION */
12428
         SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
12429
           FROM PROJECTS proj,
12430
                 RELEASE_TAGS rt
12431
          WHERE rt.PROJ_ID = proj.PROJ_ID
12432
            AND rt.RTAG_ID = RtagId;
12433
 
12434
         Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );
12435
 
1373 dpurdie 12436
      END IF;
3959 dpurdie 12437
      CLOSE curReplacePkg;
12438
   END IF;
5172 dpurdie 12439
END;
3959 dpurdie 12440
 
1373 dpurdie 12441
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12442
PROCEDURE REPLACE_PACKAGE ( newPvId IN NUMBER, oldPvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 12443
 
3959 dpurdie 12444
   ReleaseLocation VARCHAR2(4000);
12445
   sPkgVersion VARCHAR2(4000);
5172 dpurdie 12446
   nSdkTag NUMBER;
6600 dpurdie 12447
   cPersistRippleStop CHAR;
12448
   cRippleStop CHAR;
3959 dpurdie 12449
BEGIN
6600 dpurdie 12450
   -- Extract essential information
12451
      SELECT SDKTAG_ID, PERSIST_RIPPLE_STOP INTO nSdkTag, cPersistRippleStop FROM RELEASE_CONTENT
5172 dpurdie 12452
      WHERE rtag_id = RtagId
12453
       AND pv_id = oldPvId;
5502 dpurdie 12454
 
6600 dpurdie 12455
   -- Trap SDK Replacement
12456
   -- This is a last ditch check. The application should not allow this condition to happen
5172 dpurdie 12457
     If nSdkTag IS NOT NULL  THEN
12458
       raise_application_error (-20000, 'Attempt to replace a package provided by an SDK.');
12459
     END IF;
6600 dpurdie 12460
 
12461
   -- Determine new value for ripple_stop
12462
   cRippleStop := NULL;
12463
   IF cPersistRippleStop is NOT NULL THEN
12464
      cRippleStop := 's';
12465
   END IF;
3959 dpurdie 12466
 
12467
   -- Replace Package
12468
    UPDATE RELEASE_CONTENT
12469
       SET pv_id = newPvId,
12470
           insert_stamp = Ora_Sysdate,
12471
           insertor_id = UserId,
6600 dpurdie 12472
           product_state = NULL,
12473
           ripple_stop = cRippleStop
3959 dpurdie 12474
     WHERE rtag_id = RtagId
12475
       AND pv_id = oldPvId;
12476
 
12477
   -- update the pegging table
12478
   UPDATE PEGGED_VERSIONS
12479
      SET pv_id = newPvId
12480
     WHERE rtag_id = RtagId
12481
       AND pv_id = oldPvId;
12482
 
12483
   -- update the advisory_ripple table
12484
   UPDATE ADVISORY_RIPPLE
12485
      SET pv_id = newPvId
12486
     WHERE rtag_id = RtagId
12487
       AND pv_id = oldPvId;
12488
 
12489
    /* LOG ACTION */
12490
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
12491
     FROM PROJECTS proj,
12492
           RELEASE_TAGS rt
12493
    WHERE rt.PROJ_ID = proj.PROJ_ID
12494
      AND rt.RTAG_ID = RtagId;
12495
 
12496
   SELECT pv.PKG_VERSION INTO sPkgVersion
12497
     FROM PACKAGE_VERSIONS pv
12498
    WHERE pv.PV_ID = newPvId;
12499
 
5172 dpurdie 12500
   SET_RELEASE_MODIFIED(RtagId);
3959 dpurdie 12501
   Log_Action ( oldPvId, 'replaced_with', UserId, 'Replacing with: '|| sPkgVersion ||' at '|| ReleaseLocation );
12502
   Log_Action ( newPvId, 'add', UserId, 'Location: '|| ReleaseLocation );
12503
 
12504
END;
12505
/*-------------------------------------------------------------------------------------------------------*/
12506
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
12507
   ReleaseLocation VARCHAR2(4000);
5172 dpurdie 12508
   nSdkTag NUMBER;
3959 dpurdie 12509
BEGIN
5172 dpurdie 12510
   -- Trap SDK Package Deletion
12511
   -- This is a last ditch check. The application should not allow this condition to happen
12512
      SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
12513
      WHERE rtag_id = RtagId
12514
       AND pv_id = PvId;
5502 dpurdie 12515
 
5172 dpurdie 12516
     If nSdkTag IS NOT NULL  THEN
12517
       raise_application_error (-20000, 'Attempt to delete a package provided by an SDK.');
12518
     END IF;
3959 dpurdie 12519
 
12520
   -- Delete old package
12521
   DELETE
12522
     FROM RELEASE_CONTENT rc
12523
    WHERE rc.PV_ID = PvId
12524
      AND rc.RTAG_ID = RtagId;
12525
 
12526
 
12527
   /* LOG ACTION */
12528
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
12529
     FROM PROJECTS proj,
12530
          RELEASE_TAGS rt
12531
    WHERE rt.PROJ_ID = proj.PROJ_ID
12532
      AND rt.RTAG_ID = RtagId;
12533
 
12534
   Log_Action ( PvId, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );
12535
 
12536
 
12537
END;
12538
/*-------------------------------------------------------------------------------------------------------*/
12539
PROCEDURE REMOVE_MATCHING_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
12540
   ReleaseLocation VARCHAR2(4000);
12541
 
12542
   CURSOR curMatchingPackage IS
12543
    SELECT mpv.PV_ID
12544
     FROM RELEASE_CONTENT rc,
12545
           PACKAGE_VERSIONS mpv,
12546
         PACKAGE_VERSIONS pv
12547
    WHERE rc.PV_ID = mpv.PV_ID
12548
      AND rc.RTAG_ID = RtagId
12549
      AND pv.PV_ID = PvId
12550
      AND pv.PKG_ID = mpv.PKG_ID
12551
      AND NVL( pv.V_EXT, '|LINK_A_NULL|' ) = NVL( mpv.V_EXT, '|LINK_A_NULL|' );
12552
    recMatchingPackage curMatchingPackage%ROWTYPE;
12553
 
12554
BEGIN
12555
 
12556
   OPEN curMatchingPackage;
12557
    FETCH curMatchingPackage INTO recMatchingPackage;
12558
 
12559
    IF curMatchingPackage%FOUND THEN
12560
      -- Delete old package
12561
      DELETE
12562
        FROM RELEASE_CONTENT rc
12563
       WHERE rc.PV_ID = recMatchingPackage.PV_ID
12564
         AND rc.RTAG_ID = RtagId;
12565
 
12566
 
12567
      /* LOG ACTION */
12568
      SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
12569
        FROM PROJECTS proj,
12570
              RELEASE_TAGS rt
12571
       WHERE rt.PROJ_ID = proj.PROJ_ID
12572
         AND rt.RTAG_ID = RtagId;
12573
 
12574
      Log_Action ( recMatchingPackage.PV_ID, 'delete_from_released', UserId, 'Location: '|| ReleaseLocation );
12575
 
12576
   END IF;
12577
 
12578
 
12579
   CLOSE curMatchingPackage;
12580
 
12581
 
12582
 
12583
 
12584
END;
12585
/*-------------------------------------------------------------------------------------------------------*/
12586
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
12587
 
12588
   ReturnValue NUMBER;
12589
 
12590
BEGIN
12591
   SELECT rc.BASE_VIEW_ID INTO ReturnValue
12592
     FROM RELEASE_CONTENT rc
12593
    WHERE rc.RTAG_ID = RtagId
12594
      AND rc.PV_ID = PvId;
12595
 
12596
   RETURN ReturnValue;
12597
END;
12598
/*-------------------------------------------------------------------------------------------------------*/
12599
PROCEDURE RUN_POST_ACTIONS ( PvId IN NUMBER, RtagId IN NUMBER ) IS
12600
 
12601
BEGIN
12602
   -- Reset Ignore warnings up-the-tree
12603
   RESET_IGNORE_WARNINGS ( TO_CHAR(PvId), RtagId );
12604
 
12605
   -- Refresh Package states
12606
   TOUCH_RELEASE ( RtagId );
12607
 
12608
END;
12609
/*-------------------------------------------------------------------------------------------------------*/
12610
PROCEDURE RUN_POST_ACTIONS_BULK ( PvId IN NUMBER ) IS
12611
   CURSOR curReleases IS
12612
    SELECT rc.RTAG_ID
12613
     FROM RELEASE_CONTENT rc
12614
    WHERE rc.PV_ID = PvId;
12615
    recReleases curReleases%ROWTYPE;
12616
 
12617
BEGIN
12618
 
12619
   OPEN curReleases;
12620
    FETCH curReleases INTO recReleases;
12621
 
12622
   WHILE curReleases%FOUND
12623
   LOOP
12624
 
12625
      RUN_POST_ACTIONS ( PvId, recReleases.RTAG_ID );
12626
 
12627
      FETCH curReleases INTO recReleases;
12628
   END LOOP;
12629
 
12630
   CLOSE curReleases;
12631
 
12632
END;
12633
/*-------------------------------------------------------------------------------------------------------*/
12634
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
12635
 
12636
BEGIN
12637
 
12638
   UPDATE RELEASE_CONTENT rc SET
12639
   rc.BASE_VIEW_ID = NewViewId
12640
   WHERE rc.PV_ID = PvId
12641
     AND rc.RTAG_ID = RtagId;
12642
 
12643
END;
12644
/*-------------------------------------------------------------------------------------------------------*/
12645
PROCEDURE ADD_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER, ProblemString OUT VARCHAR2 ) IS
12646
 
12647
   RowCount NUMBER;
12648
 
12649
 
12650
   CURSOR curPackageClash IS
12651
   SELECT pkg.PKG_NAME,
12652
         er.*
12653
     FROM (
12654
 
12655
           /* Get existing referenced packages */
12656
         SELECT pv.PKG_ID,
12657
                pv.V_EXT
12658
           FROM RELEASE_LINKS rl,
12659
                 RELEASE_CONTENT rc,
12660
                 PACKAGE_VERSIONS pv
12661
          WHERE rl.RTAG_ID = nRtagId
12662
            AND rl.REF_RTAG_ID = rc.RTAG_ID
12663
            AND rc.PV_ID = pv.PV_ID
12664
 
12665
            ) er,
12666
         (
12667
 
12668
         /* Get current reference packages */
12669
         SELECT pv.PKG_ID,
12670
                pv.V_EXT
12671
           FROM RELEASE_CONTENT rc,
12672
                 PACKAGE_VERSIONS pv
12673
          WHERE rc.RTAG_ID = nRefRtagId
12674
            AND rc.PV_ID = pv.PV_ID
12675
 
12676
         ) cr,
12677
         PACKAGES PKG
12678
    WHERE er.PKG_ID = cr.PKG_ID
12679
      AND NVL(er.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
12680
      AND er.PKG_ID = pkg.PKG_ID;
12681
 
12682
   recPackageClash curPackageClash%ROWTYPE;
12683
 
12684
BEGIN
12685
   /*--------------- Business Rules Here -------------------*/
12686
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
12687
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
12688
   END IF;
12689
 
12690
   IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THEN
12691
      RAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );
12692
   END IF;
12693
   /*-------------------------------------------------------*/
12694
   ProblemString := NULL;
12695
 
12696
 
12697
   -- Check if release already has references
12698
   SELECT COUNT(rl.RTAG_ID)  INTO  RowCount
12699
     FROM RELEASE_LINKS rl
12700
    WHERE rl.RTAG_ID = nRtagId;
12701
 
12702
 
12703
   IF RowCount > 0 THEN
12704
      -- Found existing references
12705
 
12706
      -- Make sure there is no package clashes
12707
      OPEN curPackageClash;
12708
       FETCH curPackageClash INTO recPackageClash;
12709
 
12710
      IF curPackageClash%FOUND THEN
12711
 
5502 dpurdie 12712
         ProblemString := ProblemString ||'Following is partial list of package already referenced from other release:'|| PK_PACKAGE.CRLF;
3959 dpurdie 12713
 
12714
         WHILE curPackageClash%FOUND
12715
         LOOP
5502 dpurdie 12716
            EXIT WHEN LENGTH( ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT  || PK_PACKAGE.CRLF ) > 200;   -- Do not allow variable overflow
3959 dpurdie 12717
 
5502 dpurdie 12718
            ProblemString := ProblemString || '- '|| recPackageClash.PKG_NAME ||' '|| recPackageClash.V_EXT  || PK_PACKAGE.CRLF;
3959 dpurdie 12719
 
12720
            FETCH curPackageClash INTO recPackageClash;
12721
         END LOOP;
12722
 
1373 dpurdie 12723
      END IF;
12724
 
3959 dpurdie 12725
      CLOSE curPackageClash;
12726
 
12727
 
12728
   ELSE
12729
      -- No references found, hence reference a release
12730
 
12731
 
12732
      -- Remove exising package from this release to be referenced
12733
      REMOVE_RELEASE_REFERENCE ( nRtagId, nRefRtagId);
12734
 
12735
 
12736
      -- Add new linked packages to release
12737
      INSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE)
12738
      SELECT nRtagId,
12739
            rc.PV_ID,
12740
            rc.BASE_VIEW_ID,
12741
            rc.INSERT_STAMP,
12742
            rc.INSERTOR_ID,
12743
            rc.PKG_STATE
12744
        FROM RELEASE_CONTENT rc
12745
       WHERE rc.RTAG_ID = nRefRtagId;
12746
 
12747
 
12748
 
12749
      -- Copy ignore warnings for referenced packages
12750
      INSERT INTO IGNORE_WARNINGS iw (RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE)
12751
      SELECT nRtagId,
12752
            iw.PV_ID,
12753
            iw.DPV_ID,
12754
            iw.IS_PATCH_IGNORE
12755
        FROM IGNORE_WARNINGS iw,
12756
              RELEASE_CONTENT rc
12757
       WHERE iw.RTAG_ID = rc.RTAG_ID
12758
         AND iw.PV_ID = rc.PV_ID
12759
         AND rc.RTAG_ID = nRefRtagId;
12760
 
12761
 
12762
 
12763
      -- Reference release
12764
      INSERT INTO RELEASE_LINKS (RTAG_ID, REF_RTAG_ID)
12765
      VALUES ( nRtagId, nRefRtagId );
12766
 
12767
 
12768
      -- Refresh Package states
12769
      TOUCH_RELEASE ( nRtagId );
12770
 
12771
   END IF;
12772
 
12773
 
12774
END;
1373 dpurdie 12775
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 12776
PROCEDURE REMOVE_RELEASE_REFERENCE ( nRtagId IN NUMBER, nRefRtagId IN NUMBER ) IS
1373 dpurdie 12777
 
3959 dpurdie 12778
 
12779
BEGIN
12780
   /*--------------- Business Rules Here -------------------*/
12781
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
12782
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
12783
   END IF;
12784
 
12785
   IF (nRefRtagId = 0) OR ( nRefRtagId IS NULL ) THEN
12786
      RAISE_APPLICATION_ERROR (-20000, 'nRefRtagId is not supplied. [nRefRtagId='|| nRefRtagId ||']' );
12787
   END IF;
12788
 
12789
   /*-------------------------------------------------------*/
12790
 
12791
 
12792
   -- Remove ignore warnings for those packages who use referenced packages
12793
   DELETE FROM IGNORE_WARNINGS iw
12794
    WHERE iw.RTAG_ID = nRtagId
12795
      AND iw.DPV_ID IN (
12796
                        SELECT dep.DPV_ID
12797
                       FROM (
12798
 
12799
                           /* Get referenced packages */
12800
                           SELECT pv.PKG_ID,
12801
                                  pv.V_EXT
12802
                             FROM RELEASE_CONTENT rc,
12803
                                   PACKAGE_VERSIONS pv
12804
                            WHERE rc.RTAG_ID = nRefRtagId
12805
                              AND rc.PV_ID = pv.PV_ID
12806
 
12807
                           ) cr,
12808
                           (
12809
 
12810
                           /* Get all dependencies for current release */
12811
                           SELECT DISTINCT
12812
                                 pv.PKG_ID,
12813
                                 pv.V_EXT,
12814
                                 dep.DPV_ID
12815
                             FROM RELEASE_CONTENT rc,
12816
                                 PACKAGE_DEPENDENCIES dep,
12817
                                 PACKAGE_VERSIONS pv
12818
                            WHERE rc.RTAG_ID = nRtagId
12819
                              AND rc.PV_ID = dep.PV_ID
12820
                              AND dep.PV_ID = pv.PV_ID
12821
 
12822
                           ) dep
12823
                      WHERE dep.PKG_ID = cr.PKG_ID
12824
                        AND NVL(dep.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
12825
                     );
12826
 
12827
 
12828
 
12829
 
12830
   -- Remove ignore warnings for those package which are going to be replaced with the reference
12831
   DELETE FROM IGNORE_WARNINGS iw
12832
    WHERE iw.RTAG_ID = nRtagId
12833
      AND iw.PV_ID IN (
12834
                  SELECT pv.PV_ID
12835
                    FROM (
12836
 
12837
                        /* Get referenced packages */
12838
                        SELECT pv.PKG_ID,
12839
                               pv.V_EXT
12840
                          FROM RELEASE_CONTENT rc,
12841
                                PACKAGE_VERSIONS pv
12842
                         WHERE rc.RTAG_ID = nRefRtagId
12843
                           AND rc.PV_ID = pv.PV_ID
12844
 
12845
                        ) cr,
12846
                        RELEASE_CONTENT rc,
12847
                        PACKAGE_VERSIONS pv
12848
                   WHERE pv.PKG_ID = cr.PKG_ID
12849
                     AND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
12850
                     AND rc.RTAG_ID = nRtagId
12851
                     AND rc.PV_ID = pv.PV_ID
12852
                  );
12853
 
12854
 
12855
 
12856
 
12857
 
12858
   -- Remove matching packages from release
12859
   DELETE FROM RELEASE_CONTENT rc
12860
    WHERE rc.RTAG_ID = nRtagId
12861
      AND rc.PV_ID IN (
12862
                  SELECT pv.PV_ID
12863
                    FROM (
12864
 
12865
                        /* Get referenced packages */
12866
                        SELECT pv.PKG_ID,
12867
                               pv.V_EXT
12868
                          FROM RELEASE_CONTENT rc,
12869
                                PACKAGE_VERSIONS pv
12870
                         WHERE rc.RTAG_ID = nRefRtagId
12871
                           AND rc.PV_ID = pv.PV_ID
12872
 
12873
                        ) cr,
12874
                        RELEASE_CONTENT rc,
12875
                        PACKAGE_VERSIONS pv
12876
                   WHERE pv.PKG_ID = cr.PKG_ID
12877
                     AND NVL(pv.V_EXT, '|LINK_A_NULL|') = NVL(cr.V_EXT, '|LINK_A_NULL|')
12878
                     AND rc.RTAG_ID = nRtagId
12879
                     AND rc.PV_ID = pv.PV_ID
12880
                  );
12881
 
12882
 
12883
 
12884
 
12885
 
12886
   -- Remove Reference release
12887
   DELETE
12888
     FROM RELEASE_LINKS rl
12889
    WHERE rl.RTAG_ID = nRtagId
12890
      AND rl.REF_RTAG_ID = nRefRtagId;
12891
 
12892
 
12893
   -- Refresh Package states
12894
   TOUCH_RELEASE ( nRtagId );
12895
 
12896
 
12897
END;
12898
/*-------------------------------------------------------------------------------------------------------*/
12899
PROCEDURE CAN_USER_WRITE_TO_RELEASE ( RtagId IN NUMBER, PvId IN NUMBER, Permission IN CHAR ) IS
12900
 
12901
   cReleaseMode CHAR(1);
12902
   cPvMode CHAR(1);
12903
 
12904
BEGIN
12905
 
12906
   -- Get Release Mode
12907
   SELECT rt.OFFICIAL INTO cReleaseMode
12908
     FROM RELEASE_TAGS rt
12909
    WHERE rt.RTAG_ID = RtagId;
12910
 
12911
 
12912
   -- Get Package Mode
12913
   SELECT pv.DLOCKED INTO cPvMode
12914
     FROM PACKAGE_VERSIONS pv
12915
    WHERE pv.PV_ID = PvId;
12916
 
12917
   -- Only check if package is locked
12918
   IF (cPvMode = 'Y') THEN
12919
 
12920
      IF (cReleaseMode != 'N') AND (Permission != 'Y')
1373 dpurdie 12921
      THEN
3959 dpurdie 12922
         RAISE_APPLICATION_ERROR (-20000, 'Cannot add package to this release. Release needs to be in Open Mode.' );
12923
 
1373 dpurdie 12924
      END IF;
12925
 
3959 dpurdie 12926
   END IF;
5172 dpurdie 12927
END;
3959 dpurdie 12928
 
5172 dpurdie 12929
/*-----------------------------------------------------------------------------*/
12930
PROCEDURE SET_RELEASE_MODIFIED (nRtagId IN NUMBER ) IS
12931
--
12932
--  Set flags to indicate that the specified release has changed for the
12933
--  purposes of building. (Not every single change)
12934
--
12935
--  Used by Build System to streamline build decisions
12936
--    Bump a sequence number
12937
--    Set a TimeStamp
12938
--
12939
--  Care must be taken to avoid concuency issues
12940
--  Must Insert or Update in a safe manner
12941
--
12942
--  This should be called whenever the package_versions in the release have changed in such
12943
--  a manner that the build daemons should examine the release. This includes:
12944
--   - Packages added, removed and version updated
12945
--   - Packages build status changed (re-included in the release)
12946
--   - Packages made Pending Build
12947
--   - Daemon instruction add/updated (Test Build)
12948
--
12949
--  Note: Not yet used (10-Oct-2014)
12950
--        Uses SEQ_RELEASE_MOD and Table: RELEASE_MODIFIED
12951
BEGIN
12952
 LOOP
12953
  BEGIN
12954
    MERGE INTO RELEASE_MODIFIED USING dual ON ( RTAG_ID=nRtagId )
5502 dpurdie 12955
      WHEN MATCHED THEN UPDATE SET SEQNUM=SEQ_RELEASE_MOD.NEXTVAL,TIMESTAMP=CURRENT_TIMESTAMP
12956
      WHEN NOT MATCHED THEN INSERT (RTAG_ID,TIMESTAMP,SEQNUM)
5172 dpurdie 12957
        VALUES (nRtagId, CURRENT_TIMESTAMP,SEQ_RELEASE_MOD.NEXTVAL );
12958
    EXIT; -- success? -> exit loop
12959
  EXCEPTION
12960
    WHEN NO_DATA_FOUND THEN -- the entry was concurrently deleted
12961
      NULL; -- exception? -> no op, i.e. continue looping
12962
    WHEN DUP_VAL_ON_INDEX THEN -- an entry was concurrently inserted
12963
      NULL; -- exception? -> no op, i.e. continue looping
12964
  END;
12965
 END LOOP;
12966
END;
3959 dpurdie 12967
 
5172 dpurdie 12968
/*-------------------------------------------------------------------------------------------------------*/
12969
--  ADD_RELEASE_SDK
12970
--  ADD an SDK Reference to a Release
12971
--  Args: nRtagId           - RTAG_ID of Release to Process
12972
--        nSdktagId         - SDKTAG_ID of SDK to add to Release
12973
--        nUserId           - User IF of user performing the action
12974
--        bDelete           - Delete conflicting (non sdk) packages from the release 0:False
12975
--        nInsertCount      - Returns: Number of Packages inserted: -1 is an error
12976
--        curReturn         - Returns: On error a table of PV_IDs of packages causing the conflict
12977
--
12978
PROCEDURE ADD_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER, nUserId IN NUMBER, bDelete IN NUMBER, nInsertCount OUT NUMBER, curReturn OUT typeCur )IS
12979
 
12980
  vartbl RELMGR_NUMBER_TAB_T := RELMGR_NUMBER_TAB_T();
12981
  ii NUMBER;
12982
  view_id NUMBER;
12983
 
12984
    -- Detect clashing packages
12985
    -- Packages provided by the SDK that are present in the Release
12986
    CURSOR curPackageClash
12987
    IS
12988
      SELECT release.pvid
12989
      FROM
12990
        -- Alias and pvid from SDK
12991
        (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
12992
          pv.PV_ID                  AS pvid
12993
        FROM SDK_CONTENT sc, PACKAGE_VERSIONS pv
12994
        WHERE sc.SDKTAG_ID  = nSdktagId
12995
        AND sc.SDKPKG_STATE = 'E'
12996
        AND pv.PV_ID        = sc.PV_ID
12997
        ) sdk,
12998
      -- Alias and pvid from Release
12999
      (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
13000
        pv.PV_ID                  AS pvid
13001
      FROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pv
13002
      WHERE rc.rtag_id = nRtagId
13003
      AND rc.PV_ID    = pv.PV_ID
13004
      ) RELEASE
13005
    WHERE sdk.pkgAlias = release.pkgAlias;
5502 dpurdie 13006
 
5172 dpurdie 13007
   -- Detect packages in the release that are provided by the SDK
13008
   -- Do not include packages provided by an SDK - these cannot be replaced
13009
       CURSOR curPackageReplacable
13010
    IS
13011
      SELECT release.pvid
13012
      FROM
13013
        -- Alias and pvid from SDK
13014
        (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
13015
                pv.PV_ID                            AS pvid
13016
        FROM SDK_CONTENT sc, PACKAGE_VERSIONS pv
13017
        WHERE sc.SDKTAG_ID    = nSdktagId
13018
          AND sc.SDKPKG_STATE = 'E'
13019
          AND pv.PV_ID        = sc.PV_ID
13020
        ) sdk,
13021
      -- Alias and pvid from Release
13022
      --  Excluding those import by any SDK
13023
      (SELECT pv.PKG_ID || NVL(pv.V_EXT, '.NULL') AS pkgAlias,
13024
              pv.PV_ID                            AS pvid
13025
       FROM RELEASE_CONTENT rc, PACKAGE_VERSIONS pv
13026
       WHERE rc.rtag_id = nRtagId
13027
         AND rc.PV_ID   = pv.PV_ID
13028
         AND rc.SDKTAG_ID is NULL
13029
      ) RELEASE
13030
    WHERE sdk.pkgAlias = release.pkgAlias;
13031
 
13032
BEGIN
13033
   /*--------------- Business Rules Here -------------------*/
13034
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
13035
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
13036
   END IF;
13037
 
13038
   IF (nSdktagId = 0) OR ( nSdktagId IS NULL ) THEN
13039
      RAISE_APPLICATION_ERROR (-20000, 'nSdktagId is not supplied. [nSdktagId='|| nSdktagId ||']' );
13040
   END IF;
13041
   /*-------------------------------------------------------*/
5502 dpurdie 13042
 
5172 dpurdie 13043
   -- Delete packages from the release if they are provided by the SDK
5502 dpurdie 13044
   -- provided they are not provided by another SDK
5172 dpurdie 13045
    IF bDelete != 0 THEN
13046
      FOR rdata IN curPackageClash LOOP
13047
        DELETE FROM RELEASE_CONTENT rc
13048
          WHERE rc.RTAG_ID = nRtagId
13049
          AND rc.PV_ID = rdata.pvid;
13050
      END LOOP;
13051
 
13052
      -- Remove exising package from this release to be referenced
13053
      REMOVE_RELEASE_SDK ( nRtagId, nSdktagId);
13054
    END IF;
13055
 
13056
    -- Detect and report package clashes
13057
    -- Packages provided by the SDK that are (still) in the release
13058
    ii := 1;
13059
    FOR rdata IN curPackageClash LOOP
13060
      vartbl.extend;
13061
      --vartbl(ii) := TABLE_PVID(rdata.pvid);
13062
      vartbl(ii) := rdata.pvid;
13063
      ii := ii + 1;
13064
    END LOOP;
13065
    -- Make sure there is no package clashes
5502 dpurdie 13066
 
5172 dpurdie 13067
    IF ii != 1 THEN
13068
      nInsertCount := -1;
13069
      open curReturn for select * from table(vartbl);
13070
      --curReturn := vartbl;
13071
      RETURN;
13072
    END IF;
13073
 
13074
    -- Determine the target view_id
13075
    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 13076
 
5172 dpurdie 13077
    -- Add SDK exported packages to release
13078
    INSERT INTO RELEASE_CONTENT rc (RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE, SDKTAG_ID)
5502 dpurdie 13079
    SELECT nRtagId, sc.PV_ID, view_id, sysdate, nUserId, 11, nSdktagId
5172 dpurdie 13080
        FROM SDK_CONTENT sc
13081
        WHERE sc.SDKTAG_ID = nSdktagId
13082
        AND sc.SDKPKG_STATE = 'E';
13083
    nInsertCount := sql%ROWCOUNT;
13084
 
13085
    -- Refresh Package states
13086
    TOUCH_RELEASE ( nRtagId );
13087
    SET_RELEASE_MODIFIED(nRtagId);
13088
 
3959 dpurdie 13089
END;
13090
 
1373 dpurdie 13091
/*-------------------------------------------------------------------------------------------------------*/
5172 dpurdie 13092
--  Name:   REMOVE_RELEASE_SDK
13093
--  Desc:   Remove an SDK from the specified Release
13094
--          It is not an error to remove an SDK that is not attached to the release
13095
--  Args:   nRtagId         - RTAG_ID of the Release to Process
13096
--          nSdktagId       - SDKTAG_ID to remove
13097
--
13098
PROCEDURE REMOVE_RELEASE_SDK ( nRtagId IN NUMBER, nSdktagId IN NUMBER ) IS
13099
 
13100
BEGIN
13101
   /*--------------- Business Rules Here -------------------*/
13102
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
13103
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
13104
   END IF;
13105
 
13106
   IF (nSdktagId = 0) OR ( nSdktagId IS NULL ) THEN
13107
      RAISE_APPLICATION_ERROR (-20000, 'nSdktagId is not supplied. [nSdktagId='|| nSdktagId ||']' );
13108
   END IF;
13109
 
13110
   /*-------------------------------------------------------*/
13111
 
13112
   -- Remove matching packages from release
13113
   DELETE FROM RELEASE_CONTENT rc
13114
    WHERE rc.RTAG_ID = nRtagId
13115
      AND rc.SDKTAG_ID = nSdktagId;
13116
 
13117
   -- Refresh Package states
13118
   TOUCH_RELEASE ( nRtagId );
13119
   SET_RELEASE_MODIFIED(nRtagId);
13120
END;
13121
 
13122
--------------------------------------------------------------------------------
13123
--  CAN_ADD_PKG_TO_RELEASE
13124
--  Test if a Package (pvid) can be added to a given release
13125
--  The test will not allwo an exiting package to be replaced IF it is imported via an
13126
--  SDK
13127
--
13128
--  Returns:  0 - Package cannot be replaced
13129
--            1 - Package can be replaced
13130
--            2 - Package will be added
5502 dpurdie 13131
--
5172 dpurdie 13132
FUNCTION CAN_ADD_PKG_TO_RELEASE ( nRtagId IN NUMBER, nPvid in NUMBER ) RETURN NUMBER IS
13133
 
13134
   sAlias VARCHAR2(4000);
5502 dpurdie 13135
 
5172 dpurdie 13136
    -- Find package for proccessing
13137
    -- Use unique constraint of PKG_ID and V_EXT
13138
   CURSOR curReplacePkg IS
13139
    SELECT pv.PV_ID
13140
     FROM RELEASE_CONTENT rc,
13141
           PACKAGE_VERSIONS pv
13142
    WHERE rc.PV_ID = pv.PV_ID
13143
      AND rc.RTAG_ID = nRtagId
13144
      AND pv.PKG_ID || NVL( pv.V_EXT, 'LINK_A_NULL' ) = sAlias;
5502 dpurdie 13145
 
5172 dpurdie 13146
    recReplacePkg curReplacePkg%ROWTYPE;
13147
    nSdkTag NUMBER;
5502 dpurdie 13148
 
5172 dpurdie 13149
BEGIN
13150
   /*--------------- Business Rules Here -------------------*/
13151
   IF (nRtagId = 0) OR ( nRtagId IS NULL ) THEN
13152
      RAISE_APPLICATION_ERROR (-20000, 'nRtagId is not supplied. [nRtagId='|| nRtagId ||']' );
13153
   END IF;
13154
 
13155
   IF (nPvid = 0) OR ( nPvid IS NULL ) THEN
13156
      RAISE_APPLICATION_ERROR (-20000, 'nPvid is not supplied. [nPvid='|| nPvid ||']' );
13157
   END IF;
13158
 
13159
    -- Find pkg Alias for provided package
5502 dpurdie 13160
   SELECT pv.PKG_ID || NVL( pv.V_EXT, 'LINK_A_NULL' )
5172 dpurdie 13161
     INTO sAlias
13162
     FROM PACKAGE_VERSIONS pv
13163
    WHERE pv.PV_ID = nPvid;
13164
 
13165
      -- Find Package that may be replaced
13166
      OPEN curReplacePkg;
13167
       FETCH curReplacePkg INTO recReplacePkg;
13168
 
13169
       IF curReplacePkg%FOUND THEN
13170
        SELECT SDKTAG_ID INTO nSdkTag FROM RELEASE_CONTENT
13171
         WHERE rtag_id = nRtagId
13172
         AND pv_id = recReplacePkg.PV_ID;
5502 dpurdie 13173
 
5172 dpurdie 13174
        If nSdkTag IS NOT NULL  THEN
13175
          RETURN 0;
13176
        ELSE
13177
          RETURN 1;
13178
        END IF;
13179
      END IF;
13180
 
13181
  -- No package found, so it can be added
13182
  RETURN 2;
5502 dpurdie 13183
 
5172 dpurdie 13184
  EXCEPTION
13185
  WHEN NO_DATA_FOUND THEN
13186
    RAISE_APPLICATION_ERROR (-20000, 'nPvid is not valid. [nPvid='|| nPvid ||']' );
13187
END;
13188
 
13189
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13190
END PK_RELEASE;
4040 dpurdie 13191
 
3959 dpurdie 13192
/
4040 dpurdie 13193
--------------------------------------------------------
13194
--  DDL for Package Body PK_RMAPI
13195
--------------------------------------------------------
13196
 
5172 dpurdie 13197
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_RMAPI" 
3959 dpurdie 13198
IS
13199
 
13200
   /*-------------------------------------------------------------------------------------------------------*/
13201
   FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)
13202
      RETURN typecur
1373 dpurdie 13203
   IS
3959 dpurdie 13204
      npvid     NUMBER  := 0;
13205
      RECORDS   typecur;
1373 dpurdie 13206
   BEGIN
3959 dpurdie 13207
      BEGIN
13208
         -- Get PV_ID --
13209
         SELECT pv.pv_id
13210
           INTO npvid
13211
           FROM PACKAGES pkg, package_versions pv
13212
          WHERE pv.pkg_id = pkg.pkg_id
13213
            AND pkg.pkg_name = pkgname
13214
            AND pv.pkg_version = pkgversion;
13215
      EXCEPTION
13216
         WHEN NO_DATA_FOUND
13217
         THEN
13218
            raise_application_error (-20000, 'Package Not Found!');
13219
            --WHEN OTHERS THEN
13220
                  -- Consider logging the error and then re-raise
13221
            RAISE;
13222
      END;
1373 dpurdie 13223
 
3959 dpurdie 13224
      -- Finally get package dependencies --
13225
      OPEN RECORDS FOR
13226
         SELECT dpv.pv_id, dpkg.pkg_name, dpv.pkg_version
13227
           FROM package_dependencies dep, PACKAGES dpkg, package_versions dpv
13228
          WHERE dep.pv_id = npvid
13229
            AND dpv.pkg_id = dpkg.pkg_id
13230
            AND dpv.pv_id = dep.dpv_id;
13231
 
13232
      RETURN RECORDS;
1373 dpurdie 13233
   END;
13234
 
13235
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13236
   FUNCTION wip_iteration_package (
13237
      projname        VARCHAR2,
13238
      iterationname   VARCHAR2,
13239
      pkgname         VARCHAR2
1373 dpurdie 13240
   )
3959 dpurdie 13241
      RETURN typecur
1373 dpurdie 13242
   IS
3959 dpurdie 13243
      nrtagid   NUMBER  := 0;
13244
      RECORDS   typecur;
1373 dpurdie 13245
   BEGIN
3959 dpurdie 13246
      BEGIN
13247
         -- Get latest rtag_id --
13248
         SELECT rt.rtag_id
13249
           INTO nrtagid
13250
           FROM projects proj, release_tags rt
13251
          WHERE rt.proj_id = proj.proj_id
13252
            AND UPPER (proj.proj_name) = UPPER (projname)
13253
            AND UPPER (rt.rtag_name) = UPPER (iterationname);
1373 dpurdie 13254
 
3959 dpurdie 13255
         IF (nrtagid IS NULL)
13256
         THEN
13257
            raise_application_error (-20000,
13258
                                     'Work In Progress is Not Found!');
13259
         END IF;
13260
      EXCEPTION
13261
         WHEN NO_DATA_FOUND
13262
         THEN
13263
            raise_application_error (-20000,
13264
                                     'Work In Progress is Not Found!');
13265
            RAISE;
13266
      END;
13267
 
13268
      -- Finally get package dependencies --
13269
      OPEN RECORDS FOR
13270
         SELECT pv.pkg_version, pv.dlocked AS is_official, pv.pkg_label,
13271
                pv.src_path
13272
           FROM PACKAGES pkg, package_versions pv, work_in_progress wip
13273
          WHERE pv.pkg_id = pkg.pkg_id
13274
            AND wip.pv_id = pv.pv_id
13275
            AND wip.rtag_id = nrtagid
13276
            AND pkg.pkg_name = pkgname;
13277
 
13278
      RETURN RECORDS;
1373 dpurdie 13279
   END;
13280
 
13281
/*-------------------------------------------------------------------------------------------------------*/
4553 dpurdie 13282
-- Use:
13283
--   Used by the Automated Build System to release a new package
13284
-- Returns:
13285
--    Use application errors to indicate programming errors
13286
--    Use negative return codes to indicate correctable user problems
13287
--    Positive return code is the new PVID of the package
6600 dpurdie 13288
--
13289
-- Note: Being deprecated in favor of auto_make_vcsrelease2
4553 dpurdie 13290
  FUNCTION auto_make_vcsrelease (
3959 dpurdie 13291
      rtagid                   IN   NUMBER,
13292
      pkgname                  IN   VARCHAR2,
13293
      vext                     IN   VARCHAR2,
13294
      newpkgversion            IN   VARCHAR2,
13295
      vcstag                   IN   VARCHAR2,
13296
      dependenciesimportlist   IN   VARCHAR2,
13297
      isrippled                IN   NUMBER,
13298
      username                 IN   VARCHAR2
13299
   )
1373 dpurdie 13300
      RETURN NUMBER
13301
   IS
3959 dpurdie 13302
      pkgid                           NUMBER;
13303
      pvid                            NUMBER                        := 0;
13304
      userid                          NUMBER;
13305
      dlocked                         VARCHAR2 (20)                 := NULL;
13306
      clonefrompvid                   NUMBER;
13307
      ssv_mm                          package_versions.v_mm%TYPE;
13308
      ssv_nmm                         package_versions.v_nmm%TYPE;
13309
      ssv_ext                         package_versions.v_ext%TYPE;
13310
      return_package_not_found        NUMBER                        := -1;
13311
      return_package_already_exists   NUMBER                        := -2;
13312
      return_not_approved             NUMBER                        := -3;
13313
      return_migrated_pkg             NUMBER                        := -4;
4553 dpurdie 13314
      return_svn_path_changed         NUMBER                        := -5;
1373 dpurdie 13315
 
13316
 
3959 dpurdie 13317
      x_vcstypeid                     NUMBER;
13318
      x_tag                           VARCHAR2(32);
13319
      x_label                         VARCHAR2(60);
13320
      x_srcpath                       VARCHAR2(2000);
13321
      p_srcpath                       VARCHAR2(2000);
1373 dpurdie 13322
 
3959 dpurdie 13323
      -- Regular expression constituents
13324
      Token         VARCHAR2(16) := '([^:]+)';  -- a token is anything except a ':' character
13325
      Seperator     VARCHAR2(4)  := '::';       -- tokens will be seperated by '::'
13326
      BOL           VARCHAR2(4)  := '^';
13327
      Anything      VARCHAR2(4)  := '.*';
13328
      ReplaceToken1 VARCHAR2(4)  := '\1';
13329
      ReplaceToken2 VARCHAR2(4)  := '\2';
13330
      ReplaceToken3 VARCHAR2(4)  := '\3';
13331
      iprev_modifier_id               NUMBER;
13332
 
1373 dpurdie 13333
   BEGIN
3959 dpurdie 13334
      /*--------------- Business Rules Here -------------------*/
13335
      IF (rtagid IS NULL)
13336
      THEN
13337
         raise_application_error (-20000, 'RtagId must be supplied.');
13338
      END IF;
1373 dpurdie 13339
 
3959 dpurdie 13340
      IF (pkgname IS NULL)
13341
      THEN
13342
         raise_application_error (-20000, 'PkgName must be supplied.');
13343
      END IF;
1373 dpurdie 13344
 
3959 dpurdie 13345
      IF (newpkgversion IS NULL)
1373 dpurdie 13346
      THEN
3959 dpurdie 13347
         raise_application_error (-20000, 'PkgVersion must be supplied.');
1373 dpurdie 13348
      END IF;
13349
 
3959 dpurdie 13350
      IF (vcstag IS NULL)
1373 dpurdie 13351
      THEN
3959 dpurdie 13352
         raise_application_error (-20000, 'PkgVcsTag must be supplied.');
1373 dpurdie 13353
      END IF;
13354
 
3959 dpurdie 13355
      IF (isrippled IS NULL) OR (isrippled < 0) OR (isrippled > 1)
1373 dpurdie 13356
      THEN
4553 dpurdie 13357
         raise_application_error (-20000, 'IsRippled must be set to 1 (Is rippled build) or 0 (Is planned build).');
1373 dpurdie 13358
      END IF;
13359
 
3959 dpurdie 13360
      IF (username IS NULL)
1373 dpurdie 13361
      THEN
3959 dpurdie 13362
         raise_application_error (-20000, 'UserName must be supplied.');
1373 dpurdie 13363
      END IF;
13364
 
3959 dpurdie 13365
      -- Parse the PkgVcsTag
13366
      -- Sets up
13367
      --   x_tag, x_label, x_srcpath
1373 dpurdie 13368
 
3959 dpurdie 13369
       BEGIN
13370
          -- Extract the first token - this will be the short tag name for the VCS (eg. 'CC', 'SVN', etc)
13371
          x_tag := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Anything, ReplaceToken1);
1373 dpurdie 13372
 
3959 dpurdie 13373
          -- Decode the short tag
13374
          CASE x_tag
13375
             WHEN 'CC' THEN
13376
                -- extract the 2nd and 3rd tokens, those being the source path and label respectively
13377
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
13378
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
1373 dpurdie 13379
 
3959 dpurdie 13380
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
13381
                -- check for that error as well as the obvious zero-length string conditions.
13382
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
13383
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
13384
                END IF;
6031 dpurdie 13385
 
3959 dpurdie 13386
                IF isSVNbyName(pkgname) > 0 THEN
13387
                    -- Don't allow migrated packages to be released from a CC label
13388
                    return return_migrated_pkg;
13389
                END IF;
1373 dpurdie 13390
 
13391
 
3959 dpurdie 13392
             WHEN 'SVN' THEN
13393
                -- extract the 2nd token, that being the subversion tag
13394
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
13395
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
1373 dpurdie 13396
 
3959 dpurdie 13397
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
13398
                -- check for that error as well as the obvious zero-length string conditions.
13399
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
13400
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
13401
                END IF;
13402
 
13403
             WHEN 'UC' THEN
13404
                -- nothing to extract, just assign defaults
13405
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
13406
                x_label   := 'N/A';
13407
             ELSE
13408
                raise_application_error (-20000, 'Unrecognised VCS Tag!');
13409
          END CASE;
13410
       END;
13411
 
13412
      -- Get the VCS_TYPE_ID for the version control system.
13413
      BEGIN
13414
         SELECT vt.vcs_type_id
13415
         INTO x_vcstypeid
13416
         FROM VCS_TYPE vt
13417
         WHERE vt.tag = x_tag;
13418
         EXCEPTION
13419
            WHEN NO_DATA_FOUND THEN
13420
               raise_application_error (-20000, 'Database is missing a version control system tag (' || x_tag || ')!' );
13421
      END;
13422
 
13423
 
13424
      -- Get user_id
13425
      BEGIN
13426
         SELECT usr.user_id
13427
           INTO userid
13428
           FROM users usr
13429
          WHERE UPPER (usr.user_name) = UPPER (username)
13430
            AND usr.is_disabled IS NULL;
13431
      EXCEPTION
13432
         WHEN NO_DATA_FOUND
1373 dpurdie 13433
         THEN
4585 dpurdie 13434
            raise_application_error (-20000, 'UserName: ' || username || ' is not valid or disabled.' );
3959 dpurdie 13435
      END;
1373 dpurdie 13436
 
3959 dpurdie 13437
/*-------------------------------------------------------*/
1373 dpurdie 13438
 
3959 dpurdie 13439
      -- Create package if necessary
13440
      IF isrippled = 1
1373 dpurdie 13441
      THEN
3959 dpurdie 13442
         /* Ripple Build */
13443
         BEGIN
13444
            -- Make sure that package does not exist
13445
            SELECT pv.pv_id
13446
              INTO pvid
13447
              FROM package_versions pv, PACKAGES pkg
13448
             WHERE pv.pkg_id = pkg.pkg_id
13449
               AND pkg.pkg_name = pkgname
13450
               AND pv.pkg_version = newpkgversion;
13451
         EXCEPTION
13452
            WHEN NO_DATA_FOUND
13453
            THEN
13454
               pvid := 0;
13455
         END;
13456
 
13457
         IF (pvid = 0)
1373 dpurdie 13458
         THEN
3959 dpurdie 13459
            -- Split current version in parts
13460
            split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
13461
 
13462
            BEGIN
13463
               -- Find package to be replaced with the ripple package
13464
               IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
13465
               THEN
13466
                  SELECT pv.pv_id, pv.src_path
13467
                    INTO clonefrompvid, p_srcpath
13468
                    FROM PACKAGES pkg, package_versions pv,
13469
                         release_content rc
13470
                   WHERE rc.pv_id = pv.pv_id
13471
                     AND pv.pkg_id = pkg.pkg_id
13472
                     AND rc.rtag_id = rtagid
13473
                     AND pkg.pkg_name = pkgname
13474
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|');
13475
               ELSE
13476
                  SELECT pv.pv_id, pv.src_path
13477
                    INTO clonefrompvid, p_srcpath
13478
                    FROM PACKAGES pkg, package_versions pv,
13479
                         release_content rc
13480
                   WHERE rc.pv_id = pv.pv_id
13481
                     AND pv.pkg_id = pkg.pkg_id
13482
                     AND rc.rtag_id = rtagid
13483
                     AND pkg.pkg_name = pkgname
13484
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
13485
               END IF;
13486
            EXCEPTION
13487
               WHEN NO_DATA_FOUND
13488
               THEN
13489
                  raise_application_error
13490
                                        (-20000,
13491
                                            'Cannot get CloneFromPvId. VExt='
13492
                                         || vext
13493
                                         || ', RtagId='
13494
                                         || rtagid
13495
                                         || ', PkgName='
13496
                                         || pkgname
13497
                                         || ', SSV_EXT='
13498
                                         || ssv_ext
13499
                                        );
13500
            END;
13501
 
13502
            IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
13503
            THEN
13504
               -- Create package
13505
               seed_package_names_versions (pkgname,
13506
                                            newpkgversion,
13507
                                            userid,
13508
                                            pvid,
13509
                                            clonefrompvid
13510
                                           );
13511
            ELSE
4585 dpurdie 13512
               -- Create package (now both the same)
13513
               seed_package_names_versions (pkgname,
3959 dpurdie 13514
                                             newpkgversion,
13515
                                             userid,
13516
                                             pvid,
13517
                                             clonefrompvid
13518
                                            );
13519
            END IF;
13520
 
13521
            -- Update Package reason for release
13522
            UPDATE package_versions pv
13523
               SET pv.comments = 'Rippled Build.',
13524
                   pv.build_type = 'Y'
13525
             WHERE pv.pv_id = pvid;
13526
         ELSE
13527
            -- Package already exists, it was built previously, and has just been re-built again probably due to the
13528
            -- fact that the archive was cleaned of the original build artifacts at some point, and those artifacts
13529
            -- are now needed once more. As such, we need to ensure that a new release note generation occurs so
13530
            -- reset the package_versions[pvid].release_notes_info field to enable that to happen.
13531
            UPDATE package_versions pv
13532
               SET pv.release_notes_info = null,
13533
                   pv.modified_stamp = ora_sysdatetime
13534
             WHERE pv.pv_id = pvid;
13535
 
13536
            --DEVI-066151
13537
            log_action (pvid, 'package_rebuilt', userid, 'Package Re-built...');
13538
 
13539
            RETURN return_package_already_exists;
1373 dpurdie 13540
         END IF;
13541
      ELSE
3959 dpurdie 13542
         /* Auto build from Pending area */
13543
 
13544
         -- Find package in pending area
13545
         BEGIN
13546
            SELECT pv.pv_id, pv.dlocked, pv.src_path
13547
              INTO pvid, dlocked, p_srcpath
13548
              FROM planned pl, package_versions pv, PACKAGES pkg
13549
             WHERE pl.pv_id = pv.pv_id
13550
               AND pv.pkg_id = pkg.pkg_id
13551
               AND pl.rtag_id = rtagid
13552
               AND pkg.pkg_name = pkgname
13553
               AND pv.dlocked = 'A'
13554
               AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|')
13555
               AND rownum = 1
13556
             ORDER BY pv.modified_stamp;
13557
         EXCEPTION
13558
            WHEN NO_DATA_FOUND
13559
            THEN
13560
               pvid := 0;
13561
         END;
13562
 
13563
         IF (pvid = 0)
1373 dpurdie 13564
         THEN
3959 dpurdie 13565
            -- Package does not exist in pending area, hence report it
13566
            RETURN return_package_not_found;
13567
         ELSIF (dlocked != 'A')
1373 dpurdie 13568
         THEN
3959 dpurdie 13569
            -- Package is not approved for autobuild
13570
            RETURN return_not_approved;
1373 dpurdie 13571
         END IF;
13572
 
13573
      END IF;
13574
 
3959 dpurdie 13575
      -- Ensure Source Path does not change
13576
      -- Do not expect the SVN development branch to change
13577
      -- From the previous package
13578
      IF ( x_tag = 'SVN' AND p_srcpath != x_srcpath )
1373 dpurdie 13579
      THEN
4553 dpurdie 13580
        return return_svn_path_changed;
1373 dpurdie 13581
      END IF;
13582
 
3959 dpurdie 13583
      BEGIN
13584
         -- Import Dependencies
13585
         import_dependencies (pvid, dependenciesimportlist, userid);
13586
      END;
1373 dpurdie 13587
 
13588
 
3959 dpurdie 13589
      BEGIN
13590
         -- Split current version in parts
13591
         split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
1373 dpurdie 13592
 
3959 dpurdie 13593
         -- Update Package Details
13594
         UPDATE package_versions pv
13595
            SET pv.pkg_version = newpkgversion,
13596
                pv.v_ext = ssv_ext,
13597
                pv.v_mm = ssv_mm,
13598
                pv.v_nmm = ssv_nmm,
13599
                pv.src_path = x_srcpath,
13600
                pv.pkg_label = x_label,
13601
                pv.vcs_type_id = x_vcstypeid
13602
          WHERE pv.pv_id = pvid;
13603
      EXCEPTION
13604
         WHEN DUP_VAL_ON_INDEX
13605
         THEN
13606
            -- Package already exists, hence cannot be used for ripple build
13607
            RETURN return_package_already_exists;
13608
      END;
13609
 
13610
      -- Update the is_autobuildable
13611
      UPDATE package_versions
13612
         SET is_autobuildable = 'Y'
13613
       WHERE pv_id = pvid;
13614
 
13615
      -- DEVI-063601
13616
      -- For planned builds the modifier_id shouldn't be set to buildadm.
13617
      -- To ensure this the modifier_id is obtained so it can be restored after
13618
      -- the function pk_environment.auto_make_release is called.
13619
      -- This function calls, change_state, which sets the modifier_id to the
13620
      -- specified userid, which for auto builds is buildadm.
13621
      SELECT pv.modifier_id INTO iprev_modifier_id
13622
      FROM package_versions pv WHERE pv.pv_id = pvid;
13623
 
13624
      -- Now release package
13625
      pk_environment.auto_make_release (pvid,
13626
                                        rtagid,
13627
                                        userid,
13628
                                        vext,
13629
                                        ssv_ext,
13630
                                        clonefrompvid
13631
                                       );
13632
 
13633
      -- DEVI-063601
13634
      -- if it is a planned build then restore the modifier_id to the previous modifier
13635
      UPDATE package_versions pv SET pv.modifier_id = iprev_modifier_id
13636
      WHERE pv.pv_id = pvid;
13637
 
13638
      --Now clean the PLANNED_VERSIONS table
13639
      SELECT pkg_id
13640
        INTO pkgid
13641
        FROM PACKAGES
13642
       WHERE pkg_name = pkgname;
13643
 
13644
      DELETE FROM planned_versions
13645
            WHERE pkg_id = pkgid AND pkg_version = newpkgversion;
13646
 
13647
      RETURN pvid;
1373 dpurdie 13648
   END;
13649
 
13650
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 13651
   PROCEDURE import_dependencies (
13652
      pvid                     IN   NUMBER,
13653
      dependenciesimportlist   IN   VARCHAR2,
13654
      userid                   IN   NUMBER
13655
   )
1373 dpurdie 13656
   IS
3959 dpurdie 13657
/*
13658
|| DependenciesImportList Format:
13659
|| "pkgA","1.0.0";"pkgB","2.0.0";
13660
||  OR 'pkgA','1.0.0';'pkgB','2.0.0';
13661
*/
13662
      TYPE tdictionary IS TABLE OF VARCHAR2 (4000)
13663
         INDEX BY VARCHAR2 (4000);
13664
 
13665
      seperator         VARCHAR2 (2)           := '||';
13666
      pkgname           VARCHAR2 (4000);
13667
      pkgversion        VARCHAR2 (4000);
13668
      buildtype         VARCHAR2 (50);
13669
      pkgid             NUMBER;
13670
      vext              VARCHAR2 (4000);
13671
      dpvid             NUMBER;
13672
      slist             VARCHAR2 (4000);
13673
      cbuildtypes       tdictionary;
13674
      dependencyrow     NUMBER;
13675
      sdependency       VARCHAR2 (4000);
13676
      first_pos         VARCHAR2 (4000);
13677
      second_pos        VARCHAR2 (4000);
13678
      third_pos         VARCHAR2 (4000);
13679
      forth_pos         VARCHAR2 (4000);
13680
      citemcollection   relmgr_varchar2_tab_t  := relmgr_varchar2_tab_t ();
13681
 
13682
      CURSOR curbuildtype
13683
      IS
13684
         SELECT dpv.pkg_id || seperator || dpv.v_ext AS pkgid_ext,
13685
                dep.build_type
13686
           FROM package_dependencies dep, package_versions dpv
13687
          WHERE dep.pv_id = pvid AND dep.dpv_id = dpv.pv_id;
13688
 
13689
      recbuildtype      curbuildtype%ROWTYPE;
1373 dpurdie 13690
   BEGIN
3959 dpurdie 13691
      slist := dependenciesimportlist;
1373 dpurdie 13692
 
3959 dpurdie 13693
      -- Preformat String
13694
      IF NOT slist IS NULL
1373 dpurdie 13695
      THEN
3959 dpurdie 13696
         slist := REPLACE (slist, ' ');                      -- Remove spaces
13697
         slist := REPLACE (slist, UTL_TCP.crlf);
13698
         -- Remove new line and carriage-return characters
13699
         slist := REPLACE (slist, '''', '"');             -- Replace ' with "
1373 dpurdie 13700
      END IF;
13701
 
3959 dpurdie 13702
      -- Get Current Dependencies
13703
      OPEN curbuildtype;
1373 dpurdie 13704
 
3959 dpurdie 13705
      FETCH curbuildtype
13706
       INTO recbuildtype;
1373 dpurdie 13707
 
3959 dpurdie 13708
      WHILE curbuildtype%FOUND
13709
      LOOP
13710
         cbuildtypes (recbuildtype.pkgid_ext) := recbuildtype.build_type;
1373 dpurdie 13711
 
3959 dpurdie 13712
         FETCH curbuildtype
13713
          INTO recbuildtype;
13714
      END LOOP;
1373 dpurdie 13715
 
3959 dpurdie 13716
      CLOSE curbuildtype;
1373 dpurdie 13717
 
3959 dpurdie 13718
      -- Separate dependencies with ; separator
13719
      citemcollection := in_list_varchar2 (slist, ';');
1373 dpurdie 13720
 
3959 dpurdie 13721
      BEGIN
13722
         -- Remove old dependencies
13723
         DELETE FROM package_dependencies dep
13724
               WHERE dep.pv_id = pvid;
1373 dpurdie 13725
 
3959 dpurdie 13726
         -- Loop through dependencies
13727
         FOR dependencyrow IN 1 .. citemcollection.COUNT
13728
         LOOP
13729
            -- Extract pkg_name and pkg_version
13730
            sdependency := citemcollection (dependencyrow);
13731
            first_pos := INSTR (sdependency, '"', 1, 1);
13732
            second_pos := INSTR (sdependency, '"', 1, 2);
13733
            third_pos := INSTR (sdependency, '"', 1, 3);
13734
            forth_pos := INSTR (sdependency, '"', 1, 4);
13735
            pkgname :=
13736
               SUBSTR (sdependency,
13737
                       (first_pos + 1),
13738
                       (second_pos - first_pos - 1)
13739
                      );
13740
            pkgversion :=
13741
               SUBSTR (sdependency,
13742
                       (third_pos + 1),
13743
                       (forth_pos - third_pos - 1)
13744
                      );
13745
 
13746
            -- Dependency must exits to be linked against
13747
            BEGIN
13748
               SELECT pv.pv_id, pv.pkg_id, pv.v_ext
13749
                 INTO dpvid, pkgid, vext
13750
                 FROM package_versions pv, PACKAGES pkg
13751
                WHERE pv.pkg_id = pkg.pkg_id
13752
                  AND pkg.pkg_name = pkgname
13753
                  AND pv.pkg_version = pkgversion;
13754
            EXCEPTION
13755
               WHEN NO_DATA_FOUND
13756
               THEN
13757
                  raise_application_error
13758
                                  (-20000,
13759
                                      'Dependency ['
13760
                                   || pkgname
13761
                                   || ' '
13762
                                   || pkgversion
13763
                                   || '] does not exist yet and cannot be used!'
13764
                                  );
13765
            END;
13766
 
13767
            -- Get Build Type (i.e. BuildPackageArchive or LinkPackageArchive)
13768
            BEGIN
13769
               buildtype := cbuildtypes (pkgid || seperator || vext);
13770
 
13771
               IF buildtype IS NULL
13772
               THEN
13773
                  -- Set build type to LinkPackageArchive by default
13774
                  buildtype := 'L';
13775
               END IF;
13776
            EXCEPTION
13777
               WHEN NO_DATA_FOUND
13778
               THEN
13779
                  buildtype := 'L';
13780
            END;
13781
 
13782
            -- Insert Dependencies
13783
            update_package_dependency (pvid,
13784
                                       pkgname,
13785
                                       pkgversion,
13786
                                       buildtype,
13787
                                       userid,
13788
 
13789
                                      );
13790
         END LOOP;
13791
      END;
1373 dpurdie 13792
   END;
13793
 
13794
/*-------------------------------------------------------------------------------------------------------*/
6600 dpurdie 13795
-- Use:
13796
--   Used by the Automated Build System to release a new package
13797
-- Returns:
13798
--    Use application errors to indicate programming errors
13799
--    Use negative return codes to indicate correctable user problems
13800
--    Positive return code is the new PVID of the package
13801
  FUNCTION auto_make_vcsrelease2 (
13802
      rtagid                   IN   NUMBER,
13803
      pkgname                  IN   VARCHAR2,
13804
      vext                     IN   VARCHAR2,
13805
      newpkgversion            IN   VARCHAR2,
13806
      vcstag                   IN   VARCHAR2,
13807
      dependenciesimportlist   IN   relmgr_varchar2_tab_t,
13808
      isrippled                IN   NUMBER,
13809
      username                 IN   VARCHAR2
13810
   )
13811
      RETURN NUMBER
13812
   IS
13813
      pkgid                           NUMBER;
13814
      pvid                            NUMBER                        := 0;
13815
      userid                          NUMBER;
13816
      dlocked                         VARCHAR2 (20)                 := NULL;
13817
      clonefrompvid                   NUMBER;
13818
      ssv_mm                          package_versions.v_mm%TYPE;
13819
      ssv_nmm                         package_versions.v_nmm%TYPE;
13820
      ssv_ext                         package_versions.v_ext%TYPE;
13821
      return_package_not_found        NUMBER                        := -1;
13822
      return_package_already_exists   NUMBER                        := -2;
13823
      return_not_approved             NUMBER                        := -3;
13824
      return_migrated_pkg             NUMBER                        := -4;
13825
      return_svn_path_changed         NUMBER                        := -5;
13826
 
13827
 
13828
      x_vcstypeid                     NUMBER;
13829
      x_tag                           VARCHAR2(32);
13830
      x_label                         VARCHAR2(60);
13831
      x_srcpath                       VARCHAR2(2000);
13832
      p_srcpath                       VARCHAR2(2000);
13833
 
13834
      -- Regular expression constituents
13835
      Token         VARCHAR2(16) := '([^:]+)';  -- a token is anything except a ':' character
13836
      Seperator     VARCHAR2(4)  := '::';       -- tokens will be seperated by '::'
13837
      BOL           VARCHAR2(4)  := '^';
13838
      Anything      VARCHAR2(4)  := '.*';
13839
      ReplaceToken1 VARCHAR2(4)  := '\1';
13840
      ReplaceToken2 VARCHAR2(4)  := '\2';
13841
      ReplaceToken3 VARCHAR2(4)  := '\3';
13842
      iprev_modifier_id               NUMBER;
13843
 
13844
   BEGIN
13845
      /*--------------- Business Rules Here -------------------*/
13846
      IF (rtagid IS NULL)
13847
      THEN
13848
         raise_application_error (-20000, 'RtagId must be supplied.');
13849
      END IF;
13850
 
13851
      IF (pkgname IS NULL)
13852
      THEN
13853
         raise_application_error (-20000, 'PkgName must be supplied.');
13854
      END IF;
13855
 
13856
      IF (newpkgversion IS NULL)
13857
      THEN
13858
         raise_application_error (-20000, 'PkgVersion must be supplied.');
13859
      END IF;
13860
 
13861
      IF (vcstag IS NULL)
13862
      THEN
13863
         raise_application_error (-20000, 'PkgVcsTag must be supplied.');
13864
      END IF;
13865
 
13866
      IF (isrippled IS NULL) OR (isrippled < 0) OR (isrippled > 1)
13867
      THEN
13868
         raise_application_error (-20000, 'IsRippled must be set to 1 (Is rippled build) or 0 (Is planned build).');
13869
      END IF;
13870
 
13871
      IF (username IS NULL)
13872
      THEN
13873
         raise_application_error (-20000, 'UserName must be supplied.');
13874
      END IF;
13875
 
13876
      -- Parse the PkgVcsTag
13877
      -- Sets up
13878
      --   x_tag, x_label, x_srcpath
13879
 
13880
       BEGIN
13881
          -- Extract the first token - this will be the short tag name for the VCS (eg. 'CC', 'SVN', etc)
13882
          x_tag := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Anything, ReplaceToken1);
13883
 
13884
          -- Decode the short tag
13885
          CASE x_tag
13886
             WHEN 'CC' THEN
13887
                -- extract the 2nd and 3rd tokens, those being the source path and label respectively
13888
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
13889
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
13890
 
13891
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
13892
                -- check for that error as well as the obvious zero-length string conditions.
13893
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
13894
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
13895
                END IF;
13896
 
13897
                IF isSVNbyName(pkgname) > 0 THEN
13898
                    -- Don't allow migrated packages to be released from a CC label
13899
                    return return_migrated_pkg;
13900
                END IF;
13901
 
13902
 
13903
             WHEN 'SVN' THEN
13904
                -- extract the 2nd token, that being the subversion tag
13905
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
13906
                x_label   := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Token, ReplaceToken3);
13907
 
13908
                -- NOTE: if reg-expr parsing/replacement fails, the x_... variable may receive the entire input string (vcstag), so
13909
                -- check for that error as well as the obvious zero-length string conditions.
13910
                IF LENGTH(x_srcpath) = 0 OR LENGTH(x_label) = 0 OR x_srcpath = vcstag OR x_label = vcstag THEN
13911
                   raise_application_error (-20000, 'VCS Tag contains insufficient or malformed data!');
13912
                END IF;
13913
 
13914
             WHEN 'UC' THEN
13915
                -- nothing to extract, just assign defaults
13916
                x_srcpath := REGEXP_REPLACE(vcstag, BOL || Token || Seperator || Token || Seperator || Anything, ReplaceToken2);
13917
                x_label   := 'N/A';
13918
             ELSE
13919
                raise_application_error (-20000, 'Unrecognised VCS Tag!');
13920
          END CASE;
13921
       END;
13922
 
13923
      -- Get the VCS_TYPE_ID for the version control system.
13924
      BEGIN
13925
         SELECT vt.vcs_type_id
13926
         INTO x_vcstypeid
13927
         FROM VCS_TYPE vt
13928
         WHERE vt.tag = x_tag;
13929
         EXCEPTION
13930
            WHEN NO_DATA_FOUND THEN
13931
               raise_application_error (-20000, 'Database is missing a version control system tag (' || x_tag || ')!' );
13932
      END;
13933
 
13934
 
13935
      -- Get user_id
13936
      BEGIN
13937
         SELECT usr.user_id
13938
           INTO userid
13939
           FROM users usr
13940
          WHERE UPPER (usr.user_name) = UPPER (username)
13941
            AND usr.is_disabled IS NULL;
13942
      EXCEPTION
13943
         WHEN NO_DATA_FOUND
13944
         THEN
13945
            raise_application_error (-20000, 'UserName: ' || username || ' is not valid or disabled.' );
13946
      END;
13947
 
13948
/*-------------------------------------------------------*/
13949
 
13950
      -- Create package if necessary
13951
      IF isrippled = 1
13952
      THEN
13953
         /* Ripple Build */
13954
         BEGIN
13955
            -- Make sure that package does not exist
13956
            SELECT pv.pv_id
13957
              INTO pvid
13958
              FROM package_versions pv, PACKAGES pkg
13959
             WHERE pv.pkg_id = pkg.pkg_id
13960
               AND pkg.pkg_name = pkgname
13961
               AND pv.pkg_version = newpkgversion;
13962
         EXCEPTION
13963
            WHEN NO_DATA_FOUND
13964
            THEN
13965
               pvid := 0;
13966
         END;
13967
 
13968
         IF (pvid = 0)
13969
         THEN
13970
            -- Split current version in parts
13971
            split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
13972
 
13973
            BEGIN
13974
               -- Find package to be replaced with the ripple package
13975
               IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
13976
               THEN
13977
                  SELECT pv.pv_id, pv.src_path
13978
                    INTO clonefrompvid, p_srcpath
13979
                    FROM PACKAGES pkg, package_versions pv,
13980
                         release_content rc
13981
                   WHERE rc.pv_id = pv.pv_id
13982
                     AND pv.pkg_id = pkg.pkg_id
13983
                     AND rc.rtag_id = rtagid
13984
                     AND pkg.pkg_name = pkgname
13985
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|');
13986
               ELSE
13987
                  SELECT pv.pv_id, pv.src_path
13988
                    INTO clonefrompvid, p_srcpath
13989
                    FROM PACKAGES pkg, package_versions pv,
13990
                         release_content rc
13991
                   WHERE rc.pv_id = pv.pv_id
13992
                     AND pv.pkg_id = pkg.pkg_id
13993
                     AND rc.rtag_id = rtagid
13994
                     AND pkg.pkg_name = pkgname
13995
                     AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
13996
               END IF;
13997
            EXCEPTION
13998
               WHEN NO_DATA_FOUND
13999
               THEN
14000
                  raise_application_error
14001
                                        (-20000,
14002
                                            'Cannot get CloneFromPvId. VExt='
14003
                                         || vext
14004
                                         || ', RtagId='
14005
                                         || rtagid
14006
                                         || ', PkgName='
14007
                                         || pkgname
14008
                                         || ', SSV_EXT='
14009
                                         || ssv_ext
14010
                                        );
14011
            END;
14012
 
14013
            IF NVL (vext, '|LINK_A_NULL|') = NVL (ssv_ext, '|LINK_A_NULL|')
14014
            THEN
14015
               -- Create package
14016
               seed_package_names_versions (pkgname,
14017
                                            newpkgversion,
14018
                                            userid,
14019
                                            pvid,
14020
                                            clonefrompvid
14021
                                           );
14022
            ELSE
14023
               -- Create package (now both the same)
14024
               seed_package_names_versions (pkgname,
14025
                                             newpkgversion,
14026
                                             userid,
14027
                                             pvid,
14028
                                             clonefrompvid
14029
                                            );
14030
            END IF;
14031
 
14032
            -- Update Package reason for release
14033
            UPDATE package_versions pv
14034
               SET pv.comments = 'Rippled Build.',
14035
                   pv.build_type = 'Y'
14036
             WHERE pv.pv_id = pvid;
14037
         ELSE
14038
            -- Package already exists, it was built previously, and has just been re-built again probably due to the
14039
            -- fact that the archive was cleaned of the original build artifacts at some point, and those artifacts
14040
            -- are now needed once more. As such, we need to ensure that a new release note generation occurs so
14041
            -- reset the package_versions[pvid].release_notes_info field to enable that to happen.
14042
            UPDATE package_versions pv
14043
               SET pv.release_notes_info = null,
14044
                   pv.modified_stamp = ora_sysdatetime
14045
             WHERE pv.pv_id = pvid;
14046
 
14047
            --DEVI-066151
14048
            log_action (pvid, 'package_rebuilt', userid, 'Package Re-built...');
14049
 
14050
            RETURN return_package_already_exists;
14051
         END IF;
14052
      ELSE
14053
         /* Auto build from Pending area */
14054
 
14055
         -- Find package in pending area
14056
         BEGIN
14057
            SELECT pv.pv_id, pv.dlocked, pv.src_path
14058
              INTO pvid, dlocked, p_srcpath
14059
              FROM planned pl, package_versions pv, PACKAGES pkg
14060
             WHERE pl.pv_id = pv.pv_id
14061
               AND pv.pkg_id = pkg.pkg_id
14062
               AND pl.rtag_id = rtagid
14063
               AND pkg.pkg_name = pkgname
14064
               AND pv.dlocked = 'A'
14065
               AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|')
14066
               AND rownum = 1
14067
             ORDER BY pv.modified_stamp;
14068
         EXCEPTION
14069
            WHEN NO_DATA_FOUND
14070
            THEN
14071
               pvid := 0;
14072
         END;
14073
 
14074
         IF (pvid = 0)
14075
         THEN
14076
            -- Package does not exist in pending area, hence report it
14077
            RETURN return_package_not_found;
14078
         ELSIF (dlocked != 'A')
14079
         THEN
14080
            -- Package is not approved for autobuild
14081
            RETURN return_not_approved;
14082
         END IF;
14083
 
14084
      END IF;
14085
 
14086
      -- Ensure Source Path does not change
14087
      -- Do not expect the SVN development branch to change
14088
      -- From the previous package
14089
      IF ( x_tag = 'SVN' AND p_srcpath != x_srcpath )
14090
      THEN
14091
        return return_svn_path_changed;
14092
      END IF;
14093
 
14094
      BEGIN
14095
         -- Import Dependencies
14096
         import_dependencies2 (pvid, dependenciesimportlist, userid);
14097
      END;
14098
 
14099
 
14100
      BEGIN
14101
         -- Split current version in parts
14102
         split_version (newpkgversion, ssv_mm, ssv_nmm, ssv_ext);
14103
 
14104
         -- Update Package Details
14105
         UPDATE package_versions pv
14106
            SET pv.pkg_version = newpkgversion,
14107
                pv.v_ext = ssv_ext,
14108
                pv.v_mm = ssv_mm,
14109
                pv.v_nmm = ssv_nmm,
14110
                pv.src_path = x_srcpath,
14111
                pv.pkg_label = x_label,
14112
                pv.vcs_type_id = x_vcstypeid
14113
          WHERE pv.pv_id = pvid;
14114
      EXCEPTION
14115
         WHEN DUP_VAL_ON_INDEX
14116
         THEN
14117
            -- Package already exists, hence cannot be used for ripple build
14118
            RETURN return_package_already_exists;
14119
      END;
14120
 
14121
      -- Update the is_autobuildable
14122
      UPDATE package_versions
14123
         SET is_autobuildable = 'Y'
14124
       WHERE pv_id = pvid;
14125
 
14126
      -- DEVI-063601
14127
      -- For planned builds the modifier_id shouldn't be set to buildadm.
14128
      -- To ensure this the modifier_id is obtained so it can be restored after
14129
      -- the function pk_environment.auto_make_release is called.
14130
      -- This function calls, change_state, which sets the modifier_id to the
14131
      -- specified userid, which for auto builds is buildadm.
14132
      SELECT pv.modifier_id INTO iprev_modifier_id
14133
      FROM package_versions pv WHERE pv.pv_id = pvid;
14134
 
14135
      -- Now release package
14136
      pk_environment.auto_make_release (pvid,
14137
                                        rtagid,
14138
                                        userid,
14139
                                        vext,
14140
                                        ssv_ext,
14141
                                        clonefrompvid
14142
                                       );
14143
 
14144
      -- DEVI-063601
14145
      -- if it is a planned build then restore the modifier_id to the previous modifier
14146
      UPDATE package_versions pv SET pv.modifier_id = iprev_modifier_id
14147
      WHERE pv.pv_id = pvid;
14148
 
14149
      --Now clean the PLANNED_VERSIONS table
14150
      SELECT pkg_id
14151
        INTO pkgid
14152
        FROM PACKAGES
14153
       WHERE pkg_name = pkgname;
14154
 
14155
      DELETE FROM planned_versions
14156
            WHERE pkg_id = pkgid AND pkg_version = newpkgversion;
14157
 
14158
      RETURN pvid;
14159
   END;
14160
 
14161
/*-------------------------------------------------------------------------------------------------------*/
14162
--  import package dependencies (2nd attenpt)
14163
--  Package dependencies are an array of strings. Each string is of the form
14164
--    'PkgName','PkgVersion','PkgType'
14165
--  The use of an array of package dependencies allows packages with very long
14166
--  list of dependencies. More than can be put in to a VARCHAR2
14167
--
14168
   PROCEDURE import_dependencies2 (
14169
      pvid                     IN   NUMBER,
14170
      dependenciesimportlist   IN   relmgr_varchar2_tab_t,
14171
      userid                   IN   NUMBER
14172
   )
14173
   IS
14174
 
14175
      TYPE tdictionary IS TABLE OF VARCHAR2 (4000) INDEX BY VARCHAR2 (4000);
14176
 
14177
      seperator         VARCHAR2 (2)           := '||';
14178
      pkgname           VARCHAR2 (4000);
14179
      pkgversion        VARCHAR2 (4000);
14180
      pkgtype           VARCHAR2  (50);
14181
      pkgid             NUMBER;
14182
      vext              VARCHAR2 (4000);
14183
      dpvid             NUMBER;
14184
      cbuildtypes       tdictionary;
14185
      dependencyrow     NUMBER;
14186
      sdependency       VARCHAR2 (4000);
14187
      citemcollection   relmgr_varchar2_tab_t;
14188
 
14189
      CURSOR curbuildtype
14190
      IS
14191
         SELECT dpv.pkg_id || seperator || dpv.v_ext AS pkgid_ext,
14192
                dep.build_type
14193
           FROM package_dependencies dep, package_versions dpv
14194
          WHERE dep.pv_id = pvid AND dep.dpv_id = dpv.pv_id;
14195
 
14196
      recbuildtype      curbuildtype%ROWTYPE;
14197
   BEGIN
14198
      -- Get Current Dependencies
14199
      OPEN curbuildtype;
14200
 
14201
      FETCH curbuildtype
14202
       INTO recbuildtype;
14203
 
14204
      WHILE curbuildtype%FOUND
14205
      LOOP
14206
         cbuildtypes (recbuildtype.pkgid_ext) := recbuildtype.build_type;
14207
         FETCH curbuildtype INTO recbuildtype;
14208
      END LOOP;
14209
 
14210
      CLOSE curbuildtype;
14211
 
14212
      BEGIN
14213
         -- Remove old dependencies
14214
         DELETE FROM package_dependencies dep
14215
               WHERE dep.pv_id = pvid;
14216
 
14217
         -- Loop through dependencies
14218
         FOR dependencyrow IN 1 .. dependenciesimportlist.COUNT
14219
         LOOP
14220
            -- Extract pkg_name and pkg_version and type(optional)
14221
            sdependency := dependenciesimportlist (dependencyrow);
14222
            sdependency := REPLACE(sdependency, '''');
14223
            sdependency := REPLACE(sdependency, '"');
14224
            -- Remove empty dependency
14225
            IF LENGTH(sdependency) > 0 THEN
14226
              citemcollection := in_list_varchar2 (sdependency, ',');
14227
              IF citemcollection.COUNT  < 2
14228
              THEN
14229
                raise_application_error
14230
                  (-20000,
14231
                      'Dependency ['
14232
                   || sdependency
14233
                   || '] must have at least two ; separated fields!'
14234
                  );
14235
              END IF;
14236
              pkgname := citemcollection(1);
14237
              pkgversion := citemcollection(2);
14238
              IF citemcollection.COUNT >= 3
14239
              THEN
14240
                pkgtype := citemcollection(3);
14241
              ELSE
14242
                pkgtype := NULL;
14243
              END IF;
14244
              -- Dependency must exits to be linked against
14245
              BEGIN
14246
                 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
14247
                   INTO dpvid, pkgid, vext
14248
                   FROM package_versions pv, PACKAGES pkg
14249
                  WHERE pv.pkg_id = pkg.pkg_id
14250
                    AND pkg.pkg_name = pkgname
14251
                    AND pv.pkg_version = pkgversion;
14252
              EXCEPTION
14253
                 WHEN NO_DATA_FOUND
14254
                 THEN
14255
                    raise_application_error
14256
                                    (-20000,
14257
                                        'Dependency ['
14258
                                     || pkgname
14259
                                     || ' '
14260
                                     || pkgversion
14261
                                     || '] does not exist yet and cannot be used!'
14262
                                    );
14263
              END;
14264
 
14265
              -- Get Build Type (i.e. BuildPackageArchive or LinkPackageArchive)
14266
              IF pkgtype IS NULL
14267
              THEN
14268
                BEGIN
14269
                   pkgtype := cbuildtypes (pkgid || seperator || vext);
14270
 
14271
                   IF pkgtype IS NULL
14272
                   THEN
14273
                      -- Set build type to LinkPackageArchive by default
14274
                      pkgtype := 'L';
14275
                   END IF;
14276
                EXCEPTION
14277
                   WHEN NO_DATA_FOUND
14278
                   THEN
14279
                      pkgtype := 'L';
14280
                END;
14281
              END IF;
14282
 
14283
              -- Limit to known types
14284
              IF UPPER(pkgtype) like('B%') THEN
14285
                pkgtype := 'B';
14286
              ELSE
14287
                pkgtype := 'L';
14288
              END IF;  
14289
 
14290
              -- Insert Dependencies
14291
              update_package_dependency (pvid,
14292
                                         pkgname,
14293
                                         pkgversion,
14294
                                         pkgtype,
14295
                                         userid,
14296
 
14297
                                        );
14298
            END IF;
14299
         END LOOP;
14300
      END;
14301
   END;
14302
 
14303
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14304
   FUNCTION return_last_package_version (pkgname IN VARCHAR2, rtagid IN NUMBER)
14305
      RETURN VARCHAR2
1373 dpurdie 14306
   IS
3959 dpurdie 14307
      pkgversion   VARCHAR2 (4000);
1373 dpurdie 14308
   BEGIN
3959 dpurdie 14309
      BEGIN
14310
         SELECT pv.pkg_version
14311
           INTO pkgversion
14312
           FROM PACKAGES pkg, release_content rc, package_versions pv
14313
          WHERE pv.pv_id = rc.pv_id
14314
            AND pkg.pkg_id = pv.pkg_id
14315
            AND pkg.pkg_name = pkgname
14316
            AND rc.rtag_id = rtagid;
14317
 
14318
         RETURN pkgversion;
14319
      END;
1373 dpurdie 14320
   END;
14321
 
14322
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14323
   FUNCTION return_wip (pkgname IN VARCHAR2, rtagid IN NUMBER)
14324
      RETURN VARCHAR2
1373 dpurdie 14325
   IS
3959 dpurdie 14326
      pkgversion   VARCHAR2 (4000);
1373 dpurdie 14327
   BEGIN
3959 dpurdie 14328
      BEGIN
14329
         SELECT pv.pkg_version
14330
           INTO pkgversion
14331
           FROM PACKAGES pkg, work_in_progress wip, package_versions pv
14332
          WHERE pv.pv_id = wip.pv_id
14333
            AND pkg.pkg_id = pv.pkg_id
14334
            AND pkg.pkg_name = pkgname
14335
            AND wip.rtag_id = rtagid;
1373 dpurdie 14336
 
3959 dpurdie 14337
         IF pkgversion IS NULL
14338
         THEN
14339
            SELECT pv.pkg_version
14340
              INTO pkgversion
14341
              FROM PACKAGES pkg, planned pl, package_versions pv
14342
             WHERE pv.pv_id = pl.pv_id
14343
               AND pkg.pkg_id = pv.pkg_id
14344
               AND pkg.pkg_name = pkgname
14345
               AND pl.rtag_id = rtagid;
14346
         END IF;
14347
 
14348
         RETURN pkgversion;
14349
      END;
1373 dpurdie 14350
   END;
14351
 
14352
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14353
   PROCEDURE update_dash_board (rtagid IN NUMBER)
1373 dpurdie 14354
   IS
3959 dpurdie 14355
      projid       NUMBER;
14356
      projiddb     NUMBER;
14357
      total        NUMBER;
14358
      auto_total   NUMBER;
14359
      rtagiddb     NUMBER;
1373 dpurdie 14360
   BEGIN
3959 dpurdie 14361
      SELECT COUNT (*)
14362
        INTO total
14363
        FROM release_content rc, package_versions pv
14364
       WHERE pv.pv_id = rc.pv_id AND rc.rtag_id = rtagid;
1373 dpurdie 14365
 
3959 dpurdie 14366
      SELECT COUNT (*)
14367
        INTO auto_total
14368
        FROM release_content rc, package_versions pv
14369
       WHERE pv.pv_id = rc.pv_id
14370
         AND pv.is_autobuildable = 'Y'
14371
         AND rc.rtag_id = rtagid;
14372
 
14373
      BEGIN
14374
         SELECT rtag_id
14375
           INTO rtagiddb
14376
           FROM dash_board
14377
          WHERE rtag_id = rtagid;
14378
 
14379
         SELECT proj_id
14380
           INTO projiddb
14381
           FROM dash_board
14382
          WHERE rtag_id = rtagid;
14383
      EXCEPTION
14384
         WHEN NO_DATA_FOUND
14385
         THEN
14386
            rtagiddb := '';
14387
      END;
14388
 
14389
      IF rtagiddb IS NULL
1373 dpurdie 14390
      THEN
3959 dpurdie 14391
         SELECT proj_id
14392
           INTO projid
14393
           FROM release_tags
14394
          WHERE rtag_id = rtagid;
14395
 
14396
         INSERT INTO dash_board
14397
                     (proj_id, rtag_id, last_build_time, automated_packages,
14398
                      total_packages
14399
                     )
14400
              VALUES (projid, rtagid, ora_sysdatetime, auto_total,
14401
                      total
14402
                     );
14403
      ELSE
14404
         UPDATE dash_board
14405
            SET last_build_time = ora_sysdatetime,
14406
                automated_packages = auto_total,
14407
                total_packages = total
14408
          WHERE proj_id = projiddb AND rtag_id = rtagiddb;
1373 dpurdie 14409
      END IF;
14410
   END;
14411
 
14412
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14413
   FUNCTION exclude_from_build (
14414
      pvid          IN   NUMBER,
14415
      spkgversion   IN   VARCHAR2,
14416
      rtagid        IN   NUMBER,
14417
      username      IN   VARCHAR2
1373 dpurdie 14418
   )
3959 dpurdie 14419
      RETURN NUMBER
1373 dpurdie 14420
   IS
3959 dpurdie 14421
      userid              NUMBER;
14422
      outerrcode          NUMBER;
14423
      pkgid               NUMBER;
14424
 
14425
      CURSOR dnr_duplicate_cur
14426
      IS
14427
         SELECT *
14428
           FROM do_not_ripple
14429
          WHERE pv_id = pvid AND rtag_id = rtagid;
14430
 
14431
      dnr_duplicate_rec   dnr_duplicate_cur%ROWTYPE;
1373 dpurdie 14432
   BEGIN
3959 dpurdie 14433
      outerrcode := -1;       -- Set default return error code to ERROR state
14434
 
14435
      /*--------------- Business Rules Here -------------------*/
14436
      IF (rtagid IS NULL)
1373 dpurdie 14437
      THEN
3959 dpurdie 14438
         RETURN outerrcode;
14439
--         raise_application_error (-20000, 'RtagId must be supplied.');
14440
      END IF;
14441
 
14442
      IF (pvid IS NULL)
1373 dpurdie 14443
      THEN
3959 dpurdie 14444
         RETURN outerrcode;
14445
--         raise_application_error (-20000, 'PvId must be supplied.');
14446
      END IF;
14447
 
14448
      IF (username IS NULL)
1373 dpurdie 14449
      THEN
3959 dpurdie 14450
         RETURN outerrcode;
14451
--         raise_application_error (-20000, 'UserName must be supplied.');
14452
      END IF;
14453
 
14454
      -- Get user_id
14455
      BEGIN
14456
         SELECT usr.user_id
14457
           INTO userid
14458
           FROM users usr
14459
          WHERE UPPER (usr.user_name) = UPPER (username)
14460
            AND usr.is_disabled IS NULL;
14461
      EXCEPTION
14462
         WHEN NO_DATA_FOUND
14463
         THEN
14464
            RETURN outerrcode;
14465
--            raise_application_error (-20000,
14466
--                                        'UserName '
14467
--                                     || username
14468
--                                     || ' is not valid or disabled.'
14469
--                                    );
14470
      END;
14471
 
14472
      OPEN dnr_duplicate_cur;
14473
 
14474
      FETCH dnr_duplicate_cur
14475
       INTO dnr_duplicate_rec;
14476
 
14477
      IF dnr_duplicate_cur%FOUND
1373 dpurdie 14478
      THEN
3959 dpurdie 14479
         outerrcode := 0;
1373 dpurdie 14480
      END IF;
3959 dpurdie 14481
 
14482
      IF dnr_duplicate_cur%NOTFOUND
14483
      THEN
14484
         /* No duplicate recordset */
14485
         unripple_package (pvid, rtagid, userid);
14486
         outerrcode := 0;                            -- Set return to SUCCESS
14487
      END IF;
14488
 
14489
      CLOSE dnr_duplicate_cur;
14490
 
14491
      SELECT pkg_id
14492
        INTO pkgid
14493
        FROM package_versions
14494
       WHERE pv_id = pvid;
14495
 
14496
      DELETE FROM planned_versions
14497
            WHERE pkg_id = pkgid AND pkg_version = spkgversion;
14498
 
14499
      RETURN outerrcode;
1373 dpurdie 14500
   END;
14501
 
14502
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14503
   FUNCTION exclude_indirect_from_build (
14504
      pvid          IN   NUMBER,
14505
      spkgversion   IN   VARCHAR2,
14506
      rtagid        IN   NUMBER,
14507
      username      IN   VARCHAR2,
14508
      rootpvid      IN   NUMBER,
14509
      rootcause     IN   VARCHAR2,
14510
      rootfile      IN   VARCHAR2
1373 dpurdie 14511
   )
3959 dpurdie 14512
      RETURN NUMBER
1373 dpurdie 14513
   IS
3959 dpurdie 14514
      userid              NUMBER;
14515
      outerrcode          NUMBER;
14516
      pkgid               NUMBER;
14517
 
14518
      CURSOR dnr_duplicate_cur
14519
      IS
14520
         SELECT *
14521
           FROM do_not_ripple
14522
          WHERE pv_id = pvid AND rtag_id = rtagid;
14523
 
14524
      dnr_duplicate_rec   dnr_duplicate_cur%ROWTYPE;
1373 dpurdie 14525
   BEGIN
3959 dpurdie 14526
      outerrcode := -1;       -- Set default return error code to ERROR state
14527
 
14528
      /*--------------- Business Rules Here -------------------*/
14529
      IF (rtagid IS NULL)
1373 dpurdie 14530
      THEN
3959 dpurdie 14531
         RETURN outerrcode;
14532
--         raise_application_error (-20000, 'RtagId must be supplied.');
14533
      END IF;
14534
 
14535
      IF (pvid IS NULL)
1373 dpurdie 14536
      THEN
3959 dpurdie 14537
         RETURN outerrcode;
14538
--         raise_application_error (-20000, 'PvId must be supplied.');
14539
      END IF;
14540
 
14541
      IF (username IS NULL)
1373 dpurdie 14542
      THEN
3959 dpurdie 14543
         RETURN outerrcode;
14544
--         raise_application_error (-20000, 'UserName must be supplied.');
1373 dpurdie 14545
      END IF;
3959 dpurdie 14546
 
14547
      -- Get user_id
14548
      BEGIN
14549
         SELECT usr.user_id
14550
           INTO userid
14551
           FROM users usr
14552
          WHERE UPPER (usr.user_name) = UPPER (username)
14553
            AND usr.is_disabled IS NULL;
14554
      EXCEPTION
14555
         WHEN NO_DATA_FOUND
14556
         THEN
14557
            RETURN outerrcode;
14558
--            raise_application_error (-20000,
14559
--                                        'UserName '
14560
--                                     || username
14561
--                                     || ' is not valid or disabled.'
14562
--                                    );
14563
      END;
14564
 
14565
     /* No duplicate recordset */
14566
     unripple_package_indirect (pvid, rtagid, userid, rootpvid, rootcause, rootfile);
14567
     outerrcode := 0;                            -- Set return to SUCCESS
14568
 
14569
      SELECT pkg_id
14570
        INTO pkgid
14571
        FROM package_versions
14572
       WHERE pv_id = pvid;
14573
 
14574
      DELETE FROM planned_versions
14575
            WHERE pkg_id = pkgid AND pkg_version = spkgversion;
14576
 
14577
      RETURN outerrcode;
1373 dpurdie 14578
   END;
14579
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14580
   PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2)
1373 dpurdie 14581
   IS
14582
   BEGIN
3959 dpurdie 14583
      INSERT INTO abt_action_log
14584
                  (rcon_id, action_datetime, action
14585
                  )
14586
           VALUES (rconid, ora_sysdatetime, action
14587
                  );
1373 dpurdie 14588
   END;
14589
 
14590
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14591
   FUNCTION insert_package_metrics (
14592
      rtagid                   IN   NUMBER,
14593
      pkgname                  IN   VARCHAR2,
14594
      vext                     IN   VARCHAR2,
14595
      metricstring             IN   VARCHAR2
1373 dpurdie 14596
   )
3959 dpurdie 14597
      RETURN NUMBER
1373 dpurdie 14598
   IS
3959 dpurdie 14599
      citemcollection          relmgr_varchar2_tab_t  := relmgr_varchar2_tab_t ();
14600
      lv_pvid                  NUMBER                 := 0;
14601
      rownumber                NUMBER;
14602
      rowcontent               VARCHAR2(4000);
14603
      metricname               VARCHAR2(1000);
14604
      metricvalue              VARCHAR2(4000);
14605
      return_insert_error      NUMBER                 := -1;
14606
      return_insert_success    NUMBER                 := 0;
14607
 
14608
      /* Metrics */
14609
      lv_branches                 NUMBER;
14610
      lv_branchlist               VARCHAR2(4000);
14611
      lv_codefiles                NUMBER;
14612
      lv_ignoredfiles             NUMBER;
14613
      lv_directories              NUMBER;
14614
      lv_directorydepth           NUMBER;
14615
      lv_totalfiles               NUMBER;
14616
      lv_makefiles                NUMBER;
14617
      lv_blanklines               NUMBER;
14618
      lv_codelines                NUMBER;
14619
      lv_commentlines             NUMBER;
14620
 
1373 dpurdie 14621
   BEGIN
3959 dpurdie 14622
      /*--------------- Business Rules Here -------------------*/
14623
      IF (rtagid IS NULL)
14624
      THEN
14625
         RETURN return_insert_error;
14626
      END IF;
1373 dpurdie 14627
 
3959 dpurdie 14628
      IF (pkgname IS NULL)
14629
      THEN
14630
         RETURN return_insert_error;
14631
      END IF;
14632
 
14633
      IF (metricstring IS NULL)
14634
      THEN
14635
         RETURN return_insert_error;
14636
      END IF;
14637
 
14638
      BEGIN
14639
         SELECT pv.pv_id
14640
           INTO lv_pvid
14641
           FROM package_versions pv, packages pkg, release_content rc
14642
          WHERE pv.pkg_id = pkg.pkg_id
14643
            AND rc.rtag_id = rtagid
14644
            AND pv.pv_id = rc.pv_id
14645
            AND pkg.pkg_name = pkgname
14646
            AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
14647
      EXCEPTION
14648
           WHEN NO_DATA_FOUND
14649
           THEN
14650
                lv_pvid := 0;
14651
      END;
14652
 
14653
      citemcollection := in_list_varchar2 (metricstring, ';');
14654
 
14655
      FOR rownumber IN 1 .. citemcollection.COUNT
14656
      LOOP
14657
         rowcontent := citemcollection(rownumber);
14658
         metricvalue := SUBSTR(rowcontent, (INSTR(rowcontent, '=') + 1));
14659
         metricname := REGEXP_REPLACE(rowcontent, '=.*$', '');
14660
 
14661
         IF    metricname = 'ccbranch.count' THEN lv_branches := metricvalue;
14662
         ELSIF metricname = 'ccbranch.list' THEN lv_branchlist := metricvalue;
14663
         ELSIF metricname = 'code.files' THEN lv_codefiles := metricvalue;
14664
         ELSIF metricname = 'code.ignored' THEN lv_ignoredfiles := metricvalue;
14665
         ELSIF metricname = 'count.dir' THEN lv_directories := metricvalue;
14666
         ELSIF metricname = 'count.dirdepth' THEN lv_directorydepth := metricvalue;
14667
         ELSIF metricname = 'count.file' THEN lv_totalfiles := metricvalue;
14668
         ELSIF metricname = 'count.makefile' THEN lv_makefiles := metricvalue;
14669
         ELSIF metricname = 'lines.blank' THEN lv_blanklines := metricvalue;
14670
         ELSIF metricname = 'lines.code' THEN lv_codelines := metricvalue;
14671
         ELSIF metricname = 'lines.comment' THEN lv_commentlines := metricvalue;
14672
         END IF;
14673
      END LOOP;
14674
 
14675
      IF (lv_pvid > 0)
14676
      THEN
14677
         -- Delete any existing entries for this package version to makes sure our data is untainted
14678
         DELETE FROM package_metrics pm
14679
         WHERE pm.pv_id = lv_pvid;
14680
 
14681
         -- Insert the new data into the metrics table
14682
         INSERT INTO package_metrics
14683
                     (pv_id, branches, branch_list, code_files, ignored_files, directories, directory_depth,
14684
                      total_files, makefiles, blank_lines, code_lines, comment_lines, created_stamp
14685
                     )
14686
              VALUES (lv_pvid, lv_branches, lv_branchlist, lv_codefiles, lv_ignoredfiles, lv_directories, lv_directorydepth,
14687
                      lv_totalfiles, lv_makefiles, lv_blanklines, lv_codelines, lv_commentlines, ora_sysdatetime
14688
                     );
14689
 
14690
         -- Now update the Release_Metrics Table
14691
         update_release_metrics(rtagid);
14692
 
14693
         RETURN return_insert_success;
14694
      ELSE
14695
         RETURN return_insert_error;
14696
      END IF;
1373 dpurdie 14697
   END;
14698
 
14699
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14700
   PROCEDURE update_release_metrics (rtagid IN NUMBER)
1373 dpurdie 14701
   IS
3959 dpurdie 14702
      lv_totalpackages       NUMBER;
14703
      lv_autobuilt           NUMBER;
14704
      lv_linesofcode         NUMBER;
14705
      lv_unittested          NUMBER;
14706
      lv_autotested          NUMBER;
14707
      lv_numOfbranches       NUMBER;
14708
      lv_lastbuildtime       DATE;
1373 dpurdie 14709
   BEGIN
3959 dpurdie 14710
      IF (rtagid > 0)
14711
      THEN
14712
         -- Get the total number of packages in this release and the number of
14713
         -- those that are autobuilt
14714
         SELECT COUNT (DISTINCT rc.pv_id),
14715
                COUNT (DISTINCT autobuilt_qry.pv_id)
14716
           INTO lv_totalpackages, lv_autobuilt
14717
           FROM release_content rc,
14718
                package_versions pv,
14719
                (
14720
                 SELECT rc.pv_id
14721
                   FROM release_content rc,
14722
                        package_versions pv
14723
                  WHERE pv.is_autobuildable = 'Y'
14724
                    AND pv.pv_id = rc.pv_id
14725
                    AND rc.rtag_id = rtagid
14726
                ) autobuilt_qry
14727
          WHERE pv.pv_id = rc.pv_id
14728
            AND rc.rtag_id = rtagid
14729
            AND autobuilt_qry.pv_id (+) = rc.pv_id;
1373 dpurdie 14730
 
3959 dpurdie 14731
         -- Get the build time of the last package built in this release and the
14732
         -- total number of lines of code
14733
         SELECT MAX(pm.created_stamp),
14734
                SUM(pm.code_lines)
14735
           INTO lv_lastbuildtime, lv_linesofcode
14736
           FROM package_metrics pm, release_content rc
14737
          WHERE pm.pv_id = rc.pv_id
14738
            AND rc.rtag_id = rtagid;
14739
 
14740
         -- Get the number of packages with unit tests in this release and the
14741
         -- number of those that are autotested
14742
         SELECT COUNT(DISTINCT ut.pv_id) INTO lv_unittested
14743
           FROM unit_tests ut,
14744
                release_content rc
14745
          WHERE ut.pv_id = rc.pv_id
14746
            AND rc.rtag_id = rtagid
14747
        AND ut.test_types_fk != 1;
14748
 
14749
        SELECT COUNT(DISTINCT ut.pv_id) INTO lv_autotested
14750
          FROM unit_tests ut,
14751
               release_content rc
14752
         WHERE ut.pv_id = rc.pv_id
14753
           AND rc.rtag_id = rtagid
14754
           AND ut.test_types_fk = 7;
14755
 
14756
 
14757
         -- Count the number of unique branches in the packages in this release.
14758
--         SELECT COUNT(DISTINCT branch) INTO lv_numOfbranches
14759
--           FROM (
14760
--                SELECT pv_id,
14761
--                       regexp_substr(str, '[^,]+', 1, level) branch,
14762
--                       level lv,
14763
--                       lag(level, 1, 0) over (partition by pv_id order by level) lg
14764
--                  FROM (
14765
--                       SELECT pm.pv_id,
14766
--                              ','||pm.branch_list str
14767
--                         FROM package_metrics pm,
14768
--                              release_content rc
14769
--                        WHERE pm.pv_id = rc.pv_id
14770
--                          AND rc.rtag_id = rtagid
14771
--                       )
14772
--                CONNECT BY regexp_substr(str, '[^,]+', 1, LEVEL) IS NOT NULL
14773
--                )
14774
--          WHERE lv != lg;
14775
 
14776
         UPDATE release_metrics rm
14777
            SET rm.total_packages = lv_totalpackages,
14778
                rm.autobuilt = lv_autobuilt,
14779
                rm.lines_of_code = lv_linesofcode,
14780
                rm.unit_tested = lv_unittested,
14781
                rm.autotested = lv_autotested,
14782
--                rm.branches = lv_numOfbranches,
14783
                rm.last_build_time = lv_lastbuildtime
14784
          WHERE rtag_id = rtagid;
14785
 
14786
         IF (SQL%ROWCOUNT = 0)
14787
         THEN
14788
            INSERT INTO release_metrics
14789
                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
14790
                         autotested, last_build_time
14791
                        )
14792
                 VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,
14793
                         lv_autotested, lv_lastbuildtime
14794
                        );
14795
         END IF;
14796
--         IF (SQL%ROWCOUNT = 0)
14797
--         THEN
14798
--            INSERT INTO release_metrics
14799
--                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
14800
--                         autotested, branches, last_build_time
14801
--                        )
14802
--                 VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,
14803
--                         lv_autotested, lv_numOfbranches, lv_lastbuildtime
14804
--                        );
14805
--         END IF;
14806
--      ELSE
14807
--         raise_application_error (-20000, 'RtagId must be supplied.');
14808
      END IF;
1373 dpurdie 14809
   END;
14810
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 14811
   FUNCTION return_vcs_tag(pvid IN NUMBER) RETURN VARCHAR2
1373 dpurdie 14812
   IS
3959 dpurdie 14813
      vcstypeid    NUMBER;
14814
      vcstag       VARCHAR2(32);
14815
      label        VARCHAR2(60);
14816
      srcpath      VARCHAR2(2000);
14817
      vcstypeid_cc NUMBER;
14818
      vcstypeid_uc NUMBER;
1373 dpurdie 14819
   BEGIN
3959 dpurdie 14820
      -- Get the VCS_TYPE_ID for the ClearCase version control system. We do this so that we make no assumptions about
14821
      -- what the primary key value is for the ClearCase VCS entry.
14822
      BEGIN
14823
         SELECT vt.vcs_type_id
14824
         INTO vcstypeid_cc
14825
         FROM VCS_TYPE vt
14826
         WHERE vt.tag = 'CC';
14827
         EXCEPTION
14828
            WHEN NO_DATA_FOUND THEN
14829
               raise_application_error (-20000, 'Database is missing compulsory CC version control system tag!');
14830
      END;
1373 dpurdie 14831
 
3959 dpurdie 14832
      -- Get the VCS_TYPE_ID for the Uncontrolled version control system. We do this so that we make no assumptions about
14833
      -- what the primary key value is for the Uncontrolled VCS entry.
14834
      BEGIN
14835
         SELECT vt.vcs_type_id
14836
         INTO vcstypeid_uc
14837
         FROM VCS_TYPE vt
14838
         WHERE vt.tag = 'UC';
14839
         EXCEPTION
14840
            WHEN NO_DATA_FOUND THEN
14841
               raise_application_error (-20000, 'Database is missing compulsory UC version control system tag!');
14842
      END;
14843
 
14844
      -- Get the PKG_LABEL, SRC_PATH, VCS_TYPE_ID for the package version
14845
      -- As additional VCS types are introduced, we may have to extend what this SELECT statement returns
14846
      BEGIN
14847
         SELECT pv.pkg_label, pv.src_path,
14848
           (CASE WHEN pv.pkg_label = 'N/A' AND pv.vcs_type_id IS NULL THEN vcstypeid_uc
14849
                 WHEN pv.vcs_type_id IS NULL THEN vcstypeid_cc
14850
                 ELSE pv.vcs_type_id END) AS vcs_type_id
14851
         INTO label, srcpath, vcstypeid
14852
         FROM PACKAGE_VERSIONS pv
14853
         WHERE pv.pv_id = pvid;
14854
         EXCEPTION
14855
            WHEN NO_DATA_FOUND THEN
14856
               raise_application_error (-20000, 'Package Version Not Found!');
14857
      END;
14858
 
14859
      -- Get the VCS TAG for the VCS_TYPE_ID.
14860
      BEGIN
14861
         SELECT vt.tag
14862
         INTO vcstag
14863
         FROM VCS_TYPE vt
14864
         WHERE vt.vcs_type_id = vcstypeid;
14865
         EXCEPTION
14866
            WHEN NO_DATA_FOUND THEN
14867
               raise_application_error (-20000, 'Could not get VCS Tag for the package version!');
14868
      END;
14869
 
14870
      -- Return value depending upon which VCS Tag is being used.
14871
      -- As additional VCS types are introduced, we have to add additional WHEN clauses
14872
      CASE vcstag
14873
         WHEN 'CC' THEN
14874
            RETURN vcstag || '::' || srcpath || '::' || label;
14875
         WHEN 'SVN' THEN
14876
            RETURN vcstag || '::' || srcpath || '::' || label;
14877
         ELSE
14878
            RETURN vcstag || '::';
14879
      END CASE;
14880
 
1373 dpurdie 14881
   END;
3959 dpurdie 14882
/*-------------------------------------------------------------------------------------------------------*/
1373 dpurdie 14883
 
3959 dpurdie 14884
/*-------------------------------------------------------------------------------------------------------
14885
Name:        update_vcs_details
14886
Description: Updates the Version Control System (vcs) details specified in the vcstag
14887
             parameter for the specified package version.
14888
             The specified package vcstag is parsed and split into 3 fields:
14889
                vcs type, src path, label
14890
             These fields are then stored for the specified pv_id in the package_versions, table.
14891
             An action is recorded in the action log and provides information for tracking and
14892
             for restoring the previous vcs settings if a recovery is required.
14893
Paramters:
14894
             ipv_id:     Package version identifier
14895
             vcstag:     Full version control tag.
14896
                         Examples:
14897
                             "SVN::AUPERASVN01/DPG_SWBase/tools/trunk::daf_tools_25.1.7027.cr@1234"
14898
                            "CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr"
14899
             user_id:    Identifier of the user that is performing this function.
14900
*/
14901
PROCEDURE update_vcs_details(ipv_id IN NUMBER, vcstag IN VARCHAR2, user_id IN NUMBER)
1373 dpurdie 14902
   IS
3959 dpurdie 14903
      ivcs_type_id   NUMBER;
14904
      svcs_type      VARCHAR2(128);
14905
      ssrc_path      VARCHAR2(512);
14906
      spkg_label     VARCHAR2(512);
14907
      spattern       VARCHAR2(64);
14908
      saction_desc   VARCHAR2(2048);
14909
      old_vcs_type   VARCHAR2(128);
14910
      old_src_path   VARCHAR2(512);
14911
      old_pkg_label  VARCHAR2(512);
14912
      old_pkg_vcstag VARCHAR2(1024);
14913
      i              NUMBER;
14914
      vcount         NUMBER;
1373 dpurdie 14915
   BEGIN
3959 dpurdie 14916
     -- Split vcs tag into fields: vcs type, src path, label
14917
     -- Fields are separated by '::'
14918
     -- e.g "CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr"
14919
     -- The below regular expression pattern has groups to achieve this.
1373 dpurdie 14920
 
3959 dpurdie 14921
     spattern:= '^([^:]*)::([^:]*)(::(.*))?$';
14922
 
14923
     --As Oracle 10g does not allow REGEXP_SUBSTR to return a group,
14924
     --REGEXP_REPLACE is used instead (Note: Oracle 11g has this enhancement).
14925
     SELECT REGEXP_REPLACE(vcstag,spattern, '\1') INTO svcs_type  FROM DUAL;
14926
     SELECT REGEXP_REPLACE(vcstag,spattern, '\2') INTO ssrc_path  FROM DUAL;
14927
     SELECT REGEXP_REPLACE(vcstag,spattern, '\4') INTO spkg_label FROM DUAL;
14928
 
14929
     -- Validate vcs type
14930
     BEGIN
14931
       SELECT vc.vcs_type_id INTO ivcs_type_id FROM vcs_type vc WHERE UPPER(svcs_type) = UPPER(vc.tag);
14932
     EXCEPTION
14933
       WHEN NO_DATA_FOUND THEN
14934
         raise_application_error (-20000, 'Invalid vcs type: ' || '"' || svcs_type || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
14935
       --RAISE;
14936
     END;
14937
 
14938
     -- If Clearcase
14939
     IF (ivcs_type_id = 2) THEN
14940
       -- Validate source path
14941
       IF NOT REGEXP_LIKE(ssrc_path,'^(\\|\/)[a-z]+[0-9a-z_\.\-\\\/ -]*$','i') THEN
14942
         raise_application_error (-20000, 'Invalid CC src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
14943
       END IF;
14944
 
14945
       -- Validate label
14946
       -- For clearcase the label must be specified. For subversion it is not required.
14947
       IF NOT REGEXP_LIKE(spkg_label,'^[0-9a-z_\.\-]+$','i') THEN
14948
         raise_application_error (-20000, 'Invalid CC label:' || '"' || spkg_label || '"' || ' for package version:' || ipv_id || ', vcstag:' || '"' || vcstag || '"');
14949
       END IF;
14950
 
14951
     -- if Subversion
14952
     ELSIF (ivcs_type_id = 23) THEN
14953
       -- general validity
14954
       -- Not as picky as the RM Data entry
14955
       IF NOT REGEXP_LIKE(ssrc_path,'^([0-9a-z_\.\-]+)(\/([0-9a-z_\.\-]+))+$','i') THEN
14956
         raise_application_error (-20000, 'Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
14957
       END IF;
14958
 
14959
       -- Validate Tag
14960
       -- May be a Peg or a Label
14961
       IF NOT REGEXP_LIKE(spkg_label,'^@?[0-9]+$','i') THEN
14962
           IF NOT REGEXP_LIKE(spkg_label,'^[0-9a-z_\.\-]+($|@[0-9]+)','i') THEN
14963
             raise_application_error (-20000, 'Invalid SVN tag:' || '"' || spkg_label || '"' || ' for package version:' || ipv_id || ', vcstag:' || '"' || vcstag || '"');
14964
           END IF;
14965
       END IF;
14966
 
14967
        -- Check for suitable ending
14968
        IF NOT REGEXP_LIKE(ssrc_path,'(\/tags$)|(\/branches\/)|(\/trunk$)','i') THEN
14969
            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 || '"');
14970
        END IF;
14971
 
14972
       -- Check for combined use of tags, branches, trunk or repeats of each
14973
       -- Count occurrences of /tags or /branches/ or /trunk
14974
       vcount:=0;
14975
       i:=1;
14976
       WHILE i > 0 LOOP
14977
         i:=REGEXP_INSTR(ssrc_path,'(\/tags(\/|$))|(\/branches(\/|$))|(\/trunk(\/|$))',i,1,1,'i');
14978
         IF i > 0 THEN
14979
           -- if found then increment count
14980
           vcount:=vcount+1;
14981
           i:=i-1;  -- move index back to "/"
14982
         END IF;
14983
       END LOOP;
14984
 
14985
       IF vcount = 0  THEN
14986
         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 || '"');
14987
       END IF;
14988
 
14989
       IF vcount > 1  THEN
14990
         raise_application_error (-20000, 'Combined use of /trunk, /tags, or /branches/. Invalid SVN src path: ' || '"' || ssrc_path || '"' || ' for package version: ' || ipv_id || ', vcstag: ' || '"' || vcstag || '"');
14991
       END IF;
14992
 
14993
 
14994
     END IF;
14995
 
14996
     BEGIN
14997
       -- Get current vcs tag for specified package version
14998
       SELECT pv.src_path, pv.pkg_label, vc.tag as vcs_type
14999
       INTO old_src_path, old_pkg_label, old_vcs_type
15000
       FROM package_versions pv, vcs_type vc
15001
       WHERE pv.pv_id = ipv_id
15002
       AND pv.vcs_type_id = vc.vcs_type_id (+);
15003
 
15004
     EXCEPTION
15005
       WHEN NO_DATA_FOUND THEN
15006
         raise_application_error (-20000, 'Package version not found: ' || ipv_id);
15007
     END;
15008
 
15009
     old_pkg_vcstag:= old_vcs_type || '::' || old_src_path;
15010
     IF (old_pkg_label IS NOT NULL) THEN
15011
       old_pkg_vcstag:=old_pkg_vcstag || '::' || old_pkg_label;
15012
     END IF;
15013
 
15014
     -- Create action description
15015
     -- This description will contain the old and new tags.
15016
     -- Its purpose is to provide information for tracking and for restoring previous vcs settings if a recovery is required.
15017
     -- An example of the action description is below:
15018
     --   OldTag:CC::/DPG_SWBase/tools::daf_tools_25.1.7016.cr NewTag:SVN::DPG_SWBase/tools/tags/daf_tools_25.1.7027.cr
15019
     saction_desc:='OldTag:' || old_pkg_vcstag || ' ' || 'NewTag:' || vcstag;
15020
 
15021
     -- Store new vcs details
15022
     UPDATE package_versions SET
15023
       src_path = ssrc_path,
15024
       pkg_label = spkg_label,
15025
       vcs_type_id = ivcs_type_id
15026
     WHERE
15027
       pv_id = ipv_id;
15028
 
15029
     -- Store action in action log so that we can back track and also restore vcs settings if required.
15030
     log_action (ipv_id,'VcsConversion',user_id,saction_desc);
15031
 
15032
   END update_vcs_details;
15033
 
15034
/*-------------------------------------------------------------------------------------------------------
15035
Name:        isSVN
15036
Description: Determine if any of the packages versions are controlled under SVN
15037
			 Intended to be used to prevent users from releasing a package
15038
			 that has been migrated to SVN
15039
 
15040
Paramters:	pkgid:     Package ID
15041
 
15042
Returns:	Number of versions under SVN version control
15043
*/
6031 dpurdie 15044
 
3959 dpurdie 15045
FUNCTION isSVN( pkgid IN NUMBER )
15046
    RETURN NUMBER
15047
    IS
15048
    svncount   NUMBER  := 0;
15049
   BEGIN
15050
        SELECT COUNT(*) INTO svncount FROM PACKAGE_VERSIONS pv WHERE pv.PKG_ID = pkgid AND pv.VCS_TYPE_ID = 23;
15051
        RETURN (svncount);
1373 dpurdie 15052
   END;
6031 dpurdie 15053
 
3959 dpurdie 15054
/*-------------------------------------------------------------------------------------------------------
15055
Name:        isSVNbyName
15056
Description: Determine if any of the packages versions are controlled under SVN
15057
			 Intended to be used to prevent users from releasing a package
15058
			 that has been migrated to SVN
15059
 
15060
Paramters:	pkgname:	Package Name
15061
 
15062
Returns:	Number of versions under SVN version control
15063
*/
15064
 
6031 dpurdie 15065
FUNCTION isSVNbyName( pkgname IN VARCHAR2 )
3959 dpurdie 15066
    RETURN NUMBER
15067
IS
15068
   svncount   NUMBER  := 0;
15069
   BEGIN
15070
        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;
15071
        RETURN (svncount);
15072
   END;
5172 dpurdie 15073
/*-------------------------------------------------------------------------------------------------------
15074
Name:        new_build_instance
15075
Description: Create a new entry in the BUILD_INSTANCE table
15076
             The BUILD_ID will be allocated.
15077
             The timestamp will be created
15078
 
15079
Paramters:	rtag_id:	Release ID - must exist
15080
            pv_id:    Package ID - must exist
15081
            reason:   Reason code for the build
15082
 
15083
Returns:	BUILD_ID for the new entry
15084
          Returns -1 on error, PV_ID or RTAG_ID do not exist
6031 dpurdie 15085
*/
15086
FUNCTION new_build_instance( rtag_id IN NUMBER, pv_id IN NUMBER , reason IN CHAR)
15087
  RETURN NUMBER
5172 dpurdie 15088
  IS
15089
    build_id NUMBER := 0;
15090
  BEGIN
15091
    INSERT into BUILD_INSTANCES (RTAG_ID, PV_ID, REASON)
15092
    values( rtag_id, pv_id, reason)
15093
    returning BUILD_ID into build_id;
15094
    return build_id;
15095
  EXCEPTION
15096
    WHEN OTHERS THEN
15097
      return -1;
15098
  END;
6031 dpurdie 15099
 
5172 dpurdie 15100
/*-------------------------------------------------------------------------------------------------------
15101
Name: update_build_instance
15102
Description: Update fields in an existing build instance
15103
Returns: -1 on error
15104
*/
15105
FUNCTION update_build_instance(
15106
    nbuild_id IN NUMBER,
15107
    npv_id    IN NUMBER DEFAULT NULL,
15108
    nstate    IN CHAR DEFAULT NULL )
15109
  RETURN NUMBER
15110
IS
15111
BEGIN
15112
  IF ( npv_id IS NOT NULL AND npv_id > 0 ) THEN
15113
    UPDATE BUILD_INSTANCES SET PV_ID = npv_id WHERE BUILD_ID = nbuild_id;
15114
    IF SQL%NOTFOUND THEN
15115
      RETURN -2;
15116
    END IF;
15117
  END IF;
6031 dpurdie 15118
 
5172 dpurdie 15119
  IF ( nstate        IS NOT NULL ) THEN
15120
    IF (LENGTH(nstate) = 1 ) THEN
15121
      UPDATE BUILD_INSTANCES SET STATE = nstate WHERE BUILD_ID = nbuild_id;
15122
        IF SQL%NOTFOUND THEN
15123
          RETURN -3;
15124
        END IF;
15125
    ELSE
15126
      RETURN -4;
15127
    END IF;
15128
  END IF;
6031 dpurdie 15129
 
5172 dpurdie 15130
  RETURN 1;
15131
  EXCEPTION
15132
    WHEN OTHERS THEN
15133
      RETURN -1;
15134
  END;
15135
 
15136
/*-------------------------------------------------------------------------------------------------------
15137
Name:        insert_test_run
15138
Description: Insert data into the test_run table
15139
 
6031 dpurdie 15140
 
5172 dpurdie 15141
Paramters:	See below
15142
 
15143
Returns:	1 on success
15144
          Returns -1 on error
6031 dpurdie 15145
*/
15146
  FUNCTION insert_test_run(
15147
      build_id  IN NUMBER,
15148
      name      IN VARCHAR2,
15149
      outcome   IN VARCHAR2,
15150
      platform  IN VARCHAR2,
15151
      stype     IN VARCHAR2,
15152
      duration  IN NUMBER default null,
5172 dpurdie 15153
      message   IN CLOB default null
15154
      ) return NUMBER
15155
IS
15156
  sName VARCHAR2(1000) := name;
15157
  sNameLen NUMBER;
6031 dpurdie 15158
 
5172 dpurdie 15159
BEGIN
15160
  sNameLen := LENGTH(sName);
5384 dpurdie 15161
  IF sNameLen >= 199 Then
6031 dpurdie 15162
    sName := '...' || SUBSTR(sName, sNameLen - 196);
5172 dpurdie 15163
  END IF;
15164
 
15165
  INSERT into TEST_RUN
15166
    (BUILD_ID, TEST_NAME, TEST_OUTCOME, TIME_TAKEN,FAIL_MESSAGE,PLATFORM, TYPE)
15167
    VALUES(build_id,sName,outcome, duration, message, platform, stype);
15168
    return 1;
15169
  EXCEPTION
15170
    WHEN OTHERS THEN
15171
      return -1;
15172
 
15173
END;
6031 dpurdie 15174
 
3959 dpurdie 15175
   END;
4040 dpurdie 15176
 
1374 dpurdie 15177
/
5892 dpurdie 15178
 
6031 dpurdie 15179
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "RM_READONLY";
15180
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "MS_READONLY";
5892 dpurdie 15181
  GRANT EXECUTE ON "RELEASE_MANAGER"."PK_RMAPI" TO "DM_READONLY";
4040 dpurdie 15182
--------------------------------------------------------
15183
--  DDL for Package Body PK_WORK_IN_PROGRESS
15184
--------------------------------------------------------
15185
 
5172 dpurdie 15186
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."PK_WORK_IN_PROGRESS" IS
1373 dpurdie 15187
 
15188
/*
15189
------------------------------
15190
||  Last Modified:  S.Vukovic
3959 dpurdie 15191
||  Modified Date:  2/May/2005
1373 dpurdie 15192
||  Body Version:   1.0
15193
------------------------------
15194
*/
15195
 
15196
 
15197
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 15198
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 15199
 
3959 dpurdie 15200
	oldPvId NUMBER;
15201
	ReleaseLocation VARCHAR2(4000);
15202
	sLocation VARCHAR2(4000) := NULL;
1373 dpurdie 15203
 
3959 dpurdie 15204
 
1373 dpurdie 15205
BEGIN
15206
	/*--------------- Business Rules Here -------------------*/
3959 dpurdie 15207
	/*-------------------------------------------------------*/
1373 dpurdie 15208
 
3959 dpurdie 15209
	BEGIN
5384 dpurdie 15210
		-- Check if Exists in "Work in progress" anywhere in the world in a non-closed Release
3959 dpurdie 15211
		SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME  INTO sLocation
15212
		  FROM WORK_IN_PROGRESS wip,
15213
		  	   RELEASE_TAGS rt,
15214
			   PROJECTS proj
15215
		 WHERE wip.PV_ID = newPvId
15216
		   AND wip.RTAG_ID = rt.RTAG_ID
5384 dpurdie 15217
		   AND rt.OFFICIAL in ('N','R','C')
3959 dpurdie 15218
		   AND rt.PROJ_ID = proj.PROJ_ID;
1373 dpurdie 15219
 
3959 dpurdie 15220
		EXCEPTION
15221
	    	WHEN NO_DATA_FOUND THEN
15222
	       		sLocation := NULL;
1373 dpurdie 15223
 
6031 dpurdie 15224
	END;
1373 dpurdie 15225
 
15226
 
6031 dpurdie 15227
 
3959 dpurdie 15228
	IF (sLocation IS NULL)  THEN
1373 dpurdie 15229
 
3959 dpurdie 15230
		-- Add to "Work in progress"
15231
		INSERT INTO WORK_IN_PROGRESS ( RTAG_ID, PV_ID, VIEW_ID )
15232
		VALUES( RtagId, newPvId, ViewId );
15233
 
15234
 
15235
	    /* LOG ACTION */
15236
		SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
15237
		  FROM PROJECTS proj,
15238
		  	   RELEASE_TAGS rt
15239
		 WHERE rt.PROJ_ID = proj.PROJ_ID
15240
		   AND rt.RTAG_ID = RtagId;
15241
 
15242
		Log_Action ( newPvId, 'work_in_progress', UserId, 'Location: '|| ReleaseLocation );
15243
 
15244
	ELSE
6031 dpurdie 15245
 
3959 dpurdie 15246
		RAISE_APPLICATION_ERROR (-20000, 'This version is already in Work-In-Progress Area at '|| sLocation ||'.' );
6031 dpurdie 15247
 
1373 dpurdie 15248
	END IF;
15249
 
3959 dpurdie 15250
END;
15251
/*-------------------------------------------------------------------------------------------------------*/
15252
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 15253
 
3959 dpurdie 15254
	ReleaseLocation VARCHAR2(4000);
1373 dpurdie 15255
 
3959 dpurdie 15256
BEGIN
15257
 
15258
	/*--------------- Business Rules Here -------------------*/
1373 dpurdie 15259
	/*-------------------------------------------------------*/
15260
 
15261
 
3959 dpurdie 15262
	-- Get release location for logging pusposes
15263
	SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
15264
	  FROM PROJECTS proj,
15265
	  	   RELEASE_TAGS rt
15266
	 WHERE rt.PROJ_ID = proj.PROJ_ID
15267
	   AND rt.RTAG_ID = RtagId;
1373 dpurdie 15268
 
6031 dpurdie 15269
    -- Ensure that package is not marked as Pending/Rejected any more
15270
    UPDATE package_versions
15271
       SET DLOCKED  = 'N'
15272
     WHERE PV_ID  = PvId
15273
       AND DLOCKED != 'Y';
1373 dpurdie 15274
 
3959 dpurdie 15275
	-- Delete from Work In Progress
15276
	DELETE
15277
	  FROM WORK_IN_PROGRESS wip
15278
	 WHERE wip.RTAG_ID = RtagId
15279
	   AND wip.PV_ID = PvId;
1373 dpurdie 15280
 
3959 dpurdie 15281
	Log_Action ( PvId, 'delete_from_wip', UserId, 'Location: '|| ReleaseLocation );
1373 dpurdie 15282
 
3959 dpurdie 15283
 
15284
 
15285
 
1373 dpurdie 15286
END;
15287
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 15288
PROCEDURE REMOVE_PACKAGE_BULK ( PvIdList IN VARCHAR2, RtagId IN NUMBER, UserId IN NUMBER ) IS
1373 dpurdie 15289
 
3959 dpurdie 15290
	nIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
15291
	ReleaseLocation VARCHAR2(4000);
15292
	PvId NUMBER;
1373 dpurdie 15293
 
15294
BEGIN
3959 dpurdie 15295
 
1373 dpurdie 15296
	/*--------------- Business Rules Here -------------------*/
3959 dpurdie 15297
	IF (PvIdList IS NULL)
15298
	THEN
15299
		RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
15300
	END IF;
1373 dpurdie 15301
	/*-------------------------------------------------------*/
15302
 
15303
 
3959 dpurdie 15304
	nIdCollector := IN_LIST_NUMBER ( PvIdList );
1373 dpurdie 15305
 
15306
 
3959 dpurdie 15307
	-- Get release location for logging pusposes
15308
	SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
15309
	  FROM PROJECTS proj,
15310
	  	   RELEASE_TAGS rt
15311
	 WHERE rt.PROJ_ID = proj.PROJ_ID
15312
	   AND rt.RTAG_ID = RtagId;
1373 dpurdie 15313
 
3959 dpurdie 15314
 
15315
	FOR i IN 1..nIdCollector.COUNT
15316
	LOOP
15317
		PvId := nIdCollector(i);
15318
 
15319
		-- Delete from Work In Progress
15320
		DELETE
15321
		  FROM WORK_IN_PROGRESS wip
15322
		 WHERE wip.RTAG_ID = RtagId
15323
		   AND wip.PV_ID = PvId;
15324
 
15325
		Log_Action ( PvId, 'remove_from_work_in_progress', UserId, 'Location: '|| ReleaseLocation );
15326
 
15327
	END LOOP;
15328
 
15329
 
1373 dpurdie 15330
END;
15331
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 15332
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
15333
 
15334
	ReturnValue NUMBER;
15335
 
1373 dpurdie 15336
BEGIN
3959 dpurdie 15337
	SELECT wip.VIEW_ID INTO ReturnValue
15338
	  FROM WORK_IN_PROGRESS wip
15339
	 WHERE wip.RTAG_ID = RtagId
15340
	   AND wip.PV_ID = PvId;
1373 dpurdie 15341
 
3959 dpurdie 15342
	RETURN ReturnValue;
1373 dpurdie 15343
END;
15344
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 15345
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
15346
 
15347
	IsBaseView CHAR(1);
6031 dpurdie 15348
 
1373 dpurdie 15349
BEGIN
15350
 
3959 dpurdie 15351
	-- Check if the view is BASE VIEW
15352
	SELECT vi.BASE_VIEW INTO IsBaseView
15353
	  FROM VIEWS vi
15354
	 WHERE vi.VIEW_ID = ViewId;
6031 dpurdie 15355
 
15356
	IF (IsBaseView IN ('Y', 'S')) THEN
3959 dpurdie 15357
		-- Get Base view content
15358
		OPEN RecordSet FOR
15359
		SELECT 0 AS PKG_STATE,
15360
			   NULL AS DEPRECATED_STATE,
6031 dpurdie 15361
			   pv.pv_id,
15362
			   pkg.pkg_name,
15363
			   pv.pkg_version,
15364
			   pv.dlocked,
3959 dpurdie 15365
			   pv.pv_description,
15366
			   pv.BUILD_TYPE
15367
		  FROM WORK_IN_PROGRESS rel,
15368
		       packages pkg,
15369
		       package_versions pv
15370
		 WHERE pv.pkg_id = pkg.pkg_id
15371
		   AND rel.pv_id = pv.pv_id
15372
		   AND rel.VIEW_ID = ViewId
15373
		   AND rel.RTAG_ID = RtagId
15374
		 ORDER BY UPPER(pkg.PKG_NAME);
1373 dpurdie 15375
 
6031 dpurdie 15376
 
15377
	ELSE
15378
 
3959 dpurdie 15379
	 	-- Get non base view content
15380
		OPEN RecordSet FOR
15381
		SELECT 0 AS PKG_STATE,
15382
			   NULL AS DEPRECATED_STATE,
6031 dpurdie 15383
			   pv.pv_id,
15384
			   pkg.pkg_name,
15385
			   pv.pkg_version,
15386
			   pv.dlocked,
3959 dpurdie 15387
			   pv.pv_description,
15388
			   pv.BUILD_TYPE
15389
		  FROM WORK_IN_PROGRESS rel,
15390
		       packages pkg,
15391
		       package_versions pv,
15392
			   VIEW_DEF vd
15393
		 WHERE pv.pkg_id = pkg.pkg_id
15394
		   AND rel.pv_id = pv.pv_id
15395
		   AND vd.VIEW_ID = ViewId
15396
		   AND vd.PKG_ID = pv.PKG_ID
15397
		   AND rel.RTAG_ID = RtagId
15398
		 ORDER BY UPPER(pkg.PKG_NAME);
15399
 
6031 dpurdie 15400
 
15401
	END IF;
15402
 
15403
 
1373 dpurdie 15404
END;
15405
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 15406
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
6031 dpurdie 15407
 
1373 dpurdie 15408
BEGIN
6031 dpurdie 15409
 
3959 dpurdie 15410
	UPDATE WORK_IN_PROGRESS wip SET
15411
	wip.VIEW_ID = NewViewId
15412
	WHERE wip.PV_ID = PvId
15413
	  AND wip.RTAG_ID = RtagId;
6031 dpurdie 15414
 
1373 dpurdie 15415
END;
15416
/*-------------------------------------------------------------------------------------------------------*/
3959 dpurdie 15417
END PK_WORK_IN_PROGRESS;
4040 dpurdie 15418
 
3959 dpurdie 15419
/
4040 dpurdie 15420
--------------------------------------------------------
15421
--  DDL for Package Body RM_ISSUES
15422
--------------------------------------------------------
15423
 
5172 dpurdie 15424
  CREATE OR REPLACE PACKAGE BODY "RELEASE_MANAGER"."RM_ISSUES" AS
1373 dpurdie 15425
 
3959 dpurdie 15426
-- Private Implementation -----------------------------------------------------
1373 dpurdie 15427
 
15428
 
3959 dpurdie 15429
	FUNCTION VerIsGrtrThanOrEqlToStart( XXstart IN NUMBER, XX IN NUMBER, YYstart IN NUMBER, YY IN NUMBER, ZZstart IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER
15430
	AS
1373 dpurdie 15431
 
3959 dpurdie 15432
	BEGIN
15433
		-- start boundary case
15434
		IF ( XXstart < XX ) THEN
15435
			RETURN 1;
1373 dpurdie 15436
 
3959 dpurdie 15437
		ELSIF ( XXstart = XX ) THEN
1373 dpurdie 15438
 
3959 dpurdie 15439
			-- need to consider YY
15440
			IF ( YYstart < YY ) THEN
15441
				RETURN 1;
1373 dpurdie 15442
 
3959 dpurdie 15443
			ELSIF ( YYstart = YY ) THEN
1373 dpurdie 15444
 
3959 dpurdie 15445
					-- need to consider ZZ
15446
					IF ( ZZstart <= ZZ ) THEN
15447
						RETURN 1;
15448
 
15449
					ELSE
15450
						RETURN 0;
15451
					END IF;
15452
 
15453
			ELSE
15454
				RETURN 0;
15455
			END IF;
15456
		ELSE
15457
			RETURN 0;
15458
		END IF;
15459
	EXCEPTION
15460
		WHEN OTHERS THEN
15461
			RETURN -1;
15462
	END;
15463
 
15464
 
15465
	FUNCTION VerIsLessThanOrEqlToEnd( XXend IN NUMBER, XX IN NUMBER, YYend IN NUMBER, YY IN NUMBER, ZZend IN NUMBER, ZZ IN NUMBER ) RETURN NUMBER
15466
	AS
15467
 
15468
	BEGIN
15469
		-- end boundary case
15470
		IF ( XX < XXend ) THEN
15471
			RETURN 1;
15472
 
15473
		ELSIF ( XX = XXend ) THEN
15474
 
15475
			-- need to consider YY
15476
			IF ( YY < YYend ) THEN
15477
				RETURN 1;
15478
 
15479
			ELSIF ( YY = YYend ) THEN
15480
 
15481
					-- need to consider ZZ
15482
					IF ( ZZ <= ZZend ) THEN
15483
						RETURN 1;
15484
 
15485
					ELSE
15486
						RETURN 0;
15487
					END IF;
15488
			ELSE
15489
 
15490
				RETURN 0;
15491
			END IF;
15492
		ELSE
15493
			RETURN 0;
15494
		END IF;
15495
	EXCEPTION
15496
		WHEN OTHERS THEN
15497
			RETURN -1;
15498
	END;
15499
 
15500
	/*
15501
	-	version format:		XX.YY.ZZ.abc
15502
	*/
15503
	FUNCTION VersionIsBetween( version IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR ) RETURN NUMBER
15504
	AS
15505
		XXstart		NUMBER	:=	0;
15506
		XXend		NUMBER	:=	0;
15507
		XX			NUMBER	:=	0;
15508
		YYstart		NUMBER	:=	0;
15509
		YYend		NUMBER	:=	0;
15510
		YY			NUMBER	:=	0;
15511
		ZZstart		NUMBER	:=	0;
15512
		ZZend		NUMBER	:=	0;
15513
		ZZ			NUMBER	:=	0;
15514
		first_dot	NUMBER	:=	0;
15515
		second_dot	NUMBER	:=	0;
15516
		third_dot	NUMBER	:=	0;
15517
 
15518
		ProjExtstart	VARCHAR2(10);
15519
		ProjExtend		VARCHAR2(10);
15520
		ProjExt			VARCHAR2(10);
15521
 
15522
	BEGIN
15523
		-- strip the version number
15524
		first_dot :=  INSTR(version_start, '.', 1, 1);
15525
		second_dot :=  INSTR(version_start, '.', 1, 2);
15526
		third_dot :=  INSTR(version_start, '.', 1, 3);
15527
 
15528
		XXstart := TO_NUMBER( SUBSTR( version_start, 1, first_dot - 1 ) );
15529
		YYstart := TO_NUMBER( SUBSTR( version_start, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
15530
		ZZstart := TO_NUMBER( SUBSTR( version_start, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
15531
		ProjExtstart := SUBSTR( version_start, third_dot + 1, LENGTH(version_start) - third_dot );
15532
 
15533
		first_dot :=  INSTR(version_end, '.', 1, 1);
15534
		second_dot :=  INSTR(version_end, '.', 1, 2);
15535
		third_dot :=  INSTR(version_end, '.', 1, 3);
15536
 
15537
		XXend := TO_NUMBER( SUBSTR( version_end, 1, first_dot - 1 ) );
15538
		YYend := TO_NUMBER( SUBSTR( version_end, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
15539
		ZZend := TO_NUMBER( SUBSTR( version_end, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
15540
		ProjExtend := SUBSTR( version_end, third_dot + 1, LENGTH(version_end) - third_dot );
15541
 
15542
		first_dot :=  INSTR(version, '.', 1, 1);
15543
		second_dot :=  INSTR(version, '.', 1, 2);
15544
		third_dot :=  INSTR(version, '.', 1, 3);
15545
 
15546
		XX := TO_NUMBER( SUBSTR( version, 1, first_dot - 1 ) );
15547
		YY := TO_NUMBER( SUBSTR( version, first_dot + 1, second_dot - ( first_dot + 1 ) ) );
15548
		ZZ := TO_NUMBER( SUBSTR( version, second_dot + 1, third_dot - ( second_dot + 1 ) ) );
15549
		ProjExt := SUBSTR( version, third_dot + 1, LENGTH(version) - third_dot );
15550
 
15551
		-- only include versions if all project extensions are the same
15552
		IF ( ProjExtstart = ProjExt AND ProjExt = ProjExtend ) THEN
15553
 
15554
			IF ( VerIsGrtrThanOrEqlToStart( XXstart, XX, YYstart, YY, ZZstart, ZZ ) = 1 AND VerIsLessThanOrEqlToEnd( XXend, XX, YYend, YY, ZZend, ZZ ) = 1 ) THEN
15555
				RETURN 1;
15556
			ELSE
15557
				RETURN 0;
15558
			END IF;
15559
		ELSE
15560
			RETURN 0;
15561
		END IF;
15562
 
15563
	EXCEPTION
15564
		WHEN OTHERS THEN
15565
			RETURN -1;
15566
	END;
15567
 
15568
	FUNCTION GetPkgId( pkgName IN VARCHAR2 ) RETURN NUMBER
15569
	AS
15570
	    pkg_id NUMBER;
15571
	BEGIN
15572
		SELECT
15573
			p.PKG_ID
15574
		INTO
15575
			pkg_id
15576
		FROM
15577
			PACKAGES p
15578
		WHERE
15579
			p.PKG_NAME = pkgName;
15580
 
15581
		RETURN pkg_id;
15582
	EXCEPTION
15583
	    WHEN OTHERS THEN
15584
			dbms_output.put_line('GetPkgId exception: ' || SQLERRM );
15585
			RETURN -1;
15586
	END;
15587
 
15588
 
15589
-- Public Implementation ------------------------------------------------------
15590
 
15591
	/*
15592
	-- Proc: AllIssues - Gets all issues for a package from dependent packages one level deep
15593
	--
15594
	-- INPUT PARAMETERS:
15595
	--
15596
	--		pkg_name  	-  	The name of the top level package to get issues for
15597
	--		version_start	-	The start version for the comparison
15598
	--		version_end	-	The end version for the comparison
15599
	*/
15600
	PROCEDURE AllIssues( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )
15601
	AS
15602
		pkgId	NUMBER;
15603
	BEGIN
15604
		-- get pkg_id of the input package:
15605
		pkgId := GetPkgId( pkg_name );
15606
 
15607
		OPEN vCursor FOR
15608
		SELECT
15609
			  pv.PKG_ID,
15610
			  pv.PKG_VERSION,
15611
			  pv.PV_ID,
15612
			  i_pkg.ISS_ID,
15613
			  ( SELECT pkg_name FROM PACKAGES WHERE pkg_id = pd.DPKG_ID ) AS DPV_NAME,
15614
			  pd.DPKG_ID,
15615
			  ( SELECT pkg_version FROM PACKAGE_VERSIONS WHERE pv_id = pd.DPV_ID ) AS DPV_VER,
15616
			  pd.DPV_ID,
15617
			  i_dpkg.ISS_ID AS ISSUE_ID
15618
		FROM
15619
			 PACKAGE_VERSIONS pv
15620
							  LEFT OUTER JOIN CQ_ISSUES i_pkg ON pv.PV_ID = i_pkg.PV_ID
15621
							  LEFT OUTER JOIN PACKAGE_DEPENDENCIES pd ON pv.PV_ID = pd.PV_ID
15622
							  LEFT OUTER JOIN CQ_ISSUES i_dpkg ON pd.DPV_ID = i_dpkg.PV_ID
15623
		WHERE
15624
   			 pv.PKG_ID = pkgId
15625
		AND
15626
			VersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1
15627
		AND
15628
			 ( i_dpkg.ISS_ID IS NOT NULL OR i_pkg.ISS_ID IS NOT NULL )
15629
		ORDER BY
15630
			 pv.PKG_ID,
15631
			 pv.PV_ID,
15632
			 pd.DPKG_ID,
15633
			 pd.DPV_ID;
15634
	EXCEPTION
15635
		WHEN OTHERS THEN
15636
			dbms_output.put_line('AllIssues exception: ' || SQLERRM );
15637
	END;
15638
 
15639
 
15640
	-- NOTE: make RM_PACKAGE_ISSUES a temporary table when tested ok
15641
 
15642
	/*
15643
	-- Proc: LoadIssuesTable
15644
	--
15645
	-- Populates Package_Issues table with details of issues from all dependent packages.
15646
	-- This will be for all package versions of the input pkg_name between the
15647
	-- version_start and version_end.
15648
	--
15649
	-- INPUT PARAMETERS:
15650
	--
15651
	--		pkg_name  	-  	The name of the top level package to get issues for
15652
	--		version_start	-	The start version for the comparison
15653
	--		version_end	-	The end version for the comparison
15654
	*/
15655
	PROCEDURE LoadIssuesTable( vCursor OUT T_Cur, pkg_name IN VARCHAR2, version_start IN VARCHAR2, version_end IN VARCHAR2 )
15656
	AS
15657
		pkgId	NUMBER;
15658
 
15659
		CURSOR pack_vers_cur IS
15660
			SELECT
15661
				pv.PV_ID,
15662
				pv.PKG_VERSION,
15663
				pv.PKG_ID,
15664
				p.PKG_NAME
15665
			FROM
15666
				PACKAGE_VERSIONS pv
15667
					JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
15668
			WHERE
15669
   				 pv.PKG_ID = pkgId
15670
			AND
15671
				VersionIsBetween( pv.PKG_VERSION, version_start, version_end ) = 1;
15672
 
15673
	BEGIN
15674
		DELETE FROM RELEASE_MANAGER.RM_PKG_ISSUES; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
15675
 
15676
		-- get the pkg_id we are finding issues for
15677
		pkgId := GetPkgId( pkg_name );
15678
 
15679
		-- find all the top level packages we are dealing with and recursively process their issues and their dependent package issues.
15680
		FOR pack_ver_rec IN  pack_vers_cur
15681
		LOOP
15682
			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 );
15683
			COMMIT;
15684
		END LOOP;
15685
 
15686
		-- The output cursor - shows the individual versions of the top level package then were reported on
15687
		OPEN vCursor FOR
15688
		SELECT DISTINCT ISS_ID, PKG_VERSION FROM RM_PKG_ISSUES WHERE ISS_ID IS NOT NULL; /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
15689
/*removed
15690
		SELECT
15691
			PKG_VERSION
15692
		FROM
15693
			RELEASE_MANAGER.RM_PACKAGE_ISSUES;
15694
*/
15695
 
15696
 
15697
	EXCEPTION
15698
		WHEN OTHERS THEN
15699
			dbms_output.put_line('LoadIssuesTable exception: ' || SQLERRM );
15700
	END;
15701
 
15702
 
15703
	/*
15704
	-- Proc: InsertIssuesForDepends
15705
	--
15706
	-- Used by LoadIssuesTable to recursively find issues for all dependent packages
15707
	--
15708
	-- INPUT PARAMETERS:
15709
	--
15710
	--		pvID  		-  	The package version id of the package to get issues for
15711
	--		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)
15712
	--		top_pkgName -  	The package name of the top level package
15713
	--		top_pvID  	-  	The package version id of the top level package
15714
	--		top_pkgVer  -  	The package version description of the top level package
15715
	*/
15716
	PROCEDURE InsertIssuesForDepends( pvID IN NUMBER, top_pkgID IN NUMBER, top_pkgName IN VARCHAR2, top_pvID IN NUMBER, top_pkgVer IN VARCHAR2 )
15717
	AS
15718
		pkgId		NUMBER;
15719
		issCnt		NUMBER := 0;
15720
		pkgCheck	NUMBER := 0;
15721
		depCheck	NUMBER := 0;
15722
 
15723
		dpkgName	VARCHAR(50);
15724
		dpkgVersion	VARCHAR(50);
15725
 
15726
		CURSOR dep_packs_cur IS
15727
			SELECT
15728
				DPV_ID
15729
			FROM
15730
				PACKAGE_DEPENDENCIES
15731
			WHERE
15732
				PV_ID = pvID;
15733
 
15734
	BEGIN
15735
 
15736
		-- check to see if the package has been processed previously
15737
		SELECT
15738
			COUNT(*)
15739
		INTO
15740
			pkgCheck
15741
		FROM
15742
			RM_PKG_ISSUES /*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
15743
		WHERE
15744
			DPV_ID = pvID;
15745
 
15746
		dbms_output.put_line('pkgCheck: ' || pkgCheck );
15747
 
15748
		-- Package not already processed (no cyclic dependency) - process it
15749
		IF ( pkgCheck = 0 ) THEN
15750
 
15751
			-- check to see if this package version has any issues assigned to it
15752
			SELECT
15753
				COUNT(*)
15754
			INTO
15755
				issCnt
15756
			FROM
15757
				CQ_ISSUES i
15758
			WHERE
15759
				i.PV_ID = pvID;
15760
 
15761
			dbms_output.put_line('issCnt: ' || issCnt );
15762
 
15763
			-- Always enter a marker row into the table even if there are no issues for the package.
15764
			-- This allows us to pick up any cyclic dependencies.
15765
			IF ( issCnt > 0 ) THEN
15766
				-- get issues and insert into RM_PACKAGE_ISSUES
15767
				/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
15768
 
15769
				INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )
15770
					SELECT DISTINCT
15771
						top_pkgID		AS PKG_ID,
15772
						top_pkgName		AS PKG_NAME,
15773
						top_pvID		AS PV_ID,
15774
						top_pkgVer		AS PKG_VERSION,
15775
						pv.PV_ID		AS DPV_ID,
15776
						p.PKG_NAME		AS DPKG_NAME,
15777
						pv.PKG_VERSION	AS DPKG_VERSION,
15778
						ci.ISS_DB,
15779
						ci.ISS_ID
15780
					FROM
15781
						PACKAGE_VERSIONS pv
15782
							JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
15783
							JOIN CQ_ISSUES ci ON pv.PV_ID = ci.PV_ID
15784
					WHERE
15785
						pv.PV_ID = pvID;
15786
 
15787
			ELSE
15788
				-- get the dpkg details - there will always be a row returned here
15789
				SELECT
15790
					p.PKG_NAME
15791
				INTO
15792
					dpkgName
15793
				FROM
15794
					PACKAGE_VERSIONS pv
15795
						JOIN PACKAGES p ON pv.PKG_ID = p.PKG_ID
15796
				WHERE
15797
	   				 pv.PV_ID = pvID;
15798
 
15799
				SELECT
15800
					pv.PKG_VERSION
15801
				INTO
15802
					dpkgVersion
15803
				FROM
15804
					PACKAGE_VERSIONS pv
15805
				WHERE
15806
	   				 pv.PV_ID = pvID;
15807
 
15808
				-- enter a marker row
15809
				/*RM_PACKAGE_ISSUES replaced by RM_PKG_ISSUES*/
15810
				INSERT INTO RM_PKG_ISSUES ( PKG_ID, PKG_NAME, PV_ID, PKG_VERSION, DPV_ID, DPKG_NAME, DPKG_VERSION, ISS_DB, ISS_ID )
15811
				VALUES (
15812
					top_pkgID,
15813
					top_pkgName,
15814
					top_pvID,
15815
					top_pkgVer,
15816
					pvID,
15817
					dpkgName,
15818
					dpkgVersion,
15819
					NULL,
15820
					NULL );
15821
 
15822
			END IF;
15823
 
15824
			-- If this package version has dependencies then recurse
15825
			SELECT
15826
				COUNT(*)
15827
			INTO
15828
				depCheck
15829
			FROM
15830
				PACKAGE_DEPENDENCIES
15831
			WHERE
15832
				PV_ID = pvID;
15833
 
15834
			IF ( depCheck > 0 ) THEN
15835
				-- get dependencies and call this function recursively for each one
15836
				FOR dep_rec IN  dep_packs_cur
15837
				LOOP
15838
					InsertIssuesForDepends( dep_rec.DPV_ID, top_pkgID, top_pkgName, top_pvID, top_pkgVer );
15839
				END LOOP;
15840
 
15841
			END IF;
15842
 
15843
		END IF;
15844
 
15845
	/*EXCEPTION
15846
		WHEN OTHERS THEN
15847
			no exception handling required
15848
	*/
15849
	END;
15850
 
15851
END Rm_Issues;
4040 dpurdie 15852
 
1374 dpurdie 15853
/
4040 dpurdie 15854
--------------------------------------------------------
15855
--  DDL for Procedure ADD_AUTOBUILD_FAILURE_INFO
15856
--------------------------------------------------------
15857
set define off;
15858
 
5172 dpurdie 15859
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_AUTOBUILD_FAILURE_INFO" (
1373 dpurdie 15860
   nprojid     IN   NUMBER,
15861
   nviewid     IN   NUMBER,
15862
   suserlist   IN   VARCHAR2
15863
)
15864
IS
15865
   groupid   NUMBER;
15866
/******************************************************************************
15867
   NAME:       ADD_AUTOBUILD_FAILURE
15868
   PURPOSE:
15869
 
15870
   REVISIONS:
15871
   Ver        Date        Author           Description
15872
   ---------  ----------  ---------------  ------------------------------------
15873
   1.0        11/04/2006   Rupesh Solanki Created this procedure.
15874
 
15875
   NOTES:
15876
 
15877
   Automatically available Auto Replace Keywords:
15878
      Object Name:     ADD_AUTOBUILD_FAILURE
15879
      Sysdate:         11/04/2006
15880
      Date and Time:   11/04/2006, 9:28:28 AM, and 11/04/2006 9:28:28 AM
15881
      Username:         (set in TOAD Options, Procedure Editor)
15882
      Table Name:       (set in the "New PL/SQL Object" dialog)
15883
 
15884
******************************************************************************/
15885
BEGIN
15886
   BEGIN
15887
      SELECT group_email_id
15888
        INTO groupid
15889
        FROM autobuild_failure
15890
       WHERE proj_id = nprojid AND view_id = nviewid;
15891
   EXCEPTION
15892
      WHEN NO_DATA_FOUND
15893
      THEN
15894
         --  Create Next Sequence Id ---
15895
         SELECT seq_group_email_id.NEXTVAL
15896
           INTO groupid
15897
           FROM DUAL;
15898
 
15899
         INSERT INTO autobuild_failure
15900
                     (group_email_id, proj_id, view_id
15901
                     )
15902
              VALUES (groupid, nprojid, nviewid
15903
                     );
15904
   END;
15905
 
15906
   add_view_members (groupid, suserlist);
15907
END add_autobuild_failure_info;
4040 dpurdie 15908
 
1374 dpurdie 15909
/
4040 dpurdie 15910
--------------------------------------------------------
15911
--  DDL for Procedure ADD_COMPONENT
15912
--------------------------------------------------------
15913
set define off;
15914
 
5172 dpurdie 15915
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_COMPONENT" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE,
3959 dpurdie 15916
	   	  		  						  	sFileName IN RELEASE_COMPONENTS.FILE_NAME%TYPE,
15917
											sFilePath IN RELEASE_COMPONENTS.FILE_PATH%TYPE DEFAULT NULL,
15918
											nByteSize IN RELEASE_COMPONENTS.BYTE_SIZE%TYPE,
15919
											sCRCcksum IN RELEASE_COMPONENTS.CRC_CKSUM%TYPE DEFAULT NULL,
15920
											sCRCmodcrc IN RELEASE_COMPONENTS.CRC_MODCRC%TYPE DEFAULT NULL
15921
                                           ) IS
15922
/* ---------------------------------------------------------------------------
15923
    Version: 3.0.0
15924
   --------------------------------------------------------------------------- */
1373 dpurdie 15925
 
15926
 
15927
BEGIN
15928
 
3959 dpurdie 15929
	 --- Insert into RELEASE_COMPONENTS
15930
	 INSERT INTO RELEASE_COMPONENTS ( PV_ID, FILE_NAME, FILE_PATH, BYTE_SIZE, CRC_CKSUM, CRC_MODCRC )
15931
	 VALUES ( nPvId, sFileName, sFilePath, nByteSize, sCRCcksum, sCRCmodcrc  );
1373 dpurdie 15932
 
15933
 
3959 dpurdie 15934
 
15935
 
15936
END Add_Component;
4040 dpurdie 15937
 
1374 dpurdie 15938
/
4040 dpurdie 15939
--------------------------------------------------------
15940
--  DDL for Procedure ADD_PACKAGE_INTEREST
15941
--------------------------------------------------------
15942
set define off;
15943
 
5384 dpurdie 15944
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_PACKAGE_INTEREST" (
15945
    nProjId    IN PROJECTS.PROJ_ID%TYPE,
15946
    nPkgIdList IN VARCHAR2,
15947
    nUserId    IN NUMBER )
15948
IS
15949
  npkgidcollector relmgr_number_tab_t := relmgr_number_tab_t ();
15950
  nPkgId        NUMBER;
15951
  alreadyExists NUMBER;
1373 dpurdie 15952
BEGIN
5384 dpurdie 15953
  npkgidcollector := in_list_number2 (nPkgIdList);
15954
  FOR i IN 1..npkgidcollector.COUNT
15955
  LOOP
15956
    nPkgId := npkgidcollector(i);
15957
    --- Ensure it doesn't already exist
15958
    SELECT COUNT(*)
15959
    INTO alreadyExists
15960
    FROM PACKAGE_INTEREST
15961
    WHERE USER_ID      = nUserId
15962
    AND PKG_ID         = nPkgId
15963
    AND PROJ_ID        = nProjId;
6031 dpurdie 15964
 
5384 dpurdie 15965
    IF ( alreadyExists = 0 ) THEN
15966
      --- Insert into PACKAGE_INTEREST TABLE
15967
      INSERT
15968
        INTO PACKAGE_INTEREST (PROJ_ID, PKG_ID, USER_ID )
15969
        VALUES (nProjId, nPkgId, nUserId );
15970
    END IF;
15971
  END LOOP;
3959 dpurdie 15972
END ADD_PACKAGE_INTEREST;
4040 dpurdie 15973
 
3959 dpurdie 15974
/
4040 dpurdie 15975
--------------------------------------------------------
15976
--  DDL for Procedure ADD_RUNTIME_DEPENDENCY
15977
--------------------------------------------------------
15978
set define off;
15979
 
5172 dpurdie 15980
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_RUNTIME_DEPENDENCY" ( NNpv_id IN NUMBER,
3959 dpurdie 15981
                                                     SSrtd_name IN PACKAGES.pkg_name%TYPE,
15982
                                                     SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
15983
                                                     NNuser_id IN NUMBER
15984
                                                    ) IS
1373 dpurdie 15985
/* ---------------------------------------------------------------------------
3959 dpurdie 15986
    Version: 3.1
1373 dpurdie 15987
   --------------------------------------------------------------------------- */
15988
 
3959 dpurdie 15989
    retRTD_ID NUMBER;
15990
 
15991
	CURSOR rtd_cur IS
15992
        SELECT rtd_id FROM runtime_dependencies WHERE pv_id = NNpv_id AND rtd_id = retRTD_ID;
15993
    rtd_rec rtd_cur%ROWTYPE;
15994
 
1373 dpurdie 15995
BEGIN
3959 dpurdie 15996
    --- Seed database with package_name and version if required ---
15997
    Seed_Package_Names_Versions ( SSrtd_name, SSrtd_version, NNuser_id, retRTD_ID );
1373 dpurdie 15998
 
3959 dpurdie 15999
	OPEN rtd_cur;
16000
    FETCH rtd_cur INTO rtd_rec;
1373 dpurdie 16001
 
3959 dpurdie 16002
    IF rtd_cur%NOTFOUND
16003
    THEN
16004
		/* Make sure it does not exists already as runtime dependency */
1373 dpurdie 16005
 
3959 dpurdie 16006
		--- Add new Runtime Dependency ---
16007
	    INSERT INTO runtime_dependencies ( pv_id, rtd_id, mod_date, mod_user )
16008
	    VALUES (  NNpv_id, retRTD_ID, ORA_SYSDATE , NNuser_id );
1373 dpurdie 16009
 
3959 dpurdie 16010
    	/* LOG ACTION */
16011
        Log_Action ( NNpv_id, 'runtime_add', NNuser_id,
16012
    			     'Runtime package: '|| SSrtd_name ||' '|| SSrtd_version );
16013
 
16014
	END IF;
16015
 
16016
 
16017
END Add_Runtime_Dependency;
4040 dpurdie 16018
 
1374 dpurdie 16019
/
4040 dpurdie 16020
--------------------------------------------------------
16021
--  DDL for Procedure ADD_VIEW_MEMBERS
16022
--------------------------------------------------------
16023
set define off;
16024
 
5172 dpurdie 16025
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."ADD_VIEW_MEMBERS" (nGroupId IN NUMBER, sUserList IN VARCHAR2) IS
3959 dpurdie 16026
 
16027
/******************************************************************************
16028
   NAME:       ADD_VIEW_MEMBERS
6031 dpurdie 16029
   PURPOSE:
3959 dpurdie 16030
 
16031
   REVISIONS:
16032
   Ver        Date        Author           Description
16033
   ---------  ----------  ---------------  ------------------------------------
16034
   1.0        11/04/2006          1. Created this procedure.
16035
 
16036
   NOTES:
16037
 
16038
   Automatically available Auto Replace Keywords:
16039
      Object Name:     ADD_VIEW_MEMBERS
16040
      Sysdate:         11/04/2006
16041
      Date and Time:   11/04/2006, 9:52:58 AM, and 11/04/2006 9:52:58 AM
16042
      Username:         (set in TOAD Options, Procedure Editor)
16043
      Table Name:       (set in the "New PL/SQL Object" dialog)
16044
 
16045
******************************************************************************/
16046
CURSOR user_cur IS
16047
	SELECT u.USER_ID
16048
	  FROM USERS u
16049
	 WHERE u.USER_ID IN (
6031 dpurdie 16050
	 	   			   	SELECT *
16051
						  FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
3959 dpurdie 16052
						);
16053
user_rec user_cur%ROWTYPE;
16054
 
16055
 
16056
BEGIN
16057
 
16058
	 OPEN user_cur;
16059
	 FETCH user_cur INTO user_rec;
6031 dpurdie 16060
 
3959 dpurdie 16061
	 WHILE user_cur%FOUND
16062
	 LOOP
16063
	 	 INSERT INTO MEMBERS_GROUP (GROUP_EMAIL_ID, USER_ID)
16064
	 	 VALUES ( nGroupId, user_rec.USER_ID);
6031 dpurdie 16065
 
16066
	 	 FETCH user_cur INTO user_rec;
16067
	 END LOOP;
16068
 
16069
 
16070
 
3959 dpurdie 16071
END ADD_VIEW_MEMBERS;
4040 dpurdie 16072
 
1374 dpurdie 16073
/
4040 dpurdie 16074
--------------------------------------------------------
16075
--  DDL for Procedure BASIC_CLONE
16076
--------------------------------------------------------
16077
set define off;
16078
 
6031 dpurdie 16079
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."BASIC_CLONE" (
5502 dpurdie 16080
        nFROMpv_id IN NUMBER,
16081
        nTOpv_id IN NUMBER,
16082
        nRtag_id IN NUMBER,
16083
        nUser_id IN NUMBER,
16084
        nTOpkg_id IN NUMBER DEFAULT NULL,
16085
        enumISSUES_STATE_IMPORTED IN NUMBER DEFAULT NULL ) IS
1373 dpurdie 16086
 
16087
   FromVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
16088
   major NUMBER;
16089
   minor NUMBER;
16090
   patch NUMBER;
16091
   buildn NUMBER;
16092
   from_vcs_type_id NUMBER;
16093
BEGIN
16094
------------------------------ Version Control System ------------------------------------------
16095
   SELECT vcs_type_id
16096
      INTO from_vcs_type_id
16097
      FROM package_versions WHERE pv_id = nFROMpv_id;
16098
 
16099
   UPDATE package_versions
16100
      SET vcs_type_id = from_vcs_type_id
16101
      WHERE pv_id = nTOpv_id;
16102
------------------------------------- Limits ---------------------------------------------------
16103
   select major_limit, minor_limit, patch_limit, build_number_limit
16104
   into major, minor, patch, buildn
16105
   from package_versions where pv_id=nFROMpv_id;
16106
    UPDATE package_versions SET
16107
           major_limit = major,
16108
           minor_limit = minor,
16109
           patch_limit = patch,
16110
           build_number_limit = buildn
16111
     WHERE PV_ID = nTOpv_id;
16112
------------------------------------- Clone Dependencies ---------------------------------------------------
16113
   IF NOT nRtag_id IS NULL
16114
   THEN
16115
      -- Auto Update Dependencies --
16116
      INSERT INTO PACKAGE_DEPENDENCIES
16117
           SELECT nTOpv_id AS pv_id,
16118
                  DECODE(nUser_id,
16119
                         frc.modifier_id,
16120
                         frc.pv_id,
16121
                         DECODE(frc.dlocked,
16122
                                'Y',
16123
                                frc.pv_id,
16124
                                dep.dpv_id)
16125
                         ) AS dpv_id,
16126
                  nTOpkg_id AS pkg_id,
16127
                  dep.dpkg_id,
16128
                  dep.build_type,
16129
                  dep.display_order
16130
             FROM PACKAGE_DEPENDENCIES dep,
16131
                  PACKAGE_VERSIONS pv,
16132
                  (
16133
                  /* Full Release Contents used for reference*/
16134
                  SELECT rpv.pv_id, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext, rpv.modifier_id, rpv.dlocked
16135
                  FROM RELEASE_CONTENT rel, PACKAGE_VERSIONS rpv
16136
                  WHERE rel.pv_id = rpv.pv_id AND rtag_id = nRtag_id
16137
                  ) frc
16138
            WHERE dep.pv_id = nFROMpv_id
16139
              AND dep.dpv_id = pv.pv_id
16140
              AND pv.pkg_id = frc.pkg_id(+)
16141
              AND NVL(pv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+);
16142
   ELSE
16143
      -- Clone Dependencies --
16144
      INSERT INTO PACKAGE_DEPENDENCIES
16145
           SELECT nTOpv_id         AS pv_id,
16146
                  dep.dpv_id,
16147
                  nTOpkg_id        AS pkg_id,
16148
                  dep.dpkg_id,
16149
                  dep.build_type,
16150
                  dep.display_order
16151
             FROM PACKAGE_DEPENDENCIES dep
16152
            WHERE dep.pv_id = nFROMpv_id;
16153
 
16154
   END IF;
16155
 
16156
----------------------------------------- Clone Issues -------------------------------------------------------
16157
   IF enumISSUES_STATE_IMPORTED IS NULL
16158
   THEN
16159
        /* All Issues */
16160
       INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
16161
            SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
16162
              FROM CQ_ISSUES
16163
             WHERE pv_id = nFROMpv_id;
16164
   ELSE
16165
       /* Outstanding Issues Only */
16166
       INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
16167
            SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
16168
              FROM CQ_ISSUES
16169
             WHERE pv_id = nFROMpv_id
16170
               AND iss_state = enumISSUES_STATE_IMPORTED;
16171
   END IF;
16172
 
16173
------------------------------------ Clone Runtime Dependencies -----------------------------------------------
16174
   INSERT INTO RUNTIME_DEPENDENCIES (pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user)
16175
       SELECT nTOpv_id AS pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user
16176
       FROM RUNTIME_DEPENDENCIES WHERE pv_id = nFROMpv_id;
16177
 
16178
--------------------------------------- Clone Additional Notes ------------------------------------------------
16179
   INSERT INTO ADDITIONAL_NOTES ( NOTE_ID, PV_ID, NOTE_TITLE, NOTE_BODY, MOD_DATE, MOD_USER )
16180
        SELECT an.NOTE_ID,
16181
               nTOpv_id AS PV_ID,
16182
               an.NOTE_TITLE,
16183
               an.NOTE_BODY,
16184
               an.MOD_DATE,
16185
               an.MOD_USER
16186
          FROM ADDITIONAL_NOTES an
16187
         WHERE an.PV_ID = nFROMpv_id;
16188
 
16189
-------------------------------------------- Clone Unit Tests -------------------------------------------------
5502 dpurdie 16190
-- Only clone 'Auto Unit Test', 'Interactive Unit Test' and 'Autobuild UTF'
16191
-- Only clone the basic information: TEST_SUMMARY
1373 dpurdie 16192
 
16193
    INSERT INTO UNIT_TESTS (
16194
                            TEST_ID,
16195
                            PV_ID,
16196
                            TEST_TYPES_FK,
16197
                            TEST_SUMMARY
16198
                           )
16199
       SELECT ut.TEST_ID,
16200
              nTOpv_id AS PV_ID,
16201
              ut.TEST_TYPES_FK,
16202
              ut.TEST_SUMMARY
16203
         FROM UNIT_TESTS ut
16204
        WHERE ut.PV_ID = nFROMpv_id
5502 dpurdie 16205
          AND ut.TEST_TYPES_FK IN (5,6,7);
1373 dpurdie 16206
 
16207
-------------------------------------------- Clone Package Documents ------------------------------------------
16208
   INSERT INTO PACKAGE_DOCUMENTS ( PV_ID, TEST_ID, DOC_NUM, DOC_ID, IS_LATEST )
16209
        SELECT nTOpv_id AS PV_ID,
16210
               pd.test_id,
16211
               pd.doc_num,
16212
               pd.doc_id,
16213
               pd.IS_LATEST
16214
          FROM PACKAGE_DOCUMENTS pd
16215
         WHERE pd.PV_ID = nFROMpv_id;
16216
 
16217
-------------------------------------------- Clone Build Environments -----------------------------------------
16218
    INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID, BUILD_TYPE )
16219
    SELECT nTOpv_id AS PV_ID,
16220
           pkgbe.BE_ID,
16221
           pkgbe.BUILD_TYPE
16222
      FROM PACKAGE_BUILD_ENV pkgbe
16223
     WHERE pkgbe.PV_ID = nFROMpv_id;
6031 dpurdie 16224
 
1373 dpurdie 16225
---------------------------------------------Clone Package Build Info------------------------------------------
16226
    INSERT INTO PACKAGE_BUILD_INFO (PV_ID, BM_ID, BSA_ID)
16227
    SELECT nTOpv_id AS PV_ID,
16228
           pkgbinfo.BM_ID,
16229
           pkgbinfo.BSA_ID
16230
      FROM PACKAGE_BUILD_INFO pkgbinfo
16231
     WHERE pkgbinfo.PV_ID = nFROMpv_id;
6031 dpurdie 16232
 
1373 dpurdie 16233
---------------------------------------------Clone Package Version Processes-----------------------------------
16234
    INSERT INTO PACKAGE_PROCESSES ( PV_ID, PROC_ID )
16235
    SELECT nTOpv_id AS PV_ID,
16236
           pp.PROC_ID
16237
      FROM PACKAGE_PROCESSES pp
16238
     WHERE pp.PV_ID = nFROMpv_id;
6031 dpurdie 16239
 
1373 dpurdie 16240
---------------------------------------------Clone Licencing Associations-----------------------------------
16241
    PK_LICENCING.CLONE_LICENCING(nFROMpv_id, nTOpv_id, nUser_id);
16242
---------------------------------------------------------------------------------------------------------------
16243
 
16244
    /* LOG ACTION */
16245
    SELECT pv.PKG_VERSION INTO FromVersion
16246
      FROM PACKAGE_VERSIONS pv
16247
     WHERE pv.PV_ID = nFROMpv_id;
16248
 
16249
    Log_Action ( nTOpv_id, 'clone_from', nUser_id,
16250
                 'Details cloned from: '|| FromVersion );
16251
 
16252
---------------------------------------------------------------------------------------------------------------
16253
 
16254
END Basic_Clone;
4040 dpurdie 16255
 
1374 dpurdie 16256
/
4040 dpurdie 16257
--------------------------------------------------------
16258
--  DDL for Procedure BUILD_TREE
16259
--------------------------------------------------------
16260
set define off;
16261
 
5172 dpurdie 16262
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."BUILD_TREE" ( nRtag_id IN NUMBER,
3959 dpurdie 16263
	   	  		  					     retSessionNum OUT NUMBER ) IS
16264
 
1373 dpurdie 16265
/* ---------------------------------------------------------------------------
3959 dpurdie 16266
    Version: 3.0.0
1373 dpurdie 16267
   --------------------------------------------------------------------------- */
3959 dpurdie 16268
    rowCnt 			NUMBER := 0;						-- Iterations counter
16269
    iteration 		NUMBER := 1;                  -- Maximum number of iterations allowed.
16270
    maxIterations 	NUMBER := 50;      	  	-- This will prevent infinite loops if cyrcular dependencies are found
16271
	UP_THE_TREE 	CONSTANT NUMBER DEFAULT 1;
16272
	DOWN_THE_TREE 	CONSTANT NUMBER DEFAULT -1;
16273
    sessionNum 		NUMBER;
16274
	levelNum		NUMBER;
6031 dpurdie 16275
 
3959 dpurdie 16276
BEGIN
16277
    SELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;
6031 dpurdie 16278
 
3959 dpurdie 16279
	/*
16280
	||	   Start UP THE TREE
16281
	*/
6031 dpurdie 16282
 
16283
 
16284
	/* Packages with no dependencies */
3959 dpurdie 16285
    INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
16286
		SELECT sessionNum AS SESSION_NUM,
16287
			   iteration AS LEVEL_NUM,
16288
			   UP_THE_TREE AS DIRECTION,
16289
			   rc.pv_id, pv.pkg_id, pv.v_ext
16290
		  FROM release_content rc,
16291
		  	   package_versions pv
16292
		 WHERE rc.rtag_id = nRtag_id
16293
		   AND rc.pv_id = pv.pv_id
16294
		 MINUS
6031 dpurdie 16295
		SELECT sessionNum AS SESSION_NUM,
3959 dpurdie 16296
			   iteration AS LEVEL_NUM,
16297
			   UP_THE_TREE AS DIRECTION,
16298
			   dep.pv_id, pv.pkg_id, pv.v_ext
16299
		  FROM package_dependencies dep,
16300
		  	   package_versions pv
16301
		 WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtag_id )
16302
		   AND dep.pv_id = pv.pv_id;
6031 dpurdie 16303
 
16304
 
16305
	/* Browse UP the build tree */
3959 dpurdie 16306
	iteration := iteration + 1;
16307
    LOOP
6031 dpurdie 16308
 
3959 dpurdie 16309
		INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
6031 dpurdie 16310
			SELECT DISTINCT
3959 dpurdie 16311
			       sessionNum AS SESSION_NUM,
16312
			       iteration AS LEVEL_NUM,
6031 dpurdie 16313
				   UP_THE_TREE AS DIRECTION,
3959 dpurdie 16314
				   rdep.pv_id, rdep.pkg_id, rdep.v_ext
6031 dpurdie 16315
			  FROM (
3959 dpurdie 16316
			        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
16317
			          FROM package_dependencies dep,
16318
			               release_content rc,
16319
						   package_versions pv,
16320
						   package_versions dpv
16321
			         WHERE dep.pv_id = rc.pv_id
16322
			           AND rc.rtag_id = nRtag_id
16323
					   AND dep.pv_id = pv.pv_id
16324
					   AND dep.dpv_id = dpv.pv_id
16325
					) rdep,
16326
					temp_tree_browse ttb
16327
			 WHERE rdep.dpkg_id  = ttb.pkg_id
16328
			   AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext,'|LINK_A_NULL|')
16329
			   AND ttb.SESSION_NUM = sessionNum
6031 dpurdie 16330
			   AND ttb.LEVEL_NUM = iteration - 1
3959 dpurdie 16331
			MINUS
6031 dpurdie 16332
			/* Packages with all depencencies NOT matched */
16333
			SELECT DISTINCT
3959 dpurdie 16334
			       sessionNum AS SESSION_NUM,
6031 dpurdie 16335
			       iteration AS LEVEL_NUM,
3959 dpurdie 16336
				   UP_THE_TREE AS DIRECTION,
16337
				   rdep.pv_id, rdep.pkg_id, rdep.v_ext
6031 dpurdie 16338
			  FROM (
3959 dpurdie 16339
			        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
16340
			          FROM package_dependencies dep,
16341
			               release_content rc,
16342
						   package_versions pv,
16343
						   package_versions dpv
16344
			         WHERE dep.pv_id = rc.pv_id
16345
			           AND rc.rtag_id = nRtag_id
16346
					   AND dep.pv_id = pv.pv_id
16347
					   AND dep.dpv_id = dpv.pv_id
16348
					) rdep,
16349
					(
16350
					 SELECT tb.*
16351
					   FROM temp_tree_browse tb
16352
					  WHERE tb.SESSION_NUM = sessionNum
16353
					) ttb
16354
			 WHERE rdep.dpkg_id  = ttb.pkg_id (+)
16355
			   AND NVL(rdep.dv_ext ,'|LINK_A_NULL|') = NVL(ttb.v_ext (+),'|LINK_A_NULL|')
16356
			   AND ttb.SESSION_NUM IS NULL;
6031 dpurdie 16357
 
3959 dpurdie 16358
		rowCnt := SQL%ROWCOUNT;
16359
		IF rowCnt > 0 THEN
16360
           iteration := iteration + 1;
16361
		END IF;
16362
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
16363
    END LOOP;
6031 dpurdie 16364
 
3959 dpurdie 16365
	/*---------------------------------------------------------------------------------------------------------------------*/
6031 dpurdie 16366
 
3959 dpurdie 16367
	/*     Check for unresolved dependencies
6031 dpurdie 16368
	||
3959 dpurdie 16369
	*/
16370
	/* UNRESOLVED */
16371
	 SELECT COUNT(*) INTO rowCnt
16372
	   FROM (
16373
			 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
16374
			  FROM release_content rc,
16375
			  	   package_versions pv
16376
			 WHERE rc.rtag_id = nRtag_id
6031 dpurdie 16377
			   AND rc.pv_id = pv.pv_id
3959 dpurdie 16378
			MINUS
16379
			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
16380
			  FROM temp_tree_browse ttb
16381
			 WHERE ttb.session_num = sessionNum
16382
			);
6031 dpurdie 16383
 
16384
 
16385
 
16386
	 IF rowCnt > 0
3959 dpurdie 16387
	 THEN
16388
	 	 /*     Circular dependencies detected.
16389
		 ||     Try to resolve build order from the top now.
16390
		 ||		Start DOWN THE TREE
16391
		 */
6031 dpurdie 16392
 
16393
		iteration := 0;
16394
		 /* Top Level packages */
16395
		INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
3959 dpurdie 16396
			SELECT sessionNum AS SESSION_NUM,
16397
			       iteration AS LEVEL_NUM,
16398
				   DOWN_THE_TREE AS DIRECTION,
16399
				   pv.pv_id, pv.pkg_id, pv.v_ext
6031 dpurdie 16400
			  FROM (
3959 dpurdie 16401
					/* Packages no one depends on ( Top level packages )*/
6031 dpurdie 16402
					(
16403
					/* All parents*/
3959 dpurdie 16404
					SELECT pv.pkg_id, pv.v_ext
16405
			          FROM package_dependencies dep,
16406
			               release_content rc,
16407
						   package_versions pv
16408
			         WHERE dep.pv_id = rc.pv_id
16409
			           AND rc.rtag_id = nRtag_id
16410
					   AND dep.pv_id = pv.pv_id
16411
					 MINUS
16412
					 /* All children */
16413
					SELECT dpv.pkg_id, dpv.v_ext
16414
			          FROM package_dependencies dep,
16415
			               release_content rc,
16416
						   package_versions dpv
16417
			         WHERE dep.pv_id = rc.pv_id
16418
			           AND rc.rtag_id = nRtag_id
16419
					   AND dep.dpv_id = dpv.pv_id
6031 dpurdie 16420
					 )
3959 dpurdie 16421
					 MINUS
6031 dpurdie 16422
					/* Packages with resolved dependencies from UP THE TREE */
3959 dpurdie 16423
					SELECT ttb.pkg_id, ttb.v_ext
16424
					  FROM temp_tree_browse ttb
16425
					 WHERE ttb.session_num = sessionNum
16426
				  ) tpkg,
16427
				  package_versions pv,
16428
				  release_content rc
16429
			WHERE rc.rtag_id = nRtag_id
16430
			  AND rc.pv_id = pv.pv_id
16431
			  AND tpkg.pkg_id = pv.pkg_id
16432
			  AND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');
6031 dpurdie 16433
 
16434
 
16435
		 /* Keep taking packages which no one depende on */
16436
		 iteration := iteration - 1;
16437
		 LOOP
3959 dpurdie 16438
			   INSERT INTO TEMP_TREE_BROWSE (SESSION_NUM, LEVEL_NUM, DIRECTION, PV_ID, PKG_ID, V_EXT )
16439
					SELECT sessionNum AS SESSION_NUM,
16440
					       iteration AS LEVEL_NUM,
16441
					       DOWN_THE_TREE AS DIRECTION,
16442
					       pv.pv_id, pv.pkg_id, pv.v_ext
6031 dpurdie 16443
					  FROM (
3959 dpurdie 16444
					 	/* All Unresolved */
16445
					 	(
16446
					 	SELECT pv.pkg_id, pv.v_ext
16447
					 	  FROM release_content rc,
16448
					 	  	   package_versions pv
16449
					 	 WHERE rc.rtag_id = nRtag_id
6031 dpurdie 16450
					 	   AND rc.pv_id = pv.pv_id
3959 dpurdie 16451
					 	MINUS
16452
					 	SELECT ttb.pkg_id, ttb.v_ext
16453
					 	  FROM temp_tree_browse ttb
16454
					 	 WHERE ttb.session_num = sessionNum
16455
					 	)
16456
					 	 MINUS
6031 dpurdie 16457
					 	(
16458
					 	 /* Children of Unresolved */
3959 dpurdie 16459
					 	SELECT dpv.pkg_id, dpv.V_EXT
16460
					 	  FROM (
16461
					 			SELECT pv.pv_id, pv.pkg_id, pv.v_ext
16462
					 			  FROM release_content rc,
16463
					 			  	   package_versions pv
16464
					 			 WHERE rc.rtag_id = nRtag_id
6031 dpurdie 16465
					 			   AND rc.pv_id = pv.pv_id
3959 dpurdie 16466
					 			MINUS
16467
					 			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
16468
					 			  FROM temp_tree_browse ttb
16469
					 			 WHERE ttb.session_num = sessionNum
16470
					 		   ) unr,
16471
					 		   package_dependencies dep,
16472
					 		   package_versions dpv
16473
					 	 WHERE unr.pv_id = dep.pv_id
16474
					 	   AND dep.dpv_id = dpv.pv_id
6031 dpurdie 16475
					 	 )
3959 dpurdie 16476
					   ) tpkg,
16477
					   package_versions pv,
16478
					   release_content rc
16479
					WHERE rc.rtag_id = nRtag_id
16480
					  AND rc.pv_id = pv.pv_id
16481
					  AND tpkg.pkg_id = pv.pkg_id
16482
					  AND NVL(tpkg.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|');
6031 dpurdie 16483
 
3959 dpurdie 16484
            rowCnt := SQL%ROWCOUNT;
16485
        	IF rowCnt > 0 THEN
16486
	           iteration := iteration - 1;
16487
			END IF;
16488
            EXIT WHEN (rowCnt < 1);
16489
     	END LOOP;
6031 dpurdie 16490
 
3959 dpurdie 16491
	 END IF;
6031 dpurdie 16492
 
16493
 
3959 dpurdie 16494
	/*---------------------------------------------------------------------------------------------------------------------*/
6031 dpurdie 16495
 
16496
	/*
3959 dpurdie 16497
	|| 	 Save results from temp table
6031 dpurdie 16498
	*/
3959 dpurdie 16499
	/* Clean up build_order table */
16500
	DELETE FROM BUILD_ORDER WHERE rtag_id = nRtag_id;
6031 dpurdie 16501
 
3959 dpurdie 16502
	/* Save UP THE TREE */
16503
	INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )
16504
		SELECT nRtag_id AS rtag_id,
6031 dpurdie 16505
			   ttb.level_num AS step_num,
3959 dpurdie 16506
			   ttb.PV_ID
16507
		  FROM temp_tree_browse ttb
16508
		 WHERE ttb.session_num = sessionNum
6031 dpurdie 16509
		   AND ttb.direction = UP_THE_TREE;
16510
 
3959 dpurdie 16511
	/*Get last step_num */
16512
	SELECT MAX(ttb.level_num) + 1 INTO levelNum
16513
	FROM temp_tree_browse ttb WHERE ttb.session_num = sessionNum AND ttb.DIRECTION = UP_THE_TREE;
6031 dpurdie 16514
 
3959 dpurdie 16515
	/* UNRESOLVED */
16516
	 SELECT COUNT(*) INTO rowCnt
16517
	   FROM (
16518
			 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
16519
			  FROM release_content rc,
16520
			  	   package_versions pv
16521
			 WHERE rc.rtag_id = nRtag_id
6031 dpurdie 16522
			   AND rc.pv_id = pv.pv_id
3959 dpurdie 16523
			MINUS
16524
			SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
16525
			  FROM temp_tree_browse ttb
16526
			 WHERE ttb.session_num = sessionNum
16527
			);
6031 dpurdie 16528
 
16529
 
3959 dpurdie 16530
	IF rowCnt > 0
16531
	THEN
16532
		/* Save unresolved packages */
16533
 		INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID, UNRESOLVED )
16534
		    SELECT  nRtag_id AS rtag_id,
6031 dpurdie 16535
				    levelNum AS step_num,
3959 dpurdie 16536
				    upv.PV_ID,
16537
					'Y' AS UNRESOLVED
16538
			   FROM (
16539
					 SELECT pv.pv_id, pv.pkg_id, pv.v_ext
16540
					  FROM release_content rc,
16541
					  	   package_versions pv
16542
					 WHERE rc.rtag_id = nRtag_id
6031 dpurdie 16543
					   AND rc.pv_id = pv.pv_id
3959 dpurdie 16544
					MINUS
16545
					SELECT ttb.pv_id, ttb.pkg_id, ttb.v_ext
16546
					  FROM temp_tree_browse ttb
16547
					 WHERE ttb.session_num = sessionNum
16548
					) upv;
6031 dpurdie 16549
	END IF;
16550
 
3959 dpurdie 16551
	/* Save DOWN THE TREE */
16552
	levelNum := 1000;
16553
	INSERT INTO BUILD_ORDER ( RTAG_ID, STEP_NUM, PV_ID )
16554
		SELECT nRtag_id AS rtag_id,
6031 dpurdie 16555
			   levelNum + ttb.level_num  AS step_num,
3959 dpurdie 16556
			   ttb.PV_ID
16557
		  FROM temp_tree_browse ttb
16558
		 WHERE ttb.session_num = sessionNum
16559
		   AND ttb.direction = DOWN_THE_TREE;
6031 dpurdie 16560
 
16561
 
3959 dpurdie 16562
	/*---------------------------------------------------------------------------------------------------------------------*/
6031 dpurdie 16563
 
3959 dpurdie 16564
	/* Clean up temp table */
16565
	DELETE FROM TEMP_TREE_BROWSE WHERE session_num = sessionNum;
6031 dpurdie 16566
 
3959 dpurdie 16567
	retSessionNum := sessionNum;
16568
END Build_Tree;
4040 dpurdie 16569
 
3959 dpurdie 16570
/
4040 dpurdie 16571
--------------------------------------------------------
16572
--  DDL for Procedure CHANGE_PACKAGE_STATE
16573
--------------------------------------------------------
16574
set define off;
16575
 
5172 dpurdie 16576
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHANGE_PACKAGE_STATE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 16577
											 nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS
16578
/* ---------------------------------------------------------------------------
16579
    Version: 4.0
16580
   --------------------------------------------------------------------------- */
1373 dpurdie 16581
 
16582
BEGIN
16583
 
3959 dpurdie 16584
    -- Unlock Package
16585
    UPDATE RELEASE_CONTENT rc SET
16586
    	rc.PKG_STATE = 0
16587
    WHERE rc.PV_ID = nPvId
16588
	AND rc.RTAG_ID = nRtagId;
1373 dpurdie 16589
 
3959 dpurdie 16590
END Change_Package_State;
4040 dpurdie 16591
 
1374 dpurdie 16592
/
4040 dpurdie 16593
--------------------------------------------------------
16594
--  DDL for Procedure CHANGE_RELEASE_MODE
16595
--------------------------------------------------------
16596
set define off;
16597
 
5172 dpurdie 16598
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHANGE_RELEASE_MODE" ( nModeCode IN NUMBER, nRtagId IN NUMBER, UserId IN NUMBER ) IS
3959 dpurdie 16599
/* ---------------------------------------------------------------------------
16600
    Version: 3.0.0
16601
   --------------------------------------------------------------------------- */
1373 dpurdie 16602
 
6031 dpurdie 16603
	cMode CHAR(1) := NULL;
16604
	nProjId NUMBER;
1373 dpurdie 16605
 
16606
BEGIN
16607
 
6031 dpurdie 16608
 
3959 dpurdie 16609
	/*
16610
	Author: Rupesh Solanki
16611
	Modified: 24th October 2006
6031 dpurdie 16612
	Reason: Added the archive mode state into Release Manager
3959 dpurdie 16613
	||	1 - Open Mode
16614
	||	2 - Restrictive Mode
16615
	||	3 - Closed Mode
16616
	||	4 - CCB Mode
16617
	||	5 - Archive Mode
5384 dpurdie 16618
  ||  6 - Preserve Mode
6031 dpurdie 16619
	*/
3959 dpurdie 16620
	-- Get project Id
16621
	SELECT rt.PROJ_ID INTO nProjId
16622
	  FROM RELEASE_TAGS rt
6031 dpurdie 16623
	 WHERE rt.RTAG_ID = nRtagId;
16624
 
3959 dpurdie 16625
	IF nModeCode = 1 THEN
16626
		-- Open Mode
16627
		cMode := 'N';
6031 dpurdie 16628
 
3959 dpurdie 16629
		/* LOG ACTION */
16630
   		Log_Project_Action ( nProjId, 'set_to_open_mode', UserId, 'Release is set to Open Mode', nRtagId );
6031 dpurdie 16631
 
3959 dpurdie 16632
	ELSIF nModeCode = 2 THEN
16633
		-- Restrictive Mode
16634
		cMode := 'R';
6031 dpurdie 16635
 
3959 dpurdie 16636
		/* LOG ACTION */
16637
   		Log_Project_Action ( nProjId, 'set_to_restrictive_mode', UserId, 'Release is set to Restrictive Mode', nRtagId );
6031 dpurdie 16638
 
3959 dpurdie 16639
	ELSIF nModeCode = 3 THEN
16640
		-- Closed Mode
16641
		cMode := 'Y';
6031 dpurdie 16642
 
3959 dpurdie 16643
		/* LOG ACTION */
16644
   		Log_Project_Action ( nProjId, 'set_to_closed_mode', UserId, 'Release is set to Closed Mode', nRtagId  );
1373 dpurdie 16645
 
3959 dpurdie 16646
	ELSIF nModeCode = 4 THEN
16647
		-- CCB Mode
16648
		cMode := 'C';
6031 dpurdie 16649
 
3959 dpurdie 16650
		/* LOG ACTION */
16651
   		Log_Project_Action ( nProjId, 'set_to_ccb_mode', UserId, 'Release is set to CCB Mode', nRtagId  );
6031 dpurdie 16652
 
3959 dpurdie 16653
	ELSIF nModeCode = 5 THEN
16654
		-- Archive Mode
16655
		cMode := 'A';
6031 dpurdie 16656
 
3959 dpurdie 16657
		/* LOG ACTION */
6031 dpurdie 16658
   		Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Archive Mode', nRtagId  );
16659
 
5384 dpurdie 16660
  ELSIF nModeCode = 6 THEN
16661
		-- Archive Mode
16662
		cMode := 'P';
6031 dpurdie 16663
 
5384 dpurdie 16664
		/* LOG ACTION */
6031 dpurdie 16665
   		Log_Project_Action ( nProjId, 'set_to_archive_mode', UserId, 'Release is set to Preserve Mode', nRtagId  );
3959 dpurdie 16666
	END IF;
6031 dpurdie 16667
 
16668
 
16669
 
3959 dpurdie 16670
	-- Now update table
16671
	IF NOT cMode IS NULL THEN
16672
		UPDATE RELEASE_TAGS rt SET
4211 dpurdie 16673
		rt.OFFICIAL = cMode,
16674
    rt.OFFICIAL_STAMP = ORA_SYSDATETIME,
16675
    rt.OFFICIAL_ID = UserId
3959 dpurdie 16676
		WHERE rt.RTAG_ID = nRtagId;
6031 dpurdie 16677
 
3959 dpurdie 16678
	END IF;
1373 dpurdie 16679
 
16680
 
3959 dpurdie 16681
END CHANGE_RELEASE_MODE;
4040 dpurdie 16682
 
1374 dpurdie 16683
/
4040 dpurdie 16684
--------------------------------------------------------
16685
--  DDL for Procedure CHECK_NEW_PATCHES
16686
--------------------------------------------------------
16687
set define off;
16688
 
5172 dpurdie 16689
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CHECK_NEW_PATCHES" (
3959 dpurdie 16690
   nrtagid   IN   release_content.rtag_id%TYPE
1373 dpurdie 16691
)
16692
IS
16693
/* ---------------------------------------------------------------------------
3959 dpurdie 16694
    Version: 3.0
1373 dpurdie 16695
   --------------------------------------------------------------------------- */
16696
BEGIN
3959 dpurdie 16697
   /*--------------- Business Rules Here -------------------*/
16698
   /*IF nRtagId NOT IN (SELECT RTAG_ID FROM RELEASE_TAGS ) THEN
16699
      RAISE_APPLICATION_ERROR (-20000, 'Please contact the person in charge of Release Manager now.' );
16700
   END IF
16701
 
16702
   /*-------------------------------------------------------*/
16703
   UPDATE release_content rc
16704
      SET rc.pkg_state = 5                          -- enumPKG_STATE_NEW_PATCH
16705
    WHERE rc.pv_id IN (
16706
             SELECT prod.pv_id
16707
               FROM (SELECT   pp.pv_id AS orig_parent_id,
16708
                              COUNT (*) AS num_of_patches
16709
                         FROM release_content rc, package_patches pp
16710
                        WHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagid
16711
                     GROUP BY pp.pv_id) orig,
16712
                    (SELECT   prodpp.pv_id, pp.pv_id AS parent_id,
16713
                              COUNT (*) AS num_of_patches
16714
                         FROM release_content rc,
16715
                              package_patches pp,
16716
                              package_dependencies dep,
16717
                              package_versions pv,
16718
                              package_patches prodpp
16719
                        WHERE rc.pv_id = pp.pv_id
16720
                          AND rc.rtag_id = nrtagid
16721
                          AND pp.patch_id = dep.dpv_id
16722
                          AND dep.pv_id = pv.pv_id
16723
                          AND pv.is_patch = 'Y'
16724
                          AND pv.dlocked = 'Y'
16725
                          AND prodpp.patch_id = dep.pv_id
16726
                     GROUP BY prodpp.pv_id, pp.pv_id) prod,
16727
                    release_content rc
16728
              WHERE orig.orig_parent_id = prod.pv_id
16729
                AND orig.num_of_patches != prod.num_of_patches
16730
                AND rc.rtag_id = nrtagid
16731
                AND rc.pv_id = prod.pv_id
16732
                AND rc.pkg_state = 0
16733
             UNION
16734
             SELECT   prodpp.pv_id
16735
                 FROM release_content rc,
16736
                      package_patches pp,
16737
                      package_dependencies dep,
1373 dpurdie 16738
                      package_versions pv,
3959 dpurdie 16739
                      package_patches prodpp
16740
                WHERE rc.pv_id = pp.pv_id
16741
                  AND rc.rtag_id = nrtagid
16742
                  AND pp.patch_id = dep.dpv_id
1373 dpurdie 16743
                  AND dep.pv_id = pv.pv_id
3959 dpurdie 16744
                  AND pv.is_patch = 'Y'
16745
                  AND pv.dlocked = 'Y'
16746
                  AND prodpp.patch_id = dep.pv_id
16747
             GROUP BY prodpp.pv_id, pp.pv_id
16748
             MINUS
16749
             SELECT   pp.pv_id
16750
                 FROM release_content rc, package_patches pp
16751
                WHERE rc.pv_id = pp.pv_id AND rc.rtag_id = nrtagid
16752
             GROUP BY pp.pv_id);
16753
END check_new_patches;
4040 dpurdie 16754
 
1374 dpurdie 16755
/
4040 dpurdie 16756
--------------------------------------------------------
16757
--  DDL for Procedure CLEAN_ADVISORY_RIPPLE
16758
--------------------------------------------------------
16759
set define off;
16760
 
5172 dpurdie 16761
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAN_ADVISORY_RIPPLE" (nrtagid IN NUMBER)
3959 dpurdie 16762
IS
16763
/******************************************************************************
16764
   NAME:       clean_advisory_ripple
1373 dpurdie 16765
 
3959 dpurdie 16766
   PURPOSE:    To delete entries from the advisory_ripple table based upon
16767
               an RTAG_ID only
1373 dpurdie 16768
 
3959 dpurdie 16769
               This is a tidy-up operation performed against the advisory_ripple
16770
               table, ensuring that the table does not have rtag_id/pv_id
16771
               combinations that cannot be found in the release's wip/pending/release
16772
               tabs.
16773
 
16774
******************************************************************************/
1373 dpurdie 16775
BEGIN
3959 dpurdie 16776
   -- Delete any invalid rtag_id/pv_id combination from the advisory_ripple table.
16777
   -- An invalid rtag_id/pv_id combination is one that cannot be found in the
16778
   -- work_in_progress, planned, or release_content table.
16779
   -- NOTE: Planned operations that represent pending additive/subtractive merge
16780
   -- operations are ignored because they have not been approved yet and so
16781
   -- cannot be said to be "in the release".
16782
   DELETE FROM advisory_ripple
16783
         WHERE rtag_id = nrtagid
16784
           AND pv_id not in
16785
               ((SELECT pv_id FROM release_content WHERE rtag_id = nrtagid)
16786
                 UNION
16787
                (SELECT pv_id FROM work_in_progress WHERE rtag_id = nrtagid)
16788
                 UNION
16789
                (SELECT pv_id FROM planned WHERE rtag_id = nrtagid AND (operation is null OR operation = 'R'))
16790
               );
16791
END clean_advisory_ripple;
4040 dpurdie 16792
 
3959 dpurdie 16793
/
4040 dpurdie 16794
--------------------------------------------------------
16795
--  DDL for Procedure CLEAN_DO_NOT_RIPPLE
16796
--------------------------------------------------------
16797
set define off;
16798
 
5172 dpurdie 16799
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAN_DO_NOT_RIPPLE" (nrtagid IN NUMBER)
3959 dpurdie 16800
IS
16801
/******************************************************************************
16802
   NAME:       clean_do_not_ripple
1373 dpurdie 16803
 
3959 dpurdie 16804
   PURPOSE:    To delete entries from the do_not_ripple table based upon
16805
               an RTAG_ID only
16806
 
16807
               This is a tidy-up operation performed against the do_not_ripple
16808
               table, ensuring that the table does not have rtag_id/pv_id
16809
               combinations that cannot be found in the release's wip/pending/release
16810
               tabs.
16811
 
16812
******************************************************************************/
16813
BEGIN
16814
   -- Delete any invalid rtag_id/pv_id combination from the do_not_ripple table.
16815
   -- An invalid rtag_id/pv_id combination is one that cannot be found in the
16816
   -- work_in_progress, planned, or release_content table.
16817
   -- NOTE: Planned operations that represent pending additive/subtractive merge
16818
   -- operations are ignored because they have not been approved yet and so
16819
   -- cannot be said to be "in the release".
16820
   DELETE FROM do_not_ripple
16821
         WHERE rtag_id = nrtagid
16822
           AND pv_id not in
16823
               ((SELECT pv_id FROM release_content WHERE rtag_id = nrtagid)
16824
                 UNION
16825
                (SELECT pv_id FROM work_in_progress WHERE rtag_id = nrtagid)
16826
                 UNION
16827
                (SELECT pv_id FROM planned WHERE rtag_id = nrtagid AND (operation is null OR operation = 'R'))
16828
               );
16829
END clean_do_not_ripple;
4040 dpurdie 16830
 
1374 dpurdie 16831
/
4040 dpurdie 16832
--------------------------------------------------------
16833
--  DDL for Procedure CLEAR_ADVISORY_RIPPLE
16834
--------------------------------------------------------
16835
set define off;
16836
 
5172 dpurdie 16837
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLEAR_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 16838
	   	  		  							   nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
16839
											 nUserId IN NUMBER ) IS
1373 dpurdie 16840
/* ---------------------------------------------------------------------------
3959 dpurdie 16841
    Version: 4.0
1373 dpurdie 16842
   --------------------------------------------------------------------------- */
16843
 
16844
BEGIN
16845
 
3959 dpurdie 16846
    -- Clear Advisory Ripple Package
16847
    DELETE FROM ADVISORY_RIPPLE
16848
	WHERE PV_ID = nPvId
16849
	AND RTAG_ID = nRtagId;
1373 dpurdie 16850
 
3959 dpurdie 16851
    /* LOG ACTION */
16852
   	Log_Action ( nPvId, 'clear_advisory_ripple', nUserId );
6031 dpurdie 16853
 
3959 dpurdie 16854
	/*Rebuild_Environment(nRtagId);*/
1373 dpurdie 16855
 
3959 dpurdie 16856
END Clear_Advisory_Ripple;
4040 dpurdie 16857
 
1374 dpurdie 16858
/
4040 dpurdie 16859
--------------------------------------------------------
16860
--  DDL for Procedure CLONED_PACKAGE_PROCESSES
16861
--------------------------------------------------------
16862
set define off;
16863
 
5172 dpurdie 16864
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLONED_PACKAGE_PROCESSES" 
3959 dpurdie 16865
IS
1373 dpurdie 16866
 
3959 dpurdie 16867
proc_id NUMBER;
1373 dpurdie 16868
/******************************************************************************
3959 dpurdie 16869
   NAME:       DELETE_DO_NOT_RIPPLE
16870
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
16871
               IS RELEASED
1373 dpurdie 16872
 
16873
   REVISIONS:
16874
   Ver        Date        Author           Description
16875
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 16876
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
1373 dpurdie 16877
 
16878
   NOTES:
16879
 
16880
   Automatically available Auto Replace Keywords:
3959 dpurdie 16881
      Object Name:     DELETE_DO_NOT_RIPPLE
16882
      Sysdate:         21/04/2006
16883
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
1373 dpurdie 16884
      Username:         (set in TOAD Options, Procedure Editor)
16885
      Table Name:       (set in the "New PL/SQL Object" dialog)
16886
 
16887
******************************************************************************/
3959 dpurdie 16888
   CURSOR ripple_cur
16889
   IS
16890
      select distinct proc_id, prod_id from deployment_manager.processes_config;
16891
 
16892
   ripple_rec   ripple_cur%ROWTYPE;
1373 dpurdie 16893
BEGIN
3959 dpurdie 16894
   OPEN ripple_cur;
1373 dpurdie 16895
 
3959 dpurdie 16896
   FETCH ripple_cur
16897
    INTO ripple_rec;
1373 dpurdie 16898
 
3959 dpurdie 16899
   WHILE ripple_cur%FOUND
16900
   LOOP
1373 dpurdie 16901
 
6031 dpurdie 16902
 
16903
 
16904
insert into package_processes (PROC_ID, PV_ID)
3959 dpurdie 16905
values( ripple_rec.proc_id, ripple_rec.prod_id);
16906
 
16907
      FETCH ripple_cur
16908
       INTO ripple_rec;
16909
   END LOOP;
16910
END CLONED_PACKAGE_PROCESSES;
4040 dpurdie 16911
 
1374 dpurdie 16912
/
4040 dpurdie 16913
--------------------------------------------------------
16914
--  DDL for Procedure CLONED_PROCESSES
16915
--------------------------------------------------------
16916
set define off;
16917
 
5172 dpurdie 16918
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."CLONED_PROCESSES" 
3959 dpurdie 16919
IS
16920
 
16921
proc_id NUMBER;
16922
/******************************************************************************
16923
   NAME:       DELETE_DO_NOT_RIPPLE
16924
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
16925
               IS RELEASED
16926
 
16927
   REVISIONS:
16928
   Ver        Date        Author           Description
16929
   ---------  ----------  ---------------  ------------------------------------
16930
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
16931
 
16932
   NOTES:
16933
 
16934
   Automatically available Auto Replace Keywords:
16935
      Object Name:     DELETE_DO_NOT_RIPPLE
16936
      Sysdate:         21/04/2006
16937
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
16938
      Username:         (set in TOAD Options, Procedure Editor)
16939
      Table Name:       (set in the "New PL/SQL Object" dialog)
16940
 
16941
******************************************************************************/
16942
   CURSOR ripple_cur
16943
   IS
16944
      select distinct pkg_health_tag, cmd_interface, pkg_owner, is_interface from deployment_manager.processes_config;
16945
 
16946
   ripple_rec   ripple_cur%ROWTYPE;
1373 dpurdie 16947
BEGIN
3959 dpurdie 16948
   OPEN ripple_cur;
1373 dpurdie 16949
 
3959 dpurdie 16950
   FETCH ripple_cur
16951
    INTO ripple_rec;
1373 dpurdie 16952
 
3959 dpurdie 16953
   WHILE ripple_cur%FOUND
16954
   LOOP
6031 dpurdie 16955
 
3959 dpurdie 16956
   select deployment_manager.seq_proc_id.nextval into proc_id from dual;
6031 dpurdie 16957
 
16958
insert into processes (PROC_ID, PROC_NAME, RUN_AS, PKG_OWNER, IS_INTERFACE)
3959 dpurdie 16959
values(proc_id, ripple_rec.pkg_health_tag, ripple_rec.cmd_interface, ripple_rec.pkg_owner, ripple_rec.is_interface);
1373 dpurdie 16960
 
3959 dpurdie 16961
      FETCH ripple_cur
16962
       INTO ripple_rec;
16963
   END LOOP;
16964
END CLONED_PROCESSES;
4040 dpurdie 16965
 
1374 dpurdie 16966
/
4040 dpurdie 16967
--------------------------------------------------------
16968
--  DDL for Procedure DELETE_AUTOBUILD_FAILURE_INFO
16969
--------------------------------------------------------
16970
set define off;
16971
 
5172 dpurdie 16972
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DELETE_AUTOBUILD_FAILURE_INFO" 
3959 dpurdie 16973
IS
1373 dpurdie 16974
/******************************************************************************
3959 dpurdie 16975
   NAME:       DELETE_AUTOBUILD_FAILURE_INFO
16976
   PURPOSE:
1373 dpurdie 16977
 
16978
   REVISIONS:
3959 dpurdie 16979
   Ver        Date        Author           Description
1373 dpurdie 16980
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 16981
   1.0        2/06/2006    Rupesh Solanki      1. Created this procedure.
1373 dpurdie 16982
 
16983
   NOTES:
16984
 
16985
   Automatically available Auto Replace Keywords:
3959 dpurdie 16986
      Object Name:     DELETE_AUTOBUILD_FAILURE_INFO
16987
      Sysdate:         2/06/2006
16988
      Date and Time:   2/06/2006, 8:44:25 AM, and 2/06/2006 8:44:25 AM
1373 dpurdie 16989
      Username:         (set in TOAD Options, Procedure Editor)
16990
      Table Name:       (set in the "New PL/SQL Object" dialog)
16991
 
16992
******************************************************************************/
16993
BEGIN
3959 dpurdie 16994
   DELETE FROM autobuild_failure
16995
         WHERE group_email_id NOT IN (SELECT group_email_id
16996
                                        FROM members_group);
16997
END delete_autobuild_failure_info;
4040 dpurdie 16998
 
1374 dpurdie 16999
/
4040 dpurdie 17000
--------------------------------------------------------
17001
--  DDL for Procedure DEPRECATE_PACKAGE
17002
--------------------------------------------------------
17003
set define off;
17004
 
5384 dpurdie 17005
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DEPRECATE_PACKAGE" (
17006
    nPvId     IN PACKAGE_VERSIONS.PV_ID%TYPE,
17007
    nRtagId   IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,
17008
    nPkgId    IN DEPRECATED_PACKAGES.PKG_ID%TYPE,
17009
    sComments IN DEPRECATED_PACKAGES.COMMENTS%TYPE,
17010
    nUserId   IN NUMBER)
17011
IS
17012
  ext VARCHAR2(50);
1373 dpurdie 17013
BEGIN
5384 dpurdie 17014
  --Extract the package version extension
17015
  SELECT V_EXT INTO ext
17016
  FROM PACKAGE_VERSIONS
17017
  WHERE PV_ID = nPvId;
6031 dpurdie 17018
 
5384 dpurdie 17019
  -- Deprecate Package
17020
  INSERT INTO DEPRECATED_PACKAGES
17021
    ( RTAG_ID, PKG_ID, COMMENTS, V_EXT )
17022
    VALUES ( nRtagId, nPkgId, sComments, ext );
6031 dpurdie 17023
 
5384 dpurdie 17024
  -- Update Release Contents entry
17025
  -- Process PackageName.ext for the package. ie: Allow multiple
17026
  -- versions of the package to be in the release.
17027
    UPDATE RELEASE_CONTENT
6031 dpurdie 17028
    SET
5384 dpurdie 17029
      DEPRECATED_STATE = 6
17030
    WHERE RTAG_ID      = nRtagId
17031
    AND PV_ID IN (
17032
      SELECT PV.PV_ID
17033
      FROM PACKAGE_VERSIONS PV
17034
      WHERE PV.PKG_ID   = nPkgId
17035
      AND NVL(PV.V_EXT, '.NULL') = NVL(ext,'.NULL')
17036
      );
1373 dpurdie 17037
 
5384 dpurdie 17038
  -- Update consumers of the package
17039
  --  Update ALL packages in the Release
6031 dpurdie 17040
 
5384 dpurdie 17041
  REBUILD_DEPRECATE_STATE(nRtagId);
3959 dpurdie 17042
END Deprecate_Package;
4040 dpurdie 17043
 
1374 dpurdie 17044
/
4040 dpurdie 17045
--------------------------------------------------------
17046
--  DDL for Procedure DT_DROPUSEROBJECTBYID
17047
--------------------------------------------------------
17048
set define off;
17049
 
5172 dpurdie 17050
  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 17051
 
1374 dpurdie 17052
/
4040 dpurdie 17053
--------------------------------------------------------
17054
--  DDL for Procedure DT_SETPROPERTYBYID
17055
--------------------------------------------------------
17056
set define off;
17057
 
5384 dpurdie 17058
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."DT_SETPROPERTYBYID" (
17059
    PARAM_ID       IN NUMBER,
17060
    PARAM_PROPERTY IN VARCHAR2,
17061
    PARAM_VALUE    IN VARCHAR2,
17062
    PARAM_LVALUE   IN LONG RAW )
17063
AS
17064
BEGIN
17065
  DECLARE
17066
    X NUMBER(38);
17067
  BEGIN
17068
    SELECT COUNT(*)
17069
    INTO X
17070
    FROM MICROSOFTDTPROPERTIES
17071
    WHERE OBJECTID=PARAM_ID
17072
    AND PROPERTY  =PARAM_PROPERTY;
17073
    IF X          = 0 THEN
17074
      INSERT
17075
      INTO MICROSOFTDTPROPERTIES
17076
        (
17077
          ID,
17078
          PROPERTY,
17079
          OBJECTID,
17080
          VALUE,
17081
          LVALUE,
17082
          VERSION
17083
        )
17084
        VALUES
17085
        (
17086
          MICROSOFTSEQDTPROPERTIES.NEXTVAL,
17087
          PARAM_PROPERTY,
17088
          PARAM_ID,
17089
          PARAM_VALUE,
17090
          PARAM_LVALUE,
17091
 
17092
        );
17093
    ELSE
17094
      UPDATE MICROSOFTDTPROPERTIES
17095
      SET VALUE     =PARAM_VALUE,
17096
        LVALUE      =PARAM_LVALUE,
17097
        VERSION     =VERSION+1
17098
      WHERE OBJECTID=PARAM_ID
17099
      AND PROPERTY  =PARAM_PROPERTY;
17100
    END IF;
17101
  END;
17102
END DT_SETPROPERTYBYID;
4040 dpurdie 17103
 
3959 dpurdie 17104
/
4040 dpurdie 17105
--------------------------------------------------------
17106
--  DDL for Procedure IGNORE_DEPENDENCY_WARNINGS
17107
--------------------------------------------------------
17108
set define off;
17109
 
5172 dpurdie 17110
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."IGNORE_DEPENDENCY_WARNINGS" ( nRtagId IN IGNORE_WARNINGS.RTAG_ID%TYPE,
3959 dpurdie 17111
                                                         nPvId IN IGNORE_WARNINGS.PV_ID%TYPE,
17112
                                                         sIgnoreIdList IN VARCHAR2,
17113
                                                         bDoPatchIgnore IN BOOLEAN DEFAULT FALSE,
17114
                                                         nUserId IN NUMBER DEFAULT NULL ) IS
17115
/* ---------------------------------------------------------------------------
17116
    Updates the ignore warnings table - this is really two functions in one.
17117
 
17118
    1) One function updates the table based on a list of dependent PV_IDs and a parent PV_ID
17119
       and is called from the RM website's SetIgnoreWarnings() function after a user changes
17120
       the ignore warnings checkboxes and submits the form.
17121
       This can (at time of writing this) only be done within releases that are not build
17122
       daemon enabled. The ignore warnings feature is a feature we would like to see the end
17123
       of in an ideal world.
17124
       The SetIgnoreWarnings() website function now calls Touch_Release so there is no need to
17125
       do so in this stored procedure, thereby making this stored procedure much more precise in
17126
       that it only updates the ignore_warnings table (action log table too although that is just
17127
       a log and doesn't affect any subsequent business rules behaviour) and it cares nothing
17128
       about website presentation layer states, etc.
17129
 
17130
    2) The other function updates the table for out of sync dependencies that have in fact
17131
       been satisfied by patches made to some other product in the release.
17132
       This seems to be a seldom used feature in current projects.
17133
       It is probably the most often taken path through this function given that it occurs when
17134
       this function is called from Rebuild_Environment, and that is called in many circumstances
17135
       from the RM website whenever the seems to be a possibility that the state of a package
17136
       in a release might have changed and therefore affects the state of other packages in
17137
       that same release.
17138
 
17139
    Parameter Usage:
17140
                        when called from    | when called from
17141
                        Rebuild_Environment | SetIgnoreWarnings()
17142
                        stored procedure.   | in the Website
17143
      --------------------------------------+----------------------------
17144
      nRtagId           RTAG_ID             | RTAG_ID
17145
      nPvId             NULL                | PV_ID
17146
      sIgnoreIdList     NULL                | list of dependent PV_ID's
17147
      bDoPatchIgnore    TRUE                | FALSE
17148
      nUserId           NULL                | current user ID
17149
   --------------------------------------------------------------------------- */
17150
 
17151
oIgnoreIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
17152
ReleaseLocation VARCHAR2(4000);
17153
ActionTypeId NUMBER;
17154
 
1373 dpurdie 17155
BEGIN
17156
 
3959 dpurdie 17157
   IF (NOT bDoPatchIgnore) THEN
17158
      /* Manual Ignore Warnings - this execution path is the one taken when called from SetIgnoreWarnings() in the Website
17159
      */
17160
      oIgnoreIdCollector := IN_LIST_NUMBER ( sIgnoreIdList );
1373 dpurdie 17161
 
17162
 
3959 dpurdie 17163
      /* Log Action */
17164
      -- Get Release Location
17165
      SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
17166
        FROM PROJECTS proj,
17167
             RELEASE_TAGS rt
17168
       WHERE rt.PROJ_ID = proj.PROJ_ID
17169
         AND rt.RTAG_ID = nRtagId;
1373 dpurdie 17170
 
3959 dpurdie 17171
      -- Get Action Type Id for IGNORE_ON
17172
      SELECT act.ACTTYPE_ID INTO ActionTypeId
17173
        FROM ACTION_TYPE act
17174
       WHERE act.NAME = 'ignore_on';
17175
 
17176
      -- Get Ignored (Current MINUS Old)
5172 dpurdie 17177
      INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
17178
      SELECT nUserId, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeId
3959 dpurdie 17179
        FROM (
17180
              SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_ID
17181
                FROM PACKAGE_VERSIONS pv
17182
               WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
17183
              MINUS
17184
              SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_ID
17185
                FROM IGNORE_WARNINGS igw
17186
               WHERE igw.RTAG_ID = nRtagId
17187
                 AND igw.PV_ID = nPvId
17188
             ) qry,
17189
             PACKAGE_VERSIONS pv,
17190
             PACKAGES pkg,
17191
             RELEASE_CONTENT rc,
17192
             PACKAGE_VERSIONS rpv
17193
       WHERE pv.PKG_ID = pkg.PKG_ID
17194
         AND rc.RTAG_ID = nRtagId
17195
         AND rc.PV_ID = rpv.PV_ID
17196
         AND rpv.PKG_ID = pv.PKG_ID
17197
         AND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )
17198
         AND qry.DPV_ID = pv.PV_ID;
17199
 
17200
 
17201
      -- Get Action Type Id for IGNORE_OFF
17202
      SELECT act.ACTTYPE_ID INTO ActionTypeId
17203
        FROM ACTION_TYPE act
17204
       WHERE act.NAME = 'ignore_off';
17205
 
17206
      -- Get UnIgnored (Old MINUS Current)
5172 dpurdie 17207
      INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
17208
      SELECT nUserId, nPvId, pkg.PKG_NAME ||' '|| rpv.PKG_VERSION ||' at '|| ReleaseLocation, ActionTypeId
3959 dpurdie 17209
        FROM (
17210
              SELECT igw.RTAG_ID, igw.PV_ID, igw.DPV_ID
17211
                FROM IGNORE_WARNINGS igw
17212
               WHERE igw.RTAG_ID = nRtagId
17213
                 AND igw.PV_ID = nPvId
17214
              MINUS
17215
              SELECT TO_NUMBER(nRtagId) AS RTAG_ID, TO_NUMBER(nPvId), pv.PV_ID AS DPV_ID
17216
                FROM PACKAGE_VERSIONS pv
17217
               WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
17218
             ) qry,
17219
             PACKAGE_VERSIONS pv,
17220
             PACKAGES pkg,
17221
             RELEASE_CONTENT rc,
17222
             PACKAGE_VERSIONS rpv
17223
       WHERE pv.PKG_ID = pkg.PKG_ID
17224
         AND rc.RTAG_ID = nRtagId
17225
         AND rc.PV_ID = rpv.PV_ID
17226
         AND rpv.PKG_ID = pv.PKG_ID
17227
         AND NVL( rpv.V_EXT, 'LINK_A_NULL' ) = NVL( pv.V_EXT, 'LINK_A_NULL' )
17228
         AND qry.DPV_ID = pv.PV_ID;
17229
 
17230
 
17231
      -- Delete Current Ignore Warnings
17232
      DELETE
17233
        FROM IGNORE_WARNINGS igw
17234
       WHERE igw.RTAG_ID = nRtagId
17235
         AND igw.PV_ID = nPvId
17236
         AND igw.IS_PATCH_IGNORE IS NULL;
17237
 
17238
 
17239
      IF (oIgnoreIdCollector.COUNT > 0) THEN
17240
         -- Insert Ignore Warnings
17241
         INSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID )
17242
         SELECT nRtagId,
17243
                nPvId,
17244
                pv.PV_ID AS DPV_ID
17245
           FROM PACKAGE_VERSIONS pv
17246
          WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oIgnoreIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
17247
      END IF;
17248
 
17249
   ELSE
17250
      /* Patch Ignore Warnings - this execution path is the one taken when called from the Rebuild_Environment stored procedure */
17251
 
17252
      -- Delete Current Patch Ignore Warnings
17253
      DELETE
17254
        FROM IGNORE_WARNINGS igw
17255
       WHERE igw.RTAG_ID = nRtagId
17256
         AND igw.IS_PATCH_IGNORE = 'Y';
17257
 
17258
 
17259
      -- Delete Manual Ignores that need to be Patch Ignores
17260
      DELETE
17261
        FROM IGNORE_WARNINGS igw
17262
       WHERE ( RTAG_ID, PV_ID, DPV_ID ) IN
17263
             (
17264
              SELECT DISTINCT
17265
                     nRtagId,
17266
                     err.PV_ID,
17267
                     err.ERR_DPV AS DPV_ID
17268
               FROM  (
17269
                      /* Full Release Contents used for reference*/
17270
                      SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext
17271
                        FROM release_content rel, package_versions rpv
17272
                       WHERE rel.pv_id = rpv.pv_id
17273
                         AND rtag_id = nRtagId
17274
                     ) frc,
17275
                     (
17276
                      /* DPV_IDs not fount in release*/
17277
                      SELECT dep.pv_id, dep.dpv_id AS err_dpv
17278
                        FROM package_dependencies dep
17279
                       WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
17280
                         AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
17281
                     ) err,
17282
                     (
17283
                      SELECT DISTINCT pp.PV_ID, dep.DPV_ID
17284
                        FROM PACKAGE_PATCHES pp,
17285
                             PACKAGE_DEPENDENCIES dep,
17286
                             RELEASE_CONTENT rc
17287
                       WHERE rc.RTAG_ID = nRtagId
17288
                         AND rc.PV_ID = pp.PV_ID
17289
                         AND dep.PV_ID = pp.PATCH_ID
17290
                     ) pp,
17291
                     package_versions errpkg,
17292
                     package_versions errpv
17293
               WHERE err.err_dpv = errpv.pv_id
17294
                 AND errpv.pkg_id = frc.pkg_id(+)
17295
                 AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
17296
                 AND err.pv_id = errpkg.pv_id
17297
                 AND err.PV_ID = pp.PV_ID
17298
                 AND frc.PV_ID = pp.DPV_ID
17299
             );
17300
 
17301
      /*
17302
      ---------------------------------------------------
17303
      --  Make sure that select statement above and below are same
17304
      ---------------------------------------------------
17305
      */
17306
 
17307
      -- Insert Patch Ignores
17308
      INSERT INTO IGNORE_WARNINGS igw ( RTAG_ID, PV_ID, DPV_ID, IS_PATCH_IGNORE )
17309
      SELECT DISTINCT
17310
             nRtagId,
17311
             err.PV_ID,
17312
             err.ERR_DPV AS DPV_ID,
17313
             'Y'
17314
        FROM (
17315
              /* Full Release Contents used for reference*/
17316
              SELECT rpv.PV_ID, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext
17317
                FROM release_content rel, package_versions rpv
17318
               WHERE rel.pv_id = rpv.pv_id
17319
                 AND rtag_id = nRtagId
17320
             ) frc,
17321
             (
17322
               /* DPV_IDs not fount in release*/
17323
               SELECT dep.pv_id, dep.dpv_id AS err_dpv
17324
                 FROM package_dependencies dep
17325
                WHERE dep.pv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
17326
                  AND NOT dep.dpv_id IN ( SELECT pv_id FROM release_content WHERE rtag_id = nRtagId )
17327
             ) err,
17328
             (
17329
              SELECT DISTINCT pp.PV_ID, dep.DPV_ID
17330
                FROM PACKAGE_PATCHES pp,
17331
                     PACKAGE_DEPENDENCIES dep,
17332
                     RELEASE_CONTENT rc
17333
               WHERE rc.RTAG_ID = nRtagId
17334
                 AND rc.PV_ID = pp.PV_ID
17335
                 AND dep.PV_ID = pp.PATCH_ID
17336
             ) pp,
17337
             package_versions errpkg,
17338
             package_versions errpv
17339
       WHERE err.err_dpv = errpv.pv_id
17340
         AND errpv.pkg_id = frc.pkg_id(+)
17341
         AND NVL(errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
17342
         AND err.pv_id = errpkg.pv_id
17343
         AND err.PV_ID = pp.PV_ID
17344
         AND frc.PV_ID = pp.DPV_ID;
17345
 
17346
    END IF;
17347
 
17348
END Ignore_Dependency_Warnings;
4040 dpurdie 17349
 
1374 dpurdie 17350
/
4040 dpurdie 17351
--------------------------------------------------------
17352
--  DDL for Procedure INSERT_INTO_PACKAGE_BUILD_INFO
17353
--------------------------------------------------------
17354
set define off;
17355
 
5172 dpurdie 17356
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."INSERT_INTO_PACKAGE_BUILD_INFO" IS
1373 dpurdie 17357
 
17358
/******************************************************************************
3959 dpurdie 17359
   NAME:       INSERT_INTO_PACKAGE_BUILD_INFO
6031 dpurdie 17360
   PURPOSE:
1373 dpurdie 17361
 
17362
   REVISIONS:
17363
   Ver        Date        Author           Description
17364
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 17365
   1.0        6/12/2006          1. Created this procedure.
1373 dpurdie 17366
 
17367
   NOTES:
17368
 
17369
   Automatically available Auto Replace Keywords:
3959 dpurdie 17370
      Object Name:     INSERT_INTO_PACKAGE_BUILD_INFO
17371
      Sysdate:         6/12/2006
17372
      Date and Time:   6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PM
1373 dpurdie 17373
      Username:         (set in TOAD Options, Procedure Editor)
17374
      Table Name:       (set in the "New PL/SQL Object" dialog)
17375
 
17376
******************************************************************************/
17377
 
17378
	CURSOR curInfo IS
3959 dpurdie 17379
    SELECT PV_ID
17380
	FROM PACKAGE_BUILD_ENV
17381
	WHERE BE_ID IN (11, 12);
1373 dpurdie 17382
    recInfo curInfo%ROWTYPE;
6031 dpurdie 17383
 
17384
 
1373 dpurdie 17385
BEGIN
17386
 
17387
	OPEN curInfo;
17388
    FETCH curInfo INTO recInfo;
6031 dpurdie 17389
 
1373 dpurdie 17390
	WHILE curInfo%FOUND
17391
	LOOP
17392
 
3959 dpurdie 17393
		INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID, BSA_ID )
17394
		VALUES( recInfo.PV_ID, 2, 5);
6031 dpurdie 17395
 
3959 dpurdie 17396
		UPDATE PACKAGE_VERSIONS SET BS_ID = 2 WHERE PV_ID = recInfo.PV_ID;
6031 dpurdie 17397
 
1373 dpurdie 17398
		FETCH curInfo INTO recInfo;
6031 dpurdie 17399
 
1373 dpurdie 17400
	END LOOP;
17401
 
17402
	CLOSE curInfo;
17403
 
17404
 
17405
 
17406
 
3959 dpurdie 17407
END INSERT_INTO_PACKAGE_BUILD_INFO;
4040 dpurdie 17408
 
1374 dpurdie 17409
/
4040 dpurdie 17410
--------------------------------------------------------
17411
--  DDL for Procedure INSERT_MULTIPLE_STICKY_NOTES
17412
--------------------------------------------------------
17413
set define off;
17414
 
5172 dpurdie 17415
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."INSERT_MULTIPLE_STICKY_NOTES" IS
1373 dpurdie 17416
 
3959 dpurdie 17417
/******************************************************************************
17418
   NAME:       INSERT_MULTIPLE_STICKY_NOTES
6031 dpurdie 17419
   PURPOSE:
1373 dpurdie 17420
 
3959 dpurdie 17421
   REVISIONS:
17422
   Ver        Date        Author           Description
17423
   ---------  ----------  ---------------  ------------------------------------
17424
   1.0        6/12/2006          1. Created this procedure.
1373 dpurdie 17425
 
3959 dpurdie 17426
   NOTES:
1373 dpurdie 17427
 
3959 dpurdie 17428
   Automatically available Auto Replace Keywords:
17429
      Object Name:     INSERT_MULTIPLE_STICKY_NOTES
17430
      Sysdate:         6/12/2006
17431
      Date and Time:   6/12/2006, 1:53:40 PM, and 6/12/2006 1:53:40 PM
17432
      Username:         (set in TOAD Options, Procedure Editor)
17433
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 17434
 
3959 dpurdie 17435
******************************************************************************/
1373 dpurdie 17436
 
3959 dpurdie 17437
	CURSOR curInfo IS
17438
    SELECT PV_ID
17439
	FROM PACKAGE_BUILD_ENV
17440
	WHERE BE_ID IN (11, 12);
17441
    recInfo curInfo%ROWTYPE;
6031 dpurdie 17442
 
17443
 
1373 dpurdie 17444
BEGIN
17445
 
3959 dpurdie 17446
	OPEN curInfo;
17447
    FETCH curInfo INTO recInfo;
6031 dpurdie 17448
 
3959 dpurdie 17449
	WHILE curInfo%FOUND
17450
	LOOP
1373 dpurdie 17451
 
3959 dpurdie 17452
		INSERT INTO NOTE_MANAGER ( NID, LAST_USER, LAST_DATE, DESCRIPTION )
17453
		VALUES( recInfo.PV_ID, 'awehalle', ORA_SYSDATETIME, '' );
6031 dpurdie 17454
 
3959 dpurdie 17455
		FETCH curInfo INTO recInfo;
6031 dpurdie 17456
 
3959 dpurdie 17457
	END LOOP;
1373 dpurdie 17458
 
3959 dpurdie 17459
	CLOSE curInfo;
1373 dpurdie 17460
 
17461
 
17462
 
17463
 
3959 dpurdie 17464
END INSERT_MULTIPLE_STICKY_NOTES;
4040 dpurdie 17465
 
1374 dpurdie 17466
/
4040 dpurdie 17467
--------------------------------------------------------
17468
--  DDL for Procedure LEVEL_N_CONFLICTS
17469
--------------------------------------------------------
17470
set define off;
17471
 
5172 dpurdie 17472
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LEVEL_N_CONFLICTS" (
3959 dpurdie 17473
   nnrtag_id       IN       NUMBER,
17474
   nnsession_num   IN       NUMBER,
17475
   nnrowcnt        OUT      NUMBER,
17476
   nniteration     IN       NUMBER
17477
)
17478
IS
1373 dpurdie 17479
/* ---------------------------------------------------------------------------
3959 dpurdie 17480
    Version: 3.0.1
1373 dpurdie 17481
   --------------------------------------------------------------------------- */
3959 dpurdie 17482
   previteration   NUMBER := nniteration - 1;
1373 dpurdie 17483
BEGIN
5384 dpurdie 17484
  -- Map broken dependency information from a package into a consumer
17485
  -- package. ie: Ripple need-to-build info up the dependency tree.
17486
 
3959 dpurdie 17487
   /* ---------  LEVEL 1 CONFILCTS -----------
17488
   || Following states are used:
17489
   || 0 -> NOT FOUND
17490
   || 1 -> MAJOR
17491
   || 2 -> MINOR MINOR
17492
   */
17493
   INSERT INTO temp_env_states
5384 dpurdie 17494
               SELECT DISTINCT nnsession_num AS session_num, nniteration AS level_num,
17495
                      dpv.pv_id, dpv.pkg_id, dpv.v_ext,
6031 dpurdie 17496
                      DECODE (tes.tes_state, 2, 2, 1) AS MESSAGE,
17497
                      'X'
5384 dpurdie 17498
                 FROM TEMP_ENV_DEPS dpv,
3959 dpurdie 17499
                      temp_env_states tes
5384 dpurdie 17500
                WHERE dpv.SESSION_NUM = nnsession_num
17501
                  AND dpv.dpkg_id = tes.pkg_id
17502
                  AND NVL (dpv.dv_ext, '|LINK_A_NULL|') = NVL (tes.v_ext, '|LINK_A_NULL|')
3959 dpurdie 17503
                  AND tes.session_num = nnsession_num
5384 dpurdie 17504
                  AND tes.level_num = previteration;
1373 dpurdie 17505
 
3959 dpurdie 17506
   nnrowcnt := SQL%ROWCOUNT;
17507
END level_n_conflicts;
4040 dpurdie 17508
 
1374 dpurdie 17509
/
4040 dpurdie 17510
--------------------------------------------------------
17511
--  DDL for Procedure LEVEL_ONE_CONFLICTS
17512
--------------------------------------------------------
17513
set define off;
17514
 
5172 dpurdie 17515
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LEVEL_ONE_CONFLICTS" (
1373 dpurdie 17516
   nnrtag_id       IN   NUMBER,
17517
   nnsession_num   IN   NUMBER
17518
)
17519
IS
17520
BEGIN
5384 dpurdie 17521
  --  Prepare the TEMP_ENV_DEPS table
17522
  --  This table maps package-versions to their dependencies and is
17523
  --  used to walk up the dependency tree.
17524
  --  This table consists of PV_ID -> DPV_ID in the release in which we are interested
17525
  --  ie: Those that ARE NOT a part of:
17526
  --    Pegged Package
17527
  --    SDK imported package
17528
  --    Marked with an ignore warnings
17529
  --    Marked as an advisory ripple
17530
  --
17531
  --  This table speeds up the process by a huge (really huge) amount
17532
  --
17533
      INSERT into TEMP_ENV_DEPS
17534
      (
17535
      SELECT DISTINCT nnsession_num AS session_num,
17536
                      pv.pv_id, pv.pkg_id, pv.v_ext,
17537
                      dpv.pv_id as dpv_id, dpv.pkg_id as dpkg_id, dpv.v_ext as dv_ext
6031 dpurdie 17538
 
5384 dpurdie 17539
                 FROM release_content rel,
17540
                      package_dependencies dep,
17541
                      package_versions dpv,
17542
                      package_versions pv
6031 dpurdie 17543
 
5384 dpurdie 17544
                WHERE rel.pv_id = dep.pv_id
17545
                  AND rel.rtag_id = nnrtag_id
17546
                  AND dep.pv_id = pv.pv_id
17547
                  AND dep.dpv_id = dpv.pv_id
17548
                  --AND rel.SDKTAG_ID is null
17549
                  --AND NOT dep.pv_id IN (SELECT pegv.pv_id FROM PEGGED_VERSIONS pegv WHERE pegv.rtag_id = nnrtag_id)
17550
                  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)
17551
                  );
17552
 
1373 dpurdie 17553
   /* ---------  LEVEL 1 CONFILCTS -----------
17554
   || Following states are used:
17555
   || 0 -> NOT FOUND
17556
   || 1 -> MAJOR
17557
   || 2 -> MINOR MINOR
17558
   */
17559
   INSERT INTO temp_env_states
6600 dpurdie 17560
   (
17561
      SELECT nnsession_num AS session_num, 
17562
        1 AS level_num,
17563
        rd.pv_id, 
17564
        rd.pkg_id, 
17565
        rd.v_ext,
17566
        DECODE (rd.v_nmm,
17567
                    NULL, 0,
17568
                    pv2.v_nmm, DECODE (rd.v_mm,
17569
                                       pv2.v_mm, 0,
17570
                                                 2
17571
                                       ),
17572
                    1
17573
              ) AS MESSAGE,
17574
        rd.build_type
17575
from (
17576
      SELECT DISTINCT err.pv_id, errpkg.pkg_id, errpkg.v_ext,
17577
                      frc.build_type,
17578
                      frc.v_nmm,
17579
                      frc.v_mm,
17580
                      errpv.pv_id as errpv_id
1373 dpurdie 17581
                 FROM (
17582
                       /* Full Release Contents used for reference*/
17583
                        SELECT rel.rtag_id, rpv.pv_id, rpv.pkg_id,
17584
                                NVL (rpv.v_ext, '|LINK_A_NULL|') AS v_ext,
17585
                                rpv.pkg_version, rpv.v_nmm, rpv.v_mm,
6031 dpurdie 17586
                                (SELECT COUNT(*) FROM ADVISORY_RIPPLE avr WHERE avr.rtag_id = rel.rtag_id AND avr.pv_id = rel.pv_id ) AS IsAvr,
17587
                                rpv.build_type
1373 dpurdie 17588
                          FROM release_content rel,
17589
                                package_versions rpv
17590
                          WHERE rel.pv_id = rpv.pv_id
17591
                             AND rtag_id = nnrtag_id
17592
                      ) frc,
17593
 
17594
                      (
5384 dpurdie 17595
                       /* DPV_IDs not found in release. Excluding:
17596
                              Those from pegged versions
17597
                              Those from packages imported via an SDK
17598
                              */
1373 dpurdie 17599
                       SELECT dep.pv_id, dep.dpv_id AS err_dpv
5384 dpurdie 17600
                         FROM package_dependencies dep
17601
                        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 17602
                          AND NOT dep.pv_id IN (SELECT pegv.pv_id FROM PEGGED_VERSIONS pegv WHERE pegv.rtag_id = nnrtag_id)
17603
                          AND NOT dep.dpv_id IN (SELECT pv_id FROM release_content WHERE rtag_id = nnrtag_id)
5384 dpurdie 17604
 
6031 dpurdie 17605
                       /* INCLUDE Unbuildable packages to force missing */
17606
                       UNION
17607
                       SELECT bpv.pv_id, bpv.pv_id as err_dpv
17608
                        FROM package_versions bpv, release_content brc
17609
                        WHERE bpv.build_type = 'U' AND brc.rtag_id = nnrtag_id AND bpv.pv_id = brc.pv_id
17610
 
1373 dpurdie 17611
                       MINUS
17612
                       /* MINUS Dependencies to be ignored */
17613
                       SELECT igw.pv_id, igw.dpv_id AS err_dpv
5384 dpurdie 17614
                         FROM ignore_warnings igw
17615
                        WHERE igw.rtag_id = nnrtag_id
6031 dpurdie 17616
 
1373 dpurdie 17617
                      ) err,
17618
                      package_versions errpkg,
17619
                      package_versions errpv
17620
                WHERE err.err_dpv = errpv.pv_id
17621
                  AND errpv.pkg_id = frc.pkg_id(+)
17622
                  AND NVL (errpv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+)
17623
                  AND err.pv_id = errpkg.pv_id
6600 dpurdie 17624
                  AND NVL(frc.IsAvr,0) = 0
17625
                  ) rd,
17626
                  package_versions pv2
17627
                  where rd.errpv_id = pv2.PV_ID
17628
                  );
1373 dpurdie 17629
END level_one_conflicts;
4040 dpurdie 17630
 
1374 dpurdie 17631
/
4040 dpurdie 17632
--------------------------------------------------------
17633
--  DDL for Procedure LOCK_PACKAGE
17634
--------------------------------------------------------
17635
set define off;
17636
 
5172 dpurdie 17637
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
1373 dpurdie 17638
											 nUserId IN NUMBER ) IS
17639
/* ---------------------------------------------------------------------------
17640
    Version: 4.0
17641
   --------------------------------------------------------------------------- */
17642
 
17643
BEGIN
17644
 
17645
    -- Lock Package
17646
    UPDATE PACKAGE_VERSIONS pv SET
17647
    	pv.DLOCKED = 'Y'
17648
    WHERE pv.PV_ID = nPvId;
17649
 
17650
    /* LOG ACTION */
17651
   	Log_Action ( nPvId, 'lock_package', nUserId );
17652
 
17653
END Lock_Package;
4040 dpurdie 17654
 
1374 dpurdie 17655
/
4040 dpurdie 17656
--------------------------------------------------------
17657
--  DDL for Procedure LOG_ACTION
17658
--------------------------------------------------------
17659
set define off;
17660
 
5172 dpurdie 17661
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 17662
										 enumActionTypeName IN ACTION_TYPE.NAME%TYPE,
17663
                                         nUserId IN ACTION_LOG.USER_ID%TYPE,
17664
										 sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL  ) IS
1373 dpurdie 17665
/* ---------------------------------------------------------------------------
17666
    Version: 3.0
17667
   --------------------------------------------------------------------------- */
17668
 
3959 dpurdie 17669
    ActionTypeId NUMBER;
1373 dpurdie 17670
 
17671
BEGIN
17672
 
3959 dpurdie 17673
    -- Get Action Type FK
17674
    SELECT act.ACTTYPE_ID INTO ActionTypeId
17675
      FROM ACTION_TYPE act
17676
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 17677
 
17678
 
5172 dpurdie 17679
    INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
17680
    VALUES ( nUserId, nPvId, sAdditionalComments, ActionTypeId );
1373 dpurdie 17681
 
17682
 
3959 dpurdie 17683
END Log_Action;
4040 dpurdie 17684
 
1374 dpurdie 17685
/
4040 dpurdie 17686
--------------------------------------------------------
17687
--  DDL for Procedure LOG_ACTION_BULK
17688
--------------------------------------------------------
17689
set define off;
17690
 
5172 dpurdie 17691
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_ACTION_BULK" ( nPvIdList IN VARCHAR2,
3959 dpurdie 17692
										 	  enumActionTypeName IN ACTION_TYPE.NAME%TYPE,
17693
                                         	  nUserId IN ACTION_LOG.USER_ID%TYPE,
17694
										 	  sAdditionalComments IN ACTION_LOG.DESCRIPTION%TYPE DEFAULT NULL  ) IS
1373 dpurdie 17695
/* ---------------------------------------------------------------------------
3959 dpurdie 17696
    Version: 3.0
1373 dpurdie 17697
   --------------------------------------------------------------------------- */
17698
 
3959 dpurdie 17699
    ActionTypeId NUMBER;
17700
    oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
1373 dpurdie 17701
 
17702
BEGIN
17703
 
3959 dpurdie 17704
    oPvIdCollector := IN_LIST_NUMBER ( nPvIdList );
1373 dpurdie 17705
 
3959 dpurdie 17706
    -- Get Action Type FK
17707
    SELECT act.ACTTYPE_ID INTO ActionTypeId
17708
      FROM ACTION_TYPE act
17709
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 17710
 
3959 dpurdie 17711
    -- Log Action
5172 dpurdie 17712
    INSERT INTO ACTION_LOG ( USER_ID, PV_ID, DESCRIPTION, ACTTYPE_ID )
3959 dpurdie 17713
    SELECT nUserId,
5172 dpurdie 17714
    	     pv.PV_ID,
3959 dpurdie 17715
           sAdditionalComments,
17716
           ActionTypeId
17717
      FROM PACKAGE_VERSIONS pv
17718
     WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
1373 dpurdie 17719
 
17720
 
3959 dpurdie 17721
END Log_Action_Bulk;
4040 dpurdie 17722
 
1374 dpurdie 17723
/
4040 dpurdie 17724
--------------------------------------------------------
17725
--  DDL for Procedure LOG_DAEMON_ACTION
17726
--------------------------------------------------------
17727
set define off;
17728
 
5172 dpurdie 17729
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_DAEMON_ACTION" ( nRconId IN NUMBER,
3959 dpurdie 17730
												 enumActionTypeName IN VARCHAR2,
17731
		                                         nUserId IN NUMBER,
17732
												 sAdditionalComments IN VARCHAR2 DEFAULT NULL  ) IS
17733
/* ---------------------------------------------------------------------------
17734
    Version: 3.0
17735
   --------------------------------------------------------------------------- */
1373 dpurdie 17736
 
3959 dpurdie 17737
    ActionTypeId NUMBER;
1373 dpurdie 17738
 
17739
BEGIN
17740
 
3959 dpurdie 17741
    -- Get Action Type FK
17742
    SELECT act.ACTTYPE_ID INTO ActionTypeId
17743
      FROM ACTION_TYPE act
17744
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 17745
 
17746
 
3959 dpurdie 17747
    INSERT INTO DAEMON_ACTION_LOG
17748
    VALUES ( nUserId, ORA_SYSDATETIME, nRconId, sAdditionalComments, ActionTypeId );
1373 dpurdie 17749
 
17750
 
3959 dpurdie 17751
END Log_Daemon_Action;
4040 dpurdie 17752
 
1374 dpurdie 17753
/
4040 dpurdie 17754
--------------------------------------------------------
17755
--  DDL for Procedure LOG_PROJECT_ACTION
17756
--------------------------------------------------------
17757
set define off;
17758
 
5172 dpurdie 17759
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."LOG_PROJECT_ACTION" ( nProjId IN NUMBER,
3959 dpurdie 17760
												 enumActionTypeName IN VARCHAR2,
17761
		                                         nUserId IN NUMBER,
17762
												 sAdditionalComments IN VARCHAR2 DEFAULT NULL,
17763
												 nRtagId IN NUMBER  ) IS
1373 dpurdie 17764
/* ---------------------------------------------------------------------------
3959 dpurdie 17765
    Version: 3.0
1373 dpurdie 17766
   --------------------------------------------------------------------------- */
17767
 
3959 dpurdie 17768
    ActionTypeId NUMBER;
1373 dpurdie 17769
 
17770
BEGIN
17771
 
3959 dpurdie 17772
    -- Get Action Type FK
17773
    SELECT act.ACTTYPE_ID INTO ActionTypeId
17774
      FROM ACTION_TYPE act
17775
     WHERE act.NAME = enumActionTypeName;
1373 dpurdie 17776
 
17777
 
3959 dpurdie 17778
    INSERT INTO PROJECT_ACTION_LOG ( USER_ID, ACTION_DATETIME, PROJ_ID, DESCRIPTION, ACTTYPE_ID, RTAG_ID)
17779
    VALUES ( nUserId, ORA_SYSDATETIME, nProjId, sAdditionalComments, ActionTypeId, nRtagId);
1373 dpurdie 17780
 
17781
 
3959 dpurdie 17782
END Log_Project_Action;
4040 dpurdie 17783
 
1374 dpurdie 17784
/
4040 dpurdie 17785
--------------------------------------------------------
17786
--  DDL for Procedure NEW_ADDITIONAL_NOTE
17787
--------------------------------------------------------
17788
set define off;
17789
 
5172 dpurdie 17790
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_ADDITIONAL_NOTE" ( pnPv_id IN NUMBER,
3959 dpurdie 17791
                                                  psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,
17792
                                                  psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,
17793
                                                  pnUser_id IN NUMBER,
17794
                                                  outErrCode OUT NUMBER
17795
                                                 ) IS
1373 dpurdie 17796
/* ---------------------------------------------------------------------------
3959 dpurdie 17797
    Version: 3.0.0
1373 dpurdie 17798
   --------------------------------------------------------------------------- */
17799
 
17800
    newID NUMBER;
17801
 
17802
	CURSOR an_duplicate_cur IS
3959 dpurdie 17803
        SELECT note_id
1373 dpurdie 17804
          FROM ADDITIONAL_NOTES
17805
         WHERE pv_id = pnPv_id
17806
           AND note_title = psNote_title;
17807
    an_duplicate_rec an_duplicate_cur%ROWTYPE;
17808
 
17809
BEGIN
17810
	outErrCode := -1;		-- Set default return error code to ERROR state
17811
 
17812
	OPEN an_duplicate_cur;
17813
    FETCH an_duplicate_cur INTO an_duplicate_rec;
17814
 
3959 dpurdie 17815
    IF an_duplicate_cur%NOTFOUND
1373 dpurdie 17816
    THEN
3959 dpurdie 17817
		/* No duplicate titles */
17818
		-- Get new ID --
17819
    	SELECT SEQ_ADDITIONAL_NOTES.NEXTVAL INTO newID FROM DUAL;
17820
 
17821
		--- Add Additional Note ---
17822
	    INSERT INTO ADDITIONAL_NOTES ( note_id, pv_id, note_title, note_body, mod_date, mod_user  )
17823
	    VALUES (  newID, pnPv_id, psNote_title, psNote_body, Ora_Sysdate, pnUser_id );
1373 dpurdie 17824
		outErrCode := 0;		-- Set return to SUCCESS
17825
	END IF;
17826
 
17827
	CLOSE an_duplicate_cur;
3959 dpurdie 17828
END New_Additional_Note;
4040 dpurdie 17829
 
1374 dpurdie 17830
/
4040 dpurdie 17831
--------------------------------------------------------
17832
--  DDL for Procedure NEW_PACKAGE_NAME
17833
--------------------------------------------------------
17834
set define off;
17835
 
5172 dpurdie 17836
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_PACKAGE_NAME" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
3959 dpurdie 17837
                                               retPKG_ID OUT NUMBER ) IS
1373 dpurdie 17838
/* ---------------------------------------------------------------------------
3959 dpurdie 17839
    Version: 3.0.0
1373 dpurdie 17840
   --------------------------------------------------------------------------- */
17841
 
3959 dpurdie 17842
    CURSOR packages_cur IS
17843
        SELECT pkg.pkg_id
17844
          FROM packages pkg
17845
         WHERE pkg.pkg_name = SSpkg_name;
17846
    packages_rec packages_cur%ROWTYPE;
1373 dpurdie 17847
 
17848
 
17849
BEGIN
17850
 
3959 dpurdie 17851
    /* ---------------------------------------------------- */
17852
    /* Find if package name exists                          */
17853
    /* ---------------------------------------------------- */
1373 dpurdie 17854
 
3959 dpurdie 17855
    OPEN packages_cur;
17856
    FETCH packages_cur INTO packages_rec;
1373 dpurdie 17857
 
3959 dpurdie 17858
    IF packages_cur%NOTFOUND
17859
    THEN
17860
        -- Create new pkg_name --
17861
        SELECT SEQ_PKG_ID.nextval INTO retPKG_ID FROM DUAL;
1373 dpurdie 17862
 
3959 dpurdie 17863
        INSERT INTO packages ( pkg_id, pkg_name )
17864
        VALUES ( retPKG_ID, SSpkg_name );
1373 dpurdie 17865
 
3959 dpurdie 17866
    ELSE
17867
        retPKG_ID := packages_rec.pkg_id;
1373 dpurdie 17868
 
3959 dpurdie 17869
    END IF;
1373 dpurdie 17870
 
17871
 
3959 dpurdie 17872
    CLOSE packages_cur;
1373 dpurdie 17873
 
3959 dpurdie 17874
END New_Package_Name;
4040 dpurdie 17875
 
1374 dpurdie 17876
/
4040 dpurdie 17877
--------------------------------------------------------
17878
--  DDL for Procedure NEW_PATCH
17879
--------------------------------------------------------
17880
set define off;
17881
 
5172 dpurdie 17882
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_PATCH" ( SSpatch_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
1373 dpurdie 17883
 	   	  		  					  	NNparent_id IN NUMBER,
17884
                                        sPatchIdList IN VARCHAR2,
17885
										NNuser_id IN NUMBER ) IS
17886
/* ---------------------------------------------------------------------------
17887
    Version: 3.5
17888
   --------------------------------------------------------------------------- */
17889
 
17890
    patchPv_id    NUMBER;
17891
	parPkg_id	  NUMBER;
17892
    LastInstallOrder NUMBER;
17893
    isPatchDlocked PACKAGE_VERSIONS.DLOCKED%TYPE;
17894
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
17895
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
17896
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
17897
	oPatchDepCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
17898
 
17899
	CURSOR parent_cur IS
17900
        SELECT pv.*, pkg.pkg_name
17901
          FROM package_versions pv,
17902
		       packages pkg
17903
         WHERE pv.pv_id = NNparent_id
17904
		   AND pv.pkg_id = pkg.pkg_id;
17905
    parent_rec parent_cur%ROWTYPE;
17906
 
17907
    CURSOR patch_cur IS
17908
        SELECT pv.*, pg.pkg_name
17909
          FROM package_versions pv,
17910
		       packages pg
17911
         WHERE pv.pkg_id = parPkg_id
17912
		   AND pv.pkg_version = SSpatch_version
17913
		   AND pv.pkg_id = pg.pkg_id;
17914
    patch_rec patch_cur%ROWTYPE;
17915
 
17916
	CURSOR releases_cur IS
17917
        SELECT rc.pv_id
17918
		  FROM release_content rc
17919
		 WHERE rc.pv_id = patch_rec.pv_id;
17920
    releases_rec releases_cur%ROWTYPE;
17921
 
17922
 
17923
BEGIN
17924
 
17925
	-- Get Last Install Order
17926
    SELECT Count(*) INTO LastInstallOrder
17927
	  FROM PACKAGE_PATCHES pp
17928
	 WHERE pp.PV_ID = NNparent_id;
17929
 
17930
 
17931
    -- Get parent details
17932
	OPEN parent_cur;
17933
    FETCH parent_cur INTO parent_rec;
17934
	parPkg_id := parent_rec.pkg_id;
17935
 
17936
 
17937
	-- Find if patch exists in database
17938
    OPEN patch_cur;
17939
    FETCH patch_cur INTO patch_rec;
17940
 
17941
 
17942
    -- Parent must be official
17943
    IF parent_rec.dlocked = 'Y' THEN
17944
 
17945
	    IF patch_cur%NOTFOUND
17946
	    THEN
17947
        	isPatchDlocked := 'N';
17948
 
17949
	        -- Create new patch version --
17950
	        SELECT SEQ_PV_ID.nextval INTO patchPv_id FROM DUAL;
17951
 
17952
 
17953
	        Split_version ( SSpatch_version, SSV_MM, SSV_NMM, SSV_EXT );
17954
 
17955
	        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 )
17956
				   VALUES (
17957
						   patchPv_id,
17958
	                       parPkg_id,
17959
	                       SSpatch_version,
17960
	                       isPatchDlocked,
17961
	                       ORA_SYSDATE,
17962
	                       NNuser_id,
17963
	                       ORA_SYSDATETIME,
17964
	                       NNuser_id,
17965
	                       SSV_MM,
17966
	                       SSV_NMM,
17967
	                       SSV_EXT,
17968
	                       parent_rec.src_path,
17969
	                       'This is a patch to ' || parent_rec.pkg_name || ' ' || parent_rec.pkg_version,
17970
	                       NNuser_id,
17971
						   'Y',
17972
                           patchPv_id,
17973
						   parent_rec.bs_id,
17974
						   parent_rec.is_autobuildable,
17975
						   parent_rec.ripple_field
6031 dpurdie 17976
 
1373 dpurdie 17977
						   );
17978
 
17979
			INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )
17980
		    	   ( SELECT NNparent_id AS pv_id,
17981
				            pv.pv_id AS patch_id,
17982
	                        LastInstallOrder + 1 AS INSTALL_ORDER
17983
				       FROM package_versions pv
17984
					  WHERE pv.pv_id = patchPv_id
17985
					    AND pv.is_patch = 'Y' );
17986
 
17987
	        /* LOG ACTION */
6916 dpurdie 17988
            Log_Action ( patchPv_id, 'new_version', NNuser_id, 'Patch version created: '|| SSpatch_version );
1373 dpurdie 17989
 
6916 dpurdie 17990
        	Log_Action ( NNparent_id, 'patch_add', NNuser_id, 'New patch created and attached: '|| SSpatch_version );
1373 dpurdie 17991
 
17992
 
17993
	    ELSE
17994
 
17995
		    patchPv_id := patch_rec.pv_id;
17996
	    	isPatchDlocked := patch_rec.dlocked;
17997
 
17998
			-- Find if pv_id exists in release content (i.e. it cannot be a patch)
17999
		    OPEN releases_cur;
18000
		    FETCH releases_cur INTO releases_rec;
18001
 
18002
			IF releases_cur%NOTFOUND
18003
	   		THEN
18004
				-- This pv_id is trully a patch, hence add Y to column IS_PATCH
18005
				UPDATE package_versions SET
18006
					   is_patch = 'Y'
18007
					   WHERE pv_id = patchPv_id;
18008
 
18009
				INSERT INTO package_patches ( pv_id, patch_id, INSTALL_ORDER )
18010
			    	   ( SELECT NNparent_id AS pv_id,
18011
					            pv.pv_id AS patch_id,
18012
	                            LastInstallOrder + 1 AS INSTALL_ORDER
18013
					       FROM package_versions pv
18014
						  WHERE pv.pv_id = patchPv_id
18015
						    AND pv.is_patch = 'Y' );
18016
 
18017
			END IF;
18018
 
18019
			CLOSE releases_cur;
18020
 
18021
            /* LOG ACTION */
6916 dpurdie 18022
        	Log_Action ( NNparent_id, 'patch_add', NNuser_id, 'Patch version was found and attached: '|| SSpatch_version );
1373 dpurdie 18023
 
18024
	    END IF;
18025
 
18026
 
18027
 
18028
 
18029
    END IF;
18030
 
18031
 
18032
 
18033
    /* Create Patch Dependencies */
18034
    oPatchDepCollector := IN_LIST_NUMBER ( sPatchIdList );
18035
 
18036
 
18037
    -- Make sure patch is unofficial before altering its dependencies
18038
    IF (oPatchDepCollector.COUNT > 0) AND (isPatchDlocked = 'N') THEN
18039
    	-- Delete Existing Dependencies
18040
        DELETE
18041
          FROM PACKAGE_DEPENDENCIES dep
18042
         WHERE dep.PV_ID = patchPv_id;
18043
 
18044
 
18045
        -- Insert new dependencies
18046
        INSERT INTO PACKAGE_DEPENDENCIES ( PV_ID, DPV_ID, PKG_ID, DPKG_ID, BUILD_TYPE )
18047
        SELECT patchPv_id AS PV_ID,
18048
        	   pv.PV_ID AS DPV_ID,
18049
               parPkg_id AS PKG_ID,
18050
               pv.PKG_ID AS DPKG_ID,
18051
               'L' AS BUILD_TYPE
18052
          FROM PACKAGE_VERSIONS pv
18053
         WHERE pv.PV_ID IN ( SELECT * FROM TABLE ( CAST ( oPatchDepCollector AS RELMGR_NUMBER_TAB_t ) ) );
18054
 
18055
 
18056
    END IF;
18057
 
18058
 
18059
    CLOSE parent_cur;
18060
    CLOSE patch_cur;
18061
END New_Patch;
4040 dpurdie 18062
 
1374 dpurdie 18063
/
4040 dpurdie 18064
--------------------------------------------------------
18065
--  DDL for Procedure NEW_UNIT_TEST
18066
--------------------------------------------------------
18067
set define off;
18068
 
5172 dpurdie 18069
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."NEW_UNIT_TEST" ( nPv_id IN NUMBER,
3959 dpurdie 18070
                                            nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,
18071
                                            sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
18072
                                            sNumOfTest IN UNIT_TESTS.NUMOF_TEST%TYPE,
18073
                                            sDpkg_path IN VARCHAR2,
18074
                                            sResults IN VARCHAR2,
18075
                                            sCompletion_date IN VARCHAR2,
18076
                                            nCompleted_by IN NUMBER,
18077
											enumTEST_TYPE_AUTOMATIC IN NUMBER,
18078
											enumTEST_TYPE_NOT_DONE IN NUMBER,
18079
											outFileName OUT VARCHAR2
18080
                                           ) IS
18081
/* ---------------------------------------------------------------------------
18082
    Version: 3.2.0
18083
   --------------------------------------------------------------------------- */
1373 dpurdie 18084
 
3959 dpurdie 18085
   	FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
1373 dpurdie 18086
 
3959 dpurdie 18087
    newID NUMBER;
18088
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
18089
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
1373 dpurdie 18090
 
3959 dpurdie 18091
BEGIN
1373 dpurdie 18092
 
3959 dpurdie 18093
	-- Get new ID --
18094
   	SELECT SEQ_UNIT_TESTS.NEXTVAL INTO newID FROM DUAL;
1373 dpurdie 18095
 
3959 dpurdie 18096
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
18097
       	ResultsURL := sResults;
18098
       ELSE
18099
       	IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
18100
        	outFileName := FILENAME_PREFIX || newID ||'_'|| sResults;
18101
    		ResultsAttachment := sDpkg_path || '/' || outFileName;
18102
           END IF;
18103
       END IF;
1373 dpurdie 18104
 
3959 dpurdie 18105
	-- Remove NOT_DONE entry if exists
18106
	DELETE FROM UNIT_TESTS
18107
	 WHERE pv_id = nPv_id
18108
	   AND test_types_fk = enumTEST_TYPE_NOT_DONE;
1373 dpurdie 18109
 
3959 dpurdie 18110
	--- Add Additional Note ---
18111
    INSERT INTO UNIT_TESTS ( TEST_ID,
18112
								PV_ID,
18113
								TEST_TYPES_FK,
18114
								TEST_SUMMARY,
18115
								COMPLETION_DATE,
18116
								COMPLETED_BY,
18117
								RESULTS_URL,
18118
								RESULTS_ATTACHMENT_NAME,
18119
								NUMOF_TEST )
18120
    VALUES (
18121
       	newID,
18122
           nPv_id,
18123
           nTestTypeId,
18124
           sTest_summary,
18125
           TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
18126
           nCompleted_by,
18127
           ResultsURL,
18128
           ResultsAttachment,
18129
		   sNumOfTest );
1373 dpurdie 18130
 
3959 dpurdie 18131
END New_Unit_Test;
4040 dpurdie 18132
 
1374 dpurdie 18133
/
4040 dpurdie 18134
--------------------------------------------------------
18135
--  DDL for Procedure PAOLO_BUILD_TREE
18136
--------------------------------------------------------
18137
set define off;
18138
 
5172 dpurdie 18139
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."PAOLO_BUILD_TREE" ( nRtag_id IN NUMBER ) IS
1373 dpurdie 18140
 
3959 dpurdie 18141
    sessionNumber NUMBER := 0;
6031 dpurdie 18142
    iteration NUMBER := 1;
3959 dpurdie 18143
    rowCnt NUMBER := 0;
18144
    maxIterations 	NUMBER := 50;
6031 dpurdie 18145
 
1373 dpurdie 18146
BEGIN
6031 dpurdie 18147
 
18148
 
3959 dpurdie 18149
    INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
18150
    SELECT sessionNumber, iteration, rc.PV_ID
18151
      FROM RELEASE_CONTENT rc
18152
     WHERE rc.RTAG_ID = nRtag_id;
6031 dpurdie 18153
 
3959 dpurdie 18154
    iteration := iteration + 1;
18155
    LOOP
6031 dpurdie 18156
 
3959 dpurdie 18157
        INSERT INTO TEMP_TREE_BROWSE ( SESSION_NUM, LEVEL_NUM, PV_ID )
6031 dpurdie 18158
		SELECT sessionNumber,
3959 dpurdie 18159
               iteration,
18160
               dep.DPV_ID
18161
          FROM TEMP_TREE_BROWSE ttb,
18162
               PACKAGE_DEPENDENCIES dep
6031 dpurdie 18163
         WHERE dep.PV_ID = ttb.PV_ID
18164
           AND ttb.LEVEL_NUM = iteration - 1
18165
 
18166
         MINUS
18167
 
3959 dpurdie 18168
        SELECT sessionNumber, iteration, ttb.PV_ID
6031 dpurdie 18169
          FROM TEMP_TREE_BROWSE ttb;
18170
 
18171
 
18172
 
18173
 
3959 dpurdie 18174
		rowCnt := SQL%ROWCOUNT;
18175
		IF rowCnt > 0 THEN
18176
           iteration := iteration + 1;
18177
		END IF;
18178
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
6031 dpurdie 18179
    END LOOP;
18180
 
3959 dpurdie 18181
END PAOLO_Build_Tree;
4040 dpurdie 18182
 
1374 dpurdie 18183
/
4040 dpurdie 18184
--------------------------------------------------------
5384 dpurdie 18185
--  DDL for Procedure REBUILD_DEPRECATE_STATE
18186
--------------------------------------------------------
18187
set define off;
18188
 
6031 dpurdie 18189
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REBUILD_DEPRECATE_STATE" ( nRtagId IN INT ) AS
5384 dpurdie 18190
BEGIN
6031 dpurdie 18191
 
5384 dpurdie 18192
  --  Clear the 'calculated' values from the Release Conetnts
18193
  --
18194
  UPDATE RELEASE_CONTENT
18195
      SET DEPRECATED_STATE = NULL
18196
  WHERE RTAG_ID =  nRtagId
6031 dpurdie 18197
  AND DEPRECATED_STATE != 6
5384 dpurdie 18198
  AND DEPRECATED_STATE is NOT NULL;
6031 dpurdie 18199
 
5384 dpurdie 18200
  --
18201
  --  Insert new calculated values into the table
18202
  --  Use of 'AAA' speeds up the CONNECT BY PRIOR query (lots)
18203
  UPDATE RELEASE_CONTENT
18204
      SET DEPRECATED_STATE = 7
18205
  WHERE RTAG_ID =  nRtagId
18206
  AND DEPRECATED_STATE is null
18207
  AND PV_ID in (
18208
        WITH AAA AS
18209
          (SELECT pd.*
18210
          FROM PACKAGE_DEPENDENCIES pd,
18211
            RELEASE_CONTENT RC1
18212
          WHERE rc1.rtag_id = nRtagId
18213
          AND RC1.PV_ID     = pd.PV_ID
18214
          )
18215
      SELECT DISTINCT qry.PV_ID
18216
      FROM
18217
        (SELECT dep.*,
18218
          LEVEL AS LEVEL_NUM
18219
        FROM AAA dep
6031 dpurdie 18220
          START WITH dep.DPV_ID IN (
5384 dpurdie 18221
                SELECT rc.pv_id as pv_id
18222
                FROM RELEASE_CONTENT rc
18223
                WHERE rc.rtag_id  = nRtagId
18224
                AND rc.DEPRECATED_STATE = 6 )
18225
          CONNECT BY PRIOR dep.PV_ID = dep.DPV_ID
18226
        ) qry,
18227
        PACKAGES pkg,
18228
        PACKAGE_VERSIONS pv,
18229
        RELEASE_CONTENT rc
18230
      WHERE qry.PV_ID          = pv.PV_ID
18231
      AND pv.PKG_ID            = pkg.PKG_ID
18232
      AND rc.RTAG_ID           = nRtagId
18233
      AND rc.PV_ID             = qry.PV_ID
18234
      );
18235
END REBUILD_DEPRECATE_STATE;
18236
 
18237
/
18238
--------------------------------------------------------
4040 dpurdie 18239
--  DDL for Procedure REBUILD_ENVIRONMENT
18240
--------------------------------------------------------
18241
set define off;
18242
 
5172 dpurdie 18243
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REBUILD_ENVIRONMENT" ( NNrtag_id IN NUMBER ) IS
5384 dpurdie 18244
  --
18245
  --  Recalculate the package_state
18246
  --  Triggered by the Web Interface
18247
  --
1373 dpurdie 18248
    rowCnt NUMBER := 0;
18249
    iteration NUMBER := 2;          -- Iterations counter
5384 dpurdie 18250
    maxIterations NUMBER := 30;     -- Maximum number of iterations allowed.
1373 dpurdie 18251
                                    -- This will prevent infinite loops if cyrcular dependencies are found
18252
    sessionNum NUMBER;
18253
BEGIN
18254
    SELECT SEQ_session_num.nextval INTO sessionNum FROM DUAL;
18255
 
18256
 
18257
    -- Redo Patch Ignore warnings
18258
    Ignore_Dependency_Warnings ( NNrtag_id, NULL, NULL, TRUE );
18259
 
5384 dpurdie 18260
    Level_One_Conflicts ( NNrtag_id, sessionNum );
18261
    --commit;
1373 dpurdie 18262
 
18263
    LOOP
18264
        Level_N_Conflicts ( NNrtag_id, sessionNum, rowCnt, iteration );
5384 dpurdie 18265
        --commit;
1373 dpurdie 18266
        iteration := iteration + 1;
18267
        EXIT WHEN (rowCnt < 1) OR (iteration > maxIterations);
18268
    END LOOP;
6031 dpurdie 18269
 
1373 dpurdie 18270
    Update_Package_States ( NNrtag_id, sessionNum );
18271
 
5384 dpurdie 18272
    DELETE FROM temp_env_states WHERE session_num = sessionNum;
18273
    DELETE FROM TEMP_ENV_DEPS WHERE session_num = sessionNum;
1373 dpurdie 18274
 
18275
    -- Flag Packages with New Patches Available
6600 dpurdie 18276
        -- Temp deleted 28-Mar-2017
18277
    -- Reason: It takes a very long time and we dont use patches any more
18278
    -- Check_New_Patches ( NNrtag_id );
6031 dpurdie 18279
 
1373 dpurdie 18280
	Clean_Do_Not_Ripple( NNrtag_id );
18281
 
18282
 
18283
	/* Circular Dependency Flag */
18284
    /*
18285
	IF iteration > maxIterations
18286
	THEN
18287
		UPDATE release_tags SET
18288
		   	   circular_dependency = 'Y'
18289
		 WHERE rtag_id = NNrtag_id;
18290
	ELSE
18291
		UPDATE release_tags SET
18292
		   	   circular_dependency = NULL
18293
		 WHERE rtag_id = NNrtag_id;
18294
	END IF;
18295
    */
18296
END Rebuild_Environment;
4040 dpurdie 18297
 
1374 dpurdie 18298
/
4040 dpurdie 18299
--------------------------------------------------------
18300
--  DDL for Procedure REMOVE_COMPONENTS
18301
--------------------------------------------------------
18302
set define off;
18303
 
5172 dpurdie 18304
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_COMPONENTS" ( nPvId IN RELEASE_COMPONENTS.PV_ID%TYPE ) IS
3959 dpurdie 18305
/* ---------------------------------------------------------------------------
18306
    Version: 3.0.0
18307
   --------------------------------------------------------------------------- */
18308
 
18309
 
18310
BEGIN
18311
 
18312
	 --- Delete From RELEASE_COMPONENTS
18313
	 DELETE FROM RELEASE_COMPONENTS
18314
	 WHERE PV_ID = nPvId;
18315
 
18316
END Remove_Components;
4040 dpurdie 18317
 
3959 dpurdie 18318
/
4040 dpurdie 18319
--------------------------------------------------------
18320
--  DDL for Procedure REMOVE_DOCUMENT
18321
--------------------------------------------------------
18322
set define off;
18323
 
5172 dpurdie 18324
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_DOCUMENT" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 18325
											  nDocId IN PACKAGE_DOCUMENTS.DOC_ID%TYPE,
18326
                                              nUserId IN NUMBER ) IS
18327
/* ---------------------------------------------------------------------------
18328
    Version: 3.0
18329
   --------------------------------------------------------------------------- */
18330
 
18331
   DocNumber PACKAGE_DOCUMENTS.DOC_NUM%TYPE;
18332
 
18333
BEGIN
18334
 
18335
	-- Get Doc Num
18336
    SELECT pd.DOC_NUM INTO DocNumber
18337
      FROM PACKAGE_DOCUMENTS pd
18338
     WHERE pd.PV_ID = nPvId
18339
       AND pd.DOC_ID = nDocId;
18340
 
18341
 
18342
	-- Delete Document
18343
    DELETE
18344
      FROM PACKAGE_DOCUMENTS pd
18345
     WHERE pd.PV_ID = nPvId
18346
       AND pd.DOC_ID = nDocId;
18347
 
18348
 
18349
    /* LOG ACTION */
6916 dpurdie 18350
   	Log_Action ( nPvId, 'document_remove', nUserId, 'Document number: '|| DocNumber );
3959 dpurdie 18351
 
18352
 
18353
END Remove_Document;
4040 dpurdie 18354
 
3959 dpurdie 18355
/
4040 dpurdie 18356
--------------------------------------------------------
18357
--  DDL for Procedure REMOVE_PACKAGE_INTEREST
18358
--------------------------------------------------------
18359
set define off;
18360
 
5172 dpurdie 18361
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PACKAGE_INTEREST" (nProjId IN PROJECTS.PROJ_ID%TYPE,
3959 dpurdie 18362
	   	  		  								  	nPkgId IN PACKAGES.PKG_ID%TYPE,
18363
												  	nUserId IN NUMBER
18364
	   	  		  									) IS
18365
 
1373 dpurdie 18366
/******************************************************************************
3959 dpurdie 18367
   NAME:       REMOVE_PACKAGE_INTEREST
18368
   PURPOSE:    To remove interest in a given package per project
1373 dpurdie 18369
 
18370
   REVISIONS:
18371
   Ver        Date        Author           Description
18372
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 18373
   1.0        12/05/2006  Rupesh Solanki      1. Created this procedure.
1373 dpurdie 18374
 
18375
   NOTES:
18376
 
18377
   Automatically available Auto Replace Keywords:
3959 dpurdie 18378
      Object Name:     REMOVE_PACKAGE_INTEREST
18379
      Sysdate:         12/05/2006
18380
      Date and Time:   12/05/2006, 11:28:50 AM, and 12/05/2006 11:28:50 AM
1373 dpurdie 18381
      Username:         (set in TOAD Options, Procedure Editor)
18382
      Table Name:       (set in the "New PL/SQL Object" dialog)
18383
 
18384
******************************************************************************/
18385
BEGIN
18386
 
3959 dpurdie 18387
	 --Delete from PACKAGE_INTEREST
18388
	 DELETE FROM PACKAGE_INTEREST
18389
	 WHERE PROJ_ID = nProjId
18390
	 AND PKG_ID = nPkgId
18391
	 AND USER_ID = nUserId;
6031 dpurdie 18392
 
3959 dpurdie 18393
END REMOVE_PACKAGE_INTEREST;
4040 dpurdie 18394
 
1374 dpurdie 18395
/
4040 dpurdie 18396
--------------------------------------------------------
18397
--  DDL for Procedure REMOVE_PATCH
18398
--------------------------------------------------------
18399
set define off;
18400
 
5172 dpurdie 18401
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PATCH" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
3959 dpurdie 18402
										   nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
18403
                                           nUserId IN NUMBER ) IS
1373 dpurdie 18404
/* ---------------------------------------------------------------------------
3959 dpurdie 18405
    Version: 4.0
1373 dpurdie 18406
   --------------------------------------------------------------------------- */
18407
 
3959 dpurdie 18408
PatchVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
1373 dpurdie 18409
 
3959 dpurdie 18410
CURSOR curPatch IS
18411
	SELECT pp.PV_ID,
18412
		   pp.PATCH_ID,
18413
	       ROWNUM AS NEW_INSTALL_ORDER
18414
	  FROM PACKAGE_PATCHES pp
18415
	 WHERE pp.PV_ID = nPvId
18416
	ORDER BY pp.INSTALL_ORDER;
18417
recPatch curPatch%ROWTYPE;
18418
 
1373 dpurdie 18419
BEGIN
18420
 
3959 dpurdie 18421
	 -- Delete Patch
18422
     DELETE
18423
       FROM PACKAGE_PATCHES pp
18424
      WHERE pp.PV_ID = nPvId
18425
        AND pp.PATCH_ID = nPatchId;
1373 dpurdie 18426
 
18427
 
3959 dpurdie 18428
	-- Redo Install Order
18429
    OPEN curPatch;
18430
	FETCH curPatch INTO recPatch;
18431
 
18432
	WHILE curPatch%FOUND
18433
	LOOP
18434
 
18435
		UPDATE PACKAGE_PATCHES pp SET
18436
			pp.INSTALL_ORDER = recPatch.NEW_INSTALL_ORDER
18437
		WHERE pp.PV_ID = nPvId
18438
		  AND pp.PATCH_ID = recPatch.PATCH_ID;
18439
 
18440
		FETCH curPatch INTO recPatch;
18441
	END LOOP;
18442
 
18443
	CLOSE curPatch;
18444
 
18445
 
18446
 
18447
 
18448
    /* LOG ACTION */
18449
    SELECT pv.PKG_VERSION INTO PatchVersion
1373 dpurdie 18450
      FROM PACKAGE_VERSIONS pv
3959 dpurdie 18451
     WHERE pv.PV_ID = nPatchId;
1373 dpurdie 18452
 
6916 dpurdie 18453
   	Log_Action ( nPvId, 'patch_remove', nUserId, 'Version: '|| PatchVersion );
1373 dpurdie 18454
 
3959 dpurdie 18455
END Remove_Patch;
4040 dpurdie 18456
 
1374 dpurdie 18457
/
4040 dpurdie 18458
--------------------------------------------------------
18459
--  DDL for Procedure REMOVE_PROJECT_VIEW_OWNER
18460
--------------------------------------------------------
18461
set define off;
18462
 
5172 dpurdie 18463
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_PROJECT_VIEW_OWNER" (nProjId IN NUMBER,
3959 dpurdie 18464
	   	  		  						 			  nViewId IN NUMBER,
18465
										 			  sUserIdList IN VARCHAR2,
18466
										 			  nUserId IN NUMBER ) IS
1373 dpurdie 18467
 
6031 dpurdie 18468
GroupId NUMBER;
3959 dpurdie 18469
 
6031 dpurdie 18470
 
18471
 
1373 dpurdie 18472
/******************************************************************************
3959 dpurdie 18473
   NAME:       UPDATE_VIEW
6031 dpurdie 18474
   PURPOSE:
1373 dpurdie 18475
 
18476
   REVISIONS:
3959 dpurdie 18477
   Ver        Date        Author           		Description
1373 dpurdie 18478
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 18479
   1.0        10/04/2006     Rupesh Solanki     1. Created this procedure.
1373 dpurdie 18480
 
18481
   NOTES:
18482
 
18483
   Automatically available Auto Replace Keywords:
3959 dpurdie 18484
      Object Name:     UPDATE_VIEW
18485
      Sysdate:         10/04/2006
18486
      Date and Time:   10/04/2006, 1:55:19 PM, and 10/04/2006 1:55:19 PM
1373 dpurdie 18487
      Username:         (set in TOAD Options, Procedure Editor)
18488
      Table Name:       (set in the "New PL/SQL Object" dialog)
18489
 
18490
******************************************************************************/
18491
 
18492
BEGIN
3959 dpurdie 18493
	 SELECT GROUP_EMAIL_ID into GroupId
18494
	 FROM AUTOBUILD_FAILURE
18495
	 WHERE PROJ_ID = nProjId
18496
	 AND VIEW_ID = nViewId;
6031 dpurdie 18497
 
3959 dpurdie 18498
	 DELETE FROM MEMBERS_GROUP
18499
	 WHERE GROUP_EMAIL_ID = GroupId
18500
	 AND USER_ID IN (
6031 dpurdie 18501
	 SELECT * FROM THE ( SELECT CAST( IN_LIST_NUMBER( sUserIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
3959 dpurdie 18502
	 );
1373 dpurdie 18503
 
6031 dpurdie 18504
 
18505
 
3959 dpurdie 18506
END REMOVE_PROJECT_VIEW_OWNER;
4040 dpurdie 18507
 
3959 dpurdie 18508
/
4040 dpurdie 18509
--------------------------------------------------------
18510
--  DDL for Procedure REMOVE_RELEASE_CONTENT
18511
--------------------------------------------------------
18512
set define off;
18513
 
5172 dpurdie 18514
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_RELEASE_CONTENT" ( sPvIdList IN VARCHAR2,
3959 dpurdie 18515
													 sNotPvIdList IN VARCHAR2,
18516
                                                     nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS
18517
/* ---------------------------------------------------------------------------
18518
    Version: 3.0
18519
   --------------------------------------------------------------------------- */
1373 dpurdie 18520
 
3959 dpurdie 18521
oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
18522
oNotPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
1373 dpurdie 18523
 
3959 dpurdie 18524
BEGIN
18525
	oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
18526
    oNotPvIdCollector := IN_LIST_NUMBER ( sNotPvIdList );
18527
 
18528
    -- Delete From Release Content
18529
    DELETE
18530
      FROM RELEASE_CONTENT
18531
	 WHERE rtag_id = nRTagId
18532
	   AND pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
18533
	   AND NOT pv_id IN ( SELECT * FROM TABLE ( CAST ( oNotPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
18534
 
18535
 
18536
 
18537
END Remove_Release_Content;
4040 dpurdie 18538
 
1374 dpurdie 18539
/
4040 dpurdie 18540
--------------------------------------------------------
18541
--  DDL for Procedure REMOVE_RUNTIME
18542
--------------------------------------------------------
18543
set define off;
18544
 
5172 dpurdie 18545
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."REMOVE_RUNTIME" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 18546
											 nRuntimeId IN RUNTIME_DEPENDENCIES.RTD_ID%TYPE,
18547
                                             nUserId IN NUMBER ) IS
18548
/* ---------------------------------------------------------------------------
18549
    Version: 3.0
18550
   --------------------------------------------------------------------------- */
18551
 
18552
   RuntimeDependency VARCHAR2(4000);
18553
 
18554
BEGIN
18555
 
18556
	-- Get Runtime dependency
18557
    SELECT pkg.PKG_NAME ||' '|| pv.PKG_VERSION  INTO RuntimeDependency
18558
	  FROM RUNTIME_DEPENDENCIES rtd,
18559
	  	   PACKAGES pkg,
18560
	       PACKAGE_VERSIONS pv
18561
	 WHERE rtd.PV_ID = nPvId
18562
	   AND pv.PKG_ID = pkg.PKG_ID
18563
	   AND rtd.RTD_ID = pv.PV_ID
18564
	   AND rtd.RTD_ID = nRuntimeId;
18565
 
18566
 
18567
	-- Delete Document
18568
    DELETE
18569
      FROM RUNTIME_DEPENDENCIES rtd
18570
     WHERE rtd.PV_ID = nPvId
18571
       AND rtd.RTD_ID = nRuntimeId;
18572
 
18573
 
18574
    /* LOG ACTION */
6916 dpurdie 18575
   	Log_Action ( nPvId, 'runtime_remove', nUserId, 'Runtime package: '|| RuntimeDependency );
3959 dpurdie 18576
 
18577
 
18578
END Remove_Runtime;
4040 dpurdie 18579
 
3959 dpurdie 18580
/
4040 dpurdie 18581
--------------------------------------------------------
18582
--  DDL for Procedure RENAME_PACKAGE_VERSION
18583
--------------------------------------------------------
18584
set define off;
18585
 
5172 dpurdie 18586
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RENAME_PACKAGE_VERSION" ( NNpv_id IN NUMBER,
4211 dpurdie 18587
                                  SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
18588
                                  cBuildType IN CHAR,
18589
                                  cChangeType IN CHAR,
18590
                                  NNuser_id IN NUMBER,
18591
                                  errMessage OUT VARCHAR2 ) IS
3959 dpurdie 18592
/* ---------------------------------------------------------------------------
18593
    Version: 3.2
18594
   --------------------------------------------------------------------------- */
18595
 
18596
    sPackageVersion VARCHAR2(4000);
4211 dpurdie 18597
    sLabel VARCHAR2(4000) := NULL;
18598
    sChangeType VARCHAR2(100) := NULL;
18599
    uChangeType CHAR := cChangeType;
3959 dpurdie 18600
    OldPkgVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
18601
 
18602
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
18603
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
18604
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
18605
 
18606
    CURSOR package_versions_cur IS
18607
        SELECT pv_id
4211 dpurdie 18608
          FROM package_versions
18609
         WHERE pkg_id IN ( SELECT pkg_id FROM package_versions WHERE pv_id = NNpv_id )
18610
           AND pkg_version = SSpkg_version;
3959 dpurdie 18611
    package_versions_rec package_versions_cur%ROWTYPE;
18612
 
18613
 
18614
BEGIN
18615
 
18616
    /* ---------------------------------------------------- */
18617
    /* Find if package_version exists                       */
18618
    /* ---------------------------------------------------- */
18619
 
4211 dpurdie 18620
    errMessage := NULL;
3959 dpurdie 18621
 
4211 dpurdie 18622
    -- Get previous version
18623
    SELECT pv.PKG_VERSION INTO OldPkgVersion
3959 dpurdie 18624
      FROM PACKAGE_VERSIONS pv
18625
     WHERE pv.PV_ID = NNpv_id;
18626
 
4211 dpurdie 18627
    sPackageVersion := SSpkg_version;
3959 dpurdie 18628
 
4211 dpurdie 18629
    IF OldPkgVersion != sPackageVersion THEN
3959 dpurdie 18630
 
4211 dpurdie 18631
        OPEN package_versions_cur;
18632
        FETCH package_versions_cur INTO package_versions_rec;
3959 dpurdie 18633
 
4211 dpurdie 18634
        IF package_versions_cur%NOTFOUND
18635
        THEN
3959 dpurdie 18636
 
4211 dpurdie 18637
            -- Split current version in parts
18638
            Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
3959 dpurdie 18639
 
18640
 
4211 dpurdie 18641
                -- Automated built config
18642
                IF ( cBuildType = 'M' ) THEN
18643
                    uChangeType := 'F';
6031 dpurdie 18644
                END IF;
18645
 
4211 dpurdie 18646
                -- Automated version numbering
18647
                -- Make sure that version is still unique
18648
                IF (uChangeType != 'F') THEN
18649
                    sPackageVersion := '('|| NNpv_id ||')'|| SSV_EXT;
18650
                END IF;
3959 dpurdie 18651
 
4211 dpurdie 18652
                -- Packge version not found, hence rename it.
18653
                UPDATE package_versions
18654
                   SET pkg_version = sPackageVersion,
18655
                       v_mm = SSV_MM,
18656
                       v_nmm = SSV_NMM,
18657
                       v_ext = SSV_EXT,
18658
                       modified_stamp = ORA_SYSDATETIME,
18659
                       modifier_id = NNuser_id,
18660
                       build_type = cBuildType,
18661
                       change_type = uChangeType,
18662
                       pkg_label = NULL
18663
                 WHERE pv_id = NNpv_id;
6031 dpurdie 18664
 
4211 dpurdie 18665
                sLabel := GET_AUTOMATED_LABEL( NNpv_id );
18666
                UPDATE PACKAGE_VERSIONS pv SET
18667
                    pv.PKG_LABEL = sLabel
18668
                WHERE pv_id = NNpv_id;
3959 dpurdie 18669
 
18670
 
4211 dpurdie 18671
              /* LOG ACTION */
18672
              IF (cChangeType = 'F') THEN
18673
                  Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| sPackageVersion );
6031 dpurdie 18674
              ELSE
18675
 
4211 dpurdie 18676
                  IF cChangeType = 'M' THEN
18677
                    sChangeType := 'Major Change';
6031 dpurdie 18678
                  ELSIF cChangeType = 'N' THEN
4211 dpurdie 18679
                    sChangeType := 'Minor Change';
6031 dpurdie 18680
                  ELSIF cChangeType = 'P' THEN
4211 dpurdie 18681
                    sChangeType := 'Patch Change';
18682
                  ELSE
18683
                    sChangeType := 'Unknown Change';
18684
                  END IF;
3959 dpurdie 18685
 
4211 dpurdie 18686
                  Log_Action ( NNpv_id, 'rename', NNuser_id, 'From '|| OldPkgVersion ||' to '|| sPackageVersion || ',' || sChangeType );
18687
              END IF;
3959 dpurdie 18688
 
4211 dpurdie 18689
        ELSE
18690
            -- Package version exists. Cannot proceed.
18691
            errMessage := 'enum_MSG_VERSION_EXISTS';
3959 dpurdie 18692
 
4211 dpurdie 18693
        END IF;
3959 dpurdie 18694
 
4211 dpurdie 18695
        CLOSE package_versions_cur;
3959 dpurdie 18696
 
4211 dpurdie 18697
    END IF;
3959 dpurdie 18698
 
18699
END Rename_Package_Version;
4040 dpurdie 18700
 
3959 dpurdie 18701
/
4040 dpurdie 18702
--------------------------------------------------------
18703
--  DDL for Procedure RESET_IGNORE_WARNINGS
18704
--------------------------------------------------------
18705
set define off;
18706
 
5172 dpurdie 18707
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RESET_IGNORE_WARNINGS" ( sPvIdList IN VARCHAR2,
3959 dpurdie 18708
                                                    nRTagId IN RELEASE_CONTENT.RTAG_ID%TYPE ) IS
18709
/* ---------------------------------------------------------------------------
18710
    Version: 5.0
18711
   --------------------------------------------------------------------------- */
18712
 
18713
oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
18714
 
18715
BEGIN
18716
	oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
18717
 
18718
    -- Remove Ignore Warnings
18719
     DELETE
18720
       FROM ignore_warnings
18721
	  WHERE (rtag_id, pv_id, dpv_id) IN
18722
	     (
18723
	      SELECT igw.rtag_id, igw.pv_id, igw.dpv_id
18724
	        FROM ignore_warnings igw,
18725
	             package_versions dpv,
18726
	             package_versions pv
18727
	       WHERE igw.dpv_id = dpv.pv_id
18728
	         AND igw.rtag_id = nRTagId
18729
	         AND dpv.pkg_id = pv.pkg_id
18730
	         AND NVL(dpv.v_ext,'|LINK_A_NULL|') = NVL(pv.v_ext,'|LINK_A_NULL|')
18731
	         AND pv.pv_id IN ( SELECT * FROM TABLE ( CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t ) ) )
18732
         );
18733
 
18734
END Reset_Ignore_Warnings;
4040 dpurdie 18735
 
3959 dpurdie 18736
/
4040 dpurdie 18737
--------------------------------------------------------
18738
--  DDL for Procedure RIPPLE_PACKAGE
18739
--------------------------------------------------------
18740
set define off;
18741
 
5172 dpurdie 18742
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."RIPPLE_PACKAGE" (
3959 dpurdie 18743
        sPvIdList IN VARCHAR2,
18744
        nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
18745
        nUserId IN NUMBER
18746
    ) IS
18747
/* ---------------------------------------------------------------------------
18748
    Version: 4.1
18749
   --------------------------------------------------------------------------- */
18750
 
18751
BEGIN
18752
 
18753
    IF (sPvIdList IS NULL) THEN
18754
        RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
18755
    END IF;
18756
 
18757
    -- Ripple Package
18758
    DELETE FROM DO_NOT_RIPPLE
18759
    WHERE RTAG_ID = nRtagId
18760
    AND PV_ID IN (
18761
        SELECT *
18762
        FROM THE (
18763
            SELECT CAST( IN_LIST_NUMBER( sPvIdList )
18764
            AS RELMGR_NUMBER_TAB_t )
18765
            FROM DUAL
18766
        )
18767
    );
18768
 
5172 dpurdie 18769
    -- Mark Release Changed for build
18770
    PK_RELEASE.SET_RELEASE_MODIFIED(nRtagId);
6031 dpurdie 18771
 
3959 dpurdie 18772
    /* LOG ACTION */
18773
    Log_Action_Bulk ( sPvIdList, 'ripple_package', nUserId );
18774
 
18775
END Ripple_Package;
4040 dpurdie 18776
 
3959 dpurdie 18777
/
4040 dpurdie 18778
--------------------------------------------------------
18779
--  DDL for Procedure SEED_PACKAGE_NAMES_VERSIONS
18780
--------------------------------------------------------
18781
set define off;
18782
 
5172 dpurdie 18783
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" ( SSpkg_name IN PACKAGES.pkg_name%TYPE,
4585 dpurdie 18784
                                          SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
18785
                                          NNuser_id IN NUMBER,
18786
                                          retPV_ID OUT NUMBER,
18787
                                          nCloneFromPvId IN NUMBER DEFAULT NULL,
6031 dpurdie 18788
                                          nBuildType IN CHAR DEFAULT 'U',
4585 dpurdie 18789
                                          nChangeType IN CHAR DEFAULT 'F') IS
3959 dpurdie 18790
/* ---------------------------------------------------------------------------
5172 dpurdie 18791
    Version: 5.0
3959 dpurdie 18792
   --------------------------------------------------------------------------- */
18793
 
18794
    parPkg_id   NUMBER;
18795
    parPv_id    NUMBER;
18796
    cloneFrom_pv_id NUMBER;
18797
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
18798
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
18799
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
18800
    spackageversion VARCHAR2 (4000);
4211 dpurdie 18801
    slabel VARCHAR2 (4000) := NULL;
6031 dpurdie 18802
 
3959 dpurdie 18803
    CURSOR packages_cur IS
18804
        SELECT pkg_id FROM PACKAGES
18805
        WHERE pkg_name = SSpkg_name;
18806
    packages_rec packages_cur%ROWTYPE;
18807
 
18808
    CURSOR package_versions_cur IS
18809
        SELECT pv_id FROM PACKAGE_VERSIONS
18810
        WHERE pkg_id = parPkg_id
18811
        AND pkg_version = SSpkg_version;
18812
    package_versions_rec package_versions_cur%ROWTYPE;
18813
 
18814
    CURSOR clone_package_versions_cur IS
18815
        SELECT MAX(pv_id) AS pv_id
18816
          FROM PACKAGE_VERSIONS
18817
         WHERE pkg_id = parPkg_id
18818
           AND NVL(v_ext,'LINK_A_NULL') = NVL(SSV_EXT,'LINK_A_NULL');
18819
    clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
18820
 
18821
BEGIN
18822
    /* -------------------------------------------- */
18823
    /* Find if pkg_name exists and seed if required */
18824
    /* -------------------------------------------- */
18825
    OPEN packages_cur;
18826
    FETCH packages_cur INTO packages_rec;
18827
 
18828
    IF packages_cur%NOTFOUND
18829
    THEN
18830
        /* INSERT into packages table */
18831
        SELECT SEQ_PKG_ID.NEXTVAL INTO parPkg_id FROM DUAL;
18832
        INSERT INTO PACKAGES ( pkg_id, pkg_name ) VALUES ( parPkg_id, SSpkg_name );
18833
 
18834
    ELSE
18835
        parPkg_id := packages_rec.pkg_id;
18836
 
18837
    END IF;
18838
 
18839
    CLOSE packages_cur;
18840
 
18841
 
18842
    /* ---------------------------------------------------- */
18843
    /* Find if package_version exists and seed if required  */
18844
    /* ---------------------------------------------------- */
18845
    OPEN package_versions_cur;
18846
    FETCH package_versions_cur INTO package_versions_rec;
18847
 
18848
    IF package_versions_cur%NOTFOUND
18849
    THEN
18850
        SELECT SEQ_PV_ID.NEXTVAL INTO parPv_id FROM DUAL;
18851
 
18852
        /* Generate automated version Number */
18853
        Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );
18854
        spackageversion := SSpkg_version;
6031 dpurdie 18855
 
4211 dpurdie 18856
        IF ( nChangeType <> 'F' )
3959 dpurdie 18857
        THEN
18858
            spackageversion := '(' || parPv_id || ')' || SSV_EXT;
18859
        END If;
18860
 
4585 dpurdie 18861
        /*  Determine clone source for new package-version
18862
            Use nCloneFromPvId - iff provided
18863
            Use most recently created pkgName/pkgExtension - if it exists
18864
            Else create a brand new package-version
18865
        */
3959 dpurdie 18866
 
4585 dpurdie 18867
        IF ( NOT nCloneFromPvId IS NULL) THEN
18868
            cloneFrom_pv_id := nCloneFromPvId;
18869
        ELSE
18870
            /* Find similar pkg_name + ext to clone from */
18871
            OPEN clone_package_versions_cur;
18872
            FETCH clone_package_versions_cur INTO clone_package_versions_rec;
18873
            CLOSE clone_package_versions_cur;
3959 dpurdie 18874
 
4585 dpurdie 18875
            IF ( NOT clone_package_versions_rec.pv_id IS NULL) THEN
18876
                cloneFrom_pv_id := clone_package_versions_rec.pv_id;
3959 dpurdie 18877
            ELSE
4585 dpurdie 18878
                cloneFrom_pv_id := NULL;
3959 dpurdie 18879
            END IF;
18880
 
4585 dpurdie 18881
        END IF;
18882
 
18883
        IF NOT cloneFrom_pv_id IS NULL
18884
        THEN
3959 dpurdie 18885
            -- Clone Package Version Details --
18886
            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,
18887
                                           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  )
18888
                SELECT parPv_id         AS pv_id,
18889
                       parPkg_id        AS pkg_id,
18890
                       spackageversion  AS pkg_version,
18891
                       'N'              AS dlocked,
18892
                       Ora_Sysdate      AS created_stamp,
18893
                       NNuser_id        AS creator_id,
18894
                       Ora_Sysdatetime  AS modified_stamp,
18895
                       NNuser_id        AS modifier_id,
18896
                       SSV_MM           AS V_MM,
18897
                       SSV_NMM          AS V_NMM,
18898
                       SSV_EXT          AS V_EXT,
18899
                       pv.src_path,
18900
                       pv.pv_description,
18901
                       pv.PV_OVERVIEW,
18902
                       cloneFrom_pv_id  AS LAST_PV_ID,
18903
                       pv.owner_id,
18904
                       nBuildType       AS BUILD_TYPE,
18905
                       pv.IS_BUILD_ENV_REQUIRED,
18906
                       pv.BS_ID,
18907
                       pv.is_autobuildable,
6031 dpurdie 18908
                       pv.IS_DEPLOYABLE,
3959 dpurdie 18909
                       pv.ripple_field,
18910
                       nChangeType       AS change_type
18911
                  FROM PACKAGE_VERSIONS pv
18912
                 WHERE pv.pv_id = cloneFrom_pv_id;
18913
 
18914
            Basic_Clone ( cloneFrom_pv_id, parPv_id, NULL, NNuser_id, parPkg_id, 0 );
18915
 
18916
        ELSE
18917
            /* BRAND NEW version + ext */
18918
            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 )
18919
            VALUES (
18920
                    parPv_id,
18921
                    parPkg_id,
18922
                    spackageversion,
18923
                    'N',
18924
                    Ora_Sysdate,
18925
                    NNuser_id,
18926
                    Ora_Sysdatetime,
18927
                    NNuser_id,
18928
                    SSV_MM,
18929
                    SSV_NMM,
18930
                    SSV_EXT,
18931
                    NNuser_id,
18932
                    parPv_id,
18933
                    nBuildType,
18934
                    'b',
18935
                    nChangeType
18936
                   );
18937
        END IF;
18938
 
4211 dpurdie 18939
        /* Insert initial package label */
18940
        slabel := get_automated_label (parPv_id);
18941
        UPDATE package_versions pv
18942
        SET pv.pkg_label = slabel
18943
        WHERE pv.pv_id = parPv_id;
18944
 
3959 dpurdie 18945
        retPV_ID := parPv_id;
6031 dpurdie 18946
 
18947
        /* LOG ACTION */
18948
        Log_Action ( parPv_id, 'new_version', NNuser_id,
18949
                     'New package version: '|| spackageversion );
3959 dpurdie 18950
 
18951
    ELSE
18952
        retPV_ID := package_versions_rec.pv_id;
18953
 
18954
    END IF;
18955
 
18956
    CLOSE package_versions_cur;
18957
 
18958
END Seed_Package_Names_Versions;
4040 dpurdie 18959
 
3959 dpurdie 18960
/
5892 dpurdie 18961
 
18962
  GRANT EXECUTE ON "RELEASE_MANAGER"."SEED_PACKAGE_NAMES_VERSIONS" TO "DEPLOYMENT_MANAGER";
4040 dpurdie 18963
--------------------------------------------------------
18964
--  DDL for Procedure SET_ADVISORY_RIPPLE
18965
--------------------------------------------------------
18966
set define off;
18967
 
5172 dpurdie 18968
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_ADVISORY_RIPPLE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
1373 dpurdie 18969
	   	  		  							   nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
18970
											 nUserId IN NUMBER ) IS
18971
/* ---------------------------------------------------------------------------
18972
    Version: 4.0
18973
   --------------------------------------------------------------------------- */
18974
 
18975
BEGIN
18976
 
3959 dpurdie 18977
    -- Set Advisory Ripple Package
18978
    INSERT INTO ADVISORY_RIPPLE (RTAG_ID, PV_ID)
18979
	VALUES (nRtagId, nPvId);
1373 dpurdie 18980
 
18981
    /* LOG ACTION */
3959 dpurdie 18982
   	Log_Action ( nPvId, 'set_advisory_ripple', nUserId );
6031 dpurdie 18983
 
1373 dpurdie 18984
	/*Rebuild_Environment(nRtagId);*/
18985
 
3959 dpurdie 18986
END Set_Advisory_Ripple;
4040 dpurdie 18987
 
1374 dpurdie 18988
/
4040 dpurdie 18989
--------------------------------------------------------
18990
--  DDL for Procedure SET_PACKAGE_BUILD_ENV
18991
--------------------------------------------------------
18992
set define off;
18993
 
5172 dpurdie 18994
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,
3959 dpurdie 18995
	   	  		  								  	sBuildEnvIdList IN VARCHAR2 ) IS
1373 dpurdie 18996
/* ---------------------------------------------------------------------------
3959 dpurdie 18997
    Last Modified: Rupesh Solanki
18998
	Version: 3.0.1
1373 dpurdie 18999
   --------------------------------------------------------------------------- */
19000
 
19001
 
19002
BEGIN
19003
 
3959 dpurdie 19004
   -- Delete Current Build Env settings
19005
   DELETE FROM PACKAGE_BUILD_ENV
19006
   WHERE pv_id = nPvId;
6031 dpurdie 19007
 
3959 dpurdie 19008
   -- Delet Current Package Build Info Settings
19009
   DELETE FROM PACKAGE_BUILD_INFO
19010
   WHERE pv_id = nPvId;
1373 dpurdie 19011
 
3959 dpurdie 19012
   -- Reset flag to N
19013
   UPDATE PACKAGE_VERSIONS SET
19014
	   IS_BUILD_ENV_REQUIRED = 'N'
19015
   WHERE PV_ID = nPvId;
1373 dpurdie 19016
 
19017
 
3959 dpurdie 19018
   -- Set new Build Env
19019
   IF NOT sBuildEnvIdList IS NULL THEN
19020
   	  -- Insert into PACKAGE_BUILD_ENV
19021
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
19022
	  SELECT nPvId AS PV_ID,
19023
	  		 be.BE_ID
19024
	    FROM BUILD_ENVIRONMENTS be
19025
	   WHERE be.BE_ID IN (
19026
	   		 		  	   SELECT *
19027
					   	     FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
19028
	   		 		  	 );
6031 dpurdie 19029
 
3959 dpurdie 19030
   	  -- Insert into PACKAGE_BUILD_INFO
19031
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
19032
	  SELECT nPvId AS PV_ID,
19033
	  		 be.BM_ID
19034
	    FROM BUILD_MACHINES be
19035
	   WHERE be.BM_ID IN (
19036
	   		 		  	   SELECT *
19037
					   	     FROM THE ( SELECT CAST( IN_LIST_NUMBER( sBuildEnvIdList ) AS RELMGR_NUMBER_TAB_t ) FROM dual )
6031 dpurdie 19038
	   		 		  	 );
1373 dpurdie 19039
 
3959 dpurdie 19040
	   -- Set flag to Y
19041
	   UPDATE PACKAGE_VERSIONS SET
19042
		   IS_BUILD_ENV_REQUIRED = 'Y'
19043
	   WHERE PV_ID = nPvId;
1373 dpurdie 19044
 
3959 dpurdie 19045
   END IF;
1373 dpurdie 19046
 
19047
 
3959 dpurdie 19048
END Set_Package_Build_Env;
4040 dpurdie 19049
 
1374 dpurdie 19050
/
4040 dpurdie 19051
--------------------------------------------------------
19052
--  DDL for Procedure SET_PACKAGE_BUILD_ENV_TEMP
19053
--------------------------------------------------------
19054
set define off;
19055
 
5172 dpurdie 19056
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_PACKAGE_BUILD_ENV_TEMP" ( nPvId IN PACKAGE_BUILD_ENV.PV_ID%TYPE,
1373 dpurdie 19057
	   	  		  								  	   	 sBuildEnvIdList IN VARCHAR2,
6031 dpurdie 19058
														 nBuildStandard IN PACKAGE_VERSIONS.BS_ID%TYPE
1373 dpurdie 19059
														 ) IS
19060
/* ---------------------------------------------------------------------------
19061
    Last Modified: Rupesh Solanki
19062
	Version: 3.0.1
19063
   --------------------------------------------------------------------------- */
6031 dpurdie 19064
 
19065
   nBsCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
1373 dpurdie 19066
   BsId NUMBER;
19067
   HackBsId NUMBER;
19068
 
19069
 
19070
BEGIN
19071
 
19072
   nBsCollector := IN_LIST_NUMBER ( sBuildEnvIdList );
19073
 
19074
   -- Delete Current Build Env settings
19075
   DELETE FROM PACKAGE_BUILD_ENV
19076
   WHERE pv_id = nPvId;
6031 dpurdie 19077
 
1373 dpurdie 19078
   -- Delet Current Package Build Info Settings
19079
   DELETE FROM PACKAGE_BUILD_INFO
19080
   WHERE pv_id = nPvId;
19081
 
19082
   -- Reset flag to N
19083
   UPDATE PACKAGE_VERSIONS SET
19084
	   IS_BUILD_ENV_REQUIRED = 'N'
19085
   WHERE PV_ID = nPvId;
19086
 
19087
 
19088
   -- Set new Build Env
19089
   IF NOT sBuildEnvIdList IS NULL THEN
19090
	FOR i IN 1..nBsCollector.COUNT
6031 dpurdie 19091
	LOOP
19092
 
1373 dpurdie 19093
	BsId := nBsCollector(i);
6031 dpurdie 19094
 
1373 dpurdie 19095
	IF nBuildStandard = 2 THEN
19096
	   IF BsId = 1 THEN
19097
	   	  HackBsId := 11;
19098
	   ELSE
19099
	   	  HackBsId := 12;
19100
	   END IF;
6031 dpurdie 19101
 
1373 dpurdie 19102
   	  -- Insert into PACKAGE_BUILD_ENV
19103
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
19104
	  SELECT nPvId AS PV_ID,
19105
	  		 be.BE_ID
19106
	    FROM BUILD_ENVIRONMENTS be
19107
	   WHERE be.BE_ID IN ( HackBsId );
6031 dpurdie 19108
 
1373 dpurdie 19109
   	  -- Insert into PACKAGE_BUILD_INFO
19110
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
19111
	  SELECT nPvId AS PV_ID,
19112
	  		 be.BM_ID
19113
	    FROM BUILD_MACHINES be
6031 dpurdie 19114
	   WHERE be.BM_ID IN ( BsId );
1373 dpurdie 19115
 
19116
	   -- Set flag to Y
19117
	   UPDATE PACKAGE_VERSIONS SET
19118
		   IS_BUILD_ENV_REQUIRED = 'Y'
6031 dpurdie 19119
	   WHERE PV_ID = nPvId;
19120
 
19121
 
1373 dpurdie 19122
	ELSE
6031 dpurdie 19123
 
1373 dpurdie 19124
   	  -- Insert into PACKAGE_BUILD_ENV
19125
      INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID )
19126
	  SELECT nPvId AS PV_ID,
19127
	  		 be.BE_ID
19128
	    FROM BUILD_ENVIRONMENTS be
19129
	   WHERE be.BE_ID IN ( BsId );
6031 dpurdie 19130
 
1373 dpurdie 19131
   	  -- Insert into PACKAGE_BUILD_INFO
19132
      INSERT INTO PACKAGE_BUILD_INFO ( PV_ID, BM_ID )
19133
	  SELECT nPvId AS PV_ID,
19134
	  		 be.BM_ID
19135
	    FROM BUILD_MACHINES be
6031 dpurdie 19136
	   WHERE be.BM_ID IN ( BsId );
1373 dpurdie 19137
 
19138
	   -- Set flag to Y
19139
	   UPDATE PACKAGE_VERSIONS SET
19140
		   IS_BUILD_ENV_REQUIRED = 'Y'
19141
	   WHERE PV_ID = nPvId;
19142
 
6031 dpurdie 19143
	END IF;
19144
 
19145
 
19146
	END LOOP;
19147
 
1373 dpurdie 19148
   END IF;
19149
 
19150
 
19151
END Set_Package_Build_Env_Temp;
4040 dpurdie 19152
 
1374 dpurdie 19153
/
4040 dpurdie 19154
--------------------------------------------------------
19155
--  DDL for Procedure SET_TO_AUTOBUILDABLE
19156
--------------------------------------------------------
19157
set define off;
19158
 
5172 dpurdie 19159
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SET_TO_AUTOBUILDABLE" (
3959 dpurdie 19160
   nrtagid     IN   NUMBER,
19161
   spvidlist   IN   VARCHAR2
19162
)
19163
IS
19164
/******************************************************************************
19165
   NAME:       SET_TO_AUTOBUILDABLE
19166
   PURPOSE:
1373 dpurdie 19167
 
3959 dpurdie 19168
   REVISIONS:
19169
   Ver        Date        Author           Description
19170
   ---------  ----------  ---------------  ------------------------------------
19171
   1.0        15/12/2006   Rupesh Solanki       1. Created this procedure.
1373 dpurdie 19172
 
3959 dpurdie 19173
   NOTES:
1373 dpurdie 19174
 
3959 dpurdie 19175
   Automatically available Auto Replace Keywords:
19176
      Object Name:     SET_TO_AUTOBUILDABLE
19177
      Sysdate:         15/12/2006
19178
      Date and Time:   15/12/2006, 11:42:29 AM, and 15/12/2006 11:42:29 AM
19179
      Username:         (set in TOAD Options, Procedure Editor)
19180
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 19181
 
3959 dpurdie 19182
******************************************************************************/
19183
   npvidcollector   relmgr_number_tab_t := relmgr_number_tab_t ();
19184
   PvId NUMBER;
1373 dpurdie 19185
BEGIN
19186
 
3959 dpurdie 19187
   npvidcollector := in_list_number2 (spvidlist);
6031 dpurdie 19188
 
3959 dpurdie 19189
   UPDATE package_versions
19190
      SET is_autobuildable = 'N'
19191
    WHERE pv_id IN (SELECT pv_id
19192
                      FROM release_content
19193
                     WHERE rtag_id = nrtagid);
1373 dpurdie 19194
 
6031 dpurdie 19195
 
19196
 
3959 dpurdie 19197
   	FOR i IN 1..npvidcollector.COUNT
19198
	LOOP
19199
		PvId := npvidcollector(i);
1373 dpurdie 19200
 
3959 dpurdie 19201
		UPDATE package_versions
19202
		set is_autobuildable = 'Y'
19203
		where pv_id = PvId;
1373 dpurdie 19204
 
3959 dpurdie 19205
	END LOOP;
6031 dpurdie 19206
 
19207
 
3959 dpurdie 19208
END set_to_autobuildable;
4040 dpurdie 19209
 
3959 dpurdie 19210
/
4040 dpurdie 19211
--------------------------------------------------------
19212
--  DDL for Procedure SHIFT_INSTALL_ORDER
19213
--------------------------------------------------------
19214
set define off;
19215
 
5172 dpurdie 19216
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SHIFT_INSTALL_ORDER" ( nPatchId IN PACKAGE_PATCHES.PATCH_ID%TYPE,
3959 dpurdie 19217
												  nPvId IN PACKAGE_PATCHES.PV_ID%TYPE,
19218
                                                  nToInstallOrder IN PACKAGE_PATCHES.INSTALL_ORDER%TYPE ) IS
19219
/* ---------------------------------------------------------------------------
19220
    Version: 3.0
19221
   --------------------------------------------------------------------------- */
1373 dpurdie 19222
 
3959 dpurdie 19223
currInstallOrder NUMBER;
19224
FromInstallOrder NUMBER;
1373 dpurdie 19225
 
3959 dpurdie 19226
BEGIN
1373 dpurdie 19227
 
3959 dpurdie 19228
	 -- Get Current Install Order
19229
     SELECT pp.INSTALL_ORDER INTO currInstallOrder
19230
       FROM PACKAGE_PATCHES pp
19231
      WHERE pp.PV_ID = nPvId
19232
        AND pp.PATCH_ID = nPatchId;
1373 dpurdie 19233
 
19234
 
3959 dpurdie 19235
	 IF currInstallOrder > nToInstallOrder
19236
	 THEN
1373 dpurdie 19237
 
3959 dpurdie 19238
		FromInstallOrder := nToInstallOrder;
1373 dpurdie 19239
 
3959 dpurdie 19240
	    -- Shift others Up
19241
		UPDATE PACKAGE_PATCHES pp SET
19242
			   pp.INSTALL_ORDER = pp.INSTALL_ORDER + 1
19243
		 WHERE pp.PV_ID = nPvId
19244
           AND pp.PATCH_ID != nPatchId
19245
		   AND pp.INSTALL_ORDER BETWEEN  FromInstallOrder  AND  currInstallOrder - 1;
1373 dpurdie 19246
 
19247
 
3959 dpurdie 19248
	 ELSIF currInstallOrder < nToInstallOrder
19249
	 THEN
1373 dpurdie 19250
 
3959 dpurdie 19251
		FromInstallOrder := currInstallOrder + 1;
1373 dpurdie 19252
 
3959 dpurdie 19253
		-- Shift others Down
19254
        UPDATE PACKAGE_PATCHES pp SET
19255
			   pp.INSTALL_ORDER = pp.INSTALL_ORDER - 1
19256
		 WHERE pp.PV_ID = nPvId
19257
           AND pp.PATCH_ID != nPatchId
19258
		   AND pp.INSTALL_ORDER BETWEEN  FromInstallOrder  AND  nToInstallOrder;
1373 dpurdie 19259
 
3959 dpurdie 19260
	 END IF;
1373 dpurdie 19261
 
19262
 
3959 dpurdie 19263
	 -- Move Patch to new install order
19264
     UPDATE PACKAGE_PATCHES pp SET
19265
		    pp.INSTALL_ORDER = nToInstallOrder
19266
	  WHERE pp.PV_ID = nPvId
19267
	    AND pp.PATCH_ID = nPatchId;
1373 dpurdie 19268
 
19269
 
3959 dpurdie 19270
END Shift_Install_Order;
4040 dpurdie 19271
 
1374 dpurdie 19272
/
4040 dpurdie 19273
--------------------------------------------------------
19274
--  DDL for Procedure SPLIT_VERSION
19275
--------------------------------------------------------
19276
set define off;
19277
 
5172 dpurdie 19278
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SPLIT_VERSION" ( SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
3959 dpurdie 19279
                                            SSV_MM OUT PACKAGE_VERSIONS.V_MM%TYPE,
19280
                                            SSV_NMM OUT PACKAGE_VERSIONS.V_NMM%TYPE,
19281
                                            SSV_EXT OUT PACKAGE_VERSIONS.V_EXT%TYPE  ) IS
1373 dpurdie 19282
/* ---------------------------------------------------------------------------
3959 dpurdie 19283
    Version: 3.0.0
1373 dpurdie 19284
   --------------------------------------------------------------------------- */
19285
 
3959 dpurdie 19286
    TYPE VERSION_COMPONENTS_TYPE IS TABLE OF VARCHAR2(50)
19287
        INDEX BY BINARY_INTEGER;
1373 dpurdie 19288
 
3959 dpurdie 19289
    version_components VERSION_COMPONENTS_TYPE;
19290
    lastDot NUMBER := 0;
19291
    currDot NUMBER := 0;
1373 dpurdie 19292
 
19293
BEGIN
3959 dpurdie 19294
    currDot := INSTR ( SSpkg_version, '.', -1 );      -- Find 1st dot from the right
1373 dpurdie 19295
 
3959 dpurdie 19296
    IF ( currDot > 0 )
1373 dpurdie 19297
    THEN
3959 dpurdie 19298
        -- YES dot separator found --
19299
        SSV_EXT := GET_V_EXT( SSpkg_version );
1373 dpurdie 19300
 
3959 dpurdie 19301
        IF NOT SSV_EXT IS NULL
1373 dpurdie 19302
        THEN
3959 dpurdie 19303
            lastDot := currDot;
19304
            currDot := INSTR ( SSpkg_version, '.', -1, 2 );   -- Find 2nd dot from the right
1373 dpurdie 19305
 
3959 dpurdie 19306
            IF ( currDot > 0 )
19307
            THEN
19308
                -- XXXX.M.E
19309
                SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, lastDot - currDot - 1);
19310
                SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot ) || SSV_EXT;
19311
            ELSE
19312
                -- XXXX.E
19313
                SSV_MM := NULL;
19314
                SSV_NMM := SSpkg_version;
19315
            END IF;
1373 dpurdie 19316
 
19317
        ELSE
3959 dpurdie 19318
            -- XXXX.M
19319
            SSV_MM := SUBSTR ( SSpkg_version, currDot + 1, LENGTH(SSpkg_version) - currDot );
19320
            SSV_NMM := SUBSTR ( SSpkg_version, 0, currDot );
1373 dpurdie 19321
 
19322
        END IF;
19323
 
19324
    ELSE
3959 dpurdie 19325
        -- NO dot separator found --
19326
        -- XXXXXX
19327
        SSV_MM  := NULL;
19328
        SSV_NMM := SSpkg_version;
19329
        SSV_EXT := NULL;
1373 dpurdie 19330
 
19331
    END IF;
19332
 
3959 dpurdie 19333
END Split_Version;
4040 dpurdie 19334
 
1374 dpurdie 19335
/
4040 dpurdie 19336
--------------------------------------------------------
19337
--  DDL for Procedure SWITCH_REPRODUCIBLE_PACKAGE
19338
--------------------------------------------------------
19339
set define off;
19340
 
5172 dpurdie 19341
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SWITCH_REPRODUCIBLE_PACKAGE" (nPvId IN NUMBER, nUserId IN NUMBER)IS
3959 dpurdie 19342
Auto CHAR;
19343
/******************************************************************************
19344
   NAME:       SWITCH_REPRODUCIBLE_PACKAGE
6031 dpurdie 19345
   PURPOSE:
1373 dpurdie 19346
 
3959 dpurdie 19347
   REVISIONS:
19348
   Ver        Date        Author           Description
19349
   ---------  ----------  ---------------  ------------------------------------
19350
   1.0        14/12/2006   Rupesh Solanki       1. Created this procedure.
1373 dpurdie 19351
 
3959 dpurdie 19352
   NOTES:
1373 dpurdie 19353
 
3959 dpurdie 19354
   Automatically available Auto Replace Keywords:
19355
      Object Name:     SWITCH_REPRODUCIBLE_PACKAGE
19356
      Sysdate:         14/12/2006
19357
      Date and Time:   14/12/2006, 11:35:15 AM, and 14/12/2006 11:35:15 AM
19358
      Username:         (set in TOAD Options, Procedure Editor)
19359
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 19360
 
3959 dpurdie 19361
******************************************************************************/
1373 dpurdie 19362
BEGIN
19363
 
3959 dpurdie 19364
	 SELECT IS_AUTOBUILDABLE into Auto
6031 dpurdie 19365
	 FROM PACKAGE_VERSIONS
3959 dpurdie 19366
	 WHERE PV_ID = nPvId;
1373 dpurdie 19367
 
3959 dpurdie 19368
	 IF Auto = 'N' Then
6031 dpurdie 19369
 
3959 dpurdie 19370
	 	UPDATE PACKAGE_VERSIONS
19371
	 	SET IS_AUTOBUILDABLE = 'Y'
19372
	 	WHERE PV_ID = nPvId;
6031 dpurdie 19373
 
19374
 
3959 dpurdie 19375
	 	/* LOG ACTION */
6031 dpurdie 19376
   		Log_Action ( nPvId, 'reproducible_package', nUserId );
19377
 
3959 dpurdie 19378
	 Else
6031 dpurdie 19379
 
3959 dpurdie 19380
		 UPDATE PACKAGE_VERSIONS
19381
		 SET IS_AUTOBUILDABLE = 'N'
19382
		 WHERE PV_ID = nPvId;
6031 dpurdie 19383
 
19384
 
3959 dpurdie 19385
	 	 /* LOG ACTION */
6031 dpurdie 19386
   	 	 Log_Action ( nPvId, 'unreproducible_package', nUserId );
19387
 
3959 dpurdie 19388
	 End If;
1373 dpurdie 19389
 
19390
 
19391
 
19392
 
19393
 
6031 dpurdie 19394
 
19395
 
19396
 
3959 dpurdie 19397
END SWITCH_REPRODUCIBLE_PACKAGE;
4040 dpurdie 19398
 
1374 dpurdie 19399
/
4040 dpurdie 19400
--------------------------------------------------------
19401
--  DDL for Procedure SYNC_PROJECTS_NEW_VERSION
19402
--------------------------------------------------------
19403
set define off;
19404
 
5172 dpurdie 19405
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."SYNC_PROJECTS_NEW_VERSION" ( nPv_id 				IN NUMBER,
3959 dpurdie 19406
														  sSyncRtagsInList		IN VARCHAR2,
19407
				                                          nUser_id 				IN NUMBER ) IS
1373 dpurdie 19408
/* ---------------------------------------------------------------------------
19409
    Version: 3.0.0
19410
   --------------------------------------------------------------------------- */
19411
 
3959 dpurdie 19412
	CURSOR sync_rtags_cur IS
19413
        SELECT rc.RTAG_ID, rc.BASE_VIEW_ID, pv.pv_id
19414
		  FROM release_content rc,
19415
		  	   package_versions pv,
19416
		       package_versions opv
19417
		 WHERE rc.pv_id = pv.pv_id
19418
		   AND opv.pkg_id = pv.pkg_id
19419
		   AND NVL(opv.v_ext, '|LINK_A_NULL|') = NVL(pv.v_ext, '|LINK_A_NULL|')
19420
		   AND opv.pv_id = nPv_id
19421
		   AND rtag_id IN ( SELECT *
19422
		   	   		   	      FROM THE (
19423
					   	   		   	    SELECT CAST( IN_LIST_NUMBER( sSyncRtagsInList ) AS RELMGR_NUMBER_TAB_t )
19424
					       		   	    FROM dual
19425
									   )
19426
						  );
19427
    sync_rtags_rec sync_rtags_cur%ROWTYPE;
1373 dpurdie 19428
 
19429
BEGIN
19430
 
3959 dpurdie 19431
	OPEN sync_rtags_cur;
19432
	FETCH sync_rtags_cur INTO sync_rtags_rec;
1373 dpurdie 19433
 
3959 dpurdie 19434
	WHILE sync_rtags_cur%FOUND
19435
	LOOP
19436
		DELETE FROM RELEASE_CONTENT
19437
		 WHERE rtag_id = sync_rtags_rec.rtag_id
19438
	       AND pv_id = sync_rtags_rec.pv_id;
1373 dpurdie 19439
 
3959 dpurdie 19440
		INSERT INTO RELEASE_CONTENT ( RTAG_ID, PV_ID, BASE_VIEW_ID, INSERT_STAMP, INSERTOR_ID, PKG_STATE )
19441
	   		   VALUES ( sync_rtags_rec.rtag_id,
19442
		       		  	nPv_id,
19443
						sync_rtags_rec.BASE_VIEW_ID,
19444
	           			Ora_Sysdate,
19445
	           			nUser_id,
19446
 
19447
	      	   		   );
1373 dpurdie 19448
 
3959 dpurdie 19449
-- 		UPDATE RELEASE_CONTENT
19450
-- 	       SET pv_id = nPv_id,
19451
-- 	           insert_stamp = Ora_Sysdate,
19452
-- 	           insertor_id = nUser_id
19453
-- 	     WHERE rtag_id = sync_rtags_rec.rtag_id
19454
-- 	       AND pv_id = sync_rtags_rec.pv_id;
1373 dpurdie 19455
 
3959 dpurdie 19456
		FETCH sync_rtags_cur INTO sync_rtags_rec;
19457
	END LOOP;
1373 dpurdie 19458
 
3959 dpurdie 19459
	CLOSE sync_rtags_cur;
19460
 
19461
END Sync_Projects_New_Version;
4040 dpurdie 19462
 
1374 dpurdie 19463
/
4040 dpurdie 19464
--------------------------------------------------------
19465
--  DDL for Procedure TOUCH_RELEASE
19466
--------------------------------------------------------
19467
set define off;
19468
 
5172 dpurdie 19469
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE" ( nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE ) IS
3959 dpurdie 19470
/* ---------------------------------------------------------------------------
19471
    The purpose of this procedure is to flag in the database that the specified
19472
    release has changed to an extent that the procedure Rebuild_Environment
19473
    should be called at the next opportunity in order that the package state
19474
    icons are all re-evaluated.
19475
    The package state icons are controlled using the pkg_state column in the
19476
    release_content table, and Rebuild_Environment updates that column.
19477
    It will be through user action in the website that Rebuild_Environment will
19478
    be called, for example:
19479
      a) when setting/clearing ignore warnings checkboxes
19480
      b) when someone opens a page upon a rtag/pvid and rebuild_en flag is set
19481
      c) when someone opens the build order report form
19482
      d) when someone modifies dependencies of a package
19483
      + other scenarios (?)
19484
   --------------------------------------------------------------------------- */
19485
BEGIN
19486
   -- Touch Release for Rebuild
19487
   UPDATE RELEASE_TAGS rt SET
19488
          rt.REBUILD_ENV = 'Y',
19489
          rt.REBUILD_STAMP = 0
19490
    WHERE rt.RTAG_ID = nRtagId;
1373 dpurdie 19491
 
3959 dpurdie 19492
END Touch_Release;
4040 dpurdie 19493
 
1374 dpurdie 19494
/
4040 dpurdie 19495
--------------------------------------------------------
19496
--  DDL for Procedure TOUCH_RELEASE_BULK
19497
--------------------------------------------------------
19498
set define off;
19499
 
5172 dpurdie 19500
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TOUCH_RELEASE_BULK" ( nRtagIdList IN VARCHAR2 ) IS
1373 dpurdie 19501
/* ---------------------------------------------------------------------------
19502
    Version: 3.0
19503
   --------------------------------------------------------------------------- */
19504
 
19505
oRTagIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
19506
 
19507
BEGIN
19508
	 oRTagIdCollector := IN_LIST_NUMBER ( nRtagIdList );
19509
 
19510
	 -- Touch Release for Rebuild
19511
     UPDATE RELEASE_TAGS rt SET
19512
     	rt.REBUILD_ENV = 'Y',
19513
        rt.REBUILD_STAMP = 0
19514
      WHERE rt.RTAG_ID IN ( SELECT * FROM TABLE ( CAST ( oRTagIdCollector AS RELMGR_NUMBER_TAB_t ) ) );
19515
 
19516
 
19517
END Touch_Release_Bulk;
4040 dpurdie 19518
 
1374 dpurdie 19519
/
4040 dpurdie 19520
--------------------------------------------------------
19521
--  DDL for Procedure TO_INSERT_VTREE_ID
19522
--------------------------------------------------------
19523
set define off;
19524
 
5172 dpurdie 19525
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."TO_INSERT_VTREE_ID" IS
1373 dpurdie 19526
 
3959 dpurdie 19527
/******************************************************************************
19528
   NAME:       TO_INSERT_VTREE_ID
6031 dpurdie 19529
   PURPOSE:
1373 dpurdie 19530
 
3959 dpurdie 19531
   REVISIONS:
19532
   Ver        Date        Author           Description
19533
   ---------  ----------  ---------------  ------------------------------------
19534
   1.0        2/02/2007          1. Created this procedure.
1373 dpurdie 19535
 
3959 dpurdie 19536
   NOTES:
1373 dpurdie 19537
 
3959 dpurdie 19538
   Automatically available Auto Replace Keywords:
19539
      Object Name:     TO_INSERT_VTREE_ID
19540
      Sysdate:         2/02/2007
19541
      Date and Time:   2/02/2007, 8:42:56 AM, and 2/02/2007 8:42:56 AM
19542
      Username:         (set in TOAD Options, Procedure Editor)
19543
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 19544
 
3959 dpurdie 19545
******************************************************************************/
6031 dpurdie 19546
VTreeId NUMBER;
1373 dpurdie 19547
 
19548
 
3959 dpurdie 19549
	CURSOR curInfo IS
19550
    SELECT RTAG_ID
19551
	FROM RELEASE_TAGS
19552
	WHERE VTREE_ID IS NULL;
19553
    recInfo curInfo%ROWTYPE;
6031 dpurdie 19554
 
19555
 
1373 dpurdie 19556
BEGIN
19557
 
3959 dpurdie 19558
	OPEN curInfo;
19559
    FETCH curInfo INTO recInfo;
6031 dpurdie 19560
 
3959 dpurdie 19561
	WHILE curInfo%FOUND
19562
	LOOP
19563
		SELECT SEQ_VTREE_ID.nextval INTO VTreeId FROM DUAL;
1373 dpurdie 19564
 
3959 dpurdie 19565
		UPDATE RELEASE_TAGS
19566
		SET VTREE_ID = VTreeId
19567
		WHERE RTAG_ID = recInfo.RTAG_ID;
1373 dpurdie 19568
 
3959 dpurdie 19569
		FETCH curInfo INTO recInfo;
19570
	END LOOP;
1373 dpurdie 19571
 
3959 dpurdie 19572
	CLOSE curInfo;
1373 dpurdie 19573
 
3959 dpurdie 19574
END TO_INSERT_VTREE_ID;
4040 dpurdie 19575
 
1374 dpurdie 19576
/
4040 dpurdie 19577
--------------------------------------------------------
19578
--  DDL for Procedure UNDEPRECATE_PACKAGE
19579
--------------------------------------------------------
19580
set define off;
19581
 
5384 dpurdie 19582
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNDEPRECATE_PACKAGE" (
19583
    nPvId   IN PACKAGE_VERSIONS.PV_ID%TYPE,
19584
    nRtagId IN DEPRECATED_PACKAGES.RTAG_ID%TYPE,
19585
    nPkgId  IN DEPRECATED_PACKAGES.PKG_ID%TYPE,
19586
    nUserId IN NUMBER)
19587
IS
19588
  ext      VARCHAR2(50);
19589
 
1373 dpurdie 19590
BEGIN
5384 dpurdie 19591
  --Extract the package extension
6031 dpurdie 19592
  SELECT V_EXT INTO ext
5384 dpurdie 19593
  FROM PACKAGE_VERSIONS
19594
  WHERE PV_ID = nPvId;
1373 dpurdie 19595
 
5384 dpurdie 19596
    -- Undeprecate Package
19597
    DELETE
19598
    FROM DEPRECATED_PACKAGES
19599
    WHERE RTAG_ID = nRtagId
19600
    AND PKG_ID    = nPkgId
19601
    AND NVL(V_EXT,'.NULL') = NVL(ext,'.NULL');
6031 dpurdie 19602
 
5384 dpurdie 19603
    -- Update Release Contents entry
19604
    -- Process PackageName.ext for the package. ie: Allow multiple
19605
    -- versions of the package to be in the release.
6031 dpurdie 19606
 
5384 dpurdie 19607
    UPDATE RELEASE_CONTENT
6031 dpurdie 19608
    SET
5384 dpurdie 19609
      DEPRECATED_STATE = NULL
19610
    WHERE RTAG_ID      = nRtagId
19611
    AND PV_ID IN (
19612
      SELECT PV.PV_ID
19613
      FROM PACKAGE_VERSIONS PV
19614
      WHERE PV.PKG_ID   = nPkgId
19615
      AND NVL(PV.V_EXT, '.NULL') = NVL(ext,'.NULL')
19616
      );
1373 dpurdie 19617
 
5384 dpurdie 19618
  -- Update consumers of the package
19619
  --  Update ALL packages in the Release
1373 dpurdie 19620
 
6031 dpurdie 19621
  REBUILD_DEPRECATE_STATE(nRtagId);
1373 dpurdie 19622
 
19623
END Undeprecate_Package;
4040 dpurdie 19624
 
1374 dpurdie 19625
/
4040 dpurdie 19626
--------------------------------------------------------
19627
--  DDL for Procedure UNLOCK_PACKAGE
19628
--------------------------------------------------------
19629
set define off;
19630
 
5172 dpurdie 19631
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNLOCK_PACKAGE" ( nPvId IN PACKAGE_VERSIONS.PV_ID%TYPE,
3959 dpurdie 19632
											 nUserId IN NUMBER ) IS
19633
/* ---------------------------------------------------------------------------
19634
    Author: Rupesh Solanki
6031 dpurdie 19635
 
3959 dpurdie 19636
	Version: 4.0
19637
   --------------------------------------------------------------------------- */
19638
   STATE CHAR;
6031 dpurdie 19639
 
3959 dpurdie 19640
BEGIN
6031 dpurdie 19641
 
3959 dpurdie 19642
	SELECT DLOCKED INTO STATE
19643
	FROM PACKAGE_VERSIONS
6031 dpurdie 19644
	WHERE PV_ID = nPvId;
1373 dpurdie 19645
 
3959 dpurdie 19646
	IF STATE = 'A' THEN --It was made official for autobuilds
19647
		-- Unlock Package
19648
		UPDATE PACKAGE_VERSIONS pv SET
19649
		pv.DLOCKED = 'P'
6031 dpurdie 19650
		WHERE pv.PV_ID = nPvId;
3959 dpurdie 19651
	ELSE
19652
		-- Unlock Package
19653
		UPDATE PACKAGE_VERSIONS pv SET
19654
		pv.DLOCKED = 'N'
6031 dpurdie 19655
		WHERE pv.PV_ID = nPvId;
3959 dpurdie 19656
 
6031 dpurdie 19657
	END IF;
19658
 
3959 dpurdie 19659
    /* LOG ACTION */
19660
   	Log_Action ( nPvId, 'unlock_package', nUserId );
19661
 
19662
END Unlock_Package;
4040 dpurdie 19663
 
3959 dpurdie 19664
/
4040 dpurdie 19665
--------------------------------------------------------
19666
--  DDL for Procedure UNRIPPLE_PACKAGE
19667
--------------------------------------------------------
19668
set define off;
19669
 
5172 dpurdie 19670
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE" (
3959 dpurdie 19671
        sPvIdList IN VARCHAR2,
19672
        nRtagId IN RELEASE_TAGS.RTAG_ID%TYPE,
19673
        nUserId IN NUMBER
19674
    ) IS
19675
/* ---------------------------------------------------------------------------
19676
    Version: 4.1
19677
   --------------------------------------------------------------------------- */
19678
 
19679
    oPvIdCollector RELMGR_NUMBER_TAB_t := RELMGR_NUMBER_TAB_t();
19680
 
19681
BEGIN
19682
 
19683
    IF (sPvIdList IS NULL) THEN
19684
        RAISE_APPLICATION_ERROR (-20000, 'Please select at least one package.' );
19685
    END IF;
19686
 
19687
    oPvIdCollector := IN_LIST_NUMBER ( sPvIdList );
19688
 
19689
    -- UnRipple Package
19690
    INSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID )
19691
    SELECT nRtagId, pv.PV_ID
19692
    FROM PACKAGE_VERSIONS pv
19693
    WHERE pv.PV_ID IN (
19694
        SELECT *
19695
        FROM TABLE (
19696
            CAST ( oPvIdCollector AS RELMGR_NUMBER_TAB_t )
19697
        )
19698
    );
6031 dpurdie 19699
 
3959 dpurdie 19700
    /* LOG ACTION */
19701
    Log_Action_Bulk ( sPvIdList, 'unripple_package', nUserId );
19702
 
19703
END UnRipple_Package;
4040 dpurdie 19704
 
3959 dpurdie 19705
/
4040 dpurdie 19706
--------------------------------------------------------
19707
--  DDL for Procedure UNRIPPLE_PACKAGE_INDIRECT
19708
--------------------------------------------------------
19709
set define off;
19710
 
5172 dpurdie 19711
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UNRIPPLE_PACKAGE_INDIRECT" (
3959 dpurdie 19712
        nPvId IN NUMBER,
19713
        nRtagId IN NUMBER,
19714
        nUserId IN NUMBER,
19715
        nrootCausePvId IN NUMBER,
19716
        srootCause IN VARCHAR2,
19717
        srootFile IN VARCHAR2
19718
    ) IS
19719
    ReleaseLocation VARCHAR2(4000);
19720
BEGIN
19721
 
19722
    -- UnRipple Package
19723
    delete from do_not_ripple where rtag_id=nRtagId and pv_id=nPvId;
19724
    INSERT INTO DO_NOT_RIPPLE ( RTAG_ID, PV_ID, ROOT_PV_ID, ROOT_CAUSE, ROOT_FILE ) values (nRtagId, nPvId, nrootCausePvId, srootCause, srootFile);
19725
 
6600 dpurdie 19726
    -- Do not log if RootCause is -2
19727
    IF nrootCausePvId IS NOT NULL AND nrootCausePvId = -2 THEN
19728
      RETURN;
19729
    END IF;
19730
 
3959 dpurdie 19731
    /* LOG ACTION */
19732
   SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
19733
              FROM PROJECTS proj,
19734
                   RELEASE_TAGS rt
19735
             WHERE rt.RTAG_ID = nRtagId
19736
               AND rt.PROJ_ID = proj.PROJ_ID;
19737
 
19738
    /* LOG ACTION */
19739
    Log_Action ( nPvId, 'unripple_package', nUserId, 'Location: '|| ReleaseLocation );
19740
 
19741
END UnRipple_Package_Indirect;
4040 dpurdie 19742
 
3959 dpurdie 19743
/
4040 dpurdie 19744
--------------------------------------------------------
19745
--  DDL for Procedure UPDATE_ADDITIONAL_NOTE
19746
--------------------------------------------------------
19747
set define off;
19748
 
5172 dpurdie 19749
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_ADDITIONAL_NOTE" ( pnNote_id IN NUMBER,
3959 dpurdie 19750
													 pnPv_id IN NUMBER,
19751
                                                     psNote_title IN ADDITIONAL_NOTES.NOTE_TITLE%TYPE,
19752
                                                     psNote_body IN ADDITIONAL_NOTES.NOTE_BODY%TYPE,
19753
                                                     pnUser_id IN NUMBER,
19754
                                                     outErrCode OUT NUMBER
19755
                                                    ) IS
19756
/* ---------------------------------------------------------------------------
19757
    Version: 3.0.1
19758
   --------------------------------------------------------------------------- */
19759
 
19760
    newID NUMBER;
19761
 
19762
    /* Disallow duplicate Note Titles */
19763
	CURSOR an_duplicate_cur IS
19764
        SELECT COUNT(*) AS cnt_note
19765
          FROM ADDITIONAL_NOTES
19766
         WHERE pv_id = pnPv_id
19767
           AND note_id != pnNote_id
19768
           AND note_title = psNote_title;
19769
    an_duplicate_rec an_duplicate_cur%ROWTYPE;
19770
 
19771
BEGIN
19772
	outErrCode := -1;		-- Set default return error code to ERROR state
19773
 
19774
	OPEN an_duplicate_cur;
19775
    FETCH an_duplicate_cur INTO an_duplicate_rec;
19776
 
19777
    IF an_duplicate_rec.cnt_note < 1
19778
    THEN
19779
		--- Update Additional Note ---
19780
	    UPDATE ADDITIONAL_NOTES SET
19781
		       note_title = psNote_title,
19782
		       note_body = psNote_body,
19783
		       mod_date = Ora_Sysdate,
19784
		       mod_user = pnUser_id
19785
         WHERE note_id = pnNote_id
19786
           AND pv_id = pnPv_id;
19787
		outErrCode := 0;		-- Set return to SUCCESS
19788
	END IF;
19789
 
19790
	CLOSE an_duplicate_cur;
19791
END Update_Additional_Note;
4040 dpurdie 19792
 
3959 dpurdie 19793
/
4040 dpurdie 19794
--------------------------------------------------------
19795
--  DDL for Procedure UPDATE_DEPRECATION_STATE
19796
--------------------------------------------------------
19797
set define off;
19798
 
5172 dpurdie 19799
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_DEPRECATION_STATE" (nnrtag_id IN NUMBER) AS
3959 dpurdie 19800
 
19801
recno NUMBER;
19802
 
19803
CURSOR deprecate_cur IS
19804
 
19805
SELECT rc.pv_id
19806
FROM release_content rc
19807
WHERE rtag_id = nnrtag_id
19808
 AND deprecated_state IN(7);
19809
 
19810
deprecate_rec deprecate_cur % rowtype;
19811
 
19812
BEGIN
19813
 
19814
  OPEN deprecate_cur;
19815
 
19816
  FETCH deprecate_cur
19817
  INTO deprecate_rec;
19818
 
19819
  WHILE deprecate_cur % FOUND
19820
  LOOP
19821
 
19822
    SELECT COUNT(*)
19823
    INTO recno
19824
    FROM package_dependencies pd,
19825
      release_content rc
19826
    WHERE pd.pv_id = deprecate_rec.pv_id
19827
     AND rc.pv_id = pd.dpv_id
19828
     AND rc.rtag_id = nnrtag_id
19829
     AND rc.deprecated_state IN(6,   7);
19830
 
19831
    IF recno = 0 THEN
19832
 
19833
      UPDATE release_content
19834
      SET pkg_id = NULL, deprecated_state = NULL
19835
      WHERE pv_id = deprecate_rec.pv_id
19836
       AND rtag_id = nnrtag_id;
19837
 
19838
    END IF;
19839
 
19840
    FETCH deprecate_cur
19841
    INTO deprecate_rec;
19842
  END LOOP;
19843
 
19844
END;
4040 dpurdie 19845
 
3959 dpurdie 19846
/
4040 dpurdie 19847
--------------------------------------------------------
19848
--  DDL for Procedure UPDATE_MISC_VIEW
19849
--------------------------------------------------------
19850
set define off;
19851
 
5172 dpurdie 19852
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_MISC_VIEW" IS
1373 dpurdie 19853
/******************************************************************************
3959 dpurdie 19854
   NAME:       UPDATE_MISC_VIEW
6031 dpurdie 19855
   PURPOSE:
1373 dpurdie 19856
 
19857
   REVISIONS:
19858
   Ver        Date        Author           Description
19859
   ---------  ----------  ---------------  ------------------------------------
3959 dpurdie 19860
   1.0        16/03/2007          1. Created this procedure.
1373 dpurdie 19861
 
19862
   NOTES:
19863
 
19864
   Automatically available Auto Replace Keywords:
3959 dpurdie 19865
      Object Name:     UPDATE_MISC_VIEW
19866
      Sysdate:         16/03/2007
19867
      Date and Time:   16/03/2007, 8:56:29 AM, and 16/03/2007 8:56:29 AM
1373 dpurdie 19868
      Username:         (set in TOAD Options, Procedure Editor)
19869
      Table Name:       (set in the "New PL/SQL Object" dialog)
19870
 
19871
******************************************************************************/
3959 dpurdie 19872
   CURSOR view_cur /*Create a record set to store the ripple data*/
19873
   IS
6031 dpurdie 19874
   	 SELECT pkg.pkg_id, rc.base_view_id
3959 dpurdie 19875
	 FROM package_versions pv, packages pkg, release_content rc
19876
	 where rc.rtag_id = 2362
19877
	 and rc.pv_id = pv.pv_id
19878
	 and pv.pkg_id = pkg.pkg_id;
19879
   view_rec   view_cur%ROWTYPE;
19880
 
19881
 
19882
 
1373 dpurdie 19883
BEGIN
3959 dpurdie 19884
   OPEN view_cur;
1373 dpurdie 19885
 
3959 dpurdie 19886
   FETCH view_cur
19887
    INTO view_rec;
1373 dpurdie 19888
 
3959 dpurdie 19889
   WHILE view_cur%FOUND
19890
   LOOP
1373 dpurdie 19891
 
6031 dpurdie 19892
 
3959 dpurdie 19893
	   update release_content
19894
	   set base_view_id = view_rec.base_view_id
19895
	   where rtag_id = 8027
6031 dpurdie 19896
	   and pv_id IN
3959 dpurdie 19897
	   (
19898
	   	select pv.pv_id from release_content rc, package_versions pv
19899
		where rc.rtag_id = 8027
19900
		and pv.pv_id = rc.pv_id
6031 dpurdie 19901
		and pv.pkg_id = view_rec.pkg_id
19902
 
3959 dpurdie 19903
	   );
1373 dpurdie 19904
 
19905
 
6031 dpurdie 19906
 
19907
 
19908
 
19909
 
19910
 
19911
 
19912
 
3959 dpurdie 19913
   FETCH view_cur
19914
   		 INTO view_rec;
6031 dpurdie 19915
   END LOOP;
1373 dpurdie 19916
 
19917
 
19918
 
19919
 
3959 dpurdie 19920
 
6031 dpurdie 19921
END UPDATE_MISC_VIEW;
4040 dpurdie 19922
 
1374 dpurdie 19923
/
4040 dpurdie 19924
--------------------------------------------------------
19925
--  DDL for Procedure UPDATE_PACKAGE_DEPENDENCY
19926
--------------------------------------------------------
19927
set define off;
19928
 
5172 dpurdie 19929
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_DEPENDENCY" ( NNpv_id IN NUMBER,
3959 dpurdie 19930
                                                        SSdep_name IN PACKAGES.pkg_name%TYPE,
19931
                                                        SSdep_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
19932
                                                        CCbuild_type IN PACKAGE_DEPENDENCIES.build_type%TYPE,
19933
                                                        NNuser_id IN NUMBER,
19934
                                                        NNdelete_old_dependency IN NUMBER
19935
                                                       ) IS
1373 dpurdie 19936
/* ---------------------------------------------------------------------------
3959 dpurdie 19937
    Version: 3.3
1373 dpurdie 19938
   --------------------------------------------------------------------------- */
19939
 
3959 dpurdie 19940
    retPV_ID NUMBER;
19941
    SSV_EXT PACKAGE_VERSIONS.v_ext%TYPE;
19942
	DepIsPatch	PACKAGE_VERSIONS.is_patch%TYPE;
19943
    PvIsPatch	PACKAGE_VERSIONS.is_patch%TYPE;
19944
    NNpkg_id NUMBER;
19945
    NNdpkg_id NUMBER;
1373 dpurdie 19946
 
19947
BEGIN
3959 dpurdie 19948
    --- Seed database with package_name and version if required ---
19949
    Seed_Package_Names_Versions ( SSdep_name, SSdep_version, NNuser_id, retPV_ID );
1373 dpurdie 19950
 
3959 dpurdie 19951
    -- get v_ext,pkg_id of current dependency
19952
    SELECT v_ext, pkg_id, is_patch INTO SSV_EXT, NNdpkg_id, DepIsPatch
19953
      FROM PACKAGE_VERSIONS
19954
     WHERE pv_id = retPV_ID;
1373 dpurdie 19955
 
3959 dpurdie 19956
    -- get pkg_id of parent package
19957
    SELECT pkg_id, is_patch INTO NNpkg_id, PvIsPatch
19958
      FROM PACKAGE_VERSIONS
19959
     WHERE pv_id = NNpv_id;
1373 dpurdie 19960
 
19961
 
3959 dpurdie 19962
	IF ( (PvIsPatch IS NULL) AND (DepIsPatch IS NULL) ) OR
19963
    	( (PvIsPatch IS NOT NULL) )THEN
1373 dpurdie 19964
 
3959 dpurdie 19965
	    IF NNdelete_old_dependency = 1 THEN
19966
	        /* Used for CUSTOM dependency add/edit */
1373 dpurdie 19967
 
3959 dpurdie 19968
	        --- Remove old dependency ---
19969
            IF (PvIsPatch IS NULL) THEN
19970
            	-- Do it for Packages
19971
		        DELETE FROM PACKAGE_DEPENDENCIES
19972
		         WHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN
19973
		            (
19974
		            SELECT dep.*
19975
		              FROM PACKAGE_DEPENDENCIES dep,
19976
		                   PACKAGE_VERSIONS dpv,
19977
		                   PACKAGE_VERSIONS pv
19978
		             WHERE dep.dpv_id = dpv.pv_id
19979
		               AND dep.pv_id = NNpv_id
19980
		               AND pv.pv_id = retPV_ID
19981
		               AND dpv.pkg_id = pv.pkg_id
19982
		               AND NVL(dpv.v_ext, '|LINK_A_NULL|') = NVL(SSV_EXT, '|LINK_A_NULL|')
19983
		            );
19984
            ELSE
19985
            	-- Do it for Patches
19986
                DELETE FROM PACKAGE_DEPENDENCIES
19987
		         WHERE ( pv_id, dpv_id, pkg_id, dpkg_id, build_type, display_order ) IN
19988
		            (
19989
		            SELECT dep.*
19990
		              FROM PACKAGE_DEPENDENCIES dep
19991
		             WHERE dep.dpv_id = retPV_ID
19992
		               AND dep.pv_id = NNpv_id
19993
		            );
19994
			END IF;
1373 dpurdie 19995
 
3959 dpurdie 19996
	    END IF;
1373 dpurdie 19997
 
3959 dpurdie 19998
	    /* NOTE: for JATS, ANTS dependency update, it is expected that all dependencies are removed. */
19999
 
20000
	    --- Add new dependency ---
20001
	    INSERT INTO PACKAGE_DEPENDENCIES ( pv_id, dpv_id, pkg_id, dpkg_id, build_type )
20002
	    VALUES ( NNpv_id, retPV_ID, NNpkg_id, NNdpkg_id, CCbuild_type );
20003
 
20004
	END IF;
20005
 
20006
END Update_Package_Dependency;
4040 dpurdie 20007
 
1374 dpurdie 20008
/
4040 dpurdie 20009
--------------------------------------------------------
20010
--  DDL for Procedure UPDATE_PACKAGE_STATES
20011
--------------------------------------------------------
20012
set define off;
20013
 
5172 dpurdie 20014
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_STATES" ( NNrtag_id IN NUMBER,
3959 dpurdie 20015
                                                    NNsession_num IN NUMBER ) IS
20016
/* =============  STATE RULES =================== */
20017
/*
20018
   MNR   MRR   MN   MR    |   pkg_state
20019
   ------------------------------------
20020
 
20021
 
20022
 
20023
 
20024
   ------------------------------------
20025
 
20026
 
20027
 
20028
 
20029
   ------------------------------------
20030
    1     0     0     0   |      MINOR_READY
20031
    1     0     0     1   |      MAJOR
20032
    1     0     1     0   |      MINOR
20033
    1     0     1     1   |      MAJOR
20034
   ------------------------------------
20035
    1     1     0     0   |      MAJOR_READY
20036
    1     1     0     1   |      MAJOR
20037
    1     1     1     0   |      MAJOR
20038
    1     1     1     1   |      MAJOR
20039
   ------------------------------------
20040
*/
20041
BEGIN
20042
    /*----------------------------------------------
20043
    ||              MINOR READY
20044
    */----------------------------------------------
1373 dpurdie 20045
 
3959 dpurdie 20046
    UPDATE release_content
20047
       SET pkg_state = 4
20048
     WHERE rtag_id = NNrtag_id
20049
       AND pv_id IN
20050
           (
20051
           SELECT DISTINCT pv_id
20052
           FROM temp_env_states
20053
           WHERE session_num = NNsession_num
20054
             AND level_num = 1
20055
             AND tes_state = 2
20056
           );
1373 dpurdie 20057
 
3959 dpurdie 20058
    /*----------------------------------------------
20059
    ||              MAJOR READY
20060
    */----------------------------------------------
20061
    UPDATE release_content
20062
       SET pkg_state = 3
20063
     WHERE rtag_id = NNrtag_id
20064
       AND pv_id IN
20065
           (
20066
           SELECT DISTINCT pv_id
20067
           FROM temp_env_states
20068
           WHERE session_num = NNsession_num
20069
             AND level_num = 1
20070
             AND tes_state IN (0,1)
20071
           );
1373 dpurdie 20072
 
3959 dpurdie 20073
    /*----------------------------------------------
20074
    ||                MINOR
20075
    */----------------------------------------------
20076
    UPDATE release_content
20077
       SET pkg_state = 2
20078
     WHERE rtag_id = NNrtag_id
20079
       AND pv_id IN
20080
           (
20081
           SELECT DISTINCT pv_id
20082
            FROM temp_env_states
20083
            WHERE session_num = NNsession_num
20084
              AND level_num >= 2
20085
              AND tes_state = 2
20086
            MINUS
20087
           SELECT pv_id
20088
             FROM release_content
20089
            WHERE rtag_id = NNrtag_id
20090
              AND pkg_state = 3
20091
           );
1373 dpurdie 20092
 
3959 dpurdie 20093
    /*----------------------------------------------
20094
    ||                MAJOR
20095
    */----------------------------------------------
20096
    UPDATE release_content
20097
       SET pkg_state = 1
20098
     WHERE rtag_id = NNrtag_id
20099
       AND pv_id IN
20100
           (
20101
           SELECT DISTINCT pv_id
20102
           FROM temp_env_states
20103
           WHERE session_num = NNsession_num
20104
             AND level_num >= 2
20105
             AND tes_state IN (0,1)
20106
           /* MAJOR EXCEPTION - When package has Major Ready and Minor */
20107
           UNION
20108
           SELECT DISTINCT tes.pv_id
20109
           FROM temp_env_states tes,
20110
                release_content rc
20111
           WHERE tes.session_num = NNsession_num
20112
             AND tes.level_num >= 2
20113
             AND tes.tes_state = 2
20114
             AND rtag_id = NNrtag_id
20115
             AND rc.pv_id = tes.pv_id
20116
             AND rc.pkg_state = 3
20117
           );
1373 dpurdie 20118
 
3959 dpurdie 20119
    /*----------------------------------------------
20120
    ||                 OK
20121
    */----------------------------------------------
20122
    UPDATE release_content
20123
       SET pkg_state = 0
20124
     WHERE rtag_id = NNrtag_id
20125
       AND pv_id IN
20126
           (
20127
           SELECT rc.pv_id
20128
             FROM release_content rc
20129
            WHERE rc.rtag_id = NNrtag_id
20130
              AND NOT rc.pv_id IN
20131
                    (
20132
                     SELECT DISTINCT pv_id
20133
                     FROM temp_env_states WHERE session_num = NNsession_num
20134
                    )
20135
           );
1373 dpurdie 20136
 
3959 dpurdie 20137
      Update_Deprecation_State (NNrtag_id);
1373 dpurdie 20138
 
3959 dpurdie 20139
    /*----------------------------------------------
20140
    ||              PEGGED VERSIONS DEPENDENT
20141
    */----------------------------------------------
20142
    UPDATE release_content
20143
       SET pkg_state = 10
20144
     WHERE rtag_id = NNrtag_id
20145
       AND pv_id IN
20146
           (
20147
           SELECT DISTINCT pv_id
20148
           FROM pegged_versions pegv
20149
           WHERE pegv.rtag_id = NNrtag_id
20150
           );
1373 dpurdie 20151
 
3959 dpurdie 20152
    /*----------------------------------------------
20153
    ||              ADVISORY RIPPLE
20154
    */----------------------------------------------
20155
    UPDATE release_content
20156
       SET pkg_state = 8
20157
     WHERE rtag_id = NNrtag_id
20158
       AND pv_id IN
20159
           (
20160
           SELECT DISTINCT pv_id
20161
           FROM advisory_ripple ar
20162
           WHERE ar.rtag_id = NNrtag_id
20163
           )
20164
       AND pv_id IN
20165
           (
20166
           SELECT DISTINCT pv_id
20167
           FROM release_content rc
20168
           WHERE rc.rtag_id = NNrtag_id
20169
           );
6031 dpurdie 20170
 
5172 dpurdie 20171
    /*----------------------------------------------
20172
    ||              SDK Imported
20173
    */----------------------------------------------
20174
    UPDATE release_content
20175
       SET pkg_state = 11
20176
     WHERE rtag_id = NNrtag_id
6031 dpurdie 20177
       AND sdktag_id is not null;
1373 dpurdie 20178
 
6031 dpurdie 20179
   /*----------------------------------------------
20180
    ||              UnBuildable
20181
    */----------------------------------------------
20182
    UPDATE release_content
20183
       SET pkg_state = 13
20184
     WHERE rtag_id = NNrtag_id
20185
       AND pv_id in (select pv_id from temp_env_states WHERE session_num = NNsession_num AND build_type = 'U');
20186
 
3959 dpurdie 20187
END Update_Package_States;
4040 dpurdie 20188
 
3959 dpurdie 20189
/
4040 dpurdie 20190
--------------------------------------------------------
20191
--  DDL for Procedure UPDATE_PROCESSES
20192
--------------------------------------------------------
20193
set define off;
20194
 
5172 dpurdie 20195
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_PROCESSES" 
3959 dpurdie 20196
IS
1373 dpurdie 20197
 
3959 dpurdie 20198
proc_id NUMBER;
20199
/******************************************************************************
20200
   NAME:       DELETE_DO_NOT_RIPPLE
20201
   PURPOSE:    TO DELETE ENTRIES FROM THE DO_NOT_RIPPLE TABLE WHEN A PACKAGE
20202
               IS RELEASED
1373 dpurdie 20203
 
3959 dpurdie 20204
   REVISIONS:
20205
   Ver        Date        Author           Description
20206
   ---------  ----------  ---------------  ------------------------------------
20207
   1.0        21/04/2006  Rupesh Solanki     1. Created this procedure.
1373 dpurdie 20208
 
3959 dpurdie 20209
   NOTES:
1373 dpurdie 20210
 
3959 dpurdie 20211
   Automatically available Auto Replace Keywords:
20212
      Object Name:     DELETE_DO_NOT_RIPPLE
20213
      Sysdate:         21/04/2006
20214
      Date and Time:   21/04/2006, 3:21:55 PM, and 21/04/2006 3:21:55 PM
20215
      Username:         (set in TOAD Options, Procedure Editor)
20216
      Table Name:       (set in the "New PL/SQL Object" dialog)
1373 dpurdie 20217
 
3959 dpurdie 20218
******************************************************************************/
20219
   CURSOR ripple_cur
20220
   IS
20221
      select proc_id,  proc_name, run_as, pkg_owner, is_interface from processes;
1373 dpurdie 20222
 
3959 dpurdie 20223
   ripple_rec   ripple_cur%ROWTYPE;
20224
BEGIN
20225
   OPEN ripple_cur;
20226
 
20227
   FETCH ripple_cur
20228
    INTO ripple_rec;
20229
 
20230
   WHILE ripple_cur%FOUND
20231
   LOOP
20232
 
6031 dpurdie 20233
 
20234
update deployment_manager.processes_config
3959 dpurdie 20235
set proc_id = ripple_rec.proc_id
20236
where pkg_health_tag = ripple_rec.proc_name
20237
and cmd_interface IS NULL
20238
and pkg_owner IS NULL
6031 dpurdie 20239
and is_interface IS NULL;
3959 dpurdie 20240
 
6031 dpurdie 20241
 
3959 dpurdie 20242
      FETCH ripple_cur
20243
       INTO ripple_rec;
20244
   END LOOP;
20245
END UPDATE_PROCESSES;
4040 dpurdie 20246
 
1374 dpurdie 20247
/
4040 dpurdie 20248
--------------------------------------------------------
20249
--  DDL for Procedure UPDATE_RUNTIME_DEPENDENCY
20250
--------------------------------------------------------
20251
set define off;
20252
 
5172 dpurdie 20253
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_RUNTIME_DEPENDENCY" ( NNpv_id IN RUNTIME_DEPENDENCIES.pv_id%TYPE,
3959 dpurdie 20254
				   	  		  						    NNrtd_id IN RUNTIME_DEPENDENCIES.rtd_id%TYPE,
20255
				   	  		  						    SSrtd_version IN PACKAGE_VERSIONS.pkg_version%TYPE,
20256
													    SSrtd_url IN RUNTIME_DEPENDENCIES.rtd_url%TYPE,
20257
													    SSrtd_comments IN RUNTIME_DEPENDENCIES.rtd_comments%TYPE,
20258
													    NNuser_id IN NUMBER ) IS
1373 dpurdie 20259
/* ---------------------------------------------------------------------------
3959 dpurdie 20260
    Version: 3.0.1
1373 dpurdie 20261
   --------------------------------------------------------------------------- */
20262
 
3959 dpurdie 20263
    retRTD_ID	NUMBER;
20264
	CURSOR rtd_cur IS
20265
	    SELECT pv.pkg_version, pkg.pkg_name
20266
		  FROM runtime_dependencies rtd,
20267
		       package_versions pv,
20268
			   packages pkg
20269
		 WHERE rtd.rtd_id = pv.pv_id
20270
		   AND pv.pkg_id = pkg.pkg_id
20271
		   AND rtd.pv_id = NNpv_id
20272
		   AND rtd.rtd_id = NNrtd_id;
20273
	   rtd_rec rtd_cur%ROWTYPE;
1373 dpurdie 20274
 
3959 dpurdie 20275
	CURSOR old_rtd_cur IS
20276
	    SELECT pv.pv_id
20277
		  FROM package_versions pv
20278
		 WHERE pv.pkg_id IN ( SELECT rtdpv.pkg_id
20279
		 	   			 	    FROM package_versions rtdpv
20280
							   WHERE rtdpv.pv_id = NNrtd_id )
20281
		   AND pv.pkg_version = SSrtd_version;
20282
	old_rtd_rec old_rtd_cur%ROWTYPE;
1373 dpurdie 20283
 
3959 dpurdie 20284
 
1373 dpurdie 20285
BEGIN
20286
 
3959 dpurdie 20287
    -- Get current runtime dependency details
20288
	OPEN rtd_cur;
20289
    FETCH rtd_cur INTO rtd_rec;
1373 dpurdie 20290
 
20291
 
20292
 
20293
 
3959 dpurdie 20294
	IF rtd_rec.pkg_version != SSrtd_version THEN
20295
           -- Version has changed, hence create new runtime dependency --
20296
	    /* NOTE: You must create new version as updating just a version will affect
20297
		        all packages using this runtime dependency and user does not expect that.
20298
		        It is safer to create new version */
20299
		OPEN old_rtd_cur;
20300
		FETCH old_rtd_cur INTO old_rtd_rec;
1373 dpurdie 20301
 
20302
 
3959 dpurdie 20303
		IF old_rtd_cur%NOTFOUND
20304
		THEN
20305
			-- Version not found, hence Create New version --
20306
    		Seed_Package_Names_Versions ( rtd_rec.pkg_name, SSrtd_version, NNuser_id, retRTD_ID );
1373 dpurdie 20307
 
3959 dpurdie 20308
			-- Update runtime dependency table --
20309
			UPDATE runtime_dependencies SET
20310
				   rtd_id = retRTD_ID,
20311
				   rtd_url = SSrtd_url,
20312
				   rtd_comments = SSrtd_comments
20313
			 WHERE pv_id = NNpv_id
20314
			   AND rtd_id = NNrtd_id;
1373 dpurdie 20315
 
3959 dpurdie 20316
		ELSE
20317
			-- Update runtime dependency table --
20318
			UPDATE runtime_dependencies SET
20319
				   rtd_id = old_rtd_rec.pv_id,
20320
				   rtd_url = SSrtd_url,
20321
				   rtd_comments = SSrtd_comments
20322
			 WHERE pv_id = NNpv_id
20323
			   AND rtd_id = NNrtd_id;
20324
 
20325
		END IF;
20326
 
20327
 
20328
		CLOSE old_rtd_cur;
20329
 
20330
	ELSE
20331
		--  Version has not changed, hence update everithing except	version --
20332
		UPDATE runtime_dependencies SET
20333
			   rtd_url = SSrtd_url,
20334
			   rtd_comments = SSrtd_comments
20335
		 WHERE pv_id = NNpv_id
20336
		   AND rtd_id = NNrtd_id;
20337
 
20338
 
20339
 
20340
	END IF;
20341
 
20342
 
20343
	CLOSE rtd_cur;
20344
 
20345
END Update_Runtime_Dependency;
4040 dpurdie 20346
 
1374 dpurdie 20347
/
4040 dpurdie 20348
--------------------------------------------------------
20349
--  DDL for Procedure UPDATE_UNIT_TEST
20350
--------------------------------------------------------
20351
set define off;
20352
 
5172 dpurdie 20353
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST" ( nTest_id IN NUMBER,
6031 dpurdie 20354
	   	  		  							   nTestTypeId IN UNIT_TESTS.TEST_TYPES_FK%TYPE,
3959 dpurdie 20355
											   nPv_id IN NUMBER,
20356
											   nUserId IN NUMBER,
20357
	                                           sTest_summary IN UNIT_TESTS.TEST_SUMMARY%TYPE,
20358
											   sNumof_test IN UNIT_TESTS.NUMOF_TEST%TYPE,
20359
	                                           sCompletion_date IN VARCHAR2,
20360
											   sDpkg_path IN VARCHAR2,
20361
											   enumTEST_TYPE_AUTOMATIC IN NUMBER,
20362
											   sResults IN VARCHAR2,
20363
											   outFileName OUT VARCHAR2
20364
                                              ) IS
1373 dpurdie 20365
/* ---------------------------------------------------------------------------
3959 dpurdie 20366
    Version: 3.1.0
1373 dpurdie 20367
   --------------------------------------------------------------------------- */
6031 dpurdie 20368
 
3959 dpurdie 20369
   	FILENAME_PREFIX CONSTANT VARCHAR2(50) := 'RM_UNIT_TEST';
1373 dpurdie 20370
 
3959 dpurdie 20371
    ResultsURL UNIT_TESTS.RESULTS_URL%TYPE DEFAULT NULL;
20372
    ResultsAttachment UNIT_TESTS.RESULTS_ATTACHMENT_NAME%TYPE DEFAULT NULL;
1373 dpurdie 20373
 
3959 dpurdie 20374
 
1373 dpurdie 20375
BEGIN
20376
 
3959 dpurdie 20377
       IF nTestTypeId = enumTEST_TYPE_AUTOMATIC THEN
20378
       	ResultsURL := sResults;
20379
       ELSE
20380
       	IF (sResults <> '') OR ( NOT sResults IS NULL ) THEN
20381
        	outFileName := FILENAME_PREFIX || nTest_id ||'_'|| sResults;
20382
    		ResultsAttachment := sDpkg_path || '/' || outFileName;
20383
           END IF;
20384
       END IF;
1373 dpurdie 20385
 
3959 dpurdie 20386
	--- Update Unit Test ---
20387
    UPDATE UNIT_TESTS SET
20388
           TEST_SUMMARY = sTest_summary,
20389
		   NUMOF_TEST = sNumof_test,
20390
           COMPLETION_DATE = TO_DATE( sCompletion_date,'DD/MM/YYYY' ),
20391
		   COMPLETED_BY = nUserId,
20392
		   RESULTS_URL = ResultsURL,
20393
		   RESULTS_ATTACHMENT_NAME = ResultsAttachment
20394
     WHERE TEST_ID = nTest_id
20395
       AND PV_ID = nPv_id;
1373 dpurdie 20396
 
3959 dpurdie 20397
END Update_Unit_Test;
4040 dpurdie 20398
 
3959 dpurdie 20399
/
4040 dpurdie 20400
--------------------------------------------------------
20401
--  DDL for Procedure UPDATE_UNIT_TEST_ACCEPTANCE
20402
--------------------------------------------------------
20403
set define off;
20404
 
5172 dpurdie 20405
  CREATE OR REPLACE PROCEDURE "RELEASE_MANAGER"."UPDATE_UNIT_TEST_ACCEPTANCE" ( pnTest_id IN NUMBER,
3959 dpurdie 20406
														  pnPv_id IN NUMBER,
20407
					                                      sAccepted IN UNIT_TESTS.TEST_ACCEPTED%TYPE,
20408
														  sAcceptanceDate IN VARCHAR2,
20409
														  sAcceptedBy IN NUMBER,
20410
					                                      sReviewComments IN UNIT_TESTS.REVIEW_COMMENTS%TYPE,
20411
														  cUpdateAcceptedStateOnly IN CHAR
20412
					                                     ) IS
20413
/* ---------------------------------------------------------------------------
20414
    Version: 3.0.0
20415
   --------------------------------------------------------------------------- */
1373 dpurdie 20416
 
20417
 
20418
 
3959 dpurdie 20419
BEGIN
20420
	IF cUpdateAcceptedStateOnly = 'Y'
20421
	THEN
20422
		--- Update Accepted State Only ---
20423
		IF ( sAccepted IS NULL )
20424
		THEN
20425
			-- Clear alleptance
20426
			UPDATE UNIT_TESTS SET
20427
		           TEST_ACCEPTED = NULL,
20428
		           ACCEPTANCE_DATE = NULL,
20429
				   ACCEPTED_BY = NULL,
20430
				   REVIEW_COMMENTS = NULL
20431
		     WHERE TEST_ID = pnTest_id
20432
		       AND PV_ID = pnPv_id;
20433
 
20434
	    ELSE
20435
			UPDATE UNIT_TESTS SET
20436
		           TEST_ACCEPTED = sAccepted,
20437
		           ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),
20438
				   ACCEPTED_BY = sAcceptedBy
20439
		     WHERE TEST_ID = pnTest_id
20440
		       AND PV_ID = pnPv_id;
20441
 
20442
		END IF;
20443
 
20444
 
20445
	ELSE
20446
		--- Update Unit Test Acceptance ---
20447
	    UPDATE UNIT_TESTS SET
20448
	           TEST_ACCEPTED = sAccepted,
20449
			   REVIEW_COMMENTS = sReviewComments,
20450
	           ACCEPTANCE_DATE = TO_DATE( sAcceptanceDate,'DD/MM/YYYY' ),
20451
			   ACCEPTED_BY = sAcceptedBy
20452
	     WHERE TEST_ID = pnTest_id
20453
	       AND PV_ID = pnPv_id;
20454
 
20455
	END IF;
20456
 
20457
END Update_Unit_Test_Acceptance;
4040 dpurdie 20458
 
1374 dpurdie 20459
/
4040 dpurdie 20460
--------------------------------------------------------
20461
--  DDL for Synonymn APPLICATIONS
20462
--------------------------------------------------------
20463
 
5172 dpurdie 20464
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."APPLICATIONS" FOR "ACCESS_MANAGER"."APPLICATIONS";
4040 dpurdie 20465
--------------------------------------------------------
20466
--  DDL for Synonymn APPLICATION_PAGES
20467
--------------------------------------------------------
20468
 
5172 dpurdie 20469
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."APPLICATION_PAGES" FOR "ACCESS_MANAGER"."APPLICATION_PAGES";
4040 dpurdie 20470
--------------------------------------------------------
20471
--  DDL for Synonymn CONTROL_OBJECTS
20472
--------------------------------------------------------
20473
 
5172 dpurdie 20474
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."CONTROL_OBJECTS";
4040 dpurdie 20475
--------------------------------------------------------
20476
--  DDL for Synonymn DATA_PERMISSIONS
20477
--------------------------------------------------------
20478
 
5172 dpurdie 20479
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."DATA_PERMISSIONS" FOR "ACCESS_MANAGER"."DATA_PERMISSIONS";
4040 dpurdie 20480
--------------------------------------------------------
20481
--  DDL for Synonymn DATA_TABLES
20482
--------------------------------------------------------
20483
 
5172 dpurdie 20484
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."DATA_TABLES" FOR "ACCESS_MANAGER"."DATA_TABLES";
4040 dpurdie 20485
--------------------------------------------------------
20486
--  DDL for Synonymn PAGE_CONTROL_OBJECTS
20487
--------------------------------------------------------
20488
 
5172 dpurdie 20489
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PAGE_CONTROL_OBJECTS" FOR "ACCESS_MANAGER"."PAGE_CONTROL_OBJECTS";
4040 dpurdie 20490
--------------------------------------------------------
20491
--  DDL for Synonymn PERMISSION_TYPES
20492
--------------------------------------------------------
20493
 
5172 dpurdie 20494
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PERMISSION_TYPES" FOR "ACCESS_MANAGER"."PERMISSION_TYPES";
4040 dpurdie 20495
--------------------------------------------------------
20496
--  DDL for Synonymn PK_AMUTILS
20497
--------------------------------------------------------
20498
 
5172 dpurdie 20499
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PK_AMUTILS" FOR "ACCESS_MANAGER"."PK_AMUTILS";
4040 dpurdie 20500
--------------------------------------------------------
20501
--  DDL for Synonymn PK_SECURITY
20502
--------------------------------------------------------
20503
 
5172 dpurdie 20504
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."PK_SECURITY" FOR "ACCESS_MANAGER"."PK_SECURITY";
4040 dpurdie 20505
--------------------------------------------------------
20506
--  DDL for Synonymn ROLES
20507
--------------------------------------------------------
20508
 
5172 dpurdie 20509
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."ROLES" FOR "ACCESS_MANAGER"."ROLES";
4040 dpurdie 20510
--------------------------------------------------------
20511
--  DDL for Synonymn ROLE_PRIVILEGES
20512
--------------------------------------------------------
20513
 
5172 dpurdie 20514
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."ROLE_PRIVILEGES" FOR "ACCESS_MANAGER"."ROLE_PRIVILEGES";
4040 dpurdie 20515
--------------------------------------------------------
20516
--  DDL for Synonymn USERS
20517
--------------------------------------------------------
20518
 
5172 dpurdie 20519
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USERS" FOR "ACCESS_MANAGER"."USERS";
4040 dpurdie 20520
--------------------------------------------------------
20521
--  DDL for Synonymn USER_APPLICATIONS
20522
--------------------------------------------------------
20523
 
5172 dpurdie 20524
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USER_APPLICATIONS" FOR "ACCESS_MANAGER"."USER_APPLICATIONS";
4040 dpurdie 20525
--------------------------------------------------------
20526
--  DDL for Synonymn USER_ROLES
20527
--------------------------------------------------------
20528
 
5172 dpurdie 20529
  CREATE OR REPLACE SYNONYM "RELEASE_MANAGER"."USER_ROLES" FOR "ACCESS_MANAGER"."USER_ROLES";